两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

基于數(shù)據(jù)包ip頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法

文檔序號(hào):7697075閱讀:461來源:國知局
專利名稱:基于數(shù)據(jù)包ip頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,特別涉及數(shù)據(jù)包的IP頭壓縮技術(shù)領(lǐng)域,具體是指一種 基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法。
背景技術(shù)
首先對(duì)IP頭壓縮算法進(jìn)行介紹如下對(duì)于需要利用IP分組包在無線網(wǎng)上傳送的業(yè)務(wù)而言,為了得到較好的頻譜效率, 需要利用一些頭壓縮算法。請參閱圖1所示,對(duì)于IP/UDP/RTP組合的信息的大小至少為40 字節(jié),而IP語音業(yè)務(wù)的凈載荷可能只有大約20字節(jié)甚至更少。RFC2507是對(duì)IP頭壓縮算 法的描述,典型的UDP包頭或TCP報(bào)文頭可以被壓縮至4-7個(gè)字節(jié)大小,這其中還包括了 2 個(gè)字節(jié)的UDP校驗(yàn)和或TCP校驗(yàn)和。再如,在沒有UDP檢驗(yàn)和的情況下,RFC2508對(duì)40字 節(jié)的IPv4/UDP/RTP頭能壓縮到2個(gè)字節(jié)。那么,為什么能對(duì)IP頭進(jìn)行壓縮呢?因?yàn)镮P頭 中的很多字段是固定不變或者是很少變化的,這些字段可以不發(fā)送或者少發(fā)送,從而達(dá)到 壓縮的效果。請參閱圖2所示,其為頭壓縮算法工作的示意圖。其中包括壓縮器上下文(Compressor Context)和解壓器上下文(Decompressor Context)。它們包含了比較完整的IP頭信息,壓縮器利用壓縮器上下文壓縮IP包,解壓器 上下文利用解壓器上下文把壓縮包還原成IP包。它們分別是用于壓縮和解壓的參考。擁 有相似上下文的IP數(shù)據(jù)包稱為一個(gè)流。關(guān)于IP頭壓縮的具體技術(shù)細(xì)節(jié),可以參閱以下技術(shù)文獻(xiàn)(1)RFC2507-IP Header Compression, IP 頭壓縮協(xié)議。(2)RFC2508-Compressing IP/UDP/RTP Headers for Low-Speed Serial
Links,低速串行鏈路上的IP/UDP/RTP頭壓縮協(xié)議。對(duì)于IP首部檢驗(yàn)和介紹如下IP首部格式請參閱圖3所示。其中 Version——版本,占4比特,指IP協(xié)議的版本,目前廣泛使用的IP協(xié)議版本號(hào) 為 4(即 IPv4)。
IHL——首部長度,占4比特,表示IP頭首部的長度,單位是4個(gè)字節(jié)。
T0S——服務(wù)類型,占8比特,表示該IP數(shù)據(jù)包所需要的服務(wù)質(zhì)量。
Total Length——總長度占16比特,表示該IP數(shù)據(jù)包的總長度,單位是一個(gè)字節(jié)。
Identification——標(biāo)識(shí),占16比特,一個(gè)計(jì)數(shù)器,用來產(chǎn)生數(shù)據(jù)包的標(biāo)識(shí)。
Flags——標(biāo)志,占3比特,用于指示該數(shù)據(jù)包能否分片等。Fragment Offset 片偏移,占13比特,指示該分片在原IP包中的位置。
TTL——生存時(shí)間,占8比特,表示數(shù)據(jù)包在網(wǎng)絡(luò)中可通過的路由器數(shù)的最大值。
Protocol——協(xié)議,占8比特,表示IP頭所封裝的數(shù)據(jù)包所使用的協(xié)議,如圖1中IP頭中的協(xié)議字段值為17,表示IP頭封裝的是UDP包。
Header Checksum——首部校驗(yàn)和,占16比特,校驗(yàn)和的范圍是IP首部。
Source IP Address-源 IP 地址,占 32 比特。
Destination IP Address-目的 IP 地址,占 32 比特。
Option和Padding——選項(xiàng)和填充,長度可變,用于增強(qiáng)IP頭的功能,但事實(shí)上 很少被使用。IP首部校驗(yàn)和不采用CRC校驗(yàn)碼而是通過一種簡單的計(jì)算方法在數(shù)據(jù)發(fā)送端先 將IP首部劃分成許多16比特的序列,將首部校驗(yàn)和字段(Header Checksum)置零。用反 碼算術(shù)運(yùn)算將所有16比特字相加,得到的和寫入檢驗(yàn)和字段。在接收端,將首部的所有16 比特字再使用反碼算術(shù)運(yùn)算相加一次,將結(jié)果取反碼。若首部未發(fā)送變化,則結(jié)果必為零。 否則,認(rèn)為此首部在傳輸過程中出差錯(cuò)。下面介紹UDP、TCP的校驗(yàn)和UDP計(jì)算校驗(yàn)和的方法和計(jì)算IP數(shù)據(jù)報(bào)首部檢驗(yàn)和的方法相似,但是UDP的檢驗(yàn) 和是將偽首部、UDP首部和UDP數(shù)據(jù)部分一起計(jì)算。偽首部包括源IP地址,目的IP地址, 一個(gè)全零字節(jié),IP協(xié)議字段(17)和UDP長度字段共12個(gè)字節(jié)。在計(jì)算檢驗(yàn)和之前,要把 UDP檢驗(yàn)和字段置為全零。TCP檢驗(yàn)和的產(chǎn)生與UDP檢驗(yàn)和是一樣的,只是把偽首部的IP協(xié)議字段改為 6 (TCP協(xié)議號(hào)),將UDP長度改為TCP長度。請參閱圖4所示,其中是UDP首部的結(jié)構(gòu)。其 中 UDP Source Port——UDP源端口號(hào),占16比特,用于標(biāo)識(shí)發(fā)送該UDP數(shù)據(jù)包應(yīng)
用程序。
UDP Destination Port——UDP目的端口號(hào),占16比特,用于標(biāo)識(shí)接受該UDP 數(shù)據(jù)包的應(yīng)用程序。
Length——長度,占16比特,指示UDP數(shù)據(jù)包的長度,包括UDP頭和UDP數(shù)據(jù)部 分,單位是一個(gè)字節(jié)。
Checksum——校驗(yàn)和,占16比特,檢驗(yàn)和的范圍是12個(gè)字節(jié)的偽首部和UDP數(shù)據(jù)包。關(guān)于UDP和TCP協(xié)議的詳細(xì)技術(shù)內(nèi)容,請參閱以下文獻(xiàn)(l)UDP——用戶數(shù)據(jù)報(bào)協(xié)議,詳細(xì)定義文檔為RFC768協(xié)議。(2) TCP——傳輸控制協(xié)議(與UDP的最大區(qū)別為TCP是面向連接的,而UDP是面 向無連接的),詳細(xì)定義文檔為RFC793協(xié)議。以IPv4/UDP/RTP組合的IP包頭為例,請參閱圖5所示,其中是UDP校驗(yàn)和需要計(jì) 算的所有字段。從第21個(gè)字節(jié)開始是RTP數(shù)據(jù)包。其中 Sequence Number——RTP序號(hào),占16比特,是該RTP數(shù)據(jù)包的標(biāo)識(shí),應(yīng)用程序 每發(fā)出一個(gè)數(shù)據(jù)包它的值就加1。
Timestamp——時(shí)間戳,占32比特,反映該RTP數(shù)據(jù)包的第一個(gè)字節(jié)的采樣時(shí) 刻,用于時(shí)間同步計(jì)算和抖動(dòng)控制。
SSRC——同步化源標(biāo)識(shí)符,占32比特,用于標(biāo)識(shí)RTP數(shù)據(jù)包的來源。
CSRC——參與源標(biāo)識(shí)符,長度可變,用來標(biāo)識(shí)來源于不同地點(diǎn)的RTP流。
胃巾,RTA(A Transport Protocol for Real-Time Applications) 禾中 時(shí)應(yīng)用的傳輸協(xié)議。適合用于傳輸實(shí)時(shí)數(shù)據(jù),廣泛應(yīng)用于語音,視屏通話及視屏?xí)h等。RTP 首部中的V、P、X、CC、M、PT字段在這里不贅述,具體技術(shù)細(xì)節(jié)請參閱RFC1889協(xié)議而在 RFC2508 中,對(duì)于一個(gè)確定的、流,Source IP Address, Destination IP Address, UDPSource Port, UDP Destination Port, Synchronization Source (SSRC) Identifier這16字節(jié)的內(nèi)容是固定不變的,RTP的前16比特(V,P,X,CC,M,PT,CSRC)是 基本不變的。如果在每個(gè)數(shù)據(jù)包中都重復(fù)的計(jì)算同樣的字段內(nèi)容的校驗(yàn)和,勢必會(huì)大大降 低計(jì)算效率,同時(shí)徒增了無用的計(jì)算量,在一定程度上浪費(fèi)了系統(tǒng)資源,無法大幅度提高系 統(tǒng)效率。

