MD5 nguyên chất không hỗ trợ xác minh từng phần và đã lỗi thời. Nếu bạn cố gắng sử dụng sử dụng hàm băm tinh khiết cho bất cứ điều gì tiên tiến, cuối cùng bạn sẽ gặp các following situation:
Tôi không nhận được nó ... Ngay sau khi một tập tin đã sẵn sàng để kết thúc, nó bắt đầu tất cả hơn một lần nữa. Tôi cũng nhận được thông báo "Đang xác minh nội dung tệp" ... Điều gì tôi có thể làm gì ???
Điều gì sẽ xảy ra nếu một người tải xuống hơn 20Gb tệp không có cơ hội phát hiện sự không khớp sớm? Người ta không thể giảm tải xuống p2p mà không cần xác minh một phần được hỗ trợ bởi hàm băm.
Vì vậy, hiện nay, người ta cần phải gắn bó với cây Merkle. Gnutella (cả G1 và G2) và DC++ (cả hai NMDC và ADC) đều sử dụng TTH (TIGER Tree Hash) trong khi eDonkey 2k sử dụng AICH, nhưng nó là một mình để sử dụng băm này, và nó ít thanh lịch hơn. Vì vậy, TTH là chuẩn thực tế, và nó sẽ là tốt đẹp nếu tất cả các tập tin băm ở khắp mọi nơi (ngay cả khi không được yêu cầu nghiêm ngặt) là TTH theo mặc định, nhưng chúng tôi chưa có.
DC++ không dựa trên HTTP, nhưng Gnutella (1 và 2) là, vì vậy bạn có thể nghiên cứu và/hoặc hỗ trợ các tiêu đề HTTP đó. Ví dụ, Shareaza có thể chặn tải xuống từ trình duyệt và tải chúng xuống p2p bằng cách sử dụng tiêu đề Alt-Location, Content-URN, X-Thex-URI.
+1 để chống lại cuộc bỏ phiếu xuống. – UnkwnTech