Tìm hiểu cơ chế hoạt động của BitTorrent

Admin   Admin
Ngày đăng: 05/07/2018
0 bình luận

Theo một nghiên cứu năm 2012, BitTorrent chiếm 12% tổng lưu lượng Internet của Bắc Mỹ, tại khu vực Châu Á- Thái Bình Dương, con số này lên tới 36%. Mặc dù quả thực, phần lớn lưu lượng này được sử dụng vào các mục đích xâm phạm bản quyền, nhưng ta cũng không thể vì thế mà coi BitTorrent chỉ là một thứ công cụ phạm pháp. Giao thức chia sẻ dữ liệu này, dựa trên bản chất phân tán của nó, có rất nhiều điểm nổi trội so với các phương pháp chia sẻ truyền thống trong vô số trường hợp.

Trong bài viết lần này, chúng ta hãy cùng tìm hiểu qua về cơ chế hoạt động của BitTorrent, cũng như lí do tại sao nhiều người cho rằng các đề xuất từ phía Mỹ, đánh đồng BitTorrent như một công cụ phạm pháp là sai lầm.


Cơ chế hoạt động

Trong các phương thức truyền tải dữ liệu điển hình thường gặp, ví dụ như khi bạn tải một trang báo, máy tính của bạn sẽ thực hiện kết nối tới các máy chủ có chưa dữ liệu của trang báo đó và trực tiếp tải về dữ liệu từ các máy chủ này. Tất cả các máy muốn hiển thị trang báo – hay còn gọi là các máy client đều sẽ phải cùng trải qua quá trình này và tải về dữ liệu từ cùng một server/cụm server đó. Client download dữ liệu do server upload, đây là mô hình căn bản thường gặp nhất trên mạng Internet.

BitTorrent là một giao thức mạng ngang hàng, đồng nghĩa với mỗi các máy tính tham gia trong mạng lưới BitTorrent sẽ đảm nhận cả việc download lẫn upload dữ liệu mà không cần có sự có mặt của một server trung tâm.

Thường thì một máy tính sẽ tham gia vào một mạng lưới BitTorrent bằng cách sử dụng thông tin chứa trong một file .torrent. Các phần mềm BitTorrent client, ví dụ như uTorrent hay BitComet sẽ sử dụng thông tin từ file này để liên lạc với một máy đảm nhiệm vai trò “tracker” trong mạng lưới. Tracker cũng là một dạng máy chủ, nhưng không trực tiếp cung cấp dữ liệu cho các máy khác trong mạng lưới BitTorrent mà chỉ chịu trách nhiệm giám sát và theo dõi tình trạng các máy tính đang tham gia vào mạng lưới. Thông qua giao tiếp và sử dụng các thông tin mà Tracker cung cấp, máy tính của bạn lúc này sẽ có thể thực hiện kết nối trực tiếp đến các máy khác trong mạng lưới để bắt đầu gửi/nhận dữ liệu.

Khi đã kết nối vào mạng lưới, máy tính của người dùng có thể bắt đầu thực hiện tải dữ liệu về theo từng phần nhỏ. Dữ liệu này do các máy khác trong mạng lưới cung cấp. Và dĩ nhiên, những phần dữ liệu đã được tải về cũng sẽ lại tiếp tục được máy của người dùng chia sẻ sang cho những máy chưa có phần đó. Với cơ chế này, cho dù 10000 máy cùng download một file tại một thời điểm cũng sẽ không gây quá tải cho máy chủ nào hết. Thay vào đó gánh nặng trên băng thông upload được chia sẻ đều cho các máy trong mạng lưới.

Quan trọng hơn cả, các máy trong mạng lưới clients không bao giờ thực sự tải về các file dữ liệu từ máy chủ tracker. Nhiệm vụ của các Tracker trong mạng lưới chỉ gói gọn trong việc theo dõi thông tin của các máy tính khác.

 

Leechers và Seeders

Các máy đang tham gia tải về dữ liệu từ mạng lưới BitTorent thường được gọi là “leecher” hoặc “peers”. Các máy đã hoàn thành việc tải dữ liệu nhưng vẫn tiếp tục tham gia mạng lưới và đóng góp băng thông upload cũng như dữ liệu của mình cho những người dùng khác là “seeder”. Một mạng lưới BitTorrent chỉ thực sự có ý nghĩa khi có ít nhất một seeder – một máy có chứa bản đầy đủ, hoàn chỉnh của dữ liệu – trong mạng đó để chia sẻ phiên bản đầy đủ này cho các máy khác. Nếu mạng lưới chỉ bao gồm các leecher hay peers, tức các máy có chứa những phần không hoàn chỉnh của dữ liệu, người dùng sẽ không thể tải về phiên bản đầy đủ.

