ทำไมการกระจายไฟล์แบบสุ่มเร็วกว่าการถ่ายโอนอย่างต่อเนื่อง?


17

ทำไมมันถึงบอกว่า BitTorrent เร็วกว่าอีกส่วนหนึ่งเพราะมันทำการถ่ายโอนไฟล์แบบสุ่มแทนการถ่ายโอนตั้งแต่ต้นจนจบในแบบต่อเนื่อง / แบบเส้นตรง?


แก้ไข:แต่ทำไมพวกเขาต้องเป็น 'สุ่ม'? ทำไมไม่ถ่ายโอน 'กึ่งต่อเนื่อง' ที่คาดการณ์ได้มากขึ้นซึ่งเพียร์หนึ่งให้คุณครึ่งแรกและเพียร์ที่สองอีกครึ่งหนึ่ง? ในทางทฤษฎีจะลดค่าใช้จ่าย

คำตอบ:


6

เกี่ยวกับการแก้ไขถามว่าทำไมพวกเขาถึงต้องสุ่ม: สมมติว่า torrents ถูกเปลี่ยนเป็นดาวน์โหลดเฉพาะบล็อกแรกที่ตัวดาวน์โหลดไม่ได้มีอยู่ดังนั้นจึงรับประกันการถ่ายโอนอย่างต่อเนื่อง

ฉันแบ่งปันไฟล์ขนาด 100MB 10 คนเชื่อมต่อและดาวน์โหลด 50MB ก่อนที่ฉันจะออฟไลน์

คนเหล่านี้จะเมาเพราะพวกเขาทั้งหมดมีครึ่งแรกของไฟล์ในขณะที่ฉันเท่านั้นที่มีครึ่งหลัง จนกว่าฉันจะทำให้มันใช้งานได้อีกครั้งพวกเขาไม่สามารถดาวน์โหลดให้เสร็จสมบูรณ์ได้

แต่ด้วยบล็อกที่ถูกถ่ายโอนตามลำดับแบบสุ่มตามความเป็นจริงแล้วแต่ละคน 10 คนนี้มีกลุ่มของบล็อกที่แตกต่างกันดังนั้นพวกเขาจึงสามารถแลกเปลี่ยนกันเองเพื่อดาวน์โหลดให้เสร็จสมบูรณ์โดยไม่ต้องให้ฉันอยู่ใกล้

ถึงแม้ว่าจะดีกว่าเนื่องจากแต่ละบล็อกมีชุดบล็อกที่แตกต่างกันแต่ละบล็อกจึงสามารถดาวน์โหลดได้จากทั้งหมดของคนอื่น ๆ เพื่อเติมช่องว่างในสำเนาของพวกเขา การแก้ไขของคุณหมายถึงแนวคิดในการเริ่มต้นจากจุดสุ่มในไฟล์และการดาวน์โหลดอย่างต่อเนื่องจากจุดนั้น แต่จะเพิ่มจำนวนของการทับซ้อนจากสำเนาของดาวน์โหลดหนึ่งไปยังอีก (ถ้าอลิซเริ่มต้นที่จุดเริ่มต้นของไฟล์และ Bob เริ่ม 10% ในนั้นมี 40% ของไฟล์ที่ทั้งคู่มีและมีเพียง 10% ที่ไม่ซ้ำกันสำหรับแต่ละไฟล์ที่พวกเขาสามารถซื้อขายโดยที่ฉันไม่ได้เชื่อมต่อใหม่เพื่อให้ส่วนที่เหลือว่าง) การดาวน์โหลดตามลำดับแบบสุ่มจะช่วยเพิ่มความเป็นเอกลักษณ์ของชุดบล็อกแต่ละชุดของผู้ดาวน์โหลดซึ่งจะช่วยเพิ่มความสามารถในการดาวน์โหลดเพื่อเริ่มการซื้อขายระหว่างกันและเพิ่มอัตราต่อรองที่เป็นไปได้สำหรับพวกเขาในการรวบรวมสำเนาสมบูรณ์หากไม่มีเมล็ด

การดาวน์โหลดที่ต่อเนื่องครั้งเดียวอาจดีกว่าสำหรับคุณแต่การดาวน์โหลดแบบสุ่มนั้นดีกว่าสำหรับเครือข่ายโดยรวม


