摘要:從上個世紀80年代末Jacobson提出TCP的擁塞控制算法到現在,其算法經過不斷發展和完善,在傳統網絡中具有優良的性能。但是,隨著目前網絡性能和網絡環境的巨大變化,大量的試驗和分析證明傳統的控制算法(AIMD)并不適用于高速率、大延時的網絡中的大塊數據傳送以及其他一些新出現的網絡應用,如網格、多媒體數據傳輸等。在這篇文章中,我們將回顧和比較一些目前新出現的TCP代替協議,它們試圖從不同的方面來解決上述問題。我們認為,在高性能網絡中這些新的協議將有可能代替現有的TCP協議棧。
關鍵詞:通信技術;TCP;綜述;擁塞控制;FAST TCP;XCP
中圖分類號:TN510.50文獻標識碼:A文章編號:1009-3044(2008)26-1693-05
A Survey on Several Transmission Control Protocols in High-speed Networks
JIA Yu1, LI Ya-qin2
(1. Department of Computer and Information Engineering, Wuhan Polytechnic University, Wuhan 430023, China; 2. Institute for Pattern recognition Artificial Intelligence, Huazhong University of Science and Technology, Wuhan 430074, China)
Abstract: TCP congestion control algorithms, proposed by Jacobson at the end of 1980s, have undergone a continuous development and improvement, and have shown good performance in the traditional networks. However, with the change of environments in networks, a lot of experiments and analyses demonstrate that the traditional control algorithm of AIMD may not be efficient for the transmission of block data in networks with high sending rate and large delay, it inherits limitations for new applications of networks such as grid, multimedia applications and so on. In this paper, we will review some recent developments of alternatives of TCP and compare their performance. On the basis of comprehensive analyses, we draw a conclusion that these new protocols may replace the current TCP in the networks to achieve high performance.
Key words: communication technique; TCP; survey; congestion control; FAST TCP
1 引言
在現有的Internet 體系結構中,網絡中擁塞控制和擁塞避免的過程主要是由傳輸層的協議來實現的,更高層的協議調用傳輸層的協議來實現網絡的應用。因此,傳輸層的協議對整個網絡的性能有著很大的影響。傳輸層的協議最常用的是UDP和TCP協議,UDP協議可以提供定速率的無連接服務,它自身并沒有提供發送速率控制機制。我們這里主要討論的對象是提供可靠數據流傳輸服務的TCP,并且我們將注意力主要放在TCP協議及其代替協議中的擁塞控制算法上。
我們把TCP的窗口控制算法看成是一個復雜的反饋系統,發送端根據網絡的反饋信息來調節下一時刻的發送窗口大小。根據得到反饋信息的不同,可以將控制算法分為兩種:①基于丟包的控制算法,如HighSpeed TCP [2];②基于時延的控制算法,如Vegas[3]、FAST TCP[4]。這兩種方法都有各自的特點:前者只提供一個非0即1的信息,它提供的網絡擁塞信息少而且滯后,當接收端發現丟包的時候,網絡的擁塞狀況通常已經比較嚴重了;后者根據網絡延時的變化來調整發送速率。相對而言,網絡時延提供了更多的信息來反映網絡的擁塞情況。但是在復雜的網絡環境中,由于網絡時延的變化比較快,所以發送的速率變化也比較快。
作為傳輸層的擁塞控制算法,首先它應該提供盡可能高的網絡帶寬利用率,這是評價TCP及其代替協議性能的最重要的指標。除此以外,還有協議內公平性、穩定性、響應速度等其他一些指標來比較不同的協議的性能。傳統的TCP的擁塞控制算法(AIMD)如下:(一般cwnd用來表示擁塞窗口):
ack: cwnd=cwnd+1/cwnd
loss: cwnd=cwnd/2 (1)
在高速網絡環境下傳統的AIMD算法已經被證明是低效的,我們給出一個典型的例子:對一個7.2Gbps的鏈路,假定TCP數據包的大小是1500byte,鏈路的RTT(round trip of time)是100ms,一個TCP流發送端的窗口峰值可以到80000,當出現一次丟包事件時,發送端的窗口將減半,那么這個發送端將會用40000個RTT的即70多分鐘的時間來恢復到它出現丟包以前的發送速率。這意味著鏈路將在相當長的一段時間得不到充分利用。速率過于劇烈的減少、過于緩慢的增加是AIMD的主要問題。
對于AIMD算法出現的問題,一些新出現的TCP替代協議改進了傳統的AIMD算法,使其在高速網中也能保持比較好的性能。下面我們介紹這些新出現的改進協議并對它們進行比較。
2 幾種高速網絡傳輸控制協議
2.1 HighSpeed TCP
HighSpeed TCP 是由Sally Floyd 在2003年提出的在高速網絡環境中的TCP擁塞控制算法。針對傳統的算法中減少發送速率過于劇烈而同時增加發送速率過于緩慢的問題,HighSpeed 擁塞控制算法如下:
(2)
其中wt表示在t時刻窗口的大小,wt+r表示t+r時刻的窗口大小;ssth和標準的TCP中的ssth是一樣的,當窗口大小值小于ssth的時候TCP處于慢啟動階段,wlow也是一個閥值,當窗口大小大于ssth小于wlow的時候HighSpeed TCP使用和標準TCP相同的擁塞避免算法;當窗口大小大于wlow的時候就使用新的擁塞控制算法。
a(w)和b(w)取值函數為:
如圖1示,當窗口大小達到wp的時候出現丟包:
在公式3中可以看到,增加或減少窗口大小的程度只與當前的窗口大小有關,而與該流的RTT大小沒有關系。但是,具有較小RTT的流比具有較大RTT的流的響應頻率要更高,所以小RTT的流比大RTT的流更有競爭力,這導致了High Speed TCP 的算法不公平,當窗口越大不公平的情況就越明顯。
2.2 Scalable TCP
Scalable TCP [6]是劍橋大學的Tom Kelly提出的,相對HighSpeed TCP而言它對TCP的改動是簡單而有效的,它的擁塞控制算法如下:
ack:cwnd=cwnd+a
loss:cwnd=cwnd-b*cwnd
a=0.01 b=0.125(4)
對比前面給出的AIMD算法,我們發現Scalable TCP和AIMD算法是非常相似的。Scalable TCP在遇到丟包事件的時候將發送速率減少八分之一,在收到Ack包的時候增加的窗口大小是固定的,與當前窗口大小沒有關系。下面我們給出兩個圖來比較Scalable TCP與傳統TCP算法的區別。
從圖2和圖3我們看到,當Scalable TCP出現丟包事件的時候,它減少擁塞窗口大小的比例比標準的TCP要小。另外它恢復的響應時間跟鏈路的帶寬沒有關系。因此它具有較快的響應時間,可以從一次丟包中較快的恢復過來,從而保證鏈路具有較高的利用率。但是它和HighSpeed TCP 算法一樣也不具有公平性。
Scalable TCP的特點是在對原算法改動較小的情況下使的協議的性能有了較大的提高,因此在現有的操作系統下也很容易實現。
2.3 FAST TCP
FAST TCP是2003年由美國加州理工學院網絡實驗室的Steven H. Low的研究團隊提出來的,它是一種全新的基于時延控制的下一代網絡傳輸控制協議。 該協議基于控制理論的思想,與傳統的基于丟包控制的控制傳輸協議不同。它能夠連續監測發送數據包和收到Ack包的時間,根據網絡傳輸時延的變化來預測網絡擁塞的情況,進而調節源端的數據發送速度,使其擁有更好的穩定性和更快的傳輸速度。FAST TCP在美國的Abilene主干網和歐洲CERN主干網都已經做了相當多的試驗(http://dsd.lbl.gov/DIDC/PFLDnet2004/papers/Shalunov.pdf),其效果明顯要好過其他的網絡傳輸控制協議。2004年底在美國舉行的“超級計算帶寬挑戰賽”,通過以101 Gbps的速度在匹茲堡和洛杉磯之間傳輸數據,高能物理團隊打破了數據傳輸的世界記錄,并在比賽中勝出, 其最高數據傳輸速度超過了101 Gbps。而且原來的數據傳輸速度記錄是由該團隊在一年前創造的,是23.2 Gbps,還不足目前記錄的四分之一。在互聯網上,數據傳輸速度記錄是4.23 Gbps,Internet2上的記錄是6.63 Gbps。數據傳輸速度能夠達到101 Gbps的一個重要原因是Fast TCP協議,它能夠比標準的TCP更好地防止網絡擁塞。同時這一技術可以用于更快地傳輸音頻、視頻內容以及其它數據。它的擁塞控制算法如下:
其中di是第i個流的傳播時延,qi是第i個流在其經過路由器上的排隊時間。
根據試驗和仿真的結果顯示,FAST TCP可以獲得比HighSpeed和Scalable TCP更高的吞吐率、公平性和響應速度。但是在傳播延時估計錯誤的情況下會出現“持續擁塞”的現象[5-6]使得網絡的公平性降低和隊列延遲快速增加。譚連生等對此現象作出了理論分析并且給出了一些解決方案[6]。另外要為每個流設置合理的α值也是一個挑戰:當過多的流經過瓶頸路由器的時候可能會引起網絡的不穩定;FAST TCP流和其他基于丟包的數據流的兼容性也是一個問題。
目前我們正在ns-2網絡試驗平臺下對FAST TCP等下一代網絡傳輸控制協議的各項性能進行研究,分析和比較新的傳輸協議的穩定性、公平性,改進它們的算法,使其在下一代高速網絡中的性能更加完善。
2.4 XCP
XCP [8](eXplicit Control Protocol ),它是由麻省理工學院的Dina Katabi 等人提出的新的網絡擁塞控制體系結構,該協議的思想是認為僅僅依靠丟包作為擁塞控制信號對高速網絡來說難以達到理想的效果,為了得到更明確的擁塞信息,XCP對每一個發送的數據包加了一個擁塞控制頭:
路由器根據包頭中H_cwnd和H_rtt的數據以及路由器當前的情況,來計算當前的擁塞狀況并將其寫到H_feedback這個字段里。
其中δp, δn是路由器根據鏈路情況計算的值。
如果后來經過的路由器上擁塞狀況更嚴重,那么就用后來的H_feedback來代替當前的值。總之,最后到達發送端的H_feedback值反映了數據包經過各段鏈路上擁塞最嚴重的情況的鏈路,這一點上XCP具有MaxNet [9]的一些特點,因此它有比較好的公平性。XCP的接收端將擁塞控制頭在放進Ack包里返回給發送端,發送端根據這個字段的值來調節發送速率。
由于有路由信息的支持,發送端可以得到更加準確和豐富的控制信息來調節發送的速度,同時該協議也具有比較好的TCP友好性和公平性。但是要實現該協議需要更換所有的路由器上的軟件,這將是一個很大的開銷。
3 幾種擁塞控制算法的一般模型
對上述的擁塞控制算法,我們給出一個一般的數學模型來進行描述他們;我們將各種擁塞信息理解為鏈路的代價,擁塞窗口大小是一個關于代價的單調減函數。
Cwnd=f(price)(9)
對HighSpeed TCP和Scalable TCP而言price就是丟包率,對FAST TCP 而言price就是隊列延時,對XCP而言price就是擁塞控制頭中H_feedback的值:
在表2中,RTT表示往返時延,w是窗口大小,x是發送速率,α,γδp,δn是各自的協議參數。
HighSpeed TCP、Scalable TCP都是以丟包率作為鏈路代價的,我們在圖4中比較它們平衡點窗口和丟包率的關系。
從圖4我們可以看到在相同平衡窗口的情況下Scalable TCP比HighSpeed TCP需要更小的丟包率,當窗口值較大的時候丟包率的差別不是很大。
4 總結
通過對上述協議的分析和比較,我們下面給出一個表2來比較它們各自的一些特性:
從上表我們可以看出這幾種新的擁塞控制算法都各有優點和不足的地方。
對于已經被廣泛應用的TCP來說,任何新的試圖取代它的協議都將遇到很大阻力,但是隨著網絡環境的發展和新的應用出現,傳統的TCP協議所產生弊端日益明顯,新的協議出現并且逐漸取代它,這是必然的。總的來說,任何對現有TCP的新的改進應具備以下性質:
1) 要能夠提高TCP流的響應速度,同時增加TCP流的吞吐率。
2) 不應該減少其他競爭TCP流的吞吐率,因為目標應是在不影響其他TCP流的基礎上更充分利用現有帶寬資源。
3) 只需對TCP的發送部分進行改進,從而使TCP具有更好可擴展性。
一個完美擁塞控制協議應該使得網絡具有較高的吞吐率、穩定性,流之間應該具有較好的公平性,在滿足上述條件的基礎上具有盡可能較低的隊列延遲,并且不需要路由器的太多支持;要同時滿足所有這些要求是很困難,在實際協議設計中我們可以從中找到一個折中的方案使各種指標達到一定平衡。
參考文獻:
[1] Allman M, Paxson V, Stevens W. \"TCP congestion control,\" IETF RFC2581,April 1999.
[2] HighSpeed TCP for Large Congestion Windows.Sally Floyd. RFC 3649,Experimental,December 2003.
[3] Lawrence S,Brakmo and Larry L.Peterson.TCP Vegas: end-to-end congestion avoidance on a global Internet.IEEE Journal on Selected Areas in Communications.13 (8): 1465-80.October 1995. http://cs.Princeton.edu/nsg/papers/jsac-vegas.ps.
[4] Jin C,Wei D, Low S H.FAST TCP: Motivation, architecture, algorithms, performance,in Proceedings of IEEE INFOCOM 2004, Hong Kong,March 2004.
[5] Steven H.Low, Larry Peterson,and Limin Wang. Understanding Vegas: a duality model. J. of ACM. 49(2): 207235. March 2002. http:// netlab.caltech.edu.
[6] Liansheng Tan,Cao Yuan,Moshe Zukerman.FAST TCP: Fairnes and Queuing Issues.IEEE Communications Letters Accepted for publication.
[7] Tom Kelly.Scalable TCP: Improving performance in highspeed wide area networks.
[8] Dina Katabi,Mark Handley,Chalrie Rohrs.Congestion Control for High Bandwidth-Delay Product Networks In the proceedings on ACM Sigcomm,2002.
[9] Bartek Wydrowski,Moshe Zukerman. MaxNet: A congestion control architecture. IEEE Communication Letter,vol.6,no.11,Oct 2003.