摘 要:首先對Internet中常用的數據報文頭壓縮算法所存在的實際問題進行了簡要分析,并詳細討論了接收端分組重排和CRC校驗所產生的錯誤對VJ算法和Twice算法的影響。在此基礎上指出了可通過在VJ,Twice算法中加入新的控制過程使解壓縮端在處于良好狀態時能夠多發送分組,從而提高分組的傳輸效率和信道的利用率。
關鍵詞:報文頭壓縮算法;分組重排;CRC校驗;VJ算法;Twice算法
中圖分類號:TP393文獻標識碼:B文章編號:1004373X(2008)1917302
Research on Compression Algorithm for Packet Header of Mobile IPv6 Data Network
GU Jing
(Xi′an Institute of Post Telecommunications,Xi′an,710061,China)
Abstract:Some problems existing in the general header compression algorithm used in Internet are simply described.And the effects of packet reordering algorithm at the receiver and the error that can′t be checked out by CRC check on VJ and Twice algorithm are discussed.Some new controls are introduced in VJ and Twice algorithm to realize that more packets can be sent when the decompression end is in good state and to make the time in which it is in bad state is short as possible as it is.
Keywords:adaptive header compression;packet reordering;CRC check;VJ algorithm;Twice algorithm
1 引 言
隨著Internet網絡技術的高速發展,IPv6將取代傳統IPv4網絡而成為現代通信網絡的發展趨勢。由于IPv6協議分組較長,加之無線信道的資源有限,所以為了提高無線鏈路中分組的傳輸效率和信道的利用率,就必須對分組報文頭進行壓縮處理。
1990年,Van Jacobson針對IPv4協議設計了適用于低速鏈路的TCP/IP報文頭壓縮算法。在VJ算法中,Jacobson分析了同一條鏈路中每個分組報文頭的變化情況,并利用變化模式將40個字節的報文頭壓縮到4~17[1]個字節。1996年,Degermark提出了適用于IPv6網絡的UDP、TCP報文頭壓縮算法。在該算法中,Degermark設計了很多用來恢復對解壓縮端進行同步的機制,如“Twice”算法,當分組不能被正確地解壓縮時,解壓縮端假設其原因是一個或者多個以前的分組丟失,并假設所有分組帶有相同的增量值,同時用增量值對分組進行兩次或多次解壓縮[2,3]。Twice算法在某種情況下改善了報文頭的壓縮性能。近年來,IETF成立了ROHC[4,5](Robust Header Compression)工作組,以致力于改善無線環境中報文頭的壓縮性能,用以提高帶寬利用率和減小丟包率。
2 傳統壓縮算法中存在的問題
眾所周知,IP網絡的數據包是分段進行傳輸的,由于網絡狀況的差異,UDP的傳輸很容易造成報文丟失、重復,而且分組傳輸沒有固定路徑。路由器根據分組的目的地址和當前網絡資源來轉發數據,不保證分組到達的有序性,但是這就需要對分組進行重新排序。然而現有的報頭壓縮方案沒有考慮無線信道狀態,無法很好地適應無線鏈路的時變特性[6,7]。當傳輸延時較大時,TCP分組的滑動窗口也隨著增大。如果在發送端出現突發業務,則分組重排的任務就會變得很繁重。然而許多報文頭壓縮算法都以分組有序到達或者少量的分組重排為前提,所以在分組重排很頻繁時就需要對壓縮算法做進一步的改進。
循環冗余校驗CRC(Cyclic Redundancy Check/Code) 是數據通信領域中最常用的一種采用多項式編碼的檢錯算法,它是在鏈路層對一個傳送數據塊進行校驗[8],是一種較高效的差錯控制方法。當TCP/IP數據包通過以太網傳輸時,鏈路層將對其進行CRC校驗。然而,由于各種原因目前在Internet中有多種類型的錯誤是可以通過鏈路層的CRC校驗而不被檢出。例如,由于軟硬件的缺陷、收發端系統和路由器等問題而導致的錯誤可以通過鏈路層的CRC檢錯。還有,在IP協議層引入的錯誤也不會被鏈路層CRC校驗檢出。因此,我們必須采取有效方法來消除這些錯誤源。
3 分組重排與通過CRC校驗的錯誤對壓縮算法的影響
首先作如下假設:未經報文頭壓縮的TCP分組長度為612個字節,報文頭壓縮后TCP分組長度為517個字節;每個比特位被破壞的概率一樣;每個錯誤的比特都會被鏈路層或者傳輸層的檢錯機制檢測到;所有帶有原始報文頭的分組就具有相同的出錯概率qo;所有經過報文頭壓縮的分組也具有相同的出錯概率qc,顯然由于壓縮過的報文頭比原始的報文頭短,所以qc 3.1 對VJ算法的影響 VJ算法的缺陷主要來自錯誤傳遞引起的分組出錯和分組丟失。眾所周知,TCP協議使用接收端的ACKs作為擁塞控制的指示,所以分組出錯或者丟失對TCP性能的影響很大。 通過對不同壓縮算法的實驗分析表明,在誤碼率BER=10-5時,經VJ算法壓縮的分組的性能最差。由于報文頭被破壞了的TCP壓縮分組將被丟棄,所以如果前一個分組被丟棄那么即使這個TCP壓縮報文頭無誤傳輸,也將被丟棄。因此可以看出分組的錯誤率幾乎線性增漲,直到收到一個未壓縮的TCP分組為止。此后分組的錯誤率將下降并再次變大。另外,壓縮率還受分組重排的影響。在VJ算法中,恒定字段因為CID發生變化和解壓縮端失去同步時,會產生一個新的CID,并發送未壓縮的參考分組。若一個分組不能被解壓縮,則TCP分組可以由超時或者重復的ACK發現,并重傳分組。如果壓縮端發現了重傳分組的序號比前一個分組的序號小,則產生一個負的增量值,在這種情況下,壓縮算法會丟棄這個負值,并傳送完整的報文頭。這種機制保證了CID的信息可以在解壓縮端得到更新,但是,有時即使沒有分組丟失也會發生上述情況。由于分組到達的順序和發送的順序不一致,需要進行重新排序,這樣有些分組就需要完整的報文頭而不是壓縮的報文頭。這對估計壓縮率造成了困難。 設B為壓縮前的報文頭大小,A為壓縮后報文頭的平均大小,并假設只考慮了重排因素。如果重排的概率很小則壓縮率可近似為Restimated=A/B。但是如果重排比較多則需要考慮重排對壓縮率的影響。設x為傳輸分組中遲到分組的百分比,則壓縮率應該是: Ractual=A·(1-x)+B·xB 分析估計誤差Pe=Ractual-RestimatedRactual,則Pe為: Pe=Ractual-RestimatedRactual=(B-A)·xA+(B-A)·x 當壓縮率不同時,估計誤差Pe與遲到分組的百分比x之間的關系如圖1所示。 圖1 分組的壓縮率和估計誤差之間的關系 在使用VJ算法中,沒有選項字段的原始報文頭經壓縮后其典型大小為4~17個字節。圖1中的3條曲線代表了在不同壓縮率的情況下,分組重排和估計誤差之間的關系。顯然,分組報文頭壓縮得越厲害其估計誤差就越大。 3.2 對Twice算法的影響 Twice算法假定壓縮后的分組應該具有相同的增量值,如果增量值不同就會造成錯誤傳遞。而分組重排使得Twice算法發送未經報文頭壓縮的TCP分組,從而降低分組壓縮率。在Twice算法中,如果一個分組丟失,則后續分組將不斷地利用它們的增量值對該報文頭進行多次的解壓縮操作。如果在壓縮前分組的大小相同,而且沒有分組重排與丟失,則Twice算法可以恢復傳輸鏈路中的報文頭壓縮分組。反之,如果壓縮前鏈路中出現分組重排,就會嚴重地影響分組的解壓縮性能。 通過鏈路層CRC校驗的錯誤也會影響Twice算法的性能。我們將TCP校驗和未能檢出而傳到上層的差錯概率定義為漏檢錯誤率。顯然,Twice算法的漏檢錯誤概率要比VJ算法的漏檢錯誤概率大。 4 結 語 仿真實驗表明,對比VJ算法與Twice算法的分組傳輸錯誤率,在分組長度相同且沒有分組重排的情況下Twice算法的分組壓縮效果較好。如果一旦出現分組重排,Twice壓縮算法的分組出錯率就會和VJ壓縮一樣幾乎線性增長。只有在解壓縮端接收到一個帶有完整報文頭的分組之后才能使出錯率下降。我們可以根據分組的發送端對無線信道狀態的敏感性,使發送端能夠根據信道特性的變化狀況而自動進行調整,通過自適應壓縮算法來提高分組的傳輸效率和信道的利用率。 參考文獻 [1]Jacobson V.IP Headers for Low-speed Serial Links.RFC1144,1990. [2]Charles Perkin.IP Encapsulation within IP.RFC2003,1996. [3]Charles Perkin,IP Mobility Support.RFC2002,1996. [4]Burmeister C.Robust Header Compression (ROHC): Framework and Four Profiles: RTP,UDP,ESP and Uncompressed,RFC3095,2001. [5]Bormann C.Robust Header Compression (ROHC).draft-ietf-rohc-rtp-09.txt,Internet Engineering Task Force,2001. [6]吳亦川,黃奎,鄭健平,等.一種自適應的健壯TCP/IP報頭壓縮算法[J].計算機研究與發展,2005,42(4):655-661. [7]吳亦川,黃奎,鄭健平,等.無線IP網絡中一種針對時實流的報文頭壓縮算法[J].軟件學報,2005,16(6):1 159-1 167. [8]Rijsinghani A.Computation of the Internet Checksum via Incremental Update.RFC1624,1994. 作者簡介 谷 靜 女,1975年出生,山東巨野人,講師,碩士。研究方向為GIS應用、移動計算網絡。 注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文