專利名稱:一種移動Ad hoc網(wǎng)絡(luò)中數(shù)據(jù)傳輸方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種移動Ad hoc網(wǎng)絡(luò)中數(shù)據(jù)傳輸方法、裝置 及系統(tǒng)。
背景技術(shù):
移動Ad hoc網(wǎng)絡(luò)是一種無線的、沒有中心基礎(chǔ)設(shè)施支持的移動網(wǎng)絡(luò),網(wǎng)絡(luò)中的節(jié) 點均由移動終端構(gòu)成。移動Ad hoc網(wǎng)絡(luò)中的節(jié)點既是通信終端,又具有路由功能,并可自 由移動,數(shù)據(jù)以多跳的方式發(fā)送,無需固定基礎(chǔ)設(shè)施的支持便可提供靈活方便的通信,拓寬 了移動通信的應(yīng)用,可應(yīng)用在軍事、交通、教育等諸多領(lǐng)域,具有非常光明的應(yīng)用前景。然 而,由于終端的移動性、網(wǎng)絡(luò)拓撲結(jié)構(gòu)的可變性、傳輸?shù)亩嗵浴o線信道的不可靠性、網(wǎng)絡(luò) 資源的有限性等眾多移動Ad hoc網(wǎng)絡(luò)獨有的特性,使得安全問題已成為制約移動Ad hoc 網(wǎng)絡(luò)應(yīng)用的關(guān)鍵,由于網(wǎng)絡(luò)層的路由協(xié)議負責提供關(guān)鍵的路由服務(wù),因此路由協(xié)議的安全 性直接影響了移動Ad hoc網(wǎng)絡(luò)的安全性和可用性,是移動Ad hoc網(wǎng)絡(luò)安全研究中至關(guān)重 要的環(huán)節(jié)。為了保證網(wǎng)絡(luò)在路由形成過程中的安全,需要將密碼技術(shù)應(yīng)用到已有的路由協(xié) 議中,以滿足移動Ad hoc網(wǎng)絡(luò)的安全需求,即設(shè)計可對抗攻擊的安全路由協(xié)議。早期的Ad hoc網(wǎng)絡(luò)路由協(xié)議,如動態(tài)源路由(Dynamic Source Routing,DSR)、 Ad hoc 網(wǎng)— 巨ι^ 足各由(Ad hoc On-Demand Distance Vectorrouting, A0DV)、目的 ^iS(n|fix^ (Destination-Sequenced DistanceVector routing, DSDV) ,肖 假設(shè)安全的網(wǎng)絡(luò)環(huán)境,不能對抗針對路由的攻擊,因此研究者在DSR、A0DV、DSDV等協(xié)議的 基礎(chǔ)上通過應(yīng)用密碼技術(shù)提出了安全Ad hoc網(wǎng)距離矢量路由(Secure Efficient Ad hoc Distance vector routing, SEAD)、Ariadne、Ad hoc 網(wǎng)認證路由(Authenticated Routing for Ad hocNetworks,ARAN)、安全 Ad hoc 網(wǎng)按需距離矢量路由(Secure Ad hocOn-Demand Distance Vector routing, SA0DV)等安全路由協(xié)議。這些協(xié)議或機制能有效地抵制網(wǎng)絡(luò) 的外部攻擊,卻無法預(yù)防內(nèi)部攻擊。移動Ad hoc網(wǎng)絡(luò)中按攻擊來源可將攻擊分為外部攻擊 和內(nèi)部攻擊,外部攻擊指沒有獲得認證的網(wǎng)絡(luò)節(jié)點對網(wǎng)絡(luò)的攻擊,而內(nèi)部攻擊指來自于內(nèi) 部有授權(quán)的、得到認證的節(jié)點的攻擊,內(nèi)部攻擊對網(wǎng)絡(luò)的威脅更大,惡意節(jié)點獲得網(wǎng)絡(luò)的合 法密鑰后可以向網(wǎng)絡(luò)中其他節(jié)點廣播錯誤的路由信息,被俘獲而變節(jié)的節(jié)點也能發(fā)起各種 攻擊。Byzantine攻擊是內(nèi)部攻擊的典型代表,Byzantine攻擊是在網(wǎng)絡(luò)層由認證節(jié)點 發(fā)起的任何導致網(wǎng)絡(luò)性能下降的行為,如截獲、修改和偽造包、(選擇性)丟包等。造成節(jié) 點Byzantine行為的原因是多樣的物理鏈路失效,自私節(jié)點為了保存自身能量,或者是攻 擊節(jié)點的惡意行為。由于Byzantine攻擊對網(wǎng)絡(luò)路由性能的破壞不容忽視,因此需要相應(yīng) 的檢測機制對是否存在Byzantine行為進行檢測,并使用檢測結(jié)果指導未來路由建立。Awerbuch 等人提出的按需安全抗 Byzantine 路由(On—Demand SecureByzantine Resilient Routing, 0DSBR)協(xié)議采用二分查找和聚集簽名技術(shù)來發(fā)現(xiàn)導致Byzantine 錯誤的錯誤鏈接。在ODSBR協(xié)議中,一旦源節(jié)點確認在源節(jié)點和目的節(jié)點之間出現(xiàn)了Byzantine錯誤,就開始在傳輸路徑上進行二分搜索以定位錯誤鏈接,具體如下源節(jié)點通 過在數(shù)據(jù)包中加入“必須發(fā)送數(shù)據(jù)確認包的中間節(jié)點列表”從而控制對錯誤鏈接的搜索;必 須回復數(shù)據(jù)確認包的節(jié)點叫做探測節(jié)點,探測節(jié)點集合附加在合法的數(shù)據(jù)包中,探測節(jié)點 集合定義了一個不相交間隔的集合,這些間隔覆蓋了整條路徑。每一個間隔包括了在兩個 連續(xù)探測節(jié)點之間的子路徑。當在間隔上檢測到錯誤時,插入新的探測節(jié)點將間隔一分為 二。新的探測節(jié)點將附加在隨后的數(shù)據(jù)包中。間隔不斷分裂直到在一個鏈接上探測到錯誤。 路徑分裂過程是每發(fā)現(xiàn)一次錯誤進行一次間隔的分裂操作。這樣做的結(jié)果是一個錯誤鏈接 的檢測是在Iogn次錯誤發(fā)生之后,其中,η是路徑的長度。ODSBR的Byzantine錯誤檢測基于二分查找法進行,當沒有攻擊時,源節(jié)點、目的 節(jié)點之間包含一個從源節(jié)點到目的節(jié)點的完好的間隔,以一條共有九個節(jié)點的路由為例進 行說明,該路由中除源節(jié)點和目的節(jié)點外,還包含七個中間節(jié)點。假設(shè)當?shù)谌齻€中間節(jié)點是 攻擊節(jié)點致使Byzantine錯誤時,源節(jié)點登記該從源節(jié)點到目的節(jié)點的這條路徑上存在一 個錯誤,開始錯誤檢測。源節(jié)點為了定位錯誤鏈接,采用二分查找法開始在這條路徑中搜索 錯誤鏈接,為此,要在發(fā)送的數(shù)據(jù)包中增加探測節(jié)點信息,此時探測節(jié)點是位于七個中間節(jié) 點的中間位置的節(jié)點,即第四個中間節(jié)點,第四個中間節(jié)點與源節(jié)點和目的節(jié)點之間分別 形成兩個間隔。如果攻擊節(jié)點在第四個中間節(jié)點之前,則攻擊節(jié)點丟棄內(nèi)嵌有探測節(jié)點的 數(shù)據(jù)包,將致使第四個中間節(jié)點無法回應(yīng)確認包,此時,源節(jié)點確定錯誤鏈接出現(xiàn)在第四個 中間節(jié)點之前,即前半段鏈路中,則向前折半查找,將位于源節(jié)點和第四個中間節(jié)點的中間 位置的節(jié)點,即第二個中間節(jié)點作為探測節(jié)點加入探測節(jié)點序列,由于錯誤鏈接出現(xiàn)在第 二個中間節(jié)點之后,所以該節(jié)點將成功發(fā)送數(shù)據(jù)確認包,于是源節(jié)點確定錯誤鏈接出現(xiàn)在 第二個中間節(jié)點和第四個中間節(jié)點之間的鏈路上,則將位于這段鏈路中間的節(jié)點,即第三 個中間節(jié)點加入探測節(jié)點,該節(jié)點將無法發(fā)送確認包。這樣,源節(jié)點可以確認錯誤鏈接位于 第二個節(jié)點和第三個節(jié)點之間。在現(xiàn)有的ODSBR協(xié)議中,當在數(shù)據(jù)傳輸?shù)倪^程中,發(fā)現(xiàn)錯誤時,則轉(zhuǎn)入檢測模式, 在檢測模式中通過控制探測節(jié)點來定位錯誤鏈接。在中間節(jié)點傳輸含有探測節(jié)點的數(shù)據(jù)包 時,每個中間節(jié)點都需要對數(shù)據(jù)包進行簽名,采用聚集簽名技術(shù)進行傳輸。在檢測模式下發(fā)現(xiàn)的錯誤鏈接,將被源節(jié)點記錄下來,作為下次傳輸數(shù)據(jù)之前選 擇路由的依據(jù)。下面介紹一下現(xiàn)有技術(shù)中選擇路由的過程。在數(shù)據(jù)傳輸之前,需要事先確定路由,如果源節(jié)點的路由表中存在到目的節(jié)點的 路由,則直接使用該路由,如果不存在到目的節(jié)點的路由,則要進行路由發(fā)現(xiàn)過程由源節(jié) 點向相鄰節(jié)點廣播路由請求消息,該消息中包含源節(jié)點和目的節(jié)點的地址,相鄰節(jié)點收到 該消息后再把該消息廣播給自身的相鄰節(jié)點,直到目的節(jié)點收到該消息后,目的節(jié)點據(jù)此 構(gòu)造路由應(yīng)答消息,并通過廣播的方式發(fā)送給源節(jié)點。源節(jié)點可能會收到多條到目的節(jié)點 的路由,這時,源節(jié)點根據(jù)在上次數(shù)據(jù)傳輸過程中定位的錯誤鏈接,計算每條路由的錯誤鏈 接因子的總和,路由中的每段鏈路都具有一個錯誤鏈接因子,當該段鏈路沒有發(fā)現(xiàn)錯誤時, 錯誤鏈接因子為1,發(fā)現(xiàn)錯誤后,錯誤鏈接因子數(shù)值將增大,因此,采用路由的錯誤鏈接因子 總和來作為選擇路由的依據(jù),可以在一定程度上避免選擇出現(xiàn)錯誤的路由,從而提高路由 的安全性。但是,基于ODSBR協(xié)議的數(shù)據(jù)傳輸方法仍然存在以下不足首先,采用該方法進行數(shù)據(jù)傳輸時,檢測模式與數(shù)據(jù)傳輸模式分離在檢測錯誤鏈接時,需要采用檢測模式,由于 檢測模式與純數(shù)據(jù)傳輸模式不同,需要額外開銷控制探測節(jié)點列表,因此Byzantine檢測 無法長期進行,在持續(xù)一段時間后需要切換回正常的數(shù)據(jù)傳輸模式,對此,惡意節(jié)點可以進 行策略性攻擊在檢測階段表現(xiàn)良好,進入正常數(shù)據(jù)傳輸模式后繼續(xù)攻擊;其次,該方法中 查找錯誤鏈接時,中間節(jié)點采用聚集簽名的方式傳輸數(shù)據(jù)包,復雜度大,并不適用于資源受 限的Ad hoc網(wǎng)絡(luò);并且,在發(fā)現(xiàn)路由的過程中,采用路由的錯誤鏈接因子總和作為選擇路 由的依據(jù),當存在一條跳數(shù)少,但存在錯誤的路由,以及一條跳數(shù)多,但不存在錯誤的路由 時,后者可能會因錯誤鏈接因子總和較大而被淘汰,從而因為放棄了安全路由而選擇跳數(shù) 少的不安全路由,導致數(shù)據(jù)傳輸失敗,降低了路由的安全性。
發(fā)明內(nèi)容
本發(fā)明提供一種移動Ad hoc網(wǎng)絡(luò)中數(shù)據(jù)傳輸方法、裝置及系統(tǒng),用以解決數(shù)據(jù)傳 輸過程中無法同時進行錯誤檢測的問題。一種移動Ad hoc網(wǎng)絡(luò)中的數(shù)據(jù)傳輸方法,包括以下步驟源節(jié)點根據(jù)保存的錯誤鏈接信息,選擇一條到目的節(jié)點的路由;所述源節(jié)點通過所述路由中的各個中間節(jié)點的依次轉(zhuǎn)發(fā),向目的節(jié)點發(fā)送數(shù)據(jù) 包,并接收目的節(jié)點收到所述數(shù)據(jù)包后通過所述路由中的各個中間節(jié)點依次轉(zhuǎn)發(fā)返回的數(shù) 據(jù)確認包;其中,所述中間節(jié)點監(jiān)測到自身轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)量和數(shù)據(jù)確認包數(shù)量的差值超 過設(shè)定閾值時向源節(jié)點發(fā)送數(shù)據(jù)錯誤包;所述源節(jié)點確定發(fā)送的數(shù)據(jù)包的數(shù)量和收到的數(shù)據(jù)確認包的數(shù)量的差值超過所 述設(shè)定閾值時,將距離源節(jié)點最近且沒有發(fā)送數(shù)據(jù)錯誤包的中間節(jié)點中距離源節(jié)點最近的 中間節(jié)點與所述中間節(jié)點的上一跳節(jié)點之間的所在鏈路確定為錯誤鏈接,并保存在所述錯 誤鏈接信息中作為下次路由選擇的依據(jù),。其中,所述數(shù)據(jù)錯誤包是由中間節(jié)點監(jiān)測到自身 轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)量和數(shù)據(jù)確認包數(shù)量的差值超過所述設(shè)定閾值時向源節(jié)點發(fā)送的。一種移動Ad hoc網(wǎng)絡(luò)中的數(shù)據(jù)傳輸裝置,包括路由選擇單元,用于根據(jù)保存的錯誤鏈接信息,選擇一條到目的節(jié)點的路由;發(fā)送單元,用于通過所述路由中的各個中間節(jié)點的依次轉(zhuǎn)發(fā),向目的節(jié)點發(fā)送數(shù) 據(jù)包;接收單元,用于接收目的節(jié)點收到所述數(shù)據(jù)包后通過所述路由中的各個中間節(jié)點 依次轉(zhuǎn)發(fā)返回的數(shù)據(jù)確認包,其中,所述中間節(jié)點監(jiān)測到自身轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)量和數(shù)據(jù)確 認包數(shù)量的差值超過設(shè)定閾值時向該數(shù)據(jù)傳輸裝置發(fā)送數(shù)據(jù)錯誤包;;判定單元,用于確定發(fā)送的數(shù)據(jù)包的數(shù)量和收到的數(shù)據(jù)確認包的數(shù)量的差值超過 所述設(shè)定閾值時,將沒有發(fā)送數(shù)據(jù)錯誤包的中間節(jié)點中距離該數(shù)據(jù)傳輸裝置最近的中間節(jié) 點與所述中間節(jié)點的上一跳節(jié)點之間的鏈路確定為錯誤鏈接距離該數(shù)據(jù)傳輸裝置最近且 沒有發(fā)送數(shù)據(jù)錯誤包的中間節(jié)點所在鏈路確定為錯誤鏈接,并保存在所述錯誤鏈接信息中 作為下次路由選擇的依據(jù),其中,所述數(shù)據(jù)錯誤包是由中間節(jié)點監(jiān)測到自身轉(zhuǎn)發(fā)的數(shù)據(jù)包 數(shù)量和數(shù)據(jù)確認包數(shù)量的差值超過所述設(shè)定閾值時發(fā)送的。一種移動Ad hoc網(wǎng)絡(luò)中的數(shù)據(jù)傳輸裝置,包括轉(zhuǎn)發(fā)單元,用于轉(zhuǎn)發(fā)源節(jié)點向目的節(jié)點發(fā)送的數(shù)據(jù)包以及目的節(jié)點向源節(jié)點返回的數(shù)據(jù)確認包;監(jiān)測單元,用于在監(jiān)測到轉(zhuǎn)發(fā)單元轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)量和數(shù)據(jù)確認包數(shù)量的差值超 過設(shè)定閾值時向源節(jié)點發(fā)送數(shù)據(jù)錯誤包。一種移動Ad hoc網(wǎng)絡(luò)中的數(shù)據(jù)傳輸系統(tǒng),包括源節(jié)點、目的節(jié)點和至少一個中 間節(jié)點,其中,源節(jié)點,用于根據(jù)保存的錯誤鏈接信息,選擇一條到目的節(jié)點的路由;通過所述路 由中的各個中間節(jié)點依次轉(zhuǎn)發(fā),向目的節(jié)點發(fā)送數(shù)據(jù)包;接收目的節(jié)點收到所述數(shù)據(jù)包后 通過所述路由中的通過各個中間節(jié)點的依次轉(zhuǎn)發(fā)返回的數(shù)據(jù)確認包;確定發(fā)送的數(shù)據(jù)包的 數(shù)量和收到的數(shù)據(jù)確認包的數(shù)量的差值超過設(shè)定閾值時,將沒有發(fā)送數(shù)據(jù)錯誤包的中間節(jié) 點中距離源節(jié)點最近的中間節(jié)點與所述中間節(jié)點的上一跳節(jié)點之間的鏈路確定為錯誤鏈 接距離源節(jié)點最近且沒有發(fā)送數(shù)據(jù)錯誤包的中間節(jié)點所在鏈路確定為錯誤鏈接,并保存在 所述錯誤鏈接信息中作為下次路由選擇的依據(jù);中間節(jié)點,用于轉(zhuǎn)發(fā)源節(jié)點向目的節(jié)點發(fā)送的數(shù)據(jù)包以及目的節(jié)點向源節(jié)點返回 的數(shù)據(jù)確認包;在監(jiān)測到自身轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)量和數(shù)據(jù)確認包數(shù)量的差值超過設(shè)定閾值時 向源節(jié)點發(fā)送數(shù)據(jù)錯誤包;目的節(jié)點,用于在接收到源節(jié)點發(fā)送的數(shù)據(jù)包時向源節(jié)點返回數(shù)據(jù)確認包。本發(fā)明實施例中實現(xiàn)移動Ad hoc網(wǎng)絡(luò)中數(shù)據(jù)傳輸方法、裝置及系統(tǒng),在源節(jié)點確 定發(fā)送的數(shù)據(jù)包的數(shù)量和收到的數(shù)據(jù)確認包的數(shù)量的差值超過設(shè)定閾值時,將沒有發(fā)送數(shù) 據(jù)錯誤包的中間節(jié)點中距離源節(jié)點最近的中間節(jié)點及其上一跳節(jié)點之間的鏈路確定為錯 誤鏈接,其中,數(shù)據(jù)錯誤包是由中間節(jié)點監(jiān)測到自身轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)量和數(shù)據(jù)確認包數(shù)量 的差值超過所述設(shè)定閾值時向源節(jié)點發(fā)送的。通過源節(jié)點和中間節(jié)點分別檢測自身轉(zhuǎn)發(fā) 的數(shù)據(jù)包和數(shù)據(jù)確認包的數(shù)量差,來確定是否存在錯誤鏈接,可以在傳輸數(shù)據(jù)的同時進行 錯誤檢測,從而可使錯誤檢測的過程長時間進行,且無需額外開銷控制探測節(jié)點列表。
圖1為本發(fā)明實施例中實現(xiàn)移動Ad hoc網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)姆椒鞒虉D;圖2為本發(fā)明實施例中檢測錯誤包的示意圖;圖3為本發(fā)明一個實施例中實現(xiàn)移動Ad hoc網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)难b置結(jié)構(gòu)圖;圖4為本發(fā)明另一個實施例中實現(xiàn)移動Ad hoc網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)难b置結(jié)構(gòu)圖;圖5為本發(fā)明實施例中實現(xiàn)移動Ad hoc網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)南到y(tǒng)結(jié)構(gòu)圖。
具體實施例方式本發(fā)明實施例提供了一種實現(xiàn)移動Ad hoc網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)姆椒?、裝置及系統(tǒng), 可以在傳輸數(shù)據(jù)的同時進行錯誤檢測,從而可使錯誤檢測的過程長時間進行,且無需額外 開銷控制探測節(jié)點列表。本發(fā)明實施例提供了一種移動Ad hoc網(wǎng)絡(luò)中的數(shù)據(jù)傳輸方法,如圖1所示,包括 以下步驟SlOl 源節(jié)點根據(jù)保存的錯誤鏈接信息,選擇一條到目的節(jié)點的路由;S102 所述源節(jié)點通過所述路由中的各個中間節(jié)點的依次轉(zhuǎn)發(fā)向目的節(jié)點發(fā)送數(shù)據(jù)包,并接收目的節(jié)點通過所述路由中的各個中間節(jié)點的依次轉(zhuǎn)發(fā)返回的數(shù)據(jù)確認包;, 其中,所述中間節(jié)點監(jiān)測到自身轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)量和數(shù)據(jù)確認包數(shù)量的差值超過設(shè)定閾值 時向源節(jié)點發(fā)送數(shù)據(jù)錯誤包;S103:所述源節(jié)點確定發(fā)送的數(shù)據(jù)包的數(shù)量和收到的數(shù)據(jù)確認包的數(shù)量的差值超 過設(shè)定閾值時,將沒有發(fā)送數(shù)據(jù)錯誤包的中間節(jié)點中距離源節(jié)點最近的中間節(jié)點與所述 中間節(jié)點的上一跳節(jié)點之間的鏈路確定為錯誤鏈接,并保存在所述錯誤鏈接信息中。通過采用本發(fā)明實施例提供的方法,可在傳輸數(shù)據(jù)的同時,進行錯誤鏈接的檢測, 不必額外開銷控制探測節(jié)點列表。較佳的,所述源節(jié)點根據(jù)保存的錯誤鏈接信息,選擇一條到目的節(jié)點的路由,具體 包括確定自身保存的路由表中不存在到目的節(jié)點的路由時,向目的節(jié)點發(fā)送路由請求消 息;根據(jù)目的節(jié)點接收到路由請求消息后返回的路由應(yīng)答消息,確定到目的節(jié)點的可用路 由;確定存在多條可用路由時,根據(jù)保存的錯誤鏈接信息計算每條路由中所有鏈路的錯誤 鏈接因子的平均值,所述鏈路指所述路由中相鄰的兩個中間節(jié)點之間的鏈接所組成的鏈 路,所述錯誤鏈接因子為反映該鏈路出現(xiàn)錯誤的概率大小的數(shù)值;根據(jù)計算的每條路由的 錯誤鏈接因子的平均值,選擇一條到目的節(jié)點的路由。通過采用路由中的錯誤鏈接因子的平均值作為路由選擇的依據(jù),可以優(yōu)先選擇安 全的路由。較佳的,所述根據(jù)計算的每條路由的錯誤鏈接因子的平均值,選擇一條到目的節(jié) 點的路由,包括選擇錯誤鏈接因子的平均值最小的路由,作為到目的節(jié)點的路由。較佳的,所述路由請求消息和路由應(yīng)答消息采用基于身份的簽名機制進行數(shù)字簽 名。基于身份的簽名方式既保證了數(shù)據(jù)的安全性,又減少了計算量和網(wǎng)絡(luò)開銷。較佳的,為了確保所選路由中的各個中間節(jié)點沒有臨時出現(xiàn)問題,更好的保障數(shù) 據(jù)的安全傳輸,所述通過所述路由中的各個中間節(jié)點向目的節(jié)點發(fā)送數(shù)據(jù)包的步驟之前, 進一步包括源節(jié)點通過所述路由中的各個中間節(jié)點的依次轉(zhuǎn)發(fā),向目的節(jié)點發(fā)送第一通 知包;所述目的節(jié)點收到所述第一通知包后通過所述路由中的各個中間節(jié)點的依次轉(zhuǎn)發(fā)向 源節(jié)點返回第一確認包;所述源節(jié)點確定成功收到所述第一確認包時,說明所選路由中的 各個中間節(jié)點都做好了接收數(shù)據(jù)的準備,則確定觸發(fā)通過所述路由中的各個中間節(jié)點向 目的節(jié)點發(fā)送數(shù)據(jù)包。當源節(jié)點沒有接收到目的節(jié)點返回的第一確認包時,說明所選路由中的某段鏈路 出現(xiàn)了問題,則該方法進一步包括源節(jié)點確定沒有接收到所述第一確認包時,查找所述路由中的錯誤鏈接,并將查 找到的所述路由中的錯誤鏈接保存在所述錯誤鏈接信息中,重新根據(jù)保存后的錯誤鏈接信 息,選擇到目的節(jié)點的路由。其中,查找所述路由中的錯誤鏈接的步驟可以采用如下實現(xiàn)方式源節(jié)點通過所述路由中的各個中間節(jié)點向目的節(jié)點發(fā)送第二通知包,所述目的節(jié) 點收到所述第二通知包后通過各個中間節(jié)點的依次轉(zhuǎn)發(fā)向源節(jié)點返回第二確認包,且所述 路由中的各個中間節(jié)點收到所述第二通知包后向源節(jié)點返回中間節(jié)點確認包,所述中間節(jié) 點確認包中包含自身轉(zhuǎn)發(fā)的第一通知包和第二通知包的數(shù)量總和以及第一確認包和第二 確認包的數(shù)量總和;源節(jié)點確定未成功收到第二確認包時,則判斷是否存在未返回中間節(jié)點確認包的中間節(jié)點,若存在,則將沒有返回中間節(jié)點確認包的中間節(jié)點中距離源節(jié)點最 近的中間節(jié)點與所述中間節(jié)點的上一跳節(jié)點之間的鏈路確定為錯誤鏈接,若不存在,則將 目的節(jié)點與所述目的節(jié)點的上一跳節(jié)點所組成的鏈路確定為錯誤鏈接;源節(jié)點確定成功收 到第二確認包時,根據(jù)接收的中間節(jié)點確認包確定各中間節(jié)點轉(zhuǎn)發(fā)的第一通知包和第二通 知包的數(shù)量總和以及第一確認包和第二確認包的數(shù)量總和,將轉(zhuǎn)發(fā)的第一通知包和第二通 知包的數(shù)量總和,或第一確認包和第二確認包的數(shù)量總和小于其他中間節(jié)點的中間節(jié)點與 所述中間節(jié)點的上一跳節(jié)點之間的鏈路確定為錯誤鏈接。所述查找所述路由中的錯誤鏈接的步驟也可以采用如下實現(xiàn)方式所述路由中的中間節(jié)點監(jiān)測到所在鏈路出現(xiàn)錯誤時,向源節(jié)點發(fā)送鏈路錯誤包; 所述源節(jié)點將發(fā)送鏈路錯誤包的中間節(jié)點所在鏈路確定為錯誤鏈接。該方式適用于中間節(jié) 點能夠監(jiān)測到鏈路錯誤的情況,例如,在鏈路斷開時,中間節(jié)點可以檢測到其與相鄰節(jié)點 的鏈路因斷開而無法傳輸數(shù)據(jù),則中間節(jié)點會向源節(jié)點發(fā)送鏈路錯誤包。下面詳細介紹一下本發(fā)明實施例中的數(shù)據(jù)傳輸方法中各個步驟的具體實現(xiàn)方式。步驟SlOl “源節(jié)點根據(jù)保存的錯誤鏈接信息,選擇一條到目的節(jié)點的路由”的一 種實現(xiàn)過程具體包括以下步驟步驟一源節(jié)點S在發(fā)送數(shù)據(jù)之前需要選擇一條到目的節(jié)點D的路由,源節(jié)點S查 詢自身保存的路由表中是否存在到目的節(jié)點D的有效路由,如果存在,則選擇這條有效路 由;如果不存在,則源節(jié)點S以廣播的方式向相鄰節(jié)點發(fā)送一個路由請求消息,開始路由建 立過程。該路由請求消息中包括路由請求(Route REQuest, RREQ)包,在該RREQ包中含有 源節(jié)點地址、目的節(jié)點地址、用于表示源節(jié)點發(fā)送消息的次數(shù)的源節(jié)點序列號以及源節(jié)點 在之前的數(shù)據(jù)傳輸過程中所保存的錯誤鏈接信息。如果源節(jié)點是第一次傳輸數(shù)據(jù),則錯誤 鏈接信息可能為空,如果源節(jié)點不是第一次傳輸數(shù)據(jù),則錯誤鏈接信息中應(yīng)該至少包含上 次的數(shù)據(jù)傳輸過程中所檢測到的錯誤鏈接。為了實現(xiàn)對路由請求消息進行基本的安全保護,同時減少計算量和網(wǎng)絡(luò)開銷,在 路由建立過程中傳輸路由請求消息時可以使用基于身份的數(shù)字簽名機制,則源節(jié)點S 發(fā) 送的路由請求消息為S broadcast {RREQ 丨| Ns || IDs || {RREQ || ^}^1}其中,節(jié)點 S
ο
的公鑰記為Ks ;節(jié)點S的私鑰記為IV1 ;IDs是節(jié)點S的地址、標識符;NS表示節(jié)點S生成的 隨機數(shù);{M} IV1表示S使用私鑰對消息M進行數(shù)字簽名。步驟二 與源節(jié)點S相鄰的中間節(jié)點A在收到路由請求消息后,中間節(jié)點A根據(jù)源 節(jié)點地址IDs計算源節(jié)點S的公鑰Ks,然后利用Ks驗證源節(jié)點的簽名,如果驗證失敗,則丟 棄該路由請求消息;如果驗證成功,則查看中間節(jié)點A是否處理過該路由請求消息,當且僅 當A沒有處理過該路由請求消息或者有處理記錄但當前接收的路由請求消息中的RREQ序 列號更大時,將路由請求消息以廣播的方式轉(zhuǎn)發(fā)給中間節(jié)點A的鄰居節(jié)點。中間各節(jié)點依 次以廣播方式轉(zhuǎn)發(fā)收到的路由請求消息,直到目的節(jié)點D接收到該路由請求消息。步驟三當目的節(jié)點D首次接收到來自源節(jié)點S的路由請求消息時,驗證源節(jié)點的 簽名成功后生成路由應(yīng)答消息,該路由應(yīng)答消息包含路由應(yīng)答(RouteREPly,RREP)包,在 RREP包中包含有源節(jié)點和目的節(jié)點的地址、用于表示目的節(jié)點接收消息次數(shù)的目的節(jié)點序 列號、跳數(shù)信息、RREQ包中包含的錯誤鏈接信息以及路徑節(jié)點集合path_node,其中,跳數(shù) 信息為可變字段,在目的節(jié)點D生成路由應(yīng)答消息時跳數(shù)信息為零,每當中間經(jīng)過一個中間節(jié)點的轉(zhuǎn)發(fā),則跳數(shù)信息增加1,路徑節(jié)點集合包括從目的節(jié)點D到源節(jié)點S的路徑中所經(jīng) 過的所有中間節(jié)點。目的節(jié)點D對路由應(yīng)答消息采用自身的私鑰簽名后以廣播的方式轉(zhuǎn)發(fā) 該路由應(yīng)答消息,該路由應(yīng)答消息為D -> broadcast {RREP || Ns || IDd || {RREP || ^Vs
ο步驟四中間節(jié)點B收到路由應(yīng)答消息后,計算發(fā)送該路由應(yīng)答消息的節(jié)點的公 鑰,驗證路由應(yīng)答消息中的簽名是否有效,若驗證有效則更新路由應(yīng)答消息中的可變字段, 即將跳數(shù)信息增加1,并將自己加入到路徑節(jié)點集合path_n0de,然后采用節(jié)點B的私鑰對 可變字段,即跳數(shù)信息進行數(shù)字簽名后附加在路由應(yīng)答消息中,以廣播的方式轉(zhuǎn)發(fā)修改后 的路由應(yīng)答消息。收到路由應(yīng)答消息的各個中間節(jié)點都執(zhí)行上述操作,即驗證簽名有效后, 更新可變字段的跳數(shù)信息并對跳數(shù)信息進行簽名,將自身加入到路徑節(jié)點集合后轉(zhuǎn)發(fā)該路 由答應(yīng)消息,直到源節(jié)點S收到路由答應(yīng)消息。較佳的,為了減少網(wǎng)絡(luò)開銷,各個中間節(jié)點收到路由應(yīng)答消息后,可以根據(jù)消息中 包含的源節(jié)點和目的節(jié)點地址以及目的節(jié)點序列號等信息,先判斷之前是否處理過該路由 應(yīng)答消息,若已經(jīng)處理過該消息,則根據(jù)消息中所攜帶的錯誤鏈接信息計算當前節(jié)點與路 徑節(jié)點集合中的各個節(jié)點到目的節(jié)點之間所形成路徑的錯誤鏈接因子的平均值,計算方式 如下每兩個節(jié)點之間形成一條鏈路,該鏈路具有一個錯誤鏈接因子,表示該鏈路出現(xiàn)錯誤 的可能性大小,錯誤鏈接因子越大表示這條鏈路出現(xiàn)錯誤的可能性越大,用當前節(jié)點到目 的節(jié)點的各個鏈路的錯誤鏈接因子之和除以鏈路的個數(shù),得到錯誤鏈接因子的平均值,如 果所得的錯誤鏈接因子平均值小于根據(jù)以前收到的路由應(yīng)答消息中的錯誤鏈接信息和路 徑節(jié)點集合得到錯誤鏈接因子平均值,則中間節(jié)點將自身加入到路徑節(jié)點集合中,更新收 到的路由應(yīng)答消息中的可變字段,即跳數(shù)信息,對可變字段簽名后附加在路由應(yīng)答消息中 進行轉(zhuǎn)發(fā),否則,不處理該路由應(yīng)答消息,這里,也可以采用其他參考因素,如錯誤鏈接因子 的總和來作為是否轉(zhuǎn)發(fā)的依據(jù)。通過中間節(jié)點根據(jù)錯誤鏈接判斷是否對重復收到的路由應(yīng) 答消息進行轉(zhuǎn)發(fā),從而可以舍棄掉出錯可能性大的路由,且大大減少了網(wǎng)絡(luò)開銷。步驟五當源節(jié)點S收到路由應(yīng)答消息后,仍然需要做類似于中間節(jié)點的檢查和 計算,驗證通過的路由應(yīng)答消息中所包含的路由為有效路由。如果源節(jié)點S收到多個有效 路由,可以優(yōu)先選擇錯誤鏈接因子平均值最小的路由,當錯誤鏈接因子平均值相同時,可以 優(yōu)先選擇跳數(shù)小的路由,如果鏈接錯誤因子平均值相同,且跳數(shù)相同,則源節(jié)點S可以根據(jù) 自身的選擇策略從中選擇出一個路由作為最終路由。以上就是步驟SlOl的一種具體實施方式
,通過上述步驟,在移動Ad hoc網(wǎng)絡(luò)中成 功的建立了從源節(jié)點S到目的節(jié)點D的路由。通過該方式,利用計算量和網(wǎng)絡(luò)開銷較少的 基于身份的簽名機制傳輸消息,減少了網(wǎng)絡(luò)開銷,簡化了傳輸過程,同時,在選擇路由時使 用錯誤鏈接因子平均值作為路由選擇標準,比ODSBR協(xié)議中采用錯誤鏈接因子總和更為合 理,可以選擇出錯可能性最低的路由,從而大大提高了路由的安全性。下面介紹一下步驟S102中“所述源節(jié)點通過所述路由中的各個中間節(jié)點的依次 轉(zhuǎn)發(fā),向目的節(jié)點發(fā)送數(shù)據(jù)包,并接收目的節(jié)點通過所述路由中的各個中間節(jié)點的依次轉(zhuǎn) 發(fā)返回的數(shù)據(jù)確認包”的一種具體實現(xiàn)過程,在執(zhí)行該步驟之前,為了更好的確保所選路由 的安全性,可以事先對路由中的各節(jié)點進行通知,若通知成功則發(fā)送數(shù)據(jù)包,若通知失敗, 則查找錯誤鏈接并保存,然后重新根據(jù)保存后的錯誤鏈接信息由步驟SlOl開始執(zhí)行。對 路由中的各節(jié)點進行通知的步驟如下
12
步驟一源節(jié)點S通過所述路由中的各個中間節(jié)點向目的節(jié)點D發(fā)送第一通知包。當選擇了從源節(jié)點S到目的節(jié)點D的路由后,在源節(jié)點S向目的節(jié)點D發(fā)送數(shù) 據(jù)包之前,為了確保數(shù)據(jù)包的傳輸安全,需要對所選路由中的各節(jié)點進行通知,告知各個 節(jié)點準備接收數(shù)據(jù),通知過程為源節(jié)點S沿所選路徑發(fā)送簽名的第一通知包,即通知 (INFOmation, INFO)包,該INFO包包含所選路由的路徑節(jié)點集合path_node,在路徑節(jié)點集 合中存儲著該路由中的各個節(jié)點,因此INFO包以單播方式發(fā)送,且接收到該INFO包的各節(jié) 點根據(jù)路徑節(jié)點集合path_node,可以獲知下一跳節(jié)點,從而繼續(xù)單播該INFO包給下一跳 節(jié)點,通過這種方式,告知包括目的節(jié)點在內(nèi)的所有節(jié)點準備接收數(shù)據(jù)。目的節(jié)點D接收到 INFO包之后,通過各個中間節(jié)點的轉(zhuǎn)發(fā),返回第一應(yīng)答包,即INF0_ACK包給源節(jié)點S,告知 源節(jié)點S已經(jīng)準備好接收數(shù)據(jù)。表 權(quán)利要求
一種移動Ad hoc網(wǎng)絡(luò)中的數(shù)據(jù)傳輸方法,其特征在于,包括源節(jié)點根據(jù)保存的錯誤鏈接信息,選擇一條到目的節(jié)點的路由;所述源節(jié)點通過所述路由中的各個中間節(jié)點的依次轉(zhuǎn)發(fā),向目的節(jié)點發(fā)送數(shù)據(jù)包,并接收目的節(jié)點收到所述數(shù)據(jù)包后通過所述路由中的各個中間節(jié)點依次轉(zhuǎn)發(fā)返回的數(shù)據(jù)確認包,其中,所述中間節(jié)點監(jiān)測到自身轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)量和數(shù)據(jù)確認包數(shù)量的差值超過設(shè)定閾值時向源節(jié)點發(fā)送數(shù)據(jù)錯誤包;所述源節(jié)點確定發(fā)送的數(shù)據(jù)包的數(shù)量和收到的數(shù)據(jù)確認包的數(shù)量的差值超過所述設(shè)定閾值時,將沒有發(fā)送數(shù)據(jù)錯誤包的中間節(jié)點中距離源節(jié)點最近的中間節(jié)點與所述中間節(jié)點的上一跳節(jié)點之間的鏈路確定為錯誤鏈接,并保存在所述錯誤鏈接信息中。
2.如權(quán)利要求1所述的方法,其特征在于,所述源節(jié)點根據(jù)保存的錯誤鏈接信息,選擇 一條到目的節(jié)點的路由,具體包括確定自身保存的路由表中不存在到目的節(jié)點的路由時,向目的節(jié)點發(fā)送路由請求消息;根據(jù)目的節(jié)點接收到路由請求消息后返回的路由應(yīng)答消息,確定到目的節(jié)點的可用路由;確定存在多條可用路由時,根據(jù)保存的錯誤鏈接信息計算每條路由中所有鏈路的錯 誤鏈接因子的平均值,所述鏈路指所述路由中相鄰的兩個中間節(jié)點之間的鏈接所組成的鏈 路,所述錯誤鏈接因子為反映該鏈路出現(xiàn)錯誤的概率大小的數(shù)值;根據(jù)計算的每條路由的錯誤鏈接因子的平均值,選擇一條到目的節(jié)點的路由。
3.如權(quán)利要求2所述的方法,其特征在于,所述根據(jù)計算的每條路由的錯誤鏈接因子 的平均值,選擇一條到目的節(jié)點的路由,包括選擇錯誤鏈接因子的平均值最小的路由,作為到目的節(jié)點的路由。
4.如權(quán)利要求2所述的方法,其特征在于,所述路由請求消息和路由應(yīng)答消息采用基 于身份的簽名機制進行數(shù)字簽名。
5.如權(quán)利要求1所述的方法,其特征在于,所述通過所述路由中的各個中間節(jié)點向目 的節(jié)點發(fā)送數(shù)據(jù)包之前,進一步包括源節(jié)點通過所述路由中的各個中間節(jié)點向目的節(jié)點發(fā)送第一通知包; 所述目的節(jié)點收到所述第一通知包后通過各個中間節(jié)點向源節(jié)點返回第一確認包; 所述源節(jié)點確定成功收到所述第一確認包時,觸發(fā)通過所述路由中的各個中間節(jié)點向 目的節(jié)點發(fā)送數(shù)據(jù)包。
6.如權(quán)利要求5所述的方法,其特征在于,進一步包括源節(jié)點確定沒有接收到所述第一確認包時,查找所述路由中的錯誤鏈接,并將查找到 的所述路由中的錯誤鏈接保存在所述錯誤鏈接信息中,重新根據(jù)保存后的錯誤鏈接信息, 選擇到目的節(jié)點的路由。
7.如權(quán)利要求6所述的方法,其特征在于,所述查找所述路由中的錯誤鏈接,具體包括源節(jié)點通過所述路由中的各個中間節(jié)點的依次轉(zhuǎn)發(fā),向目的節(jié)點發(fā)送第二通知包,所 述目的節(jié)點收到所述第二通知包后通過所述路由中的各個中間節(jié)點的依次轉(zhuǎn)發(fā)向源節(jié)點 返回第二確認包,且所述路由中的各個中間節(jié)點收到所述第二通知包后向源節(jié)點返回中間節(jié)點確認包,所述中間節(jié)點確認包中包含自身轉(zhuǎn)發(fā)的第一通知包和第二通知包的數(shù)量總和 以及第一確認包和第二確認包的數(shù)量總和;源節(jié)點確定未成功收到第二確認包時,則判斷是否存在未返回中間節(jié)點確認包的中間 節(jié)點,若存在,則將沒有返回中間節(jié)點確認包的中間節(jié)點中距離源節(jié)點最近的中間節(jié)點與 所述中間節(jié)點的上一跳節(jié)點之間的鏈路確定為錯誤鏈接,若不存在,則將目的節(jié)點與所述 目的節(jié)點的上一跳節(jié)點所組成的鏈路確定為錯誤鏈接;源節(jié)點確定成功收到第二確認包時,根據(jù)接收的中間節(jié)點確認包確定各中間節(jié)點轉(zhuǎn)發(fā) 的第一通知包和第二通知包的數(shù)量總和以及第一確認包和第二確認包的數(shù)量總和,將轉(zhuǎn)發(fā) 的第一通知包和第二通知包的數(shù)量總和,或第一確認包和第二確認包的數(shù)量總和小于相鄰 中間節(jié)點的中間節(jié)點與所述中間節(jié)點的上一跳節(jié)點之間的鏈路確定為錯誤鏈接。
8.如權(quán)利要求6所述的方法,其特征在于,所述查找所述路由中的錯誤鏈接,具體包括所述路由中的中間節(jié)點監(jiān)測到所在鏈路出現(xiàn)錯誤時,向源節(jié)點發(fā)送鏈路錯誤包; 所述源節(jié)點將發(fā)送鏈路錯誤包的中間節(jié)點所在鏈路確定為錯誤鏈接。
9.一種移動Ad hoc網(wǎng)絡(luò)中的數(shù)據(jù)傳輸裝置,其特征在于,包括路由選擇單元,用于根據(jù)保存的錯誤鏈接信息,選擇一條到目的節(jié)點的路由; 發(fā)送單元,用于通過所述路由中的各個中間節(jié)點的依次轉(zhuǎn)發(fā),向目的節(jié)點發(fā)送數(shù)據(jù)包;接收單元,用于接收目的節(jié)點收到所述數(shù)據(jù)包后通過所述路由中的各個中間節(jié)點依次 轉(zhuǎn)發(fā)返回的數(shù)據(jù)確認包,其中,所述中間節(jié)點監(jiān)測到自身轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)量和數(shù)據(jù)確認包 數(shù)量的差值超過設(shè)定閾值時向該數(shù)據(jù)傳輸裝置發(fā)送數(shù)據(jù)錯誤包;判定單元,用于確定發(fā)送的數(shù)據(jù)包的數(shù)量和收到的數(shù)據(jù)確認包的數(shù)量的差值超過所述 設(shè)定閾值時,將沒有發(fā)送數(shù)據(jù)錯誤包的中間節(jié)點中距離該數(shù)據(jù)傳輸裝置最近的中間節(jié)點與 所述中間節(jié)點的上一跳節(jié)點之間的鏈路確定為錯誤鏈接,并保存在所述錯誤鏈接信息中作 為下次路由選擇的依據(jù),其中,所述數(shù)據(jù)錯誤包是由中間節(jié)點監(jiān)測到自身轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù) 量和數(shù)據(jù)確認包數(shù)量的差值超過所述設(shè)定閾值時發(fā)送的。
10.如權(quán)利要求9所述的裝置,其特征在于,所述路由選擇單元具體包括路由請求消息生成單元,用于確定自身保存的路由表中不存在到目的節(jié)點的路由時, 向目的節(jié)點發(fā)送路由請求消息;路由確定單元,用于根據(jù)目的節(jié)點接收到路由請求消息后返回的路由應(yīng)答消息,確定 到目的節(jié)點的可用路由;計算單元,用于在路由確定單元確定存在多條可用路由時,根據(jù)保存的錯誤鏈接信息 計算每條路由中所有鏈路的錯誤鏈接因子的平均值,所述鏈路指所述路由中相鄰的兩個中 間節(jié)點之間的鏈接所組成的鏈路,所述錯誤鏈接因子為反映該鏈路出現(xiàn)錯誤的概率大小的 數(shù)值;選擇單元,用于根據(jù)計算的每條路由的錯誤鏈接因子的平均值,選擇一條到目的節(jié)點 的路由。
11.如權(quán)利要求10所述的裝置,其特征在于,所述選擇單元,用于根據(jù)計算的每條路由 的錯誤鏈接因子的平均值,選擇錯誤鏈接因子的平均值最小的路由,作為到目的節(jié)點的路
12.如權(quán)利要求9所述的裝置,其特征在于,所述裝置進一步包括通知單元,用于在發(fā)送單元通過所述路由中的各個中間節(jié)點向目的節(jié)點發(fā)送數(shù)據(jù)包之 前,通過所述路由中的各個中間節(jié)點的依次轉(zhuǎn)發(fā),向目的節(jié)點發(fā)送第一通知包,并接收所述 目的節(jié)點收到所述第一通知包后返回的第一確認包;觸發(fā)單元,用于在通知單元成功收到所述第一確認包時,觸發(fā)發(fā)送單元通過所述路由 中的各個中間節(jié)點的依次轉(zhuǎn)發(fā),向目的節(jié)點發(fā)送數(shù)據(jù)包。
13.如權(quán)利要求12所述的裝置,其特征在于,還包括查找單元,用于在所述通知單元沒有接收到所述第一確認包時,查找所述路由中的錯 誤鏈接,并將查找到的所述路由中的錯誤鏈接保存在所述錯誤鏈接信息中;并通知路由選 擇單元重新根據(jù)保存后的錯誤鏈接信息,選擇到目的節(jié)點的路由。
14.如權(quán)利要求13所述的裝置,其特征在于,所述查找單元,具體包括轉(zhuǎn)發(fā)單元,用于通過所述路由中的各個中間節(jié)點的依次轉(zhuǎn)發(fā),向目的節(jié)點發(fā)送第二通 知包,并接收所述目的節(jié)點收到所述第二通知包后通過所述路由中的各個中間節(jié)點的依次 轉(zhuǎn)發(fā)返回的第二確認包,及接收所述路由中的各個中間節(jié)點收到所述第二通知包后返回的 中間節(jié)點確認包,所述中間節(jié)點確認包中包含自身轉(zhuǎn)發(fā)的第一通知包和第二通知包的數(shù)量 總和以及第一確認包和第二確認包的數(shù)量總和;第一錯誤鏈接確定單元,用于在轉(zhuǎn)發(fā)單元確定未成功收到第二確認包時,判斷是否存 在未返回中間節(jié)點確認包的中間節(jié)點,若存在,則將沒有返回中間節(jié)點確認包的中間節(jié)點 中距離該數(shù)據(jù)傳輸裝置最近的中間節(jié)點與所述中間節(jié)點的上一跳節(jié)點之間的鏈路確定為 錯誤鏈接,若不存在,則將目的節(jié)點與所述目的節(jié)點的上一跳節(jié)點所組成的鏈路確定為錯 誤鏈接;第二錯誤鏈接確定單元,在轉(zhuǎn)發(fā)單元確定成功收到第二確認包時,根據(jù)接收的中間節(jié) 點確認包確定各中間節(jié)點轉(zhuǎn)發(fā)的第一通知包和第二通知包的數(shù)量總和以及第一確認包和 第二確認包的數(shù)量總和,將轉(zhuǎn)發(fā)的第一通知包和第二通知包的數(shù)量總和,或第一確認包和 第二確認包的數(shù)量總和小于相鄰中間節(jié)點的中間節(jié)點所在鏈路確定為錯誤鏈接。
15.如權(quán)利要求13所述的裝置,其特征在于,所述查找單元,具體用于根據(jù)所述路由中 的中間節(jié)點在監(jiān)測到所在鏈路出現(xiàn)錯誤時發(fā)送的鏈路錯誤包,將發(fā)送所述鏈路錯誤包的中 間節(jié)點所在鏈路確定為錯誤鏈接。
16.一種移動Ad hoc網(wǎng)絡(luò)中的數(shù)據(jù)傳輸裝置,其特征在于,包括轉(zhuǎn)發(fā)單元,用于轉(zhuǎn)發(fā)源節(jié)點向目的節(jié)點發(fā)送的數(shù)據(jù)包以及目的節(jié)點向源節(jié)點返回的數(shù) 據(jù)確認包;監(jiān)測單元,用于在監(jiān)測到轉(zhuǎn)發(fā)單元轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)量和數(shù)據(jù)確認包數(shù)量的差值超過設(shè) 定閾值時向源節(jié)點發(fā)送數(shù)據(jù)錯誤包。
17.如權(quán)利要求16所述的裝置,其特征在于,所述轉(zhuǎn)發(fā)單元,還用于轉(zhuǎn)發(fā)源節(jié)點向目的 節(jié)點發(fā)送的路由請求消息和目的節(jié)點向源節(jié)點返回的路由應(yīng)答消息。
18.如權(quán)利要求16所述的裝置,其特征在于,所述轉(zhuǎn)發(fā)單元,進一步用于轉(zhuǎn)發(fā)源節(jié)點向目的節(jié)點發(fā)送的第一通知包以及目的節(jié)點向源節(jié)點返回的第一確認包。
19.如權(quán)利要求16所述的裝置,其特征在于,所述轉(zhuǎn)發(fā)單元還用于轉(zhuǎn)發(fā)源節(jié)點向目的節(jié)點發(fā)送的第二通知包以及目的節(jié)點向源節(jié)點返回的第二確認包,并在收到所述第二通知 包時向源節(jié)點發(fā)送中間節(jié)點確認包,所述中間節(jié)點確認包中包含轉(zhuǎn)發(fā)單元轉(zhuǎn)發(fā)的第一通知 包和第二通知包的數(shù)量總和以及第一確認包和第二確認包的數(shù)量總和。
20.如權(quán)利要求16所述的裝置,其特征在于,所述監(jiān)測單元,還用于監(jiān)測所在鏈路是否 出現(xiàn)錯誤,并在出現(xiàn)錯誤時,向源節(jié)點發(fā)送鏈路錯誤包。
21.—種移動Ad hoc網(wǎng)絡(luò)中的數(shù)據(jù)傳輸系統(tǒng),其特征在于,包括源節(jié)點、目的節(jié)點和 至少一個中間節(jié)點,其中,源節(jié)點,用于根據(jù)保存的錯誤鏈接信息,選擇一條到目的節(jié)點的路由;通過所述路由中 的各個中間節(jié)點的依次轉(zhuǎn)發(fā),向目的節(jié)點發(fā)送數(shù)據(jù)包;接收目的節(jié)點收到所述數(shù)據(jù)包后通 過所述路由中的各個中間節(jié)點的依次轉(zhuǎn)發(fā)返回的數(shù)據(jù)確認包;確定發(fā)送的數(shù)據(jù)包的數(shù)量和 收到的數(shù)據(jù)確認包的數(shù)量的差值超過設(shè)定閾值時,將沒有發(fā)送數(shù)據(jù)錯誤包的中間節(jié)點中距 離源節(jié)點最近的中間節(jié)點與所述中間節(jié)點的上一跳節(jié)點之間的鏈路確定為錯誤鏈接,并保 存在所述錯誤鏈接信息中作為下次路由選擇的依據(jù);中間節(jié)點,用于轉(zhuǎn)發(fā)源節(jié)點向目的節(jié)點發(fā)送的數(shù)據(jù)包以及目的節(jié)點向源節(jié)點返回的數(shù) 據(jù)確認包;在監(jiān)測到自身轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)量和數(shù)據(jù)確認包數(shù)量的差值超過設(shè)定閾值時向源 節(jié)點發(fā)送數(shù)據(jù)錯誤包;目的節(jié)點,用于在接收到源節(jié)點發(fā)送的數(shù)據(jù)包時向源節(jié)點返回數(shù)據(jù)確認包。
全文摘要
本發(fā)明公開了一種移動Ad hoc網(wǎng)絡(luò)中的數(shù)據(jù)傳輸方法、裝置及系統(tǒng),該方法包括源節(jié)點根據(jù)保存的錯誤鏈接信息,選擇一條到目的節(jié)點的路由;源節(jié)點通過所述路由中的各個中間節(jié)點的依次轉(zhuǎn)發(fā),向目的節(jié)點發(fā)送數(shù)據(jù)包,并接收目的節(jié)點收到所述數(shù)據(jù)包后通過所述路由中的各個中間節(jié)點依次轉(zhuǎn)發(fā)返回的數(shù)據(jù)確認包,其中,中間節(jié)點監(jiān)測到自身轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)量和數(shù)據(jù)確認包數(shù)量的差值超過設(shè)定閾值時向源節(jié)點發(fā)送數(shù)據(jù)錯誤包;源節(jié)點確定發(fā)送的數(shù)據(jù)包的數(shù)量和收到的數(shù)據(jù)確認包的數(shù)量的差值超過所述設(shè)定閾值時,將沒有發(fā)送數(shù)據(jù)錯誤包的中間節(jié)點中距離源節(jié)點最近的中間節(jié)點與其上一跳節(jié)點之間的鏈路確定為錯誤鏈接,并保存在錯誤鏈接信息中。
文檔編號H04W40/02GK101969661SQ20101052753
公開日2011年2月9日 申請日期2010年10月27日 優(yōu)先權(quán)日2010年10月27日
發(fā)明者鄒力鹍 申請人:北京握奇數(shù)據(jù)系統(tǒng)有限公司