โปรโตคอลการกำหนดเส้นทางแบบแหล่งกำเนิดไดนามิก (Dynamic Source Routing)
สรุปใจความสำคัญ
- DSR เป็นโปรโตคอลแบบ On-demand ที่สร้างเส้นทางเมื่อต้องการใช้งานเท่านั้น
- ใช้การกำหนดเส้นทางจากแหล่งกำเนิด (Source Routing) โดยระบุโหนดทั้งหมดในส่วนหัวของแพ็กเก็ต
- เป็นโปรโตคอลแบบ Beacon-less ไม่ต้องส่งแพ็กเก็ต Hello เพื่อรักษาการเชื่อมต่อกับเพื่อนบ้าน
- เหมาะสำหรับเครือข่าย MANETs ที่มีทรัพยากรจำกัดและมีการเคลื่อนที่ต่ำ
Dynamic Source Routing (DSR) คือโปรโตคอลการกำหนดเส้นทาง (Routing Protocol) สำหรับเครือข่ายเมชไร้สาย (Wireless Mesh Networks) และเครือข่ายแอดฮอกเคลื่อนที่ (Mobile Ad hoc Networks หรือ MANETs) โดยมีลักษณะเด่นคือเป็นโปรโตคอลแบบ On-demand หรือแบบตอบสนอง ซึ่งจะสร้างเส้นทางขึ้นเมื่อมีโหนดต้นทางต้องการส่งข้อมูลเท่านั้น แทนที่จะรักษาตารางการกำหนดเส้นทางให้เป็นปัจจุบันอยู่ตลอดเวลาเหมือนโปรโตคอลแบบ Table-driven
กลไกการทำงานของ DSR
ความแตกต่างที่สำคัญของ DSR เมื่อเทียบกับโปรโตคอลอื่น เช่น AODV คือการใช้ การกำหนดเส้นทางจากแหล่งกำเนิด (Source Routing) ซึ่งหมายความว่าโหนดต้นทางจะเป็นผู้กำหนดเส้นทางทั้งหมดที่แพ็กเก็ตข้อมูลจะต้องเดินทางผ่านจนถึงปลายทาง และระบุที่อยู่ของโหนดตัวกลางทุกโหนดไว้ในส่วนหัว (Header) ของแพ็กเก็ต
ระยะการค้นหาเส้นทาง (Route Discovery Phase)
เมื่อโหนดต้นทางต้องการส่งข้อมูลแต่ไม่มีเส้นทางไปยังปลายทางในแคช (Route Cache) จะเริ่มกระบวนการดังนี้:
- การส่งคำขอเส้นทาง (Route Request - RREQ): ต้นทางจะส่งแพ็กเก็ต RREQ แบบกระจาย (Flooding) ไปยังโหนดเพื่อนบ้าน โดยใน RREQ จะมีหมายเลขลำดับ (Sequence Number) เพื่อป้องกันการเกิดลูป (Loop) และป้องกันไม่ให้โหนดตัวกลางส่งแพ็กเก็ตซ้ำ
- การสะสมเส้นทาง: ทุกโหนดที่ได้รับ RREQ และไม่ใช่ปลายทาง จะเพิ่มที่อยู่ของตนเองลงในแพ็กเก็ตก่อนส่งต่อไปยังโหนดถัดไป ทำให้ปลายทางได้รับรายการโหนดทั้งหมดที่ต้องผ่าน
- การตอบกลับเส้นทาง (Route Reply - RREP): เมื่อปลายทางได้รับ RREQ จะส่งแพ็กเก็ต RREP กลับไปยังต้นทาง โดยใช้เส้นทางที่ระบุไว้ใน RREQ หรือใช้เส้นทางที่มีอยู่ในแคชของตนเอง
ระยะการบำรุงรักษาเส้นทาง (Route Maintenance Phase)
เนื่องจากโหนดใน MANETs มีการเคลื่อนที่ตลอดเวลา เส้นทางที่เคยใช้งานได้อาจขาดหายไป DSR จึงมีกลไกจัดการดังนี้:
- การแจ้งข้อผิดพลาด (Route Error - RERR): หากโหนดตัวกลางพบว่าไม่สามารถส่งข้อมูลไปยังโหนดถัดไปในเส้นทางที่ระบุได้ จะสร้างแพ็กเก็ต RERR ส่งกลับไปยังต้นทาง
- การปรับปรุงแคช: เมื่อต้นทางได้รับ RERR จะลบเส้นทางที่เสียออกจากแคช และหากจำเป็นต้องส่งข้อมูลต่อ จะเริ่มกระบวนการค้นหาเส้นทาง (Route Discovery) ใหม่อีกครั้ง
การจัดการแบนด์วิดท์และประสิทธิภาพ
DSR ถูกออกแบบมาเพื่อลดการใช้แบนด์วิดท์ของแพ็กเก็ตควบคุม (Control Packets) โดยมีคุณสมบัติเด่นคือ เป็นโปรโตคอลแบบไร้บีคอน (Beacon-less) ซึ่งไม่ต้องส่งแพ็กเก็ต Hello เพื่อแจ้งสถานะการมีอยู่ของโหนดเพื่อนบ้านเป็นระยะๆ ช่วยลดการสิ้นเปลืองพลังงานและทรัพยากรเครือข่าย
ข้อดีและข้อจำกัด
ข้อดี
- ลดภาระเครือข่าย: ไม่ต้องส่งข้อมูลอัปเดตตารางเส้นทางตลอดเวลา ทำให้ประหยัดแบนด์วิดท์ในสภาวะที่เครือข่ายไม่มีการส่งข้อมูล
- ประสิทธิภาพของแคช: โหนดตัวกลางสามารถใช้ข้อมูลในแคชเพื่อช่วยในการส่งต่อข้อมูลได้รวดเร็วขึ้น
- ความยืดหยุ่น: สามารถทำงานได้ดีในสภาพแวดล้อมที่มีการเคลื่อนที่ต่ำหรือคงที่
ข้อจำกัด
- ภาระส่วนหัว (Overhead): เนื่องจากการระบุที่อยู่ของทุกโหนดในแพ็กเก็ต ทำให้ขนาดส่วนหัวของแพ็กเก็ตใหญ่ขึ้น โดยเฉพาะในเครือข่ายที่ใช้ IPv6 หรือเส้นทางที่มีจำนวนโฮป (Hop) มาก
- ความล่าช้าในการเชื่อมต่อ: มีความล่าช้าในการเริ่มส่งข้อมูลครั้งแรก (Setup Delay) สูงกว่าโปรโตคอลแบบ Table-driven
- ผลกระทบจากการเคลื่อนที่: ประสิทธิภาพจะลดลงอย่างรวดเร็วเมื่อโหนดมีการเคลื่อนที่สูง เนื่องจากเส้นทางในแคชจะล้าสมัย (Stale) ได้ง่าย และ DSR ไม่มีการซ่อมแซมลิงก์ที่ขาดหายในระดับท้องถิ่น (Local Repair)
คำถามที่พบบ่อย
Dynamic Source Routing (DSR) แตกต่างจาก AODV อย่างไร?
ความแตกต่างหลักคือ DSR ใช้ Source Routing ซึ่งต้นทางเป็นผู้กำหนดเส้นทางทั้งหมดไว้ในแพ็กเก็ต ในขณะที่ AODV ใช้การกำหนดเส้นทางแบบ Hop-by-hop โดยอาศัยตารางการกำหนดเส้นทางในแต่ละโหนดตัวกลาง
ทำไม DSR ถึงถูกเรียกว่าเป็นโปรโตคอลแบบ Beacon-less?
เพราะ DSR ไม่จำเป็นต้องส่งแพ็กเก็ต Hello หรือ Beacon เป็นระยะๆ เพื่อแจ้งให้โหนดรอบข้างทราบว่าตนเองยังอยู่ในเครือข่าย ซึ่งช่วยลดการใช้แบนด์วิดท์และประหยัดพลังงาน
ข้อเสียหลักของการใช้ Source Routing ใน DSR คืออะไร?
คือการเพิ่ม Overhead ในส่วนหัวของแพ็กเก็ต เนื่องจากต้องบรรจุที่อยู่ของทุกโหนดที่ข้อมูลต้องเดินทางผ่าน ยิ่งเส้นทางยาวหรือใช้ที่อยู่ขนาดใหญ่ (เช่น IPv6) จะยิ่งทำให้แพ็กเก็ตมีขนาดใหญ่ขึ้น
DSR ทำงานอย่างไรเมื่อเส้นทางขาดหาย?
เมื่อโหนดตัวกลางพบว่าลิงก์ขาด จะส่งแพ็กเก็ต Route Error (RERR) กลับไปยังต้นทาง เพื่อให้ต้นทางลบเส้นทางนั้นออกจากแคชและเริ่มกระบวนการค้นหาเส้นทางใหม่ (Route Discovery)