Giao thức P2P BitTorrent

Một phần của tài liệu Nghiên cứu giải pháp kiểm soát dịch vụ ứng dụng P2P qua mạng data 3G MobiFone (Trang 30 - 34)

Node siêu (SN)

1.3 Giao thức P2P BitTorrent

BitTorrent là một giao thức chia sẻ tài nguyên trên mạng đồng đẳng, đồng thời là tên của một chương trình chia sẻ tài nguyên đồng đẳng được phát triển bởi lập trình viên Bram Cohen. BitTorrent dùng để tải về những dữ liệu lớn mà không

tốn chi phí máy chủ và băng thông mạng. CacheLogic ước đoán BitTorrent chiếm khoảng 35% lưu lượng trên mạng Internet trong khi một số nguồn khác cho rằng con số này không chính xác.

Chương trình BitTorrent nguyên thủy được viết bằng ngôn ngữ lập trình Python và mã nguồn của chương trình BitTorrent phiên bản 4.0 được phát hành dưới dạng mã nguồn mở tuân theo bản quyền sử dụng mã nguồn BitTorrent. BitTorrent có rất nhiều biến thể khác nhau được viết bằng các ngôn ngữ lập trình khác nhau, chạy trên các hệ điều hành khác nhau.

BitTorrent hoạt động như thế nào?

Một client BitTorrent là bất cứ một chương trình thi hành giao thức BitTorrent. Mỗi một client có khả năng chuẩn bị, yêu cầu và truyền bất cứ dạng file máy tính qua mạng sử dụng giao thức này. Một đồng đẳng là một máy tính bất kỳ đang chạy một thể hiện của một client.

BitTorrent giảm tải cho node chính bởi vì tài nguyên được tải về từ các người dùng khác nhau. Một mạng BitTorrent có chứa tất cả các hàng đang hoạt động và một thành phần trung tâm, gọi là trackerserver. Bộ tracker không liên quan tới việc phân bố file, thay vì đó nó giữ thông tin siêu thông tin về các đồng đẳng mà đang hoạt động và hành động như là một điểm hẹn cho tất cả các client của torrent.

Hình 1.9: Cấu trúc mạng BitTorrent

Một người dùng gia nhập một torrent hiện tại bằng cách tải một torrent file chứa đựng địa chỉ IP của tracker. Sau khi gia nhập torrent, một client mới sử dụng

HTTP để nhận từ tracker một danh sách hàng đang hoạt động để kết nối tới. Rồi client mới kết nối tới một hàng mới đang hoạt động dùng giao thức BitTorrent để tải dữ liệu anh ta muốn.

Giao thức BitTorrent định nghĩa một phương thức để phổ biến và chia sẻ tệp trên mạng. Trước khi BitTorrent ra đời đã tồn tại các giao thức đồng đẳng (Peer-to- Peer, hoặc viết tắt là P2P) có khả năng cho phép một nhóm máy tính trên mạng chia sẻ tệp với các máy tính khác nhóm mà không cần phải sử dụng một máy chủ để làm kho lưu trữ trung tâm. BitTorrent là một cải tiến từ các giao thức đồng đẳng trước. Giao thức BitTorrent có một nguyên lý hoạt động chặt chẽ để có khả năng tùy biến, tin cậy và chi phí duy trì danh sách các máy vi tính chia sẻ tệp tốt hơn các giao thức đồng đẳng trước đó. Do giao tiếp theo chuẩn TCP/IP nên giao thức BitTorrent có thể hoạt động trên đường truyền Internet thông thường.

BitTorrent client là một chương trình hoạt động theo giao thức BitTorrent. Mỗi BitTorrent client có khả năng so sánh, yêu cầu, và vận chuyển tệp trên mạng sử dụng giao thức BitTorrent. Tệp có thể chứa bất kỳ thông tin nào, bao gồm cả văn bản, âm thanh, phim và nội dung đã được mã hóa.

Tạo và phát hành tệp Torrent lên mạng

Để chia sẻ một tệp hay nhiều tệp bằng giao thức BitTorrent, đầu tiên cần tạo tệp “torrent”. Mỗi tệp torrent chứa thông tin mô tả tệp muốn chia sẻ, và thông tin về máy vi tính cung cấp bản gốc của tệp. Thông tin chi tiết lưu trên máy vi tính theo dõi sẽ khác nhau tuỳ thuộc vào phiên bản của giao thức BitTorrent, nhưng dù ở phiên bản nào tệp “torrent” luôn luôn có đuôi mở rộng là .torrent. Cụ thể thì một tệp torrent chứa thông tin (địa chỉ URL của máy vi tính ), và thông tin về tên tệp được chia sẻ, kích thước mảnh, chiều dài khóa, chiều dài tệp, và vé thông hành để tải tệp. Một tệp torrent có thể chứa thông tin về một tệp hoặc nhiều tệp. Máy vi tính đã tải tệp xong có thể lựa chọn hoạt động như máy khởi đầu, cung cấp bản sao hoàn chỉnh của tệp. Sau khi tệp torrent được tạo, một đường dẫn để tải tệp về từ máy bạn được đặt lên trang web, và tệp torrent được đăng ký với máy theo dõi (tracker). Máy theo

