โปรโตคอลการกำหนดเส้นทาง AODV สำหรับเครือข่ายไร้สายแบบแอดฮอก
สรุปใจความสำคัญ
- AODV ถูกพัฒนาโดย Charles Perkins และ Elizabeth Royer และตีพิมพ์ครั้งแรกในปี 1999
- เป็นโปรโตคอลแบบ On-Demand ที่จะสร้างเส้นทางส่งข้อมูลเมื่อมีความต้องการใช้งานจริงเท่านั้น
- ใช้ในมาตรฐาน Zigbee สำหรับเครือข่ายไร้สายพลังงานต่ำ
- ใช้หมายเลขลำดับ (Sequence Number) เพื่อป้องกันการเกิดลูปในเส้นทางส่งข้อมูล
Ad hoc On-Demand Distance Vector (AODV) เป็นโปรโตคอลการกำหนดเส้นทาง (Routing Protocol) ที่ออกแบบมาเพื่อใช้ในเครือข่ายไร้สายแบบแอดฮอกเคลื่อนที่ (Mobile Ad hoc Networks หรือ MANETs) และเครือข่ายไร้สายแบบแอดฮอกประเภทอื่น ๆ โดยมีจุดเด่นที่การสร้างเส้นทางส่งข้อมูลเมื่อมีความต้องการใช้งานจริงเท่านั้น (On-Demand)
ประวัติและการพัฒนา
โปรโตคอล AODV ถูกพัฒนาร่วมกันโดย Charles Perkins จาก Sun Microsystems และ Elizabeth Royer (ปัจจุบันคือ Elizabeth Belding) จาก University of California, Santa Barbara โดยมีการตีพิมพ์เผยแพร่ครั้งแรกในงาน ACM 2nd IEEE Workshop on Mobile Computing Systems and Applications เมื่อเดือนกุมภาพันธ์ ปี 1999
ด้วยประสิทธิภาพและความสำคัญในเชิงวิชาการ AODV ได้รับรางวัล SIGMOBILE Test of Time Award ในปี 2018 และมีการอ้างอิงในงานวิจัยผ่าน Google Scholar มากกว่า 30,000 ครั้ง ณ สิ้นปี 2022 นอกจากนี้ยังได้รับการตีพิมพ์โดย Internet Engineering Task Force (IETF) ในรูปแบบ Experimental RFC 3561 เมื่อปี 2003
การประยุกต์ใช้งานและรูปแบบการติดตั้ง
AODV ถูกนำไปใช้เป็นโปรโตคอลการกำหนดเส้นทางหลักใน Zigbee ซึ่งเป็นมาตรฐานเครือข่ายไร้สายที่ใช้พลังงานต่ำและมีอัตราการส่งข้อมูลต่ำ นอกจากนี้ยังมีซอฟต์แวร์ที่นำ AODV ไปปรับใช้ในรูปแบบต่าง ๆ เช่น MAD-HOC, Kernel-AODV, AODV-UU, AODV-UCSB และ AODV-UIUC
กลไกการทำงานของ AODV
ในระบบ AODV โหนดแต่ละโหนดจะมี หมายเลขลำดับ (Sequence Number) ของตนเอง ซึ่งจะเพิ่มขึ้นอย่างต่อเนื่องเพื่อป้องกันการเกิดลูป (Loop) ในเส้นทางการส่งข้อมูล นอกจากนี้ โหนดที่ทำหน้าที่กำหนดเส้นทางจะเก็บข้อมูลในดัชนีเส้นทาง (Path Index) ซึ่งประกอบด้วยที่อยู่ของโหนดถัดไป (Next Hop), หมายเลขลำดับ และระยะทางรวม (มักวัดเป็นจำนวน Hop หรือเกณฑ์วัดคุณภาพลิงก์อื่น ๆ)
กระบวนการค้นหาเส้นทาง
เครือข่าย AODV จะไม่มีการส่งข้อมูลควบคุมจนกว่าจะมีความจำเป็นต้องส่งแพ็กเก็ตข้อมูลไปยังโหนดปลายทาง โดยใช้แพ็กเก็ตควบคุม 3 ประเภทหลัก ดังนี้:
- Route Request (RREQ): แพ็กเก็ตคำขอเส้นทางที่โหนดต้นทางจะส่งแบบกระจาย (Broadcast) ไปทั่วเครือข่ายเพื่อค้นหาเส้นทางไปยังปลายทาง
- Route Reply (RREP): แพ็กเก็ตตอบกลับเส้นทางที่ส่งจากโหนดปลายทางหรือโหนดที่ทราบเส้นทางไปยังปลายทาง กลับมายังโหนดต้นทางผ่านเส้นทางชั่วคราว
- Route Error (RERR): แพ็กเก็ตแจ้งเตือนข้อผิดพลาด ซึ่งจะถูกส่งเมื่อโหนดตรวจพบว่าเส้นทางเดิมไม่สามารถใช้งานได้อีกต่อไป เพื่อให้โหนดอื่น ๆ ในเครือข่ายปรับปรุงข้อมูลเส้นทาง
การทำงานของ RREQ จะมีค่า Time to Live (TTL) เพื่อจำกัดจำนวนครั้งในการส่งต่อ เพื่อป้องกันไม่ให้แพ็กเก็ตวนเวียนในเครือข่ายตลอดไป และมีกลไก Binary Backoff ในกรณีที่ไม่ได้รับการตอบกลับ ซึ่งจะทำการส่งคำขอซ้ำโดยเพิ่มช่วงเวลาห่างระหว่างการส่งขึ้นเรื่อย ๆ จนถึงค่าสูงสุดที่กำหนดไว้
การประเมินประสิทธิภาพ
ข้อดี
- ลดปริมาณทราฟฟิก: ไม่สร้างทราฟฟิกควบคุมในกรณีที่เส้นทางถูกสร้างขึ้นและใช้งานได้อยู่แล้ว
- ประหยัดทรัพยากร: การกำหนดเส้นทางแบบ Distance Vector มีความซับซ้อนในการคำนวณต่ำและไม่ต้องการหน่วยความจำจำนวนมาก
ข้อจำกัด
- ความหน่วงในการเชื่อมต่อ: เนื่องจากเป็นโปรโตคอลแบบ On-Demand ทำให้ใช้เวลาในการสร้างการเชื่อมต่อระหว่างโหนดสองโหนดนานกว่าโปรโตคอลประเภท Proactive (ที่สร้างตารางเส้นทางไว้ล่วงหน้า)
คำถามที่พบบ่อย
AODV แตกต่างจากโปรโตคอลการกำหนดเส้นทางแบบ Proactive อย่างไร?
AODV เป็นโปรโตคอลแบบ On-Demand (Reactive) ซึ่งจะค้นหาเส้นทางเมื่อต้องการส่งข้อมูลเท่านั้น ในขณะที่โปรโตคอลแบบ Proactive จะสร้างและรักษาตารางเส้นทางไปยังทุกโหนดในเครือข่ายไว้ตลอดเวลา ทำให้ AODV ประหยัดแบนด์วิดท์และทรัพยากรมากกว่าในเครือข่ายที่มีการเคลื่อนที่สูง
แพ็กเก็ต RREQ ทำหน้าที่อะไรใน AODV?
RREQ (Route Request) คือแพ็กเก็ตที่โหนดต้นทางส่งแบบ Broadcast เพื่อค้นหาเส้นทางที่สั้นที่สุดหรือเหมาะสมที่สุดไปยังโหนดปลายทางที่ต้องการสื่อสารด้วย
AODV ป้องกันการเกิด Loop ในเครือข่ายได้อย่างไร?
AODV ใช้หมายเลขลำดับ (Sequence Number) ที่เพิ่มขึ้นเรื่อย ๆ เพื่อให้โหนดสามารถระบุได้ว่าข้อมูลเส้นทางใดเป็นข้อมูลที่ทันสมัยที่สุด และป้องกันไม่ให้แพ็กเก็ตวิ่งวนเป็นวงกลมในเครือข่าย
ทำไม AODV ถึงเหมาะกับ Zigbee?
เพราะ Zigbee เน้นการใช้พลังงานต่ำและอัตราการส่งข้อมูลต่ำ AODV จึงตอบโจทย์เนื่องจากไม่สร้างทราฟฟิกควบคุมที่ไม่จำเป็น และใช้ทรัพยากรในการคำนวณและหน่วยความจำน้อย
RERR มีความสำคัญอย่างไร?
RERR (Route Error) ใช้สำหรับแจ้งเตือนโหนดอื่น ๆ ในเครือข่ายว่าลิงก์เชื่อมต่อบางจุดขาดหายไป ทำให้โหนดที่ใช้เส้นทางนั้นต้องเริ่มกระบวนการค้นหาเส้นทางใหม่