專利名稱:一種適用于無線自組織網(wǎng)絡的報頭壓縮方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種適用于無線自組織網(wǎng)絡的報頭壓縮方法。該方法可以在多跳無線自組網(wǎng)中實現(xiàn)對IP, TCP以及UDP協(xié)議報頭的壓縮和解壓縮,從而減少在無線信道中傳輸?shù)拈_銷,節(jié)省無線信道寶貴的帶寬資源。該方法在實現(xiàn)協(xié)議報頭壓縮和解壓縮功能的同時,可以對抗無線信道髙誤碼和髙碰撞丟失率的環(huán)境,是一種健壯而可靠的報頭壓縮方法,適用于各種多跳無線網(wǎng)絡。
背景技術(shù):
隨著信息及網(wǎng)絡技術(shù)的發(fā)展,無線及移動通信憑借其靈活便捷的優(yōu)勢越來越多的為用戶所應用。在民用方面,IEEE802.il及wimax等技術(shù)未來都將作為3G網(wǎng)的一部分而存在,并且將進一步向Ad hoc(此處的Ad hoc即為無線自組網(wǎng)的意思意即網(wǎng)絡中的每個節(jié)點都既是端機又是路由器,各節(jié)點地位平等,沒有端機和核心節(jié)點的區(qū)別,并且大都具有移動性)的模式演進。而未來的3G、 4G網(wǎng)絡都致力于向用戶提供高質(zhì)量的靈活的個性化服務和寬帶多媒體服務。所以,用戶在無線網(wǎng)絡中應用寬帶多媒體及實時業(yè)務的需求在不斷提升;在軍用方面,戰(zhàn)術(shù)互聯(lián)網(wǎng)也主要采用移動Ad hoc的方式來組網(wǎng),而且隨著軍事應用和作戰(zhàn)模式的變化,戰(zhàn)術(shù)互聯(lián)網(wǎng)中所傳輸?shù)南⒑蜆I(yè)務也在向著綜合化和多樣化發(fā)展。這其中包括態(tài)勢感知消息,指揮控制消息,實時語音消息等等,每種類型的消息對網(wǎng)絡的服務質(zhì)量都有不同的要求。
承載如話音等多媒體應用的網(wǎng)絡中,往往以短報文居多(采用了一定的應用層數(shù)據(jù)壓縮技術(shù)之后可以達到每數(shù)據(jù)包幾十個字節(jié))。這些小的數(shù)據(jù)報文在目前的TCP/IP為主的網(wǎng)絡甚至將來的全IP網(wǎng)絡中傳輸,是極其不經(jīng)濟的。以目前的IPv4網(wǎng)絡為例,每個報文在IP層和傳輸層引入的報頭開銷至少為28字節(jié)(采用UDP協(xié)議)或者40字節(jié)(采用TCP協(xié)議),再加上應用層及數(shù)據(jù)鏈路層的開銷則至少為50字節(jié)。這對短報文來說極大地降低了網(wǎng)絡帶寬的利用率。例如假設(shè)低速鏈路(例如無線信道)的包傳送率為50個/s,那么采用IPv4/UDP協(xié)議傳輸?shù)脑?,協(xié)議報頭將至少占用帶寬11.2kbits/s,若采用IPv4ATCP協(xié)議傳輸?shù)脑拕t至少要占用帶寬16kbits/s。這種耗費即便是對于實時的語音業(yè)務來說也是相對巨大的(例如:目前GSM的語音采樣速率僅為13kbits/s)。這種耗費在條件相對惡劣的Adhoc網(wǎng)絡如戰(zhàn)術(shù)互聯(lián)網(wǎng)中顯得尤其難以承受。如何高效可靠的壓縮這些耗費成為Ad hoc網(wǎng)絡需要解決的一個難題。
目前已經(jīng)存在的報頭壓縮方法主要是IETF的一系列草案及標準。分別針對串行低速鏈路,以及無線環(huán)境下的IP/TCP、 IP/UDP、 IP/UDP/RTP以及RAW IP(原始IP)的數(shù)據(jù)報頭進行壓縮。另外也有人提出了個別針對Ad hoc等無線網(wǎng)絡的報頭壓縮方法。
VJHC方法主要針對串行低速接入鏈路(300 19000bps)的IP/TCP報頭的壓縮。VJHC采用A量方法進行報頭壓縮。該方法中壓縮端并不發(fā)送當前數(shù)據(jù)包中字段的原始值,而只發(fā)送原始值與前一個相鄰數(shù)據(jù)報頭中對應字段的差值。解壓縮端收到這個差值之后,將其與前一個相鄰報頭值求和,就計算出了當前數(shù)據(jù)報頭字段的值。由于每次在信道中傳輸?shù)亩际窍鄬τ谇耙粋€數(shù)據(jù)報頭字段的差值,所以該方法稱之為厶量算法。IETF的網(wǎng)絡工作組在1999年推出了針對低速和中速的易丟包信道(包括無線信道)的IPHC方法。該方法能夠?qū)P/TCP、IP/UDP協(xié)議頭部進行壓縮。該方法在VJHC的基礎(chǔ)上引入了單向信道情況下的差錯控制機制,其核心方法仍然是A量算法。R0HC也是IETF網(wǎng)絡工作組提出的一種針對無線單跳網(wǎng)絡的壓縮方法。ROHC核心方法也稱之為LSB(Least Significant Bit)方法。該方法只傳送協(xié)議字段中相對于前一 個報頭變化了的比特。例如前一 個數(shù)據(jù)包的某個字段值為"0110010101"(二進制比特序列),而當前數(shù)據(jù)包中的值為"011001101(T,則本次發(fā)送方只傳送"1010"來表示這個字段。這種LSB方法最大限度地縮減了壓縮報頭的大小,剔除了相鄰數(shù)據(jù)包的冗余。另外很多其它文獻提出了在Adhoc網(wǎng)絡中應用報頭壓縮的思想,但是沒有提出完整而具體的方法,尚不具有應用價值。
由上文可以看出,目前的壓縮方法法都是依據(jù)同一個流的數(shù)據(jù)報頭之間的相關(guān)性進行壓縮的,壓縮端和解壓縮端都利用本次數(shù)據(jù)包中字段的值與上下文(上次成功傳輸或解壓縮的報頭)中的值進行運算(例如求和或者求差值)得出壓縮報頭或完整報頭。這種方法在有誤包和丟包的信道中會引入過多的數(shù)據(jù)差錯和時延。例如:當發(fā)節(jié)點發(fā)送的數(shù)據(jù)包在信道中丟失或者由于誤碼被底層丟棄時,收節(jié)點將無法收到并對這個數(shù)據(jù)包進行解壓縮,也就無法更新上下文。然而此時發(fā)節(jié)點已經(jīng)更新了上下文(剛剛傳送并丟了的數(shù)據(jù)報頭值)。此后發(fā)節(jié)點將按照新的上下文壓縮后續(xù)的數(shù)據(jù)包,而收節(jié)點將按照舊的上下文來解壓縮報頭。如果此時沒有一種有效的差錯發(fā)現(xiàn)和恢復方法,收發(fā)節(jié)點之間將永遠無法獲得一致的上下文,收節(jié)點所恢復出來的報頭將永遠是錯誤的。
發(fā)明內(nèi)容
技術(shù)問題本發(fā)明的目的是提供一種適用環(huán)境為帶寬窄,誤碼率髙,丟包以及碰撞率高的無線自組織網(wǎng)絡的報頭壓縮方法。發(fā)送節(jié)點利用該方法壓縮所發(fā)送的報文中的報頭冗余信息,提髙信道利用效率;接收節(jié)點利用該方法將接收到的壓縮報文的m頭還原,從而不影響應用層業(yè)務的操作,實現(xiàn)對上層業(yè)務透明的壓縮方法。另外,報頭壓縮方法應該具有一定可靠性和健壯性,即某個壓縮報文的丟失(誤碼等原因均會引起報文丟失)不應該影響后續(xù)其他報文的正確壓縮和解壓縮。
技術(shù)方案本發(fā)明的適用于無線自組織網(wǎng)絡的報頭壓縮方法由連接建立過程和壓縮與解壓縮過程構(gòu)成,具體如下
連接建立過程
I) 、源節(jié)點連接建立過程
II) 、源節(jié)點檢測上層是否有新的數(shù)據(jù)流產(chǎn)生,若有則繼續(xù),否則在步驟ll)循環(huán)檢測;
12) 、生成一個全網(wǎng)唯一的連接標識號ID來唯一標識該數(shù)據(jù)流;
13) 、構(gòu)造一個連接請求消息request,該請求消息中包含連接號,數(shù)據(jù)流的第一個原始報文即攜帶了完整報頭結(jié)構(gòu)的報文;
14) 、發(fā)送該請求消息給目的節(jié)點,并啟動定時期Tl;
15) 、等待目的節(jié)點回送的確認ACK消息,或者定時器T1的超時事件;若收到ACK則繼續(xù)否則跳到步驟17);
16) 、將該數(shù)據(jù)流的連接標記為可以壓縮并跳轉(zhuǎn)到步驟11);
17) 、將該數(shù)據(jù)流的連接標記為不可以壓縮并跳轉(zhuǎn)到步驟ll);2)、目的節(jié)點的連接建立步驟如下
21) 、檢測是否收到request消息,若收到則繼續(xù),否則在步驟21)循環(huán)檢測;
22) 、記錄request消息中ID號和對應的完整報頭信息;
23) 、將request中攜帶的數(shù)據(jù)和完整報頭交給上層應用;
24) 、構(gòu)造應答ACK消息,該消息中攜帶剛剛收到的request消息中的ID號;
25) 、回送該ACK消息給源節(jié)點并標記該數(shù)據(jù)流的連接為可以壓縮,跳轉(zhuǎn)到步驟l;壓縮與解壓縮過程
3) 、源節(jié)點壓縮過程-
31) 、等待從上層接收一個數(shù)據(jù)報文,若收到則繼續(xù),否則停留在步驟31)等待接收;
32) 、檢測其是否屬于可壓縮數(shù)據(jù)流中的報文(即先前是否發(fā)送過對應的request并正確收到ACK,若是則繼續(xù),否則跳轉(zhuǎn)到步驟35);
33) 、構(gòu)造壓縮報頭,壓縮報頭中攜帶連接建立過程中生成的ID號和相對于第一個報文而言變化了的字段信息,而將不變的字段信息刪除掉,其中的變化信息包括-
TCP報頭的序列號字段(僅TCP流具有)、TCP報頭的確認號字段(僅TCP流具有)、TCP報頭的窗口號字段(僅TCP流具有),TCP報頭的緊急指針字段(僅TCP流具有),TCP報頭的校驗和字段(僅TCP流具有)、片偏移字段(僅分片IP報文具有)、UDP校驗和字段(僅UDP報文具有);
34) 、將步驟33)中構(gòu)造的攜帶壓縮報頭的報文發(fā)送給目的節(jié)點,并跳轉(zhuǎn)到步驟31);
35) 、發(fā)送攜帶完整報頭的報文給目的節(jié)點并跳轉(zhuǎn)到步驟31);
4) 、目的節(jié)點的解壓縮步驟如下
4W、從底層接收一個數(shù)據(jù)包,若接收成功則繼續(xù),否則在歩驟41)等待接收;
42) 、檢測其是否為攜帶壓縮報頭的報文,若是則繼續(xù),否則跳轉(zhuǎn)到步驟46);
43) 、以報文中攜帶的ID號為索引,査找該數(shù)據(jù)流中的不變字段,并利用該不變字段和報文中攜帶的變化字段恢復完整報頭;
44) 、將恢復后的報頭和數(shù)據(jù)一起交給上層應用;
45) 、跳轉(zhuǎn)到步驟41);
46) 、將收到的數(shù)據(jù)包交給上層應用并跳轉(zhuǎn)到步驟41)。
有益效果本發(fā)明通過在無線自組織網(wǎng)絡的源節(jié)點壓縮數(shù)據(jù)報文的頭部信息而在目的節(jié)點處解壓縮和恢復報文的完整報頭信息的方法,實現(xiàn)了無線自組織網(wǎng)絡的IP,TCP以及UDP報頭壓縮的目的。通過應用該方法,無線自組網(wǎng)能夠大大地提高其信道帶寬利用率并具有以
下的有益效果
1、 實現(xiàn)了同一個流的連續(xù)報文無記憶性,使該方法對丟包不敏感,提髙了該方法的健壯
性;
2、 僅存在簡單的連接建立操作,信令簡單,相比于其他具有復雜信令的方法更加易于實
現(xiàn);
3、 對上層應用是透明的,可擴展性較好可以和現(xiàn)有的各種網(wǎng)絡設(shè)備互通。綜上所述,本發(fā)明具有可擴展性好,健壯性好,可靠性高和易于實現(xiàn)等特點,適合應用
在各種無線自組織網(wǎng)絡中。
下面結(jié)合附圖對本發(fā)明進一步說明。圖1:源節(jié)點連接建立步驟;圖2:目的節(jié)點連接建立步驟;圖3:源節(jié)點壓縮步驟;圖4:目的節(jié)點解壓縮步驟
圖5:完整的IP+TCP的報頭格式,其中陰影部分為一個流的不變字段,只需在流的連接建立過程中傳輸,而白色部分為一個流的變化字段,需要在每個報文中攜帶;
圖6:完整的IP+UDP的報頭格式,其中陰影部分為一個流的不變字段,只需在流的連接建立過程中傳輸,而白色部分為一個流的變化字段,需要在每個報文中攜帶;
圖7:壓縮的IP+TCP報頭,其中類型值指示該報頭為壓縮報頭,而S、 A、 W比特指示序列號、確認號和窗口號的位置,特殊比特指示TCP報頭中的特殊比特值,緊急指針和校驗和即為原始TCP報頭中的校驗和;
圖8:壓縮的IP+UDP報頭,其中F和MF標志指示該報頭是否是依據(jù)分片IP報頭壓縮的,而分片ID,片偏移和UDP校驗和均為原始IP和UDP報頭中的相關(guān)字段的原始值;
具體實施例方式
適用于無線自組織網(wǎng)絡的報頭壓縮方法采用逐段壓縮和解壓縮機制,其實現(xiàn)方案主要分為兩部分過程即連接建立過程和壓縮與解壓縮過程,下面分別詳述之 、
在分組網(wǎng)絡中,源節(jié)點和目的節(jié)點的一次通信稱之為一個連接。 一個連接中源和目的之間可能需要交互大量的數(shù)據(jù),這些數(shù)據(jù)被分割為一個個的報文,陸續(xù)地由源節(jié)點傳送至目的節(jié)點。連接每次發(fā)送一個報文,當經(jīng)過多次傳輸后, 一個連接中的所有報文都傳送完畢后,連接便結(jié)束了 。同屬于一個連接的多個報文的頭部有很多字段信息是相同的或者可以根據(jù)連接中某個報文頭部的相關(guān)信息推斷后續(xù)其他報文頭部中的相關(guān)信息。
本發(fā)明提出的報頭壓縮方法利用同一個連接中連續(xù)報頭中的固定信息和可推斷信息。源節(jié)點僅傳送連接中第一個報文的完整報頭,后續(xù)其他報文傳送壓縮的報頭,而接收節(jié)點根據(jù)接收到的該連接第一個報文的完整頭部和當前壓縮頭部的信息解壓縮和還原當前壓縮報頭中的其他信息。
該方法由連接建立過程和壓縮與解壓縮過程構(gòu)成,具體如下連接建立過程
I) 、源節(jié)點連接建立過程
II) 、源節(jié)點檢測上層是否有新的數(shù)據(jù)流產(chǎn)生,若有則繼續(xù),否則在步驟ll)循環(huán)檢測;
12) 、生成一個全網(wǎng)唯一的連接標識號ID來唯一標識該數(shù)據(jù)流;
13) 、構(gòu)造一個連接請求消息request,該請求消息中包含連接號,數(shù)據(jù)流的第一個原始報文即攜帶了完整報頭結(jié)構(gòu)的報文;
14) 、發(fā)送該請求消息給目的節(jié)點,并啟動定時期Tl;
15) 、等待目的節(jié)點回送的確認ACK消息,或者定時器T1的超時事件;若收到ACK則繼續(xù)否則跳到步驟17);
16) 、將該數(shù)據(jù)流的連接標記為可以壓縮并跳轉(zhuǎn)到步驟ll);17)、將該數(shù)據(jù)流的連接標記為不可以壓縮并跳轉(zhuǎn)到步驟ll);
2) 、目的節(jié)點的連接建立步驟如下
21) 、檢測是否收到request消息,若收到則繼續(xù),否則在步驟21)循環(huán)檢測;
22) 、記錄request消息中ID號和對應的完整報頭信息;
23) 、將request中攜帶的數(shù)據(jù)和完整報頭交給上層應用;
24) 、構(gòu)造應答ACK消息,該消息中攜帶剛剛收到的request消息中的ID號;
25) 、回送該ACK消息給源節(jié)點并標記該數(shù)據(jù)流的連接為可以壓縮,跳轉(zhuǎn)到步驟l;壓縮與解壓縮過程
3) 、源節(jié)點壓縮過程
31) 、等待從上層接收一個數(shù)據(jù)報文,若收到則繼續(xù),否則停留在步驟31)等待接收;
32) 、檢測其是否屬于可壓縮數(shù)據(jù)流中的報文(即先前是否發(fā)送過對應的request并正確收到ACK,若是則繼續(xù),否則跳轉(zhuǎn)到步驟35);
33) 、構(gòu)造壓縮報頭,壓縮報頭中攜帶連接建立過程中生成的ID號和相對于第一個報文而言變化了的字段信息,而將不變的字段信息刪除掉,其中的變化信息包括-
TCP報頭的序列號字段(僅TCP流具有)、TCP報頭的確認號字段(僅TCP流具有)、TCP報頭的窗口號字段(僅TCP流具有),TCP報頭的緊急指針字段(僅TCP流具有),TCP報頭的校驗和字段(僅TCP流具有)、片偏移字段(僅分片IP報文具有)、UDP校驗和字段(僅UDP報文具有);
34) 、將步驟33)中構(gòu)造的攜帶壓縮報頭的報文發(fā)送給目的節(jié)點,并跳轉(zhuǎn)到步驟31);
35) 、發(fā)送攜帶完整報頭的報文給目的節(jié)點并跳轉(zhuǎn)到步驟31);
4) 、目的節(jié)點的解壓縮步驟如下
41) 、從底層接收一個數(shù)據(jù)包,若接收成功則繼續(xù),否則在步驟41)等待接收;
42) 、檢測其是否為攜帶壓縮報頭的報文,若是則繼續(xù),否則跳轉(zhuǎn)到步驟46);
43) 、以報文中攜帶的ID號為索引,査找該數(shù)據(jù)流中的不變字段,并利用該不變字段和報文中攜帶的變化字段恢復完整報頭;
44) 、將恢復后的報頭和數(shù)據(jù)一起交給上層應用;
45) 、跳轉(zhuǎn)到步驟41);
46) 、將收到的數(shù)據(jù)包交給上層應用并跳轉(zhuǎn)到步驟41)。
權(quán)利要求
1、一種適用于無線自組織網(wǎng)絡的報頭壓縮方法,其特征在于該方法由連接建立過程和壓縮與解壓縮過程構(gòu)成,具體如下連接建立過程1)、源節(jié)點連接建立過程11)、源節(jié)點檢測上層是否有新的數(shù)據(jù)流產(chǎn)生,若有則繼續(xù),否則在步驟11)循環(huán)檢測;12)、生成一個全網(wǎng)唯一的連接標識號ID來唯一標識該數(shù)據(jù)流;13)、構(gòu)造一個連接請求消息request,該請求消息中包含連接號,數(shù)據(jù)流的第一個原始報文即攜帶了完整報頭結(jié)構(gòu)的報文;14)、發(fā)送該請求消息給目的節(jié)點,并啟動定時期T1;15)、等待目的節(jié)點回送的確認ACK消息,或者定時器T1的超時事件;若收到ACK則繼續(xù)否則跳到步驟17);16)、將該數(shù)據(jù)流的連接標記為可以壓縮并跳轉(zhuǎn)到步驟11);17)、將該數(shù)據(jù)流的連接標記為不可以壓縮并跳轉(zhuǎn)到步驟11);2)、目的節(jié)點的連接建立步驟如下21)、檢測是否收到request消息,若收到則繼續(xù),否則在步驟21)循環(huán)檢測;22)、記錄request消息中ID號和對應的完整報頭信息;23)、將request中攜帶的數(shù)據(jù)和完整報頭交給上層應用;24)、構(gòu)造應答ACK消息,該消息中攜帶剛剛收到的request消息中的ID號;25)、回送該ACK消息給源節(jié)點并標記該數(shù)據(jù)流的連接為可以壓縮,跳轉(zhuǎn)到步驟1;壓縮與解壓縮過程3)、源節(jié)點壓縮過程31)、等待從上層接收一個數(shù)據(jù)報文,若收到則繼續(xù),否則停留在步驟31)等待接收;32)、檢測其是否屬于可壓縮數(shù)據(jù)流中的報文(即先前是否發(fā)送過對應的request并正確收到ACK,若是則繼續(xù),否則跳轉(zhuǎn)到步驟35);33)、構(gòu)造壓縮報頭,壓縮報頭中攜帶連接建立過程中生成的ID號和相對于第一個報文而言變化了的字段信息,而將不變的字段信息刪除掉,其中的變化信息包括TCP報頭的序列號字段、TCP報頭的確認號字段、TCP報頭的窗口號字段,TCP報頭的緊急指針字段,TCP報頭的校驗和字段、片偏移字段、UDP校驗和字段;34)、將步驟33)中構(gòu)造的攜帶壓縮報頭的報文發(fā)送給目的節(jié)點,并跳轉(zhuǎn)到步驟31);35)、發(fā)送攜帶完整報頭的報文給目的節(jié)點并跳轉(zhuǎn)到步驟31);4)、目的節(jié)點的解壓縮步驟如下41)、從底層接收一個數(shù)據(jù)包,若接收成功則繼續(xù),否則在步驟41)等待接收;42)、檢測其是否為攜帶壓縮報頭的報文,若是則繼續(xù),否則跳轉(zhuǎn)到步驟46);43)、以報文中攜帶的ID號為索引,查找該數(shù)據(jù)流中的不變字段,并利用該不變字段和報文中攜帶的變化字段恢復完整報頭;44)、將恢復后的報頭和數(shù)據(jù)一起交給上層應用;45)、跳轉(zhuǎn)到步驟41);46)、將收到的數(shù)據(jù)包交給上層應用并跳轉(zhuǎn)到步驟41)。
全文摘要
本發(fā)明涉及一種適用于無線自組織網(wǎng)絡的報頭壓縮方法。本發(fā)明屬于通信網(wǎng)絡協(xié)議設(shè)計領(lǐng)域。本發(fā)明通過在無線自組織網(wǎng)絡的源節(jié)點對發(fā)送的IP,TCP或者UDP報文進行報頭信息的壓縮從而減少發(fā)送到無線信道中的開銷,提高無線信道利用率;目的節(jié)點對接收到的壓縮報文的頭部信息進行解壓縮還原,從而實現(xiàn)對上層透明的報頭壓縮和解壓縮功能。由于采用完整傳輸變化字段的策略,無須考慮連續(xù)數(shù)據(jù)包之間的關(guān)聯(lián),本方法可以最大限度地對抗誤碼等原因造成的報文丟失對壓縮方法性能的影響,具有較強的可靠性和健壯性。
文檔編號H04W28/04GK101568144SQ20091002606
公開日2009年10月28日 申請日期2009年3月18日 優(yōu)先權(quán)日2009年3月18日
發(fā)明者于衛(wèi)波, 敏 儲, 牛大偉, 海 王 申請人:中國人民解放軍理工大學