dõi chứa một danh sách các máy vi tính hiện thời đang tải tệp về. Máy ngang hàng đang cung cấp tệp hoàn chỉnh được gọi là máy khởi đầu (seeder).

Tải xuống tệp torrent và chia sẻ tệp

Dùng một trình duyệt Internet bất kì, như FireFox, duyệt trang web có danh sách các tệp torrent, tải nó về, sau đó dùng chương trình BitTorrent client mở tệp đấy ra. Sau khi đã mở tệp torrent, chương trình BitTorrent sẽ kết nối với máy theo dõi, máy theo dõi sẽ cung cấp cho nó một danh sách các máy vi tính đang tải tệp này. Một nhóm các thành viên của một mạng BitTorrent (hoặc mạng đồng đẳng) để tải về cùng một tệp được gọi là quần thể (swarm).

Việc chia sẻ được bắt đầu từ máy khởi đầu. Các máy tính kết nối đầu tiên sẽ hướng trực tiếp tới máy khởi đầu để bắt đầu tải về các mảnh của tệp. Giao thức BitTorrent chia tệp cần tải về thành các phần nhỏ có kích thước bằng nhau (thường là 1/4 megabyte = 256 kilobyte), ví dụ một tệp có kích thước 4,37 GB thường sẽ bị chia thành các mảnh nhỏ có kích thước là 4 MB (4096 kB) hoặc nhỏ hơn nữa. Khi máy vi tính nhận được các mảnh này nó sẽ dùng giải thuật băm để kiểm tra xem mảnh nó tải về có bị lỗi hay không.

Khi máy vi tính kết nối vào quần thể, các máy vi tính sẽ bắt đầu chia sẻ tệp với nhau. Các máy vi tính sẽ chia sẻ các mảnh với nhau thay vì chia sẻ trực tiếp với máy khởi đầu, vì vậy số lượng máy trong quần thể chia sẻ theo giao thức BitTorrent có thể phát triển rất nhanh. Vì nguyên lý hoạt động của giao thức rất chặt chẽ nên các máy tự chọn máy ngang hàng có kết nối tốt nhất để tải về các mảnh nó cần. Một điểm mới đột phá của giao thức BitTorrent so với các giao thức đồng đẳng trước đó là nguyên lý “mảnh hiếm”. Theo giao thức BitTorrent máy khách luôn luôn yêu cầu các mảnh hiếm nhất, mảnh này ít máy vi tính trong quần thể có nhất. Với nguyên lý yêu cầu mảnh hiếm nhất giao thức BitTorrent làm giảm tải của các máy khách trong việc đáp ứng các yêu cầu gửi đến nó, và không còn hiện tượng nút cổ chai.

Giao thức BitTorrent có một nguyên lý là “tín nhiệm mở” tạo nên “nhóm máy ưa thích”. Máy ưa thích là một tập các máy ngang hàng trong quần thể cung cấp băng thông tải lên lớn cho các máy khách có yêu cầu tải về. Tín nhiệm mở cho

phép các chương trình BitTorrent kiểm tra định kỳ xem máy nào trong quần thể nên lựa chọn để tải về. Nếu một máy ngang hàng ngoài nhóm ưu thích có băng thông phục vụ các máy khác trong quần thể tốt hơn một máy trong nhóm ưa thích thì nó đẩy máy phục vụ kém hơn ra khỏi nhóm ưa thích và thay thế vào vị trí đó. Nguyên lý này làm cho các máy khách luôn luôn tải về từ nhóm máy ngang hàng phục vụ tốt nhất.

Giới hạn

Cần chú ý là giao thức BitTorrent không giúp người dùng giấu tên. Bởi vì máy theo dõi duy trì một danh sách các tệp đang được chia sẻ, đồng thời nó cũng chứa danh sách địa chỉ IP của các máy vi tính đang tải tệp, và danh sách các tệp đã được tải trước đó. Dựa vào giao thức BitTorrent còn biết chắc chắn địa chỉ của các máy ngang hàng trong quần thể, và tất nhiên là các máy ngang hàng có thể bị tấn công.

Nhược điểm của giao thức BitTorrent là ít khuyến khích các máy ngang hàng trở thành máy khởi đầu sau khi đã tải về xong tệp. Hệ quả là các máy khởi đầu sẽ biến mất và các máy trong quần thể cũng biến mất dần, nghĩa là tệp torrent càng cũ thì xác suất để tải tệp thành công càng thấp. BitTorrent có ưu thế trong môi trường băng thông rộng như DSL, cáp, vệ tinh...còn đối với người dùng Internet quay số sử dụng giao thức BitTorrent sẽ không hiệu quả, vì kết nối quay số hay bị đứt kết nối và tốc độ tải không cao.

Một phần của tài liệu Nghiên cứu giải pháp kiểm soát dịch vụ ứng dụng P2P qua mạng data 3G MobiFone (Trang 30 - 34)

Tải bản đầy đủ (DOCX)

(106 trang)
w