發(fā)明內(nèi)容
本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)中的缺點(diǎn),提供一種能夠有效提高IP頭壓 縮的效率、減少校驗(yàn)和的計(jì)算量、節(jié)約系統(tǒng)資源開銷、處理過程快捷方便、工作性能穩(wěn)定可 靠、適用范圍較為廣泛的基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法。為了實(shí)現(xiàn)上述的目的,本發(fā)明的基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方 法如下該基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法,包括數(shù)據(jù)包發(fā)送端的數(shù)據(jù) 包IP頭壓縮過程中的校驗(yàn)和計(jì)算處理與數(shù)據(jù)包接收端的數(shù)據(jù)包IP頭解壓過程中的校驗(yàn)和 計(jì)算處理,所述的數(shù)據(jù)包包括內(nèi)容固定不變字段、內(nèi)容基本不變字段和內(nèi)容變化字段,其主 要特點(diǎn)是,所述的數(shù)據(jù)包接收端的數(shù)據(jù)包IP頭解壓過程中的校驗(yàn)和計(jì)算處理,包括以下步 驟(11)數(shù)據(jù)包接收端判斷所接收到的數(shù)據(jù)包中的內(nèi)容固定不變字段的信息是否未 曾接收過;(12)如果是,則對(duì)該數(shù)據(jù)包的包頭進(jìn)行解壓縮,并分別計(jì)算該數(shù)據(jù)包中內(nèi)容固定 不變字段的校驗(yàn)和、內(nèi)容基本不變字段的校驗(yàn)和與內(nèi)容變化字段的校驗(yàn)和,并將該三者相 加得到接收端最終校驗(yàn)和,同時(shí)記錄內(nèi)容固定不變字段的信息、內(nèi)容固定不變字段的校驗(yàn) 和、內(nèi)容基本不變字段的信息和內(nèi)容基本不變字段的校驗(yàn)和,繼續(xù)以下步驟(16);(13)如果否,則對(duì)該數(shù)據(jù)包的包頭進(jìn)行解壓縮,并判斷該數(shù)據(jù)包中的內(nèi)容基本不 變字段的信息與前次記錄的內(nèi)容基本不變字段的信息是否一致;(14)如果一致,則僅計(jì)算該數(shù)據(jù)中內(nèi)容變化字段的校驗(yàn)和,并將前次記錄的內(nèi)容 固定不變字段的校驗(yàn)和、內(nèi)容基本不變字段的校驗(yàn)與當(dāng)前計(jì)算的內(nèi)容變化字段的校驗(yàn)和相 加得到接收端最終校驗(yàn)和,繼續(xù)以下步驟(16);(15)如果不一致,則分別計(jì)算該數(shù)據(jù)包中內(nèi)容基本不變字段的校驗(yàn)和與內(nèi)容變化 字段的校驗(yàn)和,并將前次記錄的內(nèi)容固定不變字段的校驗(yàn)和與當(dāng)前計(jì)算的內(nèi)容基本不變字 段的校驗(yàn)和、內(nèi)容變化字段的校驗(yàn)和相加得到接收端最終校驗(yàn)和,同時(shí)更新所記錄的內(nèi)容 基本不變字段的信息和內(nèi)容基本不變字段的校驗(yàn)和,繼續(xù)以下步驟(16);(16)將該接收端最終校驗(yàn)和與該數(shù)據(jù)包中的校驗(yàn)和字段進(jìn)行比較,根據(jù)比較結(jié)果 進(jìn)行后續(xù)處理。該基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法中的數(shù)據(jù)包發(fā)送端的數(shù)據(jù)包IP頭壓縮過程中的校驗(yàn)和計(jì)算處理,包括以下步驟(21)數(shù)據(jù)包發(fā)送端判斷所述的數(shù)據(jù)包中的內(nèi)容固定不變字段的信息是否未曾計(jì) 算過校驗(yàn)和;(22)如果是,則分別計(jì)算該數(shù)據(jù)包中內(nèi)容固定不變字段的校驗(yàn)和、內(nèi)容基本不變 字段的校驗(yàn)和與內(nèi)容變化字段的校驗(yàn)和,并將該三者相加得到發(fā)送端最終校驗(yàn)和,同時(shí)記 錄內(nèi)容固定不變字段的信息、內(nèi)容固定不變字段的校驗(yàn)和、內(nèi)容基本不變字段的信息和內(nèi) 容基本不變字段的校驗(yàn)和,繼續(xù)以下步驟(26);(23)如果否,則判斷該數(shù)據(jù)包中的內(nèi)容基本不變字段的信息與前次記錄的內(nèi)容基 本不變字段的信息是否一致;(24)如果一致,則僅計(jì)算該數(shù)據(jù)中內(nèi)容變化字段的校驗(yàn)和,并將前次記錄的內(nèi)容 固定不變字段的校驗(yàn)和、內(nèi)容基本不變字段的校驗(yàn)與當(dāng)前計(jì)算的內(nèi)容變化字段的校驗(yàn)和相 加得到發(fā)送端最終校驗(yàn)和,繼續(xù)以下步驟(26);(25)如果不一致,則分別計(jì)算該數(shù)據(jù)包中內(nèi)容基本不變字段的校驗(yàn)和與內(nèi)容變化 字段的校驗(yàn)和,并將前次記錄的內(nèi)容固定不變字段的校驗(yàn)和與當(dāng)前計(jì)算的內(nèi)容基本不變字 段的校驗(yàn)和、內(nèi)容變化字段的校驗(yàn)和相加得到發(fā)送端最終校驗(yàn)和,同時(shí)更新所記錄的內(nèi)容 基本不變字段的信息和內(nèi)容基本不變字段的校驗(yàn)和,繼續(xù)以下步驟(26);(26)將該發(fā)送端最終校驗(yàn)填入該數(shù)據(jù)包中的校驗(yàn)和字段中;(27)數(shù)據(jù)發(fā)送端將該數(shù)據(jù)包發(fā)送至數(shù)據(jù)包接收端。該基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法中的數(shù)據(jù)包發(fā)送端的數(shù)據(jù)包 IP頭壓縮過程中的校驗(yàn)和計(jì)算處理中的步驟(27)之前,還包括以下步驟(31)數(shù)據(jù)包發(fā)送端判斷所述的數(shù)據(jù)包中的內(nèi)容固定不變字段的信息是否未曾計(jì) 算過校驗(yàn)和;(32)如果是,則為該內(nèi)容固定不變字段的信息分配一個(gè)唯一流標(biāo)識(shí)CID,并記錄 該內(nèi)容固定不變字段的信息與該唯一流標(biāo)識(shí)CID的對(duì)應(yīng)關(guān)系,同時(shí)將該唯一流標(biāo)識(shí)CID填 入該數(shù)據(jù)包中;(33)如果否,則根據(jù)該內(nèi)容固定不變字段的信息檢索到相對(duì)應(yīng)的唯一流標(biāo)識(shí) CID,并將該唯一流標(biāo)識(shí)CID填入該數(shù)據(jù)包中;所述的數(shù)據(jù)包接收端的數(shù)據(jù)包IP頭解壓過程中的校驗(yàn)和計(jì)算處理中的步驟 (11),包括以下步驟(41)數(shù)據(jù)包接收端判斷所接收到的數(shù)據(jù)包中的唯一流標(biāo)識(shí)CID是否未曾接收到 過;(42)如果是,則記錄該唯一流標(biāo)識(shí)CID,并返回所接收到的數(shù)據(jù)包中的內(nèi)容固定 不變字段的信息未曾接收過的結(jié)果;(43)如果否,則返回所接收到的數(shù)據(jù)包中的內(nèi)容固定不變字段的信息曾經(jīng)接收過 的結(jié)果。該基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法中的內(nèi)容固定不變字段包括 源IP地址字段、目的IP地址字段、UDP源端口號(hào)字段、UDP目的端口號(hào)字段、同步化源標(biāo)識(shí) 符字段。該基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法中的內(nèi)容基本不變字段包括RTP數(shù)據(jù)包的前16比特,即V、P、X、CC、M、PT和參與源標(biāo)識(shí)符字段。該基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法中的內(nèi)容變化字段包括RTP 數(shù)據(jù)部分、UDP長度字段、RTP序號(hào)字段、時(shí)間戳字段。采用了該發(fā)明的基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法,由于其中先 根據(jù)UDP、TCP校驗(yàn)和各字段的性質(zhì)分別計(jì)算檢驗(yàn)和,而對(duì)于在整個(gè)流生命周期中不變的字 段只計(jì)算一次檢驗(yàn)和,同時(shí)對(duì)于那些基本不變的字段先與原IP包進(jìn)行比較,如果發(fā)現(xiàn)沒有 變化,則不再計(jì)算其檢驗(yàn)和,從而能有效減少處理器時(shí)間片的消耗,并提高解壓效率,且本 發(fā)明的壓縮檢驗(yàn)和算法需要計(jì)算的字段長度要明顯少于普通校驗(yàn)和算法,在IP語音業(yè)務(wù) 中,對(duì)凈負(fù)荷長度為20字節(jié)的IPv4/UDP/RTP包,壓縮校驗(yàn)和算法能夠節(jié)約1. 7倍的計(jì)算 量,從而有效提高了 IP頭壓縮的效率,減少了校驗(yàn)和的計(jì)算量,節(jié)約了系統(tǒng)資源開銷,而且 處理過程快捷方便,工作性能穩(wěn)定可靠,適用范圍較為廣泛。


