余學(xué)杰
摘 要: 為提升計(jì)算機(jī)的網(wǎng)絡(luò)性能,更好地避免擁塞現(xiàn)象的發(fā)生,需要對(duì)其進(jìn)行必要的技術(shù)控制。鑒于此,對(duì)基于TCP/IP協(xié)議的網(wǎng)絡(luò)擁塞控制方法進(jìn)行分析。在TCP擁塞控制中主要采用TCP Tahoe,TCP Reno,TCP New Reno以及TCP Sack四種方法,其中TCP New Reno對(duì)快速恢復(fù)算法進(jìn)行了改進(jìn),通過(guò)對(duì)TCP協(xié)議中的Reno進(jìn)行可視化處理,實(shí)行對(duì)網(wǎng)絡(luò)擁塞的有效管理。而IP擁塞控制方法則分為FIFO,F(xiàn)Q和WFQ,RED以及ECN四種類型,通過(guò)隊(duì)列調(diào)度管理方式實(shí)現(xiàn)了對(duì)網(wǎng)絡(luò)擁塞的有效管理。
關(guān)鍵詞: 網(wǎng)絡(luò)擁塞; 優(yōu)化技術(shù); 控制技術(shù); TCP/IP協(xié)議
中圖分類號(hào): TN711?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)15?0038?03
Research on TCP / IP computer network congestion control
YU Xue?jie
(Office of Computer Teaching and Research, Beijing University of Chinese Medicine, Beijing 100029, China)
Abstract: To enhance the performance of the computer network and avoid the occurrence of the congestion phenomenon, it is necessary to carry out the effective technical control. In view of this, the network congestion control methods based on TCP/ IP protocol are analyzed. Four methods of TCP Tahoe, TCP Reno, TCP New Reno and TCP Sack are used for TCP congestion control; in which fast recovery algorithm was improved by means of TCP New Reno. The visualization processing can be performed through the Reno in TCP protocol to implement the effective management of network congestion. The IP congestion control method can be divided into FIFO, FQ/WFQ, RED and ECN to realize the effective management of network congestion by queue scheduling management pattern.
Keywords: network congestion; optimization technique; control technology; TCP/IP protocol
0 引 言
網(wǎng)絡(luò)存儲(chǔ)空間、帶寬容量、處理器自身性能以及網(wǎng)絡(luò)結(jié)構(gòu)不合理等都有可能造成網(wǎng)絡(luò)擁塞的現(xiàn)象發(fā)生,具體表現(xiàn)為數(shù)據(jù)信息包接收延誤、丟棄概率增加、上層應(yīng)用系統(tǒng)的性能降低等?,F(xiàn)階段,TCP/IP協(xié)議是互聯(lián)網(wǎng)采用的主要數(shù)據(jù)流,因此,目前對(duì)網(wǎng)絡(luò)擁塞控制的研究主要集中在互聯(lián)網(wǎng)TCP/IP協(xié)議上?,F(xiàn)在比較典型的網(wǎng)絡(luò)擁塞控制機(jī)制是應(yīng)用于互聯(lián)網(wǎng)設(shè)備、基于TCP的擁塞控制方法和用于端系統(tǒng)以及基于IP的擁塞控制方法。本文主要闡述了TCP擁塞控制和IP擁塞控制的幾種常見(jiàn)算法,通過(guò)對(duì)比分析指出這些算法的優(yōu)缺點(diǎn),并對(duì)這些網(wǎng)絡(luò)擁塞控制算法進(jìn)行優(yōu)化升級(jí)。
1 網(wǎng)絡(luò)擁塞的原因分析
網(wǎng)絡(luò)擁塞主要是指用戶對(duì)網(wǎng)絡(luò)資源的需求量超過(guò)了現(xiàn)有的容量,從而造成過(guò)載狀態(tài)。因?yàn)樵诨ヂ?lián)網(wǎng)絡(luò)中,勢(shì)必會(huì)在某一些通信子網(wǎng)中存在較多的分組,這樣就會(huì)降低網(wǎng)絡(luò)的通信性能,也就是網(wǎng)絡(luò)擁塞現(xiàn)象。當(dāng)計(jì)算機(jī)傳輸?shù)酵ㄐ抛泳W(wǎng)中的分組數(shù)量在標(biāo)準(zhǔn)容量范圍內(nèi),這些數(shù)據(jù)信息將會(huì)全部送達(dá)目的地,而且送到的數(shù)量與發(fā)送的數(shù)量成比例。但是,一旦網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)信息量急劇增加,造成路由器癱瘓,就會(huì)出現(xiàn)分組丟失,并且會(huì)導(dǎo)致情況持續(xù)惡化。在網(wǎng)絡(luò)傳輸數(shù)據(jù)量不斷增加的同時(shí),擁塞范圍也會(huì)持續(xù)擴(kuò)張,以至于幾乎沒(méi)有分組能夠送達(dá)。造成網(wǎng)絡(luò)擁塞的原因主要有以下幾個(gè)方面:
1.1 存儲(chǔ)空間限制
網(wǎng)絡(luò)信息的傳輸端口都有一定的存儲(chǔ)空間,如果輸入數(shù)據(jù)流增多,就需要暫時(shí)保留在存儲(chǔ)空間內(nèi)等待輸出。此時(shí)如果端口的數(shù)據(jù)轉(zhuǎn)發(fā)速率低于數(shù)據(jù)包的到達(dá)速率,存儲(chǔ)空間就會(huì)由于傳送不及時(shí)而被占滿,此時(shí)后面到達(dá)的數(shù)據(jù)包就會(huì)被丟棄。雖然可以通過(guò)增加存儲(chǔ)空間緩解輸出端口的壓力,但是伴隨著存儲(chǔ)空間的無(wú)線增加會(huì)造成數(shù)據(jù)包在轉(zhuǎn)發(fā)過(guò)程中雖然已經(jīng)超時(shí),但是源端仍然會(huì)因這些數(shù)據(jù)包在傳輸過(guò)程中被丟棄而要求重發(fā),這樣不僅嚴(yán)重降低了互聯(lián)網(wǎng)的工作效率,而且還會(huì)使網(wǎng)絡(luò)擁塞現(xiàn)象更加嚴(yán)重。
1.2 帶寬容量的限制
根據(jù)香農(nóng)理論,信息源的發(fā)送速率必須小于或者等于信息通道的容量,此時(shí)網(wǎng)絡(luò)才能正常運(yùn)行。但是如果網(wǎng)絡(luò)帶寬容量無(wú)法滿足高速數(shù)據(jù)流的輸入,即源端帶寬大于鏈路帶寬時(shí),會(huì)造成數(shù)據(jù)包在網(wǎng)絡(luò)節(jié)點(diǎn)中積壓,形成網(wǎng)絡(luò)擁塞。
1.3 處理器性能的局限性
處理器性能無(wú)法滿足高速鏈路的需求,影響其工作效率,從而造成網(wǎng)絡(luò)擁塞。除此以外,在互聯(lián)網(wǎng)中由于網(wǎng)絡(luò)結(jié)構(gòu)的不合理等原因也會(huì)造成網(wǎng)絡(luò)擁塞現(xiàn)象。網(wǎng)絡(luò)擁塞過(guò)程如圖1所示。
圖1 網(wǎng)絡(luò)擁塞過(guò)程圖
2 TCP/IP網(wǎng)絡(luò)擁塞控制研究
控制網(wǎng)絡(luò)擁塞是一項(xiàng)系統(tǒng)工程,僅僅從某一方面入手無(wú)法有效地控制網(wǎng)絡(luò)擁塞,有時(shí)甚至?xí)又負(fù)砣?,因此必須把網(wǎng)絡(luò)擁塞當(dāng)作是一個(gè)復(fù)雜的系統(tǒng)進(jìn)行深入研究。從控制論的角度出發(fā),可以將網(wǎng)絡(luò)擁塞的控制當(dāng)作一個(gè)反饋系統(tǒng),該系統(tǒng)主要輸入網(wǎng)絡(luò)擁塞的各種信息,而輸出的則是端系統(tǒng)對(duì)發(fā)包速率的調(diào)整,此時(shí)端系統(tǒng)的發(fā)包速率影響著網(wǎng)絡(luò)擁塞的程度。下面主要從TCP和IP兩個(gè)方面分析網(wǎng)絡(luò)擁塞控制的算法研究。
2.1 TCP擁塞控制方法
傳輸控制協(xié)議(Transmission Control Protcol,TCP)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。該協(xié)議主要是為廣域網(wǎng)設(shè)計(jì),提供可靠的數(shù)據(jù)流服務(wù),通過(guò)帶重傳的肯定確認(rèn)技術(shù)實(shí)現(xiàn)傳輸?shù)目煽啃浴R虼?對(duì)于TCP的擁塞控制一直都是網(wǎng)絡(luò)擁塞研究的重點(diǎn)內(nèi)容。
傳統(tǒng)的TCP網(wǎng)絡(luò)擁塞控制方法主要是基于Van Jacobson提出的 “擁塞避免”算法、“慢啟法”算法以及一個(gè)用于估計(jì)周轉(zhuǎn)RTT的算法等??梢哉f(shuō)這些算法為后期TCP網(wǎng)絡(luò)擁塞控制的進(jìn)一步研究提供了理論基礎(chǔ),以至于后期的TCP網(wǎng)絡(luò)擁塞控制研究都是在這些算法上進(jìn)行的升級(jí)和改進(jìn)。目前主要有TCP Tahoe,TCP Reno,TCP New Reno以及TCP Sack四種類型。TCP Tahoe分為加性增和乘性減、慢啟動(dòng)以及快速重傳三個(gè)部分。加性增和乘性減主要是通過(guò)對(duì)擁塞窗口值增加或者減少的方式實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)擁塞的控制;而慢啟動(dòng)則是在數(shù)據(jù)發(fā)送的初始化階段對(duì)數(shù)據(jù)包進(jìn)行慢速率的發(fā)送,但以指數(shù)的速度快速增加其發(fā)送速率來(lái)避免初始化階段由于發(fā)送窗口過(guò)小造成的帶寬浪費(fèi);而快速重傳則主要針對(duì)丟失包,在不必等到重傳超時(shí)的情況下就可以立即發(fā)送。TCP Reno可以說(shuō)是TCP Tahoe的升級(jí)優(yōu)化,與TCP Tahoe相比TCP Reno擁有快速恢復(fù)功能,可以將擁塞窗口減半從而進(jìn)入擁塞避免階段;TCP New Reno則更加避免了TCP Reno在快速恢復(fù)階段出現(xiàn)的重傳超時(shí),更好地提升網(wǎng)絡(luò)性能;TCP Sack是在檢測(cè)到網(wǎng)絡(luò)擁塞的丟失包后,對(duì)這些數(shù)據(jù)進(jìn)行選擇確認(rèn)后有選擇性的重傳。TCP網(wǎng)絡(luò)擁塞控制方法比較見(jiàn)表1。
表1 TCP網(wǎng)絡(luò)擁塞控制方法
[類型\&優(yōu)點(diǎn)\&缺點(diǎn)\&TCP Tahoe\&建立了TCP擁塞控制的基礎(chǔ),避免了擁塞崩潰的發(fā)生\&沒(méi)有快速恢復(fù),輕度時(shí),
擁塞窗口減小,降低吞吐量\&TCP Reno\&增加了快速恢復(fù),輕度擁塞時(shí)保持較高的擁塞窗口\&檢測(cè)到丟包,重傳所有
丟失與檢測(cè)到所有丟失包\&TCP New Reno\&利用一個(gè)ACK確認(rèn)部分發(fā)送窗口,避免過(guò)多的重傳\&在高速網(wǎng)絡(luò)中不能
有效利用帶寬\&TCP Sack\&檢測(cè)到擁塞時(shí),選擇性的重傳包,避免不必要的重傳\&需要修改TCP接收端,
實(shí)現(xiàn)復(fù)雜\&]
2.2 IP擁塞控制方法
網(wǎng)絡(luò)互聯(lián)協(xié)議(Internet Protcol,IP)主要是為計(jì)算機(jī)網(wǎng)絡(luò)互聯(lián)過(guò)程中的通信而設(shè)計(jì)的一種協(xié)議,因此可以說(shuō),在互聯(lián)網(wǎng)中IP規(guī)定了計(jì)算機(jī)在互聯(lián)網(wǎng)上進(jìn)行通信時(shí)所遵守的規(guī)則。典型的IP擁塞控制方法包括FIFO,F(xiàn)Q和WFQ,RED以及ECN四種類型。先入先出原則(First Input First Output,F(xiàn)IFO),顧名思義就是對(duì)先到達(dá)的數(shù)據(jù)包進(jìn)行優(yōu)先服務(wù),被廣泛用于隊(duì)列調(diào)度的管理方式中;FQ和WFQ,即公平排隊(duì)原則(Fair Queuing)和加權(quán)公平排隊(duì)原則(Weighted Fair Queuing),通過(guò)識(shí)別對(duì)話例如數(shù)據(jù)流的形式,并將其按照對(duì)話形式進(jìn)行分組,確保傳輸容量被這些獨(dú)立的對(duì)話公平分享,加權(quán)公平排隊(duì)可以在網(wǎng)絡(luò)擁塞發(fā)生時(shí)自動(dòng)穩(wěn)定網(wǎng)絡(luò)運(yùn)行,減少分組重發(fā);隨機(jī)檢測(cè)算法(Random Early Detection,RED)包括監(jiān)控隊(duì)列長(zhǎng)度和丟棄數(shù)據(jù)包兩個(gè)部分,主要是通過(guò)對(duì)路由器中的數(shù)據(jù)包隊(duì)列長(zhǎng)度進(jìn)行實(shí)時(shí)監(jiān)控,在發(fā)生空間占滿之前隨機(jī)的將一些數(shù)據(jù)包丟棄,從而減少進(jìn)入輸出端口的數(shù)據(jù)信息量;顯示擁塞指示算法(Explicit Congestion Notifcation,ECN),在發(fā)送端可以更好地得到擁塞通告,避免不必要的丟包事件發(fā)生。IP網(wǎng)絡(luò)擁塞控制方法見(jiàn)表2。
表2 IP網(wǎng)絡(luò)擁塞控制方法
[類型\&優(yōu)點(diǎn)\&缺點(diǎn)\&FIFO\&簡(jiǎn)單且易于實(shí)現(xiàn)\&會(huì)導(dǎo)致全局同步和
公平性問(wèn)題\&FQ和WFQ\&可實(shí)現(xiàn)鏈路的公平分配\&需要維護(hù)每個(gè)數(shù)據(jù)流的
狀態(tài),實(shí)現(xiàn)復(fù)雜\&RED\&早期預(yù)測(cè)擁塞,有利于
處理突發(fā)數(shù)據(jù)流\&參數(shù)確定較難,而且
穩(wěn)定性存在問(wèn)題\&ECN\&通過(guò)標(biāo)記,不是丟包通知
擁塞,避免不必要的丟包\&不兼容ECN的連接,會(huì)忽略通告信息。通告信息本身可能丟失\&]
2.3 TCP/IP網(wǎng)絡(luò)擁塞控制比較
通過(guò)以上分析,可以看出TCP網(wǎng)絡(luò)擁塞控制方法主要是對(duì)在端系統(tǒng)中,對(duì)信源進(jìn)行有效控制,在擁塞發(fā)生和控制過(guò)程中會(huì)產(chǎn)生一定的延遲,很有可能傳遞擁塞信息反饋在數(shù)據(jù)傳輸完成后才到達(dá)發(fā)送源端。而IP則主要集中在網(wǎng)絡(luò)中,通過(guò)感知網(wǎng)絡(luò)擁塞的發(fā)生采取必要的控制措施,可以區(qū)分不同的發(fā)送源端產(chǎn)生的數(shù)據(jù)信息,通過(guò)隊(duì)列調(diào)度方法實(shí)現(xiàn)對(duì)帶寬的公平使用,因此,適用于短期的網(wǎng)絡(luò)擁塞控制。TCP/IP網(wǎng)絡(luò)擁塞控制比較見(jiàn)表3。
3 結(jié) 語(yǔ)
綜上所述,TCP/IP是為廣域網(wǎng)設(shè)計(jì)的,其目的是為了解決Internet的穩(wěn)定性、易定性、各流之間享用帶寬的公平性、使用效率及擁塞控制等問(wèn)題,從而為Internet提供可靠、健壯的端到端通信。因此TCP/IP網(wǎng)絡(luò)擁塞控制就成了擁塞控制研究的重點(diǎn)問(wèn)題。本文通過(guò)對(duì)比分析TCP和IP擁塞控制的方法,可以看出這些擁塞控制方法都是基于傳統(tǒng)的控制理論衍生出來(lái)的,在發(fā)展過(guò)程中雖然有所改進(jìn),但是自身都會(huì)存在一定的局限性,因此缺乏一套系統(tǒng)完善的理論分析工具進(jìn)行指導(dǎo)。希望今后在網(wǎng)絡(luò)擁塞控制研究中引入智能控制理論,解決好擁塞算法分布性、復(fù)雜性以及對(duì)性能等方面的要求,從而取得突破性的進(jìn)展。
表3 TCP/IP網(wǎng)絡(luò)擁塞控制比較
[\&TCP擁塞控制\&IP擁塞控制\&實(shí)現(xiàn)位置\&端系統(tǒng)\&網(wǎng)絡(luò)內(nèi)部\&延遲\&較大\&無(wú)\&不同數(shù)據(jù)流間的公平性\&難以實(shí)現(xiàn)\&可以實(shí)現(xiàn)\&長(zhǎng)期擁塞\&可以處理\&無(wú)法處理\&短期擁塞\&可以處理\&較好處理\&]
參考文獻(xiàn)
[1] 趙晨.基于無(wú)線網(wǎng)絡(luò)的TCP跨層擁塞控制機(jī)制[D].沈陽(yáng):遼寧大學(xué),2011.
[2] 邵永剛.基于主動(dòng)隊(duì)列管理的網(wǎng)絡(luò)擁塞控制算法研究[D].鄭州:鄭州大學(xué),2010.
[3] 孫旭.基于TCP/IP協(xié)議的網(wǎng)絡(luò)擁塞控制方法研究[D].濟(jì)南:山東科技大學(xué),2011.
[4] 尹翔.異構(gòu)網(wǎng)絡(luò)環(huán)境下?lián)砣刂品椒ㄑ芯縖D].杭州:浙江大學(xué),2013.
[5] 王宏偉.TCP/IP網(wǎng)絡(luò)擁塞控制中主動(dòng)隊(duì)列管理算法研究[D].沈陽(yáng):東北大學(xué),2009.
[6] 夏仲平,蔣澤軍,王麗芳,等.對(duì)Windows TCP/IP協(xié)議棧的一種簡(jiǎn)化設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012,35(8):93?96.
圖1 網(wǎng)絡(luò)擁塞過(guò)程圖
2 TCP/IP網(wǎng)絡(luò)擁塞控制研究
控制網(wǎng)絡(luò)擁塞是一項(xiàng)系統(tǒng)工程,僅僅從某一方面入手無(wú)法有效地控制網(wǎng)絡(luò)擁塞,有時(shí)甚至?xí)又負(fù)砣?,因此必須把網(wǎng)絡(luò)擁塞當(dāng)作是一個(gè)復(fù)雜的系統(tǒng)進(jìn)行深入研究。從控制論的角度出發(fā),可以將網(wǎng)絡(luò)擁塞的控制當(dāng)作一個(gè)反饋系統(tǒng),該系統(tǒng)主要輸入網(wǎng)絡(luò)擁塞的各種信息,而輸出的則是端系統(tǒng)對(duì)發(fā)包速率的調(diào)整,此時(shí)端系統(tǒng)的發(fā)包速率影響著網(wǎng)絡(luò)擁塞的程度。下面主要從TCP和IP兩個(gè)方面分析網(wǎng)絡(luò)擁塞控制的算法研究。
2.1 TCP擁塞控制方法
傳輸控制協(xié)議(Transmission Control Protcol,TCP)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。該協(xié)議主要是為廣域網(wǎng)設(shè)計(jì),提供可靠的數(shù)據(jù)流服務(wù),通過(guò)帶重傳的肯定確認(rèn)技術(shù)實(shí)現(xiàn)傳輸?shù)目煽啃?。因?對(duì)于TCP的擁塞控制一直都是網(wǎng)絡(luò)擁塞研究的重點(diǎn)內(nèi)容。
傳統(tǒng)的TCP網(wǎng)絡(luò)擁塞控制方法主要是基于Van Jacobson提出的 “擁塞避免”算法、“慢啟法”算法以及一個(gè)用于估計(jì)周轉(zhuǎn)RTT的算法等。可以說(shuō)這些算法為后期TCP網(wǎng)絡(luò)擁塞控制的進(jìn)一步研究提供了理論基礎(chǔ),以至于后期的TCP網(wǎng)絡(luò)擁塞控制研究都是在這些算法上進(jìn)行的升級(jí)和改進(jìn)。目前主要有TCP Tahoe,TCP Reno,TCP New Reno以及TCP Sack四種類型。TCP Tahoe分為加性增和乘性減、慢啟動(dòng)以及快速重傳三個(gè)部分。加性增和乘性減主要是通過(guò)對(duì)擁塞窗口值增加或者減少的方式實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)擁塞的控制;而慢啟動(dòng)則是在數(shù)據(jù)發(fā)送的初始化階段對(duì)數(shù)據(jù)包進(jìn)行慢速率的發(fā)送,但以指數(shù)的速度快速增加其發(fā)送速率來(lái)避免初始化階段由于發(fā)送窗口過(guò)小造成的帶寬浪費(fèi);而快速重傳則主要針對(duì)丟失包,在不必等到重傳超時(shí)的情況下就可以立即發(fā)送。TCP Reno可以說(shuō)是TCP Tahoe的升級(jí)優(yōu)化,與TCP Tahoe相比TCP Reno擁有快速恢復(fù)功能,可以將擁塞窗口減半從而進(jìn)入擁塞避免階段;TCP New Reno則更加避免了TCP Reno在快速恢復(fù)階段出現(xiàn)的重傳超時(shí),更好地提升網(wǎng)絡(luò)性能;TCP Sack是在檢測(cè)到網(wǎng)絡(luò)擁塞的丟失包后,對(duì)這些數(shù)據(jù)進(jìn)行選擇確認(rèn)后有選擇性的重傳。TCP網(wǎng)絡(luò)擁塞控制方法比較見(jiàn)表1。
表1 TCP網(wǎng)絡(luò)擁塞控制方法
[類型\&優(yōu)點(diǎn)\&缺點(diǎn)\&TCP Tahoe\&建立了TCP擁塞控制的基礎(chǔ),避免了擁塞崩潰的發(fā)生\&沒(méi)有快速恢復(fù),輕度時(shí),
擁塞窗口減小,降低吞吐量\&TCP Reno\&增加了快速恢復(fù),輕度擁塞時(shí)保持較高的擁塞窗口\&檢測(cè)到丟包,重傳所有
丟失與檢測(cè)到所有丟失包\&TCP New Reno\&利用一個(gè)ACK確認(rèn)部分發(fā)送窗口,避免過(guò)多的重傳\&在高速網(wǎng)絡(luò)中不能
有效利用帶寬\&TCP Sack\&檢測(cè)到擁塞時(shí),選擇性的重傳包,避免不必要的重傳\&需要修改TCP接收端,
實(shí)現(xiàn)復(fù)雜\&]
2.2 IP擁塞控制方法
網(wǎng)絡(luò)互聯(lián)協(xié)議(Internet Protcol,IP)主要是為計(jì)算機(jī)網(wǎng)絡(luò)互聯(lián)過(guò)程中的通信而設(shè)計(jì)的一種協(xié)議,因此可以說(shuō),在互聯(lián)網(wǎng)中IP規(guī)定了計(jì)算機(jī)在互聯(lián)網(wǎng)上進(jìn)行通信時(shí)所遵守的規(guī)則。典型的IP擁塞控制方法包括FIFO,F(xiàn)Q和WFQ,RED以及ECN四種類型。先入先出原則(First Input First Output,F(xiàn)IFO),顧名思義就是對(duì)先到達(dá)的數(shù)據(jù)包進(jìn)行優(yōu)先服務(wù),被廣泛用于隊(duì)列調(diào)度的管理方式中;FQ和WFQ,即公平排隊(duì)原則(Fair Queuing)和加權(quán)公平排隊(duì)原則(Weighted Fair Queuing),通過(guò)識(shí)別對(duì)話例如數(shù)據(jù)流的形式,并將其按照對(duì)話形式進(jìn)行分組,確保傳輸容量被這些獨(dú)立的對(duì)話公平分享,加權(quán)公平排隊(duì)可以在網(wǎng)絡(luò)擁塞發(fā)生時(shí)自動(dòng)穩(wěn)定網(wǎng)絡(luò)運(yùn)行,減少分組重發(fā);隨機(jī)檢測(cè)算法(Random Early Detection,RED)包括監(jiān)控隊(duì)列長(zhǎng)度和丟棄數(shù)據(jù)包兩個(gè)部分,主要是通過(guò)對(duì)路由器中的數(shù)據(jù)包隊(duì)列長(zhǎng)度進(jìn)行實(shí)時(shí)監(jiān)控,在發(fā)生空間占滿之前隨機(jī)的將一些數(shù)據(jù)包丟棄,從而減少進(jìn)入輸出端口的數(shù)據(jù)信息量;顯示擁塞指示算法(Explicit Congestion Notifcation,ECN),在發(fā)送端可以更好地得到擁塞通告,避免不必要的丟包事件發(fā)生。IP網(wǎng)絡(luò)擁塞控制方法見(jiàn)表2。
表2 IP網(wǎng)絡(luò)擁塞控制方法
[類型\&優(yōu)點(diǎn)\&缺點(diǎn)\&FIFO\&簡(jiǎn)單且易于實(shí)現(xiàn)\&會(huì)導(dǎo)致全局同步和
公平性問(wèn)題\&FQ和WFQ\&可實(shí)現(xiàn)鏈路的公平分配\&需要維護(hù)每個(gè)數(shù)據(jù)流的
狀態(tài),實(shí)現(xiàn)復(fù)雜\&RED\&早期預(yù)測(cè)擁塞,有利于
處理突發(fā)數(shù)據(jù)流\&參數(shù)確定較難,而且
穩(wěn)定性存在問(wèn)題\&ECN\&通過(guò)標(biāo)記,不是丟包通知
擁塞,避免不必要的丟包\&不兼容ECN的連接,會(huì)忽略通告信息。通告信息本身可能丟失\&]
2.3 TCP/IP網(wǎng)絡(luò)擁塞控制比較
通過(guò)以上分析,可以看出TCP網(wǎng)絡(luò)擁塞控制方法主要是對(duì)在端系統(tǒng)中,對(duì)信源進(jìn)行有效控制,在擁塞發(fā)生和控制過(guò)程中會(huì)產(chǎn)生一定的延遲,很有可能傳遞擁塞信息反饋在數(shù)據(jù)傳輸完成后才到達(dá)發(fā)送源端。而IP則主要集中在網(wǎng)絡(luò)中,通過(guò)感知網(wǎng)絡(luò)擁塞的發(fā)生采取必要的控制措施,可以區(qū)分不同的發(fā)送源端產(chǎn)生的數(shù)據(jù)信息,通過(guò)隊(duì)列調(diào)度方法實(shí)現(xiàn)對(duì)帶寬的公平使用,因此,適用于短期的網(wǎng)絡(luò)擁塞控制。TCP/IP網(wǎng)絡(luò)擁塞控制比較見(jiàn)表3。
3 結(jié) 語(yǔ)
綜上所述,TCP/IP是為廣域網(wǎng)設(shè)計(jì)的,其目的是為了解決Internet的穩(wěn)定性、易定性、各流之間享用帶寬的公平性、使用效率及擁塞控制等問(wèn)題,從而為Internet提供可靠、健壯的端到端通信。因此TCP/IP網(wǎng)絡(luò)擁塞控制就成了擁塞控制研究的重點(diǎn)問(wèn)題。本文通過(guò)對(duì)比分析TCP和IP擁塞控制的方法,可以看出這些擁塞控制方法都是基于傳統(tǒng)的控制理論衍生出來(lái)的,在發(fā)展過(guò)程中雖然有所改進(jìn),但是自身都會(huì)存在一定的局限性,因此缺乏一套系統(tǒng)完善的理論分析工具進(jìn)行指導(dǎo)。希望今后在網(wǎng)絡(luò)擁塞控制研究中引入智能控制理論,解決好擁塞算法分布性、復(fù)雜性以及對(duì)性能等方面的要求,從而取得突破性的進(jìn)展。
表3 TCP/IP網(wǎng)絡(luò)擁塞控制比較
[\&TCP擁塞控制\&IP擁塞控制\&實(shí)現(xiàn)位置\&端系統(tǒng)\&網(wǎng)絡(luò)內(nèi)部\&延遲\&較大\&無(wú)\&不同數(shù)據(jù)流間的公平性\&難以實(shí)現(xiàn)\&可以實(shí)現(xiàn)\&長(zhǎng)期擁塞\&可以處理\&無(wú)法處理\&短期擁塞\&可以處理\&較好處理\&]
參考文獻(xiàn)
[1] 趙晨.基于無(wú)線網(wǎng)絡(luò)的TCP跨層擁塞控制機(jī)制[D].沈陽(yáng):遼寧大學(xué),2011.
[2] 邵永剛.基于主動(dòng)隊(duì)列管理的網(wǎng)絡(luò)擁塞控制算法研究[D].鄭州:鄭州大學(xué),2010.
[3] 孫旭.基于TCP/IP協(xié)議的網(wǎng)絡(luò)擁塞控制方法研究[D].濟(jì)南:山東科技大學(xué),2011.
[4] 尹翔.異構(gòu)網(wǎng)絡(luò)環(huán)境下?lián)砣刂品椒ㄑ芯縖D].杭州:浙江大學(xué),2013.
[5] 王宏偉.TCP/IP網(wǎng)絡(luò)擁塞控制中主動(dòng)隊(duì)列管理算法研究[D].沈陽(yáng):東北大學(xué),2009.
[6] 夏仲平,蔣澤軍,王麗芳,等.對(duì)Windows TCP/IP協(xié)議棧的一種簡(jiǎn)化設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012,35(8):93?96.
圖1 網(wǎng)絡(luò)擁塞過(guò)程圖
2 TCP/IP網(wǎng)絡(luò)擁塞控制研究
控制網(wǎng)絡(luò)擁塞是一項(xiàng)系統(tǒng)工程,僅僅從某一方面入手無(wú)法有效地控制網(wǎng)絡(luò)擁塞,有時(shí)甚至?xí)又負(fù)砣?,因此必須把網(wǎng)絡(luò)擁塞當(dāng)作是一個(gè)復(fù)雜的系統(tǒng)進(jìn)行深入研究。從控制論的角度出發(fā),可以將網(wǎng)絡(luò)擁塞的控制當(dāng)作一個(gè)反饋系統(tǒng),該系統(tǒng)主要輸入網(wǎng)絡(luò)擁塞的各種信息,而輸出的則是端系統(tǒng)對(duì)發(fā)包速率的調(diào)整,此時(shí)端系統(tǒng)的發(fā)包速率影響著網(wǎng)絡(luò)擁塞的程度。下面主要從TCP和IP兩個(gè)方面分析網(wǎng)絡(luò)擁塞控制的算法研究。
2.1 TCP擁塞控制方法
傳輸控制協(xié)議(Transmission Control Protcol,TCP)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。該協(xié)議主要是為廣域網(wǎng)設(shè)計(jì),提供可靠的數(shù)據(jù)流服務(wù),通過(guò)帶重傳的肯定確認(rèn)技術(shù)實(shí)現(xiàn)傳輸?shù)目煽啃?。因?對(duì)于TCP的擁塞控制一直都是網(wǎng)絡(luò)擁塞研究的重點(diǎn)內(nèi)容。
傳統(tǒng)的TCP網(wǎng)絡(luò)擁塞控制方法主要是基于Van Jacobson提出的 “擁塞避免”算法、“慢啟法”算法以及一個(gè)用于估計(jì)周轉(zhuǎn)RTT的算法等??梢哉f(shuō)這些算法為后期TCP網(wǎng)絡(luò)擁塞控制的進(jìn)一步研究提供了理論基礎(chǔ),以至于后期的TCP網(wǎng)絡(luò)擁塞控制研究都是在這些算法上進(jìn)行的升級(jí)和改進(jìn)。目前主要有TCP Tahoe,TCP Reno,TCP New Reno以及TCP Sack四種類型。TCP Tahoe分為加性增和乘性減、慢啟動(dòng)以及快速重傳三個(gè)部分。加性增和乘性減主要是通過(guò)對(duì)擁塞窗口值增加或者減少的方式實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)擁塞的控制;而慢啟動(dòng)則是在數(shù)據(jù)發(fā)送的初始化階段對(duì)數(shù)據(jù)包進(jìn)行慢速率的發(fā)送,但以指數(shù)的速度快速增加其發(fā)送速率來(lái)避免初始化階段由于發(fā)送窗口過(guò)小造成的帶寬浪費(fèi);而快速重傳則主要針對(duì)丟失包,在不必等到重傳超時(shí)的情況下就可以立即發(fā)送。TCP Reno可以說(shuō)是TCP Tahoe的升級(jí)優(yōu)化,與TCP Tahoe相比TCP Reno擁有快速恢復(fù)功能,可以將擁塞窗口減半從而進(jìn)入擁塞避免階段;TCP New Reno則更加避免了TCP Reno在快速恢復(fù)階段出現(xiàn)的重傳超時(shí),更好地提升網(wǎng)絡(luò)性能;TCP Sack是在檢測(cè)到網(wǎng)絡(luò)擁塞的丟失包后,對(duì)這些數(shù)據(jù)進(jìn)行選擇確認(rèn)后有選擇性的重傳。TCP網(wǎng)絡(luò)擁塞控制方法比較見(jiàn)表1。
表1 TCP網(wǎng)絡(luò)擁塞控制方法
[類型\&優(yōu)點(diǎn)\&缺點(diǎn)\&TCP Tahoe\&建立了TCP擁塞控制的基礎(chǔ),避免了擁塞崩潰的發(fā)生\&沒(méi)有快速恢復(fù),輕度時(shí),
擁塞窗口減小,降低吞吐量\&TCP Reno\&增加了快速恢復(fù),輕度擁塞時(shí)保持較高的擁塞窗口\&檢測(cè)到丟包,重傳所有
丟失與檢測(cè)到所有丟失包\&TCP New Reno\&利用一個(gè)ACK確認(rèn)部分發(fā)送窗口,避免過(guò)多的重傳\&在高速網(wǎng)絡(luò)中不能
有效利用帶寬\&TCP Sack\&檢測(cè)到擁塞時(shí),選擇性的重傳包,避免不必要的重傳\&需要修改TCP接收端,
實(shí)現(xiàn)復(fù)雜\&]
2.2 IP擁塞控制方法
網(wǎng)絡(luò)互聯(lián)協(xié)議(Internet Protcol,IP)主要是為計(jì)算機(jī)網(wǎng)絡(luò)互聯(lián)過(guò)程中的通信而設(shè)計(jì)的一種協(xié)議,因此可以說(shuō),在互聯(lián)網(wǎng)中IP規(guī)定了計(jì)算機(jī)在互聯(lián)網(wǎng)上進(jìn)行通信時(shí)所遵守的規(guī)則。典型的IP擁塞控制方法包括FIFO,F(xiàn)Q和WFQ,RED以及ECN四種類型。先入先出原則(First Input First Output,F(xiàn)IFO),顧名思義就是對(duì)先到達(dá)的數(shù)據(jù)包進(jìn)行優(yōu)先服務(wù),被廣泛用于隊(duì)列調(diào)度的管理方式中;FQ和WFQ,即公平排隊(duì)原則(Fair Queuing)和加權(quán)公平排隊(duì)原則(Weighted Fair Queuing),通過(guò)識(shí)別對(duì)話例如數(shù)據(jù)流的形式,并將其按照對(duì)話形式進(jìn)行分組,確保傳輸容量被這些獨(dú)立的對(duì)話公平分享,加權(quán)公平排隊(duì)可以在網(wǎng)絡(luò)擁塞發(fā)生時(shí)自動(dòng)穩(wěn)定網(wǎng)絡(luò)運(yùn)行,減少分組重發(fā);隨機(jī)檢測(cè)算法(Random Early Detection,RED)包括監(jiān)控隊(duì)列長(zhǎng)度和丟棄數(shù)據(jù)包兩個(gè)部分,主要是通過(guò)對(duì)路由器中的數(shù)據(jù)包隊(duì)列長(zhǎng)度進(jìn)行實(shí)時(shí)監(jiān)控,在發(fā)生空間占滿之前隨機(jī)的將一些數(shù)據(jù)包丟棄,從而減少進(jìn)入輸出端口的數(shù)據(jù)信息量;顯示擁塞指示算法(Explicit Congestion Notifcation,ECN),在發(fā)送端可以更好地得到擁塞通告,避免不必要的丟包事件發(fā)生。IP網(wǎng)絡(luò)擁塞控制方法見(jiàn)表2。
表2 IP網(wǎng)絡(luò)擁塞控制方法
[類型\&優(yōu)點(diǎn)\&缺點(diǎn)\&FIFO\&簡(jiǎn)單且易于實(shí)現(xiàn)\&會(huì)導(dǎo)致全局同步和
公平性問(wèn)題\&FQ和WFQ\&可實(shí)現(xiàn)鏈路的公平分配\&需要維護(hù)每個(gè)數(shù)據(jù)流的
狀態(tài),實(shí)現(xiàn)復(fù)雜\&RED\&早期預(yù)測(cè)擁塞,有利于
處理突發(fā)數(shù)據(jù)流\&參數(shù)確定較難,而且
穩(wěn)定性存在問(wèn)題\&ECN\&通過(guò)標(biāo)記,不是丟包通知
擁塞,避免不必要的丟包\&不兼容ECN的連接,會(huì)忽略通告信息。通告信息本身可能丟失\&]
2.3 TCP/IP網(wǎng)絡(luò)擁塞控制比較
通過(guò)以上分析,可以看出TCP網(wǎng)絡(luò)擁塞控制方法主要是對(duì)在端系統(tǒng)中,對(duì)信源進(jìn)行有效控制,在擁塞發(fā)生和控制過(guò)程中會(huì)產(chǎn)生一定的延遲,很有可能傳遞擁塞信息反饋在數(shù)據(jù)傳輸完成后才到達(dá)發(fā)送源端。而IP則主要集中在網(wǎng)絡(luò)中,通過(guò)感知網(wǎng)絡(luò)擁塞的發(fā)生采取必要的控制措施,可以區(qū)分不同的發(fā)送源端產(chǎn)生的數(shù)據(jù)信息,通過(guò)隊(duì)列調(diào)度方法實(shí)現(xiàn)對(duì)帶寬的公平使用,因此,適用于短期的網(wǎng)絡(luò)擁塞控制。TCP/IP網(wǎng)絡(luò)擁塞控制比較見(jiàn)表3。
3 結(jié) 語(yǔ)
綜上所述,TCP/IP是為廣域網(wǎng)設(shè)計(jì)的,其目的是為了解決Internet的穩(wěn)定性、易定性、各流之間享用帶寬的公平性、使用效率及擁塞控制等問(wèn)題,從而為Internet提供可靠、健壯的端到端通信。因此TCP/IP網(wǎng)絡(luò)擁塞控制就成了擁塞控制研究的重點(diǎn)問(wèn)題。本文通過(guò)對(duì)比分析TCP和IP擁塞控制的方法,可以看出這些擁塞控制方法都是基于傳統(tǒng)的控制理論衍生出來(lái)的,在發(fā)展過(guò)程中雖然有所改進(jìn),但是自身都會(huì)存在一定的局限性,因此缺乏一套系統(tǒng)完善的理論分析工具進(jìn)行指導(dǎo)。希望今后在網(wǎng)絡(luò)擁塞控制研究中引入智能控制理論,解決好擁塞算法分布性、復(fù)雜性以及對(duì)性能等方面的要求,從而取得突破性的進(jìn)展。
表3 TCP/IP網(wǎng)絡(luò)擁塞控制比較
[\&TCP擁塞控制\&IP擁塞控制\&實(shí)現(xiàn)位置\&端系統(tǒng)\&網(wǎng)絡(luò)內(nèi)部\&延遲\&較大\&無(wú)\&不同數(shù)據(jù)流間的公平性\&難以實(shí)現(xiàn)\&可以實(shí)現(xiàn)\&長(zhǎng)期擁塞\&可以處理\&無(wú)法處理\&短期擁塞\&可以處理\&較好處理\&]
參考文獻(xiàn)
[1] 趙晨.基于無(wú)線網(wǎng)絡(luò)的TCP跨層擁塞控制機(jī)制[D].沈陽(yáng):遼寧大學(xué),2011.
[2] 邵永剛.基于主動(dòng)隊(duì)列管理的網(wǎng)絡(luò)擁塞控制算法研究[D].鄭州:鄭州大學(xué),2010.
[3] 孫旭.基于TCP/IP協(xié)議的網(wǎng)絡(luò)擁塞控制方法研究[D].濟(jì)南:山東科技大學(xué),2011.
[4] 尹翔.異構(gòu)網(wǎng)絡(luò)環(huán)境下?lián)砣刂品椒ㄑ芯縖D].杭州:浙江大學(xué),2013.
[5] 王宏偉.TCP/IP網(wǎng)絡(luò)擁塞控制中主動(dòng)隊(duì)列管理算法研究[D].沈陽(yáng):東北大學(xué),2009.
[6] 夏仲平,蔣澤軍,王麗芳,等.對(duì)Windows TCP/IP協(xié)議棧的一種簡(jiǎn)化設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012,35(8):93?96.