秦斌
摘要:該文主要針對(duì)TC-TFRC中可容忍計(jì)時(shí)器固定設(shè)置所存在的缺陷,通過(guò)引入速率差來(lái)判斷網(wǎng)絡(luò)擁塞狀況,并以此動(dòng)態(tài)設(shè)置可容忍暫態(tài)計(jì)時(shí)器的計(jì)時(shí)時(shí)間。通過(guò)實(shí)驗(yàn)表明,在網(wǎng)絡(luò)輕微擁塞時(shí),改進(jìn)的ETFRC策略能夠以流媒體最低播放速率傳輸數(shù)據(jù),在保證不引發(fā)更嚴(yán)重的網(wǎng)絡(luò)擁塞的情況下,保證流媒體的正常播放;當(dāng)網(wǎng)絡(luò)發(fā)生嚴(yán)重?fù)砣麜r(shí),ETFRC通過(guò)對(duì)網(wǎng)絡(luò)現(xiàn)狀的檢測(cè),在更短的時(shí)間內(nèi)終止了低于流媒體最低播放速率的無(wú)效數(shù)據(jù)傳輸,避免造成個(gè)更大的網(wǎng)絡(luò)擁塞,比TC-TRFC具有更好的TCP友好性。
關(guān)鍵詞:TCP友好;擁塞控制;TC-TFRC;ETFRC
中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)08-1819-04
目前大部分網(wǎng)絡(luò)上大部分的流媒體都采用UDP協(xié)議傳輸,UDP這種非可靠性、面向非連接的機(jī)制缺乏擁塞控制,因此當(dāng)網(wǎng)絡(luò)擁塞時(shí),UDP并不會(huì)像遵守?fù)砣刂频腡CP流一樣減少發(fā)送的數(shù)據(jù),使得網(wǎng)絡(luò)中的TCP流越來(lái)越少,而UDP流越來(lái)越多,加重網(wǎng)絡(luò)擁塞,甚至造成網(wǎng)絡(luò)崩潰。UDP這這種非TCP用好的帶寬占用機(jī)制也限制了UDP協(xié)議在流媒體傳輸中的進(jìn)一步發(fā)展。人們也把即滿足流媒體傳輸需求,又能和TCP流公平共享帶寬的數(shù)據(jù)傳輸協(xié)議中,對(duì)數(shù)據(jù)流發(fā)送速率的控制稱(chēng)之為T(mén)CP友好擁塞控制。
1 TFRC簡(jiǎn)介
TCP友好擁塞控制機(jī)制根據(jù)網(wǎng)絡(luò)負(fù)載的方式,可以分成基于窗口的TCP友好擁塞控制機(jī)制和基于速率的TCP友好擁塞控制機(jī)制兩大類(lèi),而TFRC(TCP-Friendly Rate Control)目前被公認(rèn)的較好的基于速率的TCP友好擁塞控制機(jī)制?;赥CP吞吐量公式的TFRC是Floyd等人所提出來(lái)的。其主要的思想就是,通過(guò)公式(1)來(lái)進(jìn)行控制,在保持較為穩(wěn)定的數(shù)據(jù)發(fā)送速率的同時(shí),響應(yīng)網(wǎng)絡(luò)擁塞。
[rtcp=Mtrtt2Dl3+toutmin1,33Dl8l1+32l2] (1)
其中,[M]表示發(fā)送數(shù)據(jù)包大小;[tout]是數(shù)據(jù)重傳的超時(shí)時(shí)間,一般設(shè)置為4倍[trtt];[l]是數(shù)據(jù)包丟失率;[D]是接收端確認(rèn)的數(shù)據(jù)包接收個(gè)數(shù),一般設(shè)置為1.
因?yàn)榘l(fā)送速率是由發(fā)送端調(diào)整的,為了能按照吞吐量公式計(jì)算可行的發(fā)送速率,發(fā)送端需要獲取公式中所有參數(shù)的值,其中最主要的是[l]和[trtt]。在 TFRC 中,[trtt]是由發(fā)送端計(jì)算,而[l]則是由接收端計(jì)算后再反饋給發(fā)送端的。發(fā)送端每次收到接收端的反饋信息就使用吞吐量公式重新計(jì)算發(fā)送速率[rtcp],如果當(dāng)前實(shí)際發(fā)送速率比[rtcp]小就增加發(fā)送速率,否則,如果當(dāng)前實(shí)際發(fā)送速率比[rtcp]大,就降低發(fā)送速率至[rtcp]。
理論分析和實(shí)驗(yàn)結(jié)果表明,TFRC 不會(huì)侵略性的搶占帶寬,而是根據(jù)丟失事件率的減小平滑的增加發(fā)送速率,并且,它也不會(huì)因?yàn)閱蝹€(gè)包的丟失而將發(fā)送速率迅速減少造成抖動(dòng),只會(huì)在多個(gè)連續(xù)的丟失事件后才將發(fā)送速率減半。使用TFRC 得到的發(fā)送速率更加適合流媒體傳輸使用。
2 TC-TFRC存在的問(wèn)題
實(shí)驗(yàn)結(jié)果證明,一方面,采用TCP吞吐量公式來(lái)對(duì)數(shù)據(jù)發(fā)送速率進(jìn)行調(diào)整,體現(xiàn)TCP友好性;另一方面,在網(wǎng)絡(luò)輕微擁塞的情況下,仍然能夠保證流媒體數(shù)據(jù)的正常播放。既不想U(xiǎn)DP協(xié)議一樣完全非TCP友好;同時(shí),在網(wǎng)絡(luò)輕微擁塞時(shí),可以保證流媒體的正常播放,解決了TFRC的問(wèn)題。但TC-TFRC任然存在如下的個(gè)方面的不足。
TC-TFRC采用可容忍暫態(tài)計(jì)時(shí)器來(lái)保證TCP友好性,但是固定的時(shí)間設(shè)置方法,導(dǎo)致在網(wǎng)絡(luò)嚴(yán)重?fù)砣闆r下的可容忍暫態(tài)計(jì)時(shí)器的計(jì)時(shí)時(shí)間,與在網(wǎng)絡(luò)輕微擁塞情況下的可容忍暫態(tài)計(jì)時(shí)器的計(jì)時(shí)時(shí)間相同,從而會(huì)導(dǎo)致發(fā)送數(shù)據(jù)過(guò)多,可能會(huì)造成網(wǎng)絡(luò)擁塞狀況的進(jìn)一步惡化。
TC-TFRC在TFRC的基礎(chǔ)上,增加了流媒體數(shù)據(jù)播放最低傳輸速率的閾值,從而在網(wǎng)絡(luò)發(fā)生輕微擁塞時(shí),也能夠保證流媒體數(shù)據(jù)的正常播放,而且TC-TFRC中的可容忍暫態(tài)計(jì)時(shí)器也保證了TCP友好性??扇萑虝簯B(tài)計(jì)時(shí)器的設(shè)置要求TC-TFRC處于Min Rate狀態(tài)下的時(shí)間T在一個(gè)適度的范圍之內(nèi),如果T設(shè)置的時(shí)間過(guò)長(zhǎng),那么當(dāng)網(wǎng)絡(luò)發(fā)生擁塞時(shí),在T時(shí)間內(nèi)仍然按照最大速率發(fā)送數(shù)據(jù),從而占用較多的帶寬,破壞了TC-TFRC的TCP友好性;如果T設(shè)置的時(shí)間過(guò)段,T 3 TC-TFRC的改進(jìn)研究 在TC-TFRC中的可容忍暫態(tài)計(jì)時(shí)器設(shè)置,由于沒(méi)有考慮網(wǎng)絡(luò)擁塞程度的影響,從而導(dǎo)致在網(wǎng)絡(luò)嚴(yán)重堵塞時(shí)會(huì)進(jìn)一步惡化網(wǎng)絡(luò)擁塞情況。針對(duì)這種情況本文在TC-TFRC的基礎(chǔ)上,提出一種ETFRC(Enhanced TCP-Friendly Rate Control)機(jī)制來(lái)進(jìn)行改進(jìn)。 ETFRC主要是對(duì)TC-TFRC中的可容忍暫態(tài)計(jì)時(shí)器計(jì)時(shí)時(shí)間進(jìn)行改進(jìn),改進(jìn)的基本思路如下所示:當(dāng)檢測(cè)到網(wǎng)絡(luò)中的數(shù)據(jù)傳輸速率[rtcp]小于流媒體的最低播放速率[rmin]時(shí),發(fā)送端開(kāi)始進(jìn)入Min Rate狀態(tài),并且根據(jù)網(wǎng)絡(luò)中的擁塞情況,動(dòng)態(tài)設(shè)置可容忍暫態(tài)計(jì)時(shí)器的時(shí)間。 在ETFRC中主要通過(guò)數(shù)據(jù)傳輸時(shí)延間隔、RTT或者丟包率來(lái)確定網(wǎng)絡(luò)的具體擁塞現(xiàn)狀,根據(jù)公式(1)和流媒體的最低播放速率[rmin]來(lái)計(jì)算[rtcp]的差值[rdif]。當(dāng)[rtcp]小于流媒體的最低播放速率[rmin]時(shí)認(rèn)為數(shù)據(jù)傳輸網(wǎng)絡(luò)發(fā)生了擁塞,因此如果[rdif]的值越大,表明網(wǎng)絡(luò)擁塞越嚴(yán)重。除此之外,在ETFRC中還使用了[Tlong]來(lái)表示最長(zhǎng)的“可容忍”時(shí)間,并且令[Tlong=10]。通過(guò)公式(2)和公式(3)來(lái)計(jì)算計(jì)時(shí)時(shí)間[Tlast]。
從公式(2)和公式(3)可以看出在ETFRC中的[Tlast]根據(jù)網(wǎng)絡(luò)中流媒體數(shù)據(jù)的實(shí)際傳輸速率來(lái)進(jìn)行動(dòng)態(tài)設(shè)置的。當(dāng)[rdif]較小時(shí),表明[rmin]和[rtcp]相差不大,網(wǎng)絡(luò)發(fā)生輕微堵塞,則[Tlast]與[Tlong]接近;當(dāng)[rdif]較大時(shí),表明[rmin]和[rtcp]相差較大,網(wǎng)絡(luò)發(fā)生嚴(yán)重堵塞,則[Tlast]會(huì)很?。蝗绻鸞rdif]比[rtcp]更大,說(shuō)明[rtcp]小于[rmin2],網(wǎng)絡(luò)嚴(yán)重?fù)砣?,?yīng)該馬上停止流媒體數(shù)據(jù)的傳播,等待網(wǎng)絡(luò)擁塞恢復(fù)。同時(shí),為了避免網(wǎng)絡(luò)中瞬時(shí)突發(fā)流的干擾,應(yīng)該在至少接收到一個(gè)來(lái)自接收端的反饋后,再進(jìn)行控制,因此令[Tlast=1.2×RTT]。
ETFRC中的可容忍計(jì)時(shí)器時(shí)間設(shè)計(jì)算法如下所示:
其中,[RcvPktHdr]表示接收端反饋包頭;[p]為數(shù)據(jù)包丟失率;[AvgRTT]表示RTT平均時(shí)間,[AvgRTO]表示平均超時(shí)重傳時(shí)間;[rnow]表示數(shù)據(jù)當(dāng)前發(fā)送速率;[MinRateTimer]表示可容忍計(jì)時(shí)器。其中算法1-3行為收集計(jì)算所需要的參數(shù);第4行計(jì)算下數(shù)據(jù)的下一次發(fā)送速率;第5行為條件判斷;6-12行為T(mén)FRC狀態(tài)下,按照TFRC算法調(diào)整數(shù)據(jù)發(fā)送速率;14-22行表示在Min Rate狀態(tài)下,按照最低速率發(fā)送數(shù)據(jù)。
4 性能實(shí)驗(yàn)分析
1)實(shí)驗(yàn)環(huán)境設(shè)置
為了嚴(yán)重改進(jìn)后的ETFRC的性能,通過(guò)三次模擬實(shí)驗(yàn)來(lái)觀察在不同程度的網(wǎng)絡(luò)擁塞情況下,ETFRC的數(shù)據(jù)發(fā)送速率,和TCP友好性。模擬實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示。
在兩次實(shí)驗(yàn)中,網(wǎng)絡(luò)擁塞都是由新加入的多媒體數(shù)據(jù)流所引起的。三次實(shí)驗(yàn)所引發(fā)的網(wǎng)絡(luò)擁塞程度依次加重。第一次實(shí)驗(yàn)中,網(wǎng)絡(luò)輕微擁塞,但是TC-TFRC和ETFRC都沒(méi)有中斷數(shù)據(jù)發(fā)送;在第二次實(shí)驗(yàn)中,網(wǎng)絡(luò)擁塞嚴(yán)重,并且TC-TFRC和ETFRC都中斷了數(shù)據(jù)的發(fā)送。
在實(shí)驗(yàn)過(guò)程中,采用文獻(xiàn)[2]中的TCP友好因子[Fr]來(lái)檢測(cè)TC-TFRC和ETFRC的TCP友好性。
[Fr=TiTj] (4)
其中,[Ti]表示平均吞吐量,[T]表示TCP流的平均吞吐量。
2)性能實(shí)驗(yàn)
① 輕微擁塞模擬
在[t=0]時(shí)刻發(fā)送正常的TCP流和TFRC(或TC-TFRC,或ETFRC)數(shù)據(jù)流,在[t=60]時(shí)刻發(fā)送一個(gè)速率為4Mbps的CBR數(shù)據(jù)流,20秒后停止CBR數(shù)據(jù)流的發(fā)送。本次實(shí)驗(yàn)的結(jié)果如下所示:
如圖2所示,在[t=60]的時(shí)刻,TFRC、TC-TFRC、ETFRC數(shù)據(jù)發(fā)送速率都有降低,都已接近于[rmin]的數(shù)據(jù)傳輸速率發(fā)送數(shù)據(jù),在[t=100]的時(shí)間后,TFRC、TC-TFRC、ETFRC數(shù)據(jù)發(fā)送速率變?yōu)檎?。并且在[[60,80]]時(shí)間內(nèi),TCP流的平均吞吐量并沒(méi)有收到太大的影響,表明ETRC與TFRC和TC-TFRC一樣具有較好的TCP友好性。
② 嚴(yán)重?fù)砣M
在[t=0]時(shí)刻發(fā)送正常的TCP流和TFRC(或TC-TFRC,或ETFRC)數(shù)據(jù)流,在[t=60]時(shí)刻發(fā)送一個(gè)速率為8Mbps的CBR數(shù)據(jù)流,20秒后停止CBR數(shù)據(jù)流的發(fā)送。本次實(shí)驗(yàn)的結(jié)果如下所示:
從圖4和圖5可以看出,在[t=60]的時(shí)刻,由于網(wǎng)絡(luò)擁塞嚴(yán)重,TFRC、TC-TFRC、ETFRC數(shù)據(jù)都以最低速率發(fā)送數(shù)據(jù),但是在[[60,80]]時(shí)間內(nèi)TFRC仍然以低于流媒體最低播放速度進(jìn)行傳輸,形成了無(wú)效傳輸,并且影響了TCP數(shù)據(jù)的傳輸,延遲了網(wǎng)絡(luò)擁塞解決時(shí)間,即TFRC的TCP友好性較差;TC-TFRC和ETFRC都設(shè)置了可容忍計(jì)時(shí)器時(shí)間為10秒,由于慢啟動(dòng)機(jī)制,TC-TFRC在可容忍計(jì)時(shí)器時(shí)間結(jié)束之后的兩秒內(nèi)停止數(shù)據(jù)的發(fā)送,而ETFRC則根據(jù)網(wǎng)絡(luò)實(shí)際的數(shù)據(jù)傳輸效率在網(wǎng)絡(luò)嚴(yán)重?fù)砣蟮?1秒時(shí)停止了數(shù)據(jù)的傳輸,表明ETFRC的TCP友好性要優(yōu)于TC-TFRC機(jī)制的TCP友好性。
5 總結(jié)
本文針對(duì)UDP流媒體數(shù)據(jù)傳輸協(xié)議的非TCP友好性進(jìn)行研究。并針對(duì)Floyd等人提出的TFRC和陳明、王東所提出的的TFRC改進(jìn)機(jī)制—TC-TFRC機(jī)制進(jìn)行研究,指出TC-TFRC機(jī)制在可容忍暫態(tài)計(jì)時(shí)器設(shè)計(jì)方面所存在的不足,并且針對(duì)其中所存在的不足,提出ETFRC機(jī)制。通過(guò)對(duì)網(wǎng)絡(luò)擁塞情況的動(dòng)態(tài)監(jiān)控,更快的終止傳輸速率持續(xù)低于流媒體數(shù)據(jù)播放最低速度的無(wú)效數(shù)據(jù)發(fā)送,從而有利于更快恢復(fù)網(wǎng)絡(luò)擁塞,具有更好的TCP友好性。
通過(guò)引入速率差來(lái)判斷網(wǎng)絡(luò)擁塞狀況并以此動(dòng)態(tài)設(shè)置“可容忍暫態(tài)計(jì)時(shí)器”的計(jì)時(shí)時(shí)間。實(shí)驗(yàn)結(jié)果表明改進(jìn)后的控制機(jī)制能解決 TC-TFRC 固定時(shí)間設(shè)置方式帶來(lái)的多發(fā)送數(shù)據(jù)的問(wèn)題,在網(wǎng)絡(luò)擁塞越嚴(yán)重的情況下改進(jìn)效果越好,有利于網(wǎng)絡(luò)擁塞的解決。
參考文獻(xiàn):
[1] 陳明,王東,基于閾值限定的流媒體 TCP 友好擁塞控制協(xié)議[J].計(jì)算機(jī)工程,2004,30 (11):1184-86.
[2] 楊傳棟,余鎮(zhèn)危,王行剛,等.端到端的流媒體傳輸控制技術(shù)研究綜述[J].計(jì)算機(jī)工程與應(yīng)用,2005(8):26-30.
[3] 邸春紅,逢瀛,于淑玲.流媒體網(wǎng)絡(luò)傳輸中基于速率的控制方法[J].計(jì)算機(jī)應(yīng)用,2004,24(3): 31-33.
[4] 閆友彪,陳元琰,羅曉曙,等.Internet 擁塞控制研究的最新進(jìn)展分析與展望[J].計(jì)算機(jī)應(yīng)用研究,2005(2):8-13.
[5] 吳東,陳元琰,羅曉署,等.具有最小速率的 TCP 友好速率控制機(jī)制[J].計(jì)算機(jī)應(yīng)用研究,2004, 24(3):31-33.
[6] 盧利瓊,吳東,羅曉署,等.高帶寬長(zhǎng)時(shí)延乘積網(wǎng)絡(luò)中的擁塞控制端算法研究[J].計(jì)算機(jī)應(yīng)用研究,2006,23(3).