Tcp擁塞控制方法及裝置的制造方法
【技術領域】
[0001]本發明涉及網絡通信技術領域,特別是涉及一種TCP擁塞控制方法及裝置。
【背景技術】
[0002]網絡的吞吐量與通信子網負荷(即通信子網中正在傳輸的分組數)有著密切的關系。當通信子網負荷比較小時,網絡的吞吐量(分組數/秒)隨網絡負荷(每個節點中分組的平均數)的增加而線性增加。當網絡負荷增加到某一值后,若網絡吞吐量反而下降,則表征網絡中出現了擁塞現象。在一個出現擁塞現象的網絡中,到達某個節點的分組將會遇到無緩沖區可用的情況,從而使這些分組不得不由前一節點重傳,或者需要由源節點或源端系統重傳。當擁塞比較嚴重時,通信子網中相當多的傳輸資源和節點緩沖器都用于這種無謂的重傳,從而使通信子網的有效吞吐量下降。由此引起惡性循環,使通信子網的局部甚至全網處于死鎖狀態,最終導致網絡有效吞吐量接近為零。
[0003]現有的英特網(Internet)中擁塞控制的大部分工作是由TCP完成的,目前標準TCP協議的實現都包含了一些避免和控制網絡擁塞的TCP擁塞控制算法。采用TCP擁塞控制算法是一種防止網絡擁塞、流量控制,網絡擁塞恢復處理的算法,能夠有效確保TCP網絡暢通,網絡穩定。當今網絡的可靠性和穩定性與TCP擁塞控制機制密不可分,而TCP的成功也要歸功于其穩固的擁塞控制機制。
[0004]但是,現有技術中的TCP擁塞控制方法,所有的TCP連接均采用相同的方法進行擁塞窗口的控制,存在著帶寬資源利用率較低的問題。
【發明內容】
[0005]本發明實施例解決的問題是如何在TCP擁塞控制過程中提高帶寬資源的利用率。
[0006]為解決上述問題,本發明實施例提供了一種TCP擁塞控制方法,所述方法包括:
[0007]當前TCP連接建立成功時,根據網絡的實際運行狀況和所獲取的預設的擁塞窗口數值,計算得出當前TCP連接的初始擁塞窗口的信息;
[0008]根據網絡的實際運行狀況,計算得出擁塞窗口增長數值;
[0009]采用計算得到的所述當前TCP連接的初始擁塞窗口和所述擁塞窗口增長數值,進?fT TCP 會話。
[0010]可選地,所述方法還包括:
[0011]當TCP會話過程中發生丟包事件時,判斷所述當前丟包事件是否由網絡擁塞造成;
[0012]當確定所述當前丟包事件為網絡擁塞造成時,減少擁塞窗口,并進行丟失數據的重傳;
[0013]當確定所述當前丟包事件非網絡擁塞造成時,恢復當前丟包事件發生時刻的擁塞窗口,并進行丟失數據的重傳。
[0014]可選地,所述判斷當前丟包事件是否由網絡擁塞造成,包括:
[0015]在當前丟包事件發生時,將所述當前丟包事件與丟包事件記錄表中的丟包事件進行匹配,所述丟包事件記錄表中的丟包事件由非網絡擁塞造成;
[0016]當所述當前丟包事件與所述丟包事件記錄表中的丟包事件匹配成功時,確定所述當前丟包事件非為網絡擁塞造成;
[0017]當所述當前丟包事件與所述丟包事件記錄表中的丟包事件匹配失敗時,確定所述當前丟包事件為網絡擁塞造成。
[0018]可選地,所述方法還包括:采集并存儲所述當前丟包事件對應的擁塞原因、擁塞開始時間及相應的擁塞窗口,以及擁塞結束時間及相應的擁塞窗口的信息。
[0019]可選地,所述根據網絡的實際運行狀況和所獲取的預設的擁塞窗口數值,計算得出當前TCP連接的初始擁塞窗口的信息,包括:
[0020]獲取TCP連接的往返時間和預設擁塞窗口的信息;
[0021]采用所獲取的TCP連接的往返時間和預設擁塞窗口的信息,計算得出所述初始擁塞窗口。
[0022]可選地,所述采用所獲取的TCP連接的往返時間和預設擁塞窗口的信息,計算得出所述初始擁塞窗口,包括:
[0023]cwnd= ((5*rtt+3* α )/8) * β ;
[0024]其中,cwnd表示初始擁塞窗口的數值,rtt表示TCP連接的往返時間,α為預設的TCP連接往返時間的平均值,β是預設的擁塞窗口數值。
[0025]可選地,所述方法還包括:
[0026]根據TCP連接的往返時間與最大擁塞窗口的信息,計算得出網絡最大吞吐量對應的擁塞窗口的數值;
[0027]在TCP會話過程中,控制擁塞窗口小于或等于所述網絡最大吞吐量對應的擁塞窗
□O
[0028]可選地,所述根據網絡實際運行狀況,計算得出擁塞窗口增長數值,包括:
[0029]根據請求數據包的發送時間和應答數據包的接收時間,計算得出TCP連接的往返時間;
[0030]根據當前TCP連接已經發送未確認的數據包的數量,得出當前網絡帶寬的信息;
[0031]采用計算得出TCP連接的往返時間和當前網絡帶寬的信息,計算得出擁塞窗口增長數值。
[0032]可選地,所述采用計算得出TCP連接的往返時間和當前網絡帶寬的信息,計算得出擁塞窗口增長數值,包括:
[0033]cnt= (bw/min_rtt-bw/rtt) * α ;
[0034]其中,cnt表示擁塞窗口增長數值,rtt表示TCP連接的平均往返時間,min_rtt是TCP連接的往返時間的最小值,bw表示當前網絡帶寬,α為預設的增長比例。
[0035]本發明實施例還提供了一種TCP擁塞控制方法,所述方法包括:
[0036]當TCP會話過程中發生丟包事件時,判斷所述當前丟包事件是否由網絡擁塞造成;
[0037]當確定所述當前丟包事件為網絡擁塞造成時,減少擁塞窗口,并進行丟失數據的重傳;
[0038]當確定所述當前丟包事件非網絡擁塞造成時,恢復當前丟包事件發生時刻的擁塞窗口,并進行丟失數據的重傳。
[0039]可選地,所述判斷當前丟包事件是否由網絡擁塞造成,包括:
[0040]在當前丟包事件發生時,將所述當前丟包事件與丟包事件記錄表中的丟包事件進行匹配,所述丟包事件記錄表中的丟包事件由非網絡擁塞造成;
[0041]當所述當前丟包事件與所述丟包事件記錄表中的丟包事件匹配成功時,確定所述當前丟包事件非為網絡擁塞造成;
[0042]當所述當前丟包事件與所述丟包事件記錄表中的丟包事件匹配失敗時,確定所述當前丟包事件為網絡擁塞造成。
[0043]可選地,所述方法還包括:采集并存儲所述當前丟包事件對應的擁塞原因、擁塞開始時間及相應的擁塞窗口,以及擁塞結束時間及相應的擁塞窗口的信息。
[0044]本發明實施例還提供了一種TCP擁塞控制裝置,所述裝置包括:
[0045]第一計算單元,適于當前TCP連接建立成功時,根據網絡的實際運行狀況和所獲取的預設的擁塞窗口數值,計算得出當前TCP連接的初始擁塞窗口的信息;
[0046]第二計算單元,適于根據網絡的實際運行狀況,計算得出擁塞窗口增長數值;
[0047]會話控制單元,適于采用計算得到的所述當前TCP連接的初始擁塞窗口和所述擁塞窗口增長數值,進行TCP會話。
[0048]可選地,所述裝置還包括:
[0049]第一判斷單元,適于當TCP會話過程中發生丟包事件時,判斷所述當前丟包事件是否由網絡擁塞造成;
[0050]擁塞處理單元,適于當確定所述當前丟包事件為網絡擁塞造成時,減少擁塞窗口,并進行丟失數據的重傳;當確定所述當前丟包事件非網絡擁塞造成時,恢復當前丟包事件發生時刻的擁塞窗口,并進行丟失數據的重傳。
[0051]可選地,所述裝置還包括:
[0052]第一判斷單元,適于當TCP會話過程中發生丟包事件時,判斷所述當前丟包事件是否由網絡擁塞造成;當確定所述當前丟包事件為網絡擁塞造成時,減少擁塞窗口,并進行丟失數據的重傳;當確定所述當前丟包事件非網絡擁塞造成時,恢復當前丟包事件發生時刻的擁塞窗口,并進行丟失數據的重傳。
[0053]可選地,所述第一判斷單元適于在當前丟包事件發生時,將所述當前丟包事件與丟包事件記錄表中的丟包事件進行匹配,所述丟包事件記錄表中的丟包事件由非網絡擁塞造成;當所述當前丟包事件與所述丟包事件記錄表中的丟包事件匹配成功時,確定所述當前丟包事件非為網絡擁塞造成;當所述當前丟包事件與所述丟包事件記錄表中的丟包事件匹配失敗時,確定所述當前丟包事件為網絡擁塞造成。
[0054]可選地,所述裝置還包括:第一存儲單元,適于采集并存儲所述當前丟包事件對應的擁塞原因、擁塞開始時間及相應的擁塞窗口,以及擁塞結束時間及相應的擁塞窗口的信息。
[0055]可選地,所述第一計算單元適于獲取TCP連接的往返時間和預設擁塞窗口的信息;采用所獲取的TCP連接的往返時間和預設擁塞窗口的信息,計算得出所述初始擁塞窗
□O
[0056]可選地,所述裝置還包括:第二會話控制單元,適于根據TCP連接的往返時間與最大擁塞窗口的信息,計算得出網絡最大吞吐量對應的擁塞窗口的數值;在TCP會話過程中,控制擁塞窗口小于或等于所述網絡最大吞吐量對應的擁塞窗口。
[0057]可選地,所述第二計算單元適于根據請求數據包的發送時間和應答數據包的接收時間,計算得出TCP連接的往返時間;根據當前TCP連接已經發送未確認的數據包的數量,得出當前網絡帶寬的信息;采用計算得出TCP連接的往返時間和當前網絡帶寬的信息,計算得出擁塞窗口增長數值。
[0058]本發明實施例還提供了一種TCP擁塞控制裝置,所述裝置包括:
[0059]第二判斷單元,適于當TCP會話過程中發生丟包事件時,判斷所述當前丟包事件是否由網絡擁塞造成;
[0060]第一擁塞控制單元,適于當確定所述當前丟包事件為網絡擁塞造成時,減少擁塞窗口,并進行丟失數據