專利名稱:一種tcp/ip包頭的傳輸方法、壓縮方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于通信領(lǐng)域,尤其涉及一種基于RFC1144壓縮算法的數(shù)據(jù)傳輸方法。
背景技術(shù):
在網(wǎng)絡(luò)通信中,大量數(shù)據(jù)都是通過(guò)傳輸控制協(xié)議/互聯(lián)網(wǎng)絡(luò)協(xié)議(Transmission Control Protocol/Internet Protocol,TCP/IP)進(jìn)行傳輸?shù)?。根?jù)業(yè)務(wù)等級(jí)的需要,網(wǎng)絡(luò)層會(huì)對(duì)要傳輸?shù)臄?shù)據(jù)添加IPv4(Internet Protocol Version 4,網(wǎng)際協(xié)議版本4)包頭或IPv6(Internet Protocol Version 6,網(wǎng)際協(xié)議版本6)包頭。因此,每次傳輸數(shù)據(jù)時(shí)還要傳輸一定的包頭信息,從而加大了網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。
為了解決這個(gè)問(wèn)題,現(xiàn)有技術(shù)采用RFC1144壓縮算法,將IP/TCP包頭劃分為不變(NOCHANGE)部分和增量(DELTA)部分。不變部分包含TCP/IP包頭中的協(xié)議版本(Protocol Version)、包頭長(zhǎng)度(Header Length)以及業(yè)務(wù)類型(Type of Service)等信息。增量部分包含TCP/IP包頭所封裝的TCP包頭中的序列號(hào)(Sequence Number)、確認(rèn)號(hào)(Acknowledgment Number)等信息。如果僅僅是增量部分發(fā)生了變化,則將增量部分所發(fā)生的變化傳輸給對(duì)端,而不需要傳輸一個(gè)完整的TCP/IP包頭,從而達(dá)到了減小網(wǎng)絡(luò)傳輸量的目的。
RFC1144壓縮算法的具體實(shí)現(xiàn)方式如下(1)在發(fā)送端,首先判斷傳輸?shù)陌^是否滿足RFC1144壓縮算法的可壓縮條件,即該包頭必須由一個(gè)完整且不分段的IP包頭與一個(gè)完整且不分段的TCP包頭組合而成。
如果傳輸?shù)陌^不滿足可壓縮條件,例如不是IP+TCP包頭,或者包頭不完整或者分段,則不采用RFC1144壓縮算法進(jìn)行壓縮,而進(jìn)行透明傳輸。
如果傳輸?shù)陌^滿足了可壓縮條件,且當(dāng)前所傳輸?shù)陌^是第一個(gè)滿足可壓縮條件的TCP/IP包頭,或者當(dāng)前所傳輸包頭相對(duì)于以前傳輸?shù)乃蠺CP/IP包頭而言其不變部分均發(fā)生了變化,說(shuō)明該包頭是某一類型包頭中的首個(gè)完整包頭,滿足以上條件則傳輸一個(gè)完整的包頭,并在發(fā)送端保留該包頭的全部信息,同時(shí)記錄在發(fā)送端這種類型的包頭所出現(xiàn)的順序,即連接號(hào)(ConnectionNumber)。該連接號(hào)替換原IP包中協(xié)議(protocol)域的內(nèi)容,被用來(lái)作為接收端所接收到的TCP/IP包頭部陣列的索引值。
如果滿足了可壓縮條件,且當(dāng)前所傳輸包頭相對(duì)于某個(gè)連接號(hào)的TCP/IP包頭的不變部分沒(méi)有發(fā)生變化,則將增量部分所發(fā)生的變化作為壓縮包頭傳輸給對(duì)端,同時(shí),還要傳輸對(duì)應(yīng)TCP/IP包頭的連接號(hào),為了便于接收端檢查壓縮包頭的有效性和完整性,還要傳輸TCP包頭的校驗(yàn)和信息。
(2)在接收端,如果接收到的包頭是未進(jìn)行壓縮的包頭,則不必進(jìn)行解壓縮,這些包頭未進(jìn)行壓縮可能是因?yàn)槠洳粷M足壓縮條件,這種情況則將其作為普通包頭對(duì)待,或者因?yàn)樵摪^為同類型包頭中的首個(gè)完整包頭,這種情況則在接收端保留該包頭的全部信息。
如果是采用了RFC1144壓縮算法的壓縮包頭,則首先根據(jù)其連接號(hào)以及增量部分所發(fā)生的變化信息得到原始的TCP/IP包頭,然后根據(jù)TCP的校驗(yàn)和信息檢驗(yàn)解壓出的TCP/IP包頭是否正確。如果發(fā)生了錯(cuò)誤,則中止解壓,等待發(fā)送端重傳。
在RFC1144壓縮算法中,TCP/IP壓縮包頭的傳輸格式如圖1所示,第一個(gè)字節(jié)存放的是增量域的變化掩碼(Change Mask),標(biāo)識(shí)TCP包頭中的增量域發(fā)生了哪些變化,變化掩碼共七個(gè)比特,其中一個(gè)為空閑比特。第二個(gè)字節(jié)存放的是連接號(hào),標(biāo)識(shí)此次傳輸?shù)陌^相對(duì)于某個(gè)連接號(hào)的TCP/IP包頭的不變部分沒(méi)有發(fā)生變化。第三個(gè)字節(jié)存放的是TCP包頭的校驗(yàn)和(Checksum),用來(lái)在接收端檢查包頭是否在傳輸過(guò)程中發(fā)生了錯(cuò)誤。最后就是在第一個(gè)字節(jié)的變化掩碼所對(duì)應(yīng)的發(fā)生了變化的增量域。
由上所述可知,現(xiàn)有技術(shù)雖然能夠有效地減小網(wǎng)絡(luò)傳輸量,但是在壓縮包頭的傳輸格式中,第一個(gè)字節(jié)的七個(gè)比特中任一個(gè)發(fā)生錯(cuò)誤,都會(huì)導(dǎo)致錯(cuò)誤解壓,而目前只能在恢復(fù)出整個(gè)包頭后利用TCP包頭的校驗(yàn)和信息進(jìn)行檢錯(cuò),其檢錯(cuò)時(shí)延太長(zhǎng),數(shù)據(jù)傳輸效率較低。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種TCP/IP包頭的發(fā)送方法,旨在解決現(xiàn)有技術(shù)在對(duì)包頭進(jìn)行解壓時(shí),只能在恢復(fù)出整個(gè)包頭后進(jìn)行檢錯(cuò),導(dǎo)致檢錯(cuò)時(shí)延太長(zhǎng),數(shù)據(jù)傳輸效率較低的問(wèn)題。
本發(fā)明的另一目的在于提供一種TCP/IP包頭的接收方法。
本發(fā)明的另一目的在于提供一種TCP/IP包頭的壓縮方法。
本發(fā)明的另一目的在于提供一種TCP/IP包頭的壓縮裝置。
本發(fā)明是這樣實(shí)現(xiàn)的,一種TCP/IP包頭的發(fā)送方法,所述TCP/IP包頭中包括用于標(biāo)識(shí)包頭的增量域發(fā)生哪些變化的變化掩碼,所述變化掩碼包括七個(gè)比特和一個(gè)空閑比特,所述方法包括下述步驟在發(fā)送的TCP/IP包頭滿足壓縮條件時(shí),按照RFC1144壓縮算法對(duì)所述TCP/IP包頭進(jìn)行壓縮,并在壓縮后的包頭的變化掩碼中添加一個(gè)奇偶校驗(yàn)碼;將添加了奇偶校驗(yàn)碼的壓縮包頭發(fā)送給接收端。
所述奇偶校驗(yàn)碼添加在變化掩碼的所述空閑比特位。
所述奇偶校驗(yàn)碼添加在所述變化掩碼的一個(gè)新增比特位。
所述奇偶校驗(yàn)碼為所述七個(gè)比特的二進(jìn)制之和。
一種TCP/IP包頭的接收方法,所述方法包括下述步驟在接收的TCP/IP包頭為壓縮包頭時(shí),對(duì)壓縮后的包頭的變化掩碼進(jìn)行奇偶校驗(yàn),如果校驗(yàn)成功,則按照RFC1144壓縮算法對(duì)壓縮包頭進(jìn)行解壓,如果校驗(yàn)失敗,則中止解壓,等待發(fā)送端重傳。
所述對(duì)壓縮后的包頭的變化掩碼進(jìn)行奇偶校驗(yàn)的步驟具體為驗(yàn)證壓縮后的包頭的變化掩碼中所有比特的二進(jìn)制求和結(jié)果是否為0,是則校驗(yàn)成功,否則校驗(yàn)失敗。
一種TCP/IP包頭的壓縮方法,所述TCP/IP包頭中包括用于標(biāo)識(shí)包頭的增量域發(fā)生哪些變化的變化掩碼,所述變化掩碼包括七個(gè)比特和一個(gè)空閑比特,所述方法包括下述步驟按照RFC1144壓縮算法對(duì)TCP/IP包頭進(jìn)行壓縮;在壓縮后的包頭的變化掩碼中添加一個(gè)奇偶校驗(yàn)碼。
所述奇偶校驗(yàn)碼添加在變化掩碼的所述空閑比特位。
所述奇偶校驗(yàn)碼添加在所述變化掩碼的一個(gè)新增比特位。
所述奇偶校驗(yàn)碼為所述七個(gè)比特的二進(jìn)制之和。
一種TCP/IP包頭的壓縮裝置,所述TCP/IP包頭中包括用于標(biāo)識(shí)包頭的增量域發(fā)生哪些變化的變化掩碼,所述變化掩碼包括七個(gè)比特和一個(gè)空閑比特,所述裝置包括壓縮模塊,用于按照RFC1144壓縮算法對(duì)TCP/IP包頭進(jìn)行壓縮;以及奇偶校驗(yàn)碼添加模塊,用于在壓縮后的包頭的變化掩碼中添加一個(gè)奇偶校驗(yàn)碼。
所述奇偶校驗(yàn)碼添加在變化掩碼的所述空閑比特位。
所述奇偶校驗(yàn)碼添加在所述變化掩碼的一個(gè)新增比特位。
所述奇偶校驗(yàn)碼為所述七個(gè)比特的二進(jìn)制之和。
本發(fā)明在發(fā)送的TCP/IP壓縮包頭中添加奇偶校驗(yàn)碼,接收端對(duì)包頭進(jìn)行解壓之前,先進(jìn)行奇偶校驗(yàn),判斷對(duì)該包頭丟棄還是進(jìn)行解壓,不必在恢復(fù)出整個(gè)包頭后再進(jìn)行檢錯(cuò),縮短了檢錯(cuò)時(shí)延,提高了數(shù)據(jù)傳輸效率。
圖1是現(xiàn)有技術(shù)中TCP/IP壓縮包頭的傳輸格式圖;
圖2是本發(fā)明提供的發(fā)送端發(fā)送TCP/IP包頭的流程圖;圖3是本發(fā)明提供的接收端接收TCP/IP包頭的流程圖;圖4是本發(fā)明一個(gè)實(shí)施例中TCP/IP壓縮包頭的傳輸格式示意圖;圖5是本發(fā)明提供的TCP/IP包頭壓縮裝置的結(jié)構(gòu)圖。
具體實(shí)施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明中,在發(fā)送端在壓縮包頭的第一個(gè)字節(jié)中添加一個(gè)奇偶校驗(yàn)碼,接收端對(duì)壓縮包頭進(jìn)行解壓之前,先對(duì)該第一個(gè)字節(jié)進(jìn)行奇偶校驗(yàn),判斷對(duì)該包頭丟棄還是進(jìn)行解壓,不必在恢復(fù)出整個(gè)包頭后再進(jìn)行檢錯(cuò),從而縮短了檢錯(cuò)時(shí)延,提高了數(shù)據(jù)傳輸效率。
本發(fā)明將奇偶校驗(yàn)碼添加在了第一個(gè)字節(jié)(即變化掩碼)中的空閑比特位(即圖1中的X位),其值設(shè)置為原有七個(gè)比特(C、I、P、S、A、W、U)的二進(jìn)制之和。
這種將奇偶校驗(yàn)碼添加在變化掩碼的空閑比特位的方式,可以保持與RFC1144壓縮算法相兼容,且能保證較好的壓縮效率。作為本發(fā)明的另一實(shí)施例,如果不要求與RFC1144壓縮算法相兼容,也可以將奇偶校驗(yàn)碼添加在變化掩碼的一個(gè)新增比特位。
另外,該奇偶校驗(yàn)碼的值并不局限于使用變化掩碼原有七個(gè)比特的二進(jìn)制之和,也可以根據(jù)類似的其他算法得到奇偶校驗(yàn)碼,例如計(jì)算第一個(gè)字節(jié)中為1的比特個(gè)數(shù)是偶數(shù)還是奇數(shù)等。
圖2示出了本發(fā)明一個(gè)實(shí)施例中提供的發(fā)送端發(fā)送TCP/IP包頭的流程,詳述如下在步驟S201中,判斷TCP/IP包頭是否滿足RFC1144壓縮算法的可壓縮條件,是則執(zhí)行步驟S202,否則執(zhí)行步驟S205;在步驟S202中,判斷TCP/IP包頭是否屬于某一類型包頭的首個(gè)完整包頭,是則執(zhí)行步驟S206,否則執(zhí)行步驟S203;在步驟S203中,按RFC1144壓縮算法對(duì)包頭進(jìn)行壓縮,并在壓縮包頭的第一個(gè)字節(jié)中添加一個(gè)奇偶校驗(yàn)碼,典型的可將該字節(jié)中原有7個(gè)比特(C、I、P、S、A、W、U)的二進(jìn)制之和賦到空閑比特位;在步驟S204中,將壓縮后的TCP/IP包頭發(fā)送到接收端,并在發(fā)送端記錄同類型包頭出現(xiàn)的連接號(hào);在步驟S205中,對(duì)包頭不進(jìn)行壓縮,透明發(fā)送給接收端;在步驟S206中,對(duì)包頭不進(jìn)行壓縮,發(fā)送給接收端,并且在發(fā)送后保留包頭的全部信息。
圖3示出了本發(fā)明一個(gè)實(shí)施例中提供的接收端接收TCP/IP包頭的流程,詳述如下在步驟S301中,判斷所接收到的TCP/IP包頭是否為采用RFC1144壓縮算法進(jìn)行壓縮的包頭,是則執(zhí)行步驟S302;在步驟S302中,對(duì)其第一個(gè)字節(jié)(即其變化掩碼)進(jìn)行奇偶校驗(yàn);在步驟S303中,判斷奇偶校驗(yàn)是否成功,作為本發(fā)明的一個(gè)實(shí)施例,即驗(yàn)證包頭的變化掩碼中所有比特的二進(jìn)制求和結(jié)果是否為0,是則執(zhí)行步驟S304,否則執(zhí)行步驟S308;在步驟S304中,奇偶校驗(yàn)成功,按照RFC1144壓縮算法進(jìn)行正常解壓;在步驟S305中,判斷包頭是否屬于某一類型包頭的首個(gè)完整包頭,是則執(zhí)行步驟S306,否則執(zhí)行步驟S307;在步驟S306中,保留該包頭的全部信息;在步驟S307中,將包頭作為普通包頭進(jìn)行處理;在步驟S308中,奇偶校驗(yàn)失敗,判定該壓縮包頭錯(cuò)誤,中止解壓,等待發(fā)送端重傳。
圖4示出了本發(fā)明一個(gè)實(shí)施例中TCP/IP壓縮包頭的傳輸格式,在該實(shí)施例中,數(shù)據(jù)傳輸?shù)木唧w過(guò)程如下發(fā)送端首先判斷得知IP/TCP包頭滿足RFC1144壓縮算法的可壓縮條件,則將其進(jìn)行壓縮,壓縮結(jié)果如圖4所示的(a),壓縮包頭中變化掩碼的C、I、P、S、A、W、U七個(gè)比特位的值分別為1、0、0、1、1、0、0。
然后對(duì)此七個(gè)比特進(jìn)行二進(jìn)制求和,根據(jù)二進(jìn)制求和公式(1+1=0;1+0=1)可得F=C+I+P+S+A+W+U=1,從而得到發(fā)送端的壓縮結(jié)果如圖4中(b)所示,并將其傳輸給接收端。
若傳輸過(guò)程中沒(méi)有發(fā)生錯(cuò)誤,則接收端接收到的壓縮包頭中,第一個(gè)字節(jié)的內(nèi)容為F=1、C=1、I=0、P=0、S=1、A=1、W=0、U=0,接收端首先對(duì)該字節(jié)內(nèi)容進(jìn)行奇偶校驗(yàn),得到F+C+I+P+S+A+W+U=0,奇偶校驗(yàn)成功,接收端判定該壓縮包頭在傳輸過(guò)程未發(fā)生錯(cuò)誤,則按照RFC1144壓縮算法對(duì)該壓縮包頭進(jìn)行解壓;若傳輸過(guò)程中發(fā)生了錯(cuò)誤,如圖4(c)所示,C比特位由1變?yōu)榱?,此時(shí)接收端進(jìn)行奇偶校驗(yàn)的結(jié)果為F+C+I+P+S+A+W+U=1,奇偶校驗(yàn)失敗,接收端判定該壓縮包頭在傳輸過(guò)程發(fā)生了錯(cuò)誤,于是丟棄該壓縮包頭,等待發(fā)送端重傳。
圖5是本發(fā)明提供的TCP/IP包頭壓縮裝置的結(jié)構(gòu),壓縮模塊51按照RFC1144壓縮算法對(duì)TCP/IP包頭進(jìn)行壓縮,奇偶校驗(yàn)碼添加模塊52在壓縮后的包頭的變化掩碼中添加一個(gè)奇偶校驗(yàn)碼。其中,奇偶校驗(yàn)碼可以添加在變化掩碼的空閑比特位或者變化掩碼的一個(gè)新增比特位。作為本發(fā)明的一個(gè)實(shí)施例,奇偶校驗(yàn)碼為變化掩碼中原有七個(gè)比特的二進(jìn)制之和。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種TCP/IP包頭的發(fā)送方法,所述TCP/IP包頭中包括用于標(biāo)識(shí)包頭的增量域發(fā)生哪些變化的變化掩碼,所述變化掩碼包括七個(gè)比特和一個(gè)空閑比特,其特征在于,所述方法包括下述步驟在發(fā)送的TCP/IP包頭滿足壓縮條件時(shí),按照RFC1144壓縮算法對(duì)所述TCP/IP包頭進(jìn)行壓縮,并在壓縮后的包頭的變化掩碼中添加一個(gè)奇偶校驗(yàn)碼;將添加了奇偶校驗(yàn)碼的壓縮包頭發(fā)送給接收端。
2.如權(quán)利要求1所述的TCP/IP包頭的發(fā)送方法,其特征在于,所述奇偶校驗(yàn)碼添加在變化掩碼的所述空閑比特位。
3.如權(quán)利要求1所述的TCP/IP包頭的發(fā)送方法,其特征在于,所述奇偶校驗(yàn)碼添加在所述變化掩碼的一個(gè)新增比特位。
4.如權(quán)利要求1、2或3所述的TCP/IP包頭的發(fā)送方法,其特征在于,所述奇偶校驗(yàn)碼為所述七個(gè)比特的二進(jìn)制之和。
5.一種TCP/IP包頭的接收方法,其特征在于,所述方法包括下述步驟在接收的TCP/IP包頭為壓縮包頭時(shí),對(duì)壓縮后的包頭的變化掩碼進(jìn)行奇偶校驗(yàn),如果校驗(yàn)成功,則按照RFC1144壓縮算法對(duì)壓縮包頭進(jìn)行解壓,如果校驗(yàn)失敗,則中止解壓,等待發(fā)送端重傳。
6.如權(quán)利要求5所述的TCP/IP包頭的接收方法,其特征在于,所述對(duì)壓縮后的包頭的變化掩碼進(jìn)行奇偶校驗(yàn)的步驟具體為驗(yàn)證壓縮后的包頭的變化掩碼中所有比特的二進(jìn)制求和結(jié)果是否為0,是則校驗(yàn)成功,否則校驗(yàn)失敗。
7.一種TCP/IP包頭的壓縮方法,所述TCP/IP包頭中包括用于標(biāo)識(shí)包頭的增量域發(fā)生哪些變化的變化掩碼,所述變化掩碼包括七個(gè)比特和一個(gè)空閑比特,其特征在于,所述方法包括下述步驟按照RFC1144壓縮算法對(duì)TCP/IP包頭進(jìn)行壓縮;在壓縮后的包頭的變化掩碼中添加一個(gè)奇偶校驗(yàn)碼。
8.如權(quán)利要求7所述的TCP/IP包頭的壓縮方法,其特征在于所述奇偶校驗(yàn)碼添加在變化掩碼的所述空閑比特位。
9.如權(quán)利要求7所述的TCP/IP包頭的壓縮方法,其特征在于,所述奇偶校驗(yàn)碼添加在所述變化掩碼的一個(gè)新增比特位。
10.如權(quán)利要求7、8或9所述的TCP/IP包頭的壓縮方法,其特征在于,所述奇偶校驗(yàn)碼為所述七個(gè)比特的二進(jìn)制之和。
11.一種TCP/IP包頭的壓縮裝置,所述TCP/IP包頭中包括用于標(biāo)識(shí)包頭的增量域發(fā)生哪些變化的變化掩碼,所述變化掩碼包括七個(gè)比特和一個(gè)空閑比特,其特征在于,所述裝置包括壓縮模塊,用于按照RFC1144壓縮算法對(duì)TCP/IP包頭進(jìn)行壓縮;以及奇偶校驗(yàn)碼添加模塊,用于在壓縮后的包頭的變化掩碼中添加一個(gè)奇偶校驗(yàn)碼。
12.如權(quán)利要求11所述的TCP/IP包頭的壓縮裝置,其特征在于,所述奇偶校驗(yàn)碼添加在變化掩碼的所述空閑比特位。
13.如權(quán)利要求11所述的TCP/IP包頭的壓縮裝置,其特征在于,所述奇偶校驗(yàn)碼添加在所述變化掩碼的一個(gè)新增比特位。
14.如權(quán)利要求11、12或13所述的TCP/IP包頭的壓縮裝置,其特征在于,所述奇偶校驗(yàn)碼為所述七個(gè)比特的二進(jìn)制之和。
全文摘要
本發(fā)明適用于通信領(lǐng)域,提供了一種TCP/IP包頭的傳輸方法、壓縮方法和裝置,所述TCP/IP包頭中包括用于標(biāo)識(shí)包頭的增量域發(fā)生哪些變化的變化掩碼,所述變化掩碼包括七個(gè)比特和一個(gè)空閑比特,所述方法包括下述步驟在發(fā)送的TCP/IP包頭滿足壓縮條件時(shí),按照RFC1144壓縮算法對(duì)所述TCP/IP包頭進(jìn)行壓縮,并在壓縮后的包頭的變化掩碼中添加一個(gè)奇偶校驗(yàn)碼;將添加了奇偶校驗(yàn)碼的壓縮包頭發(fā)送給接收端。本發(fā)明在發(fā)送的TCP/IP壓縮包頭中添加奇偶校驗(yàn)碼,接收端對(duì)包頭進(jìn)行解壓之前,先進(jìn)行奇偶校驗(yàn),判斷對(duì)該包頭丟棄還是進(jìn)行解壓,不必在恢復(fù)出整個(gè)包頭后再進(jìn)行檢錯(cuò),縮短了檢錯(cuò)時(shí)延,提高了數(shù)據(jù)傳輸效率。
文檔編號(hào)H04L1/22GK1913531SQ20061006233
公開(kāi)日2007年2月14日 申請(qǐng)日期2006年8月25日 優(yōu)先權(quán)日2006年8月25日
發(fā)明者李霄, 汪波 申請(qǐng)人:華為技術(shù)有限公司