文獻(xiàn)標(biāo)識碼: A
章編號: 0258-7998(2013)09-0109-03
互聯(lián)網(wǎng)采用TCP和UDP兩種協(xié)議,在網(wǎng)絡(luò)擁塞的情況下,,UDP數(shù)據(jù)流幾乎占用了所有網(wǎng)絡(luò)帶寬,,而TCP數(shù)據(jù)流則幾乎停止工作,影響相關(guān)應(yīng)用正常運行,。因此,,如何實現(xiàn)UDP數(shù)據(jù)流和TCP數(shù)據(jù)流的公平性是一個迫切需要解決的問題。
IP電話視頻會議等多媒體網(wǎng)絡(luò)應(yīng)用采用實時性較強(qiáng)的UDP傳輸數(shù)據(jù),。UDP是一種無連接協(xié)議,,在傳輸速度上占有一定優(yōu)勢,但它缺乏擁塞控制機(jī)制,,傳輸可靠性差,。因此如何在UDP中解決擁塞控制從而提高傳輸可靠性是另一個迫切需要解決的問題。
因此,,本文提出解決上述兩個問題的方案,,即UDP根據(jù)丟包率來判斷網(wǎng)絡(luò)的擁塞情況,若出現(xiàn)網(wǎng)絡(luò)擁塞,,接收方則通知控制方調(diào)整發(fā)送速率從而有效解決公平性問題和UDP的擁塞控制問題,。
1 FFUDP實現(xiàn)方案
FFUDP的創(chuàng)新之處在于接收方收到發(fā)送方發(fā)送的數(shù)據(jù)消息后,不像TCP那樣頻繁返回確認(rèn)消息即可控制發(fā)送速率,,從而提高帶寬利用率和數(shù)據(jù)包傳輸效率,。
FFUDP包括兩個部分:局部調(diào)整算法和全局調(diào)整算法。前者根據(jù)接收方本次接收數(shù)據(jù)消息的序列號和前一次接收的差值得到丟包數(shù)(局部丟包數(shù))來調(diào)整發(fā)送方的數(shù)據(jù)發(fā)送率,。后者根據(jù)接收方開始接收數(shù)據(jù)消息到本次接收消息結(jié)束這段時間內(nèi)產(chǎn)生的丟包數(shù)(全局丟包數(shù))來調(diào)整數(shù)據(jù)發(fā)送率。
前期工作發(fā)現(xiàn):獨立使用局部調(diào)整算法導(dǎo)致丟包率抖動,,而獨立使用全局調(diào)整算法則解決公平性的效果不理想,。在FFUDP中,局部調(diào)整算法控制接收方發(fā)送通知消息的周期,,全局調(diào)整算法控制發(fā)送方發(fā)送速率,。
1.1 FFUDP協(xié)議的協(xié)議頭
FFUDP通過實時監(jiān)測網(wǎng)絡(luò),定時給發(fā)送端發(fā)送通知消息來解決公平性和擁塞控制問題,。本文新增的FFUDP協(xié)議頭字段,,如圖1所示。
1.3 FFUDP協(xié)議實現(xiàn)機(jī)制
FFUDP的實現(xiàn)機(jī)制分為以下兩種情況。
1.3.1 提高發(fā)送級別的通知消息
如果發(fā)送方發(fā)送的數(shù)據(jù)全部被接收方接收,,則接收方向發(fā)送方發(fā)送提高發(fā)送速率的通知消息,。雙方通信過程如圖4所示。
(1)發(fā)送方A依次發(fā)送數(shù)據(jù)包M1和M2,,M2到達(dá)接收方B后,,接收方B開始發(fā)送通知消息Notify1,其負(fù)載為降低之后的發(fā)送級別,。
(2)接收方B發(fā)送通知消息Notify1后,,降低發(fā)送速率,并根據(jù)降低后的發(fā)送速率發(fā)送后期的數(shù)據(jù)包M3,。
如果接收方發(fā)送的通知消息丟失,,那么發(fā)送方不改變發(fā)送速率。
2 仿真實驗與性能分析
仿真工具采用NS-2,,網(wǎng)絡(luò)帶寬為4 Mb/s,,鏈路延遲為5 ms,隊列長度為20,。網(wǎng)絡(luò)中的發(fā)送節(jié)點分別發(fā)送TCP,、UDP、FFUDP三種數(shù)據(jù)流,。為了保持公平性,,三種數(shù)據(jù)流所處的網(wǎng)絡(luò)環(huán)境完全一致。
2.1 公平性分析
為了測試FFUDP和TCP的友好性,,數(shù)據(jù)流只包含TCP/ FFUDP,。
如圖6所示,兩種數(shù)據(jù)流都不斷調(diào)整自己的發(fā)送速率,。8 s后,,兩者漸漸趨于平衡,保持一個相對平衡的趨勢,。但FFUDP數(shù)據(jù)流的吞吐量高于TCP,,這是因為TCP對任一數(shù)據(jù)消息都返回確認(rèn)消息,從而實現(xiàn)可靠傳輸,。FFUDP則是定期發(fā)送通知消息,,所以,F(xiàn)FUDP數(shù)據(jù)流的吞吐量略高于TCP數(shù)據(jù)流,,但兩者保持一個相對平穩(wěn)的趨勢,,因此保證了相對公平性。
如圖6,、圖7所示,,丟包率與吞吐量成反比,。初始階段,TCP/FFUDP數(shù)據(jù)流的吞吐量很高,,但丟包率很低,。同樣,經(jīng)過8 s左右的調(diào)整,,兩種數(shù)據(jù)流的丟包率出現(xiàn)穩(wěn)定的趨勢,,但是FFUDP的丟包率比TCP的丟包率低。這是由于TCP的重傳確認(rèn)機(jī)制占用的網(wǎng)絡(luò)資源增加了丟棄數(shù)據(jù)的概率,。相比,,F(xiàn)FUDP不采用重傳確認(rèn)機(jī)制,降低了丟棄數(shù)據(jù)的概率,。從圖7可以看出,, FFUDP協(xié)議達(dá)到了FFUDP/TCP數(shù)據(jù)流友好公平的目的。
2.2 擁塞控制分析
為了測試FFUDP的擁塞控制功能,,在原來的配置下,,分別設(shè)置兩條FFUDP/UDP數(shù)據(jù)流,以測試FFUDP比UDP更具有可靠性,。如圖8所示,,F(xiàn)FUDP的吞吐量比UDP高很多。UDP的低吞吐量可能導(dǎo)致服務(wù)癱瘓,。而FFUDP通過調(diào)整發(fā)送速率有效控制了網(wǎng)絡(luò)擁塞,,達(dá)到了提高吞吐量的目的。
如圖9所示,,UDP丟包率遠(yuǎn)高于FFUDP,致使接收數(shù)據(jù)存在不完整性,。FFUDP大幅度降低了丟包率,實現(xiàn)了可靠傳輸,。
本文提出了FFUDP以解決UDP與TCP數(shù)據(jù)流公平性問題,以及UDP傳輸可靠性問題,。仿真數(shù)據(jù)表明,F(xiàn)FUDP協(xié)議實現(xiàn)了不同數(shù)據(jù)流之間的公平性,,在網(wǎng)絡(luò)資源緊張的情況下,能夠有效控制網(wǎng)絡(luò)擁塞從而實現(xiàn)傳輸可靠性,。
參考文獻(xiàn)
[1] 朱利, 周俊輝, 鄭守淇,等. 基于RTT的自適應(yīng)擁塞控制研究[J]. 計算機(jī)學(xué)報,2000,23(7):705-710.
[2] 李如瑋, 鮑長春. VoIP丟包處理技術(shù)的研究進(jìn)展[J].通信學(xué)報, 2007,28(6):103-110.
[3] 李強(qiáng), 張新榮. 基于延遲抖動分析的TCP友好擁塞控制算法[J]. 計算機(jī)工程與科學(xué), 2007,29(6):18-20.
[4] 王國棟, 任勇毛, 李俊. 多重慢啟動TCP協(xié)議研究[J].微電子學(xué)與計算機(jī), 2011,28(3):178-181.
[5] 張藝瀕, 張志斌, 趙詠,等. TCP與UDP網(wǎng)絡(luò)流量對比分析研究[J].計算機(jī)應(yīng)用研究, 2010,27(6):2192-2197.
[6] 靳海力, 李俊. 具有補(bǔ)發(fā)機(jī)制的增強(qiáng)型可靠UDP的實現(xiàn)[J]. 小型微型計算機(jī)系統(tǒng), 2010,31(5):904-907.
[7] POSTEL J. User datagram protocol[S]. RFC 768. 1980.
[8] VELTEN D. Reliable data protocol[S]. RFC908. 1984.
[9] 方路平,劉世華,陳盼,等.NS-2網(wǎng)絡(luò)模擬基礎(chǔ)與應(yīng)用[M].北京:國防工業(yè)出版社,2008.
[10] TANENBAUM A S. Computer network(fourth edition)[M].Prentice Hall PTR,,2004.11.
[11] STEVENS W R. TCP/IP詳解卷1:協(xié)議[M]. 北京:機(jī)械工業(yè)出版社, 2000.
[13] STEVENS W R. TCP/IP詳解卷2:實現(xiàn)[M]. 北京:機(jī)械工業(yè)出版社, 2004.