연속 전송보다 임의의 파일 조각을 배포하는 이유는 무엇입니까? 처음부터 끝까지

BitTorrent가 연속 / 선형 방식으로 파일을 처음부터 끝까지 전송하는 대신 임의의 파일 조각을 전송하기 때문에 부분적으로 더 빠르다고 말하는 이유는 무엇입니까?


편집 : 그런데 왜 그들은 않는 ‘임의’로? 한 피어가 전반을 제공하고 다른 피어가 나머지 반을 제공하는 더 예측 가능한 ‘반 연속’전송이 아닌 이유는 무엇입니까? 이것은 이론적으로 오버 헤드를 줄입니다.



답변

왜 랜덤이어야하는지 묻는 편집에 관해 : 토렌트가 다운로더가 가지고 있지 않은 첫 번째 블록 만 다운로드하도록 변경되어 연속 전송을 보장한다고 가정 해 봅시다.

그런 다음 100MB 파일을 공유합니다. 오프라인 상태가되기 전에 10 명이 연결하고 각 다운로드가 50MB입니다.

이 사람들은 모두 파일의 전반부를 가지고 있기 때문에 나사로 고정됩니다. 다시 사용할 수있게 될 때까지 다운로드를 완료 할 수 없습니다.

대신에, 실제로는 그처럼 임의의 순서로 블록이 전송되면서,이 10 명은 각각 다른 블록 세트를 가지므로, 내가 주변에있을 필요없이 다운로드를 완료하기 위해 서로 교환 할 수 있습니다.

그러나 각 블록마다 블록 세트가 다르기 때문에 모든 블록에서 모두 다운로드 할 수 있습니다.다른 사람의 사본에 빈 공간을 채 웁니다. 편집 내용은 파일의 임의 지점에서 시작하여 그 지점에서 연속적으로 다운로드한다는 아이디어를 암시했지만 한 다운로더의 사본에서 다음으로의 중복이 증가합니다 (앨리스가 파일의 시작 부분에서 시작하고 Bob이 시작하는 경우) 그것에 10 %, 그리고 그들이 가지고있는 파일의 40 %가 있으며 나머지는 사용할 수 있도록 다시 연결하지 않고 거래 할 수있는 각 파일에 대해 10 % 만 고유합니다.) 무작위 순서로 다운로드하면 보유한 각 다운로더 블록 세트의 고유성을 최대화하여 다운로더가 자신 사이에서 거래를 시작할 수있는 능력을 최대화하고 시드를 사용할 수없는 경우 전체 사본을 조립할 수있는 가능성을 최대화합니다.

하나의 연속 다운로드 (또는 않을 수는 없다, 조건에 따라) 더 나은 될 당신 ,하지만, 임의의 순서로 다운로드하는 전체 네트워크에 더 좋다.


답변

핵심은 한 소스가 아닌 여러 소스 (피어)에서 동시에 파일을 가져 오는 것입니다.

파일을 10 개로 나누고 1 개의 서버에서 다운로드하는 데 100 초가 걸리는 경우 이론적으로 각 피어가 10 초 안에 일부를 제공 할 수 있으므로 10 초 내에 10 개의 피어 (및 약간의 오버 헤드)에서 파일을 가져올 수 있습니다. 실제로 각 피어가 완벽하지 않기 때문에 시간이 더 오래 걸리고 대역폭 제한에 도달 할 수도 있습니다 (그러나 아이디어는 얻습니다).

어쨌든 파일을 다시 어셈블해야하므로 조각을 순서대로 가져올 필요가 없습니다. 따라서 각각 2 개의 파트를 제공하는 피어가 5 명인 경우 파일의 임의 파트가 될 수 있습니다.


답변

이것은 해당 파일, 피어의 양 및 비트가 아닌 소스의 속도에 전적으로 달려 있다고 말해야합니다.

연결의 최대 다운로드 대역폭보다 빠르게 다운로드하지 않으며 충분한 대역폭이있는 장소에서 다운로드하는 경우 Bittorrent를 사용하는 것보다 빠릅니다.

그러나 인터넷 속도가 점점 빨라짐에 따라 (더 작은) 웹 사이트와 호스트가 유지할 수없는 수준에 도달하고 있습니다.

