專利名稱:一種無線Mesh網絡機會路由方法及路由器的制作方法
技術領域:
本發明涉及無線Mesh網絡技術領域,特別是涉及一種無線Mesh網絡機會路由方法及路由器。
背景技術:
所謂無線Mesh網絡(無線網狀網絡)也稱為“多跳(multi-hop)”網絡。由于與傳統的WLAN相比,無線Mesh網絡具有快速部署和易于安裝、非視距傳輸、健壯性、結構靈活、高帶寬等優點,因此備受關注。其中,傳統的無線Mesh網絡的數據傳輸過程為首先根據當前網絡狀態(如鏈路的丟包率、帶寬、時延等),在源節點和目的節點間選擇一條最優傳輸路徑或最短傳輸路徑; 然后,將數據包從源節點發出并按照選定的路徑進行傳輸。但是,由于無線網絡的鏈路質量 受環境影響較大,特別是在電磁干擾相對嚴重的地區,會存在較高的丟包率,從而使得網絡的傳輸速率、吞吐率或傳輸質量不高。而機會路由技術從一定程度上緩解了上述問題,其利用了無線網絡的廣播特性,首先根據源節點的鄰居節點到目的節點的鏈路信息,從中選擇一組作為幫助源節點轉發數據包的候選中繼節點;然后,源節點在廣播數據包時,被選定且受到所廣播的數據包的候選中繼節點幫助轉發所接收到的數據包,否則,不轉發。可見,與傳統的無線Mesh網絡的數據傳輸過程相比,機會路由技術允許更多的節點參與到數據包的轉發過程中,提高了節點之間數據傳輸的成功率,從而使得整個網絡的傳輸速率、吞吐率以及傳輸質量均有較為明顯的提聞。但是,上述的機會路由技術允許多個候選中繼節點轉發相同的數據包,因此,導致了冗余傳輸的問題;同時,參與中繼轉發的節點越多,端到端的傳輸速率越快,而重復轉發數據包的概率越高,這些到加重了網絡的負載,降低了整個網絡的吞吐率。
發明內容
為解決上述技術問題,本發明實施例提供了一種無線Mesh網絡機會路由方法及路由器,以解決現有的機會路由所帶來的冗余傳輸問題,進而提高無線Mesh網絡的傳輸性能,技術方案如下第一方面,本發明實施例提供了一種無線Mesh網絡機會路由方法,預先為源節點到目的節點的數據傳輸過程劃分第一數量的時隙,且每一時隙完成第二數量的數據包的傳輸;所述方法包括源節點廣播本時隙第二數量的數據包,所述數據包攜帶有其自身到目的節點的ETT值,所述ETT為耗時最長的潛在鏈路的傳輸時間;接收下一跳節點所反饋的應答包,所述應答包攜帶有相應下一跳節點所接收到的數據包的標識以及相應下一跳節點到目的節點ETT值;根據所述應答包中數據包的標識以及相應下一跳節點到目的節點的ETT值,確定本時隙待中轉的數據包以及每一待中轉的數據包相對應的一中繼節點;向每一中繼節點發送相應的任務分配包,所述任務分配包中攜帶有所述中繼節點所需中轉的數據包的標識;當接收到目的節點發送的ACK包時,結束本時隙的源節點到目的節點的數據包傳輸過程。第二方面,本發明實施例提供了一種無線Mesh網絡機會路由方法,其特征在于,預先為源節點到目的節點的數據傳輸過程劃分第一數量的時隙,且每一時隙完成第二數量的數據包的傳輸;所述方法包括當前的中間節點接收本時隙中上一跳節點所廣播的數據包,所述數據包攜帶有上一跳節點到目的節點的ETT值,所述ETT為耗時最長的潛在鏈路的傳輸時間;
計算當前的中間節點到目的節點的ETT值;當所述當前的中間節點到目的節點的ETT值不大于上一跳節點到目的節點的ETT值時,向相應的上一跳節點反饋應答包,所述應答包攜帶有當前的中間節點所接收到的數據包的標識以及其到目的節點ETT值;判斷第二時間段內是否接收到上一跳節點發送的任務分配包,如果接收到所述任務分配包,則將自身到目的節點的ETT值加入到所需中轉的數據包中并廣播自身對應的待中轉的數據包;接收下一跳節點所反饋的應答包,所述應答包攜帶有相應下一跳節點所接收到的數據包的標識以及相應下一跳節點到目的節點ETT值;根據所述應答包中數據包的標識以及相應下一跳節點到目的節點的ETT值,確定本時隙待中轉的數據包以及每一待中轉的數據包相對應的一中繼節點;向每一中繼節點發送相應的任務分配包,所述任務分配包中攜帶有所述中繼節點所需中轉的數據包的標識。第三方面,本發明實施例提供一種路由器,適用于無線Mesh網絡中,所述路由器作為源節點,包括第一數據包廣播模塊,用于廣播本時隙待發送的數據包,所述數據包攜帶有其自身到目的節點的ETT值,所述ETT為耗時最長的潛在鏈路的傳輸時間;第一應答包接收模塊,用于接收下一跳節點所反饋的應答包,所述應答包攜帶有相應下一跳節點所接收到的數據包的標識以及相應下一跳節點到目的節點ETT值;第一中繼信息確定模塊,用于根據所述應答包中數據包的標識以及相應下一跳節點到目的節點的ETT值,確定本時隙待中轉的數據包以及每一待中轉的數據包相對應的一中繼節點;第一任務分配包發送模塊,用于向每一中繼節點發送相應的任務分配包,所述任務分配包中攜帶有所述中繼節點所需中轉的數據包的標識;ACK包處理模塊,用于當接收到目的節點發送ACK包時,結束本時隙的源節點到目的節點的數據包傳輸過程。第四方面,本發明實施例提供了一種路由器,適用于無線Mesh網絡中,所述路由器作為中間節點,包括數據包接收模塊,用于接收本時隙中上一跳節點所廣播的數據包,所述數據包攜帶有上一跳節點到目的節點的ETT值,所述ETT為耗時最長的潛在鏈路的傳輸時間;ETT計算模塊,用于計算當前的中間節點到目的節點的ETT值;應答包反饋模塊,用于當所述當前的中間節點到目的節點的ETT值不大于上一跳節點到目的節點的ETT值時,向相應的上一跳節點反饋應答包,所述應答包攜帶有當前的中間節點所接收到的數據包的標識以及其到目的節點ETT值;任務分配包處理模塊,用于判斷第二時間段內是否接收到上一跳節點發送的任務分配包,如果接收到所述任務分配包,則將自身到目的節點的ETT值加入到所需中轉的數據包中并廣播自身對應的待中轉的數據包;第二應答包接收模塊,用于接收下一跳節點所反饋的應答包,所述應答包攜帶有 相應下一跳節點所接收到的數據包的標識以及相應下一跳節點到目的節點ETT值;第二中繼信息確定模塊,用于根據所述應答包中數據包的標識以及相應下一跳節點到目的節點的ETT值,確定本時隙待中轉的數據包以及每一待中轉的數據包相對應的一中繼節點;第二任務分配包發送模塊,用于向每一中繼節點發送相應的任務分配包,所述任務分配包中攜帶有所述中繼節點所需中轉的數據包的標識。與現有技術相比,本發明實施例所提供的方案中,中間節點本時隙接收到上一跳節點所廣播的數據包后,當判斷得出自身到目的節點的ETT值不大于上一跳節點到目的節點的ETT值時,向上一跳節點反饋應答包;而上一跳節點則根據下一跳節點所反饋的應答包,確定出待中轉的數據包以及每一待中轉的數據包對應的中繼節點,進而向相應的中繼節點發送任務分配包,指示該中繼節點進行相應數據包的轉發。可見,通過符合特定條件的中間節點反饋數據包且每一待中轉的數據包對應一中繼節點的方式,可以解決現有機會路由所帶來的冗余傳輸問題,進而提高無線Mesh網絡的傳輸性能。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖I為本發明實施例所提供的一種無線Mesh網絡機會路由方法的第一種流程圖;圖2為本發明實施例所提供的一種無線Mesh網絡機會路由方法的第二種流程圖;圖3為本發明實施例所提供的一種無線Mesh網絡機會路由方法的第三種流程圖;圖4為無線Mesh網絡中各個節點對應ETT值的計算結果圖;圖5為無線Mesh網絡中各節點接收數據包情況的示意圖;圖6為本發明實施例所提供的一種路由器的第一種結構示意圖;圖7為本發明實施例所提供的一種路由器的第二種結構示意圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。為了解決現有機會路由所帶來的冗余傳輸問題,進而提高無線Mesh網絡的傳輸性能,本發明實施例提供了一種無線Mesh網絡機會路由方法及路由器。下面首先對本發明實施例所提供的一種無線Mesh網絡機會路由方法進行介紹。需要說明的是,本發明實施例所提供的無線Mesh網絡機會路由方法中,預先為源節點到目的節點的整個數據傳輸過程劃分第一數量的時隙,且每一時隙完成第 二數量的數據包的傳輸。其中,該第一數量和第二數量可以根據實際應用場景進行設定,在此不作限定。為了描述清楚,下面以某一時隙中源節點向目的節點發送數據包的過程為例,對本發明實施例所提供無線Mesh網絡機會路由方法進行介紹。從源節點的角度,如圖I所示,一種無線Mesh網絡機會路由方法,可以包括S101,源節點廣播本時隙第二數量的數據包;源節點通過廣播方式,連續發送本時隙對應的第二數量的數據包,而作為下一跳節點的中間節點則有機會接收到一個或多個源節點所廣播的數據包。其中,源節點所廣播的每一數據包攜帶有源節點到目的節點的ETT值,所述ETT為耗時最長的潛在鏈路的傳輸時間。由于在多數據流網絡中,同一中繼節點(即轉發上一跳節點發送數據包的中間節點)可能會同時收到多個節點發送的數據包,即存在多條數據流;而且在相對較長時間的數據傳輸中,中繼節點也是相互的,例如,在本次傳輸中B為A的中繼節點,那么在下次傳輸中可能A為B的中繼節點。因此,為了激勵節點間的這種相互協作轉發,在本發明的實施例中,機會路由技術將信用作為中繼節點的收益,并將節點的廣播包被轉發的優先級與節點的信用相關聯,這樣在鏈路狀態一定的情況下,節點的自身信用越高,其廣播包被轉發的優先級也越高。假設每個節點都期望自己的廣播包被優先轉發,這樣就可以采用博弈理論建模為每個節點追求自身的最高信用。其中,在以信用作為中繼節點收益的情況下,ETT值的計算方式如下ETT=耗時最長的潛在鏈路的傳輸時間;每條潛在鏈路的傳輸時間=該潛在鏈路配的期望傳輸數據量/該潛在鏈路對發包節點的分配帶寬;每條潛在鏈路的期望傳輸數據量=ETX*S*該潛在鏈路的傳輸比例;其中,ETX為期望傳輸次數,且ETX=I/ (I-P), P為所有潛在鏈路的總丟包率,S為數據包大小。需要說明的是,在計算傳輸單位數據量的期望時間時s=l。對于每條潛在鏈路的傳輸比例而言每條潛在鏈路都對應著一個下一跳節點,將所有潛在鏈路的下一跳節點按其到目的節點的ETT值排序,Q為所有下一跳節點的ETT值均大于該潛在鏈路數據包均丟失,而該潛在鏈路成功收到數據包且能夠將其成功轉發至目的節點的概率,那么可以得到每條鏈路的傳輸比例=Q/ (I-P)0
對于一潛在鏈路對發包節點的分配帶寬而言初始化所有節點的信用值為1,當節點作為中繼成功為其他節點轉發一次數據包時,該節點的信用值加1,當前傳輸的信用值可以由歷史傳輸數據得到;假設同時向某一中間節點發包的節點的總信用值為M,其中的一個發包節點的信用值為N,那么該中間節點所對應的潛在鏈路分配給該發包節點的帶寬可以計算如下該潛在鏈路對發包節點的分配帶寬=N*B1/M,其中,BI為鏈路帶寬。綜上,ETT的計算公式可以如下
i ETX X 5 X O IETT = max s-卜
I(i-P)xB J 其中,{、— ;二為當前的節點對應的一潛在鏈路的傳輸時間,ETX為期望傳輸
次數,且ETX=I/ (1-P),其中,P為當前的節點對應所有潛在鏈路的總丟包率,S為數據包大小,Q為所有下一跳節點的ETT值均大于當前潛在鏈路數據包均丟失,而當前潛在鏈路成功收到數據包且能夠將其成功轉發至目的節點的概率,B為當前的節點對應潛在鏈路分配給上一跳節點的鏈路帶寬。如圖4所示的包含5個節點(A、B、C、D、E)的網絡中,A是源節點,E是目的節點,所有鏈路的鏈路帶寬BI均為5,傳輸每一數據包所需ETT的計算方法如下目的節點E的ETT為O ;節點D 的 ETT=I/{(1-15%) *5} =0. 24 ;對于C而言假設當前同時給節點D發包的節點有3個,且3個節點的總信用為10,節點C的信用為6,因此C到E的潛在路徑C-E的分配帶寬為5,而C-D-E的分配帶寬僅為5*6/10=3 ;由于丟包方式包括(I )C-D丟包且C-E丟包,(2 )C_E丟包、C-D未丟包但D-E丟包,因此,節點C對應的兩條潛在鏈路的總丟包率為P=O. 3*0. 7+0. 3*0. 3*0. 15=0. 2235,因此,ΕΤΧ=1/0. 7765=1. 29,并且通過概率論算法C-E對應的傳輸概率為O. 7,而C-D-E對應的傳輸概率為 O. 0765,因此,ETT=Max{I. 29*0. 7/ (O. 7765*5),I. 29*0. 0765/ (O. 7765*3)} =0. 23。相應的,節點A、B的計算方法與C相同,采用上述公式,最終可以得到所有節點的ETT值如圖4所示。S102,接收下一跳節點所反饋的應答包;其中,該應答包攜帶有相應下一跳節點所接收到的數據包的標識以及相應下一跳節點到目的節點ETT值。在源節點廣播出第二數量的數據包后,接收到源節點本時隙所廣播數據包的下一跳節點,則會根據自身到目的節點的ETT值,判斷是否需要向源節點反饋一應答包,即自身到目的節點的ETT值是否不大于源節點到目的節點的ETT值,并在判斷結果表明其需要反饋應答包時,向源節點反饋攜帶有自身所接收到的數據包的標識以及自身到目的節點的ETT值。而源節點則會接收下一跳節點所反饋的應答包。需要說明的是,由于網絡環境的影響,在數據包的傳輸過程中很可能會發生丟包現象,因此,為了保證數據傳輸效率以及準確性,源節點在等待第一時間后,會根據第一時間段內所接收到的下一跳節點反饋的應答包,判斷是否接收到所廣播的所有數據包相關的應答包,即判斷是否發生丟包現象,并在判斷出發生丟包現象時,繼續廣播所丟失的數據包,并在接收到關于本時隙所有數據包的應答包時進行后續的處理。其中,第一時間可以根據實際場景中網絡環境而設定,在此不作限定。S103,根據所述應答包中數據包的標識以及相應下一跳節點到目的節點的ETT值,確定本時隙待中轉的數據包以及每一待中轉的數據包相對應的一中繼節點;其中,根據所述應答包中數據包的標識以及相應下一跳節點到目的節點的ETT值,確定本時隙待中轉的數據包以及每一待中轉的數據包相對應的一中繼節點,可以包括將本時隙第二數量的數據包中相應應答包表明下一跳節點不為目的節點的數據包作為待中轉的數據包;根據所述待中轉的數據包所對應的應答包,逐一判斷每一待中轉的數據包是否被唯一的下一跳節點所接收到,如果是,將所述唯一的下一跳節點作為所述待中轉的數據包 對應的中繼節點;否則,將相應的至少兩個下一跳節點中ETT值最小的下一跳節點作為所述待中轉的數據包對應的中繼節點。例如如圖5所示,源節點A向目的節點E發送數據包的過程中,本時隙廣播的數據包為P1、P2、P3、P4、P5、P6 ;其中,節點B到目的節點的ETT為O. 48,其接收到的數據包為P1、P2、P4、P5 ;節點C到目的節點的ETT為O. 25,其接收到的數據包為P1、P2、P3、P5、P6 ;節點D到目的節點的ETT為O. 24,其未接收到數據包;節點E到自身的ETT為0,其接收到數據包為P5 ;由于節點B、節點C及節點E接收到數據包且各節點到目的節點的ETT均小于源節點到目的節點的ETT值,因此,節點B、節點C及節點E需要向源節點A反饋攜帶有所接收到數據包的標識及自身到目的節點的ETT值;通過利用上述方式,源節點接收到應答包后,將未被節點E接收到的數據包(Pl、P2、P3、P4、P6)作為待中轉的數據包,進而將僅僅被節點B接收到的數據包P4對應的中繼節點確定為節點B,將僅僅被節點C接收到數據包P3、P6對應的中繼節點確定為節點C,將同時被節點B和C接收到數據包P1、P2對應的中繼節點確定為節點C ;綜上,節點B作為中繼節點需要轉發的數據包為{P4},節點C作為中繼節點需要轉發的數據包為{P1、P2、P3、P6}。在本發明的另一實施例中,根據所述應答包中數據包的標識以及相應下一跳節點到目的節點的ETT值,確定本時隙待中轉的數據包以及每一待中轉的數據包相對應的一中繼節點,可以包括將本時隙第二數量的數據包中相應應答包表明下一跳節點不為目的節點的數據包作為待中轉的數據包;確定每一待中轉的數據包所對應的下一跳節點;確定待中轉的數據包中被唯一下一跳節點所接收到數據包對應的中繼節點為相應唯一的下一跳節點;分別確定本時隙剩余的待中轉的數據包對應的中繼節點為能夠使本時隙總的ETT值最小的分配方式中相應的下一跳節點。例如如圖5所示,源節點A向目的節點E發送數據包的過程中,本時隙廣播的數據包為P1、P2、P3、P4、P5、P6 ;其中,節點B到目的節點的ETT為O. 48,其接收到的數據包為P1、P2、P4、P5 ;節點C到目的節點的ETT為O. 25,其接收到的數據包為P1、P2、P3、P5、P6 ;節點D到目的節點的ETT為O. 24,其未接收到數據包;節點E到自身的ETT為O,其接收到數據包為P5 ;由于節點B、節點C及節點E接收到數據包且各節點到目的節點的ETT均小于源節點到目的節點的ETT值,因此,節點B、節點C及節點E需要向源節點A反饋攜帶有所接收到數據包的標識及自身到目的節點的ETT值;通過利用上述方式,源節點接收到應答包后,將未被節點E接收到的數據包(PU P2、P3、P4、P6)作為待中轉的數據包,進而將僅僅被節點B接收到的數據包P4對應的中繼節點確定為節點B,將僅僅被節點C接收到數據包P3、P6對應的中繼節點確定為節點C ;而由于Pl和P2同時被節點B、節點C接收到,因此,當前存在的數據包對應的中繼節點分配方式可以有(I)節點B作為中繼節點中轉數據包{P4},其對應的ETT為O. 45,節點C作為中繼節點中轉數據包{P1、P2、P3、P6},其對應的ETT為O. 23*4 ;(2)節點B作為中繼節點中轉數據包{P1、P4},其對應的ETT為O. 45*2,節點C作為中繼節點中轉數據包{P2、P3、P6},其對應的ETT為O. 23*3 ;(3)節點B作為中繼節點中轉數據包{P2、P4},其對應的ETT為O. 45*2,節點C作 為中繼節點中轉數據包{P1、P3、P6},其對應的ETT為O. 23*3 ;(4)節點B作為中繼節點中轉數據包{P1、P2、P4},其對應的ETT為O. 45*3,節點C作為中繼節點中轉數據包{P3、P6},其對應的ETT為O. 23*2 ;綜上可知,方式(I)對應的ETT為O. 92、方式(2)對應的ETT為O. 9、方式(3)對應的ETT為O. 9、方式(4)對應的ETT為I. 35,可見,整個傳輸過程的總的ETT最小的方式為
(2)和(3);綜上,節點B作為中繼節點需要轉發的數據包為{P1、P4},節點C作為中繼節點需要轉發的數據包為{P2、P3、P6};或者,節點B作為中繼節點需要轉發的數據包為{P2、P4},節點C作為中繼節點需要轉發的數據包為{P1、P3、P6}。S104,向每一中繼節點發送相應的任務分配包,所述任務分配包中攜帶有所述中繼節點所需中轉的數據包的標識;在為待中轉的數據包分配中繼節點后,則可以為每一中繼節點構建一任務分配包,并將所構建的任務分配包發送至相應的中繼節點;其中,所述任務分配包中攜帶有相應中繼節點所需中轉的數據包的標識。可以理解的是,當中繼節點接收到任務分配包后,則對自身所需中轉的數據包進行轉發,并為待中轉的數據包選擇下一跳一節點作為中繼節點進行轉發,直至目的節點接收到本時隙的第二數量的數據包。S105,當接收到目的節點發送ACK包時,結束本時隙的源節點到目的節點的數據包傳輸過程。當接收到目的節點發送的ACK包時,表明本時隙所發送的第二數量的數據包均發送至目的節點了,此時,結束本時隙的源節點到目的節點的數據包傳輸過程即可。可以理解的是,上述過程為某一時隙中源節點到目的節點的數據傳輸過程。在實際應用中,當待傳輸的數據包較少時,僅僅需要劃分一個時隙,即一次將所有的數據包進行傳輸即可,在接收到目的節點發送的ACK包后,源節點到目的節點的整個數據傳輸過程完畢;而當待傳輸的數據包較多時,需要劃分出至少兩個時隙,每一時隙包含特定數量的數據包;而在當前時隙接收到目的節點發送的ACK后,還需進行相應的時隙判斷,以完成源節點到目的節點的整個數據傳輸過程。因此,在本發明的另一實施例中,在接收到目的節點發送的ACK包,結束本次時隙的數據傳輸過程后,所述方法還可以包括判斷本時隙是否為最后一時隙;當本時隙不為最后一時隙時,進行下一時隙源節點到目的節點的數據包的傳輸。其中,當本時隙為最后一時隙時,則源節點到目的節點的整個數據傳輸過程結束。從中間節點的角度,如圖2所示,一種無線Mesh網絡機會路由方法,可以包括S201,當前的中間節點接收本時隙中上一跳節點所廣播的數據包;其中,該數據包攜帶有上一跳節點到目的節點的ETT值,所述ETT為傳輸單位數據量的期望時間。 需要說明的是,在當前的中間節點為源節點的下一跳節點時,該當前的中間節點的上一跳節點為源節點,而在當前的中間節點不為源節點的下一跳節點時,該當前的中間節點的上一跳節點為源節點到目的節點之間的中間節點。S202,計算當前的中間節點到目的節點的ETT值;計算當前的中間節點到目的節點的ETT值的方式上述描述中已經給出,在此不再贅述。S203,判斷所述當前的中間節點到目的節點的ETT值是否大于上一跳節點到目的節點的ETT值,如果是,則執行步驟S210 ;否則,執行步驟S204 ;在當前的中間節點接收到本時隙中上一跳節點所廣播的數據包后,則可以計算自身到目的節點的ETT值,并根據自身到目的節點的ETT值,以及接收到的數據包所攜帶的上一跳節點到目的節點的ETT值,確定出當前的中間節點是否需要向上一跳節點反饋應答包。當判斷出該當前的中間節點到目的節點的ETT值大于上一跳節點到目的節點的ETT值時,表明通過該當前中間節點轉發數據包所帶來的傳輸時間較長,因此,需要執行步驟S210 ;而當判斷出該當前的中間節點到目的節點的ETT值不大于上一跳節點到目的節點的ETT值時,表明可以通過該當前的中間節點進行數據包轉發,此時執行步驟S204即可S204,向相應的上一跳節點反饋應答包;其中,所述應答包攜帶有當前的中間節點所接收到的數據包的標識以及其到目的節點ETT值。S205,判斷第二時間段內是否接收到上一跳節點發送的任務分配包,如果是,執行步驟S206 ;否則,執行步驟S210 ;在當前的中間節點向上一跳節點反饋應答包后,上一跳節點會為自身所對應的數據包中待中轉的數據包分配一下一跳節點作為中繼節點,并為所確定的中繼節點發送任務分配包;而該當前的中間節點會等待第二時間,如果在第二時間段內接收到上一跳節點發送的任務分配包,表明該當前的中間節點將作為上一跳節點所確定的中繼節點轉發任務分配包中所表明的數據包,此時,執行步驟S206即可;而如果在第二時間段內未接收到上一跳節點發送的任務分配包,表明該當前的中間節點不作為上一跳節點所確定的中繼節點轉發數據包,此時執行步驟S210即可。需要說明的是,該當前的中間節點的上一跳節點為源節點時,該上一跳中間節點確定待中轉的數據包以及為待中轉的數據包分配中繼節點的方式為步驟S103所示;而當該當前的中間節點的上一跳節點為源節點到目的節點之間的中間節點時,該上一跳中間節點確定待中轉的數據包以及為待中轉的數據包分配中繼節點的方式與上述步驟S103相似,在此不再贅述;并且,第二時間根據實際應用場景的具體的環境而設定,在此不作限定。S206,將自身到目的節點的ETT值加入到所需中轉的數據包中并廣播自身對應的待中轉的數據包;S207,接收下一跳節點所反饋的應答包;其中,所述應答包攜帶有相應下一跳節點所接收到的數據包的標識以及相應下一跳節點到目的節點ETT值。需要說明的是,由于網絡環境的影響,在數據包的傳輸過程中很可能會發生丟包現象,因此,為了保證數據傳輸效率以及準確性,該當前的中間節點在等待第三時間后,會根據第三時間段所接收到的下一跳節點反饋的應答包,判斷是否接收到所廣播的所有數據包相關的應答包,即判斷是否發生丟包現象,并在判斷出發生丟包現象時,繼續廣播所丟失的數據包;并在接收到關于本時隙自身所廣播的所有數據包的應答包時,執行確定本時隙待中轉的數據包以及每一待中轉的數據包相對應的一中繼節點的步驟。S208,根據所述應答包中數據包的標識以及相應下一跳節點到目的節點的ETT值,確定本時隙待中轉的數據包以及每一待中轉的數據包相對應的一中繼節點;S209,向每一中繼節點發送相應的任務分配包;其中,所述任務分配包中攜帶有所述中繼節點所需中轉的數據包的標識。上述步驟S207-步驟S209為該當前的中間節點為待中轉的數據包分配中繼節點的過程,其與步驟S102-步驟S104所給出的源節點為待中轉的數據包分配中繼節點的過程相似,在此不再贅述。S210,丟棄本時隙所接收到的數據包。當該當前的中間節點到目的節點的ETT值大于上一跳節點到目的節點的ETT值時,表明該當前的中間節點不可能作為中繼節點轉發數據包,此時,則可以丟棄本時隙所接收到的數據包;而當該當前的中間節點在向上一跳節點反饋應答包后,如果在第二時間段內未接收到上一跳節點發送的任務分配包,表明上一跳節點未選擇該當前的中間節點作為中繼節點,此時,也可以丟棄本時隙所接收到的數據包;同時,當所接收到的任務分配包表示該當前的中間節點僅僅可以轉發所接收到數據包中的一部分時,也可以丟棄本時隙所接收到的無需轉發的數據包。從目的節點的角度,如圖3所示,一種無線Mesh網絡機會路由方法,可以包括S301,目的節點接收源節點或中間節點發送的數據包;在源節點到目的節點的數據傳輸過程中,目的節點可以作為源節點的下一跳節點直接接收到一個或多個數據包,也可以作為中間節點的下一跳節點間接接收數據包。S302,判斷是否接收到本時隙源節點需要發送的所有數據包,如果是,則執行步驟S303 ;否則,繼續等待;其中,每個數據包的包頭中攜帶有本時隙所需傳輸的數據包的個數以及該數據包的序號;因此,目的節點可以根據所接收到數據包判斷出是否接收到了本時隙需要傳輸的所有數據包;同時,由于源節點或中繼節點根據下一跳節點反饋的應答包可以判斷出是否發生丟包現象,并在發生丟包現象的情況下,重發丟失的數據包,因此,目的節點最終會接收到源節點本時隙所發送的所有數據包。當目的節點接收到源節點或中間節點發送的數據包后,判斷是否接收到本時隙所有的數據包,根據不同的判斷結果進行不同的處理。當判斷出接收到本時隙所有數據包后,可以執行步驟S303,進行向源節點發送ACK包的步驟;而當判斷出未接收到本時隙發送的數據包后,可以等待接收源節點或中間節點發送的數據包。S303,向源節點發送ACK包,以通知源節點結束本時隙的數據傳輸。與現有技術相比,本發明實施例所提供的方案中,中間節點本時隙接收到上一跳節點所廣播的數據包后,當判斷得出自身到目的節點的ETT值不大于上一跳節點到目的節點的ETT值時,向上一跳節點反饋應答包;而上一跳節點則根據下一跳節點所反饋的應答包,確定出待中轉的數據包以及每一待中轉的數據包對應的中繼節點,進而向相應的中繼節點發送任務分配包,指示該中繼節點進行相應數據包的轉發。可見,通過符合特定條件的中間節點反饋數據包且每一待中轉的數據包對應一中繼節點的方式,可以解決現有機會路由所帶來的冗余傳輸問題,進而提高無線Mesh網絡的傳輸性能。 通過以上的方法實施例的描述,所屬領域的技術人員可以清楚地了解到本發明可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括只讀存儲器(ROM)、隨機存取存儲器(RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質。相應于上面的方法實施例,本發明實施例還提供一種路由器,適用于無線Mesh網絡中,所述路由器作為源節點,如圖6所示,可以包括第一數據包廣播模塊610,用于廣播本時隙待發送的數據包,所述數據包攜帶有其自身到目的節點的ETT值,所述ETT為耗時最長的潛在鏈路的傳輸時間;第一應答包接收模塊620,用于接收下一跳節點所反饋的應答包,所述應答包攜帶有相應下一跳節點所接收到的數據包的標識以及相應下一跳節點到目的節點ETT值;第一中繼信息確定模塊630,用于根據所述應答包中數據包的標識以及相應下一跳節點到目的節點的ETT值,確定本時隙待中轉的數據包以及每一待中轉的數據包相對應的一中繼節點;第一任務分配包發送模塊640,用于向每一中繼節點發送相應的任務分配包,所述任務分配包中攜帶有所述中繼節點所需中轉的數據包的標識;ACK包處理模塊650,用于當接收到目的節點發送ACK包時,結束本時隙的源節點到目的節點的數據包傳輸過程。更進一步的,所述路由器還可以包括第一判斷模塊,用于判斷本時隙是否為最后一時隙;當本時隙不為最后一時隙時,觸發第一數據包廣播模塊610。更進一步的,所述路由器還可以包括第二判斷模塊,用于當第一時間段內所接收到的下一跳節點反饋的應答包表明數據包丟失時,觸發第一數據包廣播模塊610繼續廣播所丟失的數據包;
并在接收到關于本時隙所有數據包的應答包時,觸發第一中繼信息確定模塊630。其中,第一中繼信息確定模塊630,可以具體用于將本時隙第二數量的數據包中相應應答包表明下一跳節點不為目的節點的數據包作為待中轉的數據包;根據所述待中轉的數據包所對應的應答包,逐一判斷每一待中轉的數據包是否被唯一的下一跳節點所接收到,如果是,將所述唯一的下一跳節點作為所述待中轉的數據包對應的中繼節點;否則,將相應的至少兩個下一跳節點中ETT值最小的下一跳節點作為所述待中轉的數據包對應的中繼節點。其中,第一中繼信息確定模塊630,可以具體用于將本時隙第二數量的數據包中相應應答包表明下一跳節點不為目的節點的數據包作為待中轉的數據包; 確定每一待中轉的數據包所對應的下一跳節點;確定待中轉的數據包中被唯一下一跳節點所接收到數據包對應的中繼節點為相應唯一的下一跳節點;分別確定本時隙剩余的待中轉的數據包對應的中繼節點為能夠使本時隙總的ETT值最小的分配方式中相應的下一跳節點。本發明實施例還提供一種路由器,適用于無線Mesh網絡中,所述路由器作為中間節點,如圖7所示,可以包括數據包接收模塊710,用于接收本時隙中上一跳節點所廣播的數據包,所述數據包攜帶有上一跳節點到目的節點的ETT值,所述ETT為耗時最長的潛在鏈路的傳輸時間;ETT計算模塊720,用于計算當前的中間節點到目的節點的ETT值;應答包反饋模塊730,用于當所述當前的中間節點到目的節點的ETT值不大于上一跳節點到目的節點的ETT值時,向相應的上一跳節點反饋應答包,所述應答包攜帶有當前的中間節點所接收到的數據包的標識以及其到目的節點ETT值;任務分配包處理模塊740,用于判斷第二時間段內是否接收到上一跳節點發送的任務分配包,如果接收到所述任務分配包,則將自身到目的節點的ETT值加入到所需中轉的數據包中并廣播自身對應的待中轉的數據包;第二應答包接收模塊750,用于接收下一跳節點所反饋的應答包,所述應答包攜帶有相應下一跳節點所接收到的數據包的標識以及相應下一跳節點到目的節點ETT值;第二中繼信息確定模塊760,用于根據所述應答包中數據包的標識以及相應下一跳節點到目的節點的ETT值,確定本時隙待中轉的數據包以及每一待中轉的數據包相對應的一中繼節點;第二任務分配包發送模塊770,用于向每一中繼節點發送相應的任務分配包,所述任務分配包中攜帶有所述中繼節點所需中轉的數據包的標識。更進一步的,所述路由器還可以包括第三判斷模塊,用于當第三時間段內所接收到的下一跳節點反饋的應答包表明數據包丟失時,觸發任務分配包處理模塊740繼續廣播所丟失的數據包;并在接收到關于本時隙自身所廣播的所有數據包的應答包時,觸發第二中繼信息確定模塊760。
與現有技術相比,本發明實施例所提供的方案中,中間節點本時隙接收到上一跳節點所廣播的數據包后,當判斷得出自身到目的節點的ETT值不大于上一跳節點到目的節點的ETT值時,向上一跳節點反饋應答包;而上一跳節點則根據下一跳節點所反饋的應答包,確定出待中轉的數據包以及每一待中轉的數據包對應的中繼節點,進而向相應的中繼節點發送任務分配包,指示該中繼節點進行相應數據包的轉發。可見,通過符合特定條件的中間節點反饋數據包且每一待中轉的數據包對應一中繼節點的方式,可以解決現有機會路由所帶來的冗余傳輸問題,進而提高無線Mesh網絡的傳輸性能。對于裝置或系統實施例而言,由于其基本相應于方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置或系統實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解并實施。在本發明所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,在沒 有超過本申請的精神和范圍內,可以通過其他的方式實現。當前的實施例只是一種示范性的例子,不應該作為限制,所給出的具體內容不應該限制本申請的目的。例如,所述單元或子單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或多個子單元結合一起。另外,多個單元可以或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另外,所描述系統,裝置和方法以及不同實施例的示意圖,在不超出本申請的范圍內,可以與其它系統,模塊,技術或方法結合或集成。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。以上所述僅是本發明的具體實施方式
,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。
權利要求
1.一種無線Mesh網絡機會路由方法,其特征在于,預先為源節點到目的節點的數據傳輸過程劃分第一數量的時隙,且每ー時隙完成第二數量的數據包的傳輸;所述方法包括 源節點廣播本時隙第二數量的數據包,所述數據包攜帯有其自身到目的節點的ETT值,所述ETT為耗時最長的潛在鏈路的傳輸時間; 接收下ー跳節點所反饋的應答包,所述應答包攜帯有相應下ー跳節點所接收到的數據包的標識以及相應下ー跳節點到目的節點ETT值; 根據所述應答包中數據包的標識以及相應下ー跳節點到目的節點的ETT值,確定本時隙待中轉的數據包以及每ー待中轉的數據包相對應的一中繼節點; 向每一中繼節點發送相應的任務分配包,所述任務分配包中攜帯有所述中繼節點所需中轉的數據包的標識; 當接收到目的節點發送的ACK包吋,結束本時隙的源節點到目的節點的數據包傳輸過程。
2.根據權利要求I所述的方法,其特征在于,所述方法還包括 判斷本時隙是否為最后ー時隙; 當本時隙不為最后一時隙時,進行下一時隙源節點到目的節點的數據包的傳輸。
3.根據權利要求I或2所述的方法,其特征在于,所述方法還包括 當第一時間段內所接收到的下一跳節點反饋的應答包表明數據包丟失時,繼續廣播所丟失的數據包; 并在接收到關于本時隙所有數據包的應答包時,執行確定本時隙待中轉的數據包以及每ー待中轉的數據包相對應的一中繼節點的步驟。
4.根據權利要求I所述的方法,其特征在于,根據所述應答包中數據包的標識以及相應下ー跳節點到目的節點的ETT值,確定本時隙待中轉的數據包以及每ー待中轉的數據包相對應的一中繼節點,包括 將本時隙第二數量的數據包中相應應答包表明下ー跳節點不為目的節點的數據包作為待中轉的數據包; 根據所述待中轉的數據包所對應的應答包,逐一判斷每ー待中轉的數據包是否被唯一的下一跳節點所接收到,如果是,將所述唯一的下一跳節點作為所述待中轉的數據包對應的中繼節點;否則,將相應的至少兩個下一跳節點中ETT值最小的下一跳節點作為所述待中轉的數據包對應的中繼節點。
5.根據權利要求I所述的方法,其特征在于,根據所述應答包中數據包的標識以及相應下ー跳節點到目的節點的ETT值,確定本時隙待中轉的數據包以及每ー待中轉的數據包相對應的一中繼節點,包括 將本時隙第二數量的數據包中相應應答包表明下ー跳節點不為目的節點的數據包作為待中轉的數據包; 確定每一待中轉的數據包所對應的下一跳節點; 確定待中轉的數據包中被唯一下一跳節點所接收到數據包對應的中繼節點為相應唯一的下一跳節點; 分別確定本時隙剩余的待中轉的數據包對應的中繼節點為能夠使本時隙總的ETT值最小的分配方式中相應的下ー跳節點。
6.根據權利要求I所述的方法,其特征在干,ETT的計算公式為
7.一種無線Mesh網絡機會路由方法,其特征在于,預先為源節點到目的節點的數據傳輸過程劃分第一數量的時隙,且每ー時隙完成第二數量的數據包的傳輸;所述方法包括 當前的中間節點接收本時隙中上一跳節點所廣播的數據包,所述數據包攜帯有上一跳節點到目的節點的ETT值,所述ETT為耗時最長的潛在鏈路的傳輸時間; 計算當前的中間節點到目的節點的ETT值; 當所述當前的中間節點到目的節點的ETT值不大于上ー跳節點到目的節點的ETT值時,向相應的上一跳節點反饋應答包,所述應答包攜帯有當前的中間節點所接收到的數據包的標識以及其到目的節點ETT值; 判斷第二時間段內是否接收到上一跳節點發送的任務分配包,如果接收到所述任務分配包,則將自身到目的節點的ETT值加入到所需中轉的數據包中并廣播自身對應的待中轉的數據包; 接收下ー跳節點所反饋的應答包,所述應答包攜帯有相應下ー跳節點所接收到的數據包的標識以及相應下ー跳節點到目的節點ETT值; 根據所述應答包中數據包的標識以及相應下ー跳節點到目的節點的ETT值,確定本時隙待中轉的數據包以及每ー待中轉的數據包相對應的一中繼節點; 向每一中繼節點發送相應的任務分配包,所述任務分配包中攜帯有所述中繼節點所需中轉的數據包的標識。
8.根據權利要求7所述的方法,其特征在于,所述方法還包括 當第三時間段內所接收到的下一跳節點反饋的應答包表明數據包丟失時,繼續廣播所丟失的數據包; 并在接收到關于本時隙自身所廣播的所有數據包的應答包吋,執行確定本時隙待中轉的數據包以及每ー待中轉的數據包相對應的一中繼節點的步驟。
9.一種路由器,其特征在于,適用于無線Mesh網絡中,所述路由器作為源節點,包括 第一數據包廣播模塊,用于廣播本時隙待發送的數據包,所述數據包攜帯有其自身到目的節點的ETT值,所述ETT為耗時最長的潛在鏈路的傳輸時間; 第一應答包接收模塊,用于接收下一跳節點所反饋的應答包,所述應答包攜帯有相應下一跳節點所接收到的數據包的標識以及相應下ー跳節點到目的節點ETT值; 第一中繼信息確定模塊,用于根據所述應答包中數據包的標識以及相應下ー跳節點到目的節點的ETT值,確定本時隙待中轉的數據包以及每ー待中轉的數據包相對應的一中繼節點; 第一任務分配包發送模塊,用于向姆一中繼節點發送相應的任務分配包,所述任務分配包中攜帶有所述中繼節點所需中轉的數據包的標識;ACK包處理模塊,用于當接收到目的節點發送ACK包吋,結束本時隙的源節點到目的節點的數據包傳輸過程。
10. 一種路由器,其特征在于,適用于無線Mesh網絡中,所述路由器作為中間節點,包括 數據包接收模塊,用于接收本時隙中上一跳節點所廣播的數據包,所述數據包攜帯有上一跳節點到目的節點的ETT值,所述ETT為耗時最長的潛在鏈路的傳輸時間; ETT計算模塊,用于計算當前的中間節點到目的節點的ETT值; 應答包反饋模塊,用于當所述當前的中間節點到目的節點的ETT值不大于上ー跳節點到目的節點的ETT值時,向相應的上一跳節點反饋應答包,所述應答包攜帯有當前的中間節點所接收到的數據包的標識以及其到目的節點ETT值; 任務分配包處理模塊,用于判斷第二時間段內是否接收到上一跳節點發送的任務分配包,如果接收到所述任務分配包,則將自身到目的節點的ETT值加入到所需中轉的數據包中并廣播自身對應的待中轉的數據包; 第二應答包接收模塊,用于接收下一跳節點所反饋的應答包,所述應答包攜帯有相應下一跳節點所接收到的數據包的標識以及相應下ー跳節點到目的節點ETT值; 第二中繼信息確定模塊,用于根據所述應答包中數據包的標識以及相應下ー跳節點到目的節點的ETT值,確定本時隙待中轉的數據包以及每ー待中轉的數據包相對應的一中繼節點; 第二任務分配包發送模塊,用于向每一中繼節點發送相應的任務分配包,所述任務分配包中攜帶有所述中繼節點所需中轉的數據包的標識。
全文摘要
本發明公開了一種無線Mesh網絡機會路由方法及路由器。所述方法包括源節點廣播本時隙第二數量的數據包,該數據包攜帶有其自身到目的節點的ETT值;接收下一跳節點所反饋的應答包,該應答包攜帶有相應下一跳節點所接收到的數據包的標識以及相應下一跳節點到目的節點ETT值;確定本時隙待中轉的數據包以及每一待中轉的數據包相對應的一中繼節點;向每一中繼節點發送相應的任務分配包,該任務分配包中攜帶有所述中繼節點所需中轉的數據包的標識;當接收到目的節點發送的ACK包時,結束本時隙的源節點到目的節點的數據包傳輸過程。通過利用本方案,可以解決現有機會路由所帶來的冗余傳輸問題,進而提高無線Mesh網絡的傳輸性能。
文檔編號H04W40/04GK102821438SQ201210338379
公開日2012年12月12日 申請日期2012年9月13日 優先權日2012年9月13日
發明者孫玉娥, 黃河, 鄭建穎, 鞠華, 汪一鳴 申請人:蘇州大學