← คู่มือ Mesh Networking — สื่อสารในที่ที่ไม่มีเสาสัญญาณ
LEVEL 2 · ระดับกลาง
proactive กับ reactive — จ่ายก่อนหรือจ่ายตอนใช้
สองสำนักในบทที่แล้วต่างกันที่ เก็บอะไร บทนี้ต่างกันที่ เก็บเมื่อไหร่ และมันคือการเลือกที่กระทบทุกอย่าง
8.1 สองวิธีจ่าย
Proactive = รู้ไว้ก่อน ทุกโหนดคุยกันตลอดเวลาเพื่อให้ตารางพร้อมใช้เสมอ พอมีข้อมูลจะส่งก็ส่งได้ทันที · โปรโตคอลตระกูลนี้คือ OLSR และ Babel
Reactive = ค่อยหาตอนต้องใช้ ไม่ส่งอะไรเลยจนกว่าจะมีคนอยากคุย แล้วค่อยยิงคำถามกระจายออกไปหาเส้นทาง · ตัวแทนคือ AODV
8.2 ราคาที่จ่ายมีหน้าตายังไง
NODES = 20
HELLO_BYTES = 64 # ขนาด hello หนึ่งใบ
LSA_BYTES = 220 # ประกาศสภาพลิงก์ของตัวเองหนึ่งใบ
LINK_BPS = 250_000 # ความเร็วอากาศจริงของวิทยุย่านต่ำ
for every in (1, 2, 5, 10, 30):
per_sec = NODES * (HELLO_BYTES / every) + NODES * (LSA_BYTES / (every * 5))
bits = per_sec * 8
print(f"hello ทุก {every:>2} วิ -> {bits:>7,.0f} bps = {bits/LINK_BPS*100:>4.1f}% ของสายอากาศ")ผลรันจริง
hello ทุก 1 วิ -> 17,280 bps = 6.9% ของสายอากาศ
hello ทุก 2 วิ -> 8,640 bps = 3.5% ของสายอากาศ
hello ทุก 5 วิ -> 3,456 bps = 1.4% ของสายอากาศ
hello ทุก 10 วิ -> 1,728 bps = 0.7% ของสายอากาศ
hello ทุก 30 วิ -> 576 bps = 0.2% ของสายอากาศตัวเลขนี้บอกอะไรที่สำคัญมาก: ค่า overhead ของ proactive ไม่ได้แพงอย่างที่กลัวกัน เครือข่าย 20 โหนดที่คุยกันทุก 2 วินาทีใช้อากาศไป 3.5% เท่านั้น
แล้วทำไมยังมีคนใช้ reactive? เพราะในเครือข่ายที่มีโหนดเยอะแต่คุยกันจริงไม่กี่คู่ การรักษาเส้นทางไปยังทุกปลายทางที่ไม่มีใครใช้คือการเผาอากาศทิ้งเปล่า ๆ และค่านี้โตตามจำนวนโหนดคูณกับความถี่ในการประกาศ — ที่ 20 โหนดคือ 3.5% แต่ที่ 200 โหนดในพื้นที่เดียวกัน มันไม่ใช่แค่โตสิบเท่า เพราะประกาศของทุกคนต้องถูกส่งต่อผ่านทุกคนด้วย
8.3 ราคาของ reactive คือเวลา ไม่ใช่แบนด์วิดท์
ปลายทางห่าง 2 hop -> รอ 160 ms ก่อนไบต์แรกจะออก
ปลายทางห่าง 4 hop -> รอ 320 ms
ปลายทางห่าง 6 hop -> รอ 480 ms(คิดจากการยิงถามและรอคำตอบ hop ละราว 40 มิลลิวินาที ไป-กลับ)
สำหรับการโหลดไฟล์ ครึ่งวินาทีไม่มีใครสังเกต แต่สำหรับ การกดปุ่มพูดวิทยุแล้วเสียงต้องออกทันที ครึ่งวินาทีคือความต่างระหว่างใช้ได้กับใช้ไม่ได้ และงานภาคสนามส่วนใหญ่เป็นแบบหลัง
8.4 ทำไมของจริงถึงเลือกทางสายกลาง
โปรโตคอลที่ใช้งานจริงทุกวันนี้แทบไม่มีตัวไหนบริสุทธิ์ทั้งสองแบบ ท่ามาตรฐานคือ proactive กับเพื่อนบ้านใกล้ ๆ · reactive กับปลายทางไกล ๆ — เพราะเพื่อนบ้านใกล้คือคนที่คุณคุยด้วยบ่อยที่สุดและข้อมูลเน่าเร็วที่สุด ส่วนปลายทางไกลนาน ๆ ใช้ที ยอมรอได้
นี่คือตัวอย่างแรกของหลักการที่จะกลับมาอีกในบทที่ 12: อย่าเลือกข้างเมื่อคุณเลือกได้ทั้งสองข้างในสถานการณ์คนละแบบ