ภาพรวมในข้อความเพียร์โปรโตคอล
ไคลเอ็นต์สามารถใช้สองโปรโตคอลเพื่อแบ่งปันข้อมูลกับเพียร์, TCP หรือ uTP (มากกว่า UDP) ข้อมูลนี้ตามสเปคโปรโตคอล BitTorrentส่วนข้อความเพียร์
ดังนั้นโดยทางโปรแกรมการเชื่อมต่อจะต้องเริ่มระหว่างไคลเอนต์สองคน หลังจากที่การเชื่อมต่อการตั้งค่า (ผ่าน TCP หรือ UTP) จับมือ BitTorrent ริเริ่มโดยลูกค้าที่คว้าข้อมูลเพียระยะไกล (IP และ port) จากการติดตามหรือผ่านDHT การจับมือกันนี้มีinfo_hashที่ระบุว่าการเชื่อมต่อนี้จะมีฝนตกหนัก
เรามาดูกันก่อนว่าข้อมูล Torrent จะถูกตัดทอนผ่านโปรโตคอลอย่างไร ชิ้นเป็นส่วนหนึ่งของข้อมูลที่คุณกำลังใช้งานร่วมกันผ่านเครือข่าย เพื่อไม่ให้สับสนกับบล็อกซึ่งเป็นส่วนหนึ่งของชิ้นส่วนที่ห่อไว้ในแพ็คเก็ต บล็อกเป็นเมล็ดที่จะแบ่งปันชิ้นผ่านแพ็กเก็ตและชิ้นส่วนเป็นเมล็ดที่จะแบ่งปัน Torrent ผ่านเพื่อน
เมื่อเริ่มต้นการเชื่อมต่อทั้งลูกค้า (ลูกค้าท้องถิ่นซึ่งฉันจะเรียกLCและลูกค้าระยะไกลRC ) จะสำลักและไม่สนใจ สำลักหมายถึง "ฉันจะไม่ตอบข้อความใด ๆ ของคุณยุ่งเกินไป แต่ฉันอาจนำมาพิจารณา" ไม่ได้ล็อคหมายความว่า "ฉันจะตอบข้อความของคุณ" วิธีการที่น่าสนใจแน่นอนว่าฉันต้องการบางชิ้นที่คุณมี ดังนั้นสถานะของการเชื่อมต่อระหว่างสองเพียร์สามารถกำหนดได้ด้วยสี่สถานะดังกล่าว: LC_chocked?, LC_interested ?, RC_chocked?, RC_cheated? เพื่อเตือนRCว่าฉันรู้สึกไม่ดีหรือไม่สนใจฉันต้องส่งเขา(ยกเลิก) ข้อความที่น่าสนใจและ(ยกเลิก)ข้อความที่ถูกบีบและอื่น ๆ
จะแจ้งให้แต่ละอื่น ๆ ที่ชิ้นที่พวกเขามีที่พวกเขาสามารถส่งbitfieldข้อความเพียงหลังจากการจับมือกัน ในขณะที่มันชื่อแนะนำก็เป็นสตริงบิตซึ่งแต่ละบิตมีการตั้งค่า1
ในกรณีที่ลูกค้ามีที่แปลกประหลาดนี้ชิ้นส่วน , 0
มิฉะนั้น
ดังนั้นถ้าLCถูกทำให้สับสนและให้ความสนใจและRCก็ไม่ได้ทำการปลดเขาจากนั้นเขาสามารถส่งข้อความร้องขอเพื่อขอบล็อกที่เป็นของชิ้นเดียวเขารู้ว่าLCได้ขอบคุณข้อความบิตฟิลด์
เมื่อเพียร์ได้รับชิ้นส่วนทั้งหมดเขาสามารถส่งข้อความชิ้นส่วนเพื่อแจ้งให้ทราบว่าเป็นเพียร์ระยะไกลเพื่อให้พวกเขาอัปเดตบิตฟิลด์ที่เกี่ยวข้องที่พวกเขาถืออยู่
นั่นเป็นภาพรวมพื้นฐานมากและแน่นอนว่าไม่มีรายละเอียดทั้งหมดให้ที่นี่เช่นอัลกอริทึมสำลักฯลฯ ... หากคุณต้องการรายละเอียดเพิ่มเติมให้ตรวจสอบลิงค์ทั้งสองที่ฉันโพสต์ไว้ด้านบนในส่วนความคิดเห็น (ในฐานะผู้ใช้ใหม่ฉันสามารถ ไม่มีลิงก์มากกว่าสองลิงก์ในโพสต์)