"คำสั่งแบบสุ่มช่วยเพิ่มความเป็นเอกลักษณ์ของแต่ละชุด" - อย่างแม่นยำ
eternalmatt

30

กุญแจสำคัญคือคุณได้รับไฟล์จากหลาย ๆ แหล่งในเวลาเดียวกันมากกว่าที่จะมาจากแหล่งเดียว

หากคุณมีไฟล์ที่แบ่งออกเป็น 10 ส่วนและใช้เวลา 100 วินาทีในการดาวน์โหลดจากเซิร์ฟเวอร์ 1 ในทางทฤษฎีแล้วคุณสามารถรับไฟล์จาก 10 เพียร์ใน 10 วินาที (บวกค่าโสหุ้ยบางส่วน) เนื่องจากเพียร์แต่ละคนสามารถส่งมอบมันเป็นส่วนหนึ่งใน 10 วินาที ในทางปฏิบัติจะใช้เวลานานขึ้นเนื่องจากเพียร์แต่ละคนจะไม่สมบูรณ์แบบและคุณอาจถึงขีด จำกัด แบนด์วิดท์ของคุณ (แต่คุณได้รับแนวคิด)

เนื่องจากคุณต้องรวบรวมไฟล์ใหม่อีกครั้งคุณไม่จำเป็นต้องดึงไฟล์ตามลำดับ ดังนั้นหากคุณมี 5 เพียร์กับแต่ละการส่ง 2 ส่วนเหล่านี้สามารถสุ่มส่วนของไฟล์


ง่าย ชัดเจน. +1
Xavierjazz

5
"ถ้าผู้ชาย 6 คนขุดได้ 6 หลุมใน 6 นาทีมันต้องใช้เวลา 10 คนขุด 10 หลุมนานแค่ไหน?"
Martin

4
@martin ขึ้นอยู่กับขนาดของหลุม (ขนาดก้อน) และอุปกรณ์ที่มีอยู่ (แบนด์วิดท์) :)
ratchet freak

14

ควรกล่าวได้ว่าสิ่งนี้ขึ้นอยู่กับไฟล์ที่มีปัญหาจำนวนเพื่อนและความเร็วของแหล่งข้อมูลที่ไม่ได้สองบิต

คุณจะไม่ดาวน์โหลดเร็วกว่าแบนด์วิดท์ดาวน์โหลดสูงสุดของการเชื่อมต่อของคุณและหากคุณดาวน์โหลดจากสถานที่ที่มีแบนด์วิดท์เพียงพอก็จะเร็วกว่าการใช้ Bittorrent

อย่างไรก็ตามเนื่องจากความเร็วของอินเทอร์เน็ตเริ่มเร็วขึ้นและเร็วขึ้นเราจึงไปถึงจุดที่เว็บไซต์และโฮสต์ (เล็ก) ไม่สามารถติดตามได้

ตัวอย่างเช่นเมื่อฉันมองไปที่ราคา colocation ในลอนดอนเมื่อไม่กี่เดือนที่ผ่านมาฉันถูกเสนอราคาที่แย่มากสำหรับการเชื่อมต่อ 5Mb ถ้าฉันจะเอาสิ่งนี้มันจะให้บริการคนส่วนใหญ่ได้ดี

อย่างไรก็ตามในบรรทัดเดียวกันหากฉันต้องโฮสต์ไฟล์ 500Mb บางไฟล์และทุกคนมีสายเคเบิล (50Mb) หรือสาย ADSL2 + (24Mb) ที่รวดเร็วคุณจะสังเกตเห็นว่าเซิร์ฟเวอร์ของฉันไม่สามารถให้บริการความเร็วที่รวดเร็วสำหรับคุณ ...

... อย่างไรก็ตามถ้าฉันจะให้ไฟล์เดียวกันกับคุณผ่าน Bittorrent และมี 200 คนแต่ละคนให้เพียง 30Kb / s นั่นจะเท่ากับ 5.8Mb / s (และหลายคนมีความเร็วในการอัพโหลดเร็วกว่ามาก!) .... และตอนนี้ถ้าฉันจะเรียกใช้ Bittorrent บนเซิร์ฟเวอร์ของฉันและเสนอไฟล์เดียวกันนั่นหมายความว่ามีการดาวน์โหลดทั้งหมด 10.8Mb / s - มากกว่าที่ฉันสามารถให้ผ่านทางท่อ 5Mb / s ได้ ของฉันเอง

