亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種傳感器網(wǎng)絡(luò)擁塞控制方法

文檔序號:7655942閱讀:231來源:國知局
專利名稱:一種傳感器網(wǎng)絡(luò)擁塞控制方法
技術(shù)領(lǐng)域
本發(fā)明涉及無線傳感器網(wǎng)絡(luò)擁塞控制領(lǐng)域,提出 一種無線傳感器網(wǎng)絡(luò) 中的擁塞控制方法。
背景技術(shù)
無線傳感器網(wǎng)絡(luò)(WSN)是指由部署在監(jiān)測區(qū)域內(nèi)的大量無線傳感器 節(jié)點和無線路由節(jié)點所組成的網(wǎng)絡(luò)系統(tǒng)。圖1是一個無線傳感器網(wǎng)絡(luò)系統(tǒng) 的結(jié)構(gòu)示意圖,從圖中可以看出,無線傳感器網(wǎng)絡(luò)系統(tǒng)主要由無線傳感器 節(jié)點、無線路由節(jié)點和無線基站組成,其中的無線傳感器節(jié)點和無線路由 節(jié)點可統(tǒng)稱為網(wǎng)絡(luò)節(jié)點。無線傳感器節(jié)點通過各類集成化的微型傳感器實時地采集被監(jiān)測區(qū) 域內(nèi)的相關(guān)信息,將這些信息組裝到數(shù)據(jù)報文中,然后通過無線方式直接 向無線基站發(fā)送,或者借助于其它網(wǎng)絡(luò)節(jié)點通過無線中繼方式間接地向無 線基站發(fā)送。無線路由節(jié)點只有報文轉(zhuǎn)發(fā)功能,而沒有數(shù)據(jù)采集功能。 無線基站負(fù)責(zé)對收集到的數(shù)據(jù)報文作深入分析,提取出WSN用戶所 感興趣的內(nèi)容。環(huán)境監(jiān)測是WSN的一種典型應(yīng)用。在用于環(huán)境監(jiān)測的無線傳感器網(wǎng)絡(luò)中, 無線傳感器節(jié)點周期性地采集環(huán)境數(shù)據(jù),并將傳感器所采集到的數(shù)據(jù)通過無 線網(wǎng)絡(luò)發(fā)送到無線基站中。無線傳感器網(wǎng)絡(luò)中的網(wǎng)絡(luò)流量主要來自于周期性 的數(shù)據(jù)流,因此以下情況可能會導(dǎo)致網(wǎng)絡(luò)擁塞現(xiàn)象的發(fā)生1、 當(dāng)被監(jiān)測環(huán)境發(fā)生重大變化時,大量無線傳感器節(jié)點將加快數(shù)據(jù)采 樣頻率,從而產(chǎn)生大量的數(shù)據(jù)報文,進(jìn)而導(dǎo)致網(wǎng)絡(luò)擁塞現(xiàn)象的出現(xiàn);2、 無線傳感器節(jié)點的通信模塊所支持的帶寬通常較窄,相鄰節(jié)點之間 需要通過竟?fàn)幑蚕頍o線信道,因此,當(dāng)無線網(wǎng)絡(luò)的M^莫增大到一定程度時, 容易出現(xiàn)網(wǎng)絡(luò)擁塞現(xiàn)象。在發(fā)生上述情況時,進(jìn)行擁塞控制,降低網(wǎng)絡(luò)丟包率,對于增強(qiáng)WSN的 實用性至關(guān)重要。
與Internet網(wǎng)絡(luò)和無線adhoc網(wǎng)絡(luò)相比,WSN具有節(jié)點電池容量有限、 無線信道帶寬有限、節(jié)點內(nèi)存有限的特點。 一般的WSN應(yīng)用中,所有網(wǎng)絡(luò)節(jié) 點形成一個無線局域網(wǎng),節(jié)點間互相協(xié)作來釆集無線傳感器數(shù)據(jù)和傳輸數(shù)據(jù) 報文。WSN的上述特點決定了實用的擁塞控制方案應(yīng)該滿足如下要求(1) 為了減少了無效傳輸所浪費的通信能量和信道帶寬,需要將中途 丟包率控制得很低;(2) 為了節(jié)省通信能量和帶寬資源,需要限制控制報文的使用量;(3 )因為基站綜合分析來自各個數(shù)據(jù)流的數(shù)據(jù)才能隨時掌握所觀測地 理區(qū)域的情況,所以需要公平地為各數(shù)據(jù)流分配信道帶寬,讓每個數(shù)據(jù)流都 有一定比例的數(shù)據(jù)報文成功到達(dá)基站;(4)為了能運行于WSN中各網(wǎng)絡(luò)節(jié)點上,算法所需要的節(jié)點內(nèi)存開銷 要很小。Internet上基于區(qū)分服務(wù)思想的擁塞控制機(jī)制工作原理是:根據(jù)網(wǎng)絡(luò)帶 寬需求的不同將各數(shù)據(jù)流劃分到不同的優(yōu)先等級中,每個數(shù)據(jù)報文都有個優(yōu) 先級字段來標(biāo)記自己所屬數(shù)據(jù)流的優(yōu)先等級,同一個數(shù)據(jù)流中M艮文的優(yōu)先 目同;如果出現(xiàn)網(wǎng)絡(luò)擁塞,各個路由節(jié)點將只轉(zhuǎn)發(fā)優(yōu)先級高的數(shù)據(jù)報文, 而丟棄掉優(yōu)先級低的數(shù)據(jù)報文。基于區(qū)分服務(wù)的擁塞控制機(jī)制優(yōu)點是,網(wǎng)絡(luò) 節(jié)點上內(nèi)存開銷比較小,控制報文開銷也比較少。區(qū)分服務(wù)機(jī)制的缺點是, 發(fā)生網(wǎng)絡(luò)擁塞時路由節(jié)點僅以丟棄數(shù)據(jù)報文作為流量調(diào)節(jié)手段,導(dǎo)致中途丟 報率較高,并且不能保證每個數(shù)據(jù)流都有 一定比例的數(shù)據(jù)報文成功傳輸?shù)交?站。因此,Internet上基于區(qū)分服務(wù)思想的擁塞控制機(jī)制不能滿足WSN上進(jìn) 行擁塞控制所要求的低丟包率和公平性的要求。開放源代碼的傳感器網(wǎng)絡(luò)操作系統(tǒng)TinyOS中附帶有一個分布式應(yīng)用程 序Surge,該程序中數(shù)據(jù)流源節(jié)點通過檢查發(fā)送隊列是否溢出和隊列等待時 間是否過長來判定是否出現(xiàn)了網(wǎng)^^塞,如果出現(xiàn)了網(wǎng)絡(luò)擁塞,源節(jié)點就丟 棄掉一個剛產(chǎn)生的數(shù)據(jù)報文。但是,該程序中只有數(shù)據(jù)流源節(jié)點才能比較隊列等待時間,而一般的路由節(jié)點只能通過隊列溢出來推斷網(wǎng)絡(luò)擁塞情況。該 程序中,各網(wǎng)絡(luò)節(jié)點各自獨立地進(jìn)行擁塞監(jiān)測和擁塞抑制操作,難以保證每 個數(shù)據(jù)流都有一定比例的數(shù)據(jù)報文成功傳輸?shù)交?。發(fā)明內(nèi)容本發(fā)明的目的是克服現(xiàn)有的網(wǎng)絡(luò)擁塞控制方法丟包率較高,公平性不
足的缺陷,從而提供一種丟包率低,且公平可靠的傳感器網(wǎng)絡(luò)擁塞控制方 法。為了實現(xiàn)上述目的,本發(fā)明提供了一種傳感器網(wǎng)絡(luò)擁塞控制方法,應(yīng)用于無線傳感器網(wǎng)絡(luò)中的網(wǎng)絡(luò)節(jié)點,包括步驟1)、網(wǎng)絡(luò)節(jié)點對本節(jié)點的節(jié)點門限值和報文周期數(shù)的值做初始化;步驟2)、網(wǎng)絡(luò)節(jié)點開始一個報文周期,生成一個新的本地數(shù)據(jù)報文, 并根據(jù)所述數(shù)據(jù)報文的序列號得到它的報文優(yōu)先級;步驟3)、對新生成的本地數(shù)據(jù)報文做網(wǎng)絡(luò)擁塞判斷,在發(fā)生網(wǎng)絡(luò)擁塞 的前提下,將本節(jié)點的報文周期數(shù)清零,增加本節(jié)點的門限值,調(diào)整發(fā)送 隊列,并向鄰居節(jié)點廣播新的門限值;步驟4)、對網(wǎng)絡(luò)節(jié)點是否收到其他網(wǎng)絡(luò)節(jié)點所發(fā)送的數(shù)據(jù)報文進(jìn)行判 斷,如果收到數(shù)據(jù)報文,執(zhí)行下一步,否則,執(zhí)行步驟6);步驟5)、對所收到的數(shù)據(jù)報文做網(wǎng)絡(luò)擁塞判斷,在發(fā)生網(wǎng)絡(luò)擁塞的前 提下,將本節(jié)點的報文周期數(shù)清零,增加本節(jié)點的門限值,調(diào)整發(fā)送隊列, 并向鄰居節(jié)點廣播新的門限值;步驟6)、判斷是否收到了鄰居節(jié)點所發(fā)送的廣播消息,若收到了廣播 消息且廣播消息中所包含的節(jié)點門限值高于本節(jié)點的門限值,則按照廣播 消息中的節(jié)點門限值調(diào)高本節(jié)點的門限值,調(diào)整發(fā)送隊列,將本節(jié)點的報 文周期數(shù)清零,并廣播新的節(jié)點門限值;步驟7 )、判斷本輪報文周期的終止時刻是否已經(jīng)到達(dá),如果已經(jīng)到達(dá), 則執(zhí)行下一步,否則重新執(zhí)行步驟4);步驟8)、判斷本節(jié)點的報文周期數(shù)是否低于一個規(guī)定值,如果低于則 將增加報文周期數(shù)后,重新執(zhí)行步驟2),否則將報文周期數(shù)清零后,減少 節(jié)點門限值,然后重新執(zhí)行步驟2 )。上述技術(shù)方案中,所述網(wǎng)絡(luò)節(jié)點為無線傳感器節(jié)點或無線路由節(jié)點。所述網(wǎng)絡(luò)節(jié)點為無線路由節(jié)點時,在所述步驟2)中生成的數(shù)據(jù)報文 為虛擬數(shù)據(jù)報文,虛擬數(shù)據(jù)報文的特征是報文中傳感器數(shù)據(jù)字段為空值, 且當(dāng)虛擬報文到達(dá)發(fā)送隊列頭部時,僅僅被從發(fā)送隊列中刪除掉,而無需 被無線路由節(jié)點發(fā)送到實際網(wǎng)絡(luò)中。上述技術(shù)方案中,所述的根據(jù)數(shù)據(jù)報文序列號得到它的報文優(yōu)先級是指 將所述數(shù)據(jù)報文的序列號用二進(jìn)制法表示,然后將用二進(jìn)制表示的序列號從最低有效位開始依次檢查第0位至第7位的數(shù)值,將第一次出現(xiàn)數(shù) 值1的位數(shù)作為所述數(shù)據(jù)報文的優(yōu)先級。上述技術(shù)方案中,在所述的步驟3)中,對新生成的本地數(shù)據(jù)報文做 網(wǎng)絡(luò)擁塞判斷是指根據(jù)所述新生成的本地數(shù)據(jù)報文的優(yōu)先級與所述網(wǎng)絡(luò)節(jié)點的門限值 的比較結(jié)果,本地數(shù)據(jù)報文滯留數(shù)目與數(shù)據(jù)流帶寬權(quán)值的比較結(jié)果,以及 網(wǎng)絡(luò)節(jié)點發(fā)送隊列的空滿情況,判斷所述網(wǎng)絡(luò)節(jié)點是否發(fā)生了網(wǎng)絡(luò)擁塞。上述技術(shù)方案中,所述的對新生成的本地數(shù)據(jù)報文做網(wǎng)絡(luò)擁塞判斷包 括以下步驟步驟3-l )、將所述新生成的本地數(shù)據(jù)報文的優(yōu)先級與所述網(wǎng)絡(luò)節(jié)點的 當(dāng)前門限值進(jìn)行比較,如果所述數(shù)據(jù)報文優(yōu)先級小于門限值,則執(zhí)行下一 步,否則,執(zhí)行步驟3-3);步驟3-2)、丟棄新生成的數(shù)據(jù)報文后,執(zhí)行步驟3-6);步驟3-3 )、將本節(jié)點發(fā)送隊列中數(shù)據(jù)報文的滯留數(shù)目與節(jié)點的數(shù)據(jù)流 帶寬權(quán)值進(jìn)行比較,如果數(shù)據(jù)報文的滯留數(shù)目大于或等于數(shù)據(jù)流的帶寬權(quán) 值,則執(zhí)行步驟3-7),否則,執(zhí)行下一步;步驟3-4)、判斷本節(jié)點的發(fā)送隊列是否已滿,如果已滿,則執(zhí)行步驟 3-7),否則,執(zhí)行下一步;步驟3-5 )、將新生成的數(shù)據(jù)報文排入發(fā)送隊列中;步驟3-6)、沒有發(fā)生網(wǎng)絡(luò)擁塞現(xiàn)象,將這一結(jié)果返回后結(jié)束網(wǎng)絡(luò)擁塞 檢測,執(zhí)行步驟4);步驟3-7)、丟棄新生成的數(shù)據(jù)報文;步驟3-8)、發(fā)生了網(wǎng)絡(luò)擁塞現(xiàn)象,將這一結(jié)果返回后結(jié)束網(wǎng)絡(luò)擁塞檢測。上述技術(shù)方案中,所述數(shù)據(jù)流的帶寬權(quán)值表示了數(shù)據(jù)流發(fā)送數(shù)據(jù)報文 能力的大小,帶寬權(quán)值越高,則數(shù)據(jù)流發(fā)送數(shù)據(jù)報文的速度越快。 上述技術(shù)方案中,所述數(shù)據(jù)流的帶寬權(quán)值可動態(tài)調(diào)整。 上述技術(shù)方案中,在所述的步驟5)中,對所收到的數(shù)據(jù)報文做網(wǎng)絡(luò) 擁塞判斷是指根據(jù)所述所收到的數(shù)據(jù)報文的優(yōu)先級與所述網(wǎng)絡(luò)節(jié)點的門限值的比 較結(jié)果,以及網(wǎng)絡(luò)節(jié)點發(fā)送隊列的空滿情況,判斷所述網(wǎng)絡(luò)節(jié)點是否發(fā)生
了網(wǎng)絡(luò)擁塞。上述技術(shù)方案中,所述的對所收到的數(shù)據(jù)報文做網(wǎng)絡(luò)擁塞判斷包括以下步驟步驟5-1 )、將所收到的數(shù)據(jù)報文的優(yōu)先級與所述網(wǎng)絡(luò)節(jié)點的門限值進(jìn) 行比較,如果所述數(shù)據(jù)報文優(yōu)先級小于門限值,則執(zhí)行下一步,否則,執(zhí) 行步驟5-3 );步驟5-2)、丟棄所收到的數(shù)據(jù)報文,執(zhí)行步驟5-5);步驟5-3)、判斷本節(jié)點的發(fā)送隊列是否已滿,如果已滿,執(zhí)行步驟 5-6),否則,執(zhí)行下一步;步驟5-4 )、將所收到的數(shù)據(jù)報文送入發(fā)送隊列中;步驟5-5)、沒有發(fā)生網(wǎng)絡(luò)擁塞現(xiàn)象,將這一結(jié)果返回后結(jié)束網(wǎng)絡(luò)擁塞 檢測,執(zhí)行步驟6);步驟5-6)、丟棄所收到的數(shù)據(jù)報文;步驟5-7)、發(fā)生了網(wǎng)絡(luò)擁塞現(xiàn)象,將這一結(jié)果返回后結(jié)束網(wǎng)絡(luò)擁塞檢測。上述技術(shù)方案中,在所述的步驟3)、步驟5)、步驟6)中,所述的調(diào) 整發(fā)送隊列是指刪除發(fā)送隊列中報文優(yōu)先級小于當(dāng)前最新節(jié)點門限值的 數(shù)據(jù)纟艮文。本發(fā)明具有以下優(yōu)點1、 在現(xiàn)有技術(shù)中,只有數(shù)據(jù)源節(jié)點才能通過比較隊列等待時間和報 文周期的大小來進(jìn)行網(wǎng)絡(luò)擁塞判斷,而本發(fā)明的傳感器網(wǎng)絡(luò)擁塞控制方法 引入了虛擬數(shù)據(jù)流概念,使得路由節(jié)點和數(shù)據(jù)源節(jié)點都能夠比較隊列等待 時間和報文周期的大小,與現(xiàn)有技術(shù)相比,本發(fā)明能夠更有效地對全網(wǎng)擁 塞狀況進(jìn)行檢測。2、 在Internet上區(qū)分服務(wù)中,當(dāng)發(fā)現(xiàn)網(wǎng)絡(luò)擁塞時路由節(jié)點只是被動丟 棄一些優(yōu)先級低的報文,這樣導(dǎo)致網(wǎng)絡(luò)的中途丟報率很高,浪費了節(jié)點通 信能量、縮短了網(wǎng)絡(luò)壽命。而在本發(fā)明中,當(dāng)某個網(wǎng)絡(luò)節(jié)點率先發(fā)現(xiàn)網(wǎng)絡(luò) 擁塞后,將會通過廣播通知所有節(jié)點同步提高報文過濾標(biāo)準(zhǔn)(節(jié)點門限 值),這樣就使得源節(jié)點流量準(zhǔn)入控制和路由節(jié)點報文丟包兩種措施相配 合,從而既能控制網(wǎng)絡(luò)流量總負(fù)載,又能降低中途丟報率。3、 本發(fā)明中,全網(wǎng)節(jié)點同步地調(diào)整門限值, 一個報文僅當(dāng)其優(yōu)先級 高于節(jié)點門限值時才能被發(fā)送(或被轉(zhuǎn)發(fā))到網(wǎng)絡(luò)中。本發(fā)明中提出一種
指數(shù)型的報文優(yōu)先級標(biāo)定方法,使用這種標(biāo)定方法, 一個數(shù)據(jù)流中各種優(yōu)先級的報文都占有適當(dāng)?shù)谋壤?;每?dāng)節(jié)點門限值提高一個等級, 一個節(jié)點 所產(chǎn)生的報文流中能夠通過門限值過濾的報文數(shù)量則會減少一半。采用這 種報文優(yōu)先級標(biāo)定與節(jié)點門限值使用方法,無論網(wǎng)絡(luò)是否發(fā)生過擁塞,每 個數(shù)據(jù)流都有 一定比例的報文被傳輸?shù)交?,從而保證了節(jié)點間的公平 性。Internet上TCP等網(wǎng)絡(luò)流量控制方法中,對網(wǎng)絡(luò)流量采取細(xì)粒度調(diào)節(jié) 策略,但是控制報文的使用量非常大。在本發(fā)明中,借助于指數(shù)型優(yōu)先級 標(biāo)定算法和節(jié)點門限值過濾報文機(jī)制,本發(fā)明對數(shù)據(jù)流量實現(xiàn)了粗粒度、 階梯式調(diào)節(jié),即使在擁塞程度變化較大的場景中對控制消息的使用量也很 少。4、在傳統(tǒng)的區(qū)分服務(wù)機(jī)制中, 一個數(shù)據(jù)流中所有報文被賦予相同的 優(yōu)先級,當(dāng)發(fā)生網(wǎng)絡(luò)擁塞時,路由節(jié)點上只轉(zhuǎn)發(fā)優(yōu)先級高的數(shù)據(jù)流而不轉(zhuǎn) 發(fā)優(yōu)先級低的數(shù)據(jù)流,在照顧高優(yōu)先級數(shù)據(jù)流的同時卻不能讓低優(yōu)先級數(shù) 據(jù)流獲得一個較低的帶寬保證?,F(xiàn)有技術(shù)在比較報文周期和隊列等待時間 的方法中,每個節(jié)點都是使用本節(jié)點所產(chǎn)生數(shù)據(jù)流的報文周期,當(dāng)消除了 網(wǎng)絡(luò)擁塞后所有源節(jié)點向網(wǎng)絡(luò)注入報文的速度相近,其帶寬分配結(jié)果不能 體現(xiàn)出各數(shù)據(jù)流重要度的差異性。本發(fā)明中,定義帶寬權(quán)值為l數(shù)據(jù)流的 報文周期作為一個標(biāo)準(zhǔn)周期, 一個標(biāo)準(zhǔn)周期內(nèi)帶寬權(quán)值為W的數(shù)據(jù)流將 產(chǎn)生W個數(shù)據(jù)報文,各節(jié)點比較標(biāo)準(zhǔn)周期(而不是自己實際的報文周期) 與發(fā)送隊列等待時間來判斷擁塞情況。釆用這種新方法,可以保證所有節(jié) 點的隊列等待時間具有相同的約束范圍;可以給各數(shù)據(jù)流按照帶寬權(quán)值分 配相應(yīng)比例的網(wǎng)絡(luò)帶寬,保證數(shù)據(jù)流的帶寬權(quán)值越高,則該數(shù)據(jù)流向網(wǎng)絡(luò) 發(fā)送數(shù)據(jù)報文的速度就越快。


