摘要:在高帶寬時(shí)延乘積網(wǎng)絡(luò)中,現(xiàn)有TCP協(xié)議由于其使用的擁塞控制機(jī)制使得數(shù)據(jù)流長時(shí)間以低速率發(fā)送數(shù)據(jù),不能有效利用網(wǎng)絡(luò)帶寬,造成帶寬利用率隨著帶寬的增大而下降。對高帶寬時(shí)延乘積網(wǎng)絡(luò)中TCP的性能進(jìn)行仿真,結(jié)果表明在該網(wǎng)絡(luò)環(huán)境中使用TCP傳輸數(shù)據(jù)不能有效利用網(wǎng)絡(luò)帶寬。最后詳細(xì)分析擁塞控制機(jī)制造成TCP使用帶寬利用率低的原因。
關(guān)鍵詞:高帶寬時(shí)延乘積網(wǎng)絡(luò);TCP;擁塞控制;AIMD
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2013)04-0721-03
The Simulation and Analysis of TCP’s Performance in High Bandwidth-Delay-Product Networks
LU Li-qiong, WU Dong
(School of Information Science and Technology, Zhanjiang Normal College, Zhanjiang 524048,China)
Abstract: Because of the congestion control, TCP will send the small data for a long time in High Bandwidth-Delay-Product Networks. So, TCP cannot use the bandwidth efficiently. And, the utilization rate will be decrease with the bandwidth increased. The simulation of the performance of TCP in High Bandwidth-Delay-Product Networks has show that TCP cannot use network bandwidth effectively. We analyze why congestion control influence TCP to use the bandwidth in the end.
Key words: high bandwidth-delay-product networks; TCP; congestion control; AIMD
TCP是目前Internet上使用最廣泛的一種傳輸協(xié)議,根據(jù)MCI的統(tǒng)計(jì),Internet上總字節(jié)數(shù)的95%及總數(shù)據(jù)包數(shù)的90%使用TCP協(xié)議傳輸。TCP的目的是為了解決Internet的穩(wěn)定性、異質(zhì)性(接受端緩沖區(qū)大小、網(wǎng)絡(luò)帶寬及延遲等)、各流之間享用帶寬的公平性、使用效率及擁塞控制等問題,從而為Internet提供可靠、健壯(robust)的端到端通訊。Internet近十年來的迅猛發(fā)展證明TCP協(xié)議在設(shè)計(jì)上是成功的。
目前,隨著吉比特網(wǎng)絡(luò)走出實(shí)驗(yàn)室,進(jìn)入實(shí)際應(yīng)用階段,其技術(shù)得到進(jìn)一步發(fā)展。技術(shù)的發(fā)展促使吉比特網(wǎng)絡(luò)在主干網(wǎng)中使用,逐步形成高帶寬時(shí)延乘積網(wǎng)絡(luò)。高帶寬時(shí)延乘積網(wǎng)絡(luò)表現(xiàn)出許多不同的特征,除了帶寬高、時(shí)延長外,最明顯的是網(wǎng)絡(luò)不能滿足某些TCP連接達(dá)到穩(wěn)定狀態(tài)時(shí)需要的最小丟包率。例如,對一個(gè)標(biāo)準(zhǔn)的包的大小為1500bytes、RTT為100ms的TCP連接,若要在帶寬為10gbps的網(wǎng)絡(luò)中達(dá)到穩(wěn)定的狀態(tài),則平均需要一個(gè)83333 segments的擁塞窗口,并且在5,000,000,000個(gè)包中只能有一個(gè)包丟失,或者說,平均1.6個(gè)小時(shí)中至多只能產(chǎn)生一次擁塞[1]。對當(dāng)前的高帶寬時(shí)延乘積網(wǎng)絡(luò),這個(gè)要求顯然很難滿足。
毫無疑問,計(jì)算機(jī)和通信技術(shù)的不斷進(jìn)步將推動網(wǎng)絡(luò)的發(fā)展,但如何有效的利用現(xiàn)有網(wǎng)絡(luò)也是目前面臨的難題。類似網(wǎng)格計(jì)算等應(yīng)用如要在科學(xué)研究中發(fā)揮巨大的作用,就要求其使用的網(wǎng)絡(luò)能高效的進(jìn)行遠(yuǎn)距離超大數(shù)據(jù)集傳輸[2]??蓪?shí)踐統(tǒng)計(jì)數(shù)據(jù)表明,在已有的高帶寬時(shí)延乘積網(wǎng)絡(luò)中,需要大量數(shù)據(jù)的應(yīng)用往往使用帶寬的效率很低,只能獲得很小的可用帶寬,無法滿足其傳輸超大數(shù)據(jù)集的要求。造成這種現(xiàn)象的根本原因是當(dāng)前網(wǎng)絡(luò)中使用的傳輸協(xié)議依然是TCP協(xié)議。這個(gè)針對過去每秒幾K字節(jié)的網(wǎng)絡(luò)而設(shè)計(jì)的協(xié)議,雖然在高帶寬時(shí)延乘積網(wǎng)絡(luò)中顯示了它諸多的缺點(diǎn),但由于它比較容易實(shí)施以及一些涉及網(wǎng)絡(luò)經(jīng)營商的經(jīng)濟(jì)問題,TCP協(xié)議仍被廣泛應(yīng)用,因此由它帶來的影響不可避免的存在于當(dāng)今的高帶寬時(shí)延乘積網(wǎng)絡(luò)中。
本文首先使用NS2[3]仿真平臺仿真高帶寬時(shí)延乘積網(wǎng)絡(luò)中TCP的帶寬使用效率。結(jié)果表明在這種環(huán)境中使用TCP不能有效利用可用帶寬來傳輸數(shù)據(jù),絕大部分帶寬被浪費(fèi)。然后詳細(xì)分析擁塞控制機(jī)制造成TCP帶寬利用率低的原因。
1 性能仿真
1.1 仿真環(huán)境設(shè)置
文獻(xiàn)[4]指出,網(wǎng)絡(luò)仿真研究中的參數(shù)設(shè)置都存在一些隱含假設(shè),由此得到的仿真結(jié)果可能影響對問題的研究。為此,在進(jìn)行仿真研究時(shí),必須正確設(shè)置所用的仿真參數(shù)。該文研究的是在高帶寬時(shí)延乘積網(wǎng)絡(luò)中TCP帶寬的使用效率。由于真實(shí)的Internet網(wǎng)絡(luò)結(jié)構(gòu)是十分龐大復(fù)雜的,為了使仿真的網(wǎng)絡(luò)能夠盡可能的反映真實(shí)網(wǎng)絡(luò)的物理性能,我們選擇圖1所示的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行仿真。S表示源端,D表示目的端,仿真時(shí)使用了15個(gè)源端和15個(gè)目的端,它們與路由器連接的鏈路帶寬是1Gbps。路由器R1和R2使用去尾(Drop Tail)丟棄策略,它們之間的鏈路L帶寬為10Gbps,其利用率是本文主要關(guān)心的對象。為了跟其它網(wǎng)絡(luò)中TCP使用帶寬效率相比,我們還對鏈路L的帶寬分別為100Mbps、622Mbps、2.5Gbps等進(jìn)行了仿真。
在圖1中,所有的TCP流都經(jīng)過鏈路L ,那么在a處會形成網(wǎng)絡(luò)瓶頸,有可能發(fā)生網(wǎng)絡(luò)擁塞。為了避免產(chǎn)生全局同步現(xiàn)象,設(shè)置每個(gè)TCP流有不同的起始時(shí)間、終止時(shí)間和不同的數(shù)據(jù)傳輸量。該文在仿真中設(shè)置了三種類型的TCP數(shù)據(jù)流:1)10個(gè)源端和目的端之間產(chǎn)生長時(shí)間的FTP流,整個(gè)仿真過程中持續(xù)不斷的發(fā)送數(shù)據(jù)。2)3個(gè)源端和目的端之間產(chǎn)生短暫的FTP流,在較短時(shí)間內(nèi)傳輸大量的數(shù)據(jù)。3)2個(gè)源端和目的端之間隨機(jī)產(chǎn)生小型的WEB流。后兩種數(shù)據(jù)流的出現(xiàn)將有可能引起鏈路L發(fā)生擁塞。該文還關(guān)注第一種數(shù)據(jù)流的傳輸過程,并在后面小節(jié)對其進(jìn)行分析。整個(gè)仿真過程持續(xù)1小時(shí)。
圖1 仿真拓?fù)浣Y(jié)構(gòu)
1.2 仿真結(jié)果
圖2顯示了不同帶寬的鏈路L的帶寬利用率。當(dāng)鏈路帶寬為100Mbps,利用率為88%;當(dāng)鏈路帶寬為622Mbps,利用率為83%;當(dāng)鏈路帶寬為10Gbps,利用率為40%??梢钥闯鲦溌稬的帶寬在增大,但其利用率卻在減小。圖3 顯示了10Gbps鏈路的利用率隨時(shí)間變化情況??梢钥闯?,建立連接后,隨著時(shí)間的增加,利用率增大,但其最大僅為40%。說明在高帶寬時(shí)延乘積網(wǎng)絡(luò)中,絕大部分帶寬被浪費(fèi),沒能得到利用。
圖2 不同帶寬鏈路的利用率 圖3 10Gbps鏈路的利用率變化情況
圖4和圖5是仿真過程中一個(gè)長時(shí)間的FTP流的擁塞窗口及其吞吐量的變化圖。擁塞窗口的幾次突變是由單個(gè)或多個(gè)丟包引起的,間接導(dǎo)致發(fā)送速率的變化,吞吐量也因此受到影響。該流的RTT時(shí)間是114ms。圖6是該數(shù)據(jù)流前50秒擁塞窗口變化情況,可以清楚的看出慢啟動階段擁塞窗口的增長速度比在擁塞避免階段要快,但數(shù)據(jù)流很快結(jié)束慢啟動進(jìn)入擁塞避免階段。圖7是該數(shù)據(jù)流前50秒內(nèi)發(fā)送的數(shù)據(jù)包個(gè)數(shù)和收到的ACK個(gè)數(shù)隨時(shí)間變化情況。兩個(gè)數(shù)不相等,說明目的端并不是對收到的每個(gè)數(shù)據(jù)包都發(fā)ACK,而是使用延遲ACK對數(shù)據(jù)包進(jìn)行確認(rèn)。
圖4 單個(gè)TCP流CW的變化 圖5 單個(gè)TCP流的吞吐量變化
圖6 前50秒的CW變化情況 圖7 前50秒發(fā)送的數(shù)據(jù)包和收到的ACK個(gè)數(shù)
2 結(jié)果分析
上述圖2顯示的鏈路利用率的變化并不是因?yàn)榉抡孢^程中傳輸數(shù)據(jù)量的設(shè)置引起的,而是由所使用的TCP協(xié)議造成的。TCP協(xié)議使用了兩種影響帶寬利用的控制技術(shù):流量控制和擁塞控制。流量控制使目的端可以限制源端發(fā)送的數(shù)據(jù)量,防止源端發(fā)送的數(shù)據(jù)使目的端過載。擁塞控制是為了避免網(wǎng)絡(luò)過載影響端系統(tǒng)使用網(wǎng)絡(luò)而采取的調(diào)節(jié)數(shù)據(jù)流量的手段。如今,目的端、源端具有幾乎相同的處理能力,流量控制影響不大,因此擁塞控制成為造成高帶寬時(shí)延乘積網(wǎng)絡(luò)帶寬利用率低的主要因素。TCP協(xié)議使用一種基于窗口的和式增加積式減少(Additive Increase Multiplicative Decrease,AIMD)的擁塞控制機(jī)制,其通過調(diào)整擁塞窗口(Congestion Window,CW)來限制每次能夠發(fā)送的最大分組數(shù),控制發(fā)送速率,達(dá)到調(diào)節(jié)數(shù)據(jù)流量的目的。TCP協(xié)議的擁塞窗口調(diào)整機(jī)制如下[5]:
擁塞避免階段,收到一個(gè)新的Ack:[CW=CW+aCW] (1)
發(fā)現(xiàn)丟包:[CW=CW-b×CW] (2)
慢啟動階段,收到一個(gè)新的Ack:[CW=CW+c] (3)
如果a、b、c都以最大段長度(Maximum Segment Size,MSS)為單位,則加性因子a=1,乘性因子b=0.5,慢啟動加性因子c=1。下面分析這種控制機(jī)制對TCP使用帶寬的影響。
2.1 達(dá)到高發(fā)送速率需要時(shí)間長
一個(gè)新建立的TCP連接,假設(shè)沒有收到重復(fù)的ACK和重傳時(shí)鐘超時(shí)信號,其發(fā)送速率將在慢啟動和擁塞避免階段隨著CW的增加不斷增大。CW的增加速度影響著發(fā)送速率增大的速度。從CW的調(diào)整公式(3)和(1)得知,慢啟動階段CW呈指數(shù)增加,擁塞避免階段CW呈線性增加。雖然CW在慢啟動階段增加的速度比擁塞避免階段要快,但因?yàn)槁龁佑蛑翟O(shè)得太小,TCP連接很快結(jié)束慢啟動進(jìn)入擁塞避免階段,從而減慢了CW的增加速度,限制發(fā)送速率的增大。擁塞避免階段中CW的增加方式讓TCP連接需要很長時(shí)間才使發(fā)送速率達(dá)到最大。如圖6所示,在1.455秒連接結(jié)束慢啟動進(jìn)入擁塞避免階段,CW增加速度減慢。如圖4所示,CW經(jīng)過26分54秒才達(dá)到最大,這時(shí)發(fā)送速率也相應(yīng)的達(dá)到最大。
2.2丟包時(shí)發(fā)送速率減得太快
雖然現(xiàn)有的TCP協(xié)議使用了快速重傳機(jī)制,能夠通過收到幾個(gè)相同的ACK判斷發(fā)生丟包,減少等待超時(shí)重傳丟包的時(shí)間。但其檢測到丟包時(shí)使用公式(2)的窗口調(diào)整方式將CW減半,并在重傳丟失的數(shù)據(jù)包之后進(jìn)入擁塞避免階段,導(dǎo)致發(fā)送速率恢復(fù)時(shí)間過長。這種不考慮網(wǎng)絡(luò)實(shí)際狀況而盲目執(zhí)行積式減少CW的調(diào)整方式使TCP流不能長時(shí)間使用高發(fā)送速率。如圖4顯示,在1728秒后由于發(fā)生多次丟包,CW多次減半,到3420秒時(shí)CW才恢復(fù)原值,恢復(fù)時(shí)間為28分12秒。
2.3延遲ACK減慢發(fā)送速率增大的速度
無論是在慢啟動還是擁塞避免階段,CW都是在源端收到ACK時(shí)增加的,ACK的發(fā)送方式將影響發(fā)送速率的增大。公式(1)成立的條件是目的端對收到的每個(gè)數(shù)據(jù)包都發(fā)ACK。根據(jù)公式(1),可以推導(dǎo)出公式(4),用于計(jì)算TCP連接在擁塞避免階段CW到達(dá)某個(gè)值所需要的時(shí)間。
[] [T=(CW2-CW1)×RTTa] (4)
其中,T是所需時(shí)間; CW1是CW增加前的值,CW2是要增加到的值,單位都是字節(jié); a是在擁塞避免階段每個(gè)RTT時(shí)間內(nèi)CW增加的值,和公式(1)中的a相等,是一個(gè)MSS的大小。在高帶寬時(shí)延乘積網(wǎng)絡(luò)中,MSS等于1460字節(jié)。根據(jù)公式(4),計(jì)算得到上述的TCP流從65535字節(jié)(慢啟動和擁塞避免分界點(diǎn))增加到377410字節(jié)需要時(shí)間為24.35秒。但如圖6顯示,該增加過程需要時(shí)間為48.54秒,大于計(jì)算值。這是因?yàn)槟康亩瞬皇菍κ盏降拿總€(gè)數(shù)據(jù)包都發(fā)ACK(可從圖7得知),即延遲ACK造成的。由此可見,雖然延遲ACK能夠減少ACK數(shù)量,但延遲確認(rèn)減慢了CW的增加速度,延長了發(fā)送速率增大的時(shí)間。
2.4 對丟包過于敏感
網(wǎng)絡(luò)中存在兩種類型的丟包:隨機(jī)丟包和擁塞丟包。第一種丟包本不會對網(wǎng)絡(luò)的使用造成太大的影響,可TCP只是簡單使用丟
(下轉(zhuǎn)第748頁)
(上接第723頁)
包作為網(wǎng)絡(luò)擁塞的判斷依據(jù),沒有關(guān)心丟包的原因,造成TCP連接對丟包不加區(qū)分的采取公式(2)調(diào)整CW,帶來一些與網(wǎng)絡(luò)實(shí)際情況不符的控制結(jié)果。因此對隨機(jī)丟包和擁塞丟包都十分敏感的TCP連接,采用CW積式減少方式加劇了對發(fā)送速率的影響。并且,這種敏感特性造成TCP流不穩(wěn)定。圖5顯示了TCP流吞吐量振蕩的情況。
在高帶寬時(shí)延乘積網(wǎng)絡(luò)中,一個(gè)流如要最大的利用帶寬,必須要有高的發(fā)送速率和小的丟失率[6]。從上面的分析得知,TCP協(xié)議使用一種基于窗口的AIMD擁塞控制機(jī)制調(diào)整CW,間接控制發(fā)送速率。但這種機(jī)制對CW的調(diào)整存在上述四個(gè)問題,使流長時(shí)間以低發(fā)送速率發(fā)送數(shù)據(jù),從而影響帶寬的使用。
3 結(jié)束語
通過對高帶寬時(shí)延乘積網(wǎng)絡(luò)中TCP的性能進(jìn)行仿真,說明在該網(wǎng)絡(luò)環(huán)境中使用TCP傳輸數(shù)據(jù)不能有效利用網(wǎng)絡(luò)帶寬。并詳細(xì)分析了TCP協(xié)議影響帶寬使用的原因是,TCP使用的擁塞控制機(jī)制對丟包過于敏感、使用延遲ACK、丟包時(shí)發(fā)送速率減得太快等策略,使流長時(shí)間以低速率發(fā)送數(shù)據(jù)。已有的理論分析指出,TCP不適合在高帶寬時(shí)延乘積網(wǎng)絡(luò)中使用。隨著新應(yīng)用新需求的發(fā)展,人們期望在高帶寬時(shí)延乘積網(wǎng)絡(luò)中能有好的并且易于推廣的協(xié)議出現(xiàn),從而引發(fā)了基于速率的擁塞控制和在應(yīng)用層進(jìn)行擁塞控制兩類研究熱潮[6][7]。我們下一步的工作是要研究如何更好的使用基于速率的方式進(jìn)行擁塞控制。
參考文獻(xiàn):
[1] Mascolo, S,Casetti C, Gerla, et al. TCP Westwood: End-to-End Bandwidth Estimation for Efficient Transport over Wired and Wireless Networks[J]. MOBICOM 2002.
[2] Julian J, Bunn John C, Doyle Steven H, et al . Ultrascale Network Protocols for Computing and Science in the 21st Century[DB/OL].
[3] The Network Simulator,ns-2[EB/OL]. http://www.isi.edu/nsnam/ns/index.html.
[4] Sally Floyd, Eddie Kohler. Internet Research Needs Better Models[Z]. HotNets-I, 2002.
[5] 謝希仁,計(jì)算機(jī)網(wǎng)絡(luò)[M]. 5版.北京:電子工業(yè)出版社,2010:205-212.
[6] 胡忠勝, TFRC擁塞控制研究[D].桂林:廣西師范大學(xué),2012.
[7] 湯偉.基于通信網(wǎng)絡(luò)的物聯(lián)網(wǎng)系統(tǒng)研究[D].北京:北京郵電大學(xué),2012.