◆黎國華
基于歷史連接參數的網絡擁塞改進算法研究
◆黎國華
(梧州學院繼續教育學院 廣西 543002)
本文分析了“慢啟動”算法存在的問題,分析和提出了基于歷史連接參數的網絡擁塞改進算法,供相關讀者參考。
網絡擁塞;TCP;慢啟動
TCP擁塞控制機制[1]可以有效控制Internet擁塞崩潰[2]現象的發生,但它也有一些局限性,并不適用于所有的網絡。在TCP擁塞控制的關鍵算法中,“慢啟動”就是一個典型的算法。此算法在網絡擁塞、擁塞窗口控制和數據丟失方面應用效果比較好。
(1)在“慢啟動”階段,由于發送方無法預知瓶頸鏈路帶寬,致使擁塞窗口成倍增加;當ssthresh的值增加到較大時,發送窗口就會變大,使得數據包丟失二分之一;其次,TCP“慢啟動”會使 TCP頻繁使用“慢啟動”算法通信,造成網絡資源被占用以及導致時間延遲。
(2)“慢啟動”擁塞控制算法在WWW數據流服務時應用中,會造成網絡帶寬變窄、傳輸延遲等問題。
針對“慢啟動”存在的問題,通過對初始參數的優化,利用基于修改歷史連接參數的方法,改進令牌技術均勻發送初始窗口數據包的傳輸方式,通過設置“慢啟動”階段原始參數,提高 TCP的綜合性能。該算法可以使數據包均勻發送,擁塞參數得到緩存,達到盡可能避免網絡擁塞現象發生的目的。
此算法與TCP擁塞控制共享同樣信息,使相似的連接的擁塞參數能夠在緩存表中保存,存儲的數據主要是cwnd, ssthresh, RTT等;同時能夠將每個連接中的全部參數保存到對應的緩存記錄中,也可以利用歷史連接的參數值,當遇到類似的數據連接時,初始化新連接的參數,減少檢測網絡帶寬的時間,較好地避免傳輸延遲現象的發生。
因為緩存信息設置的初始窗口比一個數據包大,在數據傳輸如果不進行處理,會導致大量數據迅速注入網絡,造成網絡擁擠。為了避免大數據流擁塞網絡,將令牌控制算法加入發送方,將 RTT/ cwnd轉為令牌速度,使窗口中的傳輸數據包能均衡地傳輸,直到 ACK自動計時才開始傳輸。
此算法通過對發送方進行優化,達到避免大數據流擁塞網絡的目的,算法實現如下:
首先,通過建立一個存放連接參數的緩存表,將目標主機地址、cwnd、ssthresh和RTT等信息進行保存。
其次,根據緩存表中存儲的歷史記錄,建立新的數據連接;如果兩者信息匹配,則從緩存表中提取對應緩存信息,初始化新連接參數,保持 ssthreth、 RTT兩個值不變;一個新連接是處于“慢啟動”階段還是擁塞避免階段,主要取決于 cwnd大小變化。如果處于“慢啟動”階段,則cwnd的值將減半;如處于擁塞避免階段,則cwnd的值變為cwnd-1。
如果發送方檢測到cwnd的值減少,則將擁塞參數值暫存到緩存表中。為此,如果在緩存表中沒有檢測到數據連接的記錄,則將連接參數暫存到緩存表中;反之,只保存最后一次連接的狀態數據。因此我們可通過加權平均值的方法,將各個擁塞參數的初值計算并保存到存儲表中,以便在發送網絡擁堵時,充分利用最后一段時間內的連接信息來解決網絡擁塞問題。
網絡擁塞參數的保存時間直接反映出網絡擁塞程度,為此,要充分考慮網絡傳輸的時間。
如在保存cwnd參數時,令:q=now-timesave
cwndsave=(1-f(α,q))×cwndcurr+f(α,q)×cwndsave
根據上面的公式可以看出,當 q變無窮大時,f(α,q)接近0;如果α約等于0,表明新連接的擁塞參數受原來的擁塞參數影響比較大;反之,如果新連接的參數的值由歷史連接的參數確定的話,即α=0.2,那么,當網絡速度下降時,它的加權平均值約等于最后一次連接狀態的參數值。
一般情況下,初始化新建連接根據緩存信息參數的窗口會比一個數據包的值大,為了使初始窗口中的大數據不運行到網絡中,造成網絡擁塞,我們通過優化令牌機制算法,使數據包在首個RTT內能勻速傳輸,使大數據流轉換為勻速傳輸的數據流。令牌實際上就是DMA傳輸空間,它是由網絡序列分配的。實際上,緩存表中的擁塞窗口大小確定著令牌的數量,令牌機制算法只在窗口初始時使用。采用令牌機制控制,可以通過一個令牌后發送一個數據包,實行大量傳輸數據包間隔發送,降低了數據突發性。
控制算法在檢測到暫存的數據包失效時,可以通過改變RTT取樣值來達到控制的目的。其基本思想是在擁塞發生之前就主動減少cwnd以降低負載,避免擁塞發生。初始算法設置rttmin=∞和rttmax=0;對于每個有效RTT樣本(即沒有經過數據重發)rtt,則rttmin={rttmin,rtt}和rttmax= max{rttmax,rtt},每過兩個RTT后,若rtt<(rttmin+ rttmax)/2,則cwnd= min{awnd,cwnd}/4。通過這種控制方法,避免發生網絡擁塞,保證網絡運行平穩。
本文基于歷史連接參數的改進算法可以保證“慢啟動”比較短時間內完成,通過利用緩存表中存儲的ssthresh、rtt值,防止窗口出現大幅度波動。這種算法只涉及存儲器讀寫、比較等方面的優化,在硬件中比較容易實現。
[1]蘇曉麗,鄭明春,孟強.多播擁塞控制研究進展[J].通信學報,2003,24(5):94-102.
[2]NAGLE J. Congestion Control in IP/TCP Internetworks, RFC 896[S]. 1984.
[3]鄧斌,成衛青.基于改進慢啟動算法的大文件快速傳輸[J].計算機應用研究,2019,37(3):39-40.