關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > Ad hoc路由協議實現研究

        Ad hoc路由協議實現研究

        作者: 時間:2009-09-24 來源:網絡 收藏

        (3)轉發與路由混合有些 路南協議轉發和路由功能沒有明顯界線,如DSR。該協議要求每個分組(不只是路由控制分組)必需攜帶一個特殊的DSR頭以供用戶空間中的DSR守護進程處理。該路由和轉發功能結合的方式與現代操作系統內部的路由體系結構不相適應,且很難高效應用。將整個放入內核,或把核心路由表分離出來而將轉發功能放入用戶空間。而有些情況,違反該分離原則,獲得一些優化以減少路由開銷。
        (4)新的路由模型有些采用非傳統的路由模式(如源路由、基于流的轉發路由等)。這些路由模式與當前的IP路由體系結構相背離,并且對系統設計提出挑戰。在源路由方式下,一個分組要經過的全部路徑由源節點決定,并且將這些路由信息編碼在分組頭部。而傳統IP路由轉發功能是逐跳的,并且由本地路由表驅動。在基于流的轉發方式下每個分組都有一個流ID,網絡中的每個節點都有一個流表,轉發的過程是根據流ID查找流表,而路由的過程是在每個節點建立流表。
        大多數通用操作系統不能靈活支持新的路由模型,因此這些的實現既要修改內核;IP棧又要使用內核擴展機制避開IP棧。
        (5)跨層交互無線信道為跨層交互作用提供許多機會。在某些路由算法中,路由協議的設計要使用物理層和鏈路層參數,如信號強度、鏈路狀態等。概念上應放棄跨層交互,因為雖然跨層設計會提供最優化,但不加選擇的訪問所有底層參數會嚴重損害網絡體系結構。許多路由協議使用其他層路由協議信息以提高性能,例如每個相鄰節點的鏈路質量信息是某些路由算法所需的。盡管可得到這些信息,但跨越不同的硬件和操作系統時沒有統一的標準,需通過標準方式以便獲得低層信息,這對開發路由協議非常重要。

        本文引用地址:http://www.104case.com/article/202642.htm

        3 新的體系結構
        首先提出一種通用方法以在通用操作系統中支持按需路由協議,并提出下面機制以增強當前分組轉發功能。在內核路由表的每個條目增加一個標志表明該條目是否為按需路由條目,從而當路由不可達時,內核將分組排隊緩存而不是直接丟棄。一個路由若具有空的下一條或接口則將緩存以等待路由發現。同時路由表無需包括所可能目的地,使用基于子網標志的路由和默認路由可到達同樣的目的。將一種稱為按需路由組件 (ODRC)的新組件加入內核分組轉發功能以實現按需路由功能。當內核收到一個分組并發現沒有向應的路由時,它首先通知用戶空間的路由守護進程對該分組的目的地發出路由請求,然后將該分組緩存等待守護進程返回路由發現狀態。如果該過程成功完成,則填充相應路由表條目,緩存的分組重新插入轉發隊列。為解決路由緩存問題,必須在每個路由條目上加入時間戳,記錄該條目最后被使用時間。時間戳用于刪除一個未使用的過期路由。

        4 Linux下的一種實現
        4.1 Linux系統網絡協議棧體系結構
        Linux網絡系統有硬件,數據鏈路層、IP層、INET Socket層、BSD Socket層和應用層5部分。其中在Linux內核中分組包括前4部分。圖1為Linux系統基于TCP/IP的網絡體系結構。

        4.2 Linux系統網絡堆棧的IP層
        Linux路由系統中主要保存3種路由相關的數據:(1)在物理上與本機相連接的主機地址信息表,即鄰居節點表。鄰居節點表用neigh_table{} 數據結構表示,以neighbour{}數據結構為節點;(2)在網絡訪問中判斷一個網絡地址的數據表,是轉發信息庫FIB,用來保存路由規則,用 fib_table{)數據結構鏈表來表示;(3)最近使用過的路由緩存表,稱為路由緩存表,用rtable{}數據結構鏈表表示。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 金乡县| 宝山区| 永平县| 佛冈县| 福贡县| 宿松县| 景洪市| 依兰县| 织金县| 连城县| 张家港市| 彰化市| 岱山县| 翁源县| 扎囊县| 博客| 全椒县| 德化县| 金坛市| 云安县| 五莲县| 信阳市| 利辛县| 乌拉特中旗| 红原县| 阳朔县| 富阳市| 兴海县| 电白县| 吉水县| 玉门市| 临桂县| 安平县| 巴楚县| 白玉县| 兴和县| 漳平市| 名山县| 苗栗市| 河津市| 建阳市|