Ad hoc路由協議實現研究
1 引言
目前的路由協議僅是在仿真條件下研究,很少有真正的測試床實現。但仿真不能完全反映路由協議在實際工作中的真實狀態,無法獲得實際系統的精確行為。實現一個移動自組織網路由協議需要許多系統組件。許多路由協議必須事件支持,因此要增加對相應事件的支持。這里探究在實際操作系統中實現Ad hoc路由協議所遇到的基本問題,并提出一種新的體系結構解決方案。
2 Ad hoc路由協議實現的基本問題
2.1 一般路由體系結構
當前的路由體系結構將按功能分為分組轉發和分組路由兩部分。其中,分組轉發功能是在操作系統內核部分實現;而路由功能在用戶空間作為守護程序實現。一般路由體系結構為:內核收到分組,查詢路由表并通過相應的網絡接口將分組轉發到下一跳鄰居。內核路由表實體由路由守護進程根據其路由算法生成。轉發和路由功能分開的思想與基本 Unix系統機制一策略分開的思想一致。該機制高效,輕量,因為策略的設計可在很大的時間跨度上改變而不會影響機制。分組轉發可高效轉發每個分組,所以該機制應位于內核。這樣分組可盡快通過該節點。該分離原理使得現代操作系統的路由功能更高效靈活。同時在不改變系統內核的情況下,也可不斷改進路由功能。
2.2 按需路由實現的基本問題
Ad hoc網絡的路由協議可分為主動路由和反應式路由兩類。主動路由協議(表驅動)通過周期性的交換控制信息維護一個到所有可能目的地的路由,而反應式路由 (按需)僅當有需要時才發起路由請求。主動路南協議如(DSDV)在路由體系中能像有線網絡中的路由協議(如RIP,OSPF,BGP)那樣很容易地在用戶空間中實現。而反應式路由協議.如AODV和DSR則帶來以下挑戰:
(1)沒有路由分組的處理通常經轉發模塊的分組都會匹配內核路由表,如果人口沒有匹配的目的地址,內核就會立即丟棄該分組。而在按需路由協議中這是不可取的,因為并不是所有的路由都是事先存在的,有些是在有路由需求的時才進行路由發現得到的,所以正確方法是通知路由守護進程路由請求,將分組緩存直到路由發現過程結束且更新路由表。但操作系統不支持這種新的分組轉發行為的機制,而且內核不對這些任務(如排隊)所有未處理的分組提供足夠的支持。
(2)更新路由緩存按需路由協議通常是在用戶空間中緩存最近使用的路南,以減少路由發現開銷。路由緩存中的每個條目都有一個定時器,當相應的路由被使用時,需重新設置該定時器,而當達到定時時間,要被刪除該條目。如果內核路由表中的條目在事先定義的時間內未被使用(如未被查找過),該信息必須能夠被用戶空間的路由守護進程獲得。而這在當前的路由協議體系下很難實現,因為內核中沒有可用的路由使用記錄。
評論