Tại sao phân phối các phần ngẫu nhiên của một tệp nhanh hơn chuyển giao liền kề?


17

Tại sao người ta nói rằng BitTorrent nhanh hơn, một phần, bởi vì nó chuyển các phần ngẫu nhiên của một tệp thay vì chuyển nó từ đầu đến cuối theo kiểu liền kề / tuyến tính?


EDIT: Nhưng tại sao họ phải là 'ngẫu nhiên'? Tại sao không phải là một sự chuyển đổi 'bán liền kề' dễ dự đoán hơn, trong đó một người ngang hàng mang lại cho bạn nửa đầu và nửa thứ hai nửa kia? Điều này về mặt lý thuyết sẽ giảm chi phí.

Câu trả lời:


6

Về chỉnh sửa hỏi tại sao chúng phải ngẫu nhiên: Giả sử các torrent được thay đổi thành chỉ tải xuống khối đầu tiên mà trình tải xuống không có, do đó đảm bảo chuyển tiếp liền kề.

Sau đó tôi chia sẻ một tệp 100MB. 10 người kết nối và mỗi lượt tải xuống 50MB trước khi tôi ngoại tuyến.

Những người này sau đó bị lừa, bởi vì tất cả họ đều có nửa đầu của tập tin, trong khi chỉ có tôi có nửa thứ hai. Cho đến khi tôi làm cho nó có sẵn một lần nữa, họ không thể hoàn thành việc tải xuống.

Thay vào đó, với các khối được chuyển theo thứ tự ngẫu nhiên như thực tế, mỗi người trong số 10 người này có một nhóm khác nhau, vì vậy họ có thể tự giao dịch để hoàn thành việc tải xuống mà không cần tôi phải ở bên.

Mặc dù tốt hơn, bởi vì mỗi trong số chúng có một bộ khối khác nhau, mỗi khối có thể tải xuống từ tất cảcủa những người khác để điền vào chỗ trống trong bản sao của họ. Chỉnh sửa của bạn ám chỉ ý tưởng bắt đầu từ một điểm ngẫu nhiên trong tệp và tải xuống liên tục từ điểm đó, nhưng điều đó sẽ làm tăng số lượng trùng lặp từ một bản sao của người tải xuống sang bản tiếp theo (nếu Alice bắt đầu từ đầu tệp và Bob bắt đầu 10% vào đó, sau đó có 40% tệp mà cả hai đều có và chỉ 10% duy nhất cho mỗi tệp mà họ có thể giao dịch mà không cần tôi kết nối lại để cung cấp phần còn lại). Tải xuống theo thứ tự ngẫu nhiên tối đa hóa tính duy nhất của từng khối được tải xuống, do đó tối đa hóa khả năng người tải xuống bắt đầu giao dịch với nhau và tối đa hóa khả năng họ có thể lắp ráp một bản sao hoàn chỉnh nếu không có hạt giống.

Một bản tải xuống liền kề có thể (hoặc có thể không, tùy thuộc vào điều kiện) sẽ tốt hơn cho bạn , nhưng tải xuống theo thứ tự ngẫu nhiên sẽ tốt hơn cho toàn bộ mạng.


"Một thứ tự ngẫu nhiên tối đa hóa tính độc đáo của mỗi bộ" - chính xác.
everalmatt

30

Điều quan trọng là bạn đang nhận được tệp từ một số nguồn (đồng nghiệp) cùng một lúc chứ không phải từ một nguồn.

Nếu bạn có một tệp được chia thành 10 phần và mất 100 giây để tải xuống từ 1 máy chủ thì về mặt lý thuyết bạn có thể nhận được tệp từ 10 máy ngang hàng trong 10 giây (cộng với một số chi phí) vì mỗi máy ngang hàng có thể phân phối phần đó trong 10 giây. Trong thực tế, sẽ mất nhiều thời gian hơn vì mỗi máy ngang hàng sẽ không hoàn hảo và có thể bạn sẽ đạt giới hạn băng thông của mình (nhưng bạn hiểu ý).

