專利名稱:一種同時(shí)適用于有線和無線網(wǎng)絡(luò)的實(shí)時(shí)流媒體傳輸?shù)姆椒?br>
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)協(xié)議的方法,特別涉及一種同時(shí)適用于有線和無線網(wǎng) 絡(luò)的實(shí)時(shí)流媒體傳輸?shù)姆椒ā?br>
背景技術(shù):
TFRC(TCP Friendly Rate Control TCP兼容流傳輸控制協(xié)議)是一種為了給 流媒體應(yīng)用提供優(yōu)質(zhì)的傳輸服務(wù)而設(shè)計(jì)的網(wǎng)絡(luò)協(xié)議(S. Floyd, M. Handley, and J. Padhye et al. "Equation-Based Congestion Control for Unicast Applications." ACMSIGCO醒,00, August 2000. )。 TFRC在(UDP User Datagram Protocol用戶翁:據(jù)包協(xié)i()網(wǎng)絡(luò)協(xié)議的基礎(chǔ)上,利用一種可以才莫擬TCP Reno (傳 統(tǒng)TCP擁塞控制協(xié)議,TCP擁塞控制協(xié)議的一種)吞吐量行為的計(jì)算公式(以下 稱為"Reno公式,,)來控制發(fā)送數(shù)據(jù)包的速率,從而既利用了 UDP在網(wǎng)絡(luò)傳輸中 的實(shí)時(shí)特性,又避免了 UDP無限制的發(fā)送數(shù)據(jù)包而影響其它TCP (Transmission Control Protocol傳輸控制協(xié)議)傳輸?shù)男阅堋>唧w的傳輸過程如圖1所示。
TFRC接收端計(jì)算該連接的丟包率,并4巴此結(jié)果通過ACK包 (acknowledgement)返回給發(fā)送端。收到ACK包后,發(fā)送端根據(jù)新的丟包率, 用Reno公式算出新的發(fā)送速率,并由此調(diào)整發(fā)送數(shù)據(jù)包的速度。調(diào)整發(fā)送數(shù)據(jù) 包速度的Reno/厶式如下所示
其中7^是計(jì)算所的發(fā)包速率,s是數(shù)據(jù)包的大小,及rr是數(shù)據(jù)包往返時(shí)間
(round trip time) , p是接收端發(fā)回的丟包率,r。=4/ rr, 6是指接收端每收 到多少個(gè)數(shù)據(jù)包返回一個(gè)ACK包,通常取1或者2。由此可以看出,Reno公式是TFRC協(xié)議的核心,它決定了 TFRC的傳輸性負(fù)fe。
在今天,無線網(wǎng)絡(luò)已經(jīng)成為了計(jì)算機(jī)網(wǎng)絡(luò)的重要組成部分,并會(huì)在將來扮 演越來越重要的角色。眾所周知,無線網(wǎng)絡(luò)有著很高的隨機(jī)丟包率。TCP Reno 總是把數(shù)據(jù)包的丟失作為網(wǎng)絡(luò)擁塞的信號,并在丟包后大幅度的降低其傳輸速 率(通常減半)。但是這個(gè)判斷在無線網(wǎng)絡(luò)中并不適用,因?yàn)樵跓o線網(wǎng)絡(luò)中,大 部分的丟包都是由于信號噪聲,連接中斷等造成的,而不是網(wǎng)絡(luò)擁塞,我們稱 之為隨機(jī)丟包,或者叫無線網(wǎng)絡(luò)丟包。由于TCP Reno將大量的無線網(wǎng)絡(luò)丟包認(rèn) 為是網(wǎng)絡(luò)擁塞,所以TCP Reno在無線網(wǎng)絡(luò)中性能很低。而TFRC是通過Reno公 式的結(jié)果來發(fā)送數(shù)據(jù)包的,所以在無線網(wǎng)絡(luò)中,TFRC的性能也很差。
目前,已有很多對TFRC進(jìn)行的改進(jìn),以實(shí)現(xiàn)在無線網(wǎng)絡(luò)中的良好性能。這 些改進(jìn)可以分為兩大類需要中間網(wǎng)絡(luò)支持的改進(jìn)和無需中間網(wǎng)絡(luò)支持的改進(jìn)。
需要中間網(wǎng)絡(luò)支持的改進(jìn)是指,這種改進(jìn)不僅需要在發(fā)送/接收端進(jìn)行,也 會(huì)涉及到網(wǎng)絡(luò)的中間節(jié)點(diǎn),如路由器(router ),代理服務(wù)器(proxy ),無線網(wǎng) 接入器(access point)等。代表性的例子有ECN-based TFRC (R. Chaudhary, andJacob. "ECN Based TCP-friendly Rate Control for Wireless Multimedia Streaming." IEEE ICCCN, 03, October 2003. ), Proxy-based TFRC ( L. Huang, U. Horn, and F. Hartimg et al."Proxy-based TCP-friendly Streaming over Mobile Networks. ,, ACMWo麗oM, 02, September 2002. ), WM-TFRC ( J. Y. Pyun, Y. Kim, and K. H. Jang et al. "Wireless Measurement Based Resource Allocation for QoS Provisioning over IEEE 802.11 Wireless LAN." IEEE Trans. On Computer Electronics, vol. 49, Issue 3, 2003 ) , AED—based TFRC (V. Arya, and T. Turletti."Accurate and Explicit Differentiation of Wireless and Congestion Losses." IEEE ICDCSW, 03, May 2003 )等。
ECN-based TFRC利用中間的路由器(router)來判斷網(wǎng)絡(luò)是否擁塞,并把 該信息通過設(shè)置IP (Internet Protocol互聯(lián)網(wǎng)協(xié)議)包頭的ECN (Explicit Congestion Notification擁塞提醒信號)標(biāo)志來通知接收端。接收端只根據(jù) ECN標(biāo)志的包來計(jì)算丟失率,并通過ACK包通知發(fā)送端。這樣,發(fā)送端便只用由網(wǎng)絡(luò)擁塞導(dǎo)致的丟包率來計(jì)算發(fā)送速率,從而避免其他原因的丟包產(chǎn)生的影響,
提高了 TFRC的性能。
Proxy-based TFRC ^吏用代理服務(wù)器(proxy )將發(fā)送端和4妻收端分成兩部分, 只在發(fā)送端和代理服務(wù)器之間的這部分使用TFRC來傳輸數(shù)據(jù)。在另一部分,也 就是代理服務(wù)器和接收端,則通過基于TCP的RTP ( Real-time Transport Protocol實(shí)時(shí)傳輸協(xié)議)協(xié)議來傳輸數(shù)據(jù)。這種方法可以充分的利用無線網(wǎng)絡(luò)的 帶寬,從而提高整體的性能。
麗-TFRC利用無線網(wǎng)^^的4矣入節(jié)點(diǎn)(access point)來測量無線網(wǎng)絡(luò)的丟包 率,并將結(jié)果返回給發(fā)送端。與此同時(shí),接收端則返回總的丟包率。這樣,發(fā) 送端可以通過總的丟包率減去無線網(wǎng)絡(luò)的丟包率,來得到真正的由網(wǎng)絡(luò)擁塞引 起的丟包率。由此丟包率來計(jì)算發(fā)送速率,可以提高TFRC的性能。
AED-based TFRC <吏用 一 種新的稱為 Accurate and Explicit Differentiation (AED)的丟包分辨方法來提高TFRC的性能。它在無線網(wǎng)絡(luò)邊 界和有線網(wǎng)絡(luò)的邊界均設(shè)置一個(gè)代理服務(wù)器(agent )。無線網(wǎng)絡(luò)中的代理服務(wù) 器將丟包視作隨機(jī)丟包,而有線網(wǎng)絡(luò)中的代理服務(wù)器則將丟包視作擁塞丟包。 這些信息將會(huì)傳給接收端,從而讓接收端正確的得到擁塞丟包率,來提高TFRC 的性能。
綜上所述,無線網(wǎng)絡(luò)需要中間網(wǎng)絡(luò)支持的改進(jìn)方法必須要加入新的功能在 中間節(jié)點(diǎn)上,或者加入新的中間節(jié)點(diǎn),這會(huì)給改進(jìn)的推行帶來麻煩,因?yàn)橐?變或者更換現(xiàn)有的大量的已存在的Internet的設(shè)備,是一件非常困難的事情。 而另外一種類型的改進(jìn)則避免了這種情況,即無需中間網(wǎng)絡(luò)支持的改進(jìn)。這種 改進(jìn)只對發(fā)送/接收端的一方或者兩方進(jìn)行修改。其中的代表是MULTFRC( M. Chen: and A. Zakhor. "Rate Control for Streaming Video over Wireless.', IEEE INFOCOM, 04, March 2004.)。
MULTFRC發(fā)現(xiàn)如果只用一條TFRC連接在無線網(wǎng)絡(luò)中進(jìn)行傳輸,其帶寬利用 率非常的低。因此MULTFRC在數(shù)據(jù)傳輸?shù)倪^程中會(huì)同時(shí)建立多條連接,這樣傳 輸?shù)男示痛蟠筇岣吡?。連接的數(shù)目根據(jù)數(shù)據(jù)包的往返時(shí)間(round trip time )由特定的算法計(jì)算出來,并在傳輸?shù)倪^程中動(dòng)態(tài)的變化。MULTFRC僅僅需要對發(fā) 送端進(jìn)行改進(jìn),因此非常的方便。隨后MULTFRC又進(jìn)行了改進(jìn),稱為AIO-TFRC (M. Chen, and A. Zakhor. "AIO-TFRC: A Light-weight Rate Control Scheme for Streaming over Wireless. " IEEE WirelessCom, 05, June 2005. )。 AI0-TFRC 簡化了 MULTFRC的編程實(shí)現(xiàn)過程,并且解決了其在量化連接數(shù)目時(shí)有可能產(chǎn)生 的不良結(jié)果。
然而,無論是MULTFRC還是A10-TFRC ,雖然它們可以大幅度提高TFRC在無 線網(wǎng)絡(luò)中的性能,卻犧牲了 TFRC別的優(yōu)點(diǎn),即公平性和對其他TCP傳輸?shù)挠押?性。也就是說,當(dāng)多個(gè)MULTFRC同時(shí)傳輸數(shù)據(jù)時(shí),它們并不能平等的享有帶寬。 同時(shí),如果MULTFRC和別的TCP同時(shí)傳輸數(shù)據(jù)時(shí),MULTFRC會(huì)搶占TCP本該享有 的帶寬。
本發(fā)明的目的是提供一種同時(shí)適用于有線和無線網(wǎng)絡(luò)的實(shí)時(shí)流媒體傳輸?shù)?方法。采用本發(fā)明方法,使TFRC Veno具有在無線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)良好的傳輸 性能,在大幅度提高TFRC在無線網(wǎng)絡(luò)中的性能同時(shí),又保證了TFRC的公平性 和對其他TCP傳輸?shù)挠押眯?,并且有簡單快捷,成本低的?yōu)點(diǎn)。
本發(fā)明的技術(shù)方案有以下步驟
a. 發(fā)送端發(fā)出TFRC凄t據(jù)包;
b. 接收端接收TFRC數(shù)據(jù)包,同時(shí)計(jì)算前一#爻時(shí)間的丟包率p ,
c. 才妄收端將丟包率p的"信息通過ACK包(acknowledgement)返回給發(fā)送端, 每收到6個(gè)TFRC數(shù)據(jù)包返回 一個(gè)ACK包;
d. 發(fā)送端收到ACK包后,TFRC根據(jù)Reno公式計(jì)算出新的發(fā)送速率7;。&,其
中
發(fā)明內(nèi)容式中S為TFRC新的數(shù)據(jù)包的大小,Arr為數(shù)據(jù)包往返時(shí)間(round trip time ), 6為接收端每收到1 ~ 2個(gè)數(shù)據(jù)包返回一個(gè)ACK包,p是接收端發(fā)回的丟 包率,r。=4i 7T, y為本發(fā)明對TCP Veno建模所得到的特征參數(shù),其計(jì)算公式 為
y :min(《,《+(《 -《)x-々XJ 7T-)
式中,《為TCP Veno在判斷丟包是隨機(jī)丟包時(shí)所減小到的速率和原來速率 的比例,6>2為TCP Veno在判斷丟包是擁塞丟包時(shí)所減小到的速率和原來速率的 比例,^^ 7T為傳輸過程中最小的及7T,『max =65535" , S為數(shù)據(jù)包的大小, (3為TCP Veno中使用的常數(shù),通常取3。
本發(fā)明方法采用模擬TCP Veno (新型TCP擁塞控制協(xié)議,TCP擁塞控制協(xié) 議的一種)呑吐量行為的計(jì)算公式(以下稱為"Veno公式,,),并改用該公式來 控制TFRC發(fā)包的速率。TCP Veno是一種在無線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)環(huán)境下都有^艮 好的傳輸性能的TCP網(wǎng)絡(luò)協(xié)議,因此使用了 Veno公式后的TFRC(以下稱為"TFRC Veno")在無線網(wǎng)絡(luò)中的性能有大幅度的提高。
本發(fā)明用一種能同時(shí)適合于有線和無線網(wǎng)絡(luò)的公式來代替Reno公式,從才艮 本上解決TFRC在無線網(wǎng)絡(luò)中遇到的問題。TFRC Veno在大幅度提升TFRC性能的 同時(shí),并沒有犧牲原來TFRC的其他優(yōu)點(diǎn),如公平性,和對其他TCP傳輸?shù)挠押?性,以及發(fā)送數(shù)據(jù)包的平穩(wěn)性。另外,TFRC Veno只需要在TFRC協(xié)議的發(fā)送端 進(jìn)行少量改進(jìn)用Veno公式代替Reno公式即可。因此,如果想提高現(xiàn)有的TFRC 連接在無線網(wǎng)絡(luò)中的性能,只需在TFRC發(fā)送端使用Veno公式代替Reno公式來 計(jì)算發(fā)包速率,其他的機(jī)制不用變動(dòng),即可提高其性能,具有使用筒單便捷, 成本低的優(yōu)點(diǎn)。
我們的仿真實(shí)驗(yàn)和真實(shí)網(wǎng)絡(luò)實(shí)驗(yàn)表明,采用模擬TCP Veno吞吐量行為的 Veno公式控制TFRC發(fā)包的速率,當(dāng)網(wǎng)絡(luò)的隨機(jī)丟包率在10°/ 左右時(shí),TFRC Veno 的傳輸速度可以達(dá)到TFRC速度的3倍以上。
圖1為TFRC和TFRC Veno協(xié)議的傳輸過程示意圖2為TFRC Veno和TFRC在無線網(wǎng)絡(luò)環(huán)境下的吞吐量的比較實(shí)驗(yàn)結(jié)果示意
圖3為TFRC Veno和TFRC在無線網(wǎng)絡(luò)環(huán)境下的公平性的比較實(shí)驗(yàn)結(jié)果示意
圖4為TFRC Veno和TFRC在無線網(wǎng)絡(luò)環(huán)境下對其他TCP傳輸?shù)挠押眯缘谋?較實(shí)驗(yàn)結(jié)果示意圖5為TFRC Veno和TFRC在無線網(wǎng)絡(luò)環(huán)境下傳輸?shù)钠椒€(wěn)性的比較實(shí)驗(yàn)結(jié)果 示意圖。
具體實(shí)施例方式
名詞解釋
1. TFRC: TCP Friendly Rate Control (TCP兼容流傳輸控制協(xié)議)
2. UDP: User Datagram Protocol (用戶數(shù)據(jù)包協(xié)議)
3. TCP: Transmission Control Protocol (傳輸控制協(xié)議)
4. IP: Internet Protocol (互聯(lián)網(wǎng)協(xié)議)
5. TCP Reno:(傳統(tǒng)TCP擁塞控制協(xié)議,TCP擁塞控制協(xié)議的一種)
6. TCP Veno:(新型TCP擁塞控制協(xié)議,TCP擁塞控制協(xié)議的 一種)
7. ECN: Explicit Congestion Notification (擁塞才是醒信號)
8. RTP: Real-time Transport Protocol (實(shí)時(shí)傳輸協(xié)議)
9. ACK: Acknowledgement (確i人數(shù)據(jù)包) 一.TFRC Veno協(xié)議的傳輸過程
參見圖1, TFRC Veno協(xié)議的傳輸過程如下所述
1. 發(fā)送端和接收端均為計(jì)算機(jī),其間通過互聯(lián)網(wǎng)連接。
2. 發(fā)送端發(fā)出TFRC數(shù)據(jù)包,在未接到ACK包或者ACK包內(nèi)的丟包率為0時(shí), 發(fā)送端加大其發(fā)送速度7;—",通常取前次發(fā)送速度7;^(,^的兩倍和前次接收速 度L,(,-。的兩倍的最小值,即?U,) ^min(2C27^一^),其中前次接收速度7 m、由ACK包告知。
3.接收端接收TFRC數(shù)據(jù)包,同時(shí)計(jì)算前一段時(shí)間的丟包率p,具體計(jì)算過 程如下所示
記4為第i次丟包和第"l次丟包中間的收到的數(shù)據(jù)包的數(shù)目,我們對最近 的8個(gè)4進(jìn)行加權(quán)平均,
其中Wl = w2 = m;3 = w4 = 1, w5 = 0.8 , w6 = 0.6 , w7 = 0.4 , ws = 0.2 ,最后,才尋至,j 前一段時(shí)間的平均丟包率
1
"
4. 接收端將丟包率p的信息通過ACK包返回給發(fā)送端,每收到6個(gè)TFRC數(shù) 據(jù)包返回一個(gè)ACK包(6通常為1或者2 )。
5. 發(fā)送端收到ACK包后,TFRC Veno根據(jù)Veno公式計(jì)算出新的發(fā)送速率, 并以此速度來發(fā)送新的數(shù)據(jù)包
a) S是^:據(jù)包的大小,由協(xié)議預(yù)先設(shè)定。
b ) / 7T是數(shù)據(jù)包往返時(shí)間(round trip t ime ), 發(fā)送端每收到一個(gè)ACK包, 都會(huì)更新當(dāng)前的i 7T值,其計(jì)算公式為
記t為最新一次所測到的數(shù)據(jù)包發(fā)出到其ACK包收到所經(jīng)過的時(shí)間,則
其中"通常取o. 9,由協(xié)議預(yù)先設(shè)定;i n;為當(dāng)前最新的及7T值;及7t;—,為上 一次的/ nM直。
c) p是接收端發(fā)回的丟包率,其計(jì)算過程參見步驟3;
d ) 70 = 4i 7T ;e ) 6是指接收端每收到多少個(gè)數(shù)據(jù)包返回一個(gè)ACK包,通常取1或者2,由 協(xié)議預(yù)先設(shè)定;
f)計(jì)算特征參數(shù)r
i) 《是TCP Veno在判斷丟包是隨機(jī)丟包時(shí)所減小到的速率和原來速率 的比例,通常為0.95,由協(xié)議預(yù)先設(shè)定;
ii) 《是TCP Veno在判斷丟包是擁塞丟包時(shí)所減小到的速率和原來速率 的比例,通常為O. 5,由協(xié)議預(yù)先設(shè)定;
Ui) ^w^7T是傳輸過程中最小的i 7T,每當(dāng)?shù)玫揭粋€(gè)新的W7T,都會(huì)和 原來的S"wi 7T進(jìn)行比較,如果大于或等于原來的5"^/ 7T ,則原來的 ^asd 7T不變,如果小于原來的SawA7T ,則原來的Sase及7T變?yōu)樾碌? 7T 值,即5,及7T, = min(Am^7T'一 , W7T');
iv) e為TCP Veno中使用的常數(shù),通常取3,由協(xié)議預(yù)先設(shè)定;
iv) 『max =65535/5, S是數(shù)據(jù)包的大??;
v) ^由步驟(i) ~ (iv)的參數(shù)算出
Veno公式是根據(jù)模擬TCP Veno的吞吐量行為得到的公式。TCP Veno是一 種在無線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)環(huán)境下都有很好的傳輸性能的TCP網(wǎng)絡(luò)協(xié)議,因此根 據(jù)該公式得出的發(fā)包速率不會(huì)因?yàn)闊o線網(wǎng)絡(luò)的影響而大幅度下降。得到新的發(fā) 包速率7;。,。后,發(fā)送端在下一個(gè)時(shí)刻將按照新的發(fā)包速率發(fā)送TFRC數(shù)據(jù)包。
下面我們以Linux操作系統(tǒng)為例,說明如何利用TFRC Veno協(xié)議發(fā)送數(shù)據(jù)
y = m 2 +(《—《)x
g)最后通過Veno公式得到發(fā)包速率7;TFRC Veno協(xié)議作為一個(gè)系統(tǒng)才莫塊(system module ),位于Linux系統(tǒng)核心 (Linux Kernel )中。當(dāng)安裝Linux操作系統(tǒng)時(shí),用戶可以選擇是否安裝TFRC Veno 協(xié)議模塊。TFRC Veno協(xié)議模塊提供一些網(wǎng)絡(luò)接口函數(shù)(Socket API),以便用 戶在編寫自己的軟件時(shí)調(diào)用。
假定發(fā)送端和接收端的計(jì)算機(jī)都使用Linux操作系統(tǒng),并且都安裝了 TFRC Veno協(xié)議模塊。
發(fā)送端和接收端使用TFRC Veno協(xié)議模塊提供的網(wǎng)絡(luò)接口函數(shù)socket ()來 裝入TFRC Veno協(xié)議模塊以便傳輸數(shù)據(jù)。發(fā)送端有一個(gè)發(fā)送流媒體的軟件,調(diào) 用了 TFRC Veno的網(wǎng)絡(luò)接口函數(shù)listen(),在某個(gè)計(jì)算機(jī)端口 (port),例如 3912,進(jìn)行監(jiān)聽。接收端的用戶有一個(gè)接收流i某體的軟件(通常為媒體播放器), 調(diào)用了 TFRC Veno的網(wǎng)絡(luò)接口函數(shù)recv (),促使接收端的TFRC Veno協(xié)議模塊 便向發(fā)送端的3912號端口請求建立連接。當(dāng)發(fā)送端的TFRC Veno協(xié)議模塊得到 連接請求后,便通知調(diào)用它的上層軟件,該軟件隨后調(diào)用TFRC Veno網(wǎng)絡(luò)接口 函數(shù)send (),由TFRC Veno向接收端以TFRC數(shù)據(jù)包的形式發(fā)送流媒體數(shù)據(jù)。TFRC Veno協(xié)議中的常數(shù),例如數(shù)據(jù)包的大小S等,都由發(fā)送端程序調(diào)用TFRC Veno 網(wǎng)絡(luò)接口函數(shù)setsockopt ()預(yù)先設(shè)置。
注意,這里的網(wǎng)絡(luò)接口函數(shù)的名稱僅為舉例方便,其真實(shí)的名稱在各個(gè)操 作系統(tǒng)中可能有所不同。
在數(shù)據(jù)的發(fā)送過程中,發(fā)送端的TFRC Veno協(xié)議模塊會(huì)根據(jù)Veno公式來計(jì) 算發(fā)包的速度是多少。例如,
發(fā)送端的TFRC Veno接收到接收端返回的ACK包,其中告知網(wǎng)絡(luò)的丟包率; 為0. 1 (接收端對網(wǎng)絡(luò)丟包率p的計(jì)算,參見附圖1的說明);
同時(shí),發(fā)送端的TFRC Veno設(shè)置的TFRC數(shù)據(jù)包的大小為1000字節(jié)(Byte), 6為1,《為0.95,《為0.5, P為3 (各種預(yù)設(shè)參數(shù)的意義,參見附圖1的說 明);
測量得到數(shù)據(jù)包往返時(shí)間(round trip time)及7T為0.1秒(對及7T的計(jì)算,參見附圖1的說明),則r。 =4/ 771為0. 4秒;測量得到傳輸過程中最小的i 7T,即5fl^/ 7T為0. 09 (對5aw/ 7T的計(jì)算, 參見附圖1的說明);計(jì)算L = 65535" = 65535/1000 = 65.535 ;y = m 2 +(《 -《)x-"xi 7T-)=min(0.95,0.5 +(0.95-0.5) x. 3逸10.09) x 65.535 =min(0.95,0.7) =0.7則最后的發(fā)包速率(字節(jié)/秒)為+37; 、 ^z!l^d+3 v)710000 0.7)x(U+3x0 d-0力xO."o +32xV 1 + 0.7 V 2=22576二.實(shí)施例實(shí)施例1: TFRC Veno和TFRC在無線網(wǎng)絡(luò)環(huán)境下的吞吐量的比較(仿真實(shí)驗(yàn))參見圖2,使用網(wǎng)絡(luò)仿真工具NS-2來模擬無線網(wǎng)絡(luò)環(huán)境,并設(shè)定其隨機(jī)丟 包率。在實(shí)驗(yàn)中,發(fā)送端和接收端共建立8條TFRC連接,由發(fā)送端同時(shí)開始傳 輸數(shù)據(jù),時(shí)間為5分鐘,并記下8條連接的平均吞吐量(包/秒),然后發(fā)送端 和接收端共建立8條TFRC Veno連接,發(fā)送端在同樣的環(huán)境傳輸數(shù)據(jù),時(shí)間也 為5分鐘,同樣記下其平均吞吐量,并和TFRC的吞吐量進(jìn)行比較。同樣的實(shí)驗(yàn) 重復(fù)20次,取其平均數(shù)據(jù)和置信度為0.95的置信區(qū)間。我們還將隨機(jī)丟包率 從0. 0001逐步增大到0. 1,重復(fù)以上實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果見圖2。圖2的橫坐標(biāo)表示無線網(wǎng)絡(luò)的丟包率,從0. 0001到0. 1,縱坐標(biāo)表示平均 吞吐量(Throughput ),單位為包/秒(packet/s )。從圖上我們可以看出,當(dāng)無線網(wǎng)絡(luò)的丟包率上升到0. 002后,TFRC Veno的吞吐量便開始大于TFRC。當(dāng)丟 包率達(dá)到0. 1時(shí),TFRC Veno的吞吐量是TFRC的3倍。這i兌明了 TFRC Veno在 無線網(wǎng)絡(luò)中對TFRC的性能有很大的提升。實(shí)施例2: TFRC Veno和TFRC在無線網(wǎng)絡(luò)環(huán)境下的公平性的比較(仿真實(shí)驗(yàn))公平性是指當(dāng)多個(gè)相同協(xié)議的連接同時(shí)傳輸數(shù)據(jù)時(shí),它們應(yīng)該能平等的享 有帶寬。這里我們引用R. Jain的公平指數(shù)(Fairness Index )作為衡量公平 性的標(biāo)準(zhǔn)(R- Jain. "The art of computer systems performance analysis." Wiley, New York, 1991. )。 />平指數(shù)計(jì)算公式如下其中/是公平指數(shù),n為同時(shí)傳輸?shù)倪B接數(shù)目,7;為第i條連接的吞吐量。 其中,公平指數(shù)越接近l,則說明該協(xié)議的公平性越好。圖3給出了 TFRC Veno和TFRC協(xié)議的公平指數(shù)的比較。其實(shí)驗(yàn)環(huán)境和操作 方法和圖2的實(shí)驗(yàn)相同,同樣也用8條TFRC或者8條TFRC Veno來傳輸數(shù)據(jù), 只是每次需要紀(jì)錄的是公平指數(shù)。圖3橫坐標(biāo)表示無線網(wǎng)絡(luò)的丟包率,從0. 0001 到O. 1,縱坐標(biāo)表示公平指數(shù)(Fairness Index )。從圖中可以看出,TFRC Veno 和TFRC的公平指數(shù)基本相同,并且都接近1,說明TFRC Veno的改進(jìn)并沒有犧 牲TFRC的良好的7>平性。實(shí)施例3: TFRC Veno和TFRC在無線網(wǎng)絡(luò)環(huán)境下對其他TCP傳輸?shù)挠押眯?的比較(仿真實(shí)驗(yàn))對其他TCP傳輸?shù)挠押眯允侵?,該協(xié)議和TCP協(xié)議同時(shí)傳輸數(shù)據(jù)時(shí),該協(xié) 議不應(yīng)搶占TCP本該享有的帶寬。之所以考慮和TCP傳輸?shù)挠押眯?,是因?yàn)槿?今互聯(lián)網(wǎng)上大部分的數(shù)據(jù)傳輸都是使用TCP協(xié)議,因此新的協(xié)議不應(yīng)對現(xiàn)有的TCP傳輸造成不良的影響。遺憾的是網(wǎng)絡(luò)界尚未定義一個(gè)能被普遍接受的關(guān)于友好性的指標(biāo),我們使用如下方法觀察友好性實(shí)驗(yàn)環(huán)境和操作方法與圖2的實(shí)驗(yàn)相同。首先讓8條TCP Sack連接傳輸數(shù)據(jù),時(shí)間是5分鐘,并記錄其平均吞吐量rArawg; ;w,^。 TCP Sack (TCP with Selected Acknowledgement)是當(dāng)前應(yīng)用最廣泛的一種TCP協(xié)i義。然后將其中 的4條連接替換成TFRC,重新傳輸數(shù)據(jù),時(shí)間仍為5分鐘,并記錄剩下的4條TCP連接的平均吞吐量772TO昭/z^d,,如果^o"g^《聰咖,的值接近1,則說明J7 ra艱—嚴(yán)用TFRC代替TCP連接并沒有影響剩下的TCP連接,TFRC對TCP傳輸是友好的。 我們用同樣的方法對TFRC Veno進(jìn)行觀察,并和TFRC進(jìn)行比4支。圖4給出了 TFRC Veno和TFRC協(xié)議對TCP傳輸?shù)挠押眯缘谋容^,橫坐標(biāo)表示無線網(wǎng)絡(luò)的丟包率,從0. 0001到0. 1,縱坐標(biāo)表示^w"g^《。e贈(zèng)"'的值。從圖中可以看出,TFRC Veno和TFRC的r/iro"g——"(的值基本相同,并且都接近1 ,77z簡g—拜說明TFRC Veno的改進(jìn)并沒有犧牲TFRC的良好的對TCP傳輸?shù)挠押眯?。?shí)施例4: TFRC Veno和TFRC在無線網(wǎng)絡(luò)環(huán)境下傳輸?shù)钠椒€(wěn)性的比較(仿 真實(shí)驗(yàn))傳輸?shù)钠椒€(wěn)性是指該協(xié)議單位時(shí)間發(fā)出的數(shù)據(jù)包數(shù)目應(yīng)該保持平穩(wěn),這對 于實(shí)時(shí)的流媒體協(xié)議尤其重要,因?yàn)榘l(fā)包過程中的時(shí)快時(shí)慢會(huì)對用戶觀看媒體 造成不良的影響。這里我們引用TFRC作者在其論文中使用的CoV (Coefficient of Variation)來作為衡量平穩(wěn)性的標(biāo)準(zhǔn),其計(jì)算方法如下l+「If 、 1-—1、一》'其中x,為每0. 1秒鐘TFRC發(fā)出的數(shù)據(jù)包數(shù)目,n指總共紀(jì)錄了多少個(gè)0. 1 秒。CoV越小,則表明發(fā)送的平穩(wěn)性越好。本實(shí)驗(yàn)的實(shí)驗(yàn)環(huán)境和操作方法與圖2的實(shí)驗(yàn)相同。首先讓8條TFRC連接傳 輸數(shù)據(jù),時(shí)間是5分鐘,并記錄其平均CoV。然后換成TFRC Veno,重新傳輸數(shù) 據(jù),時(shí)間仍為5分鐘,并記錄其CoV,并于TFRC的進(jìn)行比較。圖5給出了 TFRC Veno和TFRC協(xié)議對TCP傳輸?shù)钠椒€(wěn)性的比較,橫坐標(biāo)表 示無線網(wǎng)絡(luò)的丟包率,從0. 0001到0. 1,縱坐標(biāo)表示CoV的值。從圖中可以看 出,TFRC Veno和TFRC的CoV的值基本相同,甚至在隨機(jī)丟包率較大時(shí)比TFRC 的CoV還要小,說明TFRC Veno的改進(jìn)并沒有犧牲TFRC良好的傳輸平穩(wěn)性。實(shí)施例5: TFRC Veno和TFRC在無線網(wǎng)絡(luò)環(huán)境下的吞吐量,接受成功率, 發(fā)送平穩(wěn)性的比較(Internet實(shí)驗(yàn))我們在香港和新加坡分別搭建發(fā)送端和接收端,在新加坡的接收端通過無 線接入網(wǎng)聯(lián)接Internet。我們在一天的不同時(shí)#殳(9: 00 10:00, 11:00 12:00, 13:0014:00, 15:0016:00, 17:0018:00, 22:00 23: 00 ),同時(shí)用1條TFRC和1條TFRC Veno傳輸數(shù)據(jù),并紀(jì)錄其吞吐量,接受 成功率(指收到的包占發(fā)送的包的百分比)和CoV,并進(jìn)行比較。該實(shí)驗(yàn)重復(fù)一 個(gè)星期。表l給出了其中一天的數(shù)據(jù)。表l TFRC Veno和TFRC在無線網(wǎng)絡(luò)環(huán)境下的吞吐量,接受成功率,發(fā)送 平穩(wěn)性的比較(Internet實(shí)驗(yàn))TFROTFRC Veno7i縦5/船9;00 1謹(jǐn)U:0(K'12:(K)13:00 14:0024SO/324化72037. ,13CX7亂Si0,71/0.730丄W,J7(》27/0,220,職240,34/0.29從表1中可以看出,TFRC Veno的吞吐量在大多數(shù)情況來說要比TFRC高出 30°/ -- 70%。而在接收成功率和CoV兩項(xiàng)指標(biāo)上,則沒有什么差別。這再次說明了 TFRC Veno在提高TFRC傳輸性能的同時(shí),沒有犧牲TFRC的其他優(yōu)點(diǎn)。實(shí)施例6: TFRC Veno和TFRC在無線網(wǎng)絡(luò)環(huán)境下的對TCP傳輸?shù)挠押眯缘?比較(Internet實(shí)驗(yàn))在同實(shí)施例5相同的Internet實(shí)驗(yàn)環(huán)境下做了 TFRC和TFRC Veno對TCP 傳輸?shù)挠押眯缘膶Ρ?。我們在一天的不同時(shí)段(10: 30 11:30, 13:30 14:30, 16:30 17:30, 19:30 20:30, 21:30 22:30 ),同時(shí)使用l條 TFRC Veno + 1條TCP Sack的組合,1條TFRC + 1條TCP Sack的組合,和1 條TCP Sack + 1條TCP Sack的組合來傳輸數(shù)據(jù),并紀(jì)錄每個(gè)連接的吞吐量, 并進(jìn)行比較。該實(shí)驗(yàn)重復(fù)一個(gè)星期。表2給出了其中一天的數(shù)據(jù)。表2 TFRC Veno和TFRC在無線網(wǎng)絡(luò)環(huán)境下的對TCP傳輸?shù)挠押眯缘谋容^ (Internet實(shí)驗(yàn))71順* SZ謝10:30~i〗:3013:30 14:.W16:30 17:301 ^ 一 '差 一t柳.8/ll.".31657.5/125"2038.7/1202.52212,3/1357.81762,5/1224,5t4ft2 3/i 340,01609.8/1525.31435.5/1349.0隨mn 02t.8B64.&'1404.81299.0/130,81225,3/鵬,8從表2中可以看出,TFRC Veno的吞吐量在大多數(shù)情況來說要比TFRC高20% —50%,而與此同時(shí),TCP Sack連接并沒有因?yàn)門FRC或者TFRC Veno的存在而 降低吞吐量。這說明了 TFRC Veno和TFRC都有纟艮好的對TCP傳輸?shù)挠押眯浴?br>
權(quán)利要求
1.一種同時(shí)適用于有線和無線網(wǎng)絡(luò)的實(shí)時(shí)流媒體傳輸協(xié)議的方法,其特征在于有以下步驟a.發(fā)送端發(fā)出TFRC數(shù)據(jù)包;b.接收端接收TFRC數(shù)據(jù)包,同時(shí)計(jì)算前一段時(shí)間的丟包率p,c.接收端將丟包率p的信息通過ACK包返回給發(fā)送端,每收到b個(gè)TFRC數(shù)據(jù)包返回一個(gè)ACK包;d.發(fā)送端收到ACK包后,TFRC根據(jù)下式計(jì)算出新的發(fā)送速率Tcalc,<maths id="math0001" num="0001" ><math><![CDATA[ <mrow><msub> <mi>T</mi> <mi>calc</mi></msub><mo>=</mo><mfrac> <mi>S</mi> <mrow><mi>RTT</mi><msqrt> <mfrac><mrow> <mn>2</mn> <mi>b</mi> <mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>γ</mi><mo>)</mo> </mrow> <mi>p</mi></mrow><mrow> <mn>1</mn> <mo>+</mo> <mi>γ</mi></mrow> </mfrac></msqrt><mo>+</mo><mn>3</mn><msub> <mi>T</mi> <mn>0</mn></msub><msqrt> <mfrac><mrow> <mi>b</mi> <mrow><mo>(</mo><mn>1</mn><mo>-</mo><msup> <mi>γ</mi> <mn>2</mn></msup><mo>)</mo> </mrow> <mi>p</mi></mrow><mn>2</mn> </mfrac></msqrt><mi>p</mi><mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <mn>32</mn> <msup><mi>p</mi><mn>2</mn> </msup> <mo>)</mo></mrow> </mrow></mfrac> </mrow>]]></math></maths>式中S為TFRC新的數(shù)據(jù)包的大小,RTT為數(shù)據(jù)包往返時(shí)間,b為接收端每收到1個(gè)數(shù)據(jù)包返回一個(gè)ACK包,p是接收端發(fā)回的丟包率,T0=4RTT,γ為本發(fā)明對TCP Veno建模所得到的特征參數(shù),e.發(fā)送端在下一個(gè)時(shí)刻按照新的發(fā)包速率發(fā)送TFRC數(shù)據(jù)包。
2. 根據(jù)權(quán)利要求1所述的同時(shí)適用于有線和無線網(wǎng)絡(luò)的實(shí)時(shí)流媒體傳輸協(xié)議的方法,其特征在于丟包率;^i,其中7第/ —l次丟包的加權(quán)平均值。
3. 根據(jù)權(quán)利要求1所述的同時(shí)適用于有線和無線網(wǎng)絡(luò)的實(shí)時(shí)流媒體傳輸協(xié) 議的方法,其特征在于對TCP Veno建模所得到的特征參數(shù);K的計(jì)算公式為<formula>formula see original document page 2</formula>式中,《為TCP Veno在判斷丟包是隨機(jī)丟包時(shí)所減小到的速率和原來速率 的比例,《為TCP Veno在判斷丟包是擁塞丟包時(shí)所減小到的速率和原來速率的 比例,5"Mi 7T為傳輸過程中最小的及7T,『max =65535/S, S為數(shù)據(jù)包的大小, |3為TCP Veno中使用的常數(shù),通常取3。
全文摘要
本發(fā)明涉及一種同時(shí)適用于有線和無線網(wǎng)絡(luò)的實(shí)時(shí)流媒體傳輸協(xié)議的方法,其特征在于有以下步驟a.發(fā)送端發(fā)出TFRC數(shù)據(jù)包;b.接收端接收TFRC數(shù)據(jù)包,同時(shí)計(jì)算前一段時(shí)間的丟包率p,c.接收端將丟包率p的信息通過ACK包返回給發(fā)送端,每收到b個(gè)TFRC數(shù)據(jù)包返回一個(gè)ACK包;d.發(fā)送端收到ACK包后,TFRC根據(jù)Veno公式計(jì)算出新的發(fā)送速率T<sub>calc</sub>。采用本發(fā)明方法,使TFRCVeno具有在無線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)良好的傳輸性能,在大幅度提高TFRC在無線網(wǎng)絡(luò)中的性能同時(shí),又保證了TFRC的公平性和對其他TCP傳輸?shù)挠押眯?,并且有簡單快捷,成本低的?yōu)點(diǎn)。
文檔編號H04L29/06GK101557273SQ20081006955
公開日2009年10月14日 申請日期2008年4月11日 優(yōu)先權(quán)日2008年4月11日
發(fā)明者傅承鵬, 斌 周, 李安國 申請人:傅承鵬