《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 一種基于UDP的擁塞控制方案
一種基于UDP的擁塞控制方案
來源:電子技術(shù)應(yīng)用2013年第9期
黃海利1,2, 王曉喃2
1. 中國礦業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 徐州 221008; 2. 常熟理工學(xué)院 計(jì)算機(jī)科學(xué)與工程學(xué)院,江蘇 常熟 215500
摘要: 實(shí)現(xiàn)UDP和TCP數(shù)據(jù)流的公平性以及在UDP中解決擁塞控制從而保證傳輸可靠性是提高服務(wù)質(zhì)量所面臨的兩個(gè)迫切需要解決的問題。提出一種解決上述兩個(gè)問題的方案——FFUDP(Friend and Fair UDP),即UDP根據(jù)丟包率來判斷網(wǎng)絡(luò)的擁塞情況,如果網(wǎng)絡(luò)擁塞,接收方通知發(fā)送方調(diào)整發(fā)送速率從而有效解決公平性問題以及UDP的擁塞控制問題。仿真結(jié)果表明,F(xiàn)FUDP大幅度提高了數(shù)據(jù)吞吐量,降低了丟包率,實(shí)現(xiàn)了與TCP數(shù)據(jù)流的公平性。
中圖分類號(hào): TP393.04
文獻(xiàn)標(biāo)識(shí)碼: A
章編號(hào): 0258-7998(2013)09-0109-03
An UDP-based congestion control scheme
Huang Haili1,2, Wang Xiaonan2
1. China University of Mining and Technology, Xuzhou 221008, China; 2. Changshu Institute of Technology, Changshu 215500, China
Abstract: The quality of service is confronted with two challenges. One is how to achieve the fairness of TCP and UDP, and the other is how to solve the congestion control in order to improve the transmission reliability. This paper presents a solution FFUDP(Friend and Fair UDP) to address the two problems. FFUPD determines the network congestion state based on the packet loss rate. If the network congestion is detected, then the receiver notifies the sender of adjusting the transmission rate to effectively address the fairness and UDP congestion control. The simulation results show that FFUDP substantial increases the throughput and reduces the packet loss rate, and moreover the fairness of FFUDP and TCP is achieved.
Key words : TCP; UDP; congestion control; fairness; packet loss rate

    互聯(lián)網(wǎng)采用TCPUDP兩種協(xié)議,在網(wǎng)絡(luò)擁塞的情況下,UDP數(shù)據(jù)流幾乎占用了所有網(wǎng)絡(luò)帶寬,而TCP數(shù)據(jù)流則幾乎停止工作,影響相關(guān)應(yīng)用正常運(yùn)行。因此,如何實(shí)現(xiàn)UDP數(shù)據(jù)流和TCP數(shù)據(jù)流的公平性是一個(gè)迫切需要解決的問題。

    IP電話視頻會(huì)議等多媒體網(wǎng)絡(luò)應(yīng)用采用實(shí)時(shí)性較強(qiáng)的UDP傳輸數(shù)據(jù)。UDP是一種無連接協(xié)議,在傳輸速度上占有一定優(yōu)勢,但它缺乏擁塞控制機(jī)制,傳輸可靠性差。因此如何在UDP中解決擁塞控制從而提高傳輸可靠性是另一個(gè)迫切需要解決的問題。
     因此,本文提出解決上述兩個(gè)問題的方案,即UDP根據(jù)丟包率來判斷網(wǎng)絡(luò)的擁塞情況,若出現(xiàn)網(wǎng)絡(luò)擁塞,接收方則通知控制方調(diào)整發(fā)送速率從而有效解決公平性問題和UDP的擁塞控制問題。
1 FFUDP實(shí)現(xiàn)方案
        FFUDP的創(chuàng)新之處在于接收方收到發(fā)送方發(fā)送的數(shù)據(jù)消息后,不像TCP那樣頻繁返回確認(rèn)消息即可控制發(fā)送速率,從而提高帶寬利用率和數(shù)據(jù)包傳輸效率。
       FFUDP包括兩個(gè)部分:局部調(diào)整算法和全局調(diào)整算法。前者根據(jù)接收方本次接收數(shù)據(jù)消息的序列號(hào)和前一次接收的差值得到丟包數(shù)(局部丟包數(shù))來調(diào)整發(fā)送方的數(shù)據(jù)發(fā)送率。后者根據(jù)接收方開始接收數(shù)據(jù)消息到本次接收消息結(jié)束這段時(shí)間內(nèi)產(chǎn)生的丟包數(shù)(全局丟包數(shù))來調(diào)整數(shù)據(jù)發(fā)送率。
    前期工作發(fā)現(xiàn):獨(dú)立使用局部調(diào)整算法導(dǎo)致丟包率抖動(dòng),而獨(dú)立使用全局調(diào)整算法則解決公平性的效果不理想。在FFUDP中,局部調(diào)整算法控制接收方發(fā)送通知消息的周期,全局調(diào)整算法控制發(fā)送方發(fā)送速率。
