一種應用于環境監測的多窗口udp無線傳輸方法
【專利摘要】本發明公開了一種應用于環境監測的多窗口UDP無線傳輸方法,該方法基于UDP的多窗口思想,進行協議重組,定義了傳輸協議的數據包START、START-ACK、DATA和DATA-ACK、包頭、功能碼、包序號、數據長度和數據內容格式。通過握手原理建立數據連接,根據反饋的響應信號,進行數據包補發、重發,保證了數據傳輸的準確性。多窗口數據循環發送,使發送數據具有更高的效率,保證了數據傳輸的高速率。其優點在于解決了TCP高協議處理開銷和UDP的低可靠性之間的矛盾,保證了環境監測中無線傳感網絡傳感器采集的數據能夠準確、高速率的傳輸到接收方。
【專利說明】—種應用于環境監測的多窗口 UDP無線傳輸方法
【技術領域】
[0001]本發明涉及一種多窗口 UDP無線傳輸方法,特別涉及一種應用于環境監測的多窗口 m)P無線傳輸方法。
【背景技術】
[0002]在傳統的監測系統中數據采集終端收集的數據傳輸協議根據應用場景的不同,會采用TCP或UDP傳輸協議進行監測數據傳輸。TCP協議提供了一種可靠的數據傳輸服務,一般用于多點通信和實時的數據業務,比如語音廣播等,它是一種面向連接的數據傳輸協議。在數據傳輸之前,通信節點之間必須建立起連接。為確保正確地接收數據,TCP協議要求在目標電腦成功收到數據時發回一個確認(ACK)。如果在某個時限內未收到相應的ACK,將重新傳送數據包。如果網絡擁塞,這種重新傳送將導致發送的數據包重復。UDP協議主要用來支持需要在計算機之間傳輸數據的網絡應用,包括網絡視頻會議系統在內的眾多的客戶/服務器模式的網絡應用都需要使用UDP協議。UDP協議是一種面向無連接的數據傳輸服務,它不能保證數據包以正確的順序被接收。該協議不能保證數據準確無誤地到達目的地。但是在采集數據量大的環境監測網絡中,需要把采集的數據即時、高速和準確的傳輸到接收方。由于TCP和UDP傳輸協議的速率和準確性方面的缺陷,它們都不能達到數據傳輸任務的要求。
【發明內容】
[0003]本發明的目的在于提供一種應用于環境監測的多窗口 UDP無線傳輸方法,以解決現有技術普遍存在的速率低、精準度差的缺點。
[0004]為實現上述目的,本發明通過以下技術方案實現:
一種應用于環境監測的多窗口 UDP無線傳輸方法,步驟如下:
1)將數據包分為多個組,每組分為多個窗口;
2)無線網關發送START消息,等待服務器回復START-ACK消息;
3)服務器收到START消息后,回復START-ACK消息;
4)無線網關接收到START-ACK消息后,確定START-ACK消息是否是有效消息,如果START-ACK是有效消息,表明無線網關和服務器成功建立了連接;如果START-ACK無效就重新發送START消息;
5)無線網關和服務器成功建立了連接以后無線網關開始發送DATA消息,將各組的DATA消息依次發送,等待服務器回復DATA-ACK消息;
6)服務器接收到消息為DATA消息時,以組為單位進行處理,收完一組數據或者收到新組數據后就立即返回數據接收狀態DATA-ACK消息,告訴無線網關補包情況,同時服務器將數據進行本地保存;
7)無線網關的標志位如果顯示沒有收到來自服務器的DATA-ACK,那么重發該組的DATA消息;如果顯示接收到有效DATA-ACK消息,那就解析DATA-ACK消息;如果存在傳輸失敗的窗口數據,就重新補發該窗口的數據;如果解析DATA-ACK消息得到所有的窗口都已發送成功,則視為該組已發送完畢,該組所有存于BUFF中的數據都清空,無線網關清除對應組的標志位;
8)各組依次進行數據的發送,全部組別發送完畢以后再從第一組開始循環發送。
[0005]所述START、START-ACK、DATA、DATA-ACK數據包的數據段包括包頭、功能碼、包序號、數據長度、數據內容的順序依次排列;
功能碼是握手協議功能碼表,分為四種功能碼,四種功能碼分別代表了發送端請求連接,接收端應答請求連接,發送端發送數據,接收端應答數據;
包序號是每個包獨有的ID號,作為服務器數據還原重組的依據;
數據長度為數據內容長度;
數據內容包括窗口組數、每組窗口數、窗口歸屬組號、窗口組號、每組窗口數、數據、窗口列表等信息;窗口組數是步驟I)中將數據包分成的組的數量;每組窗口數是每個數據組擁有的窗口數量;當前窗口號是指示數據窗口的位置;窗口列表用來回應應答數據;
START協議數據包包括包頭、功能碼、包序號、數據長度、窗口組數、每組窗口數;功能碼代表了發送端請求連接;
START-ACK協議數據包包括包頭、功能碼;功能碼代表了接收端應答請求連接;
DATA協議數據包包括包頭、功能碼、包序號、數據長度、窗口組數、每組窗口數、當前窗口號、數據;功能碼代表了發送端發送數據;
DATA-ACK協議數據包包括包頭、功能碼、包序號、數據長度、窗口組號、每組窗口數、窗口列表;功能碼代表了接收端應答數據。
[0006]特別地,步驟7)中所述的重發次數很多時,提高效率的方法是增加步驟I)中組的數量。
[0007]特別地,步驟6)中將數據進行本地保存時,采用雙緩存進行交替存檔。
[0008]特別地,步驟7)中所述的如果存在傳輸失敗的窗口數據,重新補發該窗口數據前,將已成功發送的窗口的儲存在BUFF中的數據清空,然后在清空的窗口位再次補入新的數據,將該組中需要補發的窗口數據與清空的窗口位中補入的新的數據一同發送。
[0009]本發明的有益效果在于:本發明基于UDP的多窗口思想,進行協議重組,定義了傳輸協議的數據包START、START-ACK、DATA和DATA-ACK、包頭、功能碼、包序號、數據長度和數據內容格式。通過握手原理建立數據連接,根據反饋的響應信號,進行數據包補發、重發,保證了數據傳輸的準確性。多窗口數據循環發送,使發送數據具有更高的效率,保證了數據傳輸的高速率。多窗口 Μ)Ρ無線傳輸方法有效地解決TCP的高協議處理開銷和UDP的低可靠性之間的矛盾,保證了環境監測中無線傳感網絡傳感器采集的數據能夠準確、高速率的傳輸到接收方。
【專利附圖】
【附圖說明】
[0010]圖1是本發明一種應用于環境監測的多窗口 UDP無線傳輸方法的環境監測系統結構示意圖。
[0011]圖2是本發明一種應用于環境監測的多窗口 UDP無線傳輸方法的握手協議數據包格式圖。
[0012]圖3是本發明一種應用于環境監測的多窗口 UDP無線傳輸方法的握手協議數據包功能圖。
[0013]圖4是本發明一種應用于環境監測的多窗口 UDP無線傳輸方法的START、DATA、ACK的具體協議格式圖。
【具體實施方式】
[0014]如圖1、圖2、圖3、圖4所不,為本發明一種應用于環境監測的多窗口 UDP無線傳輸方法的環境監測系統結構示意圖、握手協議數據包格式圖、握手協議數據包功能圖、START、START-ACK、DATA、DATA-ACK的具體協議格式圖。
一種應用于環境監測的多窗口 UDP無線傳輸方法,握手協議數據包的數據段按照包頭、功能碼、包序號、數據長度、數據內容的順序依次排列;所述包頭定為0x43455443,代表CETC ;所述功能碼是握手協議功能碼表,分為OxAO、OXBO、OxCO、OxDO四種功能碼,OxAO為發送端請求連接,OxBO為接收端應答請求連接,OxCO為發送端發送數據,OxDO為接收端應答數據;所述包序號是每個包獨有的ID號,作為接收方數據還原重組的依據,起始包序號為0x00000001 ;所述數據長度為數據內容長度;
所述數據內容包括窗口組數、每組窗口數、窗口歸屬組號、窗口組號、每組窗口數、數據、窗口列表等信息;所述窗口組數是將數據包分成的組的數量;所述每組窗口數是每個數據組擁有的窗口數量;所述當前窗口號是指示數據窗口的位置;所述窗口列表用來回應應答數據;
所述START協議數據包包括包頭、功能碼、包序號、數據長度、窗口組數、每組窗口數;功能碼代表了發送端請求連接;
所述START-ACK協議數據包包括包頭、功能碼;所述功能碼代表了接收端應答請求連接;
所述DATA協議數據包包括包頭、功能碼、包序號、數據長度、窗口組數、每組窗口數、當前窗口號、數據;所述功能碼代表了發送端發送數據;
所述DATA-ACK協議數據包包括包頭、功能碼、包序號、數據長度、窗口組號、每組窗口數、窗口列表;所述功能碼代表了接收端應答數據。
[0015]傳輸過程如下:
I)將數據包分為A、B、C、D共4組,每組32個窗口;
2 )無線網關發送START消息,等待接收方回復START-ACK消息。START數據包是0X43455443A010000000020420,0X43455443 是包頭,AO 是功能碼,10000000 是包序號,02 是數據長度是2字節,04是4組數,20是指每組使用20個窗口;
3)接收方收到START消息后,回復START-ACK消息。START-ACK數據包是0X43455443B0,0X43455443是包頭,BO是功能碼;
4)無線網關接收到START-ACK消息后,確定START-ACK消息是否是有效消息,如果START-ACK是有效消息,表明無線網關和接收方成功建立了連接;如果START-ACK無效則重新發送START消息;
5)無線網關和服務器成功建立了連接以后無線網關開始發送DATA消息。
[0016]如果窗口組號為1,每組窗口數為32,當前窗口號為3,包序號為0x00000001,裸數據為 CETC,則長度數據為 7。DATA 數據包是 0X43455443C0100000000701200343455443,0X43455443是包頭,CO是功能碼,10000000是包序號,07是指數據長度是7個字節,01是窗口組號,20是指每組使用20個窗口,03是當前窗口號,43455443是數據。
[0017]6)接收方接收到消息為DATA消息時,以組為單位進行處理,收完一組數據或者收到新組數據后就立即返回數據接收狀態DATA-ACK消息,告訴無線網關補包情況。同時接收方將數據進行本地保存,為了確保數據能夠按順序還原,接收方采用雙緩沖空間BUFFl和BUFF2進行交替存檔。
[0018]告訴無線網關補包的方式如下:假設窗口組號為1,每組窗口數為32,其中窗口 3沒有收到,DATA-ACK 包是 0X43455443D000000000060120FFF7,0X43455443 是包頭,DO 是功能碼,00000000是預留的包序號,06是數據長度,01是窗口組號,20是指每組使用20個窗口,FFF7是窗口列表,表示窗口 3沒接收到,無線網關收到以后,將會解析得窗口組號為1、窗口號為3的位置需要補發數據。
[0019]7)無線網關A組的標志位如果顯示沒有收到來自接收方的DATA-ACK消息,那么就重發A組的DATA消息;如果顯示接收到有效DATA-ACK消息,那么解析ACK消息得出傳輸失敗的窗口數據,重新補發,假設DATA-ACK包是0X43455443D000000000060120FFF7,則補發窗口組號為1、窗口號為3的窗口數據;如果解析DATA-ACK消息得到所有的窗口都已發送成功,則視為A組已發送完畢,該組所有存于BUFF中的數據都清空,無線網關將清除A組標志位。
[0020]提高傳輸效率的方法有:如果存在傳輸失敗的窗口數據,重新補發該窗口數據前,將已成功發送的窗口的儲存在BUFF中的數據清空,然后在清空的窗口位再次補入新的數據,將該組中需要補發的窗口數據與清空的窗口位中補入的新的數據一同發送;
提高效率的方法還有:如果重發A組的DATA消息次數很多時,可增加組的數量,例如增;toSA、B、C、D、E、F、G、!^\JE。
[0021]8)接著發送B組,發送B組的過程跟A組一樣,發送之前先檢索并置標志,根據標志發送,發送完清除標志,再操作C組、D組、A組…如此循環。
【權利要求】
1.一種應用于環境監測的多窗口 UDP無線傳輸方法,其特征在于步驟如下: 1)將數據包分為多個組,每組數據包分為多個窗口; 2)無線網關發送START消息,等待服務器回復START-ACK消息; 3)服務器收到START消息后,回復START-ACK消息; 4)無線網關接收到START-ACK消息后,確定START-ACK消息是否是有效消息,如果START-ACK是有效消息,表明無線網關和服務器成功建立了連接;如果START-ACK無效就重新發送START消息; 5)無線網關和服務器成功建立了連接以后無線網關開始發送DATA消息,將各組的DATA消息依次發送,等待服務器回復DATA-ACK消息; 6)服務器接收到消息為DATA消息時,以組為單位進行處理,收完一組數據或者收到新組數據后就立即返回數據接收狀態DATA-ACK消息,告訴無線網關補包情況,同時服務器將數據進行本地保存; 7)無線網關的標志位如果顯示沒有收到來自服務器的DATA-ACK,那么重發該組的DATA消息;如果顯示接收到有效DATA-ACK消息,那就解析DATA-ACK消息;如果存在傳輸失敗的窗口數據,重新補發該窗口的數據;如果解析DATA-ACK消息得到所有的窗口都已發送成功,則視為該組已發送完畢,該組所有存于BUFF中的數據都清空,無線網關清除對應組的標志位; 8)各組依次進行數據的發送,全部組別發送完畢以后再從第一組開始循環發送。
2.如權利要求1所述的應用于環境監測的多窗口UDP無線傳輸方法,其特征在于所述START、START-ACK、DATA、DATA-ACK數據包的數據段按照包頭、功能碼、包序號、數據長度、數據內容的順序依次排列; 所述功能碼是握手協議功能碼表,分為四種功能碼,四種功能碼分別代表了發送端請求連接,接收端應答請求連接,發送端發送數據,接收端應答數據; 所述包序號是每個包獨有的ID號,作為服務器數據還原重組的依據; 所述數據長度為數據內容長度; 所述數據內容包括窗口組數、每組窗口數、窗口歸屬組號、窗口組號、每組窗口數、數據、窗口列表等信息;所述窗口組數是步驟I)中將數據包分成的組的數量;所述每組窗口數是每個數據組擁有的窗口數量;所述當前窗口號是指示數據窗口的位置;所述窗口列表用來回應應答數據; 所述START協議數據包包括包頭、功能碼、包序號、數據長度、窗口組數、每組窗口數;功能碼代表了發送端請求連接; 所述START-ACK協議數據包包括包頭、功能碼;所述功能碼代表了接收端應答請求連接; 所述DATA協議數據包包括包頭、功能碼、包序號、數據長度、窗口組數、每組窗口數、當前窗口號、數據;所述功能碼代表了發送端發送數據; 所述DATA-ACK協議數據包包括包頭、功能碼、包序號、數據長度、窗口組號、每組窗口數、窗口列表;所述功能碼代表了接收端應答數據。
3.如權利要求1所述的應用于環境監測的多窗口UDP無線傳輸方法,其特征在于所述步驟7)中所述的重發該組的DATA消息次數很多時,提高效率的方法是增加步驟I)中組的數量。
4.如權利要求1所述的應用于環境監測的多窗口UDP無線傳輸方法,其特征在于所述步驟6)中將數據進行本地保存時,采用雙緩存進行交替存檔。
5.如權利要求1所述的應用于環境監測的多窗口UDP無線傳輸方法,其特征在于所述步驟7)中所述的如果存在傳輸失敗的窗口數據,重新補發該窗口數據前,將已成功發送的窗口的儲存在BUFF中的數據清空,然后在清空的窗口位再次補入新的數據,將該組中需要補發的窗口數據與清空的窗口位中補入的新的數據一同發送。
【文檔編號】H04L29/08GK104394234SQ201410766145
【公開日】2015年3月4日 申請日期:2014年12月15日 優先權日:2014年12月15日
【發明者】肖云龍, 韓磊, 王興元, 潘金珠 申請人:無錫中電科物聯網創新研發中心