專利名稱:壓縮報(bào)頭傳輸數(shù)據(jù)包的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)包傳輸方法,用于在多個(gè)數(shù)據(jù)終端之間發(fā)送和接收數(shù)據(jù)包,還涉及用于這一數(shù)據(jù)包傳輸?shù)囊环N中繼裝置和一種數(shù)據(jù)終端。
最近,通過(guò)因特網(wǎng)傳輸需要實(shí)時(shí)傳輸?shù)囊曨l數(shù)據(jù)或者音頻數(shù)據(jù)這一類數(shù)據(jù)的需要非常緊迫。
作為滿足這一需要的協(xié)議,RFC(請(qǐng)求說(shuō)明)1889制訂了一個(gè)RTP(實(shí)時(shí)傳輸協(xié)議),由因特網(wǎng)標(biāo)準(zhǔn)化組IETF(因特網(wǎng)工程特別任務(wù))發(fā)布。這個(gè)RTP的功能有1)有效負(fù)荷類型的規(guī)范,2)序列號(hào)的指定,和3)時(shí)標(biāo)的指定。這些規(guī)則使得音頻和視頻數(shù)據(jù)這樣的信息能夠在因特網(wǎng)上實(shí)時(shí)傳輸。通常,RTP被用作網(wǎng)絡(luò)層上IP(因特網(wǎng)協(xié)議)的上層和傳輸層上的UDP(用戶數(shù)據(jù)報(bào)協(xié)議)。
圖13A說(shuō)明要按照RTP、UDP和IP傳輸?shù)囊纛l和視頻數(shù)據(jù)這種數(shù)據(jù)的RTP報(bào)頭、UDP報(bào)頭和IP報(bào)頭(以后叫做“RTP/UDP/IP報(bào)頭”)。以后,將包括RTP/UDP/IP報(bào)頭的數(shù)據(jù)包叫做IP數(shù)據(jù)包。
如圖所示,IP報(bào)頭需要20個(gè)字節(jié),UDP報(bào)頭需要8個(gè)字節(jié),RTP報(bào)頭需要12個(gè)字節(jié),因此,RTP/UDP/IP報(bào)頭總的字節(jié)數(shù)達(dá)到40個(gè)字節(jié)。而IP數(shù)據(jù)包里的視頻數(shù)據(jù)則包括,例如,大約50個(gè)字節(jié)。為了以數(shù)據(jù)包的形式傳輸這種圖像數(shù)據(jù),系統(tǒng)開銷達(dá)到44%以上。類似地,為了在一個(gè)數(shù)據(jù)包里傳輸包括20個(gè)字節(jié)的音頻數(shù)據(jù),系統(tǒng)開銷達(dá)到了66%。由于實(shí)際傳輸中需要增加其它層的報(bào)頭,因此,整個(gè)報(bào)頭將占用數(shù)據(jù)包很大的一個(gè)百分比,會(huì)因此降低通信效率。
作為克服這一缺點(diǎn)的一種技術(shù),IETF發(fā)布的RFC 2508給出了一個(gè)RTP壓縮協(xié)議,用于壓縮RTP/UDP/IP報(bào)頭。RTP壓縮協(xié)議使得圖13A所示的RTP/UDP/IP報(bào)頭能夠被壓縮成圖13B所示的報(bào)頭(以后叫做“壓縮報(bào)頭”)。下面詳細(xì)介紹這一壓縮方法。
這一壓縮方法被用于網(wǎng)絡(luò)內(nèi)兩個(gè)節(jié)點(diǎn)之間,這些數(shù)據(jù)包在例如多個(gè)數(shù)據(jù)終端之間傳輸。更具體地說(shuō),在這兩個(gè)節(jié)點(diǎn)中,一個(gè)節(jié)點(diǎn)(以后叫做“發(fā)送器節(jié)點(diǎn)”)將數(shù)據(jù)終端之間傳輸?shù)囊徊糠諭P數(shù)據(jù)包的RTP/UDP/IP報(bào)頭轉(zhuǎn)換成壓縮報(bào)頭,并將它作為壓縮了報(bào)頭的數(shù)據(jù)包傳輸給另一個(gè)節(jié)點(diǎn)(以后叫做“接收器節(jié)點(diǎn)”)。與此同時(shí),發(fā)送器節(jié)點(diǎn)將另一部分IP數(shù)據(jù)包的RTP/UDP/IP報(bào)頭作為完整報(bào)頭而沒(méi)有任何壓縮傳輸給接收器節(jié)點(diǎn)。接收器節(jié)點(diǎn)將來(lái)自發(fā)送器節(jié)點(diǎn)的壓縮報(bào)頭數(shù)據(jù)包或者完整報(bào)頭數(shù)據(jù)包解壓縮(也就是恢復(fù)),得到IP數(shù)據(jù)包,并將它發(fā)送給下一個(gè)節(jié)點(diǎn)或者接收器數(shù)據(jù)終端。完整報(bào)頭是這樣的報(bào)頭,包括在圖13A所示的RTP/UDP/IP報(bào)頭里的長(zhǎng)度被包括一個(gè)CONTEXT_ID的信息替換掉,用于識(shí)別RTP連接和按照發(fā)送器傳輸順序給出的連接序列號(hào)link_seq。
下面介紹圖13B所示壓縮報(bào)頭的內(nèi)容。在圖13A所示RTP/UDP/IP報(bào)頭的陰影區(qū)部分里的數(shù)據(jù),包括IP報(bào)頭里的版本號(hào)(V)和RTP報(bào)頭里的有效負(fù)荷類型,是要從發(fā)送器節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包的恒定數(shù)據(jù)(以后叫做“靜態(tài)字段”)。因此,如圖13B所示,這一壓縮報(bào)頭不包括靜態(tài)字段的數(shù)據(jù)。當(dāng)發(fā)送器節(jié)點(diǎn)將數(shù)據(jù)包流里的第一個(gè)IP數(shù)據(jù)包發(fā)送給接收器節(jié)點(diǎn)的時(shí)候,它發(fā)送一個(gè)完整報(bào)頭數(shù)據(jù)包,它具有完整的報(bào)頭,包括那些靜態(tài)字段。在這以后,發(fā)送器節(jié)點(diǎn)將后面的IP數(shù)據(jù)包的RTP/UDP/IP報(bào)頭轉(zhuǎn)換成不包括任何靜態(tài)字段的壓縮報(bào)頭。這些轉(zhuǎn)換過(guò)的壓縮報(bào)頭被作為壓縮報(bào)頭數(shù)據(jù)包,發(fā)送給接收器節(jié)點(diǎn)。當(dāng)接收器節(jié)點(diǎn)收到第一個(gè)IP數(shù)據(jù)包的完整報(bào)頭數(shù)據(jù)包時(shí),接收器節(jié)點(diǎn)將收到的RTP/UDP/IP報(bào)頭恢復(fù)成第一個(gè)收到的完整報(bào)頭數(shù)據(jù)包里的完整報(bào)頭,并將這樣得到的解壓縮報(bào)頭寫入內(nèi)部存儲(chǔ)器。在這以后,接收器節(jié)點(diǎn)利用RTP/UDP/IP報(bào)頭的靜態(tài)字段,恢復(fù)在第一個(gè)數(shù)據(jù)包后面收到的壓縮報(bào)頭數(shù)據(jù)包里壓縮報(bào)頭的靜態(tài)字段。
在所有IP數(shù)據(jù)包里,靜態(tài)字段里的數(shù)據(jù)并不總是常數(shù),而是可能在某個(gè)IP數(shù)據(jù)包里發(fā)生改變。如果在某個(gè)IP數(shù)據(jù)包里發(fā)生了這樣的改變,發(fā)送器節(jié)點(diǎn)將發(fā)送一個(gè)完整的報(bào)頭數(shù)據(jù)包給接收器節(jié)點(diǎn),包括IP數(shù)據(jù)包RTP/UDP/IP報(bào)頭的完整報(bào)頭,而不進(jìn)行壓縮。
圖13A中RTP/UDP/IP報(bào)頭里非陰影區(qū)部分的數(shù)據(jù)包括序列號(hào)和RTP報(bào)頭的時(shí)標(biāo)以及IP報(bào)頭的ID。這個(gè)時(shí)標(biāo)給出發(fā)送或者產(chǎn)生數(shù)據(jù)包的時(shí)刻。在接連發(fā)送的兩個(gè)IP數(shù)據(jù)包中,這些數(shù)據(jù)應(yīng)當(dāng)具有恒定的差值(改變量)。以后,提供這些數(shù)據(jù)的字段叫做“德爾塔字段”。如圖13B所示,基本壓縮報(bào)頭不包括德爾塔字段里的數(shù)據(jù)。如上所述,在其存儲(chǔ)器里保存著RTP/UDP/IP報(bào)頭的接收器節(jié)點(diǎn)將差值加到儲(chǔ)存的RTP/UDP/IP報(bào)頭的德爾塔字段里的值上去,從而能夠?qū)嚎s報(bào)頭的德爾塔字端解壓縮,隨后被收到。
然而,并不是所有IP數(shù)據(jù)包之間德爾塔字段里的這些差值都是恒定的。在某些情況下它們?nèi)〔煌闹怠T谶@些情況下,必須將改變的值告訴接收器節(jié)點(diǎn)。利用存儲(chǔ)器中RTP/UDP/IP報(bào)頭的內(nèi)容和新獲得的差值,接收字節(jié)能夠?qū)㈦S后收到的每一個(gè)壓縮報(bào)頭數(shù)據(jù)包的RTP/UDP/IP報(bào)頭里包括的德爾塔字段里的內(nèi)容恢復(fù)出來(lái)。為此,圖13A所示的壓縮報(bào)頭里有幾個(gè)標(biāo)志S、T和I,它們說(shuō)明德爾塔字段里的差值是否發(fā)生了改變。如果有差值發(fā)生了改變,新的差值被增加到壓縮報(bào)頭里,如圖13B里的虛線所示。實(shí)際上,如果RTP報(bào)頭序列號(hào)的差值發(fā)生了改變,就將S標(biāo)志設(shè)置成“1”,并將說(shuō)明序列號(hào)新差值的一個(gè)序列號(hào)差值(德爾塔RTP序列)增加到壓縮報(bào)頭里去,如圖13B的虛線所示。類似地,如果RTP報(bào)頭時(shí)標(biāo)的差值發(fā)生了改變,就將標(biāo)志T設(shè)置成“1,說(shuō)明時(shí)標(biāo)信差值的時(shí)標(biāo)差值(德爾塔RTP時(shí)標(biāo))包括在壓縮報(bào)頭里,如圖13B里的虛線所示。如果IP報(bào)頭的ID的差值發(fā)生了改變,就將標(biāo)志I設(shè)置成“1”,說(shuō)明ID新差值的ID差值(德爾塔IP ID)被附加到壓縮報(bào)頭里。
如圖13B所示,跟完整報(bào)頭一樣,壓縮報(bào)頭還包括CONTEXT_ID和link_seq。接收器節(jié)點(diǎn)按照CONTEXT_ID指定的RTP/UDP/IP報(bào)頭里的內(nèi)容對(duì)壓縮報(bào)頭解壓縮。接收接點(diǎn)參考從發(fā)送器節(jié)點(diǎn)按順序發(fā)送的每一個(gè)數(shù)據(jù)包(壓縮報(bào)頭數(shù)據(jù)包或者完整報(bào)頭數(shù)據(jù)包)的連接序列號(hào)link_seq。發(fā)現(xiàn)一些連接序列號(hào)丟失了以后,接收器就認(rèn)定在發(fā)送器節(jié)點(diǎn)和接收器節(jié)點(diǎn)之間丟失了數(shù)據(jù)包。
參考圖14,現(xiàn)在描述在發(fā)送器節(jié)點(diǎn)和接收器節(jié)點(diǎn)之間進(jìn)行數(shù)據(jù)包傳輸?shù)倪^(guò)程。在圖14里,字段A說(shuō)明RTP/UDP/IP報(bào)頭的一個(gè)靜態(tài)字段(也就是圖13A中陰影區(qū)里的任意數(shù)據(jù)),字段B說(shuō)明了一個(gè)德爾塔字段(也就是圖13A中非陰影區(qū)里的任意數(shù)據(jù))。此外,在圖14里,“F”表示完整報(bào)頭數(shù)據(jù)包,“C”表示壓縮報(bào)頭數(shù)據(jù)包。
收到從發(fā)送器數(shù)據(jù)終端發(fā)送給接收器數(shù)據(jù)終端的IP數(shù)據(jù)包a的時(shí)候,發(fā)送器節(jié)點(diǎn)將IP數(shù)據(jù)包的RTP/UDP/IP報(bào)頭存入它的內(nèi)部存儲(chǔ)器。與此同時(shí),發(fā)送器節(jié)點(diǎn)通過(guò)用報(bào)頭長(zhǎng)度替換CONTEXT_ID來(lái)產(chǎn)生一個(gè)完整報(bào)頭和連接序列號(hào)link_seq,并將包括產(chǎn)生的完整報(bào)頭和數(shù)據(jù)的完整報(bào)頭數(shù)據(jù)包(以后叫做“RTP有效負(fù)荷”)發(fā)送給接收器節(jié)點(diǎn),它們是IP數(shù)據(jù)包中除了RTP/UDP/IP報(bào)頭以外的部分(在圖14里叫做“OP1”)。收到這一完整報(bào)頭數(shù)據(jù)包的接收器節(jié)點(diǎn)將來(lái)自這一數(shù)據(jù)包的完整報(bào)頭的RPT/UDP/IP報(bào)頭儲(chǔ)存起來(lái)(也就是從完整報(bào)頭里提取出CONTEXT_ID和link_seq),并將這一IP數(shù)據(jù)包跟這一報(bào)頭一起發(fā)送給下一個(gè)節(jié)點(diǎn)或者接收器數(shù)據(jù)終端。在這一過(guò)程中,解壓縮以后的RTP/UDP/IP報(bào)頭被存入它的內(nèi)部存儲(chǔ)器。
然后,發(fā)送器節(jié)點(diǎn)將在IP數(shù)據(jù)包以后收到的IP數(shù)據(jù)包b里的RTP/UDP/IP報(bào)頭轉(zhuǎn)換成壓縮報(bào)頭,并將數(shù)據(jù)包b跟壓縮報(bào)頭一起發(fā)送給接收器節(jié)點(diǎn)(在圖14里叫做“OP2”)。在壓縮報(bào)頭數(shù)據(jù)包的壓縮報(bào)頭里,增加數(shù)據(jù)包b的德爾塔字段B里的一個(gè)值[1]跟最后一個(gè)數(shù)據(jù)包a的德爾塔字段B里的一個(gè)值
之間的差值ΔB(=1),同時(shí)將標(biāo)志(圖13B里的標(biāo)志S、T和I)設(shè)置成“1”,表示差值發(fā)生了變化。
通過(guò)將這一數(shù)據(jù)包里給出的差值ΔB加到儲(chǔ)存在內(nèi)部存儲(chǔ)器里最后一個(gè)IP數(shù)據(jù)包a里的RTP/UDP/IP報(bào)頭的德爾塔字段B的值上去,接收壓縮報(bào)頭數(shù)據(jù)包b的接收器節(jié)點(diǎn)獲得壓縮報(bào)頭數(shù)據(jù)包b的壓縮報(bào)頭里的德爾塔字段B。然后,接收器節(jié)點(diǎn)將具有這兩個(gè)RTP/UDP/IP報(bào)頭的IP數(shù)據(jù)包b發(fā)送出去,其中包括IP數(shù)據(jù)包a的RTP/UDP/IP報(bào)頭的德爾塔字段B和靜態(tài)字段A,以及RTP有效負(fù)荷。對(duì)IP數(shù)據(jù)包b解壓縮的過(guò)程中提到的RTP/UDP/IP報(bào)頭9(在這種情況下是從最后一個(gè)IP數(shù)據(jù)包a提取出來(lái)的RTP/UDP/IP報(bào)頭)被壓縮報(bào)頭數(shù)據(jù)包b的CONTEXT_ID指定。這個(gè)數(shù)據(jù)包里給出的IP數(shù)據(jù)包b的RTP/UDP/IP報(bào)頭和差值ΔB也儲(chǔ)存在內(nèi)部存儲(chǔ)器里。
下一步接收IP數(shù)據(jù)包c(diǎn)的時(shí)候,發(fā)送器節(jié)點(diǎn)計(jì)算IP數(shù)據(jù)包c(diǎn)和最后一個(gè)IP數(shù)據(jù)包b的德爾塔字段B之間的差值。在這種情況下,ΔB為[1](=3-2),這跟上次告訴接收器節(jié)點(diǎn)的前一個(gè)一樣。于是,沒(méi)有任何必要通知沒(méi)有改變的差值。因此,發(fā)送器發(fā)送有一個(gè)沒(méi)有差值的壓縮報(bào)頭的一個(gè)壓縮報(bào)頭數(shù)據(jù)包c(diǎn)給接收器節(jié)點(diǎn)(也就是圖13B所示的虛線,在圖14里叫做“OP3”)。接收這一壓縮報(bào)頭c的接收器節(jié)點(diǎn)將儲(chǔ)存起來(lái)的差值ΔB存入前一個(gè)數(shù)據(jù)包b的德爾塔字段B,從而對(duì)壓縮報(bào)頭數(shù)據(jù)包里壓縮報(bào)頭的德爾塔字段B解壓縮。然后,接收器節(jié)點(diǎn)發(fā)送包括兩個(gè)RTP/UDP/IP報(bào)頭的一個(gè)IP數(shù)據(jù)包c(diǎn),包括解壓縮值,從完整報(bào)頭數(shù)據(jù)包a的完整報(bào)頭里提取出來(lái)的靜態(tài)字段A,以及RTP有效負(fù)荷。下一個(gè)數(shù)據(jù)包d被按照同樣的方式加以處理。
下一步發(fā)送器節(jié)點(diǎn)收到的IP數(shù)據(jù)包e的德爾塔字段B的值是[5],最后一個(gè)IP數(shù)據(jù)包d的德爾塔字段B的差值是[2]。當(dāng)差值ΔB按照這種方式改變的時(shí)候,發(fā)送器節(jié)點(diǎn)發(fā)送有一個(gè)壓縮報(bào)頭的一個(gè)壓縮報(bào)頭數(shù)據(jù)包e,其中增加了改變的新的差值,而且相應(yīng)的標(biāo)志被設(shè)置為[1]。接收器節(jié)點(diǎn)將新差值加到IP數(shù)據(jù)包d的德爾塔字段B的值上去,從而對(duì)數(shù)據(jù)包e的德爾塔字段B解壓縮,然后發(fā)送包括解壓縮德爾塔字段B的一個(gè)IP數(shù)據(jù)包。
然后發(fā)送器節(jié)點(diǎn)接收IP數(shù)據(jù)包g,它不同于最后一個(gè)IP數(shù)據(jù)包e的靜態(tài)字段A。這樣,在這種情況下,發(fā)送器節(jié)點(diǎn)不壓縮這一IP數(shù)據(jù)包的RTP/UDP/IP報(bào)頭,并發(fā)送具有完整報(bào)頭的一個(gè)完整報(bào)頭數(shù)據(jù)包g,其中數(shù)據(jù)包g的RTP/UDP/IP報(bào)頭的長(zhǎng)度被CONTEXT_ID和link_seq替換。接收這一完整報(bào)頭數(shù)據(jù)包g的接收器節(jié)點(diǎn)將完整報(bào)頭轉(zhuǎn)換成RTP/UDP/IP報(bào)頭,并將它們存入內(nèi)部存儲(chǔ)器里。
上面已經(jīng)描述了RFC 2508給出的報(bào)頭壓縮方法(以后叫做“方法A”)。然而,這一壓縮方法有一些缺點(diǎn),下面將進(jìn)行描述。
例如,如圖15所示,由于某種原因在發(fā)送和接收器節(jié)點(diǎn)之間丟失了壓縮報(bào)頭數(shù)據(jù)包c(diǎn)。如上所述,對(duì)數(shù)據(jù)包d解壓縮的時(shí)候,接收器節(jié)點(diǎn)將差值ΔB加到IP數(shù)據(jù)包c(diǎn)的德爾塔字段B上去,對(duì)IP數(shù)據(jù)包d的德爾塔字段B解壓縮。結(jié)果,丟失壓縮報(bào)頭數(shù)據(jù)包c(diǎn)的時(shí)候,無(wú)法對(duì)壓縮報(bào)頭數(shù)據(jù)包d的德爾塔字段B解壓縮。于是,接收器節(jié)點(diǎn)被迫丟棄圖15中的數(shù)據(jù)包d、e和f,直到收到下一個(gè)完整報(bào)頭數(shù)據(jù)包g。換句話說(shuō),數(shù)據(jù)包的丟失導(dǎo)致一些其它數(shù)據(jù)包接連丟失,跟不進(jìn)行報(bào)頭壓縮的方法相比,它會(huì)導(dǎo)致吞吐量下降。特別是在發(fā)送和接收器節(jié)點(diǎn)是用有線鏈路連接的情況下,很可能會(huì)在有線鏈路上丟失數(shù)據(jù)包。如果丟失了這樣的數(shù)據(jù)包,接收器節(jié)點(diǎn)常常會(huì)丟棄其它一些數(shù)據(jù)包。作為解決這種問(wèn)題的一種技術(shù),IETF和因特網(wǎng)草案發(fā)布的RFC 2507和2508提供了以下方法。
方法1反復(fù)發(fā)送完整報(bào)頭數(shù)據(jù)包(RFC 2507)在上述傳統(tǒng)方法A的情況里,發(fā)送器節(jié)點(diǎn)只在報(bào)頭的靜態(tài)字段改變值的情況下發(fā)送完整報(bào)頭數(shù)據(jù)包。而如圖16所示,這一方法1每隔預(yù)定個(gè)數(shù)數(shù)據(jù)包選擇要發(fā)送的幾個(gè)IP數(shù)據(jù)包,不管靜態(tài)字段的值是否改變。選擇的IP數(shù)據(jù)包被轉(zhuǎn)換成具有完整報(bào)頭的完整報(bào)頭數(shù)據(jù)包,而且這些完整報(bào)頭數(shù)據(jù)包被發(fā)送給接收器節(jié)點(diǎn),剩下的IP數(shù)據(jù)包被轉(zhuǎn)換成具有壓縮報(bào)頭的壓縮報(bào)頭數(shù)據(jù)包,將這些壓縮報(bào)頭數(shù)據(jù)包發(fā)送給接收器節(jié)點(diǎn)。在方法A里,因?yàn)橹灰o態(tài)字段不改變值,就不將完整報(bào)頭的數(shù)據(jù)包發(fā)送給接收器節(jié)點(diǎn),所以,在丟失數(shù)據(jù)包以后發(fā)送的所有數(shù)據(jù)包都被丟棄。而這一方法1則是間歇性地發(fā)送完整報(bào)頭數(shù)據(jù)包,這樣,它的優(yōu)點(diǎn)是由于數(shù)據(jù)包丟失而丟棄的數(shù)據(jù)包的個(gè)數(shù)會(huì)減少。但是,這一方法1中,發(fā)送完整報(bào)頭數(shù)據(jù)包較長(zhǎng)的周期會(huì)導(dǎo)致丟棄數(shù)據(jù)包增加,而較短的周期又會(huì)導(dǎo)致發(fā)送大量的完整報(bào)頭數(shù)據(jù)包,從而增大系統(tǒng)開銷,降低通信效率。
方法2通過(guò)反向信道請(qǐng)求發(fā)送完整報(bào)頭(RFC 2507和2508)如圖17所示,檢測(cè)數(shù)據(jù)包是否丟失的時(shí)候,這一方法2使接收器節(jié)點(diǎn)能夠發(fā)送一個(gè)CONTEXT_STATE消息,向發(fā)送器節(jié)點(diǎn)請(qǐng)求獲得一個(gè)完整報(bào)頭數(shù)據(jù)包。收到這個(gè)CONTEXT_STATE時(shí),發(fā)送器節(jié)點(diǎn)以完整報(bào)頭數(shù)據(jù)包的形式發(fā)送下一個(gè)IP數(shù)據(jù)包給接收器節(jié)點(diǎn)。結(jié)果,由于丟失某個(gè)數(shù)據(jù)包而丟棄一些數(shù)據(jù)包的時(shí)間段可以被限制在數(shù)據(jù)包丟失到相應(yīng)CONTEXT_STATE發(fā)送的完整報(bào)頭數(shù)據(jù)包之間。然而,這一方法有一個(gè)缺點(diǎn),當(dāng)發(fā)送CONTEXT_STATE和接收器節(jié)點(diǎn)收到完整報(bào)頭數(shù)據(jù)包之間的時(shí)間,也就是一個(gè)RTT(往返時(shí)間)增大時(shí),丟棄的數(shù)據(jù)包也會(huì)增加。如果通過(guò)無(wú)線鏈路傳遞數(shù)據(jù)包,這一缺點(diǎn)就非常明顯,因?yàn)闊o(wú)線鏈路的RTT很長(zhǎng)。
方法3兩倍算法(RFC 2507)第三個(gè)方法利用在丟失數(shù)據(jù)包之前剛剛解開壓縮的RTP/UDP/IP報(bào)頭對(duì)丟失了某個(gè)數(shù)據(jù)包以后收到的壓縮報(bào)頭數(shù)據(jù)包的壓縮報(bào)頭解壓縮。例如,如圖18所示,假設(shè)按順序收到數(shù)據(jù)包b以后,丟失了數(shù)據(jù)包c(diǎn),然后按順序收到數(shù)據(jù)包d。在這種情況下,如果在數(shù)據(jù)包b到d之間差值ΔB沒(méi)有改變,數(shù)據(jù)包d的德爾塔字段B就可以通過(guò)在數(shù)據(jù)包b的德爾塔字段B上加ΔB的兩倍計(jì)算出來(lái)。此外,這一方法需要壓縮報(bào)頭中的UDP校驗(yàn)和(參考圖13B),從而將UDP校驗(yàn)和用于判斷數(shù)據(jù)包的解壓縮是否正確。然而,如圖18所示,如果丟失了數(shù)據(jù)包k,而且數(shù)據(jù)包j和k之間德爾塔字段的差值ΔB發(fā)生了改變,就會(huì)發(fā)生緊接丟失的數(shù)據(jù)包后面收到的數(shù)據(jù)包1無(wú)法正確解壓縮這樣的問(wèn)題。特別是如果數(shù)據(jù)包是用無(wú)線鏈路傳遞的,就有可能丟失一大串?dāng)?shù)據(jù)包(也就是很長(zhǎng)一段時(shí)間)。在這種情況下可以認(rèn)為在丟失的大量數(shù)據(jù)包中,差值ΔB很可能會(huì)發(fā)生改變。因此,前面的問(wèn)題更加嚴(yán)重。
方法4ROCCO(因特網(wǎng)草案)根據(jù)本發(fā)明的第4個(gè)方法,可以根據(jù)傳送數(shù)據(jù)包的媒體的特性來(lái)估計(jì)差值ΔB。例如,在圖19那種情況中,假設(shè)丟失了數(shù)據(jù)包g和h,而且g和h之間的差值ΔB發(fā)生了改變。在這一情形里,根據(jù)傳遞數(shù)據(jù)包的媒介的特性來(lái)估計(jì)差值ΔB的改變,數(shù)據(jù)包可以通過(guò)將估計(jì)的差值ΔB加到數(shù)據(jù)包f上來(lái)解壓縮。另外,這一方法還利用差錯(cuò)檢測(cè)碼(CRC)來(lái)判斷解壓縮是否正確。這樣,即使差值ΔB發(fā)生了改變,這一方法仍然能夠?qū)G失某個(gè)數(shù)據(jù)包以后收到的數(shù)據(jù)包解壓縮。但是,這一方法中估計(jì)差值ΔB很困難。
如上所述,雖然提出了多種技術(shù)來(lái)有效地進(jìn)行數(shù)據(jù)通信,甚至IP數(shù)據(jù)包的RTP/UDP/IP報(bào)頭被壓縮了,但是,所有這些技術(shù)都有某些缺點(diǎn)。這樣,目前在有效地減少發(fā)送和接收器節(jié)點(diǎn)之間丟失某個(gè)數(shù)據(jù)包以后而丟棄的數(shù)據(jù)包的個(gè)數(shù)方面存在著局限性。也就是說(shuō),在接收器節(jié)點(diǎn)和發(fā)送器節(jié)點(diǎn)之間傳遞數(shù)據(jù)包的過(guò)程中,部分?jǐn)?shù)據(jù)包的丟失會(huì)導(dǎo)致接收器節(jié)點(diǎn)丟失其它數(shù)據(jù)包。這就導(dǎo)致了處理接收器數(shù)據(jù)終端接收數(shù)據(jù)包(例如,用收到的數(shù)據(jù)包顯示圖像或者播放音樂(lè))的過(guò)程中出現(xiàn)很大的損失。
本發(fā)明是在上述情形下出現(xiàn)的。本發(fā)明的一個(gè)目的是提供一種數(shù)據(jù)包傳輸方法、一個(gè)中繼裝置和一個(gè)數(shù)據(jù)終端,它們能夠有效地減少由于丟失某個(gè)數(shù)據(jù)包而丟棄的數(shù)據(jù)包的個(gè)數(shù),即使要發(fā)送和接收的數(shù)據(jù)包的報(bào)頭都是壓縮過(guò)了的。
一方面,為了本發(fā)明目的,提供了一種數(shù)據(jù)包傳輸方法,用于從發(fā)送器節(jié)點(diǎn)到接收器節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)傳輸數(shù)據(jù)包,包括發(fā)送器節(jié)點(diǎn)里的通信裝置進(jìn)行轉(zhuǎn)換,將要發(fā)送的非壓縮數(shù)據(jù)包轉(zhuǎn)換成具有一個(gè)更新報(bào)頭的一個(gè)更新報(bào)頭數(shù)據(jù)包,其中包括在接收器節(jié)點(diǎn)足以正確地解壓縮和恢復(fù)同步的信息;或者轉(zhuǎn)換成具有壓縮報(bào)頭的壓縮報(bào)頭數(shù)據(jù)包的步驟,其中包括的信息比更新報(bào)頭包括的信息少,這樣,一些非壓縮數(shù)據(jù)包被轉(zhuǎn)換成更新報(bào)頭數(shù)據(jù)包,只要這些數(shù)據(jù)包是重要數(shù)據(jù)包;還包括發(fā)送數(shù)據(jù)包流給接收器節(jié)點(diǎn)的步驟,這個(gè)數(shù)據(jù)包流中包括更新報(bào)頭數(shù)據(jù)包和壓縮報(bào)頭數(shù)據(jù)包。
在這一方法中,將包括數(shù)據(jù)包流中起重要作用的數(shù)據(jù)的重要數(shù)據(jù)包作為更新報(bào)頭數(shù)據(jù)包發(fā)送,它們總是能夠被正確地解壓縮并恢復(fù)同步。因此,由于這個(gè)重要數(shù)據(jù)包不會(huì)因?yàn)閬G失其它數(shù)據(jù)包而被丟棄,所以,可以降低數(shù)據(jù)包的丟失對(duì)媒介質(zhì)量,也就是顯示的圖像和播放的音頻信號(hào)的質(zhì)量的影響。
這一更新報(bào)頭可以是一個(gè)完整報(bào)頭,包括非壓縮數(shù)據(jù)包中原來(lái)的報(bào)頭。這個(gè)更新報(bào)頭還可以是另一種格式。例如,如果發(fā)送給接收器節(jié)點(diǎn)的第一個(gè)數(shù)據(jù)包已經(jīng)啟動(dòng)了壓縮狀態(tài),發(fā)送器節(jié)點(diǎn)就能夠發(fā)送更新報(bào)頭,它能夠根據(jù)前面的初始化結(jié)果更新壓縮狀態(tài)。
可以這樣來(lái)實(shí)現(xiàn)本發(fā)明,生產(chǎn)或者銷售中繼裝置或者數(shù)據(jù)終端,用于按照本發(fā)明的數(shù)據(jù)包傳輸方法傳輸數(shù)據(jù)包。此外,本發(fā)明還能夠這樣來(lái)實(shí)現(xiàn),將執(zhí)行本發(fā)明的數(shù)據(jù)包傳輸方法的程序記錄在計(jì)算機(jī)能夠讀出來(lái)的存儲(chǔ)媒介里,或者通過(guò)電子通信電路將這一程序提供給用戶。
圖1說(shuō)明采用本發(fā)明第一個(gè)實(shí)施方案的數(shù)據(jù)包傳輸方法的通信系統(tǒng)的結(jié)構(gòu)框圖;圖2是數(shù)據(jù)包傳輸方法中使用的接收器節(jié)點(diǎn)的結(jié)構(gòu)框圖;圖3是本發(fā)明第一個(gè)實(shí)施方案中數(shù)據(jù)包中繼裝置的工作流程圖;圖4A和4B是改進(jìn)了的第一個(gè)實(shí)施方案的數(shù)據(jù)包傳輸時(shí)序圖;圖5是本發(fā)明第二個(gè)實(shí)施方案中傳輸?shù)膲嚎s了的非TCP數(shù)據(jù)包的報(bào)頭格式;圖6A是傳輸非TCP數(shù)據(jù)包的時(shí)候,完整報(bào)頭數(shù)據(jù)包傳輸方法的時(shí)序圖;圖6B是本發(fā)明中完整報(bào)頭數(shù)據(jù)包傳輸方法的時(shí)序圖;圖6C是本發(fā)明完整報(bào)頭數(shù)據(jù)包傳輸方法的另一個(gè)時(shí)序圖;圖7說(shuō)明利用ROHC的報(bào)頭壓縮過(guò)程和重構(gòu)過(guò)程中的狀態(tài)過(guò)渡;圖8A說(shuō)明ROHC中IR報(bào)頭的格式;圖8B說(shuō)明ROHC中IR-DYN報(bào)頭的格式;圖9A說(shuō)明ROHC中的O型報(bào)頭;圖9B說(shuō)明ROHC中的1型報(bào)頭;圖9C說(shuō)明ROHC中的2型報(bào)頭;圖10說(shuō)明ROHC中使用的LSB編碼;圖11說(shuō)明這一實(shí)施方案中的數(shù)據(jù)包傳輸方法;圖12說(shuō)明用于每一個(gè)實(shí)施方案的變種里IPv6報(bào)頭的格式;圖13A說(shuō)明RTP/UDP/IP報(bào)頭的內(nèi)容;圖13B說(shuō)明壓縮報(bào)頭的內(nèi)容;圖14說(shuō)明跟本發(fā)明有關(guān)的技術(shù)中數(shù)據(jù)包傳輸方法所經(jīng)歷的步驟的時(shí)序圖(方法A);圖15是說(shuō)明有關(guān)技術(shù)中數(shù)據(jù)包傳輸方法存在的問(wèn)題的時(shí)序圖;圖16是說(shuō)明有關(guān)技術(shù)中另一個(gè)數(shù)據(jù)包傳輸方法的步驟的時(shí)序圖(方法1);圖17是說(shuō)明有關(guān)技術(shù)中另一個(gè)數(shù)據(jù)包傳輸方法的步驟的時(shí)序圖(方法2);圖18是說(shuō)明有關(guān)技術(shù)中另一個(gè)數(shù)據(jù)包傳輸方法的步驟的時(shí)序圖(方法3);圖19是說(shuō)明有關(guān)技術(shù)中另一個(gè)數(shù)據(jù)包傳輸方法的步驟的時(shí)序圖(方法4)。
下面將參考附圖來(lái)介紹本發(fā)明的實(shí)施方案。代表本發(fā)明各種模式的這些實(shí)施方案不是要限制本發(fā)明的范圍,而是可以進(jìn)行修改而不會(huì)偏離本發(fā)明的范圍。
A.第一個(gè)實(shí)施方案A-1第一個(gè)實(shí)施方案的結(jié)構(gòu)圖1說(shuō)明可以采用本發(fā)明的數(shù)據(jù)包傳輸方法的通信系統(tǒng)的結(jié)構(gòu)。在這個(gè)通信系統(tǒng)里,提供了發(fā)送器數(shù)據(jù)終端1和接收器數(shù)據(jù)終端2,通過(guò)網(wǎng)絡(luò)3交換數(shù)據(jù)包。后面介紹的本發(fā)明中,由發(fā)送終端1發(fā)送數(shù)據(jù)包給接收終端2。
網(wǎng)絡(luò)3包括一個(gè)發(fā)送器節(jié)點(diǎn)3a和一個(gè)接收器節(jié)點(diǎn)3b。在發(fā)送器節(jié)點(diǎn)3a和接收器節(jié)點(diǎn)3b上有中繼裝置。中繼裝置能夠在發(fā)送器數(shù)據(jù)終端和接收器數(shù)據(jù)終端1和2之間中繼數(shù)據(jù)包。雖然圖1所示網(wǎng)絡(luò)3說(shuō)明的結(jié)構(gòu)中包括發(fā)送器節(jié)點(diǎn)和接收器節(jié)點(diǎn)3a和3b,但是本發(fā)明并不限于這一結(jié)構(gòu)。網(wǎng)絡(luò)中可以包括三個(gè)或者更多的節(jié)點(diǎn)和中繼裝置。
在這一結(jié)構(gòu)中,發(fā)送器數(shù)據(jù)終端1通過(guò)網(wǎng)絡(luò)3按順序發(fā)送要給接收器數(shù)據(jù)終端2的數(shù)據(jù)包。要從發(fā)送器數(shù)據(jù)終端1發(fā)送的數(shù)據(jù)包是包括圖13A所示RTP/UDP/IP報(bào)頭的IP數(shù)據(jù)包。發(fā)送器節(jié)點(diǎn)3a里的中繼裝置按順序接收從發(fā)送數(shù)據(jù)節(jié)點(diǎn)1發(fā)送過(guò)來(lái)的IP數(shù)據(jù)包,將收到的IP數(shù)據(jù)包轉(zhuǎn)換成包括完整報(bào)頭的完整報(bào)頭數(shù)據(jù)包或者包括壓縮報(bào)頭的壓縮報(bào)頭數(shù)據(jù)包,將它們發(fā)送給接收器節(jié)點(diǎn)3b。如前所述,完整報(bào)頭是這樣的報(bào)頭,其中IP數(shù)據(jù)包中RTP/UDP/IP報(bào)頭的IP報(bào)頭或者UDP報(bào)頭中包括的長(zhǎng)度只用包括CONTEXT_ID或者link_seq的數(shù)據(jù)替代。另一方面,從發(fā)送器節(jié)點(diǎn)3a接收壓縮報(bào)頭數(shù)據(jù)包或者完整報(bào)頭數(shù)據(jù)包的時(shí)候,接收器節(jié)點(diǎn)3b里的中繼裝置將壓縮報(bào)頭數(shù)據(jù)包的壓縮報(bào)頭或者完整報(bào)頭數(shù)據(jù)包的完整報(bào)頭里的RTP/UDP/IP報(bào)頭儲(chǔ)存起來(lái),并將包括RTP/UDP/IP報(bào)頭的IP數(shù)據(jù)包發(fā)送給接收器數(shù)據(jù)終端2。接收器數(shù)據(jù)終端2接收從接收器節(jié)點(diǎn)3b發(fā)送的IP數(shù)據(jù)包,并根據(jù)收到的IP數(shù)據(jù)包完成預(yù)定的處理(例如,根據(jù)RTP有效負(fù)荷顯示圖像、播放聲音等等)。
跟前面描述的傳統(tǒng)技術(shù)一樣,完整報(bào)頭數(shù)據(jù)包指的是這種數(shù)據(jù)包,它能夠只根據(jù)完整報(bào)頭數(shù)據(jù)包中的完整報(bào)頭的內(nèi)容,將包括RTP/UDP/IP報(bào)頭的IP數(shù)據(jù)包儲(chǔ)存起來(lái)。RTP/UDP/IP報(bào)頭中的長(zhǎng)度只用CONTEXT_STATE和link_seq替換,但是,這些長(zhǎng)度值也可以利用較低層的信息恢復(fù)出來(lái)。相反,壓縮報(bào)頭數(shù)據(jù)包指的是這樣的數(shù)據(jù)包,可以根據(jù)其它數(shù)據(jù)包(比方說(shuō)完整報(bào)頭數(shù)據(jù)包)將它解壓縮成IP數(shù)據(jù)包,而不能只根據(jù)壓縮報(bào)頭數(shù)據(jù)包中包括的壓縮報(bào)頭將它解壓縮成包括RTP/UDP/IP報(bào)頭的IP數(shù)據(jù)包。
參考圖2,現(xiàn)在介紹發(fā)送器節(jié)點(diǎn)3a中的中繼裝置。如圖所示,發(fā)送器節(jié)點(diǎn)3a里的中繼裝置包括一個(gè)接收部分31a、發(fā)送部分32a、控制部分33a、存儲(chǔ)部分34a和將這些單元連接在一起的總線35a。
接收部分31a被用作接收通過(guò)通信線路從發(fā)送器數(shù)據(jù)終端1發(fā)送的IP數(shù)據(jù)包,并將這些數(shù)據(jù)包輸出給控制部分33a的裝置或者單元。發(fā)送部分32a被用作通過(guò)通信線路發(fā)送來(lái)自控制部分33a的數(shù)據(jù)的裝置或者單元。
控制部分33a是一種裝置或者單元,用于控制接收部分31a、發(fā)送部分32a和存儲(chǔ)部分34a中的每一個(gè)。實(shí)際上,控制部分33a實(shí)現(xiàn)a和b描述的過(guò)程。
a.判斷收到的IP數(shù)據(jù)包的重要性前面描述的有關(guān)技術(shù)中發(fā)送器節(jié)點(diǎn)里的中繼裝置的結(jié)構(gòu)使得中繼裝置將具有改變的報(bào)頭中的靜態(tài)字段的數(shù)據(jù)包、每固定個(gè)數(shù)選擇出來(lái)的數(shù)據(jù)包或者從接收器節(jié)點(diǎn)收到CONTEXT_STATE以后要立即發(fā)送的數(shù)據(jù)包轉(zhuǎn)換成完整報(bào)頭數(shù)據(jù)包,而不壓縮數(shù)據(jù)包的報(bào)頭,并將這個(gè)完整報(bào)頭數(shù)據(jù)包發(fā)送給接收器節(jié)點(diǎn)。相反,這一實(shí)施方案中發(fā)送器節(jié)點(diǎn)3a里的中繼裝置的結(jié)構(gòu)使得這一中繼裝置能夠從發(fā)送器數(shù)據(jù)終端1接收IP數(shù)據(jù)包,并將其數(shù)據(jù)是重要數(shù)據(jù)的IP數(shù)據(jù)包(以后叫做“重要數(shù)據(jù)包”)轉(zhuǎn)換成完整報(bào)頭數(shù)據(jù)包,而不壓縮報(bào)頭,并將這一完整報(bào)頭數(shù)據(jù)包發(fā)送給接收器節(jié)點(diǎn)3b。這里,重要數(shù)據(jù)包指的是包括接收器數(shù)據(jù)終端2播放聲音或者顯示圖像的時(shí)候起重要作用的數(shù)據(jù)的數(shù)據(jù)包。具體而言,重要數(shù)據(jù)包指的是如果這一數(shù)據(jù)包被丟失,就會(huì)嚴(yán)重地影響聲音或者圖像傳輸質(zhì)量(例如,使顯示的圖像或者播放的音樂(lè)變壞)的數(shù)據(jù)包。如果發(fā)送器節(jié)點(diǎn)3a里的控制部分33a符合以下條件,就認(rèn)為收到的IP數(shù)據(jù)包是重要數(shù)據(jù)包。
①.RTP報(bào)頭里的標(biāo)志位M被置位的數(shù)據(jù)包,或者標(biāo)志位M被置位的IP數(shù)據(jù)包的下一個(gè)數(shù)據(jù)包標(biāo)志位M包括在發(fā)送器數(shù)據(jù)終端1發(fā)送的IP數(shù)據(jù)包的RTP報(bào)頭里。發(fā)送器節(jié)點(diǎn)3a里的控制部分33a通過(guò)檢查這個(gè)標(biāo)志位來(lái)判斷它是否重要的IP數(shù)據(jù)包。下面對(duì)此進(jìn)行詳細(xì)介紹。
如果發(fā)送器數(shù)據(jù)終端1發(fā)送的數(shù)據(jù)是包括幾個(gè)幀的視頻數(shù)據(jù),那么每一幀的第一個(gè)數(shù)據(jù)常常包括對(duì)于顯示圖像非常有用的信息。另一方面,RTP報(bào)頭里的標(biāo)志位M一般被設(shè)置成包括視頻幀的最后數(shù)據(jù)。RTP報(bào)頭中標(biāo)志位M被置位的數(shù)據(jù)包的下一個(gè)數(shù)據(jù)包常常是視頻幀的第一個(gè)數(shù)據(jù)。因此,發(fā)送器節(jié)點(diǎn)3a里的控制部分33a被這樣配置,它使得RTP報(bào)頭中標(biāo)志位M被置位的數(shù)據(jù)包的下一個(gè)數(shù)據(jù)包被判斷為重要數(shù)據(jù)包。
另外,有可能出現(xiàn)這樣的情況,當(dāng)有效負(fù)荷包括某些結(jié)構(gòu)信息,例如數(shù)據(jù)結(jié)構(gòu)之類,的時(shí)候,RTP報(bào)頭里標(biāo)志位M可以被置位。另一方面,當(dāng)接收器數(shù)據(jù)終端用這些數(shù)據(jù)來(lái)顯示圖像或者播放音樂(lè)的時(shí)候,包括這些結(jié)構(gòu)信息的數(shù)據(jù)包是重要數(shù)據(jù)包。因此,發(fā)送器節(jié)點(diǎn)3a里的控制部分33a可以被這樣配置,使得RTP報(bào)頭中標(biāo)志位M被置位的數(shù)據(jù)包被判斷為重要數(shù)據(jù)包。
②.RTP報(bào)頭里的時(shí)標(biāo)發(fā)生改變的情形如果從發(fā)送器數(shù)據(jù)終端1發(fā)送的IP數(shù)據(jù)包里的數(shù)據(jù)是包括幾個(gè)視頻幀的視頻數(shù)據(jù),那么,包括相同視頻幀的數(shù)據(jù)包里每一個(gè)數(shù)據(jù)包的時(shí)標(biāo)值都相同。另一方面,如果這兩個(gè)數(shù)據(jù)包包括屬于不同視頻幀的數(shù)據(jù),時(shí)標(biāo)值就不同。因此,當(dāng)時(shí)標(biāo)發(fā)生改變的時(shí)候,可以認(rèn)為幀發(fā)生了改變。如上所述,緊跟發(fā)生改變的這一幀以后的數(shù)據(jù)包括在接收器數(shù)據(jù)終端2顯示圖像需要的重要信息。因此,當(dāng)收到的IP數(shù)據(jù)包里的時(shí)標(biāo)值不同于前一個(gè)數(shù)據(jù)包的時(shí)標(biāo)值的時(shí)候,發(fā)送器節(jié)點(diǎn)3a的控制部分33a就認(rèn)為收到的這個(gè)數(shù)據(jù)包是重要數(shù)據(jù)包(也就是說(shuō),包括幀初始信息的數(shù)據(jù)包)。
③.?dāng)?shù)據(jù)包的大小大于某一值的情形當(dāng)發(fā)送器數(shù)據(jù)終端1發(fā)送的IP數(shù)據(jù)包的有效負(fù)荷是包括話音突峰和無(wú)聲部分的音頻數(shù)據(jù)時(shí),包括數(shù)據(jù)話音突峰的數(shù)據(jù)包的長(zhǎng)度通常都比包括無(wú)聲部分的數(shù)據(jù)包長(zhǎng)。在接收器數(shù)據(jù)終端2里沒(méi)能正確地收到包括話音突峰數(shù)據(jù)的數(shù)據(jù)包時(shí),跟沒(méi)能正確地收到包括無(wú)聲部分的數(shù)據(jù)的數(shù)據(jù)包的時(shí)候相比,音頻質(zhì)量會(huì)顯著地變壞。因此,從發(fā)送器數(shù)據(jù)終端1發(fā)送的IP數(shù)據(jù)包里的數(shù)據(jù)是音頻數(shù)據(jù)的時(shí)候,發(fā)送器節(jié)點(diǎn)3a那里的控制部分33a根據(jù)IP數(shù)據(jù)包的大小檢查每一個(gè)數(shù)據(jù)包的有效負(fù)荷是話音突峰數(shù)據(jù)還是無(wú)聲部分的數(shù)據(jù),并認(rèn)為包括話音突峰數(shù)據(jù)的數(shù)據(jù)包,也就是大小超過(guò)預(yù)定大小的數(shù)據(jù)包,都是重要數(shù)據(jù)包。
④.?dāng)?shù)據(jù)包大小發(fā)生改變的情況從發(fā)送器數(shù)據(jù)終端1發(fā)送的IP數(shù)據(jù)包的有效負(fù)荷是包括話音突峰和無(wú)聲的音頻數(shù)據(jù)的時(shí)候,接收器數(shù)據(jù)終端2需要識(shí)別從話音突峰到無(wú)聲的切換,以及從無(wú)聲到話音突峰的切換。因此,發(fā)送器節(jié)點(diǎn)3a處的控制部分33a將從無(wú)聲切換到話音突峰或者從話音突峰切換到無(wú)聲后面的數(shù)據(jù)包轉(zhuǎn)換成完整報(bào)頭數(shù)據(jù)包而不壓縮報(bào)頭,并將完整報(bào)頭數(shù)據(jù)包發(fā)送給接收器節(jié)點(diǎn)3b。實(shí)際上,無(wú)論什么時(shí)候收到IP數(shù)據(jù)包的時(shí)候,發(fā)送器節(jié)點(diǎn)3a處的控制部分33a都要檢查IP數(shù)據(jù)包的大小是不是大于預(yù)定大小(常數(shù)值),并且當(dāng)前一次收到的數(shù)據(jù)包的大小比預(yù)定大小小,而且這次收到的數(shù)據(jù)包的大小大于預(yù)定大小的時(shí)候,就認(rèn)定這次收到的IP數(shù)據(jù)包是重要數(shù)據(jù)包。同樣,如果前一次收到的數(shù)據(jù)包大于預(yù)定大小,而這次收到的數(shù)據(jù)包的大小小于預(yù)定大小,就認(rèn)定這次收到的數(shù)據(jù)包是重要數(shù)據(jù)包。
⑤.包括要發(fā)送的媒體專用結(jié)構(gòu)信息的情況發(fā)送器節(jié)點(diǎn)3a里的控制部分33a檢查收到的IP數(shù)據(jù)包是不是包括H.263的圖形報(bào)頭或者對(duì)應(yīng)于MPEG 4之類的VOP報(bào)頭的信息,并認(rèn)定包括上述信息的數(shù)據(jù)包是重要數(shù)據(jù)包。
b.產(chǎn)生和發(fā)送報(bào)頭壓縮數(shù)據(jù)包和完整報(bào)頭數(shù)據(jù)包發(fā)送器節(jié)點(diǎn)3a的控制部分33a將認(rèn)定為重要數(shù)據(jù)包的第一個(gè)數(shù)據(jù)包和IP數(shù)據(jù)包作為完整報(bào)頭數(shù)據(jù)包輸出給發(fā)送部分32a,而將其余數(shù)據(jù)包作為壓縮報(bào)頭數(shù)據(jù)包輸出給發(fā)送部分32a。
具體而言,對(duì)于要作為完整報(bào)頭數(shù)據(jù)包發(fā)送的IP數(shù)據(jù)包,控制部分33a給內(nèi)部RTP/UDP/IP報(bào)頭增加一個(gè)上下文ID和一個(gè)連接序列號(hào)(link_seq),形成一個(gè)完整報(bào)頭,并將包括完整報(bào)頭的完整報(bào)頭數(shù)據(jù)包發(fā)送給接收器節(jié)點(diǎn)3b。在這種情況下,IP數(shù)據(jù)包的內(nèi)容被存入存儲(chǔ)部分34a。
另一方面,對(duì)于要作為壓縮報(bào)頭數(shù)據(jù)包發(fā)送的IP數(shù)據(jù)包,控制部分按照傳統(tǒng)技術(shù)中相同的方法,根據(jù)儲(chǔ)存在存儲(chǔ)部分34a里的IP數(shù)據(jù)包的內(nèi)容產(chǎn)生壓縮報(bào)頭,并將包括壓縮報(bào)頭的壓縮報(bào)頭數(shù)據(jù)包發(fā)送給發(fā)送部分32a。
上面是發(fā)送器節(jié)點(diǎn)3a中的控制部分33a完成的過(guò)程。
接收器節(jié)點(diǎn)3b上的中繼裝置跟發(fā)送器節(jié)點(diǎn)3a具有相同的結(jié)構(gòu)。具體而言,接收器節(jié)點(diǎn)3b里的中繼裝置包括用于從發(fā)送器節(jié)點(diǎn)3a接收數(shù)據(jù)包的接收部分31b、用于控制接收器節(jié)點(diǎn)3b里每一部分的控制部分33b、存儲(chǔ)部分34b和用于將控制部分33b輸出的數(shù)據(jù)包發(fā)送給接收器數(shù)據(jù)終端2的發(fā)送部分32b。但是,接收器節(jié)點(diǎn)3b里的控制部分33b將發(fā)送器節(jié)點(diǎn)3a發(fā)送的完整報(bào)頭數(shù)據(jù)包或者壓縮報(bào)頭數(shù)據(jù)包轉(zhuǎn)換成IP數(shù)據(jù)包,并將它輸出給發(fā)送部分32b,跟上述發(fā)送部分3a里的控制部分相反。
A-2第一個(gè)實(shí)施方案里的操作下面參考圖3介紹在發(fā)送器節(jié)點(diǎn)3a和接收器節(jié)點(diǎn)3b里中繼裝置之間進(jìn)行的實(shí)際操作。在圖3里,假設(shè)包括幾幀的視頻數(shù)據(jù)從發(fā)送器數(shù)據(jù)終端1發(fā)送出來(lái)。實(shí)際上,數(shù)據(jù)包a1~a5都是包括A幀的數(shù)據(jù)的IP數(shù)據(jù)包。數(shù)據(jù)包b1~b5都是包括B幀的數(shù)據(jù)的IP數(shù)據(jù)包。數(shù)據(jù)包c(diǎn)1~c5都是包括C幀的數(shù)據(jù)的IP數(shù)據(jù)包。另外,如上所述,為了方便,假設(shè)只有包括每一幀第一個(gè)數(shù)據(jù)的IP數(shù)據(jù)包被認(rèn)定為重要數(shù)據(jù)包。
首先,收到要通過(guò)接收部分31a從發(fā)送器數(shù)據(jù)終端1發(fā)送的第一個(gè)IP數(shù)據(jù)包的時(shí)候,發(fā)送器節(jié)點(diǎn)3a里的控制部分33a將IP數(shù)據(jù)包a1的RTP/UDP/IP報(bào)頭轉(zhuǎn)換成完整報(bào)頭,并將完整報(bào)頭的內(nèi)容儲(chǔ)存在存儲(chǔ)部分34a。然后,控制部分33a將包括完整報(bào)頭的完整報(bào)頭數(shù)據(jù)包a1通過(guò)發(fā)送部分32a發(fā)送給接收器節(jié)點(diǎn)3b。
然后,接收來(lái)自發(fā)送器數(shù)據(jù)終端1的IP數(shù)據(jù)包a2的時(shí)候,發(fā)送器節(jié)點(diǎn)3a里的控制部分33a檢查RTP報(bào)頭里的標(biāo)志位M是不是被置位。在這種情況下,由于IP數(shù)據(jù)包a2不是A幀的最后一個(gè)數(shù)據(jù)包,因此,標(biāo)志位M沒(méi)有置位。接下來(lái),控制部分33a根據(jù)存儲(chǔ)部分34a中儲(chǔ)存的數(shù)據(jù)包a1的完整報(bào)頭的內(nèi)容,將IP數(shù)據(jù)包a2里的RTP/UDP/IP報(bào)頭轉(zhuǎn)換成壓縮報(bào)頭,并將壓縮報(bào)頭數(shù)據(jù)包a2發(fā)送給接收器節(jié)點(diǎn)3b。以后,發(fā)送器節(jié)點(diǎn)3a里的控制部分33a完成針對(duì)數(shù)據(jù)包a3和a4所完成的過(guò)程。
于是,從發(fā)送器數(shù)據(jù)終端1接收數(shù)據(jù)包a5的時(shí)候,控制部分判斷RTP報(bào)頭里的標(biāo)志位M是否被置位。在這種情況下,由于IP數(shù)據(jù)包a5是A幀的最后一個(gè)數(shù)據(jù)包,因此,標(biāo)志位M被置位。所以,控制部分33a認(rèn)為在數(shù)據(jù)包a5后面收到的那一個(gè)IP數(shù)據(jù)包是重要數(shù)據(jù)包。而對(duì)于IP數(shù)據(jù)包a5,控制部分將IP數(shù)據(jù)包里的RTP/UDP/IP報(bào)頭轉(zhuǎn)換成壓縮報(bào)頭,并用發(fā)送IP數(shù)據(jù)包a2~a4的方式將它們發(fā)送給接收器節(jié)點(diǎn)3b。
接下來(lái),控制部分33a接收IP數(shù)據(jù)包b1。在這種情況下,由于已經(jīng)很清楚這個(gè)IP數(shù)據(jù)包b1是重要數(shù)據(jù)包(也就是說(shuō)IP數(shù)據(jù)包b1是新幀B的第一個(gè)數(shù)據(jù)包),因?yàn)镮P數(shù)據(jù)包a5里的標(biāo)志位M被置位,所以控制部分33a將數(shù)據(jù)包b1的RTP/UDP/IP報(bào)頭轉(zhuǎn)換成完整報(bào)頭,并將這個(gè)完整報(bào)頭的內(nèi)容寫入存儲(chǔ)部分34a,然后,將包括完整報(bào)頭的完整報(bào)頭數(shù)據(jù)包b1發(fā)送給接收器節(jié)點(diǎn)3b。而對(duì)于以后收到的IP數(shù)據(jù)包b2~b5,控制部分按照前面針對(duì)IP數(shù)據(jù)包a2~a5所做的一樣,將它們作為壓縮報(bào)頭數(shù)據(jù)包發(fā)送給接收器節(jié)點(diǎn)3b。
另一方面,從發(fā)送器節(jié)點(diǎn)接收完整報(bào)頭數(shù)據(jù)包a1的時(shí)候,接收器節(jié)點(diǎn)3b將其中包括的完整報(bào)頭轉(zhuǎn)換成RTP/UDP/IP報(bào)頭,并將這樣獲得的IP數(shù)據(jù)包a1存入存儲(chǔ)部分34b,同時(shí)將它發(fā)送給接收器數(shù)據(jù)終端2。
然后,接收器節(jié)點(diǎn)3b里的控制部分33b根據(jù)保存在存儲(chǔ)部分34b里的IP數(shù)據(jù)包a1里RTP/UDP/IP報(bào)頭的內(nèi)容,將通過(guò)接收部分31b收到的壓縮報(bào)頭數(shù)據(jù)包a2里的壓縮報(bào)頭恢復(fù)出來(lái),并將它作為包括RTP/UDP/IP報(bào)頭的IP數(shù)據(jù)包發(fā)送給接收器數(shù)據(jù)終端2。至于隨后收到的數(shù)據(jù)包a3,接收器節(jié)點(diǎn)3b里的控制部分33b恢復(fù)IP數(shù)據(jù)包,然后按照前面介紹過(guò)的方式將它發(fā)送給接收器數(shù)據(jù)終端2。
另一方面,如圖3所示的實(shí)例說(shuō)明了從發(fā)送器節(jié)點(diǎn)3a發(fā)送的壓縮報(bào)頭數(shù)據(jù)包a4在到達(dá)接收器節(jié)點(diǎn)之前,因?yàn)槟撤N原因而丟失。此時(shí),接收器節(jié)點(diǎn)3b根據(jù)下一步應(yīng)該收到的壓縮數(shù)據(jù)包a5里的連接序列號(hào),檢測(cè)到數(shù)據(jù)包a4已經(jīng)丟失。由于壓縮報(bào)頭數(shù)據(jù)包a5無(wú)法正確地恢復(fù),除非利用壓縮報(bào)頭數(shù)據(jù)包a4的內(nèi)容,因此接收器節(jié)點(diǎn)3b里的控制部分33b丟棄收到的數(shù)據(jù)包,直到收到下一個(gè)完整報(bào)頭數(shù)據(jù)包,也就是數(shù)據(jù)包a5。相反,包括B幀第一個(gè)數(shù)據(jù)的數(shù)據(jù)包b1不象數(shù)據(jù)包a5一樣因?yàn)閬G失了數(shù)據(jù)包a4而被丟棄,因?yàn)閿?shù)據(jù)包b1是作為完整報(bào)頭數(shù)據(jù)包發(fā)送的。
如上所述,在這一實(shí)施方案的數(shù)據(jù)包發(fā)送方法里,發(fā)送器節(jié)點(diǎn)3a將重要數(shù)據(jù)包作為完整報(bào)頭數(shù)據(jù)包發(fā)送給接收器節(jié)點(diǎn)3b。因此,即使在發(fā)送器節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包因?yàn)槟撤N原因被丟失,而且隨后的壓縮報(bào)頭數(shù)據(jù)包因此被丟棄,重要數(shù)據(jù)包仍然被發(fā)送給接收器數(shù)據(jù)終端2,直到重要數(shù)據(jù)包自己在發(fā)送器節(jié)點(diǎn)3a和接收器節(jié)點(diǎn)3b之間被丟失。具體地說(shuō),在接收器節(jié)點(diǎn)3b里,不會(huì)因?yàn)閬G失了其它數(shù)據(jù)包而丟棄顯示圖像(或者播放聲音)的重要數(shù)據(jù)包。因此,跟傳統(tǒng)技術(shù)里完整報(bào)頭數(shù)據(jù)包被發(fā)送給接收接點(diǎn)而不考慮數(shù)據(jù)包是否重要數(shù)據(jù)包這種情況相比,可以降低數(shù)據(jù)包丟失對(duì)接收器數(shù)據(jù)終端里圖像質(zhì)量的影響(例如,播放的圖像或者聲音的質(zhì)量的變壞)。
在前面,雖然將IP報(bào)頭里的標(biāo)志位被置位的IP數(shù)據(jù)包的下一個(gè)數(shù)據(jù)包,也就是包括這一幀里第一數(shù)據(jù)的IP數(shù)據(jù)包,認(rèn)定為重要數(shù)據(jù)包,但是這一操作同樣能夠用于其它IP數(shù)據(jù)包,也就是②~⑤介紹的IP數(shù)據(jù)包,被當(dāng)作重要數(shù)據(jù)包的情形。
A-3第一個(gè)實(shí)施方案的變型雖然第一個(gè)實(shí)施方案里的發(fā)送器節(jié)點(diǎn)3a只將重要數(shù)據(jù)包作為完整報(bào)頭數(shù)據(jù)包發(fā)送,但其結(jié)構(gòu)并不限于此,下面的結(jié)構(gòu)也包括在內(nèi)。
<變型實(shí)例1>
在要發(fā)送的數(shù)據(jù)包的RTP/UDP/IP報(bào)頭里的靜態(tài)字段的值沒(méi)有改變的情況下,可以采用這一方法只為重要數(shù)據(jù)包制作完整報(bào)頭數(shù)據(jù)包,并將它按照上述方式發(fā)送。但是在靜態(tài)字段的值發(fā)生了改變的情況下,發(fā)送器節(jié)點(diǎn)3a必須將重要數(shù)據(jù)包和靜態(tài)字段發(fā)生了改變的數(shù)據(jù)包轉(zhuǎn)換成完整報(bào)頭數(shù)據(jù)包,如同傳統(tǒng)技術(shù)A所示。具體而言,可以讓發(fā)送器節(jié)點(diǎn)3a里的控制部分33a為重要數(shù)據(jù)包和靜態(tài)字段發(fā)生了改變的數(shù)據(jù)包發(fā)送完整報(bào)頭數(shù)據(jù)包給接收器節(jié)點(diǎn)3b。
<變型實(shí)例2>
在只有完整報(bào)頭數(shù)據(jù)包被作為重要數(shù)據(jù)包發(fā)送的情況下,跟其它數(shù)據(jù)包比較,要發(fā)送的重要數(shù)據(jù)包的個(gè)數(shù)較少時(shí),發(fā)送完整報(bào)頭數(shù)據(jù)包的時(shí)間間隔會(huì)變長(zhǎng)。此時(shí),可以想到,收到的許多壓縮報(bào)頭數(shù)據(jù)包會(huì)因?yàn)閬G失了壓縮報(bào)頭數(shù)據(jù)包而被丟棄,直到收到下一個(gè)完整報(bào)頭數(shù)據(jù)包。為了避免這種情況,可以在發(fā)送完整報(bào)頭數(shù)據(jù)包F以后,經(jīng)過(guò)了預(yù)定時(shí)間T以后還沒(méi)有收到重要數(shù)據(jù)包(換句話說(shuō),沒(méi)有發(fā)送完整報(bào)頭數(shù)據(jù)包)的時(shí)候,下一個(gè)要發(fā)送的數(shù)據(jù)包就作為完整報(bào)頭數(shù)據(jù)包F發(fā)送,即使這個(gè)數(shù)據(jù)包不是重要數(shù)據(jù)包,如圖4A所示?;蛘撸l(fā)送了完整報(bào)頭數(shù)據(jù)包F以后,發(fā)送了某個(gè)數(shù)目N的壓縮報(bào)頭數(shù)據(jù)包而沒(méi)有收到重要數(shù)據(jù)包的時(shí)候,就將數(shù)據(jù)包作為完整數(shù)據(jù)包F發(fā)送,而不管下一個(gè)要發(fā)送的數(shù)據(jù)包是不是重要數(shù)據(jù)包。
此外,發(fā)送了N個(gè)數(shù)據(jù)包或者發(fā)送了T時(shí)間的數(shù)據(jù)包的時(shí)候,讓發(fā)送器節(jié)點(diǎn)里的中繼裝置將非壓縮數(shù)據(jù)包轉(zhuǎn)換成完整報(bào)頭數(shù)據(jù)包F,并將這個(gè)完整報(bào)頭數(shù)據(jù)包發(fā)送給接收器節(jié)點(diǎn),即使這個(gè)非壓縮數(shù)據(jù)包不是重要數(shù)據(jù)包。
利用以上方法,可以避免發(fā)送完整報(bào)頭數(shù)據(jù)包的時(shí)間間隔過(guò)長(zhǎng),即使要發(fā)送的數(shù)據(jù)包里獲得的重要數(shù)據(jù)包的個(gè)數(shù)很少。這樣,由于數(shù)據(jù)包丟失而丟棄的數(shù)據(jù)包的個(gè)數(shù)被減少。
在靜態(tài)字段的內(nèi)容可能會(huì)發(fā)生改變的情況下,即使跟變型實(shí)例1里一樣采用了上述結(jié)構(gòu),也有必要考慮除了重要數(shù)據(jù)包以外靜態(tài)字段的內(nèi)容發(fā)生了改變的數(shù)據(jù)包,以及每隔固定個(gè)數(shù)選擇的數(shù)據(jù)包,作為增加完整報(bào)頭的數(shù)據(jù)包。
<變型實(shí)例3>
如上所述,在方法2那樣的傳統(tǒng)技術(shù)里,當(dāng)接收器節(jié)點(diǎn)3b檢測(cè)到在發(fā)送器節(jié)點(diǎn)3a和接收器節(jié)點(diǎn)3b之間丟失了數(shù)據(jù)包的時(shí)候,接收器節(jié)點(diǎn)發(fā)送CONTEXT_STATE給發(fā)送器節(jié)點(diǎn)3a,請(qǐng)求發(fā)送完整報(bào)頭數(shù)據(jù)包。具體地說(shuō),可以讓發(fā)送器節(jié)點(diǎn)3a里的控制部分33a將重要數(shù)據(jù)包作為完整報(bào)頭數(shù)據(jù)包,與此同時(shí),控制部分在收到接收器節(jié)點(diǎn)3b發(fā)送的CONTEXT_STATE以后將要發(fā)送的數(shù)據(jù)包作為完整報(bào)頭數(shù)據(jù)包發(fā)送。在這一變型實(shí)例中也要考慮將靜態(tài)字段以后的數(shù)據(jù)包作為完整報(bào)頭數(shù)據(jù)包發(fā)送,如同上述變型實(shí)例2那種情形一樣。
<變型實(shí)例4>
除了前面的實(shí)施方案列出的那些以外,還有以下IP數(shù)據(jù)包要作為重要數(shù)據(jù)包考慮。
a.如果要傳輸?shù)臄?shù)據(jù)包里是用包括幀內(nèi)編碼過(guò)程和幀間預(yù)測(cè)編碼過(guò)程的動(dòng)畫圖像壓縮編碼算法(例如,對(duì)應(yīng)于MPEG(運(yùn)動(dòng)圖形專家組)的動(dòng)畫圖像編碼算法)獲得的視頻數(shù)據(jù),就將包括用幀內(nèi)編碼過(guò)程獲得的數(shù)據(jù)的IP數(shù)據(jù)包(也就是I幀的編碼數(shù)據(jù))作為重要數(shù)據(jù)包,其原因是,除非接收器正確地恢復(fù)了I幀,否則,后面的幀間預(yù)測(cè)編碼的I幀無(wú)法正確地恢復(fù)出來(lái)。
b.如果要發(fā)送的是包括底層數(shù)據(jù)和增強(qiáng)層數(shù)據(jù)的分層編碼數(shù)據(jù),就將包括底層數(shù)據(jù)的IP數(shù)據(jù)包作為重要數(shù)據(jù)包。底層數(shù)據(jù)指的是接收器對(duì)分層編碼數(shù)據(jù)譯碼的時(shí)候,對(duì)于恢復(fù)原始信息非常重要的數(shù)據(jù)。另外,增強(qiáng)層數(shù)據(jù)指的是不象底層數(shù)據(jù)那么重要,但正確地譯碼以后能夠提高原始信息再生質(zhì)量的數(shù)據(jù)。例如,在跟MPEG-2兼容的動(dòng)畫圖像壓縮編碼算法里,要發(fā)送的一系列幀被劃分成I幀、P幀和B幀。對(duì)I幀進(jìn)行幀內(nèi)編碼。參考前一個(gè)I幀或者P幀對(duì)P幀采用單向幀間預(yù)測(cè)編碼。參考前后的I幀或者P幀對(duì)B幀進(jìn)行雙向幀間預(yù)測(cè)編碼。此時(shí),I幀和P幀的編碼數(shù)據(jù)是底層的數(shù)據(jù),B幀的編碼數(shù)據(jù)是增強(qiáng)層的數(shù)據(jù)。譯碼器可以再生動(dòng)畫圖像,盡管它的時(shí)間分辨力很低,直到至少底層的數(shù)據(jù)被正確地收到。這樣,底層的數(shù)據(jù)非常重要,從而將底層的數(shù)據(jù)作為重要數(shù)據(jù)包發(fā)送。在譯碼器里對(duì)增強(qiáng)層里的數(shù)據(jù)進(jìn)行譯碼的時(shí)候,將B幀用于補(bǔ)償I幀和P幀之間的時(shí)間間隙,從而提高動(dòng)畫圖像的時(shí)間分辨力。
B.第二個(gè)實(shí)施方案在上面第一個(gè)實(shí)施方案里,發(fā)送器節(jié)點(diǎn)3a里的中繼裝置能夠?qū)P數(shù)據(jù)包轉(zhuǎn)換成壓縮報(bào)頭數(shù)據(jù)包或者完整報(bào)頭數(shù)據(jù)包(以后叫做“壓縮功能”),而接收器節(jié)點(diǎn)3b里的中繼裝置能夠?qū)嚎s報(bào)頭數(shù)據(jù)包或者完整報(bào)頭數(shù)據(jù)包轉(zhuǎn)換成IP數(shù)據(jù)包(以后叫做“解壓縮功能”)。相反,在這個(gè)實(shí)施方案里,圖1所描述的發(fā)送器數(shù)據(jù)終端和接收數(shù)據(jù)節(jié)點(diǎn)3具有壓縮功能,而發(fā)送器節(jié)點(diǎn)3a和接收器數(shù)據(jù)終端2具有解壓縮功能。
實(shí)際上,接收器數(shù)據(jù)終端1按順序產(chǎn)生要發(fā)送的IP數(shù)據(jù)包,然后,按照第一個(gè)實(shí)施方案里的方式判斷這些IP數(shù)據(jù)包是不是重要數(shù)據(jù)包。發(fā)送器數(shù)據(jù)終端1將認(rèn)定為重要數(shù)據(jù)包的IP數(shù)據(jù)包作為完整報(bào)頭數(shù)據(jù)包發(fā)送給發(fā)送器節(jié)點(diǎn)3a,而將其余數(shù)據(jù)包作為壓縮報(bào)頭數(shù)據(jù)包發(fā)送給發(fā)送器節(jié)點(diǎn)3a。
另一方面,發(fā)送器節(jié)點(diǎn)3a里的中繼裝置將收到的壓縮報(bào)頭數(shù)據(jù)包或者完整報(bào)頭數(shù)據(jù)包轉(zhuǎn)換成IP數(shù)據(jù)包并將它發(fā)送給接收器節(jié)點(diǎn)3b。此外,接收器節(jié)點(diǎn)3b上的中繼裝置判斷來(lái)自發(fā)送器節(jié)點(diǎn)3a的每一個(gè)IP數(shù)據(jù)包是不是重要數(shù)據(jù)包,并將認(rèn)定是重要數(shù)據(jù)包的IP數(shù)據(jù)包作為完整報(bào)頭數(shù)據(jù)包發(fā)送給接收器數(shù)據(jù)終端2,而將其余IP數(shù)據(jù)包作為壓縮報(bào)頭數(shù)據(jù)包發(fā)送給接收器數(shù)據(jù)終端2。接收器數(shù)據(jù)終端2在從接收器節(jié)點(diǎn)3b收到的完整報(bào)頭數(shù)據(jù)包或者壓縮報(bào)頭數(shù)據(jù)包的基礎(chǔ)之上恢復(fù)IP數(shù)據(jù)包,然后按照從每一個(gè)數(shù)據(jù)包獲得的數(shù)據(jù)顯示圖像或者播放聲音等等。按照這種結(jié)構(gòu)能夠獲得跟第一個(gè)實(shí)施方案的效果相同的效果。
如上所述,可以讓發(fā)送器數(shù)據(jù)終端能夠?qū)⒁贗P數(shù)據(jù)包里發(fā)送的重要數(shù)據(jù)包作為完整報(bào)頭數(shù)據(jù)包發(fā)送。具體地說(shuō),本發(fā)明的這一數(shù)據(jù)包傳輸方法可以用于任意裝置在網(wǎng)絡(luò)中實(shí)現(xiàn)數(shù)據(jù)包傳輸和接收。換句話說(shuō),權(quán)利要求中定義的“發(fā)送器”和“接收器”并不限于在數(shù)據(jù)終端之間交換數(shù)據(jù)包的數(shù)據(jù)包中繼裝置,而是包括作為數(shù)據(jù)包發(fā)送器的數(shù)據(jù)終端和作為數(shù)據(jù)包目的地的數(shù)據(jù)終端。
在這一實(shí)施方案里,還可以將發(fā)送器配制成將重要數(shù)據(jù)包和具有改變了的靜態(tài)字段的IP數(shù)據(jù)包,就象第一個(gè)實(shí)施方案里的變型實(shí)例(變型實(shí)例1)所介紹的一樣,在沒(méi)有發(fā)送IP數(shù)據(jù)包要發(fā)送的完整報(bào)頭數(shù)據(jù)包一定時(shí)間過(guò)去了以后發(fā)送的IP數(shù)據(jù)包,或者在發(fā)送完固定個(gè)數(shù)壓縮報(bào)頭數(shù)據(jù)包而沒(méi)有發(fā)送完整報(bào)頭數(shù)據(jù)包以后發(fā)送的IP數(shù)據(jù)包(變型實(shí)例2),以及從發(fā)送器節(jié)點(diǎn)3a收到CONTEXT_STATE以后要發(fā)送的IP數(shù)據(jù)包,作為當(dāng)作完整報(bào)頭數(shù)據(jù)包發(fā)送的數(shù)據(jù)包。
C.第三個(gè)實(shí)施方案跟上面的實(shí)施方案一樣,這個(gè)實(shí)施方案假設(shè)數(shù)據(jù)包是通過(guò)UDP這樣的非TCP協(xié)議傳輸?shù)摹FC 2507將具有圖5所示格式的壓縮過(guò)的非TCP報(bào)頭定義成能夠用于非TCP數(shù)據(jù)包的壓縮報(bào)頭。有可能每個(gè)數(shù)據(jù)包里,非TCP數(shù)據(jù)包的報(bào)頭里IP和RTP的ID的字段都發(fā)生改變。壓縮過(guò)的非TCP報(bào)頭包括由那些字段組成的字段,每個(gè)數(shù)據(jù)包里它們的數(shù)據(jù)都不相同。為了方便,將這樣獲得的壓縮過(guò)的非TCP報(bào)頭中的字段叫做“替換字段”。圖5所示的IP和RTP的ID是這些替換字段。每個(gè)壓縮過(guò)的非TCP報(bào)頭都參考它前面的完整報(bào)頭來(lái)產(chǎn)生。圖5里的CID是用來(lái)識(shí)別為了產(chǎn)生壓縮過(guò)的非TCP報(bào)頭而引用的完整報(bào)頭的信息。“產(chǎn)生”是完整報(bào)頭的恒定字段發(fā)生改變的時(shí)候更新的字段。
從發(fā)送器節(jié)點(diǎn)收到壓縮過(guò)的非TCP報(bào)頭的時(shí)候,接收器節(jié)點(diǎn)里的通信裝置參考?jí)嚎s過(guò)的非TCP報(bào)頭和用壓縮過(guò)的非TCP報(bào)頭中包括的CID識(shí)別的完整報(bào)頭,并產(chǎn)生有壓縮過(guò)的非TCP報(bào)頭的替換字段的報(bào)頭和完整報(bào)頭的其它字段。然后,通信裝置利用產(chǎn)生的報(bào)頭來(lái)處理非TCP數(shù)據(jù)包。
從發(fā)送器節(jié)點(diǎn)向接收器節(jié)點(diǎn)傳遞非TCP數(shù)據(jù)包的時(shí)候,會(huì)出現(xiàn)所謂的同步丟失。在RFC 2507里建議了一種方法,用于從同步丟失快速恢復(fù)過(guò)來(lái)。根據(jù)這一建議,以指數(shù)方式增長(zhǎng)的間隔重復(fù)地發(fā)送完整報(bào)頭,如圖6A所示。
前面是RFC 2507里介紹的非TCP數(shù)據(jù)包的報(bào)頭壓縮方法的概況。
在這一實(shí)施方案里,將本發(fā)明的方法應(yīng)用到上述對(duì)非TCP數(shù)據(jù)包的報(bào)頭壓縮方法里去。圖6B和6C分別給出了這一實(shí)施方案的數(shù)據(jù)包傳輸方法。
在圖6B所示的傳輸方法里,傳輸重要數(shù)據(jù)包的時(shí)候,發(fā)送包括壓縮非TCP報(bào)頭的更新報(bào)頭數(shù)據(jù)包RHP而不是完整報(bào)頭數(shù)據(jù)包。壓縮過(guò)的非TCP報(bào)頭包括從同步丟失恢復(fù)過(guò)來(lái)所需要的所有信息。因此,獲得了跟第一個(gè)實(shí)施方案相同的效果,即使發(fā)送的是壓縮過(guò)的非TCP報(bào)頭而不是完整報(bào)頭。
在圖6C所示的傳輸方法里,當(dāng)同步丟失的時(shí)候,將重要數(shù)據(jù)包作為更新報(bào)頭數(shù)據(jù)包RHP發(fā)送,而更新報(bào)頭數(shù)據(jù)包則以間歇方式發(fā)送,直到對(duì)應(yīng)于重要數(shù)據(jù)包的更新報(bào)頭數(shù)據(jù)包RHP出現(xiàn)。此時(shí),連續(xù)兩個(gè)更新報(bào)頭數(shù)據(jù)包RHP之間的時(shí)間間隔或者數(shù)據(jù)包個(gè)數(shù)按指數(shù)方式增加的時(shí)候,重復(fù)發(fā)送更新報(bào)頭數(shù)據(jù)包RHP。
在這一實(shí)施方案里,可以獲得第一個(gè)實(shí)施方案那樣的效果。
D.第四個(gè)實(shí)施方案IP數(shù)據(jù)包有另一個(gè)報(bào)頭壓縮方法ROHC(堅(jiān)固的報(bào)頭壓縮),它被作為一個(gè)因特網(wǎng)草案發(fā)布。這個(gè)實(shí)施方案涉及這一數(shù)據(jù)包壓縮方法和利用這個(gè)ROHC方法的傳輸方法。
第一個(gè)到第三個(gè)實(shí)施方案已經(jīng)描述了在開始發(fā)送數(shù)據(jù)包的時(shí)候以及在數(shù)據(jù)包的傳遞過(guò)程中傳輸包括原始報(bào)頭內(nèi)容的完整報(bào)頭,作為一個(gè)更新報(bào)頭在接收器里恢復(fù)同步。在利用這一ROHC的數(shù)據(jù)包壓縮和傳輸方法里,不是完整報(bào)頭格式的更新報(bào)頭從發(fā)送器發(fā)送出來(lái),在接收器里恢復(fù)同步。然后,將描述ROHC的要點(diǎn)以幫助理解本發(fā)明的技術(shù)含義。
圖7說(shuō)明用于ROHC的壓縮狀態(tài)的過(guò)渡。如圖所示,ROHC有三種壓縮狀態(tài)。
在發(fā)送器節(jié)點(diǎn)和接收器節(jié)點(diǎn)之間傳遞壓縮報(bào)頭數(shù)據(jù)包的時(shí)候,從一開始,就分別在發(fā)送器節(jié)點(diǎn)和接收器節(jié)點(diǎn)啟動(dòng)壓縮過(guò)程和重構(gòu)過(guò)程。此外,在數(shù)據(jù)包的發(fā)送和接收過(guò)程中同步丟失時(shí),壓縮過(guò)程和重構(gòu)過(guò)程不得不回到初始狀態(tài),以便在發(fā)送器節(jié)點(diǎn)和接收器節(jié)點(diǎn)之間恢復(fù)同步。在壓縮過(guò)程和重構(gòu)過(guò)程初始化以后,滿足某種條件時(shí),發(fā)送器節(jié)點(diǎn)里壓縮過(guò)程的狀態(tài)和接收器節(jié)點(diǎn)里重構(gòu)過(guò)程的狀態(tài)過(guò)度到差值改變狀態(tài),這個(gè)狀態(tài)是更上一層的狀態(tài)。在這一狀態(tài)中滿足某一條件時(shí),壓縮和重構(gòu)的處理狀態(tài)轉(zhuǎn)換成差值恒定狀態(tài),這個(gè)狀態(tài)是更上一層的狀態(tài)。當(dāng)壓縮和重構(gòu)處理狀態(tài)過(guò)渡到更上層狀態(tài)的時(shí)候,要發(fā)送的壓縮報(bào)頭的大小變得更小。
在初始狀態(tài),發(fā)送圖8A描述的IR報(bào)頭或者圖8B描述的IR-DYN報(bào)頭。
當(dāng)利用報(bào)頭壓縮的數(shù)據(jù)包傳遞開始的時(shí)候,IR報(bào)頭是從第一個(gè)數(shù)據(jù)包的IP/UDP/RTP報(bào)頭產(chǎn)生的,以便初始化壓縮過(guò)程和重構(gòu)過(guò)程。在圖8A里,靜態(tài)鏈包括靜態(tài)字段的信息,在IP/UDP/RTP報(bào)頭里它不是在每個(gè)數(shù)據(jù)包里都會(huì)改變。動(dòng)態(tài)鏈包括動(dòng)態(tài)字段的信息,在IP/UDP/RTP報(bào)頭里不同數(shù)據(jù)包里它都會(huì)不同。
在報(bào)頭壓縮已經(jīng)開始,并且已經(jīng)發(fā)送給接收器以后,在數(shù)據(jù)包傳輸過(guò)程中同步丟失時(shí),以及接收器里需要報(bào)頭重構(gòu)過(guò)程的初始化的時(shí)候,產(chǎn)生IR-DYN報(bào)頭。IR-DYN報(bào)頭只包括動(dòng)態(tài)鏈,如圖8B所示。由于動(dòng)態(tài)鏈包括動(dòng)態(tài)字段的所有信息,通過(guò)在接收器節(jié)點(diǎn)接收它們而恢復(fù)同步。
IR報(bào)頭和IR-DYN報(bào)頭都包括利用原始IP/UDP/RTP報(bào)頭計(jì)算出來(lái)的CRC。接收IR報(bào)頭和IR-DYN報(bào)頭的節(jié)點(diǎn)可以通過(guò)利用CRC來(lái)檢查每一個(gè)報(bào)頭是不是已經(jīng)正確地恢復(fù)。
發(fā)送器節(jié)點(diǎn)里的通信裝置在數(shù)據(jù)包之間監(jiān)視按順序發(fā)送的數(shù)據(jù)包的IP/UDP/RTP報(bào)頭的動(dòng)態(tài)字段的差。這個(gè)差沒(méi)有任何改變的時(shí)候(也就是差值恒定狀態(tài)),產(chǎn)生包括圖9A描述的O型的壓縮報(bào)頭數(shù)據(jù)包,并發(fā)送給接收器節(jié)點(diǎn)。在圖9A里,SN代表RTP的序列號(hào)。接收O型報(bào)頭的時(shí)候,接收器節(jié)點(diǎn)發(fā)現(xiàn)在數(shù)據(jù)包之間動(dòng)態(tài)字段的差沒(méi)有任何改變。但只將這個(gè)時(shí)刻動(dòng)態(tài)字段的差加到當(dāng)前值上去,以便重構(gòu)動(dòng)態(tài)字段。
當(dāng)發(fā)送器節(jié)點(diǎn)里的通信裝置發(fā)現(xiàn)差發(fā)生了改變的時(shí)候(也就是說(shuō)差值改變狀態(tài)),發(fā)送器節(jié)點(diǎn)里的通信裝置產(chǎn)生包括1型報(bào)頭或者2型報(bào)頭,將新的差發(fā)送給接收器節(jié)點(diǎn)的壓縮報(bào)頭數(shù)據(jù)包,并將它發(fā)送給接收器節(jié)點(diǎn)。1型報(bào)頭的格式在圖9B里描述,2型報(bào)頭的格式在圖9C里描述。在這些附圖中,SN表示涉及RTP序列號(hào)的差的信息,TS代表跟RTP時(shí)標(biāo)中的差有關(guān)的信息。發(fā)送1型報(bào)頭還是發(fā)送2型報(bào)頭是任選的。
上面提到的跟差有關(guān)的信息是通過(guò)對(duì)應(yīng)字段的LSB(最低有效位)編碼來(lái)獲得的。圖10說(shuō)明了LSB編碼的步驟。
在這一方法中,當(dāng)數(shù)據(jù)包之間報(bào)頭的某些字段的差發(fā)生改變的時(shí)候,將要壓縮的數(shù)據(jù)包前面的一個(gè)或者多個(gè)數(shù)據(jù)包選出來(lái)作為參考數(shù)據(jù)包。選擇哪些數(shù)據(jù)包作為參考數(shù)據(jù)包是任意的。將要壓縮的數(shù)據(jù)包的報(bào)頭的字段和這樣選出來(lái)的參考數(shù)據(jù)包的報(bào)頭的對(duì)應(yīng)字段進(jìn)行比較,然后發(fā)送不同的低位。在圖10所描述的實(shí)例里,由于低四位不同,用1型報(bào)頭或者2型報(bào)頭將低四位發(fā)送給接收器節(jié)點(diǎn)。在接收器節(jié)點(diǎn)里,參考數(shù)據(jù)包報(bào)頭對(duì)應(yīng)字段里的低四位用1型報(bào)頭或者2型報(bào)頭里的低四位來(lái)替換,這樣就能重構(gòu)原來(lái)的字段。
上面是因特網(wǎng)草案里建議的ROHC的概況。
圖11描述的是這一實(shí)施方案的數(shù)據(jù)包傳輸方法。
在這一實(shí)施方案里,發(fā)送重要數(shù)據(jù)包的時(shí)候,重要數(shù)據(jù)包的IP/UDP/RTP報(bào)頭被轉(zhuǎn)換成IR報(bào)頭、IR-DYN報(bào)頭、1型報(bào)頭或者2型報(bào)頭中的一種,包括這樣轉(zhuǎn)換過(guò)來(lái)的這一報(bào)頭的更新報(bào)頭數(shù)據(jù)包被發(fā)送給接收器節(jié)點(diǎn)。下面將給出更加具體的描述。
在ROHC的壓縮包頭數(shù)據(jù)包傳輸中,會(huì)發(fā)生接收器節(jié)點(diǎn)里的通信裝置收到報(bào)頭,并且報(bào)頭的內(nèi)容被正確地恢復(fù)這樣的情況,從接收器節(jié)點(diǎn)發(fā)送ACK,將這一情況告訴發(fā)送器節(jié)點(diǎn)。在這一實(shí)施方案里,從接收器節(jié)點(diǎn)收到這個(gè)ACK以后產(chǎn)生要發(fā)送的重要數(shù)據(jù)包的時(shí)候,參考前面已經(jīng)發(fā)送和確認(rèn)的報(bào)頭,從重要數(shù)據(jù)包的IP/UDP/RTP報(bào)頭產(chǎn)生1型報(bào)頭或者2型報(bào)頭。然后將包括這樣產(chǎn)生的1型和2型報(bào)頭的更新報(bào)頭數(shù)據(jù)包發(fā)送給接收器節(jié)點(diǎn)。這樣發(fā)送的1型或者2型報(bào)頭包括數(shù)據(jù),說(shuō)明重要數(shù)據(jù)包IP/UDP/RTP報(bào)頭里動(dòng)態(tài)字段之間的差,以及發(fā)送器節(jié)點(diǎn)已經(jīng)收到了ACK的確認(rèn)數(shù)據(jù)包的那些。
由于1型報(bào)頭和2型報(bào)頭包括的信息足以恢復(fù)同步,即使在發(fā)送重要數(shù)據(jù)包以前就丟失了數(shù)據(jù)包,重要數(shù)據(jù)包里的報(bào)頭都被正確地重構(gòu)而沒(méi)有任何問(wèn)題。這樣,重要數(shù)據(jù)包得到保護(hù),不會(huì)出現(xiàn)導(dǎo)致同步丟失的數(shù)據(jù)包丟失。
會(huì)出現(xiàn)這樣的情況,重要數(shù)據(jù)包已經(jīng)被發(fā)送,但是還沒(méi)有任何報(bào)頭已經(jīng)被發(fā)送和確認(rèn)。在這種情況下,從重要數(shù)據(jù)包的IP/UDP/RTP報(bào)頭產(chǎn)生IR報(bào)頭或者IR-DYN報(bào)頭,包括它的更新報(bào)頭數(shù)據(jù)包被發(fā)送給接收器節(jié)點(diǎn)。
在這一實(shí)施方案里,重要數(shù)據(jù)包可以得到保護(hù),不會(huì)出現(xiàn)導(dǎo)致同步丟失的數(shù)據(jù)包丟失。
E.上述實(shí)施方案中每一個(gè)的變型實(shí)例上面描述的所有實(shí)施方案都公開了用于IRv4數(shù)據(jù)包傳輸?shù)臄?shù)據(jù)包傳輸方法。然而,本發(fā)明的應(yīng)用范圍不限于此。本發(fā)明可以用于傳輸IPv6數(shù)據(jù)包。圖12給出了IPv6報(bào)頭的格式。如圖所示,IPv6具有靜態(tài)字段,在數(shù)據(jù)包之間它不會(huì)改變,還具有動(dòng)態(tài)字段,在數(shù)據(jù)包之間會(huì)改變,以及刪除的字段,它具有已知的值,或者可以從其它字段重構(gòu)。因此,在每一個(gè)實(shí)施方案里或者它們的變種里描述的這一數(shù)據(jù)包傳輸方法,可以被用于具有IP/UDP/RTP報(bào)頭的非壓縮數(shù)據(jù)包,其中的IP部分包括IPv6報(bào)頭。
可以這樣來(lái)應(yīng)用本發(fā)明,將用于執(zhí)行本發(fā)明的數(shù)據(jù)包傳輸方法的程序存入計(jì)算機(jī)能夠讀出來(lái)的存儲(chǔ)媒介里交給用戶,或者通過(guò)電子通信電路將這樣的程序提供給用戶。
權(quán)利要求
1.一種數(shù)據(jù)包傳輸方法,用于通過(guò)網(wǎng)絡(luò)從發(fā)送器節(jié)點(diǎn)向接收器節(jié)點(diǎn)傳輸數(shù)據(jù)包,包括以下步驟發(fā)送器節(jié)點(diǎn)里的通信裝置進(jìn)行轉(zhuǎn)換,用于將要發(fā)送的非壓縮數(shù)據(jù)包轉(zhuǎn)換成具有更新報(bào)頭的更新報(bào)頭數(shù)據(jù)包,這個(gè)更新報(bào)頭包括足以在接收器節(jié)點(diǎn)里恢復(fù)同步的信息;或者轉(zhuǎn)換成具有壓縮報(bào)頭的壓縮報(bào)頭數(shù)據(jù)包,這個(gè)壓縮報(bào)頭包括的信息比更新報(bào)頭的少,這樣,只要這個(gè)數(shù)據(jù)包是重要數(shù)據(jù)包,非壓縮數(shù)據(jù)包里的所有數(shù)據(jù)包都被轉(zhuǎn)換成更新報(bào)頭數(shù)據(jù)包;和將包括更新報(bào)頭數(shù)據(jù)包和壓縮報(bào)頭數(shù)據(jù)包的數(shù)據(jù)包流發(fā)送給接收器節(jié)點(diǎn)。
2.權(quán)利要求1的數(shù)據(jù)包傳輸方法,其中的更新報(bào)頭包括一個(gè)完整報(bào)頭,其中包括非壓縮數(shù)據(jù)包包括的原始報(bào)頭里的內(nèi)容。
3.權(quán)利要求1的數(shù)據(jù)包傳輸方法,其中更新報(bào)頭的格式包括第一個(gè)格式,這個(gè)格式能夠用于接收器節(jié)點(diǎn)開始接收這一數(shù)據(jù)包流的通信裝置里重構(gòu)過(guò)程的第一次初始化,還包括第二個(gè)格式,這第二個(gè)格式能夠用于第二次初始化和以后的初始化,和發(fā)送器節(jié)點(diǎn)里的通信裝置將數(shù)據(jù)包流中第二個(gè)和后面的數(shù)據(jù)包流中的重要數(shù)據(jù)包轉(zhuǎn)換成包括更新報(bào)頭的更新報(bào)頭數(shù)據(jù)包,并發(fā)送給接收器節(jié)點(diǎn),這個(gè)更新報(bào)頭包括第二個(gè)格式。
4.權(quán)利要求1的數(shù)據(jù)包傳輸方法,其中的更新報(bào)頭包括一個(gè)報(bào)頭,這個(gè)報(bào)頭是通過(guò)參考接收器節(jié)點(diǎn)里通信裝置中的重構(gòu)得到了確認(rèn)的一個(gè)報(bào)頭產(chǎn)生的。
5.權(quán)利要求1的數(shù)據(jù)包傳輸方法,還包括一項(xiàng)操作,用于在非壓縮數(shù)據(jù)包中包括的實(shí)時(shí)傳輸協(xié)議報(bào)頭的標(biāo)志位的情形基礎(chǔ)之上,通過(guò)發(fā)送器節(jié)點(diǎn)里的通信裝置確定要發(fā)送的非壓縮數(shù)據(jù)包中的每一個(gè)是否重要數(shù)據(jù)包。
6.權(quán)利要求5的數(shù)據(jù)包傳輸方法,當(dāng)非壓縮數(shù)據(jù)包前面的一個(gè)非壓縮數(shù)據(jù)包的標(biāo)志位已經(jīng)被置位的時(shí)候,其中的非壓縮數(shù)據(jù)包被確定為重要數(shù)據(jù)包。
7.權(quán)利要求5的數(shù)據(jù)包傳輸方法,當(dāng)非壓縮數(shù)據(jù)包里的標(biāo)志位被置位的時(shí)候,其中的非壓縮數(shù)據(jù)包被確定為重要數(shù)據(jù)包。
8.權(quán)利要求1的數(shù)據(jù)包傳輸方法,還包括一項(xiàng)操作,用于在非壓縮數(shù)據(jù)包的大小的基礎(chǔ)之上,通過(guò)發(fā)送器節(jié)點(diǎn)里的通信裝置確定要發(fā)送的每一個(gè)非壓縮數(shù)據(jù)包是否重要數(shù)據(jù)包。
9.權(quán)利要求8的數(shù)據(jù)包傳輸方法,當(dāng)非壓縮數(shù)據(jù)包的大小超過(guò)預(yù)定大小的時(shí)候,其中的非壓縮數(shù)據(jù)包被確定為重要數(shù)據(jù)包。
10.權(quán)利要求8的數(shù)據(jù)包傳輸方法,當(dāng)非壓縮數(shù)據(jù)包的大小大于預(yù)定大小,而且下一個(gè)非壓縮數(shù)據(jù)包報(bào)頭的大小小于預(yù)定大小時(shí),或者當(dāng)非壓縮數(shù)據(jù)包的大小小于預(yù)定大小,而且下一個(gè)非壓縮報(bào)頭比預(yù)定大小大的時(shí)候,其中的非壓縮數(shù)據(jù)包被確定為重要數(shù)據(jù)包。
11.權(quán)利要求1的數(shù)據(jù)包傳輸方法,其中的重要數(shù)據(jù)包包括一個(gè)非壓縮數(shù)據(jù)包,其中包括結(jié)構(gòu)信息,以便在接收器節(jié)點(diǎn)里參考這樣的信息來(lái)解釋數(shù)據(jù)包里的數(shù)據(jù)。
12.權(quán)利要求1的數(shù)據(jù)包傳輸方法,其中每個(gè)數(shù)據(jù)包里的數(shù)據(jù)都包括代表幾幀圖像的至少部分圖像數(shù)據(jù),和重要數(shù)據(jù)包包括一個(gè)數(shù)據(jù)包,這個(gè)數(shù)據(jù)包里包括每個(gè)所述幀的第一個(gè)信息。
13.權(quán)利要求12的數(shù)據(jù)包傳輸方法,當(dāng)非壓縮數(shù)據(jù)包包括不同于前面的非壓縮數(shù)據(jù)包里包括的時(shí)標(biāo)的一個(gè)時(shí)標(biāo)時(shí),其中的非壓縮數(shù)據(jù)包被確定為這一幀的第一個(gè)數(shù)據(jù)包。
14.權(quán)利要求1的數(shù)據(jù)包傳輸方法,其中每個(gè)數(shù)據(jù)包里的數(shù)據(jù)都代表話音,和重要數(shù)據(jù)包包括非壓縮數(shù)據(jù)包,非壓縮數(shù)據(jù)包包括代表話音部分的數(shù)據(jù)。
15.權(quán)利要求14的數(shù)據(jù)包傳輸方法,其中包括代表話音部分的數(shù)據(jù)的非壓縮數(shù)據(jù)包是在要發(fā)送的一組非壓縮數(shù)據(jù)包的數(shù)據(jù)包大小的的改變的基礎(chǔ)之上獲得的。
16.權(quán)利要求1的數(shù)據(jù)包傳輸方法,其中每一個(gè)數(shù)據(jù)包里的數(shù)據(jù)都包括代表幾幀圖像的至少一部分編碼數(shù)據(jù),這幾幀是利用包括幀內(nèi)編碼過(guò)程和幀間預(yù)測(cè)編碼過(guò)程的一個(gè)算法來(lái)獲得的,和重要數(shù)據(jù)包包括一個(gè)數(shù)據(jù)包,這個(gè)數(shù)據(jù)包包括幀內(nèi)編碼過(guò)程獲得的編碼數(shù)據(jù)。
17.權(quán)利要求1的數(shù)據(jù)包傳輸方法,其中每個(gè)數(shù)據(jù)包里的數(shù)據(jù)都包括至少部分分層編碼數(shù)據(jù),這個(gè)分層編碼數(shù)據(jù)包括底層數(shù)據(jù)和增強(qiáng)層里的數(shù)據(jù),和重要數(shù)據(jù)包包括一個(gè)數(shù)據(jù)包,其中包括底層的數(shù)據(jù)。
18.權(quán)利要求1的數(shù)據(jù)包傳輸方法,其中發(fā)送完最后一個(gè)完整報(bào)頭數(shù)據(jù)包以后經(jīng)過(guò)了預(yù)定長(zhǎng)度的時(shí)間或者發(fā)送了預(yù)定個(gè)數(shù)的壓縮報(bào)頭數(shù)據(jù)包,發(fā)送器節(jié)點(diǎn)里的通信裝置就將非壓縮數(shù)據(jù)包轉(zhuǎn)換成完整報(bào)頭數(shù)據(jù)包,即使這一非壓縮數(shù)據(jù)包不是重要數(shù)據(jù)包。
19.權(quán)利要求1的數(shù)據(jù)包傳輸方法,其中已經(jīng)發(fā)送了某個(gè)數(shù)目的數(shù)據(jù)包的時(shí)候,或者發(fā)送了某個(gè)時(shí)間長(zhǎng)度的數(shù)據(jù)包的時(shí)候,發(fā)送器節(jié)點(diǎn)里的通信裝置發(fā)送更新報(bào)頭數(shù)據(jù)包。
20.權(quán)利要求1的數(shù)據(jù)包傳輸方法,其中在數(shù)據(jù)包通信中同步丟失的時(shí)候,發(fā)送器節(jié)點(diǎn)里的通信裝置發(fā)送更新報(bào)頭數(shù)據(jù)包,同時(shí)按指數(shù)規(guī)律增加它們的傳輸時(shí)間間隔。
21.權(quán)利要求1的數(shù)據(jù)包傳輸方法,其中發(fā)送器節(jié)點(diǎn)里的通信裝置響應(yīng)接收器節(jié)點(diǎn)的請(qǐng)求,將非壓縮數(shù)據(jù)包作為更新報(bào)頭數(shù)據(jù)包發(fā)送出去。
22.一種程序,用于讓計(jì)算機(jī)執(zhí)行一個(gè)數(shù)據(jù)包傳輸方法,通過(guò)網(wǎng)絡(luò)從發(fā)送器節(jié)點(diǎn)向接收器節(jié)點(diǎn)傳輸數(shù)據(jù)包,這個(gè)方法包括以下步驟發(fā)送器節(jié)點(diǎn)里的通信裝置進(jìn)行轉(zhuǎn)換,用于將要發(fā)送的非壓縮數(shù)據(jù)包轉(zhuǎn)換成具有更新報(bào)頭的更新報(bào)頭數(shù)據(jù)包,這個(gè)更新報(bào)頭包括足以在接收器節(jié)點(diǎn)里恢復(fù)同步的信息;或者轉(zhuǎn)換成具有壓縮報(bào)頭的壓縮報(bào)頭數(shù)據(jù)包,這個(gè)壓縮報(bào)頭包括的信息比更新報(bào)頭的少,這樣,非壓縮數(shù)據(jù)包里的所有數(shù)據(jù)包都被轉(zhuǎn)換成更新報(bào)頭數(shù)據(jù)包,只要這個(gè)數(shù)據(jù)包是重要數(shù)據(jù)包;和將包括更新報(bào)頭數(shù)據(jù)包和壓縮報(bào)頭數(shù)據(jù)包的數(shù)據(jù)包流發(fā)送給接收器節(jié)點(diǎn)。
23.一種計(jì)算機(jī)能夠讀取的存儲(chǔ)媒介,用于儲(chǔ)存程序,這個(gè)程序是計(jì)算機(jī)執(zhí)行一個(gè)數(shù)據(jù)包傳輸方法,通過(guò)網(wǎng)絡(luò)從發(fā)送器節(jié)點(diǎn)向接收器節(jié)點(diǎn)傳輸數(shù)據(jù)包,這個(gè)方法包括以下步驟發(fā)送器節(jié)點(diǎn)里的通信裝置進(jìn)行轉(zhuǎn)換,用于將要發(fā)送的非壓縮數(shù)據(jù)包轉(zhuǎn)換成具有更新報(bào)頭的更新報(bào)頭數(shù)據(jù)包,這個(gè)更新報(bào)頭包括足以在接收器節(jié)點(diǎn)里恢復(fù)同步的信息;或者轉(zhuǎn)換成具有壓縮報(bào)頭的壓縮報(bào)頭數(shù)據(jù)包,這個(gè)壓縮報(bào)頭包括的信息比更新報(bào)頭的少,這樣,非壓縮數(shù)據(jù)包里的所有數(shù)據(jù)包都被轉(zhuǎn)換成更新報(bào)頭數(shù)據(jù)包,只要這個(gè)數(shù)據(jù)包是重要數(shù)據(jù)包;和將包括更新報(bào)頭數(shù)據(jù)包和壓縮報(bào)頭數(shù)據(jù)包的數(shù)據(jù)包流發(fā)送給接收器節(jié)點(diǎn)。
24.網(wǎng)絡(luò)里用于從網(wǎng)絡(luò)的發(fā)送器節(jié)點(diǎn)接收數(shù)據(jù)包并發(fā)送數(shù)據(jù)包給網(wǎng)絡(luò)的接收器節(jié)點(diǎn)的一種中繼裝置,這種中繼裝置包括一個(gè)壓縮器,用于將要發(fā)送的非壓縮數(shù)據(jù)包轉(zhuǎn)換成具有更新報(bào)頭的更新報(bào)頭數(shù)據(jù)包,這個(gè)更新報(bào)頭包括足以在接收器節(jié)點(diǎn)里恢復(fù)同步的信息;或者轉(zhuǎn)換成具有壓縮報(bào)頭的壓縮報(bào)頭數(shù)據(jù)包,這個(gè)壓縮報(bào)頭包括的信息比更新報(bào)頭的少,這樣,非壓縮數(shù)據(jù)包里的所有數(shù)據(jù)包都被轉(zhuǎn)換成更新報(bào)頭數(shù)據(jù)包,只要這個(gè)數(shù)據(jù)包是重要數(shù)據(jù)包;和數(shù)據(jù)包流的一個(gè)發(fā)送器,用于將包括更新報(bào)頭數(shù)據(jù)包和壓縮報(bào)頭數(shù)據(jù)包的數(shù)據(jù)包流發(fā)送給接收器節(jié)點(diǎn)。
25.一種數(shù)據(jù)終端,包括一個(gè)壓縮器,用于將要發(fā)送的非壓縮數(shù)據(jù)包轉(zhuǎn)換成具有更新報(bào)頭的更新報(bào)頭數(shù)據(jù)包,這個(gè)更新報(bào)頭包括足以在接收器節(jié)點(diǎn)里恢復(fù)同步的信息;或者轉(zhuǎn)換成具有壓縮報(bào)頭的壓縮報(bào)頭數(shù)據(jù)包,這個(gè)壓縮報(bào)頭包括的信息比更新報(bào)頭的少,這樣,非壓縮數(shù)據(jù)包里的所有數(shù)據(jù)包都被轉(zhuǎn)換成更新報(bào)頭數(shù)據(jù)包,只要這個(gè)數(shù)據(jù)包是重要數(shù)據(jù)包;和數(shù)據(jù)包流的一個(gè)發(fā)送器,用于將包括更新報(bào)頭數(shù)據(jù)包和壓縮報(bào)頭數(shù)據(jù)包的數(shù)據(jù)包流發(fā)送給接收器節(jié)點(diǎn)。
全文摘要
在包括發(fā)送器和接收器的網(wǎng)絡(luò)這種情況下,其中的發(fā)送器將要發(fā)送的非壓縮數(shù)據(jù)包轉(zhuǎn)換成包括一個(gè)完整報(bào)頭的完整報(bào)頭數(shù)據(jù)包或者包括壓縮報(bào)頭的壓縮報(bào)頭數(shù)據(jù)包,并將轉(zhuǎn)換過(guò)的數(shù)據(jù)包發(fā)送給接收器,在這種情況下,發(fā)送器將要發(fā)送的非壓縮數(shù)據(jù)包里的至少重要數(shù)據(jù)包作為完整報(bào)頭數(shù)據(jù)包發(fā)送。重要數(shù)據(jù)包指的是例如,包括在最終收到數(shù)據(jù)包的數(shù)據(jù)終端按照數(shù)據(jù)包里的數(shù)據(jù)再現(xiàn)聲音和/或圖像的時(shí)候,扮演重要角色的數(shù)據(jù)的數(shù)據(jù)包。
文檔編號(hào)H04L29/06GK1311590SQ01108948
公開日2001年9月5日 申請(qǐng)日期2001年3月2日 優(yōu)先權(quán)日2000年3月3日
發(fā)明者吉村健, 河原敏朗, 鈴木敬 申請(qǐng)人:株式會(huì)社Ntt杜可莫