Vì dù sao bạn cũng phải lắp lại tệp, bạn không phải tìm nạp các mảnh theo thứ tự. Vì vậy, nếu bạn chỉ có 5 đồng nghiệp với mỗi phân phối 2 phần thì đây có thể là các phần ngẫu nhiên của tệp.


Đơn giản. Thông thoáng. +1
Xavierjazz

5
"Nếu 6 người đàn ông có thể đào 6 lỗ trong 6 phút, thì mất bao lâu để 10 người đàn ông đào được 10 lỗ?"
Martin

4
@martin phụ thuộc vào kích thước của các lỗ (kích thước chunk) và trang bị có sẵn (bandwith) :)
ratchet freak

14

Cần phải nói rằng điều này phụ thuộc hoàn toàn vào tập tin được đề cập, số lượng đồng nghiệp và tốc độ của nguồn không có giá trị.

Bạn sẽ không bao giờ tải xuống nhanh hơn băng thông tải xuống tối đa của kết nối của mình và nếu bạn đang tải xuống từ một nơi có đủ băng thông, nó sẽ nhanh hơn so với sử dụng Bittorrent.

Tuy nhiên, khi tốc độ internet ngày càng nhanh hơn, chúng ta đang đi đến điểm mà các trang web và máy chủ (nhỏ hơn) không thể theo kịp.

Ví dụ, khi tôi đang tìm kiếm giá colocation ở Luân Đôn vài tháng trước, tôi đã được trích dẫn mức giá hoàn toàn khủng khiếp cho kết nối 5Mb. Nếu tôi lấy cái này, nó sẽ phục vụ tốt cho phần lớn mọi người.

Tuy nhiên, trên cùng một dòng, nếu tôi lưu trữ một vài tệp 500Mb và mọi người đều có các đường Cáp (50Mb) hoặc ADSL2 + (24Mb) nhanh, bạn sẽ nhận thấy rằng máy chủ của tôi sẽ không thể phục vụ tốc độ nhanh cho bạn ...

... tuy nhiên, nếu tôi cung cấp cho bạn cùng một tệp thông qua Bittorrent và có 200 người, mỗi người chỉ cho 30Kb / giây, sẽ tương đương 5,8Mb / giây (và, nhiều người có tốc độ tải lên nhanh hơn nhiều!) .... và bây giờ, nếu tôi chạy Bittorrent trên máy chủ của mình và cung cấp cùng một tệp, điều đó có nghĩa là có tổng cộng 10,8Mb / giây có thể tải xuống - nhiều hơn tôi có thể cung cấp qua đường ống 5Mb / giây đó của riêng tôi.

Bittorrent rất giống một trò chơi số, bạn phải có đủ người tải lên với đủ băng thông ... Vì các bước bổ sung liên quan như kiểm tra tính toàn vẹn (và thực tế là bạn nên tải lên lại), thật khó để nó có thể đánh bại trực tiếp tải xuống từ một trang web tốt với đủ băng thông, nhưng, đối với nhiều trang web nhỏ hơn - đó là những trang web tuyệt vời hoặc thậm chí lớn hơn, những người chỉ muốn tiết kiệm tiền từ hóa đơn băng thông của họ.


không đề cập đến việc tải lên và tải xuống băng thông trong các kết nối cáp tiêu chuẩn không giống nhau (A trong ADSL)
ratchet freak

Quy tắc băng thông colo kỳ lạ, nó có vẻ như với tôi. Ở Colorado, dường như hầu hết các colos đều cung cấp các kết nối 100 Mbps và tính phí cho bạn bằng cách sử dụng mỗi tháng, và bạn phải tự quản lý và giới hạn tốc độ kết nối của mình nếu bạn cần giảm chi phí.
Zan Lynx

Một nhận xét khác: Tôi thích tải xuống từ Bittorrent khi có thể vì kiểm tra tính toàn vẹn. Thật vô cùng đau đớn khi bị buộc phải tải lại toàn bộ DVD ISO vì SHA1 không khớp. Bittorrent kiểm tra từng khối để nó chỉ là một đoạn nhỏ để thay thế.
Zan Lynx

