อ่าน 3 นาที
คอร์เด
ในเครือข่าย แบบเพียร์ทูเพียร์ Koorde เป็น ระบบ ตารางแฮชแบบกระจาย (DHT) ที่อิงตาม Chord DHT และ กราฟ De Bruijn ( ลำดับ De Bruijn ) ด้วยความเรียบง่ายของ Chord ทำให้ Koorde มีจำนวน...
คอร์เด
ในเครือข่ายแบบเพียร์ทูเพียร์Koordeเป็น ระบบ ตารางแฮชแบบกระจาย (DHT) ที่อิงตามChord DHTและกราฟ De Bruijn ( ลำดับ De Bruijn ) ด้วยความเรียบง่ายของ Chord ทำให้ Koorde มีจำนวน ฮอป O (log n )ต่อโหนด (โดยที่nคือจำนวนโหนดใน DHT) และจำนวนฮอปต่อคำขอค้นหา โดยมี เพื่อนบ้าน O (log n )ต่อโหนด
แนวคิด Chord นั้นอิงอยู่กับ ตัวระบุที่หลากหลาย(เช่น 2 160 ) ในโครงสร้างแบบวงแหวนโดยที่ตัวระบุสามารถแทนได้ทั้งโหนดและข้อมูล โหนดผู้สืบทอดมีหน้าที่รับผิดชอบช่วงของรหัสทั้งหมดระหว่างตัวมันเองกับโหนดก่อนหน้า
กราฟของเดอ บรูอิน

Koorde มีพื้นฐานมาจาก Chord และกราฟ De Bruijn ( ลำดับ De Bruijn ) ใน กราฟ De Bruijn มิติ dจะมีโหนด2d โหนด โดยแต่ละโหนดจะมี ID ที่ไม่ซ้ำกันซึ่งประกอบด้วย d บิตโหนดที่มี ID iจะเชื่อมต่อกับโหนด2i mod 2dและ2i + 1 mod 2dด้วยคุณสมบัตินี้อัลกอริทึมการกำหนดเส้นทางสามารถกำหนดเส้นทางไปยังปลายทางใดก็ได้ในd ฮ อปโดยการ "เลื่อน" บิตของ ID ปลายทางเข้าไปทีละน้อย แต่เฉพาะในกรณีที่มิติของระยะทางระหว่าง mod 1d และ 3d เท่ากันเท่านั้น
การส่งข้อความจากโหนดmไปยังโหนดkทำได้โดยการนำตัวเลขmมาเลื่อนบิตของkทีละบิตจนกว่าตัวเลข m จะถูกแทนที่ด้วยkการเลื่อนแต่ละครั้งจะสอดคล้องกับการกระโดดไปยังที่อยู่ระดับกลางถัดไป การกระโดดนี้ถูกต้องเนื่องจากเพื่อนบ้านของแต่ละโหนดคือผลลัพธ์ที่เป็นไปได้สองอย่างของการเลื่อน 0 หรือ 1 ไปยังที่อยู่ของตัวเอง เนื่องจากโครงสร้างของกราฟเดอ บรูอิน เมื่อบิตสุดท้ายของkถูกเลื่อนแล้ว คำถามจะอยู่ที่โหนดkโหนดkจะตอบว่าคีย์kมีอยู่ หรือไม่
ตัวอย่างการกำหนดเส้นทาง

