日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

低速串行鏈路下IP/UDP/RTP數(shù)據(jù)包頭的壓縮( 五 )


完整設(shè)計(jì)細(xì)節(jié) 。它在IPv4中通常就是一個(gè)IP頭,后面接著是一個(gè)UDP頭和UDP負(fù)載(可能為一
個(gè)RTP頭及其負(fù)載) 。不過,F(xiàn)ULL_HEADER也可以攜帶IP封裝的包,其中可能有兩個(gè)IP頭
及其相應(yīng)的UDP和RTP 。對(duì)于IPv6,該包還可能是IPv6和IPv4頭的組合 。通常每個(gè)后續(xù)頭都
由前一個(gè)頭的類型字段來指示 。
FULL_HEADER包與IPv4或IPv6包的區(qū)別在于它必須攜帶壓縮環(huán)境ID和4位的順序號(hào) 。為了
避免頭變大,這些值被插入到IP和UDP頭的長(zhǎng)度字段中,因?yàn)閷?shí)際的長(zhǎng)度可以根據(jù)鏈路層提
供的長(zhǎng)度推算出來 。這里需要2個(gè)16位長(zhǎng)的字段:它們來自包中的頭兩個(gè)可用頭 。對(duì)于
IPv4/UDP包,第一個(gè)長(zhǎng)度字段是IP頭總長(zhǎng)度字段,第二個(gè)字段是UDP頭長(zhǎng)度字段 。對(duì)于IPv4
封裝包,第一個(gè)長(zhǎng)度字段為第一個(gè)IP頭的總長(zhǎng)度字段,第二個(gè)字段是第二個(gè)IP頭的總長(zhǎng)度字
段 。
如5.3.2節(jié)所規(guī)定,環(huán)境ID(CID)和4位順序號(hào)的位置取決于是采用8位還是16位環(huán)境ID,
如下圖所示(16位寬,左邊為最高位):
對(duì)于8位環(huán)境ID:
- - - - - - - - - - - - - - - -
01GenerationCID第一長(zhǎng)度字段
- - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
0seq第二長(zhǎng)度字段
- - - - - - - - - - - - - - - -
對(duì)于16位環(huán)境ID:
- - - - - - - - - - - - - - - -
11Generation0seq第一長(zhǎng)度字段
- - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
CID第二長(zhǎng)度字段
- - - - - - - - - - - - - - - -
第一長(zhǎng)度字段的起始位表示CID的長(zhǎng)度 。CID的長(zhǎng)度要么對(duì)于所有環(huán)境均相同,要么必須
提供兩個(gè)額外包類型來分別指示COMPRESSED_UDP和COMPRESSED_RTP包格式采用8位還是16位
CID 。對(duì)于IP/UDP/RTP壓縮方案,第一長(zhǎng)度字段的第二位為1表示當(dāng)前為4位順序號(hào) 。
在IPv6的COMPRESSED_NON_TCP包中使用Generation字段方法如[3]所述 。IPv4實(shí)現(xiàn)不使用
COMPRESSED_NON_TCP包,壓縮器應(yīng)該將generation字段設(shè)置為0 。為了使IPv4和IPv6操作一
致,當(dāng)解壓器接收到Generation值后就將它存在環(huán)境中,并在CONTEXT_STATE包中返回最近
的值 。
當(dāng)接收到一個(gè)FULL_HEADER時(shí),接收方將整個(gè)頭存在由環(huán)境ID選擇的環(huán)境中 。4位順序號(hào)
也存在環(huán)境中,從而可實(shí)現(xiàn)解壓器和壓縮器的同步 。在使用COMPRESSED_NON_TCP包時(shí),順序
號(hào)插入到該包的“Data字段”中,并且D位設(shè)置參照[3]的第6節(jié)所述 。在接收到
COMPRESSED_NON_TCP包后,接收方將Generation號(hào)和存在環(huán)境中的值進(jìn)行比較 。假如不同,
則環(huán)境已經(jīng)過期,需要用該FULL_HEADER包來進(jìn)行刷新 。假如一致,則壓縮的IP和UDP頭信息,
順序號(hào),以及RTP頭都存入已保存的環(huán)境中 。
保存環(huán)境所需要的內(nèi)存數(shù)量取決于FULL_HEADER中到底封裝了多少個(gè)頭 。最大頭的大小可
通過壓縮/解壓縮雙方協(xié)商得到 。
3.3.2.COMPRESSED_RTP包格式
假如包中RTP頭的二次差分值為0,則解壓器只需在前一個(gè)包的未壓縮頭上加上存儲(chǔ)的一
次差分值就可以重建該包 。雙方之間只需傳輸會(huì)話環(huán)境標(biāo)識(shí)符和順序號(hào)就可以維持同步和檢
測(cè)出丟失包 。
假如包中RTP頭某些字段的二次差分值不為0,則要在雙方要傳輸這些字段的新的一次差
分結(jié)果的壓縮編碼 。除了要把新的一次差分值加到解壓器會(huì)話環(huán)境的未壓縮頭上,也要加到
那些二次差分為0的后續(xù)包的相應(yīng)字段上并顯式地存儲(chǔ)到環(huán)境里 。每當(dāng)一次差分改變時(shí),都
要對(duì)其進(jìn)行傳輸和存儲(chǔ) 。在實(shí)際應(yīng)用中,唯一需要用到一次差分的字段就是IPv4ID字段和
RTP時(shí)間戳字段 。
RTP順序號(hào)字段的增量為1 。假如順序號(hào)變化不是1,則必須進(jìn)行通信以報(bào)告該區(qū)別,但并

推薦閱讀