一種tcp擁塞控制方法及裝置的制造方法
【技術領域】
[0001 ]本發(fā)明涉及網(wǎng)絡技術領域,尤其涉及一種TCP擁塞控制方法及裝置。
【背景技術】
[0002] 傳輸控制協(xié)議(Transmission Control Protocol,TCP)是一種面向連接的、可靠 的、基于字節(jié)流的、應用于網(wǎng)絡層的傳輸層通信協(xié)議。Internet(因特網(wǎng))上大部分數(shù)據(jù)流都 是使用TCP協(xié)議。而隨著過去十幾年計算機的迅猛增長。隨之而來出現(xiàn)了越來越多的網(wǎng)絡擁 塞問題,由于在某段時間內(nèi)對網(wǎng)絡的帶寬和網(wǎng)絡中間設備性能的需求大大超出了所能提供 的可用部分,造成網(wǎng)絡的性能變的越來越壞。而TCP的擁塞控制算法就是控制過多的數(shù)據(jù)注 入到網(wǎng)絡中,這樣可以使網(wǎng)絡中的中間設備不至于過載,可以說擁塞控制算法是TCP擁塞控 制的關鍵因素。
[0003] 目前TCP擁塞控制分為四個階段,包括:慢啟動階段、擁塞避免階段、快速重傳和快 速恢復階段,設置一個報文閾值,在慢啟動階段擁塞窗口以指數(shù)增長,當擁塞窗口增加到報 文閾值時,進入擁塞避免階段,在擁塞避免階段,為了避免網(wǎng)絡擁塞的出現(xiàn),擁塞窗口不再 以指數(shù)形式增長,而是以線性形式增長,在慢啟動階段和擁塞避免階段擁塞窗口的增長形 式僅依靠報文閾值確定,進而確定每個RTT(Round-trip Time,往返延時)周期的擁塞窗口, 這樣得到的擁塞窗口不夠準確。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明提供一種TCP擁塞控制方法及裝置,用以解決利用現(xiàn)有技術得到的擁塞窗 口不夠準確的技術問題。
[0005] 一種TCP擁塞控制方法,包括:
[0006] 確定本往返延時RTT周期結束且確定擁塞狀態(tài)機處于Open狀態(tài)時,確定本RTT周期 的RTT值以及本RTT周期的擁塞窗口;
[0007] 根據(jù)本RTT周期的RTT值以及歷史RTT最小值,確定當前RTT最小值;
[0008] 根據(jù)本RTT周期的RTT值、本RTT周期的擁塞窗口以及歷史RTT平均值,確定本RTT周 期的RTT平均值;
[0009] 根據(jù)所述當前RTT最小值、本RTT周期的RTT平均值以及本RTT周期的擁塞窗口,確 定期望擁塞窗口;
[0010] 根據(jù)所述期望擁塞窗口以及本RTT周期的擁塞窗口,確定下一RTT周期的擁塞窗 □ 〇
[0011] 所述方法,還包括:
[0012] 確定本RTT周期結束且確定擁塞狀態(tài)機處于非Open狀態(tài)時,根據(jù)歷史RTT平均值和 本RTT周期的RTT值,判斷是否發(fā)生網(wǎng)絡擁塞;
[0013] 如果是,根據(jù)預先設置的RTT值與擁塞窗口調(diào)整比例的對應關系以及本RTT周期的 RTT值,調(diào)整本RTT周期的擁塞窗口,并將調(diào)整后的擁塞窗口作為下一RTT周期的擁塞窗口, 所述調(diào)整后的擁塞窗口小于本RTT周期的擁塞窗口;
[0014] 如果否,將本RTT周期的擁塞窗口作為下一 RTT周期的擁塞窗口。
[0015] 本發(fā)明實施例,由于進行了網(wǎng)絡擁塞判斷,從而可以判斷出當前網(wǎng)絡是否真正發(fā) 生了網(wǎng)絡擁塞,當真正發(fā)生網(wǎng)絡擁塞時,才對擁塞窗口進行調(diào)整,從而避免了由于RTT突增 (未發(fā)生網(wǎng)絡擁塞)而導致的擁塞窗口調(diào)整的情況。
[0016] 所述方法,采用如下公式根據(jù)本RTT周期的RTT值、本RTT周期的擁塞窗口以及歷史 RTT平均值,確定本RTT周期的RTT平均值:
[0018] 其中,RTTavg表示本RTT周期的RTT平均值,cwnd為本RTT周期的擁塞窗口,RTT avgIs為 歷史RTT平均值,RTTben為本RTT周期的RTT值。
[0019] 所述方法,采用如下公式根據(jù)所述當前RTT最小值、本RTT周期的RTT平均值以及本 RTT周期的擁塞窗口,確定期望擁塞窗口 :
[0021] 其中,CwndE為期望擁塞窗口,RTTmin為當前RTT最小值,RTTavg為本RTT周期的RTT平 均值,cwnd為本RTT周期的擁塞窗口,α為設定常數(shù),K為大于0小于1的常數(shù)。
[0022]所述方法中,根據(jù)所述期望擁塞窗口和本RTT周期的擁塞窗口,確定下一RTT周期 的擁塞窗口,具體包括:
[0023]確定所述期望擁塞窗口小于或等于本RTT周期的擁塞窗口時,判斷所述期望擁塞 窗口是否大于當前網(wǎng)絡中的TCP報文數(shù);
[0024]如果是,確定所述期望擁塞窗口為下一 RTT周期的擁塞窗口;
[0025]否則,確定當前網(wǎng)絡中的TCP報文數(shù)為下一 RTT周期的擁塞窗口。
[0026]本發(fā)明實施例,本RTT周期的擁塞窗口比期望窗口大或相等時,說明不需要再增大 擁塞窗口了,而是需要將擁塞窗口降低為期望窗口。為了保證正常傳輸當前網(wǎng)絡中的TCP報 文,進一步地將期望窗口與當前網(wǎng)絡中的TCP報文數(shù)進行比較,從而確定最終如何調(diào)整擁塞 窗口并將調(diào)整后的擁塞窗口作為下一 RTT周期的擁塞窗口
[0027]所述方法中,根據(jù)所述期望擁塞窗口和本RTT周期的擁塞窗口,確定下一RTT周期 的擁塞窗口,具體包括:
[0028]確定期望擁塞窗口大于本RTT周期的擁塞窗口時,將期望擁塞窗口與本RTT周期的 擁塞窗口之差的絕對值,作為本RTT周期對應的擁塞窗口增加步長;
[0029]將本RTT周期對應的擁塞窗口增加步長與本RTT周期對應的第一設定閾值累加,作 為本RTT周期的參考步長;;
[0030] 根據(jù)本RTT周期的參考步長以及本RTT周期的擁塞窗口,確定下一RTT周期的擁塞 窗口。
[0031] 本發(fā)明實施例,當期望窗口大于本RTT周期的擁塞窗口時,需要適當增加本RTT周 期的擁塞窗口,并將增加后的擁塞窗口作為下一RTT周期的擁塞窗口。
[0032] 所述方法中,根據(jù)本RTT周期的參考步長以及本RTT周期的擁塞窗口,確定下一RTT 周期的擁塞窗口,具體包括:
[0033]確定本RTT周期的擁塞窗口大于第二設定閾值時,將本RTT周期的擁塞窗口增加 一,作為下一 RTT周期的擁塞窗口,并將所述參考步長減一所得的結果,作為下一 RTT周期對 應的第一設定閾值;
[0034]確定本RTT周期的擁塞窗口小于或等于第二設定閾值時,比較本RTT周期的擁塞窗 口與所述參考步長的大??;
[0035]確定本RTT周期的擁塞窗口小于或等于所述參考步長時,將本RTT周期的擁塞窗口 乘以設定倍數(shù),作為下一RTT周期的擁塞窗口,并將所述參考步長減去本RTT周期的擁塞窗 口所得的結果,作為下一 RTT周期對應的第一設定閾值;
[0036]確定本RTT周期內(nèi)的擁塞窗口大于所述參考步長時,將本RTT周期內(nèi)的擁塞窗口增 加所述參考步長,作為下一RTT周期的擁塞窗口,并將所述參考步長置為零,作為下一RTT周 期對應的第一設定閾值。
[0037]本發(fā)明實施例,根據(jù)參考步長以及本RTT周期的擁塞窗口,分情況確定了下一RTT 周期的擁塞窗口,從而使得調(diào)整后的擁塞窗口更加精確穩(wěn)定。
[0038]本發(fā)明還提供一種傳輸控制協(xié)議TCP擁塞控制裝置,包括:
[0039] 第一確定單元,用于確定本往返延時RTT周期結束且確定擁塞狀態(tài)機處于Open狀 態(tài)時,確定本RTT周期的RTT值以及本RTT周期的擁塞窗口;
[0040]第二確定單元,用于根據(jù)本RTT周期的RTT值以及歷史RTT最小值,確定當前RTT最 小值;
[0041 ]第三確定單元,用于根據(jù)本RTT周期的RTT值、本RTT周期的擁塞窗口以及歷史RTT 平均值,確定本RTT周期的RTT平均值;
[0042]第四確定單元,用于根據(jù)所述當前RTT最小值、本RTT周期的RTT平均值以及本RTT 周期的擁塞窗口,確定期望擁塞窗口;
[0043]第五確定單元,用于根據(jù)所述期望擁塞窗口以及本RTT周期的擁塞窗口,確定下一 RTT周期的擁塞窗口。
[0044]所述裝置中,所述第一確定單元還用于:
[0045]確定本RTT周期結束且確定擁塞狀態(tài)機處于非Open狀態(tài)時,根據(jù)歷史RTT平均值和 本RTT周期的RTT值,判斷是否發(fā)生網(wǎng)絡擁塞;
[0046]如果是,根據(jù)預先設置的RTT值與擁塞窗口調(diào)整比例的對應關系以及本RTT周期的 RTT值,調(diào)整本RTT周期的擁塞窗口,并將調(diào)整后的擁塞窗口作為下一RTT周期的擁塞窗口, 所述調(diào)整后的擁塞窗口小于本RTT周期的擁塞窗口;
[0047] 如果否,將本RTT周期的擁塞窗口作為下一 RTT周期的擁塞窗口。
[0048]所述裝置中,第三確定單元采用如下公式根據(jù)本RTT周期的RTT值、本RTT周期的擁 塞窗口以及歷史RTT平均值,確定本RTT周期的RTT平均值:
[0050] 其中,RTTavg表示本RTT周期的RTT平均值,cwnd為本RTT周期的擁塞窗口,RTT avgIs為 歷史RTT平均值,RTTben為本RTT周期的RTT值。
[0051] 所述裝置中,第四確定單元采用如下公式根據(jù)所述當前RTT最小值、本RTT周期的 RTT平