欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

WindowsCE平臺下源路由的實(shí)現(xiàn)方法

文檔序號:7928440閱讀:176來源:國知局
專利名稱:Windows CE平臺下源路由的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明屬于嵌入式移動平臺Windows CE (以下簡稱WinCE)下建立無 線自組織網(wǎng)絡(luò)(AdHoc網(wǎng)絡(luò))源路由協(xié)議提供方法,特別涉及Windows CE 平臺下源路由的實(shí)現(xiàn)方法。
背景技術(shù)
操作系統(tǒng)自身開放程度的限制使我們不太可能對WinCE的核心協(xié)議棧 本身作修改,因此只能通過調(diào)用現(xiàn)有的函數(shù)接口和增加功能模塊的方式來實(shí) 現(xiàn)Ad Hoc路由協(xié)議。在網(wǎng)絡(luò)編程方面,WinCE支持NDIS(Network Driver Interface Specification)中間層驅(qū)動,可以用于網(wǎng)絡(luò)數(shù)據(jù)包的過濾和修改;提供 Windows Sockets網(wǎng)絡(luò)通信接口 ,可以用于部分收發(fā)包操作和對協(xié)議可用性的 測試;提供IPHelper函數(shù)接口,可以用于對IP路由表的操作?;谝陨显颍?本方法主要描述了在NDIS層實(shí)現(xiàn)源路由的方法。
由于操作系統(tǒng)自身開放程度的限制,在網(wǎng)絡(luò)協(xié)議編程方面,使用Linux 系統(tǒng)平臺可以更直觀地在其網(wǎng)絡(luò)層編寫或修改,使其具備路由功能。相對于 此,Windows平臺并未為我們提供如此寬松的開發(fā)空間,WinCE下的路由協(xié) 議也相對較少。當(dāng)前WinCE下已實(shí)現(xiàn)的有AODV、 DSDV等基于距離矢量 的路由協(xié)議。因?yàn)橄到y(tǒng)自身具備路由功能,此類協(xié)議可以簡單地利用系統(tǒng)自 身的路由表實(shí)現(xiàn)轉(zhuǎn)發(fā)操作。源路由的實(shí)現(xiàn)不僅需要此類技術(shù)的支持,還需要 通過數(shù)據(jù)包頭部信息的獲取及修改,實(shí)現(xiàn)路由功能。 發(fā)明內(nèi)容本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)不足,提供一種Windows CE平臺 下源路由的實(shí)現(xiàn)方法,描述了在嵌入式操作系統(tǒng)WinCE上源路由的實(shí)現(xiàn)方法 及關(guān)鍵技術(shù)。使用了本方法的源路由協(xié)議不僅能使網(wǎng)絡(luò)中的節(jié)點(diǎn)在一跳范圍 內(nèi)具有良好的通訊性能,而且具備多跳通信能力,并可以正確地建立路由和 實(shí)時(shí)地啟動路由維護(hù)過程。本發(fā)明為其它Ad Hoc網(wǎng)絡(luò)路由協(xié)議的編寫提供 了一種實(shí)用框架。
本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的包括以下步驟
&印/在PASSTHRU實(shí)例程序的基礎(chǔ)上,在發(fā)送封包的函數(shù) MiniPortSendPackets和接收封包的接口函數(shù)ProtocolReceivePacket中分別加 入發(fā)送過濾器和接收過濾器,將截獲的網(wǎng)絡(luò)封包送入源路由算法模塊進(jìn)行處 理,從而對處理的封包進(jìn)行路由;
^印2發(fā)送過濾器用來判斷上層發(fā)來的封包是否需要經(jīng)過源路由算法模 塊的處理,源路由算法模塊首先使用隊(duì)列緩存沒有到達(dá)目的節(jié)點(diǎn)的路由的封 包,并為該封包發(fā)起一次路由發(fā)現(xiàn)過程;
S/印3若路由發(fā)現(xiàn)過程返回一條路徑,則利用IPHelper的API接口函數(shù) 實(shí)時(shí)地更新位于TCP/IP協(xié)議棧的系統(tǒng)路由表,且同時(shí)為該封包創(chuàng)建源路由頭 部,該頭部位于UDP頭部之后、數(shù)據(jù)字段之前,將此路徑放入該源路由頭部 path字段中,并設(shè)置一個指向該路徑中每一跳的索引指針I(yè)ndex,在將頭部各 個字段作相應(yīng)的初始化之后,向下發(fā)送至微端口;
&卬¥接收過濾器負(fù)責(zé)分離下層發(fā)來的封包是否是源路由協(xié)議的控制包, 如果是協(xié)議的控制包則送入源路由算法模塊進(jìn)行處理,對于數(shù)據(jù)包,則根據(jù) path和Index字段綜合判定是否已經(jīng)到達(dá)目的節(jié)點(diǎn),或者根據(jù)包頭中提供的所述的源路由算法模塊負(fù)責(zé)發(fā)送、接收、分析和處理源路由協(xié)議的控制 包及數(shù)據(jù)包,控制包被定義為固定端口的UDP包,使用WinSocket的API 接口發(fā)送,對數(shù)據(jù)包的分析和處理主要集中于對其包頭的操作之上。
本發(fā)明通過對WinCE的NDIS層的研究,利用自定義的數(shù)據(jù)包頭部、相 應(yīng)的控制包和NDIS層數(shù)據(jù)過濾的功能,完善了節(jié)點(diǎn)路由層的功能,為建立 基于WinCE的AdHoc網(wǎng)絡(luò)提供支持。


