Liên kết nam châm BitTorrent xác định một torrent bằng cách sử dụng 1 giá trị băm SHA-1 hoặc cắt ngắn SHA-256 được gọi là "infohash". Đây là cùng một giá trị mà các đồng nghiệp (khách hàng) sử dụng để xác định các torrent khi giao tiếp với các trình theo dõi hoặc các đồng nghiệp khác. Tệp .torrent truyền thống chứa cấu trúc dữ liệu với hai khóa cấp cao nhất : announce
, xác định (các) trình theo dõi để sử dụng để tải xuống và info
chứa tên tệp và băm cho torrent. "Infohash" là hàm băm của info
dữ liệu được mã hóa .
Một số liên kết nam châm bao gồm trình theo dõi hoặc hạt web, nhưng chúng thường không. Khách hàng của bạn có thể không biết gì về torrent ngoại trừ thông tin của nó. Điều đầu tiên nó cần là tìm các đồng nghiệp khác đang tải torrent. Nó thực hiện điều này bằng cách sử dụng một mạng ngang hàng 2 riêng biệt vận hành một "bảng băm phân tán" (DHT). Một DHT là một chỉ mục phân tán lớn, ánh xạ các torrent (được xác định bằng infohash) vào danh sách các đồng nghiệp (được xác định bởi địa chỉ IP và cổng) đang tham gia vào một torrent cho torrent đó (tải lên / tải xuống dữ liệu hoặc siêu dữ liệu).
Lần đầu tiên khách hàng tham gia mạng DHT, nó tạo ra ID 160 bit ngẫu nhiên từ cùng một không gian như infohash. Sau đó, nó khởi động kết nối của nó với mạng DHT bằng cách sử dụng các địa chỉ khách hàng được mã hóa cứng do nhà phát triển ứng dụng khách kiểm soát hoặc các máy khách hỗ trợ DHT trước đây gặp phải trong một torrent. Khi nó muốn tham gia vào một nhóm cho một torrent nhất định, nó sẽ tìm kiếm mạng DHT cho một số khách hàng khác có ID càng gần 3 càng tốt với infohash. Nó thông báo cho những khách hàng này rằng họ muốn tham gia vào bầy đàn và hỏi họ về thông tin kết nối của bất kỳ đồng nghiệp nào mà họ đã biết về những người đang tham gia vào bầy đàn.
Khi các đồng nghiệp đang tải lên / tải xuống một torrent cụ thể, họ cố gắng nói với nhau về tất cả các đồng nghiệp khác mà họ biết rằng họ đang tham gia vào cùng một torrent. Điều này cho phép các đồng nghiệp biết về nhau một cách nhanh chóng mà không phải theo dõi hoặc theo dõi các yêu cầu liên tục. Khi bạn đã biết về một vài đồng nghiệp từ DHT, khách hàng của bạn sẽ có thể hỏi những người đó về thông tin kết nối của nhiều đồng nghiệp hơn trong bầy torrent, cho đến khi bạn có tất cả các đồng nghiệp bạn cần.
Cuối cùng, chúng ta có thể yêu cầu các đồng nghiệp này cho info
siêu dữ liệu của torrent , chứa tên tệp và danh sách băm. Khi chúng tôi đã tải xuống thông tin này và xác minh rằng nó chính xác bằng cách sử dụng đã biết infohash
, thực tế chúng tôi ở cùng một vị trí với một khách hàng bắt đầu với một .torrent
tệp thông thường và có một danh sách các đồng nghiệp từ trình theo dõi đi kèm.
Việc tải xuống có thể bắt đầu.
1 Infohash thường được mã hóa hex, nhưng một số khách hàng cũ đã sử dụng cơ sở 32 thay thế. v1 ( urn:btih:
) sử dụng trực tiếp thông báo SHA-1, trong khi v2 ( urn:bimh:
) thêm tiền tố multihash để xác định thuật toán băm và độ dài tiêu hóa.
2 Có hai mạng DHT chính: DHT "đường chính" đơn giản hơn và giao thức phức tạp hơn được Azureus sử dụng.
3 Khoảng cách được đo bằng XOR.
Đọc thêm