예를 들어, 몇 달 전에 런던의 코 로케이션 가격을 살펴 보았을 때 5Mb 연결에 대해 절대적으로 끔찍한 가격으로 인용되었습니다. 내가 이것을 취한다면 그것은 대다수의 사람들에게 잘 봉사 할 것입니다.

그러나 같은 회선에서 500Mb 파일을 몇 개 호스팅하고 모든 사람이 케이블 (50Mb) 또는 빠른 ADSL2 + (24Mb) 회선을 사용하는 경우, 내 서버가 귀하에게 빠른 속도를 제공 할 수 없음을 알 수 있습니다 …

…하지만 Bittorrent를 통해 동일한 파일을 제공하고 각각 30Kb / s를 제공하는 200 명의 사람들이 5.8Mb / s와 같을 경우 (그리고 많은 사람들이 그보다 훨씬 빠른 업로드 속도를 갖습니다!) …. 그리고 지금, 내 서버에서 Bittorrent를 실행하고 동일한 파일을 제공하는 경우 총 10.8Mb / s 다운로드 가능-5Mb / s 파이프를 통해 제공 할 수있는 것보다 훨씬 많은 것을 의미합니다 내 자신의.

Bittorrent는 매우 많은 숫자의 게임이므로 충분한 대역폭으로 업로드하는 사람들이 충분해야합니다 … 무결성 검사 (및 다시 업로드 해야 한다는 사실)와 같은 추가 단계로 인해 직접 이길 수는 없습니다. 대역폭이 충분한 좋은 사이트에서 다운로드하지만 많은 소규모 사이트의 경우 대역폭 청구로 돈을 절약하려는 훌륭하거나 더 큰 사이트입니다.


답변

대부분의 답변은 귀하의 질문에 대답하지 않는 것 같습니다.

BitTorrent는 더 빠르지 않습니다.

여러 소스에 연결하는 오버 헤드로 인해 실제로 속도느립니다 .

그러나 실제로 실제 차이점은 웹 사이트가 제공 할 수있는 것보다 더 빠르게 추가 될 수 있는 여러 소스에서 다운로드한다는 것입니다. 많은 웹 서버가 과부하 상태이거나 속도가 제한되어 있으므로 건조하지 않습니다.

BitTorrent가 임의의 순서로 파일을 전송한다는 사실은 속도에 직접적인 영향을 미치지 않습니다.

편집과 관련하여 조각은 무작위가 아닙니다! 그것들은 희귀성에 따라 우선 순위가 결정됩니다 : 희귀 조각은 가능한 한 빨리 드물어 져야하므로 갑작 스레 그것을 가지고있는 소스가 사라지면 손실되지 않습니다. 속도가 아니라 가용성과 관련이 있습니다.


답변

가용성 문제입니다. 연속적으로 다운로드해야하는 경우 파일보다 더 많은 파일을 호스팅하는 사람들에게 의존합니다. 귀하보다 파일이 적은 모든 사람은 귀하에게 데이터를 보낼 수 없습니다.

청크가 무작위로 배포되면 다운로드 할 수있는 호스트 수가 더 많아 지므로 파일을 더 빨리 다운로드하게됩니다.


답변

급류는 항상 빠르지는 않지만, 그 이유는 네트워크 엔트로피입니다. 임의의 제어 할 수없는 임의의 요소가 라우터 오버로드 및 사용자와 서버 간의 기타 문제와 같은 패킷 전송에 영향을 미치므로 모든 기간 (큰 파일 다운로드)의 연결은 시간이 지남에 따라 저하 될 수 있습니다. 더 많은 오류는 더 많은 패킷 재전송을 의미하며,이 상황은 시간이 지남에 따라 악화되는 경향이 있습니다. 급류는 많은 라우팅 경로에서 여러 소규모 연결을 만들어 올바른 상황에서 오류와 패킷 손실 또는 손상을 줄이고 특히 시드 및 피어 수가 증가함에 따라 더 빠른 것으로 보이는 전략입니다.


답변

식료품 점에 두 사람을 보내 물품 목록을 가져 오라고 가정 해 봅시다. 당신은 그들에게 각각 동일한 목록을 제공합니다. 그러나 그 중 하나는 목록에 표시된 순서대로 항목을 선택해야합니다. 다른 하나는 원하는 순서대로 품목을 수령 할 수 있습니다. 어느 쪽이 먼저 끝날 것이라고 생각하십니까?