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