專利名稱:一種基于媒介接入控制協(xié)議的無線傳感器網(wǎng)絡(luò)傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種基于媒介接入控制協(xié)議的無線傳感器網(wǎng)絡(luò)傳輸方法
背景技術(shù):
在一些監(jiān)測(cè)突發(fā)事件的無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSN)中,如監(jiān)測(cè)森林火災(zāi)的發(fā)生、在救護(hù)和反恐中的槍聲、爆炸以及エ業(yè)安全生產(chǎn)等領(lǐng)域,對(duì)數(shù)據(jù)傳輸要求比較高的實(shí)時(shí)性。節(jié)點(diǎn)在感知到事件發(fā)生吋,需要快速地將采集到的信息傳輸給匯聚節(jié)點(diǎn),通過互聯(lián)網(wǎng)或衛(wèi)星到達(dá)管理節(jié)點(diǎn)。用戶通過管理節(jié)點(diǎn)對(duì)傳感器網(wǎng)絡(luò)進(jìn)行配置和管理,發(fā)布監(jiān)測(cè)任務(wù)以及收集監(jiān)測(cè)數(shù)據(jù)。同吋,對(duì)突發(fā)的事件采取及時(shí)有效的應(yīng)對(duì)措施,使突發(fā)事件造成的損失最小。作為WSN網(wǎng)絡(luò)協(xié)議棧重要基礎(chǔ)架構(gòu)的媒介接入控制(mediun access control,簡稱MAC)協(xié)議,它決定無線信道的接入方式,負(fù)責(zé)為節(jié)點(diǎn)分配無線通信資源,對(duì)無線傳感器網(wǎng)絡(luò)的性能有極大影響,是保證無線傳感器網(wǎng)絡(luò)高效通信的關(guān)鍵網(wǎng)絡(luò)協(xié)議之一。無線傳感器網(wǎng)絡(luò)MAC協(xié)議一般采用周期性的偵聽和睡眠機(jī)制來降低能耗,有一部分的MAC采用ー個(gè)固定占空比的偵聽睡眠調(diào)度機(jī)制,協(xié)議中預(yù)先設(shè)定周期長度和占空比,節(jié)點(diǎn)在喚醒期間偵聽數(shù)據(jù)包和進(jìn)行數(shù)據(jù)通信,在睡眠期間使射頻模塊進(jìn)入睡眠狀態(tài)以降低能耗。為避免由于睡眠而影響節(jié)點(diǎn)的通信問題,節(jié)點(diǎn)之間需要形成一致的睡眠調(diào)度以確保同時(shí)睡眠同時(shí)喚醒。偵聽/休眠機(jī)制能夠有效的降低能耗。然而,采用偵聽/休眠機(jī)制會(huì)在一定程度上導(dǎo)致傳輸數(shù)據(jù)的延遲,這在面向突發(fā)事件的無線傳感器網(wǎng)絡(luò)中嚴(yán)重的影響了網(wǎng)絡(luò)的性能。減小延遲已是MAC協(xié)議普遍面臨的問題,因?yàn)樵S多的突發(fā)事件都是采用無線傳感器網(wǎng)絡(luò)進(jìn)行檢測(cè),如果檢測(cè)到的數(shù)據(jù)不能夠及時(shí)地傳輸,會(huì)造成嚴(yán)重的后果。DMAC協(xié)議對(duì)于傳統(tǒng)的數(shù)據(jù)轉(zhuǎn)發(fā)停頓問題,采用了對(duì)不同深度節(jié)點(diǎn)之間的活動(dòng)和睡眠的交錯(cuò)調(diào)度機(jī)制,對(duì)多跳路徑上的節(jié)點(diǎn),交替地調(diào)度它們的活動(dòng)期,順序地喚醒各個(gè)節(jié)點(diǎn)就像ー個(gè)連鎖反應(yīng)。數(shù)據(jù)包可以不斷地在各節(jié)點(diǎn)間轉(zhuǎn)發(fā),傳輸給匯聚節(jié)點(diǎn),這樣就減小了數(shù)據(jù)的傳輸延遲。但是,DMAC協(xié)議要求嚴(yán)格的樹形結(jié)構(gòu)才能體現(xiàn)它的特性,在實(shí)際的應(yīng)用中很難滿足這ー要求,所以DMAC協(xié)議的應(yīng)用范圍就受到了極大的限制。
發(fā)明內(nèi)容
技術(shù)問題本發(fā)明針對(duì)由突發(fā)事件引發(fā)的有較大流量需要快速傳輸?shù)臒o線傳感網(wǎng)絡(luò)應(yīng)用場景,提供了 ー種能夠在考慮能耗的情況下,降低延時(shí)、提高呑吐量,高效傳輸數(shù)據(jù)的基于媒介接入控制協(xié)議的無線傳感器網(wǎng)絡(luò)傳輸方法。技術(shù)方案本發(fā)明基于媒介接入控制協(xié)議的無線傳感器網(wǎng)絡(luò)傳輸方法,由應(yīng)用程序確定通信周期,節(jié)點(diǎn)在所述通信周期里進(jìn)行傳輸工作流程,當(dāng)ー個(gè)通信周期結(jié)束后,進(jìn)入下一通信周期繼續(xù)進(jìn)行傳輸工作流程;所述通信周期的傳輸工作流程里,節(jié)點(diǎn)進(jìn)行數(shù)據(jù)包發(fā)送,當(dāng)每ー個(gè)數(shù)據(jù)包發(fā)送結(jié)束吋,所有節(jié)點(diǎn)進(jìn)入睡眠,間隔時(shí)長t后進(jìn)入下一數(shù)據(jù)包發(fā)送,直至本通信周期結(jié)束;每個(gè)所述的數(shù)據(jù)包的發(fā)送流程包括以下步驟I)喚醒所有節(jié)點(diǎn),判斷節(jié)點(diǎn)是否有數(shù)據(jù)發(fā)送,當(dāng)節(jié)點(diǎn)有數(shù)據(jù)發(fā)送時(shí),該節(jié)點(diǎn)為發(fā)送節(jié)點(diǎn),該發(fā)送節(jié)點(diǎn)通過ニ進(jìn)制指數(shù)退避方法競爭通信信道,如果贏得通信信道就發(fā)送請(qǐng)求發(fā)送幀RTS,然后進(jìn)入步驟2),否則進(jìn)入步驟6);當(dāng)節(jié)點(diǎn)沒有數(shù)據(jù)發(fā)送吋,判斷節(jié)點(diǎn)是否有數(shù)據(jù)要接收,如果是,該節(jié)點(diǎn)為接收節(jié)點(diǎn),該接收節(jié)點(diǎn)回復(fù)清除發(fā)送幀CTS,與發(fā)送節(jié)點(diǎn)進(jìn)行互相確認(rèn)后開始傳輸數(shù)據(jù),在成功傳輸該數(shù)據(jù)后,進(jìn)入步驟6),否則該節(jié)點(diǎn)根據(jù)收到的請(qǐng)求發(fā)送幀RTS或者清除發(fā)送幀CTS更新自身的網(wǎng)絡(luò)分配矢量NAV后,進(jìn)入步驟6 );2)發(fā)送節(jié)點(diǎn)的鄰居節(jié)點(diǎn)收到請(qǐng)求發(fā)送幀RTS后,判斷所述請(qǐng)求發(fā)送幀RTS是否是發(fā)給自身的,如果是,所述發(fā)送節(jié)點(diǎn)的鄰居節(jié)點(diǎn)就是接收節(jié)點(diǎn),所述接收節(jié)點(diǎn)回復(fù)清除發(fā)送幀CTS后,進(jìn)入步驟3);否則,所述發(fā)送節(jié)點(diǎn)的鄰居節(jié)點(diǎn)更新自身的網(wǎng)絡(luò)分配矢量NAV后, 進(jìn)入步驟6);3)接收節(jié)點(diǎn)的鄰居節(jié)點(diǎn)收到清除發(fā)送幀CTS后,判斷所述清除發(fā)送幀CTS是否是發(fā)給自身的,如果是,就進(jìn)入步驟4),否則,所述接收節(jié)點(diǎn)的鄰居節(jié)點(diǎn)更新自身的網(wǎng)絡(luò)分配矢量NAV后,進(jìn)入步驟6);4)發(fā)送節(jié)點(diǎn)采用片段分組響應(yīng)確認(rèn)字符機(jī)制與接收節(jié)點(diǎn)交互數(shù)據(jù)包片段,具體步驟為41)發(fā)送節(jié)點(diǎn)采用消息分割機(jī)制,將每個(gè)數(shù)據(jù)包分割成多個(gè)片段并賦予編號(hào),按照編號(hào)順序?qū)⒚咳齻€(gè)所述片段分為ー個(gè)分組,發(fā)送節(jié)點(diǎn)將所述數(shù)據(jù)包以片段為單位傳輸給接收節(jié)點(diǎn);42)接收節(jié)點(diǎn)接收到ー個(gè)所述分組后,判斷所述分組是否正確,如果正確則進(jìn)入步驟5),否則回到步驟41);5)接收節(jié)點(diǎn)向發(fā)送節(jié)點(diǎn)發(fā)送確認(rèn)字符ACK,發(fā)送節(jié)點(diǎn)接收到所述確認(rèn)字符ACK后,進(jìn)入步驟6);6)結(jié)束本數(shù)據(jù)包發(fā)送流程。本發(fā)明中,兩相鄰數(shù)據(jù)包發(fā)送流程之間的間隔時(shí)長t是根據(jù)網(wǎng)絡(luò)帶寬和ー個(gè)通信周期中所包括的時(shí)槽數(shù)確定的,取值為節(jié)點(diǎn)發(fā)送ー個(gè)字節(jié)所需的時(shí)間長的80 120倍。本發(fā)明的步驟42)中,接收節(jié)點(diǎn)接收到ー個(gè)所述分組后,判斷所述分組是否正確的方法為根據(jù)數(shù)據(jù)包片段的編號(hào),判斷每個(gè)分組的三個(gè)片段是否完整,如果不完整,則判斷為不正確,如果完整則進(jìn)一歩判斷每個(gè)片段是否有錯(cuò)誤,如果有錯(cuò)誤,則判斷為不正確,如果所有片段均無錯(cuò)誤,則判斷為正確。無線傳感器網(wǎng)絡(luò)主要集中的領(lǐng)域有環(huán)境的監(jiān)測(cè)和保護(hù)、醫(yī)療護(hù)理、智能家居、軍事領(lǐng)域等。應(yīng)用層主要用于傳感器網(wǎng)絡(luò)應(yīng)用系統(tǒng)的開發(fā),包括一系列基于監(jiān)測(cè)任務(wù)的應(yīng)用層軟件,部署的傳感器網(wǎng)絡(luò)往往執(zhí)行多種任務(wù),如環(huán)境監(jiān)測(cè)系統(tǒng)、交通管理系統(tǒng)、災(zāi)難預(yù)防系統(tǒng)、治療系統(tǒng)維護(hù)等,在這些具體的應(yīng)用中,都需要具體的應(yīng)用程序。針對(duì)不同的應(yīng)用場合,需要不同的應(yīng)用程序來對(duì)網(wǎng)絡(luò)中的數(shù)據(jù)業(yè)務(wù)進(jìn)行控制,包括確定數(shù)據(jù)傳輸?shù)耐ㄐ胖芷?。在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包都與應(yīng)用程序有關(guān),包括數(shù)據(jù)包的大小、類型以及數(shù)量等。由于網(wǎng)絡(luò)應(yīng)用在不同的環(huán)境下,節(jié)點(diǎn)可感知到風(fēng)速、溫度、濕度、壓力、位置等,在感知到這些物理量后,經(jīng)過處理就可以在網(wǎng)絡(luò)中傳輸。有益效果本發(fā)明由于采取以上技術(shù)方案,具有以下優(yōu)點(diǎn)I.現(xiàn)有的MAC協(xié)議在ー幀中只偵聽一次,也就是在ー幀中只傳輸ー個(gè)數(shù)據(jù)包。而在本發(fā)明中,節(jié)點(diǎn)在一幀中可以偵聽多次,所以可以傳輸多個(gè)包,極大地減小了數(shù)據(jù)包傳輸?shù)难舆t,増大了呑吐量。2.本發(fā)明中在動(dòng)態(tài)添加偵聽期的過程中并沒有同步幀SYNC,主要是考慮到同步幀SYNC會(huì)増加不必要的開銷。而且,現(xiàn)有的MAC協(xié)議在接收節(jié)點(diǎn)每收到ー個(gè)片段,就會(huì)響應(yīng)一次ACK。本發(fā)明中將片段進(jìn)行了分組,每個(gè)分組包含三個(gè)片段,接收節(jié)點(diǎn)每收到ー個(gè)分組就回復(fù)一次確認(rèn)字符ACK,這樣可以使確認(rèn)字符ACK的開銷減小到原來的三分之一左右。3.在考慮開銷的情況下,有效地減少了同步幀SYNC和確認(rèn)字符ACK的使用,這樣 并沒有影響到節(jié)點(diǎn)之間的同步和隱藏終端情況。另外,結(jié)合自適應(yīng)占空比調(diào)整機(jī)制,使數(shù)據(jù)包的傳輸延遲減小,増大了呑吐量。4.由于本發(fā)明的無線傳感器網(wǎng)絡(luò)傳輸方法是針對(duì)突發(fā)事件的場景設(shè)計(jì)的,所以該方法不僅適用于稀疏的、有突發(fā)傳輸?shù)木W(wǎng)絡(luò),也同樣適用于流量較密集的WSN網(wǎng)絡(luò)。
圖I是本發(fā)明實(shí)施例應(yīng)用場景示意圖;圖2是自適應(yīng)占空比調(diào)整機(jī)制不意圖;圖3是片段分組響應(yīng)ACK機(jī)制示意圖;圖4是本發(fā)明方法的邏輯流程框圖。圖中有第一節(jié)點(diǎn)I、第二節(jié)點(diǎn)2、第三節(jié)點(diǎn)3、第四節(jié)點(diǎn)4、第五節(jié)點(diǎn)5、第六節(jié)點(diǎn)6、第一數(shù)據(jù)源節(jié)點(diǎn)SI、第二數(shù)據(jù)源節(jié)點(diǎn)S2、第三數(shù)據(jù)源節(jié)點(diǎn)S3、第四數(shù)據(jù)源節(jié)點(diǎn)S4。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)點(diǎn)描述。本發(fā)明的基于媒介接入控制協(xié)議的無線傳感器網(wǎng)絡(luò)傳輸方法,由應(yīng)用程序確定通信周期,節(jié)點(diǎn)在所述通信周期里進(jìn)行傳輸工作流程,當(dāng)ー個(gè)通信周期結(jié)束后,進(jìn)入下一通信周期繼續(xù)進(jìn)行傳輸工作流程;所述通信周期的傳輸工作流程里,節(jié)點(diǎn)進(jìn)行數(shù)據(jù)包發(fā)送,當(dāng)每一個(gè)數(shù)據(jù)包發(fā)送結(jié)束時(shí),所有節(jié)點(diǎn)進(jìn)入睡眠,間隔時(shí)長t后進(jìn)入下一數(shù)據(jù)包發(fā)送,直至本通信周期結(jié)束;每個(gè)所述的數(shù)據(jù)包的發(fā)送流程包括以下步驟I)喚醒所有節(jié)點(diǎn),判斷節(jié)點(diǎn)是否有數(shù)據(jù)發(fā)送,當(dāng)節(jié)點(diǎn)有數(shù)據(jù)發(fā)送時(shí),該節(jié)點(diǎn)為發(fā)送節(jié)點(diǎn),該發(fā)送節(jié)點(diǎn)通過ニ進(jìn)制指數(shù)退避方法競爭通信信道,如果贏得通信信道就發(fā)送請(qǐng)求發(fā)送幀RTS,然后進(jìn)入步驟2),否則進(jìn)入步驟6);當(dāng)節(jié)點(diǎn)沒有數(shù)據(jù)發(fā)送吋,判斷節(jié)點(diǎn)是否有數(shù)據(jù)要接收,如果是,該節(jié)點(diǎn)為接收節(jié)點(diǎn),該接收節(jié)點(diǎn)回復(fù)清除發(fā)送幀CTS,與發(fā)送節(jié)點(diǎn)進(jìn)行互相確認(rèn)后開始傳輸數(shù)據(jù),在成功傳輸該數(shù)據(jù)后,進(jìn)入步驟6),否則該節(jié)點(diǎn)根據(jù)收到的請(qǐng)求發(fā)送幀RTS或者清除發(fā)送幀CTS更新自身的網(wǎng)絡(luò)分配矢量NAV后,進(jìn)入步驟6 );2)發(fā)送節(jié)點(diǎn)的鄰居節(jié)點(diǎn)收到請(qǐng)求發(fā)送幀RTS后,判斷所述請(qǐng)求發(fā)送幀RTS是否是發(fā)給自身的,如果是,所述發(fā)送節(jié)點(diǎn)的鄰居節(jié)點(diǎn)就是接收節(jié)點(diǎn),所述接收節(jié)點(diǎn)回復(fù)清除發(fā)送幀CTS后,進(jìn)入步驟3);否則,所述發(fā)送節(jié)點(diǎn)的鄰居節(jié)點(diǎn)更新自身的網(wǎng)絡(luò)分配矢量NAV后,進(jìn)入步驟6);3)接收節(jié)點(diǎn)的鄰居節(jié)點(diǎn)收到清除發(fā)送幀CTS后,判斷所述清除發(fā)送幀CTS是否是發(fā)給自身的,如果是,就進(jìn)入步驟4),否則,所述接收節(jié)點(diǎn)的鄰居節(jié)點(diǎn)更新自身的網(wǎng)絡(luò)分配矢量NAV后,進(jìn)入步驟6);4)發(fā)送節(jié)點(diǎn)采用片段分組響應(yīng)確認(rèn)字符機(jī)制與接收節(jié)點(diǎn)交互數(shù)據(jù)包片段,具體步驟為41)發(fā)送節(jié)點(diǎn)采用消息分割機(jī)制,將每個(gè)數(shù)據(jù)包分割成多個(gè)片段并賦予編號(hào),按照編號(hào)順序?qū)⒚咳齻€(gè)所述片段分為ー個(gè)分組,發(fā)送節(jié)點(diǎn)將所述數(shù)據(jù)包以片段為單位傳輸給接收節(jié)點(diǎn);42)接收節(jié)點(diǎn)接收到ー個(gè)所述分組后,判斷所述分組是否正確,如果正確則進(jìn)入步驟5),否則回到步驟41);5)接收節(jié)點(diǎn)向發(fā)送節(jié)點(diǎn)發(fā)送確認(rèn)字符ACK,發(fā)送節(jié)點(diǎn)接收到所述確認(rèn)字符ACK后,進(jìn)入步驟6);6)結(jié)束本數(shù)據(jù)包發(fā)送流程。本發(fā)明中,兩相鄰數(shù)據(jù)包發(fā)送流程之間的間隔時(shí)長t是根據(jù)網(wǎng)絡(luò)帶寬和ー個(gè)通信周期中所包括的時(shí)槽數(shù)確定的,取值為節(jié)點(diǎn)發(fā)送ー個(gè)字節(jié)所需的時(shí)間長的80 120倍。經(jīng)過調(diào)試,在不同的拓?fù)浣Y(jié)構(gòu)下進(jìn)行測(cè)試,得出比較優(yōu)異的取值t,即t為發(fā)送ー個(gè)字節(jié)所需時(shí)間長的100倍。在本發(fā)明中,為了便于表述機(jī)制,在ー個(gè)通信周期內(nèi),將節(jié)點(diǎn)在睡眠時(shí)長t后喚醒的過程稱為自適應(yīng)占空比機(jī)制。時(shí)長t的確定通過以下四個(gè)公式獲得A=8.0 + B (I)C=A X 2. 5 (2)如果E>=C,則 D=E (3)如果E〈C,則 D=C (4)t=5. OXD (5)其中第一個(gè)公式中的A是傳輸一個(gè)字節(jié)所需的時(shí)間,B為帶寬,取值為20。第二個(gè)公式中的C為數(shù)據(jù)包開始的標(biāo)志,取值為A的2. 5倍。第三個(gè)公式和第四個(gè)公式中的D為ー個(gè)時(shí)槽的長度,E為時(shí)鐘分辨率,取值1ms。第五個(gè)公式的t為本發(fā)明中所述的時(shí)長t。本發(fā)明的步驟42)中,接收節(jié)點(diǎn)接收到ー個(gè)所述分組后,判斷所述分組是否正確的方法為根據(jù)數(shù)據(jù)包片段的編號(hào),判斷每個(gè)分組的三個(gè)片段是否完整,如果不完整,則判斷為不正確,如果完整則進(jìn)一歩判斷每個(gè)片段是否有錯(cuò)誤,如果有錯(cuò)誤,則判斷為不正確,如果所有片段均無錯(cuò)誤,則判斷為正確。其中,判斷每個(gè)片段是否有錯(cuò)誤的方法如下每個(gè)數(shù)據(jù)包的包頭中有一個(gè)變量eiror,在構(gòu)建數(shù)據(jù)包時(shí),將該變量設(shè)置為O。數(shù)據(jù)包經(jīng)過多個(gè)節(jié)點(diǎn)的傳輸,可能由于沖突,該變量被改變?yōu)镮。等下一跳節(jié)點(diǎn)收到時(shí),會(huì)檢查數(shù)據(jù)包包頭中的變量eiror,如果為0確認(rèn)該數(shù)據(jù)包正確,否則該數(shù)據(jù)包出錯(cuò)。
圖I是本發(fā)明實(shí)施例應(yīng)用場景示意圖。這種實(shí)施例符合ー些檢測(cè)突發(fā)事件的場合,當(dāng)事件發(fā)生時(shí),會(huì)有多個(gè)節(jié)點(diǎn)感知并采集到數(shù)據(jù),需要通過不同的路徑將數(shù)據(jù)包快速地傳遞給匯聚節(jié)點(diǎn)。圖I表示在某ー時(shí)刻,網(wǎng)絡(luò)中有四個(gè)數(shù)據(jù)源節(jié)點(diǎn)第一數(shù)據(jù)源節(jié)點(diǎn)Si、第ニ數(shù)據(jù)源節(jié)點(diǎn)S2、第三數(shù)據(jù)源節(jié)點(diǎn)S3、第四數(shù)據(jù)源節(jié)點(diǎn)S4。其中S2、S3、S4分別建立到匯聚節(jié)點(diǎn)D的路由分別是第二數(shù)據(jù)源節(jié)點(diǎn)S2—第二節(jié)點(diǎn)2-第五節(jié)點(diǎn)5-節(jié)點(diǎn)6-匯聚節(jié)點(diǎn)D、第三數(shù)據(jù)源節(jié)點(diǎn)S3-第三節(jié)點(diǎn)3-第五節(jié)點(diǎn)5-第六節(jié)點(diǎn)6-匯聚節(jié)點(diǎn)D、第四數(shù)據(jù)源節(jié)點(diǎn)S4—第四節(jié)點(diǎn)4-第六節(jié)點(diǎn)6—匯聚節(jié)點(diǎn)D。第二數(shù)據(jù)源節(jié)點(diǎn)S2和第三數(shù)據(jù)源節(jié)點(diǎn)S3兩個(gè)數(shù)據(jù)流在第五節(jié)點(diǎn)5匯聚,然后又與S4數(shù)據(jù)流在第六節(jié)點(diǎn)6匯聚。在第五節(jié)點(diǎn)5和第六節(jié)點(diǎn)6會(huì)出現(xiàn)流量的擁塞,給數(shù)據(jù)傳輸?shù)难舆t造成嚴(yán)重的影響。即使第一數(shù)據(jù)源節(jié)點(diǎn)SI數(shù)據(jù)源節(jié)點(diǎn)經(jīng)過第一數(shù)據(jù)源節(jié)點(diǎn)SI—第一節(jié)點(diǎn)I一匯聚節(jié)點(diǎn)D進(jìn)行傳輸,如果在MAC協(xié)議不理想的情況下,也會(huì)出現(xiàn)數(shù)據(jù)傳輸?shù)难舆t。在本發(fā)明中,采用了自適應(yīng)占空比調(diào)整機(jī)制和片段分組響應(yīng)ACK機(jī)制,在考慮控制開銷的情況下,増加了節(jié)點(diǎn)在ー幀中交互數(shù)據(jù)的數(shù)量,有效地減輕了流量擁塞,減小了延 遲、提高了傳輸率,同時(shí)增大了網(wǎng)絡(luò)吞吐量。圖2是自適應(yīng)占空比調(diào)整機(jī)制示意圖。ー些MAC協(xié)議采用固定占空比機(jī)制,在ー幀中只有贏得信道的節(jié)點(diǎn)才可以通信,并且每次只發(fā)送ー個(gè)數(shù)據(jù)包。其它需要發(fā)送數(shù)據(jù)包的節(jié)點(diǎn)只能等到下ー幀,當(dāng)ー個(gè)周期內(nèi)到達(dá)多個(gè)數(shù)據(jù)包,如果節(jié)點(diǎn)不能及時(shí)將到達(dá)的數(shù)據(jù)包發(fā)送出去,則數(shù)據(jù)包將在MAC隊(duì)列中堆積起來從而導(dǎo)致很大的延遲。如果數(shù)據(jù)包持續(xù)堆積,節(jié)點(diǎn)的數(shù)據(jù)緩沖區(qū)隊(duì)列將由于容量有限而溢出導(dǎo)致數(shù)據(jù)包丟失,從而嚴(yán)重影響系統(tǒng)性能。本發(fā)明MAC協(xié)議仍然將時(shí)間分為許多幀,如圖2中幀周期為ー幀的長度。每個(gè)節(jié)點(diǎn)采用周期性的偵聽和睡眠,并且在每ー幀的開始都會(huì)固定的醒來一定的時(shí)間進(jìn)行偵聽信道,即圖2中的偵聽期包括SYNC幀和RTS/CTS幀。同吋,采用已有的虛擬載波偵聽機(jī)制,每個(gè)節(jié)點(diǎn)都有一個(gè)網(wǎng)絡(luò)配置向量NAV,為其設(shè)置一個(gè)定時(shí)器,通過改變NAV值,通信節(jié)點(diǎn)的鄰節(jié)點(diǎn)就可以得知此次通信什么時(shí)候結(jié)束,以便作出必要的操作,不過在通信結(jié)束之前這些鄰節(jié)點(diǎn)都是休眠的。本發(fā)明解決上述所提到的延遲問題的方法是在ー幀中開始第一次通信結(jié)束后,即圖2中的發(fā)送者ー發(fā)送數(shù)據(jù)包,并且接收者正確接收后,會(huì)動(dòng)態(tài)的添加若干個(gè)小的偵聽期,該偵聽期不包括SYNC幀,即圖中的請(qǐng)求發(fā)送幀/清除發(fā)送幀RTS/CTS,如圖2中粗線框部分的請(qǐng)求發(fā)送幀/清除發(fā)送幀。此時(shí)剛才通信的節(jié)點(diǎn),以及它們的鄰節(jié)點(diǎn)都會(huì)醒來。如果此時(shí)這些節(jié)點(diǎn)都不需要發(fā)送數(shù)據(jù)包,它們會(huì)進(jìn)入休眠,設(shè)定定時(shí)器時(shí)長t,當(dāng)定時(shí)器超時(shí)就會(huì)醒來,再次進(jìn)行偵聽。如果有節(jié)點(diǎn)要發(fā)送數(shù)據(jù),需要重新競爭信道,然后采用RTS/CTS/DATA/ACK的方式發(fā)送數(shù)據(jù)包。節(jié)點(diǎn)所進(jìn)行的工作和在每幀開始時(shí)需要發(fā)送數(shù)據(jù)的工作是ー樣的。例如在第一個(gè)添加到偵聽期,發(fā)送者ニ有數(shù)據(jù)要發(fā)送,并且競爭得到信道,發(fā)送者ニ發(fā)送數(shù)據(jù)包給發(fā)送者一。另外,在本發(fā)明中,毎次通信結(jié)束后到下次添加偵聽期的時(shí)間間隔是固定值,即圖2中所示的間隔值,這個(gè)值t是發(fā)送一個(gè)字節(jié)所需時(shí)間的100倍。所以在自適應(yīng)占空比調(diào)整機(jī)制引入以后,節(jié)點(diǎn)在一幀中可以發(fā)送多個(gè)包,極大地減小了數(shù)據(jù)包傳輸?shù)难舆t。圖3是片段分組響應(yīng)ACK機(jī)制示意圖。對(duì)于ー些MAC協(xié)議,如果節(jié)點(diǎn)有一個(gè)數(shù)據(jù)包需要發(fā)送,則節(jié)點(diǎn)會(huì)采用RTS/CTS/DATA/ACK的方式通過競爭信道發(fā)送數(shù)據(jù)包。節(jié)點(diǎn)首先通過RTS/CTS進(jìn)行握手交互預(yù)約信道使用權(quán),當(dāng)成功完成交互過程后則可以發(fā)送數(shù)據(jù)包的片段。發(fā)送節(jié)點(diǎn)每發(fā)送數(shù)據(jù)包的ー個(gè)片段,接收節(jié)點(diǎn)在成功接收后會(huì)回復(fù)ー個(gè)清除發(fā)送幀ACK。另外,數(shù)據(jù)包的片段分的越少,數(shù)據(jù)包傳輸成功的概率就越小,所以通常會(huì)將ー個(gè)數(shù)據(jù)包分為比較多的片段。這樣,接收節(jié)點(diǎn)需要響應(yīng)的清除發(fā)送幀ACK就比較多,在一定程度上増大了控制開銷。本發(fā)明解決上述所提到的開銷較大問題的方法是在將數(shù)據(jù)包分割為片段的過程中,給每個(gè)片段編上不同的編號(hào),然后按順序?qū)⒚咳齻€(gè)片段分為ー組,如圖3中的片段一、片段ニ和片段三為一組。同樣,接收節(jié)點(diǎn)在接收到ー組片段后再回復(fù)ー個(gè)清除發(fā)送幀ACK,即圖3的片段三后的 清除發(fā)送幀ACK就是接收節(jié)點(diǎn)在接收到片段一、片段ニ和片段三后回復(fù)給發(fā)送節(jié)點(diǎn)的。同時(shí),接收節(jié)點(diǎn)在接收完ー個(gè)分組會(huì)進(jìn)行檢查,看是否有片段沒有接收至IJ,或者是否有片段出差。如果有這種情況發(fā)生,就需要重發(fā)該片段。這樣,在傳輸ー個(gè)數(shù)據(jù)包的過程中,清除發(fā)送幀ACK的開銷就可以減小為原來的三分之一左右。圖4是方法流程的邏輯框圖。本發(fā)明中主要提出了兩個(gè)機(jī)制,分別是自適應(yīng)占空比調(diào)整機(jī)制和片段分組響應(yīng)ACK機(jī)制。整個(gè)MAC協(xié)議的設(shè)計(jì)中還采用了其他ー些常用的機(jī)制。本發(fā)明的媒介接入方法仍然采用基于競爭的機(jī)制,支持競爭訪問信道。將時(shí)間劃分為許多幀,一次周期性偵聽/睡眠時(shí)間長度為ー幀,偵聽期包括SYNC幀和RTS/CTS幀。采用RTS/CTS/DATA/ACK帶內(nèi)信令在節(jié)點(diǎn)之間進(jìn)行數(shù)據(jù)交互。如果節(jié)點(diǎn)有數(shù)據(jù)要發(fā)送,通過退避競爭信道,在獲得信道后就發(fā)送請(qǐng)求發(fā)送幀RTS,目的節(jié)點(diǎn)正確接收后回復(fù)清除發(fā)送幀CTS給源節(jié)點(diǎn)。源節(jié)點(diǎn)和目的節(jié)點(diǎn)的鄰居節(jié)點(diǎn)在接收到請(qǐng)求發(fā)送幀RTS幀或者清除發(fā)送幀CTS后,會(huì)根據(jù)幀中的duration設(shè)置ー個(gè)本地變量NAV,表明對(duì)這些節(jié)點(diǎn)來說此時(shí)信道不可用,它們需要進(jìn)入睡眠。源節(jié)點(diǎn)和目的節(jié)點(diǎn)通過RTS/CTS交互預(yù)約到信道后,就開始傳輸數(shù)據(jù)包。采用消息分割機(jī)制,將一條長消息分割成多個(gè)小的片段進(jìn)行傳輸,每個(gè)片段有自己的編號(hào),然后按順序每三個(gè)片段為ー個(gè)分組,目的節(jié)點(diǎn)在接收ー個(gè)分組后回復(fù)ー個(gè)確認(rèn)字符ACK。目的節(jié)點(diǎn)需要對(duì)接收的每ー個(gè)分組進(jìn)行檢查,如果接收到的分組不完整或者有錯(cuò)誤,就需要重發(fā)該片段。在本次通信結(jié)束后,通信節(jié)點(diǎn)睡眠一定的時(shí)間,設(shè)置定時(shí)器進(jìn)行喚醒,該時(shí)間長度為發(fā)送一個(gè)字節(jié)所需時(shí)間的100倍。定時(shí)器超時(shí)會(huì)添加新的偵聽期RTS/CTS,此時(shí)偵聽期沒有SYNC幀。剛才通信的節(jié)點(diǎn),以及它的鄰節(jié)點(diǎn)都會(huì)醒來。如果節(jié)點(diǎn)有數(shù)據(jù)要發(fā)送,會(huì)重新通過退避競爭信道,重復(fù)每ー幀開始時(shí)發(fā)送數(shù)據(jù)包的過程。如果節(jié)點(diǎn)沒有數(shù)據(jù)要發(fā)送,在偵聽期結(jié)束后這些節(jié)點(diǎn)會(huì)進(jìn)入睡眠,睡眠時(shí)間為發(fā)送ー個(gè)字節(jié)所需時(shí)間的100倍,等定時(shí)器超時(shí),再次喚醒這些節(jié)點(diǎn),偵聽信道以便傳輸數(shù)據(jù)。
權(quán)利要求
1.一種基于媒介接入控制協(xié)議的無線傳感器網(wǎng)絡(luò)傳輸方法,其特征在于,該方法由應(yīng)用程序確定通信周期,節(jié)點(diǎn)在所述通信周期里進(jìn)行傳輸工作流程,當(dāng)ー個(gè)通信周期結(jié)束后,進(jìn)入下一通信周期繼續(xù)進(jìn)行傳輸工作流程;所述通信周期的傳輸工作流程里,節(jié)點(diǎn)進(jìn)行數(shù)據(jù)包發(fā)送,當(dāng)每ー個(gè)數(shù)據(jù)包發(fā)送結(jié)束時(shí),所有節(jié)點(diǎn)進(jìn)入睡眠,間隔時(shí)長t后進(jìn)入下一數(shù)據(jù)包發(fā)送,直至本通信周期結(jié)束; 每個(gè)所述的數(shù)據(jù)包發(fā)送流程包括以下步驟 1)喚醒所有節(jié)點(diǎn),判斷節(jié)點(diǎn)是否有數(shù)據(jù)發(fā)送,當(dāng)節(jié)點(diǎn)有數(shù)據(jù)發(fā)送時(shí),該節(jié)點(diǎn)為發(fā)送節(jié)點(diǎn),該發(fā)送節(jié)點(diǎn)通過ニ進(jìn)制指數(shù)退避方法競爭通信信道,如果贏得通信信道就發(fā)送請(qǐng)求發(fā)送幀RTS,然后進(jìn)入步驟2),否則進(jìn)入步驟6); 當(dāng)節(jié)點(diǎn)沒有數(shù)據(jù)發(fā)送時(shí),判斷節(jié)點(diǎn)是否有數(shù)據(jù)要接收,如果是,該節(jié)點(diǎn)為接收節(jié)點(diǎn),該接收節(jié)點(diǎn)回復(fù)清除發(fā)送幀CTS,與發(fā)送節(jié)點(diǎn)進(jìn)行互相確認(rèn)后開始傳輸數(shù)據(jù),在成功傳輸該數(shù)據(jù)后,進(jìn)入步驟6),否則該節(jié)點(diǎn)根據(jù)收到的請(qǐng)求發(fā)送幀RTS或者清除發(fā)送幀CTS更新自身的網(wǎng)絡(luò)分配矢量NAV后,進(jìn)入步驟6); 2)發(fā)送節(jié)點(diǎn)的鄰居節(jié)點(diǎn)收到請(qǐng)求發(fā)送幀RTS后,判斷所述請(qǐng)求發(fā)送幀RTS是否是發(fā)給自身的,如果是,所述發(fā)送節(jié)點(diǎn)的鄰居節(jié)點(diǎn)就是接收節(jié)點(diǎn),所述接收節(jié)點(diǎn)回復(fù)清除發(fā)送幀CTS后,進(jìn)入步驟3);否則,所述發(fā)送節(jié)點(diǎn)的鄰居節(jié)點(diǎn)更新自身的網(wǎng)絡(luò)分配矢量NAV后,進(jìn)入步驟6); 3)接收節(jié)點(diǎn)的鄰居節(jié)點(diǎn)收到清除發(fā)送幀CTS后,判斷所述清除發(fā)送幀CTS是否是發(fā)給自身的,如果是,就進(jìn)入步驟4),否則,所述接收節(jié)點(diǎn)的鄰居節(jié)點(diǎn)更新自身的網(wǎng)絡(luò)分配矢量NAV后,進(jìn)入步驟6); 4)發(fā)送節(jié)點(diǎn)采用片段分組響應(yīng)確認(rèn)字符機(jī)制與接收節(jié)點(diǎn)交互數(shù)據(jù)包片段,具體步驟為 41)發(fā)送節(jié)點(diǎn)采用消息分割機(jī)制,將每個(gè)數(shù)據(jù)包分割成多個(gè)片段并賦予編號(hào),按照編號(hào)順序?qū)⒚咳齻€(gè)所述片段分為ー個(gè)分組,發(fā)送節(jié)點(diǎn)將所述數(shù)據(jù)包以片段為單位傳輸給接收節(jié)點(diǎn); 42)接收節(jié)點(diǎn)接收到ー個(gè)所述分組后,判斷所述分組是否正確,如果正確則進(jìn)入步驟5),否則回到步驟41); 5)接收節(jié)點(diǎn)向發(fā)送節(jié)點(diǎn)發(fā)送確認(rèn)字符ACK,發(fā)送節(jié)點(diǎn)接收到所述確認(rèn)字符ACK后,進(jìn)入步驟6); 6)結(jié)束本數(shù)據(jù)包發(fā)送流程。
2.根據(jù)權(quán)利要求I所述的基于媒介接入控制協(xié)議的無線傳感器網(wǎng)絡(luò)傳輸方法,其特征在于,所述的兩相鄰數(shù)據(jù)包發(fā)送流程之間的間隔時(shí)長t是根據(jù)網(wǎng)絡(luò)帶寬和ー個(gè)通信周期中所包括的時(shí)槽數(shù)確定的,取值為節(jié)點(diǎn)發(fā)送ー個(gè)字節(jié)所需的時(shí)間長的80 120倍。
3.根據(jù)權(quán)利要求I所述的基于媒介接入控制協(xié)議的無線傳感器網(wǎng)絡(luò)傳輸方法,其特征在于,所述步驟42)中,接收節(jié)點(diǎn)接收到ー個(gè)所述分組后,判斷所述分組是否正確的方法為根據(jù)數(shù)據(jù)包片段的編號(hào),判斷每個(gè)分組的三個(gè)片段是否完整,如果不完整,則判斷為不正確,如果完整則進(jìn)一歩判斷每個(gè)片段是否有錯(cuò)誤,如果有錯(cuò)誤,則判斷為不正確,如果所有片段均無錯(cuò)誤,則判斷為正確。
全文摘要
本發(fā)明公開了一種基于媒介接入控制協(xié)議的無線傳感器網(wǎng)絡(luò)傳輸方法,采用自適應(yīng)占空比調(diào)整機(jī)制和片段分組響應(yīng)ACK機(jī)制,在考慮控制開銷的情況下,增加了節(jié)點(diǎn)在一幀中交互數(shù)據(jù)的數(shù)量,有效地減小了延遲、提高了傳輸率,同時(shí)增大了網(wǎng)絡(luò)吞吐量。本發(fā)明是基于競爭的MAC協(xié)議,同時(shí)采用了常見的周期性偵聽/休眠機(jī)制、虛擬載波偵聽機(jī)制、RTS/CTS/DATA/ACK帶內(nèi)信令以及消息分割機(jī)制,這些機(jī)制對(duì)節(jié)點(diǎn)的能耗,避免串聽等都有積極的影響。本發(fā)明使得該MAC協(xié)議在面對(duì)突發(fā)事件時(shí)能夠出色的完成檢測(cè)任務(wù),不僅適用于稀疏的、有突發(fā)傳輸?shù)木W(wǎng)絡(luò),也同樣適用于密集的、高吞吐量的WSN網(wǎng)絡(luò)。
文檔編號(hào)H04W84/18GK102647805SQ20121014541
公開日2012年8月22日 申請(qǐng)日期2012年5月10日 優(yōu)先權(quán)日2012年5月10日
發(fā)明者劉昊, 吳建輝, 姜毅鑫, 蔣富龍 申請(qǐng)人:東南大學(xué)