以下,結(jié)合附圖來詳細(xì)說明本發(fā)明的實施例,其中圖1為無線傳感器網(wǎng)絡(luò)系統(tǒng)的結(jié)構(gòu)示意圖;圖2為報文序列號和優(yōu)先級的對應(yīng)關(guān)系圖;圖3為本發(fā)明中節(jié)點所執(zhí)行的報文優(yōu)先級標(biāo)定方法的示意圖;圖4為對新產(chǎn)生的本地數(shù)據(jù)報文進(jìn)行網(wǎng)絡(luò)擁塞判斷的流程圖;圖5為對要轉(zhuǎn)發(fā)的數(shù)據(jù)報文進(jìn)行網(wǎng)絡(luò)擁塞判斷的流程圖6為網(wǎng)絡(luò)節(jié)點進(jìn)行網(wǎng)絡(luò)擁塞控制的示意圖。
具體實施方式
下面結(jié)合附圖和具體實施方式
對本發(fā)明的傳感器網(wǎng)絡(luò)擁塞控制方法 進(jìn)行說明。本發(fā)明的傳感器網(wǎng)絡(luò)擁塞控制方法是一種可應(yīng)用于無線傳感器網(wǎng)絡(luò) 上的各個網(wǎng)絡(luò)節(jié)點的分布式算法,各網(wǎng)絡(luò)節(jié)點動態(tài)監(jiān)測網(wǎng)絡(luò)擁塞狀況,并 相互協(xié)作地調(diào)節(jié)網(wǎng)絡(luò)流量從而達(dá)到擁塞控制的目的。本發(fā)明方法分為兩個方面, 一是擁塞檢測操作,二是擁塞控制操作。擁塞檢測操作的基本思想是通過判斷發(fā)送隊列是否溢出,或者隊列等 待時間是否過長,來決定是否發(fā)生了網(wǎng)絡(luò)擁塞現(xiàn)象。在背景技術(shù)中曾經(jīng)提 到,在現(xiàn)有技術(shù)中,只有數(shù)據(jù)流源節(jié)點才能比較隊列等待時間,而一般的 路由節(jié)點只能通過隊列溢出來推斷網(wǎng)絡(luò)擁塞情況。但在無線網(wǎng)絡(luò)中,物理信 道是共享的,因此發(fā)生擁塞時往往是一片區(qū)域內(nèi)節(jié)點之間的邏輯鏈路出現(xiàn)超 載現(xiàn)象,而路由節(jié)點的發(fā)送隊列本身不一定快速增長或立即溢出,因此,單 獨使用隊列溢出標(biāo)志可能無法及時發(fā)現(xiàn)網(wǎng)絡(luò)擁塞情況。與^目比,對于周期 性的數(shù)據(jù)流,釆用比較隊列等待時間進(jìn)行擁塞檢測的方法中,每當(dāng)節(jié)點產(chǎn)生 一個新的本地報文時,如果前一個周期排入發(fā)送隊列的報文(包括本地報文 和轉(zhuǎn);^i艮文)仍滯留在發(fā)送隊列中,沒有^皮發(fā)送到網(wǎng)絡(luò),則說明此時網(wǎng)絡(luò)月l 務(wù)延遲過大、超過了報文周期,認(rèn)為發(fā)生了網(wǎng)絡(luò)擁塞。通過比較隊列等待時 間的方法可以在一個報文周期內(nèi)迅速發(fā)現(xiàn)擁塞情況。鑒于比較隊列等待時間進(jìn)行擁塞檢測的方法所具有的優(yōu)點,在本發(fā)明的 擁塞檢測操作中,在路由節(jié)點中采用了虛擬數(shù)據(jù)流的概念,從而使得路由節(jié) 點也能夠通過比較隊列等待時間進(jìn)行擁塞檢測操作。在擁塞檢測時,路由節(jié) 點會產(chǎn)生一個虛擬的數(shù)據(jù)流,并通過比較自己的發(fā)送隊列等待時間與虛擬數(shù) 據(jù)流的報文產(chǎn)生周期來實現(xiàn)擁塞檢測。虛擬數(shù)據(jù)流的特點是虛擬報文首先 被排入發(fā)送隊列隊尾,當(dāng)虛擬報文被移動到隊頭時,不會^^送到實際網(wǎng)絡(luò) 中,而是被丟棄(發(fā)送到虛擬網(wǎng)絡(luò))。虛擬數(shù)據(jù)流只是用于檢查網(wǎng)絡(luò)擁塞情 況,而不占用實際網(wǎng)絡(luò)帶寬。對虛擬數(shù)據(jù)流在擁塞4全測時所要完成的具體操 作將在后續(xù)的介紹中做詳細(xì)說明。擁塞控制的基本思想是采用報文優(yōu)先級和節(jié)點門限值相結(jié)合的方法來 過濾才艮文、抑制網(wǎng)絡(luò)流量,并同步調(diào)整全網(wǎng)節(jié)點的門限值,以實現(xiàn)對網(wǎng)絡(luò)流 量總負(fù)載的控制。鑒于報文優(yōu)先級和節(jié)點門P艮值是擁塞控制過程中的關(guān)鍵技 術(shù)特征,下面首先對報文優(yōu)先級和節(jié)點門限值進(jìn)行詳細(xì)說明。報文優(yōu)先級是一個用于表示數(shù)據(jù)報文傳輸優(yōu)先等級的數(shù)值,數(shù)據(jù)報文 在生成時獲得一個優(yōu)先級,該數(shù)據(jù)報文在無線傳感器網(wǎng)絡(luò)中傳輸時,它的優(yōu)先級大小保持不變。圖3對本發(fā)明中的報文優(yōu)先級標(biāo)定方法做了說明, 在每個網(wǎng)絡(luò)節(jié)點中都獨立維護(hù)一個SeqNo (報文序列號)狀態(tài)值,SeqNo 的初始值為0。每當(dāng)節(jié)點產(chǎn)生一個報文時,SeqNo的值力口 1,并根據(jù)SeqNo 的當(dāng)前值為新產(chǎn)生的報文標(biāo)定優(yōu)先級。針對SeqNo的二進(jìn)制表示法,從最 低有效位開始依次;險查第0位至第7位的數(shù)值,假設(shè)第一次出現(xiàn)數(shù)值1的 是第i位,則將i做為數(shù)據(jù)報文的優(yōu)先級;如果各位上都是數(shù)值O,則數(shù)據(jù) 報文的優(yōu)先級定為8。如圖3所示,在SeqNo的二進(jìn)制表示法中,以"1" 結(jié)尾的報文的優(yōu)先級為"0",以"10"結(jié)尾的報文的優(yōu)先級為T,以"100" 結(jié)尾的報文的優(yōu)先級為"2",以"1000"結(jié)尾的報文的優(yōu)先級為"3",以 "10000"結(jié)尾的報文的優(yōu)先級為"4",以"100000"結(jié)尾的報文的優(yōu)先 級為"5",以"1000000"結(jié)尾的報文的優(yōu)先級為"6", SeqNo為"10000000" 的報文的優(yōu)先級為"7", SeqNo為"00000000"的報文的優(yōu)先級為"8"。 通過上述方法,就可以為每個數(shù)據(jù)報文確定優(yōu)先級大小。圖2給出了根據(jù) 上述優(yōu)先級標(biāo)定方法計算出的部分報文序列號和優(yōu)先級間的對應(yīng)關(guān)系。從 圖中可以看出,使用這種優(yōu)先級標(biāo)定方法, 一個數(shù)據(jù)流中各種優(yōu)先級的報 文都占有適當(dāng)?shù)谋壤?,并且時間間隔均勻。如果用優(yōu)先級作為過濾報文的 門檻,每當(dāng)門搵提高一個等級, 一個節(jié)點所產(chǎn)生的報文流中能夠通過門搵 的報文數(shù)量則會減少 一半。節(jié)點門限值是一個用于與報文優(yōu)先級進(jìn)行比較的值,因此,節(jié)點門限 值的取值范圍與報文優(yōu)先級的取值范圍相同。網(wǎng)絡(luò)節(jié)點在初始化時將自身 的門限值標(biāo)定為0;在以后的運行過程中,每當(dāng)網(wǎng)絡(luò)節(jié)點發(fā)現(xiàn)網(wǎng)絡(luò)擁塞, 就把自己的門限值增加1。當(dāng)一個網(wǎng)絡(luò)節(jié)點新產(chǎn)生一個報文或者收到轉(zhuǎn)發(fā) 報文時,如果報文優(yōu)先級低于節(jié)點門限值,則該報文將不允許被發(fā)送到網(wǎng) 絡(luò)中;如果報文優(yōu)先級高于或者等于節(jié)點門限值,才允許該報文排到發(fā)送 隊列中。節(jié)點門限值的維護(hù)方法為當(dāng)發(fā)現(xiàn)網(wǎng)絡(luò)擁塞時,逐漸增加各節(jié)點 的門限值,節(jié)點門限值增加l,網(wǎng)絡(luò)流量則減少一半,由于門限值的過濾, 節(jié)點發(fā)送報文的數(shù)量將逐漸減少,從而使網(wǎng)絡(luò)擁塞得到緩解,直至網(wǎng)絡(luò)擁 塞完全解除,節(jié)點的門限值才得以穩(wěn)定。當(dāng)無線信道的利用率大幅度下降
時,全網(wǎng)節(jié)點可以同步地降低門限值(最低降到0),節(jié)點門限值每減少1,
網(wǎng)絡(luò)流量則增加一倍,從而使無線信道的利用率恢復(fù)到較高的水平。每當(dāng)
發(fā)現(xiàn)擁塞時,節(jié)點的門限值能夠快速增加,直到擁塞消失為止;當(dāng)沒有擁 塞時,經(jīng)過較長的一段時間,節(jié)點才嘗試將門限值減1。如果減少門限值 后沒有引發(fā)擁塞,則節(jié)點就穩(wěn)定在新門限值上;如果減少門限值后網(wǎng)絡(luò)出 現(xiàn)擁塞,則會通過擁塞控制方法很快地恢復(fù)到節(jié)點原來的門限值。按照上 述報文優(yōu)先級標(biāo)定法與節(jié)點門限值維護(hù)方法,無論網(wǎng)絡(luò)是否發(fā)生擁塞,每 個數(shù)據(jù)流都有一定比例的報文被傳輸?shù)交?,從而保證了節(jié)點間的公平 性。
在網(wǎng)絡(luò)節(jié)點的擁塞控制過程中,網(wǎng)絡(luò)節(jié)點上的數(shù)據(jù)流都有一個帶寬權(quán) 值,它代表了數(shù)據(jù)流發(fā)送數(shù)據(jù)報文能力的大小,在無線傳感器網(wǎng)絡(luò)中,數(shù) 據(jù)流的帶寬權(quán)值越高,則其發(fā)送數(shù)據(jù)報文的速度就越快。帶寬權(quán)值的取值 范圍為區(qū)間[l, 128]中的整數(shù),它的缺省值為1。若M^定帶寬權(quán)值為1的 數(shù)據(jù)流產(chǎn)生報文的周期為一個標(biāo)準(zhǔn)報文周期,則在一個標(biāo)準(zhǔn)報文周期內(nèi), 帶寬權(quán)值為W的數(shù)據(jù)流將產(chǎn)生W個數(shù)據(jù)報文,相應(yīng)的,帶寬權(quán)值為W的 數(shù)據(jù)流所產(chǎn)生的數(shù)據(jù)報文的實際報文周期為1/W個標(biāo)準(zhǔn)報文周期。在本發(fā) 明中,節(jié)點通過比較標(biāo)準(zhǔn)報文周期(而不是自己的實際報文周期)與發(fā)送 隊列等待時間來判斷擁塞情況。如果一個節(jié)點產(chǎn)生的數(shù)據(jù)流的帶寬權(quán)值為 W,則該節(jié)點允許發(fā)送隊列所積壓的最大本地報文數(shù)量為W;每當(dāng)節(jié)點產(chǎn) 生一個新的本地報文時,將檢查發(fā)送隊列,如果發(fā)送隊列中積壓的報文數(shù) 量達(dá)到了允許的最大值W,說明隊列等待時間超過了標(biāo)準(zhǔn)周期,則認(rèn)為發(fā) 生了擁塞,并丟棄新產(chǎn)生的報文。采用上述判定方法,可以保證所有節(jié)點 的隊列等待時間具有相同的約束范圍;同時可以保證數(shù)據(jù)流的帶寬權(quán)值越 高,則該數(shù)據(jù)流向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)報文的速度就越快。
本發(fā)明為應(yīng)用層程序提供了一個配置接口 ,允許根據(jù)具體應(yīng)用的特 點,動態(tài)調(diào)整數(shù)據(jù)流的帶寬權(quán)值。例如,在森林防火應(yīng)用中,溫度低于20°C 的地理區(qū)域內(nèi)產(chǎn)生的數(shù)據(jù)流帶寬權(quán)值為1,溫度超過70。C,產(chǎn)生火警預(yù)報 的地理區(qū)域內(nèi)產(chǎn)生的數(shù)據(jù)流帶寬權(quán)值則為5。當(dāng)一個地理區(qū)域內(nèi)的溫度由 70。C逐漸轉(zhuǎn)為正常時,該區(qū)域內(nèi)數(shù)據(jù)流的帶寬權(quán)值相應(yīng)地由5逐漸降為1。 環(huán)境監(jiān)測網(wǎng)絡(luò)運行一段時間后,位置相鄰的節(jié)點的門限值將趨于一致,帶 寬權(quán)值相同的數(shù)據(jù)流向網(wǎng)絡(luò)注入報文的速度也趨于一致,帶寬權(quán)值分別為 W與1的數(shù)據(jù)流向網(wǎng)絡(luò)注入數(shù)據(jù)報文的速度相差約W倍。
通過上述報文優(yōu)先級、節(jié)點門限值以及數(shù)據(jù)流帶寬權(quán)值三者的綜合應(yīng) 用,本發(fā)明可實現(xiàn)對無線傳感器網(wǎng)絡(luò)的擁塞控制。
下面以圖1中的無線傳感器網(wǎng)絡(luò)為例,對本發(fā)明的方法進(jìn)行詳細(xì)說明。 在本實施例中,主要對無線傳感器節(jié)點的完整工作流程進(jìn)行說明,對于路 由節(jié)點中所要完成的操作只對與無線傳感器節(jié)點中不同之處進(jìn)行說明。
對于無線傳感器網(wǎng)絡(luò)中的一個無線傳感器節(jié)點,假設(shè)無線傳感器節(jié)點
上的數(shù)據(jù)流帶寬權(quán)值為3,則該節(jié)點的實際報文周期相當(dāng)于1/3標(biāo)準(zhǔn)報文 周期。它在一個實際報文周期內(nèi)不僅要完成采集數(shù)據(jù)并生成數(shù)據(jù)報文的操 作,還有可能要轉(zhuǎn)發(fā)其它網(wǎng)絡(luò)節(jié)點所發(fā)送的數(shù)據(jù)報文。對于無線傳感器節(jié) 點, 一個實際報文周期內(nèi)只產(chǎn)生一個本地報文,可以轉(zhuǎn)發(fā)O個或者多個報 文。例如,圖1中最左邊的三個傳感器節(jié)點就不轉(zhuǎn)發(fā)報文,而圖1中三個 路由節(jié)點在一個實際報文周期內(nèi)均要轉(zhuǎn)發(fā)多個數(shù)據(jù)報文。如圖6所示,傳 感器節(jié)點的具體工作流程如下
步驟601、無線傳感器節(jié)點在開始工作時,分別將節(jié)點門限值和報文 周期數(shù)的值初始化為0。在本步驟中,所涉及到的報文周期數(shù)表示了從上 次調(diào)整節(jié)點門限值以來所經(jīng)歷的時間。在前面的描述中已經(jīng)提到,報文周 期可分為標(biāo)準(zhǔn)報文周期和實際報文周期(標(biāo)準(zhǔn)報文周期/數(shù)據(jù)流帶寬權(quán)值), 本步驟中所描述的報文周期數(shù)為節(jié)點所經(jīng)歷的實際報文周期的數(shù)目。
步驟602、開始一個報文周期,無線傳感器節(jié)點釆集到數(shù)據(jù)后,生成 一個新的本地數(shù)據(jù)報文。在前面的描述中已經(jīng)提到,生成一個新的數(shù)據(jù)報 文的同時將得到該數(shù)據(jù)報文的報文優(yōu)先級,報文優(yōu)先級的獲取在前文中已 經(jīng)有詳細(xì)說明,在本步驟中不再做詳細(xì)說明。在本步驟以及后續(xù)步驟中所 提到的報文周期是與節(jié)點的數(shù)據(jù)流帶寬權(quán)值相關(guān)的實際報文周期,而不是 標(biāo)準(zhǔn)報文周期。
步驟603、對所生成的新的本地數(shù)據(jù)報文進(jìn)行網(wǎng)絡(luò)擁塞判斷,若發(fā)生 網(wǎng)絡(luò)擁塞,則執(zhí)行下一步,否則執(zhí)行步驟605;
參考圖4,對新產(chǎn)生的本地數(shù)據(jù)報文進(jìn)行網(wǎng)絡(luò)擁塞判斷的具體實現(xiàn)過 程進(jìn)行說明。
步驟401、將新生成的本地數(shù)據(jù)報文的優(yōu)先級與無線傳感器節(jié)點的當(dāng) 前門限值進(jìn)行比較,如果優(yōu)先級小于門限值,則執(zhí)行下一步,否則,執(zhí)行 步驟403;
步驟402、丟棄新生成的數(shù)據(jù)報文后,執(zhí)行步驟406;
步驟403、將本節(jié)點發(fā)送隊列中本地所產(chǎn)生數(shù)據(jù)報文(非轉(zhuǎn)發(fā)報文) 的滯留數(shù)目與該節(jié)點的數(shù)據(jù)流帶寬權(quán)值進(jìn)行比較,如果數(shù)據(jù)報文的滯留數(shù) 目大于或等于數(shù)據(jù)流的帶寬權(quán)值,則說明隊列等待時間過長、超過了標(biāo)準(zhǔn) 報文周期,所以執(zhí)行步驟407,否則,執(zhí)行下一步;
由于在本實施例中,數(shù)據(jù)流的帶寬權(quán)值為3,則只要無線傳感器節(jié)點 中所滯留的數(shù)據(jù)報文數(shù)超過或等于3,就要丟棄新生成的報文。
步驟404、判斷本節(jié)點的發(fā)送隊列是否已滿,如果已滿,則執(zhí)行步驟 407,否則,執(zhí)行下一步;
步驟405、將新生成的數(shù)據(jù)報文排入發(fā)送隊列中;
步驟406、沒有發(fā)生網(wǎng)絡(luò)擁塞現(xiàn)象,將這一結(jié)果返回后結(jié)束網(wǎng)絡(luò)擁塞 檢測,執(zhí)行步驟605;
步驟407、丟棄新生成的數(shù)據(jù)報文;
步驟408、發(fā)生了網(wǎng)絡(luò)擁塞現(xiàn)象,將這一結(jié)果返回后結(jié)束網(wǎng)絡(luò)擁塞檢 測,執(zhí)行步驟604。
步驟604、將本節(jié)點的門限值加1,調(diào)整發(fā)送隊列,然后向周圍節(jié)點 廣播本節(jié)點的門限值,并將報文周期數(shù)的值清零。
在本步驟中,所述的調(diào)整發(fā)送隊列是指刪除隊列中報文優(yōu)先級小于當(dāng) 前最新節(jié)點門限值的數(shù)據(jù)報文。這是由于,每當(dāng)發(fā)生了網(wǎng)絡(luò)擁塞現(xiàn)象就要 提高節(jié)點門限值,提高節(jié)點門限值后,那些報文優(yōu)先級小于新節(jié)點門限值 的數(shù)據(jù)報文將被阻止進(jìn)入網(wǎng)絡(luò),因此,需要將那些報文提前從發(fā)送隊列中 刪除。
在無線網(wǎng)絡(luò)中,節(jié)點間共享無線信道, 一個節(jié)點如果過快地發(fā)送報文 將會導(dǎo)致其鄰近節(jié)點都感覺到信道擁塞, 一種保障公平性的方法是讓相互 鄰近節(jié)點間的門限值接近、占用信道的程度接近。因此,在本步驟中,各 節(jié)點每次調(diào)整自己的門限值時,都會使用廣播消息報文將自己的最新門限 值向所有鄰居節(jié)點廣播。每節(jié)點收到一個相鄰節(jié)點發(fā)來的消息報文后,將 相應(yīng)調(diào)整自己的門限值,向鄰居節(jié)點的最高門限值對齊。節(jié)點門限值的取 值空間越大,為了讓所有節(jié)點同步到同一個門限值所需要的控制消息量就 越多。因此,本發(fā)明為了減少節(jié)點間控制消息報文的使用次數(shù),對流量進(jìn) 行的是粗粒度階梯式調(diào)節(jié),并將門限值取值范圍限制得很小,在前述的操 作中已經(jīng)對門限值的取值范圍進(jìn)行了說明,缺省情況下定義為0 8的整數(shù)。
步驟605、判斷無線傳感器節(jié)點是否有接收到其它網(wǎng)絡(luò)節(jié)點所發(fā)送的
數(shù)據(jù)報文,如果收到,則執(zhí)行下一步,否則執(zhí)行步驟608。
步驟606、對所要轉(zhuǎn)發(fā)的數(shù)據(jù)報文進(jìn)行網(wǎng)絡(luò)擁塞檢測,若存在網(wǎng)絡(luò)擁
塞,則執(zhí)行下一步,否則執(zhí)行步驟608。
在本步驟中,參考圖5,對轉(zhuǎn)發(fā)數(shù)據(jù)報文的網(wǎng)絡(luò)擁塞檢測進(jìn)行具體說