ตัวอย่างเช่น เมื่อต้องการส่งข้อความจากโหนด 2 (ซึ่งคือ010) ไปยังโหนด 6 (ซึ่งคือ110) ขั้นตอนจะเป็นดังนี้:
- โหนด 2 ส่งต่อข้อความไปยังโหนด 5 (โดยใช้การเชื่อมต่อกับ2 i + 1 mod 8 ) เลื่อนบิตไปทางซ้าย และใส่
1บิตที่อายุน้อยที่สุด (ด้านขวา) - โหนด 5 ส่งต่อข้อความไปยังโหนด 3 (โดยใช้การเชื่อมต่อกับ2 i + 1 mod 8 ) เลื่อนบิตไปทางซ้าย และวางไว้
1เป็นบิตที่อายุน้อยที่สุด (ด้านขวา) - โหนด 3 ส่งต่อข้อความไปยังโหนด 6 (โดยใช้การเชื่อมต่อกับ2 i mod 8 ) เลื่อนบิตไปทางซ้าย และใส่
0บิตที่ใหม่ที่สุด (ด้านขวา) เป็นบิตที่ใหม่ที่สุด
ระดับที่ไม่คงที่ Koorde
การ กำหนดเส้นทางแบบ de Bruijn มิติ dสามารถขยายไปสู่ฐานk ได้โดยที่โหนดiจะเชื่อมต่อกับโหนดk • i + j mod kdโดยที่ 0 ≤ j < kเส้นผ่านศูนย์กลางจะลดลงเหลือΘ (log k n )โหนด Koorde iจะเก็บตัวชี้ไปยัง โหนดต่อเนื่อง kโหนด โดยเริ่มจากโหนดก่อนหน้าของk • i mod kdแต่ละขั้นตอนการกำหนดเส้นทางแบบ de Bruijn สามารถจำลองได้ด้วยจำนวนข้อความที่คาดหวังคงที่ ดังนั้นการกำหนดเส้นทางจึงใช้ จำนวนฮอปที่คาดหวัง O (log k n )สำหรับk = Θ(log n )เราจะได้ดีกรี และเส้นผ่านศูนย์กลางΘ (log n )
อัลกอริทึมการค้นหา
ฟังก์ชันn.lookup ( k , shift , i ) { ถ้าk ∈ ( n , s ] ให้คืนค่า( s ) มิฉะนั้นถ้าi ∈ ( n , s ] ให้คืนค่าp.lookup ( k , shift << 1 , i ∘ topBit ( shift ) ) ; มิฉะนั้นให้คืนค่าs.lookup ( k , shift , i ) }รหัสเทียมสำหรับอัลกอริทึมการค้นหา Koorde ที่โหนดn:
kเป็นกุญแจสำคัญIคือโหนด De Bruijn ในจินตนาการpคือการอ้างอิงถึงรุ่นก่อนหน้าของ2nsคือการอ้างอิงถึงผู้สืบทอดของn
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ คอร์เด
ในเครือข่าย แบบเพียร์ทูเพียร์ Koorde เป็น ระบบ ตารางแฮชแบบกระจาย (DHT) ที่อิงตาม Chord DHT และ กราฟ De Bruijn ( ลำดับ De Bruijn ) ด้วยความเรียบง่ายของ Chord ทำให้ Koorde มีจำนวน...
กราฟของเดอ บรูอิน
Koorde มีพื้นฐานมาจาก Chord และ กราฟ De Bruijn ( ลำดับ De Bruijn ) ใน กราฟ De Bruijn มิติ d จะมี โหนด 2d โหนด โดยแต่ละโหนดจะมี ID ที่ไม่ซ้ำกัน ซึ่ง ประกอบด้วย d บิต โหนด ที่มี ID i จะเชื่อมต่อกับโหนด 2i mod 2d และ 2i + 1 mod 2d ด้วยคุณสมบัตินี้...
ตัวอย่างการกำหนดเส้นทาง
ตัวอย่างเช่น เมื่อต้องการส่งข้อความจากโหนด 2 (ซึ่งคือ 010 ) ไปยังโหนด 6 (ซึ่งคือ 110 ) ขั้นตอนจะเป็นดังนี้:
ระดับที่ไม่คงที่ Koorde
การ กำหนดเส้นทางแบบ de Bruijn มิติ d สามารถขยายไปสู่ ฐาน k ได้ โดยที่โหนด i จะเชื่อมต่อกับโหนด k • i + j mod kd โดย ที่ 0 ≤ j < k เส้นผ่านศูนย์กลางจะลดลงเหลือ Θ (log k n ) โหนด Koorde i จะเก็บตัว ชี้ ไปยัง โหนดต่อเนื่อง k โหนด โดยเริ่มจากโหนดก่อนหน้าของ k • i...