← Computer NetworksEnglish

APPLICATION LAYER · PEER-TO-PEER DISTRIBUTION

ไฟล์เดียว หลาย Peer และไม่มีผู้ส่งเพียงคนเดียว

ดูไฟล์จำลองในห้องเรียนถูกแบ่งเป็นชิ้น กระจายผ่าน Swarm ทนต่อ Peer ที่ออกจากระบบ และประกอบกลับอย่างถูกต้องด้วยการตรวจ Hash

SWARM SIMULATOR

Swarm ตัดสินใจขอชิ้นใดเป็นชิ้นถัดไปอย่างไร

หน้านี้เป็นการจำลองแบบปิด ไม่เปิดไฟล์ Torrent ไม่ติดต่อ Tracker และไม่เข้าร่วม Public Swarm

READY · สร้าง Swarm จำลองเพื่อเริ่มทดลอง
Block ที่ผ่าน Hash0
จำนวน Message0
Availability0.0

ทำไมต้อง Rarest-first

Peer ขอชิ้นที่มีสำเนาใน Swarm น้อยที่สุดเท่าที่ดาวน์โหลดได้ ช่วยรักษาชิ้นหายาก เพิ่ม Availability และลดการพึ่ง Seeder เดิม ส่วน Sequential แม้เข้าใจง่าย แต่อาจทำให้ทุกคนถือแต่ช่วงต้นเหมือนกัน

Choke, unchoke และ Optimistic Unchoke

Choking ใช้ควบคุมช่อง Upload ไม่ใช่การแบนถาวร Peer จะ Unchoke คู่แลกเปลี่ยนที่เป็นประโยชน์ และกันหนึ่งช่องไว้ทดลอง Peer ใหม่หรือ Peer ที่ก่อนหน้านี้ช้า

Block จะเดินทางได้เมื่อสถานะ Protocol อนุญาต

handshakebitfieldinterestedunchokerequestpiecehash verify
ทดลองแลกเปลี่ยนเพื่อดู Message

Tracker, DHT, PEX และ Magnet Link

Tracker

บริการนัดพบที่คืน Address ของ Peer แต่ไม่ได้ขน Piece

DHT

การค้นหาแบบกระจายที่ Map Info-hash ไปยัง Peer โดยไม่ต้องมี Tracker กลาง

PEX

Peer ที่เชื่อมต่อกันแนะนำ Peer อื่นที่รู้จัก

Magnet

เริ่มจาก Content Identifier แล้วจึงค้นและตรวจ Metadata

PROTOCOL ANATOMY

ข้อมูล Metadata และความเชื่อถือเป็นคนละชั้น

Piece → block

ไฟล์ถูก Hash ระดับ Piece แต่ Request มักส่ง Block ที่เล็กกว่า หาก Hash ไม่ผ่านต้องทิ้ง Piece ที่ประกอบแล้ว

Bitfield + HAVE

Bitfield แจ้ง Inventory เริ่มต้น ส่วน HAVE แจ้ง Piece ใหม่ที่ตรวจผ่าน

Endgame mode

ช่วงใกล้เสร็จอาจขอ Block เดียวจากหลาย Peer รับชิ้นที่ถูกต้องชิ้นแรกแล้ว Cancel ที่เหลือ

Integrity ไม่เท่ากับ Authorship Hash ที่ตรงกันพิสูจน์ว่า Byte ตรงกับ Metadata แต่ไม่ได้พิสูจน์ว่าผู้เผยแพร่น่าเชื่อถือหรือมีสิทธิ์แจกจ่าย

CLASSROOM INVESTIGATION

คำถามที่ควรตอบด้วยหลักฐานจากการทดลอง

  1. เทียบ Rarest-first กับ Sequential เมื่อ Seeder ออกจากระบบ
  2. อธิบายว่าเหตุใด Availability อาจต่ำกว่า 1.0 แม้มี Block รวมจำนวนมาก
  3. ระบุ Message ที่ต้องเกิดก่อน Piece Block แรกจะมาถึง
  4. แสดงการตรวจ Block เสีย และเหตุผลที่ HAVE ใช้กับ Piece ที่ตรวจผ่านแล้วเท่านั้น
  5. อภิปราย Trade-off ระหว่างลำดับสำหรับ Streaming กับสุขภาพของ Swarm