圖1為現(xiàn)有技術(shù)中的IP/UDP/RTP數(shù)據(jù)包結(jié)構(gòu)示意圖。圖2為現(xiàn)有技術(shù)中的IP頭壓縮過程示意圖。圖3為現(xiàn)有技術(shù)中的IPv4首部幀結(jié)構(gòu)示意圖。圖4為現(xiàn)有技術(shù)中的UDP首部幀結(jié)構(gòu)示意圖。圖5為現(xiàn)有技術(shù)中的UDP校驗(yàn)和字段幀結(jié)構(gòu)示意圖。圖6為本發(fā)明的基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法中的數(shù)據(jù)包接 收端的數(shù)據(jù)包IP頭解壓過程中的校驗(yàn)和計(jì)算處理流程圖。圖7為本發(fā)明的基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法與現(xiàn)有技術(shù)的 算法效率比較示意圖。
具體實(shí)施例方式為了能夠更清楚地理解本發(fā)明的技術(shù)內(nèi)容,特舉以下實(shí)施例詳細(xì)說明。請參閱圖6所示,該基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法,包括數(shù)據(jù) 包發(fā)送端的數(shù)據(jù)包IP頭壓縮過程中的校驗(yàn)和計(jì)算處理與數(shù)據(jù)包接收端的數(shù)據(jù)包IP頭解壓 過程中的校驗(yàn)和計(jì)算處理,所述的數(shù)據(jù)包包括內(nèi)容固定不變字段、內(nèi)容基本不變字段和內(nèi) 容變化字段,所述的內(nèi)容固定不變字段包括源IP地址字段、目的IP地址字段、UDP源端口 號(hào)字段、UDP目的端口號(hào)字段、同步化源標(biāo)識(shí)符字段;所述的內(nèi)容基本不變字段包括RTP數(shù) 據(jù)包的前16比特,即V、P、X、CC、M、PT和參與源標(biāo)識(shí)符字段;所述的內(nèi)容變化字段包括RTP 數(shù)據(jù)部分、UDP長度字段、RTP序號(hào)字段、時(shí)間戳字段。其中,所述的數(shù)據(jù)包接收端的數(shù)據(jù)包IP頭解壓過程中的校驗(yàn)和計(jì)算處理,包括以 下步驟(11)數(shù)據(jù)包接收端判斷所接收到的數(shù)據(jù)包中的內(nèi)容固定不變字段的信息是否未 曾接收過,包括以下步驟(a)數(shù)據(jù)包接收端判斷所接收到的數(shù)據(jù)包中的唯一流標(biāo)識(shí)CID是否未曾接收到 過;(b)如果是,則記錄該唯一流標(biāo)識(shí)CID,并返回所接收到的數(shù)據(jù)包中的內(nèi)容固定不
8變字段的信息未曾接收過的結(jié)果;(c)如果否,則返回所接收到的數(shù)據(jù)包中的內(nèi)容固定不變字段的信息曾經(jīng)接收過 的結(jié)果;(12)如果是,則對(duì)該數(shù)據(jù)包的包頭進(jìn)行解壓縮,并分別計(jì)算該數(shù)據(jù)包中內(nèi)容固定 不變字段的校驗(yàn)和、內(nèi)容基本不變字段的校驗(yàn)和與內(nèi)容變化字段的校驗(yàn)和,并將該三者相 加得到接收端最終校驗(yàn)和,同時(shí)記錄內(nèi)容固定不變字段的信息、內(nèi)容固定不變字段的校驗(yàn) 和、內(nèi)容基本不變字段的信息和內(nèi)容基本不變字段的校驗(yàn)和,繼續(xù)以下步驟(16);(13)如果否,則對(duì)該數(shù)據(jù)包的包頭進(jìn)行解壓縮,并判斷該數(shù)據(jù)包中的內(nèi)容基本不 變字段的信息與前次記錄的內(nèi)容基本不變字段的信息是否一致;(14)如果一致,則僅計(jì)算該數(shù)據(jù)中內(nèi)容變化字段的校驗(yàn)和,并將前次記錄的內(nèi)容 固定不變字段的校驗(yàn)和、內(nèi)容基本不變字段的校驗(yàn)與當(dāng)前計(jì)算的內(nèi)容變化字段的校驗(yàn)和相 加得到接收端最終校驗(yàn)和,繼續(xù)以下步驟(16);(15)如果不一致,則分別計(jì)算該數(shù)據(jù)包中內(nèi)容基本不變字段的校驗(yàn)和與內(nèi)容變化 字段的校驗(yàn)和,并將前次記錄的內(nèi)容固定不變字段的校驗(yàn)和與當(dāng)前計(jì)算的內(nèi)容基本不變字 段的校驗(yàn)和、內(nèi)容變化字段的校驗(yàn)和相加得到接收端最終校驗(yàn)和,同時(shí)更新所記錄的內(nèi)容 基本不變字段的信息和內(nèi)容基本不變字段的校驗(yàn)和,繼續(xù)以下步驟(16);(16)將該接收端最終校驗(yàn)和與該數(shù)據(jù)包中的校驗(yàn)和字段進(jìn)行比較,根據(jù)比較結(jié)果 進(jìn)行后續(xù)處理。所述的數(shù)據(jù)包發(fā)送端的數(shù)據(jù)包IP頭壓縮過程中的校驗(yàn)和計(jì)算處理,包括以下步 驟(21)數(shù)據(jù)包發(fā)送端判斷所述的數(shù)據(jù)包中的內(nèi)容固定不變字段的信息是否未曾計(jì) 算過校驗(yàn)和;(22)如果是,則分別計(jì)算該數(shù)據(jù)包中內(nèi)容固定不變字段的校驗(yàn)和、內(nèi)容基本不變 字段的校驗(yàn)和與內(nèi)容變化字段的校驗(yàn)和,并將該三者相加得到發(fā)送端最終校驗(yàn)和,同時(shí)記 錄內(nèi)容固定不變字段的信息、內(nèi)容固定不變字段的校驗(yàn)和、內(nèi)容基本不變字段的信息和內(nèi) 容基本不變字段的校驗(yàn)和,繼續(xù)以下步驟(26);(23)如果否,則判斷該數(shù)據(jù)包中的內(nèi)容基本不變字段的信息與前次記錄的內(nèi)容基 本不變字段的信息是否一致;(24)如果一致,則僅計(jì)算該數(shù)據(jù)中內(nèi)容變化字段的校驗(yàn)和,并將前次記錄的內(nèi)容 固定不變字段的校驗(yàn)和、內(nèi)容基本不變字段的校驗(yàn)與當(dāng)前計(jì)算的內(nèi)容變化字段的校驗(yàn)和相 加得到發(fā)送端最終校驗(yàn)和,繼續(xù)以下步驟(26);(25)如果不一致,則分別計(jì)算該數(shù)據(jù)包中內(nèi)容基本不變字段的校驗(yàn)和與內(nèi)容變化 字段的校驗(yàn)和,并將前次記錄的內(nèi)容固定不變字段的校驗(yàn)和與當(dāng)前計(jì)算的內(nèi)容基本不變字 段的校驗(yàn)和、內(nèi)容變化字段的校驗(yàn)和相加得到發(fā)送端最終校驗(yàn)和,同時(shí)更新所記錄的內(nèi)容 基本不變字段的信息和內(nèi)容基本不變字段的校驗(yàn)和,繼續(xù)以下步驟(26);(26)將該發(fā)送端最終校驗(yàn)填入該數(shù)據(jù)包中的校驗(yàn)和字段中;還可以包括以下步 驟(a)數(shù)據(jù)包發(fā)送端判斷所述的數(shù)據(jù)包中的內(nèi)容固定不變字段的信息是否未曾計(jì)算 過校驗(yàn)和;
(b)如果是,則為該內(nèi)容固定不變字段的信息分配一個(gè)唯一流標(biāo)識(shí)CID,并記錄該 內(nèi)容固定不變字段的信息與該唯一流標(biāo)識(shí)CID的對(duì)應(yīng)關(guān)系,同時(shí)將該唯一流標(biāo)識(shí)CID填入 該數(shù)據(jù)包中;(c)如果否,則根據(jù)該內(nèi)容固定不變字段的信息檢索到相對(duì)應(yīng)的唯一流標(biāo)識(shí)CID, 并將該唯一流標(biāo)識(shí)CID填入該數(shù)據(jù)包中;(27)數(shù)據(jù)發(fā)送端將該數(shù)據(jù)包發(fā)送至數(shù)據(jù)包接收端。在實(shí)際使用當(dāng)中,在RFC2508中,對(duì)于一個(gè)確定的流,Source IP Address, Destination IPAddress, UDP Source Port, UDP Destination Port, Synchronization Source (SSRC) Identifier這16字節(jié)的內(nèi)容是固定不變的,RTP的前16比特(V,P,X,CC, M,PT,CSRC)是基本不變的。本發(fā)明約定叫內(nèi)容固定不變的字段為DEF字段,基本不變字段 為N0CHANGE字段。所以,以IP頭為40字節(jié)(CC = 0,CSRC不存在),數(shù)據(jù)部分為20字節(jié) 的IPv4/UDP/RTP組合為例,真正需要計(jì)算的字段只有20字節(jié)的數(shù)據(jù)部分和10個(gè)字節(jié)(兩 個(gè) UDP Length, Sequence Number, Timestamp)的包頭信息,共 30 字節(jié)。因此,本發(fā)明把整個(gè)IP數(shù)據(jù)包的分成三部分DEF字段、N0CHANGE字段和CHANGE 字段。以圖3為例,IPv4/UDP/RTP的CHANGE字段的包括RTP數(shù)據(jù)部分和UDP Length、 Sequence Number、Timestamp 字段。實(shí)現(xiàn)該功能我們需要分別記錄每一個(gè)流的DEF字段的檢驗(yàn)和、N0CHANGE字段的校 驗(yàn)和,并把它們作為解壓器上下文的一部分。步驟1—解壓器收到一個(gè)壓縮包后要判斷它是否是一個(gè)Full Header ;在此步驟中,壓縮協(xié)議本身不具備判斷壓縮包類型的能力,但是使用壓縮協(xié)議的 協(xié)議具備辨別壓縮包類型的能力。例如,在WCDMA系統(tǒng)中,分組數(shù)據(jù)匯聚協(xié)議(PDCP)使用 RFC2507和RFC3095壓縮協(xié)議,PDCP頭中有字段標(biāo)識(shí)所攜帶的數(shù)據(jù)包是否是壓縮包,是什么 類型的壓縮包。具體技術(shù)細(xì)節(jié)請參見協(xié)議3GPP TS 25.323。步驟2——Full Header,對(duì)其解壓后,計(jì)算IP包的DEF字段的校驗(yàn)和,N0CHANGE 字段的校驗(yàn)和,分別記為DEF_CkSum和N0CHANGE_CkSum。步驟3——若非Full Header,對(duì)其解壓后,計(jì)算其CHANGE字段的校驗(yàn)和,記為 CHANGE_CkSum,并且記錄該壓縮包中的檢驗(yàn)和值(在圖6中用A表示)。步驟3. 1——解壓器上下文包含了上一次成功解壓的IPv4/UDP/RTP頭,與新解 壓的IP包比較N0CHANGE字段,若變化,計(jì)算N0CHANGE字段的檢驗(yàn)和,并替換N0CHANGE_ CkSum,更新解壓器上下文。步驟3. 2-DEF_CkSum, N0CHANGE_CkSum 和 CHANGE_CkSum 相加得出最終的
CkSum。步驟4——CkSum與原壓縮包中檢驗(yàn)和比較。對(duì)于以上的實(shí)現(xiàn)方式,具體說明以下幾點(diǎn)本實(shí)現(xiàn)方法中DEF字段要求與壓縮協(xié)議中規(guī)定的用于定義一個(gè)流的字段一致。不 同的IP包屬于同一個(gè)數(shù)據(jù)流,那么它們的DEF字段一定是相同的。事實(shí)上,壓縮器就是根 據(jù)這些字段對(duì)各種IP包進(jìn)行分流。之前提到的上下文包含了這些DEF字段。每組流都會(huì) 有一個(gè)標(biāo)識(shí)(CID),壓縮器會(huì)把壓縮包和這個(gè)包所屬的流的標(biāo)識(shí)發(fā)給解壓器。某些特定的包 (如FullHeader)用于建立解壓器上下文,并建立上下文與CID的映射,用于解壓后續(xù)的壓縮包。解壓器收到一個(gè)壓縮包后,它會(huì)根據(jù)CID判斷它是屬于哪個(gè)流。若CID是新的,那 么就建立一個(gè)新的流,并且計(jì)算DEF_CkSum和NONCHANGE_CkSum。如果是一個(gè)已有的流,那 么還需要判斷N0CHANGE字段是否變化,因?yàn)橹挥蠨EF字段是用來界定一個(gè)流的,也就意味 著,即使屬于同一流,不同IP包的N0NCHANGE字段值是有可能不同的。同時(shí),本發(fā)明的方法是對(duì)壓縮協(xié)議的校驗(yàn)和功能的改進(jìn),并不改變原來壓縮協(xié)議 的框架。關(guān)于更詳細(xì)的IP包頭壓縮技術(shù)細(xì)節(jié),請參見RFC1144、RFC2507、RFC2508、RFC3095 等壓縮協(xié)議。采用了上述的基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法,由于其中先根 據(jù)UDP、TCP校驗(yàn)和各字段的性質(zhì)分別計(jì)算檢驗(yàn)和,而對(duì)于在整個(gè)流生命周期中不變的字段 只計(jì)算一次檢驗(yàn)和,同時(shí)對(duì)于那些基本不變的字段先與原IP包進(jìn)行比較,如果發(fā)現(xiàn)沒有變 化,則不再計(jì)算其檢驗(yàn)和,從而能有效減少處理器時(shí)間片的消耗,并提高解壓效率,且本發(fā) 明的壓縮檢驗(yàn)和算法需要計(jì)算的字段長度要明顯少于普通校驗(yàn)和算法,在IP語音業(yè)務(wù)中, 對(duì)凈負(fù)荷長度為20字節(jié)的IPv4/UDP/RTP包,壓縮校驗(yàn)和算法能夠節(jié)約1. 7倍的計(jì)算量,從 而有效提高了 IP頭壓縮的效率,減少了校驗(yàn)和的計(jì)算量,節(jié)約了系統(tǒng)資源開銷,而且處理 過程快捷方便,工作性能穩(wěn)定可靠,適用范圍較為廣泛。在此說明書中,本發(fā)明已參照其特定的實(shí)施例作了描述。但是,很顯然仍可以作出 各種修改和變換而不背離本發(fā)明的精神和范圍。因此,說明書和附圖應(yīng)被認(rèn)為是說明性的 而非限制性的。
1權(quán)利要求
一種基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法,包括數(shù)據(jù)包發(fā)送端的數(shù)據(jù)包IP頭壓縮過程中的校驗(yàn)和計(jì)算處理與數(shù)據(jù)包接收端的數(shù)據(jù)包IP頭解壓過程中的校驗(yàn)和計(jì)算處理,所述的數(shù)據(jù)包包括內(nèi)容固定不變字段、內(nèi)容基本不變字段和內(nèi)容變化字段,其特征在于,所述的數(shù)據(jù)包接收端的數(shù)據(jù)包IP頭解壓過程中的校驗(yàn)和計(jì)算處理,包括以下步驟(11)數(shù)據(jù)包接收端判斷所接收到的數(shù)據(jù)包中的內(nèi)容固定不變字段的信息是否未曾接收過;(12)如果是,則對(duì)該數(shù)據(jù)包的包頭進(jìn)行解壓縮,并分別計(jì)算該數(shù)據(jù)包中內(nèi)容固定不變字段的校驗(yàn)和、內(nèi)容基本不變字段的校驗(yàn)和與內(nèi)容變化字段的校驗(yàn)和,并將該三者相加得到接收端最終校驗(yàn)和,同時(shí)記錄內(nèi)容固定不變字段的信息、內(nèi)容固定不變字段的校驗(yàn)和、內(nèi)容基本不變字段的信息和內(nèi)容基本不變字段的校驗(yàn)和,繼續(xù)以下步驟(16);(13)如果否,則對(duì)該數(shù)據(jù)包的包頭進(jìn)行解壓縮,并判斷該數(shù)據(jù)包中的內(nèi)容基本不變字段的信息與前次記錄的內(nèi)容基本不變字段的信息是否一致;(14)如果一致,則僅計(jì)算該數(shù)據(jù)中內(nèi)容變化字段的校驗(yàn)和,并將前次記錄的內(nèi)容固定不變字段的校驗(yàn)和、內(nèi)容基本不變字段的校驗(yàn)與當(dāng)前計(jì)算的內(nèi)容變化字段的校驗(yàn)和相加得到接收端最終校驗(yàn)和,繼續(xù)以下步驟(16);(15)如果不一致,則分別計(jì)算該數(shù)據(jù)包中內(nèi)容基本不變字段的校驗(yàn)和與內(nèi)容變化字段的校驗(yàn)和,并將前次記錄的內(nèi)容固定不變字段的校驗(yàn)和與當(dāng)前計(jì)算的內(nèi)容基本不變字段的校驗(yàn)和、內(nèi)容變化字段的校驗(yàn)和相加得到接收端最終校驗(yàn)和,同時(shí)更新所記錄的內(nèi)容基本不變字段的信息和內(nèi)容基本不變字段的校驗(yàn)和,繼續(xù)以下步驟(16);(16)將該接收端最終校驗(yàn)和與該數(shù)據(jù)包中的校驗(yàn)和字段進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理。
2.根據(jù)權(quán)利要求1所述的基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法,其特征在 于,所述的數(shù)據(jù)包發(fā)送端的數(shù)據(jù)包IP頭壓縮過程中的校驗(yàn)和計(jì)算處理,包括以下步驟(21)數(shù)據(jù)包發(fā)送端判斷所述的數(shù)據(jù)包中的內(nèi)容固定不變字段的信息是否未曾計(jì)算過 校驗(yàn)和;(22)如果是,則分別計(jì)算該數(shù)據(jù)包中內(nèi)容固定不變字段的校驗(yàn)和、內(nèi)容基本不變字段 的校驗(yàn)和與內(nèi)容變化字段的校驗(yàn)和,并將該三者相加得到發(fā)送端最終校驗(yàn)和,同時(shí)記錄內(nèi) 容固定不變字段的信息、內(nèi)容固定不變字段的校驗(yàn)和、內(nèi)容基本不變字段的信息和內(nèi)容基 本不變字段的校驗(yàn)和,繼續(xù)以下步驟(26);(23)如果否,則判斷該數(shù)據(jù)包中的內(nèi)容基本不變字段的信息與前次記錄的內(nèi)容基本不 變字段的信息是否一致;(24)如果一致,則僅計(jì)算該數(shù)據(jù)中內(nèi)容變化字段的校驗(yàn)和,并將前次記錄的內(nèi)容固定 不變字段的校驗(yàn)和、內(nèi)容基本不變字段的校驗(yàn)與當(dāng)前計(jì)算的內(nèi)容變化字段的校驗(yàn)和相加得 到發(fā)送端最終校驗(yàn)和,繼續(xù)以下步驟(26);(25)如果不一致,則分別計(jì)算該數(shù)據(jù)包中內(nèi)容基本不變字段的校驗(yàn)和與內(nèi)容變化字段 的校驗(yàn)和,并將前次記錄的內(nèi)容固定不變字段的校驗(yàn)和與當(dāng)前計(jì)算的內(nèi)容基本不變字段的 校驗(yàn)和、內(nèi)容變化字段的校驗(yàn)和相加得到發(fā)送端最終校驗(yàn)和,同時(shí)更新所記錄的內(nèi)容基本 不變字段的信息和內(nèi)容基本不變字段的校驗(yàn)和,繼續(xù)以下步驟(26);(26)將該發(fā)送端最終校驗(yàn)填入該數(shù)據(jù)包中的校驗(yàn)和字段中;(27)數(shù)據(jù)發(fā)送端將該數(shù)據(jù)包發(fā)送至數(shù)據(jù)包接收端。
3.根據(jù)權(quán)利要求2所述的基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法,其特征在 于,所述的數(shù)據(jù)包發(fā)送端的數(shù)據(jù)包IP頭壓縮過程中的校驗(yàn)和計(jì)算處理中的步驟(27)之前, 還包括以下步驟(31)數(shù)據(jù)包發(fā)送端判斷所述的數(shù)據(jù)包中的內(nèi)容固定不變字段的信息是否未曾計(jì)算過 校驗(yàn)和;(32)如果是,則為該內(nèi)容固定不變字段的信息分配一個(gè)唯一流標(biāo)識(shí)CID,并記錄該內(nèi) 容固定不變字段的信息與該唯一流標(biāo)識(shí)CID的對(duì)應(yīng)關(guān)系,同時(shí)將該唯一流標(biāo)識(shí)CID填入該 數(shù)據(jù)包中;(33)如果否,則根據(jù)該內(nèi)容固定不變字段的信息檢索到相對(duì)應(yīng)的唯一流標(biāo)識(shí)CID,并 將該唯一流標(biāo)識(shí)CID填入該數(shù)據(jù)包中;所述的數(shù)據(jù)包接收端的數(shù)據(jù)包IP頭解壓過程中的校驗(yàn)和計(jì)算處理中的步驟(11),包 括以下步驟(41)數(shù)據(jù)包接收端判斷所接收到的數(shù)據(jù)包中的唯一流標(biāo)識(shí)CID是否未曾接收到過;(42)如果是,則記錄該唯一流標(biāo)識(shí)CID,并返回所接收到的數(shù)據(jù)包中的內(nèi)容固定不變 字段的信息未曾接收過的結(jié)果;(43)如果否,則返回所接收到的數(shù)據(jù)包中的內(nèi)容固定不變字段的信息曾經(jīng)接收過的結(jié)果
4.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的 方法,其特征在于,所述的內(nèi)容固定不變字段包括源IP地址字段、目的IP地址字段、UDP源 端口號(hào)字段、UDP目的端口號(hào)字段、同步化源標(biāo)識(shí)符字段。
5.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的 方法,其特征在于,所述的內(nèi)容基本不變字段包括RTP數(shù)據(jù)包的前16比特,即V、P、X、CC、M、 PT和參與源標(biāo)識(shí)符字段。
6.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的 方法,其特征在于,所述的內(nèi)容變化字段包括RTP數(shù)據(jù)部分、UDP長度字段、RTP序號(hào)字段、時(shí) 間戳字段。
全文摘要
本發(fā)明涉及一種基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法,其中解壓過程中,根據(jù)UDP、TCP校驗(yàn)和各字段的性質(zhì)分別計(jì)算檢驗(yàn)和,對(duì)于在整個(gè)流生命周期中不變的字段只計(jì)算一次檢驗(yàn)和、對(duì)于那些基本不變的字段先與原IP包進(jìn)行比較,若發(fā)現(xiàn)沒有變化,則無須計(jì)算其檢驗(yàn)和。采用該種基于數(shù)據(jù)包IP頭壓縮技術(shù)實(shí)現(xiàn)校驗(yàn)和計(jì)算的方法,有效減少處理器時(shí)間片的消耗,提高了解壓效率,壓縮檢驗(yàn)和算法需要計(jì)算的字段長度明顯減少,對(duì)凈負(fù)荷長度為20字節(jié)的IPv4/UDP/RTP包,壓縮校驗(yàn)和算法能夠節(jié)約1.7倍的計(jì)算量,從而有效提高了IP頭壓縮的效率,減少了校驗(yàn)和的計(jì)算量,節(jié)約了系統(tǒng)資源開銷,而且處理過程快捷方便,工作性能穩(wěn)定可靠,適用范圍較為廣泛。
文檔編號(hào)H04W28/06GK101860904SQ20091004893
公開日2010年10月13日 申請日期2009年4月7日 優(yōu)先權(quán)日2009年4月7日
發(fā)明者莊云騰 申請人:上海摩波彼克半導(dǎo)體有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
垣曲县| 无锡市| 义乌市| 图木舒克市| 固原市| 漳州市| 武清区| 甘谷县| 乐都县| 安乡县| 马山县| 陇川县| 海兴县| 漠河县| 宜君县| 永泰县| 玛纳斯县| 铜鼓县| 拉孜县| 长兴县| 会昌县| 明星| 黎城县| 龙州县| 敖汉旗| 通化县| 平武县| 盐亭县| 寻甸| 济源市| 东乌珠穆沁旗| 阿荣旗| 林芝县| 信丰县| 连州市| 龙泉市| 安仁县| 景洪市| 馆陶县| 于田县| 靖西县|