1.1 FFUDP協(xié)議的協(xié)議頭
    FFUDP通過實(shí)時(shí)監(jiān)測網(wǎng)絡(luò),定時(shí)給發(fā)送端發(fā)送通知消息來解決公平性和擁塞控制問題。本文新增的FFUDP協(xié)議頭字段,如圖1所示。

1.3 FFUDP協(xié)議實(shí)現(xiàn)機(jī)制
       FFUDP的實(shí)現(xiàn)機(jī)制分為以下兩種情況。
1.3.1 提高發(fā)送級(jí)別的通知消息
     如果發(fā)送方發(fā)送的數(shù)據(jù)全部被接收方接收,則接收方向發(fā)送方發(fā)送提高發(fā)送速率的通知消息。雙方通信過程如圖4所示。

 

 

    (1)發(fā)送方A依次發(fā)送數(shù)據(jù)包M1和M2,M2到達(dá)接收方B后,接收方B開始發(fā)送通知消息Notify1,其負(fù)載為降低之后的發(fā)送級(jí)別。
    (2)接收方B發(fā)送通知消息Notify1后,降低發(fā)送速率,并根據(jù)降低后的發(fā)送速率發(fā)送后期的數(shù)據(jù)包M3。
    如果接收方發(fā)送的通知消息丟失,那么發(fā)送方不改變發(fā)送速率。
2 仿真實(shí)驗(yàn)與性能分析
     仿真工具采用NS-2,網(wǎng)絡(luò)帶寬為4 Mb/s,鏈路延遲為5 ms,隊(duì)列長度為20。網(wǎng)絡(luò)中的發(fā)送節(jié)點(diǎn)分別發(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后,兩者漸漸趨于平衡,保持一個(gè)相對(duì)平衡的趨勢。但FFUDP數(shù)據(jù)流的吞吐量高于TCP,這是因?yàn)門CP對(duì)任一數(shù)據(jù)消息都返回確認(rèn)消息,從而實(shí)現(xiàn)可靠傳輸。FFUDP則是定期發(fā)送通知消息,所以,F(xiàn)FUDP數(shù)據(jù)流的吞吐量略高于TCP數(shù)據(jù)流,但兩者保持一個(gè)相對(duì)平穩(wěn)的趨勢,因此保證了相對(duì)公平性。


    如圖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大幅度降低了丟包率,實(shí)現(xiàn)了可靠傳輸。

    本文提出了FFUDP以解決UDP與TCP數(shù)據(jù)流公平性問題,以及UDP傳輸可靠性問題。仿真數(shù)據(jù)表明,F(xiàn)FUDP協(xié)議實(shí)現(xiàn)了不同數(shù)據(jù)流之間的公平性,在網(wǎng)絡(luò)資源緊張的情況下,能夠有效控制網(wǎng)絡(luò)擁塞從而實(shí)現(xiàn)傳輸可靠性。
參考文獻(xiàn)
[1] 朱利, 周俊輝, 鄭守淇,等. 基于RTT的自適應(yīng)擁塞控制研究[J]. 計(jì)算機(jī)學(xué)報(bào),2000,23(7):705-710.
[2] 李如瑋, 鮑長春. VoIP丟包處理技術(shù)的研究進(jìn)展[J].通信學(xué)報(bào), 2007,28(6):103-110.
[3] 李強(qiáng), 張新榮. 基于延遲抖動(dòng)分析的TCP友好擁塞控制算法[J]. 計(jì)算機(jī)工程與科學(xué), 2007,29(6):18-20.
[4] 王國棟, 任勇毛, 李俊. 多重慢啟動(dòng)TCP協(xié)議研究[J].微電子學(xué)與計(jì)算機(jī), 2011,28(3):178-181.
[5] 張藝瀕, 張志斌, 趙詠,等. TCP與UDP網(wǎng)絡(luò)流量對(duì)比分析研究[J].計(jì)算機(jī)應(yīng)用研究, 2010,27(6):2192-2197.
[6] 靳海力, 李俊. 具有補(bǔ)發(fā)機(jī)制的增強(qiáng)型可靠UDP的實(shí)現(xiàn)[J]. 小型微型計(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:實(shí)現(xiàn)[M]. 北京:機(jī)械工業(yè)出版社, 2004.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。