專利名稱:發送數據的方法
技術領域:
本發明的示范實施例通常涉及一種發送數據的方法,并具體而言,涉及從源節點向目的地節點發送數據的方法。
背景技術:
Ad-hoc按需式距離向量(AODV)協議是一種在移動設備之間路由消息的方法。它允許這些移動設備或節點通過其鄰居傳送消息給它們不能直接與之通信的節點。AODV通過發現能夠沿其傳送消息的路由來實現此功能。AODV確信這些路由不包含環路(例如,一個或更多中繼的節點)并試圖找到可能存在的最短路由(例如,基于延遲,被訪問節點或跳躍的數量等等)。AODV還能夠處理路由中的變化并且如果出現錯誤則建立新的路由。
圖1示例了傳統的AODV網絡100。如在圖1中所示,AODV網絡100包括分別具有覆蓋區域105、110、115、120和125的節點1、2、3、4和5。與其他節點能夠直接通信的節點稱為“鄰居”。
AODV網絡100中的每個節點通過監聽每個節點以固定的周期性間隔廣播的“HELLO”消息來跟蹤它的鄰居。當給定的節點希望發送消息給非鄰居節點時,該節點廣播路由請求(RREQ)消息。該RREQ消息包括標識發送RREQ消息的節點的源標識符、標識消息被尋址到的非鄰居節點的目的地標識符、消息的使用期限和用作消息唯一標識符的序列號。該使用期限指示消息處于“激活”的持續時間,在此時間之后,任何節點將不會嘗試傳送該消息到目的地非鄰居節點。
圖2示例了在圖1的AODV網絡100內傳統的消息路由處理。在步驟S200,節點1確定向節點3發送消息。如圖1所示,節點1的鄰居是節點2和4。所以,節點1不能直接與節點3進行通信。節點1廣播RREQ,該RREQ由節點4和節點2接收。在本實例中,為簡明起見,目的地標識符是“3”(即,指定節點3),源標識符是“1”(即,指定節點1),使用期限是“3”(例如,指定持續時間,諸如3秒或3跳)以及序列號是“0”。因此,節點1所發送的RREQ可以表示為[目的地標識符、源標識符、使用期限、序列號]或[3、1、3、0]。
鄰居節點2和4中的每個節點都接收RREQ[3、1、3、0]。在步驟S205和S210中,節點4和2分別確定目的地標識符是否標識(i)節點4或節點2分別知道的節點或者(ii)所述接收節點(例如,節點2或4)是否通過目的地標識符標識的。如果條件(i)和(ii)中的每個條件都不滿足,如果所述使用期限還未到期,則該接收節點重新廣播接收的RREQ。因此,在步驟S205中,由于節點4不是節點3的鄰居以及節點4不是節點3,因此節點4重新廣播RREQ,節點5將接收該RREQ。應該明白由于節點1不是節點4的鄰居,節點1還將會接收RREQ,但是由于節點1是源發節點,由于節點1將忽略重新廣播的RREQ的接收,則未示例該步驟。而且,盡管未示出,但是在從節點4接收重新廣播的RREQ之后,在節點4所執行的步驟S205然后將在節點5執行,等等。
返回到步驟S210,節點2是節點3的鄰居,所以它知道到節點3的路由。節點2然后確定是否節點2是通過目的地標識符標識的節點。由于節點2不是目的地實體,節點2向節點1發送回路由應答(RREP)以指示到節點3的路由已找到以及還重新廣播該RREQ給節點3,RREP類似于RREQ,但是RREP包括代替使用期限的跳躍計數(即,分離源或發送節點與接收或目的地節點的節點數量,例如,節點1到節點3包括2跳)。
節點3接收重新廣播的RREQ并在步驟S215中確定是否滿足條件(i)和(ii)。由于滿足條件(ii)(即,節點3是目的地標識符所標識的節點),節點3通過節點2發送RREP給節點1以及不重新廣播所述RREQ。
節點1從節點3接收RREP,并基于該RREP的序列號,確定是否更新到節點3的路由通道。序列號通過允許節點相對于其他節點確定它們的信息有多“新”來用作時標。每當節點發送新消息時,從前一發送的消息遞增與該新消息相關的序列號。每個節點記錄它所對話的節點的當前(即,最高的)序列號。較高的序列號指示“更新鮮”和更新的路由。
參考圖1和2,節點1轉發從節點3所接收的RREP到節點4,并轉發到節點5,等等。節點1比較該接收的RREP和存儲的到節點3的路由并確定RREP的序列號高于其存儲的路由。相應地,在步驟S225中節點1利用RREP所指示的路由更新其存儲的路由。替換地,添加新確定的路由作為替換的路由通道,以便從節點1到節點3有多條路由通道可用。
一旦已知從源節點到目的地節點的路由通道,源節點發送數據到目的地節點,直到接收到路由錯誤消息(RERR)為止。該RERR指示在源節點和目的地節點之間的一條或多條路由通道中的損壞鏈路。不論何時節點接收RERR,該節點都檢查它的路由選擇表并刪除包含該“壞”節點(即,源節點至少通過舊的路由通道不再連接的節點)的所有路由。
通常情況下,響應于三種情形廣播RERR。在第一種情形中,節點接收用于轉發的數據包,但是它不具有到數據包目的地的路由通道。因此,另一個節點(即,發送數據包的節點)錯誤地認為到目的地節點的正確路由通道通過不知道該目的地的節點。
在第二種情形中,節點接收使它的至少一個路由變為無效的RERR。該節點發出RERR,該RERR具有所有現在不可到達的新節點。在第三種情形中,該節點檢測到不能與它的一個鄰居通信。該節點更新其路由表以使得使用不可到達的鄰居作為第一跳的路由無效。然后,該節點發出指示未連接所述鄰居的RERR,這使得那些相關的路由通道變成無效。
傳統的路由器廠家使用命令行界面(CLI)來支持在各種類型的網絡諸如因特網中實現的路由協議。CLI是一種到計算機操作系統或應用程序的用戶界面,其中用戶通過在指定行上鍵入命令來響應可視提示,從系統接收響應,然后輸入另一命令等等。例如,Windows操作系統中的MS-DOS提示命令應用程序是CLI設置。CLI允許網絡管理員查看統計信息,改變配置和執行其他管理功能。
路由器廠家典型應用對于系統完整性最佳的協議。路由器廠家協議典型考慮到管理距離。當從給定的節點到同一目的地存在使用不同路由協議的兩條或更多不同的路由通道時,管理距離是路由器選擇最佳通道所使用的特征。管理距離定義了路由協議的可靠性。路由器使用管理距離值以最大到最小可靠性的順序確定每個路由協議的先后順序。
例如,路由器廠家所使用的CLI可以是IP路由192.0.0.0 255.0.0.0 135.252.20.1 120因此如果源節點和目的地節點之間的通道不可用,則將從192.0.0.0/255.0.0.0接收的所有包被路由到路由器135.252.20.1,與所述通道相關的管理距離值小于管理距離門限(例如,120)。對于關鍵的系統,這種路由器定義的參數支持保護系統的保守協議。但是,不允許實際上作為AODV網絡中的“主人”的終端用戶在可用通道中進行選擇,而是受路由器廠家所定協議的支配。
發明內容
本發明的示范實施例涉及在無線通信網絡中從源節點發送數據的方法,包括選擇從源節點到目的地節點的多個可用路由通道中的一個路由通道,在該路由通道上基于所述源節點所規定的路由準則發送數據。
根據下文給出的詳細描述和通過示例方式給出的附圖,將會變得更加完全地理解本發明,其中在各個附圖中類似的附圖標記表示相應的部分。
圖1示例了傳統的Ad-hoc按需式距離向量(AODV)網絡。
圖2示例了在圖1的AODV網絡內傳統的消息路由處理。
圖3示例了根據本發明示范實施例的路由通道選擇處理。
具體實施例方式
圖3示例了根據本發明示范實施例的路由通道選擇處理。
如本發明背景部分所討論的,源節點和目的地節點之間的多個路由通道可以是可用的。相應地,在時間n,存在到目的地D的M個路由,其中M是整數。在圖3的步驟S300中,如果M不大于或等于2,則處理前進到步驟S305。在步驟S305中,如果源節點希望發送一個或更多數據包到目的地D,則該源節點經由可用的通道發送數據包。替換地,如果在步驟S305中,無任何路由通道可用,則所述源節點廣播RREQ,如在本發明背景部分所討論,以找到到達目的地D的可用路由通道。
在步驟S300中,如果從所述源節點到目的地D有兩條或更多條路由通道可用,則該處理前進到步驟S310。在步驟S310中,所述源節點為多條路由通道中的每條通道輸入參數列表S。每個參數列表S包括一個或多個參數。在每個參數列表S內的一個或多個參數建立路由準則,源節點利用該路由準則對多個路由通道排序以便選擇用以傳送數據的其中一條路由通道。
在一個實例中,位于源節點的終端用戶選擇被包括作為參數列表S內的一個或更多參數的路由準則。例如,該終端用戶可以配置源節點(例如,蜂窩電話機、PDA、膝上型計算機等)以包括除路由器廠家所考慮參數之外的其他參數。正如以下將要描述的,終端用戶所選擇的要包括在參數列表S內的參數可以利用代價函數來評估。
在一個實例中,輸入的參數列表S定義如下Sni≡(Xni,Lni,Pni,DELAYni,BWni)T]]>其中i是多條路由通道中的第i條路由通道,n是時間度量,T表示轉置,以及包括在參數列表中的所述多個參數定義如下
Xni是二進制值(例如,“0”或“1”),表示第i條路由通道是否在時間n的選擇或基本路由通道。例如,Xni如果等于“1”,在時間n選擇第i條路由通道作為基本路由通道,以及如果Xni等于“0”,在時間n不選擇第i條路由通道作為基本路由通道。典型地,在任何給定時間(例如,時間n)只選擇多個通道中的一條通道作為基本通道,盡管以下將會描述,對于下一時間n+1可以選擇不同的路由通道;Lni是沿第i條路由通道從源節點到目的地D的跳數;Pni是用戶定義的在時間n用于第i條路由通道的優先值(例如,由源節點的用戶定義);DELAYni是在時間n沿第i條路由通道從源節點到目的地D的已知延遲(例如,根據前一數據包轉發處理度量,估計等等);和BWni是在時間n沿第i條路由通道從源節點到目的地D的已知帶寬(例如,根據前一數據包轉發處理度量,估計等等)。在一個實例中,已知帶寬BWni是在時間n沿第i條路由通道從源節點到目的地D的具有最低帶寬跳的帶寬。
在步驟S315中,在時間n,所述源節點基于參數列表S中輸入的一個或更多參數選擇多個可用路由通道中的一個路由通道以用作時間n+1的基本路由通道。換言之,使用 確定 以下給出如通過不同示范代價函數所評估的有關兩條可用路由通道的實例。但是,對于本領域的普通技術人員將會容易地明白以下實例可以如何擴縮以便容納任何數量的可用路由通道。
代價函數定義為f(Sni;Snj),其中f(Sni;Snj)評估成“-1”、“0”或“1”其中之一。代價函數f(Sni;Snj)用于比較第i條路由通道與第j條路由通道。通常,如果第i條路由通道比第j條路由通道更壞,代價函數f(Sni;Snj)評估成“-1”,如果第i條路由通道與第j條路由通道相同,則評估成“0”,以及如果第i條路由通道優于第j條路由通道,則評估成“1”。
現在將給出代價函數的實例。在第一實例中,代價函數f(Sni;Snj)基于第i和第j條路由通道中的跳數。因此,如果第i條路由通道的跳數小于第j條路由通道,代價函數f(Sni;Snj)評估成“1”,如果第i和第j條路由通道具有相同的跳數,則評估成“0”,以及如果第i條路由通道的跳數大于第j條路由通道,則評估成“-1”。
在第一實例中,在源節點可以利用第一可執行的程序代碼段(例如,插件程序)執行代價函數。該第一可執行代碼段的布爾邏輯可以如下表示為如果S(i).L<S(j).L那么返回1;否則如果S(i).L=S(j).L那么返回0;否則返回-1;第一實例的代價函數用于第一實例代價函數的第一可執行程序代碼段可以以編程語言實施為源代碼,該編程語言包括但不限制于Java、C、C++、Pascal等等。
在第二實例中,代價函數f(Sni;Snj)基于用戶定義的優先值P。因此,如果用戶為第i條路由通道定義的優先值Pni小于用戶為第j條路由通道定義的優先值Pni,則代價函數f(Sni;Snj)評估成“-1”,如果第i和第j條路由通道具有相同的用戶定義的優先值,則評估成“0”,以及如果第i條路由通道具有的用戶定義的優先值Pni大于用戶為第j條路由通道定義的優先值Pni,則評估成“1”。
在源節點利用第二可執行程序代碼段(例如,插件程序)可以執行第二實例的代價函數。該第二可執行代碼段的布爾邏輯可以如下表示為如果S(i).P<S(j).P那么返回-1;否則如果S(i).P=S(j).P那么返回0;否則返回1; 第二實例的代價函數用于第二實例代價函數的第二可執行程序代碼段可以以編程語言實施為源代碼,該編程語言包括但不限制于Java、C、C++、Pascal等等。
在第三實例中,使用一組分級比較來評估代價函數f(Sni;Snj)。在本例中,使用分級比較來評估代價函數f(Sni;Snj),以便返回較少的0。首先,比較用戶為第i和第j條路由通道所定義的優先值P。如果用戶為第i和第j條路由通道所定義的優先值P不相同,則第三實例的代價函數類似于第二實例的代價函數返回“1”或“-1”。否則,第三實例代價函數通過考慮跳數接下來繼續進行。如果用于第i和第j條路由通道的跳數不相同,第三實例代價函數類似于第一實例的代價函數返回“1”或“-1”。否則,第三實例代價函數通過考慮當前的基本路由通道狀態接下來繼續進行。如果第i條路由通道是用于時間n的當前基本路由通道(即,對于時間n的第i條路由通道X=1),那么第三實例代價函數返回“1”。如果第j條路由通道是用于時間n的當前基本路由通道(即,對于時間n的第j條路由通道X=1),那么第三實例代價函數返回“-1”。否則,第三實例代價函數返回“0”。
在源節點利用第三可執行程序代碼段(例如,插件程序)可以執行第三實例的代價函數。該第三可執行代碼段的布爾邏輯可以如下表示為如果S(i).P>S(j).P那么返回1;否則如果S(i).P<S(j).P那么返回-1;否則{如果S(i).L>S(j).L那么返回-1;否則如果S(i).L<S(j).L那么返回1;
否則{如果S(i).X=1那么返回1;否則如果S(j).X=1那么返回-1;否則返回0}} 第三實例的代價函數盡管第一、第二和第三實例代價函數在以上描述為評估兩條路由通道,但是很容易明白可以執行代價函數的附加迭代以比較任何剩余可用的路由通道,直到指定單一路由通道(例如,對于時間n+1的唯一一條路由通道X=1)作為基本或“選擇的”路由通道為止。例如,如果存在三條可用的路由通道,首先利用上述處理比較第一和第二路由通道。然后比較正如通過上述代價函數所確定的兩條路由通道中的較佳路由通道與第三條路由通道。然后考慮將如通過第二比較確定的較佳路由通道作為基本或“選擇的”路由通道。將會容易地明白如何將上述迭代處理應用于任何數量的可用路由通道。
在步驟S315選擇路由通道之后,在步驟S320中,在時間n+1沿所選擇的路由通道(例如,通過代價函數實現所確定的基本路由通道)從源節點發送數據包到目的地D。
在步驟S325中,所述源節點確定是否應該更新所選的路由通道。例如,如果接收指示所選的路由通道不再有效的REER,則源節點確定需要更新該選擇的路由通道。在另一個實例中,所述源節點可以周期性更新該選擇的路由通道(例如,當時間n+1到期,再次當時間n+2到期時等等)。如果源節點確定要更新該選擇的路由通道,該處理返回到步驟S310,在步驟S315為下一次路由通道選擇更新參數列表S;否則,該處理返回到步驟S320并且所述源節點在選擇的未更新路由通道上繼續發送數據包。
因此描述了本發明的示范實施例,顯然可以以許多方式來變化這些實施例。例如,盡管以上沒有明確地描述,但是將容易明白其他實例代價函數可以基于用于第i條路由通道和/或其他路由通道諸如第j條路由通道的帶寬BWni和/或DELAYni延遲。
而且,盡管已經相對于經由在所有移動節點所執行插件程序執行的處理描述了本發明的上述示范實施例,但是對于本領域的普通技術人員來說將會容易明白上述程序上的策略可替換地使用其他熟知的實現方法來執行。
而且,盡管上述實例的路由準則包括帶寬、用戶優先度量等等,但是應該明白本發明的其他示范實施例可以包括其他類型的路由準則。例如,可以至少部分地基于用于數據傳送的會話類型分類來選擇所選的路由通道。會話類型分類可以包括音頻呼叫(例如,會議呼叫、對等呼叫,等等)、視頻呼叫(例如,單向視頻、雙向視頻等等)、和/或任何其他類型的熟知的數據傳送分類。相應地,這種會話類型分類可以構成可選擇路由通道的其他準則。
并不認為這些變型偏離于本發明的示范實施例,所有的這些修改意圖包括在本發明的范圍內。
權利要求
1.一種在無線通信網絡中從源節點發送數據的方法,包括第一選擇從源節點到目的地節點的多個可用路由通道中的一個路由通道,以在該路由通道上基于該源節點所規定的路由準則發送數據。
2.根據權利要求1所述的方法,其中通過代價函數給出所述路由原則。
3.根據權利要求2所述的方法,其中所述代價函數包括以下至少之一(i)多個可用路由通道的當前基本路由通道狀態,(ii)與多個可用路由通道中的每個路由通道相關的跳躍數量,(iii)與多個可用路由通道中的每個路由通道相關的用戶定義的優先值,(iv)沿多個可用路由通道中的每個路由通道從所述源節點到目的地節點的已知延遲,以及(v)沿多個可用路由通道中的每個路由通道從所述源節點到目的地節點的已知帶寬。
4.根據權利要求3所述的方法,其中所述路由準則包括多個參數,這些參數以分級順序被確定優先順序并包括上述(i)、(ii)、(iii)、(iv)和(v)中的至少兩個。
5.根據權利要求4所述的方法,其中(iii)在分級順序中被排序高于(i)或(ii)。
6.根據權利要求4所述的方法,其中(ii)在分級順序中被排序高于(i)。
7.根據權利要求2所述的方法,還包括第二選擇多個可用路由通道中的另一個路由通道;以及沿該第二選擇的路由通道從所述源節點第二發送數據到目的地節點。
8.根據權利要求7所述的方法,其中周期性執行所述第二選擇步驟。
9.根據權利要求8所述的方法,其中響應于第一選擇路由通道上的性能惡化,執行所述第二選擇步驟。
10.根據權利要求1所述的方法,其中所述路由準則包括以分級順序被確定優先順序的多個參數。
全文摘要
提供了一種在無線通信網絡中從源節點發送數據的方法。在一個實例中,所述方法包括選擇從源節點到目的地節點的多個可用路由通道中的一個路由通道,在該路由通道上基于該源節點所規定的路由準則發送數據。
文檔編號H04W40/28GK101047660SQ200610071408
公開日2007年10月3日 申請日期2006年3月28日 優先權日2006年3月28日
發明者牛志升, 錢嶺, 王雷, 鄭直 申請人:朗迅科技公司