本發(fā)明涉及無線自組網領域。更具體地,涉及一種基于網絡層MAODV(Multicast Ad hoc On-demand Distance Vector Routing,多播按需距離矢量路由)協議和IEEE 802.16MAC(Media Access Control,媒體接入控制)層分布式調度技術的無線自組網的多播樹建立方法。
背景技術:
無線移動自組網又稱無線移動多跳網,簡稱無線自組網,是由一組相互協作的無線移動節(jié)點組成的、無中心控制節(jié)點、不依賴于任何固定網絡設備的特殊網絡。
在部分無線自組網的應用場景中,多播通信是一種非常重要的通信方式。例如在編隊通信中,編隊成員之間需要通信,同時編隊成員又需要實時接收來自指揮中心的信息,因此網絡中通信的大部分業(yè)務都以多播的形式傳輸。此外,由于多播應用場景往往存在一定的特殊性,市場對多播業(yè)務質量的要求也越來越高。
多播是一種允許單一用戶同時向多個用戶發(fā)送業(yè)務數據的網絡技術。與單播方式相比,多播源節(jié)點不需要為每個目的節(jié)點分別建立路由,在進行業(yè)務傳輸時,多播路由協議在網絡的轉發(fā)節(jié)點處利用數據復制的方式進行分發(fā),使源節(jié)點僅發(fā)送一次業(yè)務數據,提高了傳輸效率,并且節(jié)省了網絡帶寬資源。
在現有的多播協議中,樹狀多播路由協議是研究的重點,而由AODV擴展而來的MAODV協議是其中的典型代表。在MAODV協議中,多播組成員節(jié)點建立多播樹(共享分發(fā)樹),多播業(yè)務數據沿樹狀結構實現高效傳輸,節(jié)省帶寬資源。但,這種協議也存在一些缺點:由于樹狀結構中不存在環(huán)路,各個節(jié)點之間沒有冗余路徑,因此樹上任何節(jié)點之間的鏈路失效或狀態(tài)異常均會影響多播業(yè)務傳輸質量。此外,與單播路由協議相似,MAODV協議由于沒有考慮底層帶寬資源狀況,不能保證傳輸鏈路的可靠性且無法避免擁塞,因此難以確保每個組成員都能及時準確的收到多播消息,不能滿足用戶對多播業(yè)務質量的需求。
為了能夠解決業(yè)務傳輸可靠性問題并提高多播業(yè)務的傳輸質量,需要提供一種采取跨層設計打破層間壁壘,將網絡層多播路由協議和MAC層資源調度信息融合的有效節(jié)省時間和資源、實現服務質量提升的無線自組網的多播樹建立方法。
技術實現要素:
本發(fā)明的目的在于提供一種無線自組網的多播樹建立方法,以解決現有的多播路由協議傳輸質量不高的問題。
為達到上述目的,本發(fā)明采用下述技術方案:
一種無線自組網的多播樹建立方法,包括如下步驟:
S1、多播業(yè)務源節(jié)點通過查找多播路由表判斷是否已存在多播路由且其自身是否是多播組成員節(jié)點,如是,則流程結束;如否,則多播業(yè)務源節(jié)點發(fā)送包含多播業(yè)務的多播組地址和多播業(yè)務源節(jié)點的時隙分配表的RREQ請求消息;
S2、收到RREQ請求消息的節(jié)點根據RREQ請求消息判斷本節(jié)點是否為多播組成員節(jié)點,如是,則轉至步驟S5;如否,則該節(jié)點為準中間節(jié)點,轉至步驟S3;
S3、首先,收到RREQ請求消息的準中間節(jié)點通過查找多播路由表判斷本節(jié)點是否存在該多播路由,如是,則更新路由條目中的反向信息;如否,則插入新路由條目,記錄到多播業(yè)務源節(jié)點的反向路由信息;
之后,收到RREQ請求消息的準中間節(jié)點緩存RREQ請求消息中的時隙分配表,根據RREQ請求消息中的時隙分配表與該節(jié)點的本地時隙分配表判斷該節(jié)點與上一跳節(jié)點之間的共有時隙是否大于設定的多播預留帶寬所需的時隙:
如是,則該節(jié)點成為中間節(jié)點,根據該節(jié)點的本地時隙分配表更新RREQ請求消息中的時隙分配表并廣播轉發(fā)更新后的RREQ請求消息至下一跳節(jié)點,轉至步驟S4;
如否,則該節(jié)點丟棄RREQ請求消息,還原為普通節(jié)點;
S4、重復執(zhí)行步驟S2-S3;
S5、首先,收到RREQ請求消息的多播組成員節(jié)點通過查找多播路由表判斷本節(jié)點是否存在該多播路由,如是,則更新路由條目中的反向信息;如否,則插入新路由條目,記錄到多播業(yè)務源節(jié)點的反向路由信息;
之后,收到RREQ請求消息的多播組成員節(jié)點緩存RREQ請求消息中的時隙分配表,根據RREQ請求消息中的時隙分配表與該節(jié)點的本地時隙分配表判斷該節(jié)點與上一跳節(jié)點之間的共有時隙是否大于設定的多播預留帶寬所需的時隙:
如是,則該節(jié)點根據設定的多播預留帶寬所需的時隙為多播業(yè)務分配時隙并啟動限定路由激活時限的定時器,之后,采取單播方式向上一跳節(jié)點發(fā)送RREP回復消息,所述RREP回復消息中包括該節(jié)點已分配時隙的時隙分配表,轉至步驟S6;
如否,則該節(jié)點丟棄RREQ請求消息,等待接收下一個RREQ請求消息、重新執(zhí)行步驟S1或流程結束;
S6、收到RREP回復消息的節(jié)點判斷本節(jié)點是否為多播業(yè)務源節(jié)點,如是,則轉至步驟S9;如否,則轉至步驟S7;
S7、首先,收到RREP回復消息的中間節(jié)點通過查找多播路由表判斷本節(jié)點是否存在該多播路由,如是,則更新路由條目中的正向信息;如否,則插入新路由條目,記錄到多播組成員節(jié)點的正向信息;
之后,該節(jié)點根據RREP回復消息中的時隙分配表更新該節(jié)點的本地時隙分配表,并在更新后判斷該節(jié)點與上一跳節(jié)點之間的共有時隙是否大于設定的多播預留帶寬所需的時隙:
如是,則該節(jié)點根據設定的多播預留帶寬所需的時隙為多播業(yè)務分配時隙并啟動限定路由激活時限的定時器,之后根據該節(jié)點已分配時隙的時隙分配表更新RREP回復消息中的時隙分配表并轉發(fā)更新后的RREP回復消息至上一跳節(jié)點,轉至步驟S8;
如否,則該節(jié)點丟棄RREP請求消息;
S8、重復執(zhí)行步驟S6-S7;
S9、首先,收到RREP回復消息的多播業(yè)務源節(jié)點通過查找多播路由表判斷本節(jié)點是否存在該多播路由,如是,則更新路由條目中的正向信息;如否,則插入新路由條目,記錄到多播組成員節(jié)點的正向信息;
之后,該節(jié)點根據RREP回復消息中的時隙分配表更新該節(jié)點的本地時隙分配表,更新成功后選擇最先收到且滿足多播預留帶寬需求的RREP回復消息路徑采取單播方式逐跳向該路徑上的節(jié)點發(fā)送MACT激活消息;
S10、收到MACT激活消息的中間節(jié)點和多播組成員節(jié)點激活該多播路由,分別取消各節(jié)點限定路由激活時限的定時器,使各節(jié)點為多播業(yè)務分配的時隙生效,并分別向各節(jié)點自身的MAC層同步該節(jié)點的時隙分配表,各節(jié)點自身的MAC層根據為多播業(yè)務分配的時隙收發(fā)數據,完成建立多播樹。
優(yōu)選地,步驟S1進一步包括如下子步驟:
S1.1、多播業(yè)務源節(jié)點通過查找多播路由表判斷是否已存在多播路由,如是,則轉至步驟S1.2;如否,則插入新路由條目,轉至步驟S1.4;
S1.2、多播業(yè)務源節(jié)點判斷其自身是否是多播樹成員節(jié)點,如是,則轉至步驟S1.3;如否,則轉至步驟S1.4;
S1.3、多播業(yè)務源節(jié)點判斷其自身是否是多播組成員節(jié)點,如是,則流程結束;如否,則將其自身改為多播組成員節(jié)點,流程結束;
S1.4、多播業(yè)務源節(jié)點發(fā)送RREQ請求消息。
優(yōu)選地,所述多播業(yè)務源節(jié)點發(fā)送RREQ請求消息的方法為:多播業(yè)務源節(jié)點查找多播路由表中是否已存在多播組對應的條目,如是,則多播業(yè)務源節(jié)點采取單播方式向條目中的下一跳節(jié)點發(fā)送RREQ請求;如否,則多播業(yè)務源節(jié)點廣播RREQ請求消息。
優(yōu)選地,步驟S10還包括如下步驟:未收到MACT激活消息的中間節(jié)點或多播業(yè)務源節(jié)點在各節(jié)點限定路由激活時限的定時器超時后分別取消各節(jié)點為多播業(yè)務分配的時隙。
本發(fā)明加入了帶寬預留機制,在建立的多播樹中為多播業(yè)務預留一定帶寬,保證多播業(yè)務的傳輸質量;實現了與MAC層共享鏈路資源信息,點在加入組時參考時隙分配表,結合帶寬資源選擇合適的到多播樹的路徑,使新建立的樹枝有足夠的資源保證多播業(yè)務;實現了尋路過程與資源分配過程結合,在節(jié)點加入多播樹尋路的同時進行路徑上帶寬分配工作,成功加入多播樹后多播帶寬預留也已完成,之后多播業(yè)務可直接沿樹傳播;實現了不同多播樹預留不同資源。每個多播樹的建立過程中都進行帶寬預留,保證每個多播組內多播業(yè)務的質量。
本發(fā)明的有益效果如下:
本發(fā)明所述技術方案提供為多播業(yè)務預留多播帶寬的機制,同時在多播業(yè)務源節(jié)點加入多播組的過程中融入MAC層時隙調度機制來實現帶寬預留的方案。在多播樹建立過程中,通過RREQ請求消息尋路實現資源預估,避免無效轉發(fā)。通過RREP回復消息實現資源預分配。最后通過MACT激活消息確定最佳路由并最終完成資源分配。本發(fā)明所述技術方案可以建立一個所有樹枝都有多播預留帶寬的多播樹,保證了多播業(yè)務數據可及時準確地到達所有多播組成員。
附圖說明
下面結合附圖對本發(fā)明的具體實施方式作進一步詳細的說明。
圖1示出無線自組網的多播樹建立方法中節(jié)點間消息傳遞示意圖。
圖2示出多播業(yè)務源節(jié)點發(fā)送RREQ請求消息的流程圖。
圖3示出中間節(jié)點處理RREQ請求消息的流程圖。
圖4示出多播組成員節(jié)點處理RREQ請求消息的流程圖。
圖5示出中間節(jié)點處理RREP回復消息的流程圖。
圖6示出多播業(yè)務源節(jié)點處理RREP回復消息的流程圖。
圖7示出多播組成員節(jié)點激活路由的流程圖。
具體實施方式
為了更清楚地說明本發(fā)明,下面結合優(yōu)選實施例和附圖對本發(fā)明做進一步的說明。附圖中相似的部件以相同的附圖標記進行表示。本領域技術人員應當理解,下面所具體描述的內容是說明性的而非限制性的,不應以此限制本發(fā)明的保護范圍。
如圖1所示,本實施例提供的無線自組網的多播樹建立方法,包括如下步驟:
S1、如圖2所示,在本方案中,默認只有多播組成員才能發(fā)起對該多播組的多播業(yè)務,不考慮不在組情況,要想發(fā)送多播業(yè)務必須先加入多播組。因此,首先,多播業(yè)務源節(jié)點通過查找多播路由表判斷是否已存在多播路由且其自身是否是多播組成員節(jié)點,如是,則流程結束;如否,則多播業(yè)務源節(jié)點發(fā)送包含多播業(yè)務的多播組地址和多播業(yè)務源節(jié)點的時隙分配表的RREQ請求消息;
S2、收到RREQ請求消息的節(jié)點根據RREQ請求消息判斷本節(jié)點是否為多播組成員節(jié)點,如是,則轉至步驟S5;如否,則該節(jié)點為準中間節(jié)點,轉至步驟S3;
S3、如圖3所示,收到RREQ請求消息的準中間節(jié)點可能成為樹成員作為中間節(jié)點進行轉發(fā),轉發(fā)時,
首先,收到RREQ請求消息的準中間節(jié)點通過查找多播路由表判斷本節(jié)點是否存在該多播路由,如是,則更新路由條目中的反向信息;如否,則插入新路由條目,記錄到多播業(yè)務源節(jié)點的反向路由信息;
之后,收到RREQ請求消息的準中間節(jié)點會進行資源預估,緩存RREQ請求消息中的時隙分配表,根據RREQ請求消息中的時隙分配表與該節(jié)點的本地時隙分配表判斷該節(jié)點與上一跳節(jié)點之間的共有時隙是否大于設定的多播預留帶寬所需的時隙(即根據RREQ請求消息中的上一跳節(jié)點的時隙分配表與該收到RREQ請求消息的中間節(jié)點的本地時隙分配表進行比較,看兩者間的可用共有時隙有多少,同時根據設定的多播預留帶寬計算所需的時隙,判斷可用共有時隙是否大于所需時隙數):
如是,則說明該節(jié)點可以作為路由的中間節(jié)點,則該節(jié)點根據該節(jié)點的本地時隙分配表更新RREQ請求消息中的時隙分配表并廣播轉發(fā)更新后的RREQ請求消息至下一跳節(jié)點,轉至步驟S4;
如否,則說明該節(jié)點不可以作為路由的中間節(jié)點,則該節(jié)點丟棄RREQ請求消息,不再進行轉發(fā),并還原為普通節(jié)點;
S4、重復執(zhí)行步驟S2-S3;
S5、如圖4所示,首先,收到RREQ請求消息的多播組成員節(jié)點通過查找多播路由表判斷本節(jié)點是否存在該多播路由,如是,則更新路由條目中的反向信息;如否,則插入新路由條目,記錄到多播業(yè)務源節(jié)點的反向路由信息;
之后,收到RREQ請求消息的多播組成員節(jié)點進行資源預估,緩存RREQ請求消息中的時隙分配表,根據RREQ請求消息中的時隙分配表與該節(jié)點的本地時隙分配表判斷該節(jié)點與上一跳節(jié)點之間的共有時隙是否大于設定的多播預留帶寬所需的時隙:
如是,則該節(jié)點根據設定的多播預留帶寬所需的時隙為多播業(yè)務分配時隙并啟動限定路由激活時限的定時器,之后,采取單播方式向上一跳節(jié)點發(fā)送RREP回復消息(即沿著RREQ請求消息沿途建立的反向路徑單播回復RREP回復消息),所述RREP回復消息中包括該節(jié)點已分配時隙的時隙分配表,轉至步驟S6;
如否,則該節(jié)點丟棄RREQ請求消息,等待接收下一個RREQ請求消息、重新執(zhí)行步驟S1或流程結束;
由于多播組成員節(jié)點可能會收到有不同中間節(jié)點轉發(fā)的多個RREQ請求消息,因此上述過程可按如下方式實現:如果第一個到達的RREQ請求消息滿足預留帶寬資源的話,則選擇此路由并回復RREP回復消息。如果不能滿足則丟棄該RREQ請求消息并等待下一個,直到有一個滿足條件或超時為止。但,此時路由還未激活,不一定是最終路由,所以設置一個定時器,若定時器超時前路由仍未激活,則取消此分配。且需要說明的是,一個多播組成員節(jié)點只能選擇一條路由。
S6、收到RREP回復消息的節(jié)點判斷本節(jié)點是否為多播業(yè)務源節(jié)點,如是,則轉至步驟S9;如否,則轉至步驟S7;
S7、如圖5所示,首先,收到RREP回復消息的中間節(jié)點通過查找多播路由表判斷本節(jié)點是否存在該多播路由,如是,則更新路由條目中的正向信息;如否,則插入新路由條目,記錄到多播組成員節(jié)點的正向信息;
之后,該節(jié)點根據RREP回復消息中的時隙分配表更新該節(jié)點的本地時隙分配表,并在更新后根據更新后的該節(jié)點的本地時隙分配表與該節(jié)點的本地時隙分配表與該節(jié)點緩存的RREQ請求消息中的時隙分配表判斷該節(jié)點與上一跳節(jié)點之間的共有時隙是否大于設定的多播預留帶寬所需的時隙:
如是,則該節(jié)點根據設定的多播預留帶寬所需的時隙為多播業(yè)務分配時隙并啟動限定路由激活時限的定時器,之后根據該節(jié)點已分配時隙的時隙分配表更新RREP回復消息中的時隙分配表并轉發(fā)更新后的RREP回復消息至上一跳節(jié)點,轉至步驟S8;此過程也是同時建立到多播組的正向路由的過程;
如否,則該節(jié)點丟棄RREP請求消息,等待接收下一個RREP請求消息;
S8、重復執(zhí)行步驟S6-S7;
S9、如圖6所示,首先,收到RREP回復消息的多播業(yè)務源節(jié)點通過查找多播路由表判斷本節(jié)點是否存在該多播路由,如是,則更新路由條目中的正向信息;如否,則插入新路由條目,記錄到多播組成員節(jié)點的正向信息;
之后,該節(jié)點根據RREP回復消息中的時隙分配表更新該節(jié)點的本地時隙分配表,更新成功后選擇最先收到且滿足多播預留帶寬需求的RREP回復消息路徑采取單播方式逐跳向該路徑上的節(jié)點發(fā)送MACT激活消息;
由于多播組成員節(jié)點都可以響應RREQ請求消息,所以多播業(yè)務源節(jié)點可能會收到多個RREP回復消息。為維護樹狀結構,不能出現環(huán)路,因此只能選擇一條路由。多播業(yè)務源節(jié)點選擇最先收到的,且能成功更新時隙分配表的RREP回復消息,該RREP回復消息意味著到多播樹的滿足多播預留帶寬的最佳路徑。之后,多播業(yè)務源節(jié)點沿此最佳路徑單播發(fā)送用于多播激活的MACT激活消息,MACT激活消息中設置加入請求標志位MACT_J;
S10、如圖7所示,收到MACT激活消息的中間節(jié)點和多播組成員節(jié)點激活該多播路由,分別取消各節(jié)點限定路由激活時限的定時器,使各節(jié)點為多播業(yè)務分配的時隙生效,并分別向各節(jié)點自身的MAC層同步該節(jié)點的時隙分配表,各節(jié)點自身的MAC層根據為多播業(yè)務分配的時隙收發(fā)數據,完成建立多播樹。
其中,
步驟S1進一步包括如下子步驟:
S1.1、多播業(yè)務源節(jié)點通過查找多播路由表判斷是否已存在多播路由,如是,則轉至步驟S1.2;如否,則插入新路由條目,轉至步驟S1.4;
S1.2、多播業(yè)務源節(jié)點判斷其自身是否是多播樹成員節(jié)點,如是,則轉至步驟S1.3;如否,則轉至步驟S1.4;
S1.3、多播業(yè)務源節(jié)點判斷其自身是否是多播組成員節(jié)點,如是,則流程結束;如否,則將其自身改為多播組成員節(jié)點,流程結束;
S1.4、多播業(yè)務源節(jié)點發(fā)送RREQ請求消息,RREQ請求消息中設置標志位RREQ_J,因為設定的多播預留帶寬為固定值,與業(yè)務無關,因此不必在RREQ請求消息中攜帶,RREQ請求消息中只需攜帶本節(jié)點的時隙分配表。RREQ請求消息的目的IP地址設為多播組地址,目的序列號設為本節(jié)點已經獲得的該多播組的最大序列號。
多播業(yè)務源節(jié)點發(fā)送RREQ請求消息的方法為:多播業(yè)務源節(jié)點查找多播路由表中是否已存在多播組對應的條目,如是,則多播業(yè)務源節(jié)點采取單播方式向條目中的下一跳節(jié)點發(fā)送RREQ請求;如否,則多播業(yè)務源節(jié)點廣播RREQ請求消息。
步驟S10還包括如下步驟:未收到MACT激活消息的中間節(jié)點或多播業(yè)務源節(jié)點在各節(jié)點限定路由激活時限的定時器超時后分別取消各節(jié)點為多播業(yè)務分配的時隙。
顯然,本發(fā)明的上述實施例僅僅是為清楚地說明本發(fā)明所作的舉例,而并非是對本發(fā)明的實施方式的限定,對于所屬領域的普通技術人員來說,在上述說明的基礎上還可以做出其它不同形式的變化或變動,這里無法對所有的實施方式予以窮舉,凡是屬于本發(fā)明的技術方案所引伸出的顯而易見的變化或變動仍處于本發(fā)明的保護范圍之列。