Bittorrent เป็นเกมที่มีตัวเลขมากคุณต้องมีคนมากพอที่จะอัพโหลดด้วยแบนด์วิดท์ที่เพียงพอ ... เนื่องจากขั้นตอนพิเศษที่เกี่ยวข้องเช่นการตรวจสอบความสมบูรณ์ (และความจริงที่ว่าคุณควรอัพโหลดกลับ) มันยากที่จะเอาชนะได้โดยตรง การดาวน์โหลดจากไซต์ที่ดีที่มีแบนด์วิดท์เพียงพอ แต่สำหรับไซต์ขนาดเล็กจำนวนมากมันเป็นไซต์ที่ยอดเยี่ยมหรือใหญ่กว่าที่ต้องการประหยัดเงินจากค่าใช้จ่ายแบนด์วิดท์


ไม่ต้องพูดถึงว่าการอัพโหลดและดาวน์โหลดแบนด์วิดธ์ในการเชื่อมต่อสายเคเบิลมาตรฐานนั้นไม่เหมือนกัน (A ใน ADSL)
ratchet freak

กฎแบนด์วิดธ์โคโลแปลก ๆ มันฟังดูเหมือนฉัน ที่นี่ในโคโลราโดดูเหมือนว่า colos ส่วนใหญ่ให้การเชื่อมต่อ 100 Mbps และคิดค่าบริการตามการใช้งานในแต่ละเดือนและขึ้นอยู่กับคุณในการจัดการและ จำกัด ความเร็วการเชื่อมต่อของคุณเองหากคุณต้องการลดต้นทุน
Zan Lynx

ความคิดเห็นอื่น: ฉันชอบดาวน์โหลดจาก Bittorrent เมื่อเป็นไปได้เนื่องจากการตรวจสอบความสมบูรณ์ มันเป็นความเจ็บปวดอย่างเหลือเชื่อที่ถูกบังคับให้ต้องดาวน์โหลด DVD ISO ใหม่ทั้งหมดเนื่องจาก SHA1 ไม่ตรงกัน Bittorrent ตรวจสอบแต่ละบล็อคดังนั้นจึงเป็นเพียงก้อนเล็ก ๆ ที่จะแทนที่
Zan Lynx

