一種6lowpan數據報的壓縮重組系統和方法與流程
2023-04-22 23:04:51

本發明屬於無線網絡傳輸的技術領域,具體涉及一一種6lowpan數據報的壓縮重組系統和方法。
背景技術:
6lowpan的一個重要特性就是,ieee.802.15.4提供的數據報的有效載荷的大小有限,其中約一半會被ipv6報頭消耗掉,但當ipv6可以放進ieee802.15.4數據報時,6lowpan才是最有效率的。lowpan的壓縮方案一直考慮的是對ipv6頭部欄位進行壓縮。
由於在ipv6中,mac層支持的載荷長度遠遠大於6lowpan的底層所能提供的載荷長度,為了實現mac層與網絡層的無縫連結,所以在網絡層和mac層之間增加一個網絡適配層,用來完成報頭壓縮、分片和重組及其他工作。當數據報在適配層傳輸時,多以分片的形式進行傳輸,除第一分片外,後續分片的分片頭的很多數據是重複多餘的,極大地增加了網絡的負載,導致了分片的增多,並降低了適配層的傳輸效率。
在2016年第35屆中國控制會議論文集的論文《low-powerwirelesssensornetworkprotocolofmobilehealthbasedonipv6》中提出,可在適配層中對6lowpan數據報的分片頭部進行壓縮,對適配層的分片頭部進行壓縮前的格式如表1所示:
表1
對表1中所示的適配層的分片頭部進行壓縮後的格式如表2所示:
表2
如表1、表2所示,該方法對適配層中分片頭部進行了兩部分壓縮:一是將數據報標記(datapackettag)由16個比特壓縮成8個比特,即提供標記0~255,足以區分數據報;二是將數據偏移(datapacketoffset)將8個比特壓縮為5個比特,0~31自增足以表示後續分片的個數。雖然該方法在一定程度上將適配層中的分片頭部進行了壓縮,然而,在分片頭部還有許多的冗餘欄位並沒有被壓縮,這就降低了數據報在適配層的傳輸效率。
技術實現要素:
本發明克服現有技術存在的不足,所要解決的技術問題為:提供一種能夠提高數據報在適配層的傳輸效率,降低網絡的負載的6lowpan數據報的壓縮重組系統和方法。
為了解決上述技術問題,本發明採用的技術方案為:一種6lowpan數據報的壓縮重組系統,壓縮動作發生在適配層,重組動作發生網絡層,在適配層中傳輸的數據報包括:第一分片和後續分片,所述的壓縮重組系統包括:標識壓縮單元:用於將後續分片的分片頭標識由多個比特壓縮為一個比特,並確定壓縮後的標識符號;標識符號賦值單元:用於對確定後的標識符號進行賦值,並建立不同的標識符號值與是否代表其為後續分片的分片頭之間的對應關係;長度壓縮單元:用於將後續分片的分片頭數據報長度由多個比特壓縮為零個比特;數據包重組單元:用於將進行報頭壓縮後的數據包在網絡層進行重組。
優選地,所述數據包重組單元包括:第一判斷單元:用於判斷當前數據報的長度是否大於122位元組;第二判斷單元:用於噹噹前數據報的長度大於122位元組時,根據數據報標記,判斷是否接收過該數據報;調用單元:用於當判定接收過當前數據報時,直接調用該標記的單鍊表,然後將單鍊表組裝,釋放單鍊表的緩衝區,交給網絡層處理;緩存單元:用於當判定沒有接收過當前數據報時,緩存當前數據報的數據報標記,將接收到的分片頭標識未被壓縮的第一分片,放在單鍊表的表頭;第三判斷單元:用於判斷當前分片的分片頭是否為後續分片的分片頭;退出單元:用於噹噹前分片的分片頭不是後續分片的分片頭時,則退出,重新進行下一數據包的重組;排序單元:用於噹噹前分片的分片頭是後續分片的分片頭時,根據當前分片在重組時的排列序號,使後續分片在單鍊表中有序排放,然後將單鍊表組裝,釋放單鍊表的緩衝區,交給網絡層處理;組裝釋放單元:用於將單鍊表組裝,釋放單鍊表的緩衝區,交給網絡層處理。
優選地,所述的壓縮重組系統還包括:數據報標記壓縮單元:用於將分片的數據報標記所佔的比特進行壓縮;數據偏移壓縮單元:用於將分片的數據偏移所佔的比特進行壓縮。
優選地,所述標識符號為t,t的值為1或0,當t為1時,表示該分片的分片頭為後續後片頭,當t為0時,表示後續分片錯誤。
相應地,一種6lowpan數據報的壓縮重組方法,壓縮動作發生在適配層,重組動作發生網絡層,在適配層中傳輸的數據報包括:第一分片和後續分片,所述的壓縮重組方法包括:將後續分片的分片頭標識由多個比特壓縮為一個比特,並確定壓縮後的標識符號;對確定後的標識符號進行賦值,並建立不同的標識符號值與是否代表其為後續分片的分片頭之間的對應關係;將後續分片的分片頭數據報長度由多個比特壓縮為零個比特;將進行報頭壓縮後的數據包在網絡層進行重組。
優選地,所述將進行報頭壓縮後的數據包在網絡層進行重組,具體包括以下步驟:s101、判斷當前數據報的長度是否大於122位元組,如是,則分片執行步驟s102,否則,直接執行步驟s107;s102、根據數據報標記,判斷是否接收過該數據報,如是,則直接調用該標記的單鍊表,執行步驟s105,否則,執行步驟s103;s103、緩存當前數據報的數據報標記,將接收到的分片頭標識未被壓縮的第一分片,放在單鍊表的表頭;s104、判斷當前分片的分片頭是否為後續分片的分片頭,如是,執行步驟s105,否則,執行步驟s106;s105、根據當前分片在重組時的排列序號,使後續分片在單鍊表中有序排放,然後執行步驟s107;s106、退出,重新進行下一數據包的重組;s107、將單鍊表組裝,釋放單鍊表的緩衝區,交給網絡層處理。
優選地,所述的壓縮重組方法還包括:將分片的數據報標記所佔的比特進行壓縮;將分片的數據偏移所佔的比特進行壓縮。
優選地,所述標識符號為t,t的值為1或0,當t為1時,表示該分片的分片頭為後續後片頭,當t為0時,表示後續分片錯誤。
本發明與現有技術相比具有以下有益效果:
1、本發明在現有技術的基礎上進行了改進,一方面設立了標識符號來減少分片頭標識所佔的字節,另一方面壓縮了後續分片中冗餘的分片頭數據報長度,全方位地對適配層中的分片頭部進行了壓縮,提高了數據報在適配層的傳輸效率,降低了網絡的負載。
2、本發明在適配層中對分片頭部進行壓縮之後,也有利於壓縮後的數據包在網絡層的重組;此外,本發明只是在現有的壓縮方法的基礎上對其進行改進與完善,並不是推倒重來,具有良好的推廣性。
附圖說明
下面結合附圖對本發明做進一步詳細的說明;
圖1為本發明實施例一提供的一種6lowpan數據報的壓縮重組系統的結構示意圖;
圖2為本發明實施例二提供的一種6lowpan數據報的壓縮重組系統的結構示意圖;
圖3為本發明實施例三提供的一種6lowpan數據報的壓縮重組系統的結構示意圖;
圖4為本發明實施例一提供的一種6lowpan數據報的壓縮重組方法中數據包在網絡層中進行重組的流程示意圖;
圖中:101為標識壓縮單元,102為標識符號賦值單元,103為長度壓縮單元,104為數據包重組單元,105為數據報標記壓縮單元,106為數據偏移壓縮單元,1041為第一判斷單元,1042為第二判斷單元,1043為調用單元,1044為緩存單元,1045為第三判斷單元,1046為退出單元,1047為排序單元,1048為組裝釋放單元。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明的一部分實施例,而不是全部的實施例;基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
6lowpan,是ipv6overlowpowerwirelesspersonalareanetwork的簡稱,是基於ipv6協議框架下,完成ipv6數據在低速無線個域網傳輸的協議框架;數據報標記(datapackettag),用來標識一個被拆分的ipv6數據報,所以同一個數據報的所有分片的該欄位的值全部相等,當發送端發送一個完整的數據報,將其值自動加一;數據偏移(datapacketoffset),在後續分片中出現,是一個8位元組長度的自增1的數據,用來標識該分片在重組時的排列序號;數據報的長度(datapacketsize),表示在分片之前的ipv6數據報的原始長度。
圖1為本發明實施例一提供的一種6lowpan數據報的壓縮重組系統的結構示意圖,如圖1所示,一種6lowpan數據報的壓縮重組系統,壓縮動作發生在適配層,重組動作發生網絡層,在適配層中傳輸的數據報包括:第一分片和後續分片,所述的壓縮重組系統包括:
標識壓縮單元101:用於將後續分片的分片頭標識由多個比特壓縮為一個比特,並確定壓縮後的標識符號。
標識符號賦值單元102:用於對確定後的標識符號進行賦值,並建立不同的標識符號值與是否代表其為後續分片的分片頭之間的對應關係。
長度壓縮單元103:用於將後續分片的分片頭數據報長度由多個比特壓縮為零個比特。
數據包重組單元104:用於將進行報頭壓縮後的數據包在網絡層進行重組。
具體地,所述標識符號可為t,t的值可為1或0,當t為1時,表示該分片的分片頭為後續後片頭,當t為0時,表示後續分片錯誤。
以表1中所示的分片頭部為例,後續分片的分片頭的前五個字節11100用來表示這是一個分片頭並始終為11100,佔據了五個字節,由於後續分片可能有多個,重複的11100累計,增加了網絡的負載同時又導致了分片的增加,並降低了適配層的傳輸效率。採用本實施例,壓縮了後續分片的分片頭的前五個比特11100,用一個1比特的t標識代替11100,節省了四個字節。
同樣地,原始數據報長度(datapacketsize)經過6lowpan分片之後的所有分片幀的該欄位值全部相等,後續分片重複的數據報長度增加了網絡的負載。採用本實施例,壓縮後續分片的分片頭數據報的長度(datapacketsize)11比特,在第一個分片到達接收端時,第一個分片攜帶的datapacketsize就已經告訴接收端要重組的原始ipv6數據包的大小,而後續分片中攜帶的datapacketsize就是冗餘的可以壓縮掉。
採用本實施例對適配層的分片頭部進行壓縮後的格式如表3所示:
表3
從表3中可以看出,第一個分片提高的效率為:(1/20-1/32)*32=60%,後續分片提高的效率為:(1/14-1/40)*40=185%。可見,ipv6數據報在適配層傳輸時,對於分片壓縮可以減少報文分片的個數和冗餘的分片頭部數據,降低網絡的負載,提高適配層的效率。
圖2為本發明實施例二提供的一種6lowpan數據報的壓縮重組系統的結構示意圖,如圖2所示,在實施例一的基礎上,所述數據包重組單元104可包括:
第一判斷單元1041:用於判斷當前數據報的長度是否大於122位元組。
第二判斷單元1042:用於噹噹前數據報的長度大於122位元組時,根據數據報標記,判斷是否接收過該數據報。
調用單元1043:用於當判定接收過當前數據報時,直接調用該標記的單鍊表,然後將單鍊表組裝,釋放單鍊表的緩衝區,交給網絡層處理。
緩存單元1044:用於當判定沒有接收過當前數據報時,緩存當前數據報的數據報標記,將接收到的分片頭標識未被壓縮的第一分片,放在單鍊表的表頭。
第三判斷單元1045:用於判斷當前分片的分片頭是否為後續分片的分片頭。
退出單元1046:用於噹噹前分片的分片頭不是後續分片的分片頭時,則退出,重新進行下一數據包的重組。
排序單元1047:用於噹噹前分片的分片頭是後續分片的分片頭時,根據當前分片在重組時的排列序號,使後續分片在單鍊表中有序排放,然後將單鍊表組裝,釋放單鍊表的緩衝區,交給網絡層處理。
組裝釋放單元1048:用於將單鍊表組裝,釋放單鍊表的緩衝區,交給網絡層處理。
圖3為本發明實施例三提供的一種6lowpan數據報的壓縮重組系統的結構示意圖,如圖3所示,在實施例一的基礎上,所述的壓縮重組系統還可包括:
數據報標記壓縮單元105:用於將分片的數據報標記所佔的比特進行壓縮。
數據偏移壓縮單元106:用於將分片的數據偏移所佔的比特進行壓縮。
相應地,一種6lowpan數據報的壓縮重組方法,壓縮動作發生在適配層,重組動作發生網絡層,在適配層中傳輸的數據報包括:第一分片和後續分片,所述的壓縮方法包括:
將後續分片的分片頭標識由多個比特壓縮為一個比特,並確定壓縮後的標識符號。
對確定後的標識符號進行賦值,並建立不同的標識符號值與是否代表其為後續分片的分片頭之間的對應關係。
將後續分片的分片頭數據報長度由多個比特壓縮為零個比特。
將進行報頭壓縮後的數據包在網絡層進行重組。
圖4為本發明實施例一提供的一種6lowpan數據報的壓縮重組方法中數據包在網絡層中進行重組的流程示意圖,如圖4所示,所述將進行報頭壓縮後的數據包在網絡層進行重組,具體包括以下步驟:
s101、判斷當前數據報的長度是否大於122位元組,如是,則分片執行步驟s102,否則,直接執行步驟s107。
s102、根據數據報標記,判斷是否接收過該數據報,如是,則直接調用該標記的單鍊表,執行步驟s105,否則,執行步驟s103。
s103、緩存當前數據報的數據報標記,將接收到的分片頭標識未被壓縮的第一分片,放在單鍊表的表頭。
s104、判斷當前分片的分片頭是否為後續分片的分片頭,如是,執行步驟s105,否則,執行步驟s106。
s105、根據當前分片在重組時的排列序號,使後續分片在單鍊表中有序排放,然後執行步驟s107。
s106、退出,重新進行下一數據包的重組。
s107、將單鍊表組裝,釋放單鍊表的緩衝區,交給網絡層處理。
具體地,所述的壓縮重組方法還可包括:
將分片的數據報標記所佔的比特進行壓縮。
將分片的數據偏移所佔的比特進行壓縮。
具體地,所述標識符號為t,t的值為1或0,當t為1時,表示該分片的分片頭為後續後片頭,當t為0時,表示後續分片錯誤。
本發明為了減少現有技術中的重複數據傳輸,中能實現原來的功能的基礎之上,對分片的頭部進行了修改,一方面設立了標識符號來減少分片頭標識所佔的字節,另一方面壓縮了後續分片中冗餘的分片頭數據報長度,全方位地對適配層中的分片頭部進行了壓縮,提高了數據報在適配層的傳輸效率,降低了網絡的負載。本發明在適配層中對分片頭部進行壓縮之後,也有利於壓縮後的數據包在網絡層的重組;此外,本發明只是在現有的壓縮方法的基礎上對其進行改進與完善,並不是推倒重來,具有良好的推廣性。
最後應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的範圍。