步驟501、將所要轉(zhuǎn)發(fā)的數(shù)據(jù)報文的優(yōu)先級與無線傳感器節(jié)點的門限 值進(jìn)行比較,如果報文優(yōu)先級小于門限值,則執(zhí)行下一步,否則,執(zhí)行步 驟503;
步驟502、丟棄所要轉(zhuǎn)發(fā)的數(shù)據(jù)報文,執(zhí)行步驟505; 步驟503、判斷本節(jié)點的發(fā)送隊列是否已滿,如果已滿,執(zhí)行步驟506, 否則,執(zhí)行下一步;
步驟504、將所要轉(zhuǎn)發(fā)的報文送入發(fā)送隊列中;
步驟505、沒有發(fā)生網(wǎng)絡(luò)擁塞現(xiàn)象,將這一結(jié)果返回后結(jié)束網(wǎng)絡(luò)擁塞 檢測,執(zhí)行步驟608;
步驟506、丟棄所要轉(zhuǎn)發(fā)的報文;
步驟507、發(fā)生了網(wǎng)絡(luò)擁塞現(xiàn)象,將這一結(jié)果返回后結(jié)束網(wǎng)絡(luò)擁塞檢 測,執(zhí)行步驟607。
步驟607、將本節(jié)點的門限值加1,調(diào)整發(fā)送隊列,然后向周圍節(jié)點 廣播本節(jié)點的門限值,并將報文周期數(shù)的值清零。
步驟608、判斷是否收到了鄰居節(jié)點所發(fā)送的廣播消息,并且廣播報 文中鄰居節(jié)點的門限值比本節(jié)點的門限值高。若收到這樣的廣播消息,執(zhí) 行下一步,否則,執(zhí)行步驟610;
步驟609、同步節(jié)點的門限值,將節(jié)點門限值調(diào)整為與鄰居節(jié)點的門 限值同樣高,調(diào)整發(fā)送隊列,將新的節(jié)點門限值以廣播的方式告知其它節(jié) 點,并將本地節(jié)點的報文周期數(shù)清零。
步驟610、判斷本輪報文周期的終止時刻是否已經(jīng)到達(dá),如果已經(jīng)到 達(dá),則執(zhí)行下一步,否則重新執(zhí)行步驟605;
步驟611、無線傳感器節(jié)點判斷報文周期數(shù)是否低于一個規(guī)定值,如 果是,則執(zhí)行下一步,否則執(zhí)行步驟613;
在本步驟中,所述的規(guī)定值可根據(jù)節(jié)點數(shù)據(jù)流的帶寬權(quán)值以及實際需 求而決定,在本實施例中,缺省值為100x本地數(shù)據(jù)流帶寬權(quán)值,在其他 實施例中,規(guī)定值也可以有其它的實現(xiàn)方式。本步驟中所采用的規(guī)定值的
目的是為了使無線傳感器網(wǎng)絡(luò)中的所有節(jié)點以相同的時間間隔來調(diào)低I、 1
限值。由于在本實施例中,本地數(shù)據(jù)流帶寬權(quán)值為3,所以本實施例中所 得到的報文周期數(shù)為300,同時,從前文可以知道,本實施例中的實際報 文周期相當(dāng)于1/3個標(biāo)準(zhǔn)報文周期,所以該缺省值所表示的時間間隔就是 100個標(biāo)準(zhǔn)報文周期所表示的時間間隔。對于無線傳感器網(wǎng)絡(luò)上的其它網(wǎng) 絡(luò)節(jié)點,由于數(shù)據(jù)流帶寬權(quán)值與實際報文周期間的反比關(guān)系,所以所有的 節(jié)點以相同的時間間隔來調(diào)4氐門限值。
步驟612、無線傳感器節(jié)點將報文周期數(shù)加1后,重新執(zhí)行步驟602;
步驟613、節(jié)點將報文周期數(shù)清零,將節(jié)點門限值減1 (但不允許減 成負(fù)數(shù)),然后轉(zhuǎn)入步驟602。
上述操作過程說明了無線傳感器節(jié)點的 一 個工作流程,下面對路由節(jié) 點的工作流程進(jìn)行說明。路由節(jié)點的擁塞控制工作流程可參照圖6所示的 流程圖,對擁塞檢測的工作流程可參照圖4和圖5所示的流程圖。鑒于路 由節(jié)點的工作流程與無線傳感器節(jié)點的工作流程大致上相同,下面只對兩 者間的不同點進(jìn)行詳細(xì)說明。
在前文中已經(jīng)提到,路由節(jié)點只具有轉(zhuǎn)發(fā)數(shù)據(jù)報文的功能,而不具有 采集數(shù)據(jù)并生成數(shù)據(jù)"^艮文的功能。為了使得路由節(jié)點也能夠通過比較隊列 等待時間進(jìn)行擁塞檢測,本發(fā)明在路由節(jié)點中采用了虛擬數(shù)據(jù)流的概念,讓 路由節(jié)點在每個標(biāo)準(zhǔn)報文周期中產(chǎn)生一個虛擬報文。和真正的數(shù)據(jù)報文相 比,虛擬報文中傳感器數(shù)據(jù)字段為空值。當(dāng)一個傳感器數(shù)據(jù)報文排到發(fā)送 隊列頭部時,將被從隊列中刪除,并被發(fā)送到實際網(wǎng)絡(luò)中。而當(dāng)一個虛擬 報文排到隊列頭部時,也會被從隊列中刪除,但是不會被發(fā)送到實際網(wǎng)絡(luò) 中。
步驟601、無線路由節(jié)點在開始工作時,分別將節(jié)點門限值和報文周 期數(shù)的值初始化為0。對于路由節(jié)點,本步驟中所描述的報文周期數(shù)為節(jié) 點所經(jīng)歷的虛擬數(shù)據(jù)流報文周期的數(shù)目。
步驟602、開始一個報文周期,無線路由節(jié)點生成一個新的虛擬數(shù)據(jù) 報文,同時使用虛擬數(shù)據(jù)流的報文序列號計算出該虛擬報文的報文優(yōu)先 級,對虛擬報文的報文優(yōu)先級計算與前述的報文優(yōu)先級計算方法相同,在 圖3中已有相應(yīng)的說明。在本步驟以及后續(xù)步驟中所提到的報文周期,指 與虛擬數(shù)據(jù)流相關(guān)的虛擬報文周期,與標(biāo)準(zhǔn)報文周期大小相等。
步驟603、對所生成的新的虛擬報文進(jìn)行網(wǎng)絡(luò)擁塞判斷,若發(fā)生網(wǎng)絡(luò)
擁塞,則執(zhí)行步驟604,否則執(zhí)行步驟605。
路由節(jié)點對新產(chǎn)生的虛擬報文進(jìn)行網(wǎng)絡(luò)擁塞判斷的具體過程亦如圖4 所示,對路由節(jié)點而言,圖4中的新報文指的就是剛產(chǎn)生的虛擬報文;發(fā) 送隊列中滯留的本地報文指的就是滯留在發(fā)送隊列的虛擬報文。如圖4步 驟405所示,在當(dāng)前沒發(fā)現(xiàn)網(wǎng)絡(luò)擁塞的情況下,新產(chǎn)生的虛擬報文就會被 排入發(fā)送隊列中。
除了上述幾點差別,路由節(jié)點中工作流程的其它步驟,可以參見前面 對無線傳感器節(jié)點工作流程的描述,此處就不再進(jìn)行詳細(xì)說明。
權(quán)利要求
1、一種傳感器網(wǎng)絡(luò)擁塞控制方法,應(yīng)用于無線傳感器網(wǎng)絡(luò)中的網(wǎng)絡(luò)節(jié)點,包括步驟1)、網(wǎng)絡(luò)節(jié)點對本節(jié)點的節(jié)點門限值和報文周期數(shù)的值做初始化;步驟2)、網(wǎng)絡(luò)節(jié)點開始一個報文周期,生成一個新的本地數(shù)據(jù)報文,并得到它的報文優(yōu)先級;步驟3)、對新生成的本地數(shù)據(jù)報文做網(wǎng)絡(luò)擁塞判斷,在發(fā)生網(wǎng)絡(luò)擁塞的前提下,將本節(jié)點的報文周期數(shù)清零,增加本節(jié)點的門限值,調(diào)整發(fā)送隊列,并向鄰居節(jié)點廣播新的門限值;步驟4)、對網(wǎng)絡(luò)節(jié)點是否收到其他網(wǎng)絡(luò)節(jié)點所發(fā)送的數(shù)據(jù)報文進(jìn)行判斷,如果收到數(shù)據(jù)報文,執(zhí)行下一步,否則,執(zhí)行步驟6);步驟5)、對所收到的數(shù)據(jù)報文做網(wǎng)絡(luò)擁塞判斷,在發(fā)生網(wǎng)絡(luò)擁塞的前提下,將本節(jié)點的報文周期數(shù)清零,增加本節(jié)點的門限值,調(diào)整發(fā)送隊列,并向鄰居節(jié)點廣播新的門限值;步驟6)、判斷是否收到了鄰居節(jié)點所發(fā)送的廣播消息,若收到了廣播消息且廣播消息中所包含的節(jié)點門限值高于本節(jié)點的門限值,則按照廣播消息中的節(jié)點門限值調(diào)高本節(jié)點的門限值,調(diào)整發(fā)送隊列,然后將本節(jié)點的報文周期數(shù)清零,并廣播新的節(jié)點門限值;步驟7)、判斷本輪報文周期的終止時刻是否已經(jīng)到達(dá),如果已經(jīng)到達(dá),則執(zhí)行下一步,否則重新執(zhí)行步驟4);步驟8)、判斷本節(jié)點的報文周期數(shù)是否低于一個規(guī)定值,如果低于則增加報文周期數(shù)后,重新執(zhí)行步驟2),否則將報文周期數(shù)清零后,降低節(jié)點門限值,然后重新執(zhí)行步驟2)。
2、 根據(jù)權(quán)利要求1所述的傳感器網(wǎng)絡(luò)擁塞控制方法,其特征在于, 所述網(wǎng)絡(luò)節(jié)點為無線傳感器節(jié)點或無線路由節(jié)點。
3、 根據(jù)權(quán)利要求2所述的傳感器網(wǎng)絡(luò)擁塞控制方法,其特征在于, 所述網(wǎng)絡(luò)節(jié)點為無線路由節(jié)點時,在所述步驟2)中生成的數(shù)據(jù)報文為虛 擬數(shù)據(jù)報文,虛擬數(shù)據(jù)報文的特征是報文中傳感器數(shù)據(jù)字段為空值,且 當(dāng)虛擬報文到達(dá)發(fā)送隊列頭部時,僅從發(fā)送隊列中刪除,而無需被無線路 由節(jié)點發(fā)送到實際網(wǎng)絡(luò)中。
4、 根據(jù)權(quán)利要求1所述的傳感器網(wǎng)絡(luò)擁塞控制方法,其特征在于, 所述的根據(jù)數(shù)據(jù)報文序列號得到它的報文優(yōu)先級是指將所述數(shù)據(jù)報文的序列號用二進(jìn)制法表示,然后將用二進(jìn)制表示的序 列號從最低有效位開始依次檢查第0位至第7位的數(shù)值,將第一次出現(xiàn)數(shù) 值1的位數(shù)作為所述數(shù)據(jù)報文的優(yōu)先級。
5、 根據(jù)權(quán)利要求1所述的傳感器網(wǎng)絡(luò)擁塞控制方法,其特征在于, 在所述的步驟3)中,對新生成的本地數(shù)據(jù)報文做網(wǎng)絡(luò)擁塞判斷是指根據(jù)所述新生成的本地數(shù)據(jù)報文的優(yōu)先級與所述網(wǎng)絡(luò)節(jié)點的門限值 的比較結(jié)果,本地數(shù)據(jù)報文滯留數(shù)目與數(shù)據(jù)流帶寬權(quán)值的比較結(jié)果,以及 網(wǎng)絡(luò)節(jié)點發(fā)送隊列的空滿情況,判斷所述網(wǎng)絡(luò)節(jié)點是否發(fā)生了網(wǎng)絡(luò)擁塞。
6、 根據(jù)權(quán)利要求5所述的傳感器網(wǎng)絡(luò)擁塞控制方法,其特征在于, 所述的對新生成的本地數(shù)據(jù)報文做網(wǎng)絡(luò)擁塞判斷包括以下步驟步驟3-1 )、將所述新生成的本地數(shù)據(jù)報文的優(yōu)先級與所述網(wǎng)絡(luò)節(jié)點的 當(dāng)前門限值進(jìn)行比較,如果所述數(shù)據(jù)報文優(yōu)先級小于門限值,則執(zhí)行下一 步,否則,執(zhí)行步驟3-3);步驟3-2)、丟棄新生成的數(shù)據(jù)報文后,執(zhí)行步驟3-6);步驟3-3 )、將本節(jié)點發(fā)送隊列中數(shù)據(jù)報文的滯留數(shù)目與節(jié)點的數(shù)據(jù)流 帶寬權(quán)值進(jìn)行比較,如果數(shù)據(jù)報文的滯留數(shù)目大于或等于數(shù)據(jù)流的帶寬權(quán) 值,則執(zhí)行步驟3-7),否則,執(zhí)行下一步;步驟3-4)、判斷本節(jié)點的發(fā)送隊列是否已滿,如果已滿,則執(zhí)行步驟 3-7),否則,執(zhí)行下一步;步驟3-5 )、將新生成的數(shù)據(jù)報文排入發(fā)送隊列中;步驟3-6)、沒有發(fā)生網(wǎng)絡(luò)擁塞現(xiàn)象,將這一結(jié)果返回后結(jié)束網(wǎng)絡(luò)擁塞 檢測,執(zhí)行步驟4);步驟3-7)、丟棄新生成的數(shù)據(jù)報文;步驟3-8)、發(fā)生了網(wǎng)絡(luò)擁塞現(xiàn)象,將這一結(jié)果返回后結(jié)束網(wǎng)絡(luò)擁塞檢測。
7、 根據(jù)權(quán)利要求6所述的傳感器網(wǎng)絡(luò)擁塞控制方法,其特征在于, 所述數(shù)據(jù)流的帶寬權(quán)值表示了數(shù)據(jù)流發(fā)送數(shù)據(jù)報文能力的大小,帶寬權(quán)值 越高,則數(shù)據(jù)流發(fā)送數(shù)據(jù)報文的速度越快。
8、 根據(jù)權(quán)利要求7所述的傳感器網(wǎng)絡(luò)擁塞控制方法,其特征在于, 所述數(shù)據(jù)流的帶寬權(quán)值可動態(tài)調(diào)整。
9、 根據(jù)權(quán)利要求1所述的傳感器網(wǎng)絡(luò)擁塞控制方法,其特征在于, 在所述的步驟5)中,對所收到的數(shù)據(jù)報文做網(wǎng)絡(luò)擁塞判斷是指根據(jù)所述所收到的數(shù)據(jù)報文的優(yōu)先級與所述網(wǎng)絡(luò)節(jié)點的門限值的比 較結(jié)果,以及網(wǎng)絡(luò)節(jié)點發(fā)送隊列的空滿情況,判斷所述網(wǎng)絡(luò)節(jié)點是否發(fā)生 了網(wǎng)絡(luò)擁塞。
10、 根據(jù)權(quán)利要求9所述的傳感器網(wǎng)絡(luò)擁塞控制方法,其特征在于, 所述的對所收到的數(shù)據(jù)報文做網(wǎng)絡(luò)擁塞判斷包括以下步驟步驟5-1 )、將所收到的數(shù)據(jù)報文的優(yōu)先級與所述網(wǎng)絡(luò)節(jié)點的門限值進(jìn) 行比較,如果所述數(shù)據(jù)報文優(yōu)先級小于門限值,則執(zhí)行下一步,否則,執(zhí) 行步驟5-3 );步驟5-2)、丟棄所收到的數(shù)據(jù)報文,執(zhí)行步驟5-5);步驟5-3)、判斷本節(jié)點的發(fā)送隊列是否已滿,如果已滿,執(zhí)行步驟 5-6),否則,執(zhí)行下一步;步驟5-4 )、將所收到的數(shù)據(jù)報文送入發(fā)送隊列中;步驟5-5)、沒有發(fā)生網(wǎng)絡(luò)擁塞現(xiàn)象,將這一結(jié)果返回后結(jié)束網(wǎng)絡(luò)擁塞 檢測,執(zhí)行步驟6);步驟5-6)、丟棄所收到的數(shù)據(jù)報文;步驟5-7)、發(fā)生了網(wǎng)絡(luò)擁塞現(xiàn)象,將這一結(jié)果返回后結(jié)束網(wǎng)絡(luò)擁塞檢測。
11、 根據(jù)權(quán)利要求1所述的傳感器網(wǎng)絡(luò)擁塞控制方法,其特征在于, 在所述的步驟3)、步驟5)、步驟6)中,所述的調(diào)整發(fā)送隊列是指刪除發(fā) 送隊列中報文優(yōu)先級小于當(dāng)前最新節(jié)點門限值的數(shù)據(jù)報文。
全文摘要
本發(fā)明提供一種傳感器網(wǎng)絡(luò)擁塞控制方法,包括初始化節(jié)點門限值和報文周期數(shù)的值;開始新的報文周期,生成一個新的數(shù)據(jù)報文,并根據(jù)序列號得到優(yōu)先級;對新生成的數(shù)據(jù)報文做網(wǎng)絡(luò)擁塞判斷,擁塞時清零報文周期數(shù),增加門限值并廣播;然后判斷是否收到要轉(zhuǎn)發(fā)的數(shù)據(jù)報文,若收到,做網(wǎng)絡(luò)擁塞判斷,接著判斷是否收到廣播消息,若收到廣播消息,則調(diào)整門限值;最后判斷本輪報文周期是否終止,若未終止則繼續(xù)接收轉(zhuǎn)發(fā)報文,否則對節(jié)點中的報文周期數(shù)進(jìn)行判斷,根據(jù)判斷結(jié)果重新開始一個報文周期或清零報文周期數(shù)、降低節(jié)點門限值后,再重新開始報文周期。本發(fā)明更有效地對全網(wǎng)擁塞狀況進(jìn)行檢測;能降低中途丟報率。
文檔編號H04L12/28GK101119281SQ20071012075
公開日2008年2月6日 申請日期2007年8月24日 優(yōu)先權(quán)日2007年8月24日
發(fā)明者回春立, 莉 崔, 鞠海玲 申請人:中國科學(xué)院計算技術(shù)研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1