@Zan Lynx - อุ๊ย! ฉันมีปัญหานั้นเพียงครั้งเดียวในช่วง 5 ปีที่ผ่านมา ... และก่อนหน้านั้นส่วนใหญ่เมื่อฉันมีความทรงจำที่ไม่ดีทำให้เกิดความเสียหายอย่างเงียบ ๆ ฉันเข้าใจได้ แต่ไม่เคยเห็นมานานหลายปี .... อย่างไรก็ตามฉันมีความหมายที่จะมองหา colocation และโฮสติ้งในต่างประเทศบางครั้ง - อังกฤษมีราคาแพงมากสำหรับทุกอย่างสวยมาก :(
William Hilsum

4

คำตอบส่วนใหญ่ดูเหมือนจะไม่ตอบคำถามของคุณ

BitTorrent ไม่เร็วขึ้น

อันที่จริงมันช้ากว่าเพราะมีค่าใช้จ่ายในการเชื่อมต่อกับหลายแหล่ง

อย่างไรก็ตามความแตกต่างที่แท้จริงในทางปฏิบัติคือคุณกำลังดาวน์โหลดจากหลาย ๆ แหล่งที่สามารถเพิ่มให้เร็วกว่าเว็บไซต์ที่ให้คุณ เว็บเซิร์ฟเวอร์หลายแห่งกำลังทำงานหนักหรือมีความเร็ว จำกัด ดังนั้นคุณจึงไม่ต้องทำให้เว็บแห้ง

ความจริงที่ว่า BitTorrent ถ่ายโอนไฟล์ตามลำดับแบบสุ่มดูเหมือนจะไม่มีผลกับความเร็วโดยตรง

ในส่วนที่เกี่ยวกับการแก้ไขของคุณชิ้นส่วนจะไม่สุ่ม! พวกเขาจัดลำดับความสำคัญตามความประเสริฐ: ชิ้นที่หายากต้องกลายเป็นของหายากที่เร็วที่สุดเท่าที่จะเป็นไปได้ดังนั้นมันจะไม่สูญหายไปหากแหล่งที่มาของมันออกจากกระทันหัน มันเกี่ยวกับความพร้อมใช้งานไม่ใช่ความเร็ว


3

มันเป็นปัญหาความพร้อมใช้งาน หากคุณต้องดาวน์โหลดอย่างต่อเนื่องแสดงว่าคุณต้องพึ่งพาผู้ที่โฮสต์ไฟล์มากกว่าคุณ ทุกคนที่มีไฟล์น้อยกว่าคุณจะไม่สามารถส่งข้อมูลใด ๆ ถึงคุณได้

หากมีการกระจายเนื้อหาแบบสุ่มจำนวนโฮสต์ที่คุณสามารถดาวน์โหลดได้จะสูงขึ้นดังนั้นคุณจะดาวน์โหลดไฟล์ได้เร็วขึ้น


1

ทอร์เรนต์ไม่ได้เร็วขึ้นเสมอไป แต่เมื่อเป็นเช่นนั้นเหตุผลหนึ่งก็คือเอนโทรปีของเครือข่าย การเชื่อมต่อของช่วงเวลาใด ๆ (การดาวน์โหลดไฟล์ขนาดใหญ่) อาจลดลงเมื่อเวลาผ่านไปเนื่องจากปัจจัยแบบสุ่มและไม่สามารถควบคุมได้ส่งผลต่อการส่งแพ็กเก็ตเช่นเราเตอร์โอเวอร์โหลดและปัญหาอื่น ๆ ระหว่างคุณและเซิร์ฟเวอร์ ข้อผิดพลาดเพิ่มเติมหมายถึงการส่งแพ็กเก็ตซ้ำอีกครั้งและสถานการณ์นี้มีแนวโน้มที่จะแย่ลงเมื่อเวลาผ่านไป ทอร์เรนต์ทำให้การเชื่อมต่อขนาดเล็กจำนวนมากข้ามเส้นทางการกำหนดเส้นทางจำนวนมากกลยุทธ์ที่สามารถภายใต้สถานการณ์ที่เหมาะสมลดข้อผิดพลาดและแพ็กเก็ตที่สูญหายหรือเสียหายและดูเหมือนว่าจะเร็วขึ้นโดยเฉพาะอย่างยิ่งเมื่อจำนวนเมล็ดและเพื่อนเพิ่มขึ้น


1

สมมติว่าคุณส่งคนสองคนไปที่ร้านขายของชำเพื่อรับรายการ คุณให้พวกเขาแต่ละรายการเดียวกันแน่นอน อย่างไรก็ตามหนึ่งในนั้นต้องรับรายการในลำดับที่แน่นอนที่ปรากฏในรายการ อื่น ๆ อาจรับรายการในลำดับใด ๆ ที่พวกเขาโปรด คุณคิดว่าจะเสร็จก่อนใคร?


เกิดอะไรขึ้นถ้ารายการทั้งหมดถูกจัดเรียงตามลำดับ? (จัดระเบียบหรือไม่?)
Mateen Ulhaq

เรียงตามลำดับอะไร ตามลำดับตัวอักษร? เว้นแต่ว่าพวกเขาเพิ่งจะได้รับการจัดเรียงอย่างตรงตามที่ซูเปอร์มาร์เก็ตจัดไว้มันก็ไม่ได้ช่วยอะไร ในการเปรียบเทียบ "ซูเปอร์มาร์เก็ต" เป็นรายการบล็อกของผู้อัปโหลดที่หลากหลาย (ถ้าทุกคนเริ่มจากจุดเริ่มต้นคนสองคนที่มี 33% ของไฟล์ไม่สามารถช่วยเหลือซึ่งกันและกันเพราะพวกเขามีบล็อกเดียวกัน Yuck.)
David Schwartz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.