Một số BitTorrent clientcó cơ chế lựa chọn các máy “tích cực” trong mạng lưới để giao tiếp. Lúc này máy tính của người dùng sẽ ưu tiên gửi dữ liệu cho những máy có tốc độ upload tốt, đóng góp nhiều dữ liệu cho mạng lưới thay vì những máy upload với tốc độ chậm. Nói một cách ngắn gọn đây là cơ chế “làm nhiều, hưởng nhiều” giúp tăng hiệu quả tổng quát của mạng lứoi, ưu tiên giao tiếp giữa những máy có đường truyền tốt.

 

Torrent Trackers và Trackerless Torrents

Ngoài ra không thể không kể đến cơ chế “trackerless” cho phép các BitTorrent client giao tiếp với nhau mà không cần có sự hỗ trợ của bất kỳ máy chủ trung tâm nào. Để đạt được điều này, các BitTorrent client sử dụng một dạng bảng băm phân tán (distributed hash table - DHT). Trong đó mỗi BitTorent client đóng vai trò của một node trên hash table. Khi người dùng đưa thông tin về một torent mới vào BitTorrent client (thông qua file .torrent hay qua một “magnet link”), BitTorrent client này – dưới tư cách một DHT node sẽ liên lạc với các node gần nó để tìm thông tin cần cho việc chia sẻ file. Các node “hàng xóm” này nếu cần lại tiếp tục chuyển tiếp thông tin vừa nhận được sang các node xung quanh đó cho khi tìm thấy thông tin cần thiết (tức thông tin về các máy đang tham gia mạng lưới chia sẻ trong file .torrent hay magnet link đó).

Nói một cách ngắn gọn, như trong mô tả của giao thức DHT “Về cốt lõi, mỗi peer sẽ trở thành một tracker”. Đồng nghĩa với việc mọi sự tồn tại của các máy chủ trung tâm đã hoàn toàn được lược bỏ. Các máy trong mạng lưới BitTorrent chia sẻ dữ liệu ngang hàng và quản lý thông tin của nhau cũng theo phương thức ngang hàng.

Một mạng lưới cũng có thể hoạt động theo cả 2 cơ chế: sử dụng DHT và sử dụng tracker. Trong trường hợp này DHT chủ yếu được sử dụng như phương pháp dự phòng khi máy chủ tracker gặp sự cố.

 

BitTorrent không phải chỉ để chia sẻ dữ liệu phi pháp

Sử dụng BitTorrent thường bị đánh đồng với trộm cắp dữ liệu số. Nhưng trên thực tế, ngay cả những người khổng lồ như Blizzard cũng phải tận dụng giao thức BitTorrent để phân phối các bản cập nhật cho sản phẩm của mình: WoW, Starcraft II hay Diablo. Việc sử dụng BitTorrent không chỉ giúp tăng tốc phân phối dữ liệu bởi tận dụng được băng thông upload của các user mà còn giảm tải rất nhiều cho máy chủ cũng các bên cung cấp nội dung như Blizzard. Nên nhớ rằng, băng thông mạng cũng đều sẽ được quy ra tiền cả.

Trong các dự án cần phân phối dữ liệu với khối lượng lớn nhưng ngân sách hạn hẹp, đặc biệt như một số dự án nguồn mở, việc sử dụng BitTorrent để người dùng có thể góp phần vào việc phân phối dữ liệu là hoàn toàn hợp lý. Chúng ta có thể dễ dàng tìm được khá nhiều distro Linux sử dụng BitTorrent để phân phối đĩa cài đặt. Ngoài ra, tuy WikiLeaks còn vướng nhiều vấn đề pháp lý, nhưng không thể phủ nhận rằng BitTorrent đóng một vai trò cực kỳ quan trọng giúp cho các dữ liệu từ đây được pháp tán rộng rãi.

BitTorrent, Inc. - công ty chịu trách nhiệm phát triển giao thức BitTorrent cũng như torrent client nổi tiếng µTorrent – đang tập trung phát triển một lượng lớn ứng dụng xoay quanh giao thức này trong dự án BitTorrent Labs của họ. Trong đó phải kể đến ứng dụng đồng bộ dữ liệu giúp đồng bộ dữ liệu của người dùng qua mạng ngang hàng mà chúng tôi đã giới thiệu vài tháng trước, hay hệ thống BitTorrent Live cho phép stream dữ liệu hình ảnh âm thanh mà không cần đến sự có mặt của các server chuyên dụng.

 

Tham khảo: Howtogeek.com

Viết bình luận
Email sẽ không công khai khi bạn đăng bình luận
zalo