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

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


器在實(shí)現(xiàn)時(shí)可以對(duì)這些字段使用哈希函數(shù)來檢索存儲(chǔ)的會(huì)話環(huán)境列表 。壓縮包攜帶一個(gè)稱為
會(huì)話環(huán)境標(biāo)識(shí)符或者CID的小整數(shù)來指示該包應(yīng)該解釋到哪個(gè)環(huán)境中 。解壓方可以使用CID
直接在存儲(chǔ)的環(huán)境列表中來進(jìn)行檢索 。
由于RTP壓縮是無(wú)損壓縮,它可應(yīng)用于任何可從中受益的UDP通信 。當(dāng)然最可能的例子就
是RTP包,不過也可以使用試探法來判定一個(gè)包是否為RTP包,因?yàn)榧幢阍囂椒ńo出的答案是
錯(cuò)的也不會(huì)造成什么損害 。這樣做需要對(duì)所有的UDP包或者至少對(duì)偶數(shù)端口號(hào)的包(見3.4節(jié))
執(zhí)行壓縮算法 。
為了避免將來無(wú)謂地重試,大多數(shù)壓縮器在實(shí)現(xiàn)時(shí)都要維護(hù)包流的一個(gè)“拒絕緩存”來
記錄那些多次作為RTP包嘗試而壓縮失敗的包 。壓縮失敗往往意味著潛在的RTP包頭中一些在
多數(shù)時(shí)間應(yīng)保持恒定字段卻發(fā)生了變化,如負(fù)載類型字段 。即便其它類似的字段都保持不變,
為了避免耗盡所有的可用會(huì)話環(huán)境,一個(gè)SSRC字段不斷改變的包流也應(yīng)放入拒絕緩存 。拒絕
緩存可通過源IP地址和目的IP地址以及UDP端口對(duì)進(jìn)行索引,而SSRC字段因?yàn)榭赡馨l(fā)生變化
不能用來作為索引 。當(dāng)RTP壓縮失敗,IP和UDP頭仍然可以被壓縮 。分片后不是初始片的IP
包和長(zhǎng)度不夠容納一個(gè)完整UDP頭的包都不能作為FULL_HEADER發(fā)送 。另外,沒有容納至少12
字節(jié)UDP數(shù)據(jù)的包也不能用于創(chuàng)建RTP環(huán)境 。假如這樣的包作為FULL_HEADER包發(fā)送,它后面
可以跟隨COMPRESSED_UDP包但不能跟隨COMPRESSED_RTP包 。
3.2RTP數(shù)據(jù)包頭壓縮
在IPv4包頭中只有總長(zhǎng)度,包ID和校驗(yàn)和字段會(huì)發(fā)生改變 。因?yàn)樵阪溌穼右呀?jīng)提供了長(zhǎng)
度,這里總長(zhǎng)度是冗余的,同時(shí)由于本壓縮方案必須依靠鏈路層實(shí)現(xiàn)良好的錯(cuò)誤檢測(cè)(如PPP
的CRC[4]),頭校驗(yàn)和也可以省略掉 。于是只剩下了包ID,而在假定沒有IP分片的情況下它
也無(wú)參加通信 。不過為了保持無(wú)損壓縮,包ID的變化也將被傳輸 。對(duì)每個(gè)包而言,包ID通常
每次加1或者一個(gè)很小的整數(shù)值 。(有些系統(tǒng)中包ID的增量為交換的字節(jié)數(shù),這對(duì)壓縮效率
有一些稍微的影響 。)而IPv6包頭既沒有包ID字段,也沒有頭校驗(yàn)和字段,只有負(fù)載長(zhǎng)度字
段會(huì)發(fā)生變化 。
由于在IP層和鏈路層均有相應(yīng)字段,UDP頭中的長(zhǎng)度字段也是冗余的 。假如選擇不產(chǎn)生UDP
校驗(yàn)和則UDP的校驗(yàn)和字段為常數(shù)0 。否則必須對(duì)校驗(yàn)和進(jìn)行交互通信以保證無(wú)損壓縮 。一個(gè)
重要原則就是為需要的應(yīng)用程序維護(hù)端到端的錯(cuò)誤檢測(cè) 。
在RTP頭中,作為特定環(huán)境標(biāo)識(shí)的一部分,給定的環(huán)境的SSRC標(biāo)識(shí)符是恒定不變的 。對(duì)大
多數(shù)包而言,只有順序號(hào)和時(shí)間戳是因包而異的 。假如沒有包丟失或者亂序,順序號(hào)應(yīng)按步
進(jìn)值1逐包改變 。對(duì)音頻包,時(shí)間戳應(yīng)按采樣周期增加 。對(duì)于視頻,時(shí)間戳在每幀的第一個(gè)
包是發(fā)生改變,而在后面該幀的其它包中保持不變 。假如每個(gè)視頻幀只占據(jù)一個(gè)包,且視頻
幀按照恒定的速率產(chǎn)生,則幀與幀之間時(shí)間戳的變化也是恒定的 。
注重到每當(dāng)這種情況出現(xiàn),順序號(hào)和時(shí)間戳字段的二次差分均為0,所以下一個(gè)包頭的相應(yīng)
字段值可通過前一個(gè)未壓縮包頭的該字段加上存在會(huì)話環(huán)境一次差分值得到 。當(dāng)二次差分不
為0時(shí),變化量通常也要遠(yuǎn)小于字段中所有位的數(shù)目,所以可通過對(duì)新的一次差分進(jìn)行編碼
并傳輸該編碼來達(dá)到壓縮的目的,不用傳輸絕對(duì)值 。
一個(gè)音頻會(huì)話峰(talkspurt)中M位將在第一個(gè)包中設(shè)置,而一個(gè)視頻幀中M位在最后一個(gè)

推薦閱讀