專利名稱:移動自組網(wǎng)絡(luò)的基于動態(tài)蜂窩的按需服務(wù)質(zhì)量保證的方法
技術(shù)領(lǐng)域:
本發(fā)明是一種適合網(wǎng)絡(luò)規(guī)模較大,網(wǎng)絡(luò)拓?fù)渥兓^快的移動自組網(wǎng)絡(luò)的QoS要求的方案,屬于移動自組網(wǎng)絡(luò)的路由服務(wù)質(zhì)量保證技術(shù)。
背景技術(shù):
當(dāng)前,大多數(shù)路由協(xié)議只提供最短路徑路由,并努力適應(yīng)網(wǎng)絡(luò)拓?fù)涞淖兓?,?shù)據(jù)僅僅是在最短路徑上盡力地傳輸,它們不支持具有帶寬、延遲等限制的服務(wù)質(zhì)量(QoS)保證。一般來說,QoS路由的目標(biāo)有兩個(1)選擇具有足夠資源的路由路徑以滿足QoS的要求;(2)提高整個網(wǎng)絡(luò)資源利用率。
顯然,如果網(wǎng)絡(luò)拓?fù)渥兓?,實現(xiàn)QoS幾乎是不可能,所以,人們更多研究的是網(wǎng)絡(luò)拓?fù)渥兓惶斓能決oS路由協(xié)議。所謂軟QoS路由協(xié)議是指允許由于路由路徑斷開所造成的短暫QoS失敗,但必須保證在路由路徑未斷開期間的QoS。有的一些QoS協(xié)議只是在表驅(qū)動路由協(xié)議或按需路由協(xié)議上增加了QoS限制,也并未在動態(tài)蜂窩路由協(xié)議上考慮QoS。
發(fā)明內(nèi)容
技術(shù)問題本發(fā)明的目的在于提供一種移動自組網(wǎng)絡(luò)的基于動態(tài)蜂窩的按需服務(wù)質(zhì)量(DcQoS)保證的方法,以適合網(wǎng)絡(luò)規(guī)模較大,網(wǎng)絡(luò)拓?fù)渥兓^快的移動自組網(wǎng)絡(luò)的QoS要求。
技術(shù)方案本發(fā)明的技術(shù)解決方案是采用多QoS路由探測算法選擇一條能夠最大滿足QoS要求的最佳路由,在這條最佳路由上建立端-端資源預(yù)留,在蜂窩未發(fā)生變化時,數(shù)據(jù)都在這條最佳路由上傳輸,為數(shù)據(jù)的連接提供QoS保證。其中①通過產(chǎn)生、發(fā)送、接收、處理QoS請求報文,即PATH消息,來建立DcQoS按需路由。
②利用移動蜂窩協(xié)議hello消息收集的鄰居信息來發(fā)現(xiàn)失效的QoS路由,并發(fā)送拆除、探測消息來回收資源并重建QoS路由。
DCQoS按需路由的建立接受到應(yīng)用層的QoS連接請求后,源節(jié)點構(gòu)造并廣播QoS路由請求報文。接受到QoS路由請求報文的節(jié)點如果不是此連接的目的節(jié)點如果它不是第一次接受到此請求報文或者節(jié)點之間不是雙向鏈路,那么直接丟棄此請求報文;否則,第一次接受到請求報文的節(jié)點如果它是蜂窩的移動基站DMBS節(jié)點或者邊界節(jié)點,并且有足夠的帶寬資源來滿足QoS連接請求,那么中間節(jié)點將為此次連接預(yù)分配帶寬資源并轉(zhuǎn)發(fā)此QoS請求報文,否則如果沒有足夠的帶寬或者中間節(jié)點不是移動基站或者邊界節(jié)點都將直接丟棄請求報文。接受到請求報文的節(jié)點是QoS連接請求的目的節(jié)點如果它是第一次接受到此請求(通過使用序列號來判斷),那么如果它有足夠的帶寬資源可以分配給此QoS連接請求則目的節(jié)點為此次連接建立會話保留所需的帶寬資源并且生成應(yīng)答報文,應(yīng)答報文迎著請求預(yù)先建立的路徑返回到源節(jié)點,這樣中間節(jié)點預(yù)先分配的帶寬資源都可以得到確認(rèn)。那些得不到確認(rèn)的預(yù)先分配的帶寬將在一定的時間后自行釋放。這樣,源到目的的滿足一定帶寬要求的QoS路徑就建立起來了。為了提高數(shù)據(jù)在中間節(jié)點的轉(zhuǎn)發(fā)效率,我們沒有建立通常的IP層路由路徑,我們建立的是鏈路層交換路徑。為了實現(xiàn)鏈路層的流數(shù)據(jù)交換,我們在數(shù)據(jù)報文中增加節(jié)點分配的局部流標(biāo)簽。在路由確認(rèn)報文中我們也增加了節(jié)點分配的局部流標(biāo)簽,通過路由確認(rèn)上游節(jié)點可以得到下一跳節(jié)點的局部流標(biāo)簽,從而我們能夠建立從源節(jié)點到目的節(jié)點的局部流標(biāo)簽路徑。每個節(jié)點可以通過報文的流標(biāo)簽來實現(xiàn)對QoS數(shù)據(jù)流的轉(zhuǎn)發(fā)和流量控制,從而來實現(xiàn)保證帶寬的QoS路由。
DCQoS按需路由的重建QoS路由只是在需要的時候才會被建立,然而由于移動自組網(wǎng)的特點節(jié)點的移動會導(dǎo)致建立的QoS路由的失效。利用移動蜂窩協(xié)議hello消息收集的鄰居信息,如果節(jié)點發(fā)現(xiàn)其建立的QoS路由的上一跳或者下一跳不在鄰居節(jié)點中或者不是雙向連接,那么節(jié)點刪除已經(jīng)建立的QoS路由釋放分配的帶寬。如果發(fā)現(xiàn)節(jié)點(非目的節(jié)點)與其上一跳節(jié)點鏈路斷開,那么節(jié)點向QoS路由的下一跳節(jié)點發(fā)送向下游拆除報文,收到此向下游拆除報文的節(jié)點都將刪除此QoS路由并釋放分配的帶寬同時向QoS路由的下一跳節(jié)點轉(zhuǎn)發(fā)拆除報文。如果發(fā)現(xiàn)節(jié)點與其QoS路由的下一跳節(jié)點的鏈路斷開,那么節(jié)點(非源節(jié)點)將向此QoS路由的上一跳發(fā)送向上流拆除的報文,收到此拆除報文的中間節(jié)點都將刪除此QoS路由釋放已分配的帶寬同時向QoS路由的上一跳節(jié)點轉(zhuǎn)發(fā)此拆除報文。如果源節(jié)點主動發(fā)現(xiàn)QoS路由已經(jīng)斷開或者收到下游節(jié)點發(fā)現(xiàn)路由斷開后發(fā)送的拆除報文,源節(jié)點將重新進(jìn)行按需路由的建立過程。
基于動態(tài)蜂窩的按需服務(wù)質(zhì)量保證方法是按照蜂窩網(wǎng)絡(luò)的思想結(jié)合MANET網(wǎng)絡(luò)移動自主的特性設(shè)計的一種適合MANET網(wǎng)絡(luò)的QoS技術(shù)。同時根據(jù)用戶的對選路的帶寬要求增加了按需QoS選路的特性,滿足用戶對于帶寬QoS要求的應(yīng)用。通過在路由探測報文中增加帶寬的需求,每個節(jié)點通過維護(hù)可以分配的帶寬來判斷能不能滿足路由探測報文對帶寬的要求。當(dāng)路由探測報文能夠達(dá)到目的節(jié)點的時候,源節(jié)點到目的節(jié)點間的滿足帶寬要求的路徑就已經(jīng)找到。因為在我們的協(xié)議中,目的節(jié)點只處理第一個到達(dá)的路由探測報文,所以我們的按需路由協(xié)議建立的QoS路由是源到目的節(jié)點的滿足帶寬要求的端到端延時最短的路徑。因此,動態(tài)蜂窩QoS路由協(xié)議為移動自組網(wǎng)提供了一個新的滿足QoS要求、性能優(yōu)于表驅(qū)動和按需路由協(xié)議,并能與支持常規(guī)固定蜂窩的各種移動終端相兼容,具有很高的應(yīng)用前景,必將成為移動自組網(wǎng)路由協(xié)議一個新的發(fā)展方向。
DCQoS路由協(xié)議采用分布式動態(tài)蜂窩路由方法(DDCC)完成位置移動管理,由于所有移動結(jié)點MN都運行DDCC協(xié)議,所以,一些MN被動態(tài)地選舉成為臨時移動基站DMBS。在DCQoS路由協(xié)議中,只有DMBS能夠獲得整個網(wǎng)絡(luò)的拓?fù)渲R。如果某個MN要發(fā)送數(shù)據(jù)包,它就模仿固定蜂窩網(wǎng)絡(luò)把數(shù)據(jù)包發(fā)送給它的DMBS,數(shù)據(jù)包在一個或多個DMBS或BMN之間轉(zhuǎn)發(fā)到目的DMBS,由目的DMBS將數(shù)據(jù)包發(fā)送給目的MN。
顯然,MN既不負(fù)責(zé)新路由的發(fā)現(xiàn),也不負(fù)責(zé)已有路徑的維護(hù)。這種新的路由協(xié)議消除了按需路由協(xié)議初始階段路由發(fā)現(xiàn)的搜索延遲。此外,整個網(wǎng)絡(luò)的拓?fù)湫畔⒅辉贒MBS之間傳輸和保存,面無須傳送給每一個MN,避免了表驅(qū)動路由協(xié)議中大量網(wǎng)絡(luò)拓?fù)湫畔⒌膫魉汀?br>
源結(jié)點S向目的結(jié)點D發(fā)送一個連接請求消息(稱為PATH消息),啟動QoS路由,PATH消息中含有QoS參數(shù)——帶寬B或延遲D,S首先將PATH消息發(fā)送給本蜂窩的DMBS,由于每一個DMBS都知道任意兩個DMBS之間的路由,所以,S的DMBS將PATH消息進(jìn)行復(fù)制,分別發(fā)送到每一條能到達(dá)目的DMBS的路由上,這些PATH消息在DMBS或BMN之間按各自的路由分別向目的DMRS傳送,在途經(jīng)的每一個DMBS或BMN中,檢查該DMBS或BMN能否滿足QoS要求,如果不能,則銷毀該P(yáng)ATH消息,并終止該P(yáng)ATH消息的傳送,表明該QoS路由不滿足QoS要求。目的DMBS將所收到的若于PATH消息轉(zhuǎn)發(fā)給目的結(jié)點D,D選擇一條滿足QoS要求的最佳路由,D向S發(fā)送確認(rèn)消息(稱為ACK消息),ACK消息沿著最佳路由向S傳送,在經(jīng)過的每一個DMBS或BMN上預(yù)留資源。當(dāng)ACK消息到達(dá)S時,QoS路由就建立起來了。
根據(jù)S和D當(dāng)前的位置、移動速度與方向以及相鄰的蜂窩,參照移動歷史采用相應(yīng)的移動預(yù)測算法定期計算出S和D可能要進(jìn)入的蜂窩集合,S和D使用PATH消息和RESV消息按照上述端-端QoS路由建立方法,為S和D分別建立到可能進(jìn)入的蜂窩進(jìn)行提前預(yù)約,這里的RESV消息在返回的路由上只是在每一個所經(jīng)過的DMBS或BMN中的資源分配表上標(biāo)識該資源已被預(yù)約。并不實際的分配。一旦S或D移動到預(yù)測的蜂窩后,發(fā)送通知消息(稱為NOTICE消息)給預(yù)留路由上所有DMBS或BMN,將被動預(yù)留變?yōu)橹鲃宇A(yù)留。被動預(yù)留的釋放可以在收到TEAR消息后進(jìn)行,也可以在被動預(yù)留狀態(tài)超時之后自動進(jìn)行。
當(dāng)蜂窩發(fā)生變化時即QoS路由上一個蜂窩中的DMBS變成了本蜂窩/新生蜂窩/其它蜂窩的MN,也就是說,有一個MN變成了本蜂窩/新生蜂窩/其它蜂窩的DMBS,我們擬在每一條QoS路由上每一個DMBS中為該條QoS路由設(shè)置一個定時器,定時自動檢測該條QoS路由上與它相鄰DMBS或BMN是否已發(fā)生了改變,如果是,則啟動QoS路由修補(bǔ)算法。由于DDC協(xié)議能夠動態(tài)地將整個網(wǎng)絡(luò)的連接拓?fù)鋫魉徒o每一個DMBS(正是這一點才使得蜂窩動態(tài)自動檢測與QoS路由修補(bǔ)變得比較簡單),所以,該條QoS路由上未斷開路由的每一個DMBS都知道該條QoS路由斷開的兩端DMBS以及這兩端之間一條或多條路由,我們可選擇靠近S端的DMBS,由它來發(fā)起QoS路由斷開的修補(bǔ),修補(bǔ)過程類似于S-D的QoS路由建立過程,所不同的是,兩個端點不是S和D,而是QoS路由斷開兩端的DMBS,由PATH和RACK消息取代PATH和ACK消息。
為了實現(xiàn)QoS路由的建立和斷開后的重建,我們定義了三種報文帶寬路由探測報文PATH,QoS路由建立確認(rèn)報文ACK,QoS路由拆除報文TEAR。其中的PATH報文通過在網(wǎng)絡(luò)上洪泛來探測滿足帶寬要求的路徑。ACK報文是目的節(jié)點對PATH探測到的延時最短的一條路徑的確認(rèn),ACK報文到達(dá)路由的發(fā)起者后滿足帶寬的QoS路由就被建立了。當(dāng)中間節(jié)點發(fā)現(xiàn)已建立的QoS路由斷開時通過發(fā)TEAR報文來拆除殘余的路徑,以便源節(jié)點重新發(fā)起QoS路由的建立過程。
PATH報文包含如下一些必要信息序列號、QoS路徑的源和目的節(jié)點、請求帶寬。收到應(yīng)用接口的QoS路由請求后,源節(jié)點向其鄰居廣播相應(yīng)的PATH報文。收到PATH報文的所有雙向鏈路連接的節(jié)點根據(jù)序列號以及QoS路徑的源和目的節(jié)點判斷是不是重復(fù)的報文,如果是重復(fù)的報文節(jié)點將直接丟棄此報文。收到此報文的節(jié)點如果不是QoS路由的目的節(jié)點,那么節(jié)點判斷其是不是移動基站節(jié)點DMBS或者邊界節(jié)點。如果節(jié)點不是邊界節(jié)點或者DMBS或者帶寬不能滿足需求,節(jié)點將丟棄此PATH報文(利用DMBS和邊界節(jié)點的特點轉(zhuǎn)發(fā)PATH報文也可以減少PATH報文洪泛對網(wǎng)絡(luò)的額外帶寬的消耗)。轉(zhuǎn)發(fā)節(jié)點收到新的PATH報文后,如果當(dāng)前帶寬滿足PATH報文的請求帶寬,那么節(jié)點將相應(yīng)的減少當(dāng)前可分配帶寬同時在節(jié)點中增加一個會話記錄。一個會話記錄包含下列信息序列號,源和目的節(jié)點,帶寬,會話狀態(tài),上一跳節(jié)點,下一跳節(jié)點,下一跳分配的局部流標(biāo)簽,生存時間等。收到PATH報文的節(jié)點記錄序列號源和目的節(jié)點以及帶寬,設(shè)置上一跳節(jié)點以及生存時間,會話狀態(tài)設(shè)為PATH狀態(tài)。會話記錄中的下一跳節(jié)點以及下一跳局部流標(biāo)簽需要從確認(rèn)報文ACK中獲得。目的節(jié)點收到新的PATH報文后分配流標(biāo)簽生成ACK報文給上一跳節(jié)點,對于重復(fù)的PATH報文目的節(jié)點簡單的丟棄它(從而也保證了端到端的延時最短)。
路由確認(rèn)報文ACK包含下列必要的信息序列號,源和目的節(jié)點,下一跳節(jié)點接口的MAC地址以及IP地址,下一跳局部流標(biāo)簽。中間節(jié)點收到ACK報文后,節(jié)點保存的相應(yīng)的會話記錄狀態(tài)改為ACK狀態(tài),記錄下一跳節(jié)點(包括IP地址和MAC地址)以及下一跳節(jié)點分配的流標(biāo)簽,節(jié)點為此QoS流分配自己的流標(biāo)簽。根據(jù)記錄的會話表,節(jié)點向鏈路層QoS流數(shù)據(jù)轉(zhuǎn)發(fā)和控制模塊的鏈路轉(zhuǎn)發(fā)路由表中添加路由表項(本節(jié)點流標(biāo)簽,源,目的,帶寬,下一跳MAC地址,下一跳局部流標(biāo)簽)。然后節(jié)點向會話表中保存的上一跳發(fā)送它構(gòu)造的路由確認(rèn)ACK報文,直到源節(jié)點得到確認(rèn)報文。得不到確認(rèn)的節(jié)點上保存的會話在其生存時間過期后將被節(jié)點刪除。
節(jié)點根據(jù)移動蜂窩協(xié)議保存的鄰居信息來判斷鏈路的斷開。如果發(fā)現(xiàn)已經(jīng)建立的QoS路徑斷開,那么節(jié)點將刪除會話記錄以及鏈路層QoS流數(shù)據(jù)轉(zhuǎn)發(fā)和控制模塊中鏈路轉(zhuǎn)發(fā)路由表中相應(yīng)的表項,同時根據(jù)斷開的情況向上一跳節(jié)點或者下一跳節(jié)點發(fā)相應(yīng)的路由拆除TEAR報文。收到TEAR報文的節(jié)點也將刪除其路由表及相應(yīng)的會話記錄,然后向QoS路徑的上一跳或者下一跳轉(zhuǎn)發(fā)TEAR報文(根據(jù)TEAR報文的類型下流拆除或者上流拆除,來決定轉(zhuǎn)發(fā))。源節(jié)點發(fā)現(xiàn)QoS路徑的斷開或者收到相應(yīng)的TEAR報文將通過發(fā)送新的PATH報文重新進(jìn)行QoS路由的建立過程。
Path報文source,dest,band_width,sequence。
ACK報文source,dest,band_width,sequence,next_hop,next_MAC.
節(jié)點保留的session表項QoS路由相關(guān)消息處理方法及運行機(jī)制1)PATH消息處理中間節(jié)點接受到PATH消息0如果是轉(zhuǎn)發(fā)節(jié)點或者是PATH target且和上一跳是雙向鏈路則進(jìn)行下面的處理,否則返回1根據(jù)PATH消息中的source和target判斷有沒有收到2如果不存在這樣的session2.0如果存在足夠帶寬資源則做下面動作,否則返回2.1創(chuàng)建新的session2.2session狀態(tài)設(shè)置為PATH,根據(jù)path消息初始化session中的相應(yīng)的數(shù)據(jù)2.3session的PATH生命設(shè)置為當(dāng)前時間加上PATH_HOLD_TIME2.4如果節(jié)點就是PATH消息的target2.4.1設(shè)置session狀態(tài)為RESV2.4.2構(gòu)造RESV(sourc,target,sessionid,mac_addr)發(fā)送給session中PSB記錄的上一跳2.5節(jié)點是中間節(jié)點,廣播PATH消息.
3如果已經(jīng)存在這樣的session3.1如果收到新的PATH消息(PATH::sessionId>LOCAL::sessionId)Loeal session應(yīng)該立即過期,否則是收到舊的PATH立即丟棄。
3.1.0如果session狀態(tài)為RESV刪除route(source,target)修改為PATH狀態(tài)3.1.1釋放舊的Psb中的帶寬,如果當(dāng)前帶寬滿足PATH的申請帶寬則下面動作,否則刪除session返回3.1.2記錄新的session psb信息,session的PATH生命設(shè)置為當(dāng)前時間加上PATH_HOLD_TIME3.1.3如果節(jié)點就是PATH消息的target3.1.3.1設(shè)置session狀態(tài)為RESV3.1.3.2構(gòu)造RESV(sourc,target,sessionid,mac_addr)發(fā)送給session中PSB記錄的上一跳3.1.4節(jié)點是中間節(jié)點,廣播PATH消息.
2)RESV消息處理根據(jù)消息的source target查找相應(yīng)的session1.如果存在相應(yīng)的session,判斷session的狀態(tài)1.1session為PATH狀態(tài)1.1.1比較Local::sessionId和RESV::sessionida)如果是舊的RESV則丟棄此resv消息b)sessionid相同則b1)記錄相應(yīng)的session的RSB消息b2)添加路由表route(souce,target,next_mac,band_width)b3)如果節(jié)點不是source則向Psb的上一跳發(fā)送RSV消息c)收到新的RESV消息發(fā)生錯誤(不可能發(fā)生)
1.2session為RESV狀態(tài)比較Local::sessionId和RESV::sessionida)收到舊的RESV消息則丟棄此消息b)收到相同id的消息則是發(fā)生錯誤(不可能發(fā)生)c)收到新的RESV消息則發(fā)生錯誤(不可能發(fā)生)2.如果不存在相應(yīng)的session,則丟棄此消息3)TEAR消息處理根據(jù)消息的source target查找相應(yīng)的session1.如果存在相應(yīng)的session,判斷session的狀態(tài)1.1session為PATH狀態(tài)1.1.1比較Local::sessionId和TEAR::sessionida)如果是舊的TEAR則丟棄此消息b)sessionid相同則,刪除此sessionc)收到新的TEAR消息發(fā)生錯誤(不可能發(fā)生)1.2session為RESV狀態(tài)比較Local::sessionId和RESV::sessionida)收到舊的TEAR消息則丟棄此消息b)收到相同id的消息b1)刪除路由表route(source,targer)b2)如果TEAE為ACTIVE的則向session的下一跳發(fā)送TEAR消息,否則是PASSIVE的向上一跳發(fā)送TEAR消息。
b3)如果節(jié)點不是源則,刪除此session返回,否則b4)源節(jié)點路由重建過程:1:session狀態(tài)改為PATH狀態(tài):2:構(gòu)建PATH消息(新的sessionId):3:更新session中的數(shù)據(jù)區(qū)以及生命期。
:4:發(fā)送PATH消息
4)鏈路斷開發(fā)現(xiàn)方法鏈路發(fā)現(xiàn)輪詢時間到來時(可以是發(fā)送hello消息時候)對于session表中的每一個處于RESV狀態(tài)的session1.對于非源節(jié)點1.如果上一跳和下一跳都不在雙向鏈路鄰居表中session斷開(刪除路由表并且刪除session表項)2.如果上一跳不在雙向鏈路鄰居表中向下一跳發(fā)送主動TEAR消息,3.如果下一跳不在雙向鏈路鄰居表中向上一跳發(fā)被動TEAR消息2.對于源節(jié)點如果下一跳不在雙向鏈路鄰居表中刪除舊的路由表route(source,target)源節(jié)點路由重建:1:session狀態(tài)改為PATH狀態(tài):2:構(gòu)建PATH消息(新的sessionId):3:更新session中的數(shù)據(jù)區(qū)以及生命期。
:4:發(fā)送PATH消息5).QoS路由保持時間的刷新方式當(dāng)PATH刷新周期到來時對于session表中的每一個處于PATH狀態(tài)的session1.節(jié)點是session的源如果PATH時間過期如果PATH重試次數(shù)小于一個閾值(PATH狀態(tài)過時的最大次數(shù))那么重新發(fā)起源節(jié)點路由重建:1:session狀態(tài)改為PATH狀態(tài):2:構(gòu)建PATH消息(新的sessionId):3:更新session中的數(shù)據(jù)區(qū)以及生命期。
:4:發(fā)送PATH消息否則如果超過重建閾值(PATH狀態(tài)過時的最大次數(shù))刪除此session表項。
2.節(jié)點不是源如果過期則刪除session表項。
注意對于所有的不可能處理為,如果session是RESV狀態(tài)則刪除路由表然后刪除session快如果是PATH狀態(tài)則刪除session項。
有益效果本發(fā)明提供了一種移動自組網(wǎng)絡(luò)的基于動態(tài)蜂窩的按需服務(wù)質(zhì)量(DcQoS)保證的方法,以適合網(wǎng)絡(luò)規(guī)模較大,網(wǎng)絡(luò)拓?fù)渥兓^快的移動自組網(wǎng)絡(luò)的QoS要求。動態(tài)蜂窩QoS路由協(xié)議為移動自組網(wǎng)提供了一個新的滿足QoS要求、性能優(yōu)于表驅(qū)動和按需路由協(xié)議,并能與支持常規(guī)固定蜂窩的各種移動終端相兼容,具有很高的應(yīng)用前景,必將成為移動自組網(wǎng)路由協(xié)議一個新的發(fā)展方向。滿足移動自組網(wǎng)絡(luò)的QoS路由要求,沒有建立QoS連接的視頻點播的帶寬不能保證,因此時而停頓。而建立QoS連接后的視頻點播能夠優(yōu)先使用帶寬,播放流暢,QoS路由切換耗時極小,視頻幾乎沒有停頓。
圖1是我們的QoS流量控制實現(xiàn)在NDIS的中間層驅(qū)動中(intermediate driver)中間層驅(qū)動處理的是鏈路層的數(shù)據(jù)報文,在這一層上可以實現(xiàn)QoS數(shù)據(jù)和非Qos數(shù)據(jù)的分離路由。
圖2是中間層驅(qū)動中的QoS路由表,圖3是丟包率比較圖(1),圖4是丟包率比較圖(2),圖5是丟包率比較圖(3),圖6是丟包率比較圖(4)。
具體實施例方式
移動自組網(wǎng)絡(luò)的基于動態(tài)蜂窩的按需服務(wù)質(zhì)量保證的方法是采用多服務(wù)質(zhì)量路由探測算法選擇一條能夠最大滿足服務(wù)質(zhì)量要求的最佳路由,在這條最佳路由上建立端-端資源預(yù)留,在蜂窩未發(fā)生變化時,數(shù)據(jù)都在這條最佳路由上傳輸,為數(shù)據(jù)的連接提供服務(wù)質(zhì)量保證;通過產(chǎn)生、發(fā)送、接收、處理服務(wù)質(zhì)量請求報文,即PATH消息,來建立按需服務(wù)質(zhì)量按需路由;利用移動蜂窩協(xié)議“hello”消息收集的鄰居信息來發(fā)現(xiàn)失效的服務(wù)質(zhì)量路由,并發(fā)送拆除、探測消息來回收資源并重建服務(wù)質(zhì)量路由。
1)QoS路由實現(xiàn)我們實現(xiàn)QoS路由的平臺是windows2000,通過在NDIS的中間層驅(qū)動中實現(xiàn)鏈路層轉(zhuǎn)發(fā)模塊,而按需QoS路由建立和維護(hù)模塊以及移動蜂窩協(xié)議都工作在用戶層上。按需服務(wù)質(zhì)量按需路由的建立步驟如下接收到應(yīng)用層的服務(wù)質(zhì)量連接請求后,源節(jié)點構(gòu)造并廣播服務(wù)質(zhì)量路由請求報文;第一次接受到請求報文的移動基站DMBS或者邊界節(jié)點,如果有足夠的帶寬資源來滿足服務(wù)質(zhì)量連接請求,那么該節(jié)點將為此次連接預(yù)分配帶寬資源并轉(zhuǎn)發(fā)此服務(wù)質(zhì)量請求報文,否則丟棄請求報文;當(dāng)?shù)谝淮蔚竭_(dá)目的節(jié)點時,如果有足夠的帶寬資源可以分配給此服務(wù)質(zhì)量連接請求,則目的節(jié)點為其保留所需的帶寬資源并且生成應(yīng)答報文,應(yīng)答報文迎著請求預(yù)先建立的路徑返回到源節(jié)點,這樣中間節(jié)點預(yù)先分配的帶寬資源都可以得到確認(rèn);那些得不到確認(rèn)的預(yù)先分配的帶寬將在一定的時間后自行釋放;這樣,源到目的的滿足一定帶寬要求的服務(wù)質(zhì)量路徑就建立起來了。按需服務(wù)質(zhì)量按需路由的重建步驟如下當(dāng)節(jié)點發(fā)現(xiàn)其建立的服務(wù)質(zhì)量路由的上一跳或者下一跳不在鄰居節(jié)點中或者不是雙向連接,那么節(jié)點刪除已經(jīng)建立的服務(wù)質(zhì)量路由并釋放分配的帶寬;如果發(fā)現(xiàn)非目的節(jié)點與其上一跳節(jié)點鏈路斷開,那么節(jié)點向服務(wù)質(zhì)量路由的下一跳節(jié)點發(fā)送向下游拆除報文,收到此向下游拆除報文的節(jié)點都將刪除此服務(wù)質(zhì)量路由并釋放分配的帶寬同時向服務(wù)質(zhì)量路由的下一跳節(jié)點轉(zhuǎn)發(fā)拆除報文;如果發(fā)現(xiàn)節(jié)點與其服務(wù)質(zhì)量路由的下一跳節(jié)點的鏈路斷開,那么非源節(jié)點將向此服務(wù)質(zhì)量路由的上一跳發(fā)送向上流拆除的報文,收到此拆除報文的中間節(jié)點都將刪除此服務(wù)質(zhì)量路由釋放已分配的帶寬同時向服務(wù)質(zhì)量路由的上一跳節(jié)點轉(zhuǎn)發(fā)此拆除報文;如果源節(jié)點主動發(fā)現(xiàn)服務(wù)質(zhì)量路由已經(jīng)斷開或者收到下游節(jié)點發(fā)現(xiàn)路由斷開后發(fā)送的拆除報文,源節(jié)點將重新進(jìn)行按需路由的建立過程。
鏈路層轉(zhuǎn)發(fā)模塊QoS路由建立模塊建立的鏈路層路由表轉(zhuǎn)發(fā)數(shù)據(jù)以及進(jìn)行流量控制,此模塊實現(xiàn)在數(shù)據(jù)鏈路層上。下面是節(jié)點的數(shù)據(jù)報文處理過程。
(1)對于從IP層傳遞給數(shù)據(jù)鏈路層的每個數(shù)據(jù)包通過查我鏈路層轉(zhuǎn)發(fā)路由表,可以判斷報文是QoS路由數(shù)據(jù)還是一般的數(shù)據(jù)。如果是QoS數(shù)據(jù),那么通過鏈路層QoS數(shù)據(jù)轉(zhuǎn)發(fā)路由表可以獲得下一跳的局部流標(biāo)簽以及下一跳的MAC地址。修改此報文的下一跳MAC地址,在其IP頭和MAC頭之間添加我們的標(biāo)簽頭。TYPE為QoS類型,NEXT_FLOW_LABEL為我們建立的路由表中的下一跳流局部標(biāo)簽。對于非QoS數(shù)據(jù)報文也需要添加標(biāo)簽頭,其添加的標(biāo)簽頭的TYPE就是非QoS類型面對于NEXT_FLOW_LABEL是無定義的(或者是缺省流標(biāo)簽)。我們定義的標(biāo)簽頭如下。
標(biāo)簽頭格式(2)對于QoS鏈路轉(zhuǎn)發(fā)模塊從下層接受的數(shù)據(jù)鏈路層數(shù)據(jù)報文,首先根據(jù)標(biāo)簽頭的TYPE類型判斷此數(shù)據(jù)報文是不是QoS數(shù)據(jù),如果不是QoS數(shù)據(jù)那么去掉我們添加的標(biāo)簽頭部恢復(fù)一般的數(shù)據(jù)報文格式然后將此報文傳遞給上層(IP層)進(jìn)行處理。上層根據(jù)IP頭的目的IP地址對于需要轉(zhuǎn)發(fā)的數(shù)據(jù)報文通過查找移動蜂窩協(xié)議建立的路由表來決定其下一跳的IP地址。如果TYPE是QoS數(shù)據(jù)類型,根據(jù)標(biāo)簽頭部的NEXT_FLOW_LABEL域查找鏈路層QoS流數(shù)據(jù)轉(zhuǎn)發(fā)路由表。如果此QoS數(shù)據(jù)報文已經(jīng)到達(dá)其路徑的目的節(jié)點(路由表中的下一跳流標(biāo)簽不可用)則去掉添加的標(biāo)簽頭傳遞報文給上層繼續(xù)處理,否則,根據(jù)相應(yīng)的路由表項中記錄的下一跳MAC地址和下一跳局部流標(biāo)簽對數(shù)據(jù)報文做相應(yīng)的修改NEXT_FLOW_LABEL改為查找到的下一跳流標(biāo)簽,鏈路層頭部的源MAC地址改為本節(jié)點相應(yīng)接口的MAC地址,下一跳MAC地址修改為鏈路轉(zhuǎn)發(fā)路由表項中記錄的下一跳MAC地址。與非QoS數(shù)據(jù)處理不同的是,QoS轉(zhuǎn)發(fā)數(shù)據(jù)不向上層(IP層)傳遞選路,而是直接將修改后的報文傳遞給下層立即轉(zhuǎn)發(fā),也就是我們在鏈路層上就實現(xiàn)了QoS數(shù)據(jù)的轉(zhuǎn)發(fā)。鏈路層轉(zhuǎn)發(fā)只需要根據(jù)標(biāo)簽頭部的NEXT_FLOW_LABEL查找下一跳的MAC地址然后做相應(yīng)的修改,從而提高了QoS數(shù)據(jù)的轉(zhuǎn)發(fā)速度。
為了保證每個QoS流的帶寬,防止數(shù)據(jù)流超過它實際申請的帶寬以及非QoS數(shù)據(jù)流占用QoS數(shù)據(jù)流的帶寬,我們對每個QoS數(shù)據(jù)流以及非QoS數(shù)據(jù)實現(xiàn)了流量控制。對于所有的非QoS數(shù)據(jù)我們可以把它看成一個缺省的QoS數(shù)據(jù)流,只是它的帶寬是系統(tǒng)在保證QoS數(shù)據(jù)傳輸后可用的剩余帶寬。為了實現(xiàn)上述功能可以使用常用的包調(diào)度算法,根據(jù)每個流的申請帶寬作為調(diào)度的優(yōu)先權(quán)對節(jié)點的所有轉(zhuǎn)發(fā)數(shù)據(jù)報文進(jìn)行排隊調(diào)度。然而在實際的實現(xiàn)過程中(我們在windows2000操作系統(tǒng)平臺上實現(xiàn))發(fā)現(xiàn)由于調(diào)度算法需要對經(jīng)過的包進(jìn)行排隊調(diào)度,對端到端的延時影響較大。因此我們使用了根據(jù)每個流的最近歷史流量信息來決定流量控制的算法
對于屬于某個QoS數(shù)據(jù)流的報文根據(jù)記錄的此流的歷史流量,如果發(fā)現(xiàn)其最近流占用的帶寬超過了其申請的實際帶寬,那么就丟棄此報文更新最近歷史流量記錄;如果最近流占用的帶寬沒有超過其申請的帶寬,報文立即進(jìn)行轉(zhuǎn)發(fā)并且更新最近歷史流量記錄。
為了能夠獲得某個QoS數(shù)據(jù)流的最近歷史流量信息,我們需要記錄在最近的一個時間窗口內(nèi)此QoS路由流過的數(shù)據(jù)量。對每個流,模塊需要記錄兩個參數(shù)最近流量記錄開始時間STime,以及從STime開始此QoS路徑流過的數(shù)據(jù)量FlowedBytes。使用下面的公式可以判斷某個QoS流接受到的數(shù)據(jù)是否需要丟棄(1+α)*TIE_INTERVAL*FLOW_BANDWIDTH<FlowedBytes,如果不等式成立則需要丟棄此報文。其中TIME_INTERVAL=Current_Time-STime,α是小于1的用來調(diào)節(jié)的參數(shù)。通過抑制那些過量的數(shù)據(jù)報文從而實現(xiàn)了保證QoS數(shù)據(jù)流帶寬的功能。
如圖1所示,我們的QoS流量控制實現(xiàn)在NDIS的中間層驅(qū)動中(intermediatedriver)中間層驅(qū)動處理的是鏈路層的數(shù)據(jù)報文,在這一層上可以實現(xiàn)QoS數(shù)據(jù)和非Qos數(shù)據(jù)的分離路由。
NDIS中間層驅(qū)動使用ProtocolSendPacket向下層NIC驅(qū)動發(fā)送鏈路層數(shù)據(jù)報文,在我們的無線網(wǎng)卡的NIC上層發(fā)送的也是802.3格式的報文,NIC驅(qū)動負(fù)責(zé)轉(zhuǎn)換和發(fā)送。NDIS中間層驅(qū)動使用MiniportReceivePacket從下層接鏈路層數(shù)據(jù)報文受數(shù)據(jù)報文。在這兩個函數(shù)中,我們對數(shù)據(jù)報文進(jìn)行分析,封裝,根據(jù)上層建立的QoS按需路由表,區(qū)分QoS數(shù)據(jù)和一般數(shù)據(jù)。對于QoS數(shù)據(jù),根據(jù)QoS路由表記錄的表項的下一跳MAC地址,可以實現(xiàn)鏈路層的快速轉(zhuǎn)發(fā),不需要交給上層IP進(jìn)行選路。如果是非QoS數(shù)據(jù),MiniportReceivePacket函數(shù)接受到這樣的報文直接交給上層處理,上層根據(jù)移動蜂窩路由協(xié)議建立的路由表進(jìn)行選路。
2)DCQoS路由測試我們分別在windows 2000操作系統(tǒng)和NS2網(wǎng)絡(luò)仿真平臺上實現(xiàn)和測試了這一路由技術(shù)。
1)Windows 2000下測試環(huán)境
八臺windows 2000操作系統(tǒng)帶11Mbps PCMCIA無線網(wǎng)卡的筆記本作為八個移動終端,以視頻點播為測試用例。
測試結(jié)果滿足移動自組網(wǎng)絡(luò)的QoS路由要求,沒有建立QoS連接的視頻點播的帶寬不能保證,因此時而停頓。而建立QoS連接后的視頻點播能夠優(yōu)先使用帶寬,播放流暢,QoS路由切換耗時極小,視頻幾乎沒有停頓。
2)NS2下測試共進(jìn)行4組。每一組包括3次測試,分別驗證支持QoS的AODV、DODV、DDCC路由協(xié)議的包傳輸率性能。
在每組測試中,所有節(jié)點的初始位置的初始位置都是隨機(jī)的,然后生成33個udp連接。每個連接都申請了25kbps的帶寬資源,并且在一定的時刻開始使用建成的連接發(fā)送數(shù)據(jù),發(fā)送速率為20kbps。所有節(jié)點隨機(jī)移動。
4組測試的結(jié)果如圖3-6所示圖3-6中,橫坐標(biāo)表示的是時間,縱坐標(biāo)表示的是所有連接的平均丟包率。因為結(jié)點的位置隨機(jī),并且節(jié)點以20m/s以下的隨機(jī)速度快速移動,所以切換頻繁,丟報率比較大。但是我們?nèi)匀豢梢杂糜诒容^AODV、DSDV、DDCC協(xié)議的性能。
(1)對于AODVQoS協(xié)議,4組測試的丟包率分別是0.303,0.249,0.314,0.169,平均值為0.259;(2)對于DSDVQoS協(xié)議,4組測試的丟包率分別是0.250,0.220,0.158,0.126,平均值為0.189;(3)對于DCQoS協(xié)議,4組測試的丟包率分別是0.144,0.210,0.111,0.143,平均值為0.152;使用DCQoS協(xié)議時候的包傳輸率要明顯高于使用AODVQoS協(xié)議或DDVQoS協(xié)議的情況。
權(quán)利要求
1.一種移動自組網(wǎng)絡(luò)的基于動態(tài)蜂窩的按需服務(wù)質(zhì)量保證的方法,其特征在于采用多服務(wù)質(zhì)量路由探測算法選擇一條能夠最大滿足服務(wù)質(zhì)量要求的最佳路由,在這條最佳路由上建立端-端資源預(yù)留,在蜂窩未發(fā)生變化時,數(shù)據(jù)都在這條最佳路由上傳輸,為數(shù)據(jù)的連接提供服務(wù)質(zhì)量保證;通過產(chǎn)生、發(fā)送、接收、處理服務(wù)質(zhì)量請求報文,即PATH消息,來建立按需服務(wù)質(zhì)量按需路由;利用移動蜂窩協(xié)議“hello”消息收集的鄰居信息來發(fā)現(xiàn)失效的服務(wù)質(zhì)量路由,并發(fā)送拆除、探測消息來回收資源并重建服務(wù)質(zhì)量路由。
2.如權(quán)利要求1所述的移動自組網(wǎng)絡(luò)的基于動態(tài)蜂窩的按需服務(wù)質(zhì)量保證的方法,其特征在于按需服務(wù)質(zhì)量按需路由的建立步驟如下接收到應(yīng)用層的服務(wù)質(zhì)量連接請求后,源節(jié)點構(gòu)造并廣播服務(wù)質(zhì)量路由請求報文;第一次接受到請求報文的移動基站DMBS或者邊界節(jié)點,如果有足夠的帶寬資源來滿足服務(wù)質(zhì)量連接請求,那么該節(jié)點將為此次連接預(yù)分配帶寬資源并轉(zhuǎn)發(fā)此服務(wù)質(zhì)量請求報文,否則丟棄請求報文;當(dāng)?shù)谝淮蔚竭_(dá)目的節(jié)點時,如果有足夠的帶寬資源可以分配給此服務(wù)質(zhì)量連接請求,則目的節(jié)點為其保留所需的帶寬資源并且生成應(yīng)答報文,應(yīng)答報文迎著請求預(yù)先建立的路徑返回到源節(jié)點,這樣中間節(jié)點預(yù)先分配的帶寬資源都可以得到確認(rèn);那些得不到確認(rèn)的預(yù)先分配的帶寬將在一定的時間后自行釋放;這樣,源到目的的滿足一定帶寬要求的服務(wù)質(zhì)量路徑就建立起來了。
3.如權(quán)利要求1所述的移動自組網(wǎng)絡(luò)的基于動態(tài)蜂窩的按需服務(wù)質(zhì)量保證的方法,其特征在于按需服務(wù)質(zhì)量按需路由的重建步驟如下當(dāng)節(jié)點發(fā)現(xiàn)其建立的服務(wù)質(zhì)量路由的上一跳或者下一跳不在鄰居節(jié)點中或者不是雙向連接,那么節(jié)點刪除已經(jīng)建立的服務(wù)質(zhì)量路由并釋放分配的帶寬;如果發(fā)現(xiàn)非目的節(jié)點與其上一跳節(jié)點鏈路斷開,那么節(jié)點向服務(wù)質(zhì)量路由的下一跳節(jié)點發(fā)送向下游拆除報文,收到此向下游拆除報文的節(jié)點都將刪除此服務(wù)質(zhì)量路由并釋放分配的帶寬同時向服務(wù)質(zhì)量路由的下一跳節(jié)點轉(zhuǎn)發(fā)拆除報文;如果發(fā)現(xiàn)節(jié)點與其服務(wù)質(zhì)量路由的下一跳節(jié)點的鏈路斷開,那么非源節(jié)點將向此服務(wù)質(zhì)量路由的上一跳發(fā)送向上流拆除的報文,收到此拆除報文的中間節(jié)點都將刪除此服務(wù)質(zhì)量路由釋放已分配的帶寬同時向服務(wù)質(zhì)量路由的上一跳節(jié)點轉(zhuǎn)發(fā)此拆除報文;如果源節(jié)點主動發(fā)現(xiàn)服務(wù)質(zhì)量路由已經(jīng)斷開或者收到下游節(jié)點發(fā)現(xiàn)路由斷開后發(fā)送的拆除報文,源節(jié)點將重新進(jìn)行按需路由的建立過程。
全文摘要
移動自組網(wǎng)絡(luò)的基于動態(tài)蜂窩的按需服務(wù)質(zhì)量保證的方法是采用多服務(wù)質(zhì)量路由探測算法選擇一條能夠最大滿足服務(wù)質(zhì)量要求的最佳路由,在這條最佳路由上建立端-端資源預(yù)留,在蜂窩未發(fā)生變化時,數(shù)據(jù)都在這條最佳路由上傳輸,為數(shù)據(jù)的連接提供服務(wù)質(zhì)量保證;通過產(chǎn)生、發(fā)送、接收、處理服務(wù)質(zhì)量請求報文,即PATH消息,來建立按需服務(wù)質(zhì)量按需路由;利用移動蜂窩協(xié)議“hello”消息收集的鄰居信息來發(fā)現(xiàn)失效的服務(wù)質(zhì)量路由,并發(fā)送拆除、探測消息來回收資源并重建服務(wù)質(zhì)量路由。該方法適合網(wǎng)絡(luò)規(guī)模較大,網(wǎng)絡(luò)拓?fù)渥兓^快的移動自組網(wǎng)絡(luò)的QoS要求。
文檔編號H04L12/56GK1761232SQ200410064979
公開日2006年4月19日 申請日期2004年10月15日 優(yōu)先權(quán)日2004年10月15日
發(fā)明者熊焰, 苗付友, 王行甫, 張偉超 申請人:中國科學(xué)技術(shù)大學(xué)