@Zan Lynx - Ôi! Tôi chỉ gặp vấn đề đó một lần trong 5 năm qua ... và trước đó, chủ yếu là khi tôi có trí nhớ xấu âm thầm làm hỏng mọi thứ, tôi có thể hiểu, nhưng, đã không thấy nó trong nhiều năm .... Dù sao, tôi đã có ý định tìm kiếm colocation và lưu trữ ở nước ngoài từ một thời gian - Anh rất tốn kém cho mọi thứ :(
William Hilsum

4

Hầu hết các câu trả lời dường như không trả lời câu hỏi của bạn.

BitTorrent không nhanh hơn.

Nó thực sự chậm hơn do chi phí kết nối với nhiều nguồn.

Tuy nhiên, sự khác biệt thực tế trong thực tế là bạn đang tải xuống từ nhiều nguồn có khả năng cộng lại nhanh hơn những gì một trang web có thể cung cấp cho bạn. Nhiều máy chủ web đang tải nặng hoặc bị giới hạn tốc độ, do đó bạn không hút chúng khô.

Việc BitTorrent chuyển tệp theo thứ tự dường như ngẫu nhiên không ảnh hưởng trực tiếp đến tốc độ của nó.

Liên quan đến chỉnh sửa của bạn, các mảnh không phải là ngẫu nhiên! Chúng được ưu tiên dựa trên độ hiếm: một mảnh hiếm cần trở nên ít hiếm nhất có thể càng nhanh càng tốt để nó không bị mất nếu nguồn có nó đột nhiên rời đi. Nó phải làm với sự sẵn có, không phải tốc độ.


3

Đó là một vấn đề có sẵn. Nếu bạn phải tải xuống liên tục, thì bạn phụ thuộc vào những người lưu trữ nhiều tệp hơn bạn. Mọi người có ít tệp hơn bạn, sẽ không thể gửi cho bạn bất kỳ dữ liệu nào.

Nếu các khối được phân phối ngẫu nhiên, số lượng máy chủ bạn có thể tải xuống sẽ cao hơn, do đó bạn sẽ tải xuống tệp nhanh hơn.


1

Các torrent không phải lúc nào cũng nhanh hơn, nhưng khi có, một lý do là entropy mạng. Một kết nối của bất kỳ thời lượng nào (tải xuống một tệp lớn) có thể xuống cấp theo thời gian, vì các yếu tố ngẫu nhiên, không kiểm soát được ảnh hưởng đến việc truyền gói tin, chẳng hạn như quá tải bộ định tuyến và các vấn đề khác giữa bạn và máy chủ. Nhiều lỗi hơn có nghĩa là truyền lại nhiều gói hơn và tình trạng này có xu hướng xấu đi theo thời gian. Các torrent tạo ra nhiều kết nối nhỏ hơn, qua nhiều con đường định tuyến, một chiến lược có thể, trong các trường hợp phù hợp sẽ giảm các lỗi và các gói bị mất hoặc bị hỏng, và dường như nhanh hơn, đặc biệt là khi số lượng hạt giống và đồng nghiệp tăng lên.


1

Giả sử bạn gửi hai người đến cửa hàng tạp hóa để chọn danh sách các mặt hàng. Bạn cung cấp cho họ mỗi danh sách chính xác. Tuy nhiên, một trong số họ phải chọn các mục theo thứ tự chính xác mà chúng xuất hiện trong danh sách. Những người khác có thể nhận các mục theo bất kỳ thứ tự họ muốn. Mà bạn nghĩ sẽ hoàn thành đầu tiên?


Điều gì nếu các mục được sắp xếp theo thứ tự? (Chống phân mảnh?)
Mateen Ulhaq

Sắp xếp theo thứ tự nào? Theo thứ tự bảng chữ cái? Trừ khi họ tình cờ được sắp xếp chính xác theo cách sắp xếp của siêu thị, điều đó sẽ không giúp ích gì. Trong tương tự, "siêu thị" là danh sách khối của các trình tải lên khác nhau. (Nếu mọi người bắt đầu lại từ đầu, thì hai người, mỗi người có 33% tệp không thể giúp đỡ lẫn nhau, vì họ có cùng một khối. Yuck.)
David Schwartz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.