圖1為本發(fā)明的整體設(shè)計(jì)框架圖2為本發(fā)明的發(fā)送過濾器流程圖3為本發(fā)明的接收過濾器流程圖。
下面結(jié)合附圖對本發(fā)明的內(nèi)容作進(jìn)一步詳細(xì)說明。 .
具體實(shí)施例方式
參照圖1所示,在這里詳細(xì)說明本發(fā)明的工作流程。
Ste/ J在NDIS層的入口函數(shù)DriverEntry中為句柄SendPacketsHandler 和句柄ReceivePacketHandler分別定義發(fā)包與收包入口函數(shù) MiniportSendPackets禾P ProtocolReceivePacket。在這兩個函數(shù)中分別加入發(fā)送 過濾器OutputHook和接收過濾器InputHook,以便將截獲的網(wǎng)絡(luò)封包送入源 路由算法模塊進(jìn)行處理,從而對處理的封包進(jìn)行路由;
5tep2在NDIS層捕獲由網(wǎng)絡(luò)層傳遞下來的封包,發(fā)送過濾器主要用來判 斷此封包是否需要經(jīng)過源路由算法模塊的處理,發(fā)送過濾器將未經(jīng)源路由協(xié) 議處理的封包送入源路由算法模塊進(jìn)行處理,源路由算法模塊首先使用隊(duì)列緩存沒有到達(dá)目的節(jié)點(diǎn)的路由的封包,并為該封包發(fā)起一次路由發(fā)現(xiàn)過程, 在路由發(fā)現(xiàn)及路由維護(hù)的過程中所涉及的控制包,均是固定端口的UDP包;
&印3待源路由算法模塊路由發(fā)現(xiàn)過程結(jié)束,實(shí)時(shí)地更新位于TCP/IP協(xié) 議棧的系統(tǒng)路由表,使源路由的路由表和TCP/IP系統(tǒng)路由保持一致,其目的 在于利用系統(tǒng)路由表轉(zhuǎn)發(fā)目的節(jié)點(diǎn)不是自己的封包,從而實(shí)現(xiàn)多跳路由的功 能;并向封包添加源路由頭部,并從隊(duì)列中取出該封包并發(fā)往目的節(jié)點(diǎn);若 路由發(fā)現(xiàn)返回路徑,則為該封包創(chuàng)建源路由頭部,該頭部位于UDP頭部之后、 數(shù)據(jù)字段之前,將此路徑放入該源路由頭部path字段中,并設(shè)置一個指向該 路徑中每一跳的索引指針I(yè)ndex,在將頭部各個字段作相應(yīng)的初始化之后, 向下發(fā)送至微端口;
Ste/^在NDIS層捕獲由微端口傳遞上來的封包,接收過濾器主要負(fù)責(zé)分 離下層發(fā)來的封包是否是源路由協(xié)議的控制包,如果此包是固定端口的UDP 包,則被判定位控制包,并將送入源路由算法模塊進(jìn)行處理;對于數(shù)據(jù)包可 以參照圖3完成向上傳遞、丟棄或者轉(zhuǎn)發(fā)工作;
參照圖2所示,在這里詳細(xì)說明發(fā)送過濾器的工作流程。
從上層傳遞下來的封包首先進(jìn)入發(fā)送過濾器,首先獲得其以太網(wǎng)及IP頭 部,若此時(shí)適配器及Ad Hoc網(wǎng)絡(luò)已初始化完畢,且此包不是廣播包,則可 以準(zhǔn)備發(fā)送此包,若目的節(jié)點(diǎn)可達(dá)并此時(shí)源路由算法模塊知道到達(dá)目的節(jié)點(diǎn) 的路徑,則將其發(fā)送出去,否則將這個封包緩存起來并發(fā)起一次路由發(fā)現(xiàn)過 程,以等待源路由算法模塊找到這條路徑,緩存的封包將在路由發(fā)現(xiàn)成功后 被發(fā)送出去。
參照圖3所示,在這里詳細(xì)說明接收過濾器的工作流程。接收過濾器主要負(fù)責(zé)分離下層發(fā)上來的封包是否是源路由協(xié)議的控制
包,如果此包是固定端口的UDP包,則被判定為控制包,并將其送入源路由 算法模塊進(jìn)行處理;對于數(shù)據(jù)包,則首先判斷本節(jié)點(diǎn)是否在path字段中,若 在path字段中并且自己是目的節(jié)點(diǎn),則此封包已到達(dá),為其分配線程并等待 系統(tǒng)處理;若在path字段中但自己不是目的節(jié)點(diǎn),且為Index所指節(jié)點(diǎn),則 按照path字段,修改Index為Index+1的同時(shí),將此封包發(fā)送到新的Index 所指節(jié)點(diǎn),完成轉(zhuǎn)發(fā)工作。
權(quán)利要求
1、一種Windows CE平臺下源路由的實(shí)現(xiàn)方法,其特征在于,包括以下步驟Step1在PASSTHRU實(shí)例程序的基礎(chǔ)上,在發(fā)送封包的函數(shù)MiniPortSendPackets和接收封包的接口函數(shù)Protoco1ReceivePacket中分別加入發(fā)送過濾器和接收過濾器,將截獲的網(wǎng)絡(luò)封包送入源路由算法模塊進(jìn)行處理,從而對處理的封包進(jìn)行路由;Step2發(fā)送過濾器用來判斷上層發(fā)來的封包是否需要經(jīng)過源路由算法模塊的處理,源路由算法模塊首先使用隊(duì)列緩存沒有到達(dá)目的節(jié)點(diǎn)的路由的封包,并為該封包發(fā)起一次路由發(fā)現(xiàn)過程;Step3若路由發(fā)現(xiàn)過程返回一條路徑,則利用IPHelper的API接口函數(shù)實(shí)時(shí)地更新位于TCP/IP協(xié)議棧的系統(tǒng)路由表,且同時(shí)為該封包創(chuàng)建源路由頭部,該頭部位于UDP頭部之后、數(shù)據(jù)字段之前,將此路徑放入該源路由頭部path字段中,并設(shè)置一個指向該路徑中每一跳的索引指針I(yè)ndex,在將頭部各個字段作相應(yīng)的初始化之后,向下發(fā)送至微端口;Step4接收過濾器負(fù)責(zé)分離下層發(fā)來的封包是否是源路由協(xié)議的控制包,如果是協(xié)議的控制包則送入源路由算法模塊進(jìn)行處理,對于數(shù)據(jù)包,則根據(jù)path和Index字段綜合判定是否已經(jīng)到達(dá)目的節(jié)點(diǎn),或者根據(jù)包頭中提供的路由轉(zhuǎn)發(fā)該數(shù)據(jù)包;
2、 根據(jù)權(quán)利要求1所述的Windows CE平臺下源路由的實(shí)現(xiàn)方法,其特 征在于,源路由算法模塊負(fù)責(zé)發(fā)送、接收、分析和處理源路由協(xié)議的控制包 及數(shù)據(jù)包,控制包被定義為固定端口的UDP包,使用WinSocket的API接口發(fā)送,對數(shù)據(jù)包的分析和處理主要集中于對其包頭的操作之上。
全文摘要
本發(fā)明公開了一種Windows CE平臺下源路由的實(shí)現(xiàn)方法,為其它Ad Hoc網(wǎng)絡(luò)源路由協(xié)議的編寫提供了一種通用框架。通過在NDIS層設(shè)置過濾器接口,截獲向上(TCP/IP層)和向下(微端口、物理層)發(fā)送的數(shù)據(jù)包,根據(jù)路由規(guī)則,并配合控制包、數(shù)據(jù)包頭部的信息對數(shù)據(jù)包進(jìn)行一系列操作,而達(dá)到源路由的目的。本發(fā)明的源路由協(xié)議不僅能使網(wǎng)絡(luò)中的節(jié)點(diǎn)在一跳范圍內(nèi)具有良好的通訊性能,而且具備多跳通信能力,并可以正確地建立路由和實(shí)時(shí)地啟動路由維護(hù)過程。
文檔編號H04W40/02GK101459945SQ20081023650
公開日2009年6月17日 申請日期2008年12月26日 優(yōu)先權(quán)日2008年12月26日
發(fā)明者旭 亢, 葉安華, 楊新宇, 鵬 趙, 黃鉞峰 申請人:西安交通大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
奎屯市| 化州市| 昭通市| 江源县| 高淳县| 张家口市| 凤阳县| 潼关县| 兴和县| 襄樊市| 梧州市| 桃源县| 四子王旗| 高要市| 广灵县| 通海县| 宣城市| 怀柔区| 灵宝市| 津南区| 海淀区| 青岛市| 申扎县| 灵武市| 白沙| 托克托县| 台东市| 犍为县| 德惠市| 东乌| 扎赉特旗| 汶川县| 舞阳县| 玉屏| 临西县| 司法| 通城县| 石台县| 广灵县| 彭山县| 平山县|