一種網絡設備擁塞避免的方法及網絡設備的制造方法
【技術領域】
[0001] 本發(fā)明涉及通信領域,尤其涉及一種網絡設備擁塞避免的方法及網絡設備。
【背景技術】
[0002] 在通信網絡中,網絡設備接收發(fā)送端發(fā)送的報文,并將所述報文轉發(fā)給接收端。然 而,當發(fā)送端發(fā)送的報文數目較多時,所述網絡設備就會出現(xiàn)擁塞的情況。網絡設備擁塞避 免是通過監(jiān)視該網絡設備中存儲空間的使用情況,當擁塞有加劇的趨勢時,主動丟棄所述 存儲空間中的一些報文,通過調整該網絡設備中的數據流量來解除所述網絡設備擁塞的問 題。
[0003] 現(xiàn)在技術中,一般采用隨機早期檢測(RandomEarlyDetection,簡稱為RED)算 法、加權隨機早期檢測(Wei曲tedRandomEarlyDetection,簡稱為WRED)算法等解決上述 問題。示例的,在R邸算法中,為上述存儲空間大小設定一低限值和一高限值,若當前已用 存儲空間大小介于該低限值和高限值之間,則開始隨機丟棄到來的報文。
[0004] 根據上述算法,所述網絡設備在接收到發(fā)送端發(fā)送的一串報文后,采用隨機離散 丟包方式對該串報文進行丟包處理,該樣網絡設備每丟棄一個報文,接收端就會通知發(fā)送 端所述網絡設備發(fā)生了丟包現(xiàn)象,因此發(fā)送端就會判定當前所述網絡設備出現(xiàn)擁塞現(xiàn)象, 從而減少發(fā)送報文的數目,相應的,所述網絡設備轉發(fā)的報文數目也會減少,若所述網絡設 備丟棄多個報文,就會導致所述網絡設備的吞吐量大大減少。
【發(fā)明內容】
[0005] 本發(fā)明的實施例提供了一種網絡設備擁塞避免的方法及網絡設備,用W解決現(xiàn)有 技術中網絡設備在接收到一串報文后,采用隨機離散丟包方式對該串報文進行丟包處理而 造成的所述網絡設備吞吐量減少的問題。
[0006] 為達到上述目的,本發(fā)明的實施例采用如下技術方案:
[0007] 第一方面,提供了一種網絡設備擁塞避免的方法,該方法包括:
[0008]網絡設備根據當前已用存儲空間的大小,確定是否需要對所述當前已用存儲空間 中同屬一個數據流的報文進行丟包處理;其中,所述同屬一個數據流的報文為N個,N> 2 ;
[0009] 在需要進行丟包處理的情況下,所述網絡設備丟棄所述同屬一個數據流中連續(xù)的 M個報文,其中1《M《N。
[0010] 結合第一方面,在第一種可能的實現(xiàn)方式中,所述確定是否需要對所述當前已用 存儲空間中同屬一個數據流中的報文進行丟包處理包括:
[0011] 獲取所述同屬一個數據流的N個報文的隨機數;
[0012] 確定當前的第一闊值;所述第一闊值為判定數據流是否丟包的臨界值;
[0013] 根據所述N個報文的隨機數W及所述當前的第一闊值確定是否需要對所述當前 已用存儲空間中同屬一個數據流中的報文進行丟包處理。
[0014] 結合第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述網絡 設備根據當前已用存儲空間的大小,確定是否需要對所述當前已用存儲空間中同屬一個數 據流的報文進行丟包處理包括:
[0015] 所述網絡設備在當前已用存儲空間的大小在第一口限和第二口限之間時,確定是 否需要對所述當前已用存儲空間中同屬一個數據流的報文進行丟包處理;其中,所述第一 口限小于所述第二口限,所述第二口限小于或等于所述網絡設備存儲空間的容量;
[0016] 所述確定當前的第一闊值包括:
[0017] 根據當前已用存儲空間的大小,W及已用存儲空間的大小與第一闊值的函數關系 確定當前的第一闊值;其中,在所述已用存儲空間的大小與第一闊值的函數關系中,所述第 一口限和所述第二口限中的一個對應最大的第一闊值,另一個對應最小的第一闊值。
[0018] 結合第一方面的第二種可能的實現(xiàn)方式,在第H種可能的實現(xiàn)方式中,在所述已 用存儲空間的大小與第一闊值的函數關系中,所述已用存儲空間的大小與所述第一闊值負 相關;
[0019] 所述根據所述N個報文的隨機數W及當前的第一闊值確定是否需要對所述同屬 一個數據流中的報文進行丟包處理包括:
[0020] 若所述N個報文的隨機數之和小于當前的第一闊值,則確定不需要對所述同屬一 個數據流中的報文進行丟包處理;
[0021] 若所述N個報文的隨機數之和大于當前的第一闊值,則確定需要對所述同屬一個 數據流中的報文進行丟包處理。
[0022] 結合第一方面,在第四種可能的實現(xiàn)方式中,所述確定是否需要對所述當前已用 存儲空間中同屬一個數據流中的報文進行丟包處理包括:
[0023] 獲取所述數據流的隨機數;
[0024] 確定當前的第二闊值;所述第二闊值為判定數據流是否丟包的臨界值;
[0025] 根據所述數據流的隨機數W及所述當前的第二闊值確定是否需要對所述數據流 中的報文進行丟包處理。
[0026] 結合第一方面的第四種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述網絡 設備根據當前已用存儲空間的大小,確定是否需要對所述當前已用存儲空間中同屬一個數 據流的報文進行丟包處理包括:
[0027] 所述網絡設備在當前已用存儲空間的大小在第一口限和第二口限之間時,確定是 否需要對所述當前已用存儲空間中同屬一個數據流的報文進行丟包處理;其中,所述第一 口限小于所述第二口限,所述第二口限小于或等于所述網絡設備存儲空間的容量;
[0028] 所述確定當前的第二闊值包括:
[0029] 根據當前已用存儲空間的大小,W及已用存儲空間的大小與所述第二闊值的函數 關系確定當前的第二闊值;其中,在已用存儲空間的大小與所述第二闊值的函數關系中,所 述第一口限和所述第二口限中的一個對應最小的第二闊值,另一個對應最大的第二闊值。
[0030] 結合第一方面的第五種可能的實現(xiàn)方式,在第六種可能的實現(xiàn)方式中,在所述已 用存儲空間的大小與所述第二闊值的函數關系中,所述已用存儲空間的大小與所述第二闊 值正相關;
[0031] 所述根據所述數據流的隨機數W及所述當前的第二闊值確定是否需要對所述數 據流中的報文進行丟包處理包括:
[003引若所述數據流的隨機數小于當前的第二闊值,則確定需要對所述數據流中的報文 進行丟包處理;
[0033] 若所述數據流的隨機數大于當前的第二闊值,則確定不需要對所述數據流中的報 文進行丟包處理。
[0034] 結合第一方面,在第走種可能的實現(xiàn)方式中,所述數據流為TCP流;
[00巧]所述丟棄所述同屬一個數據流中連續(xù)的M個報文包括;丟棄同屬一個TCP流中TCP序列號連續(xù)的M個報文。
[0036] 第二方面,提供了一種網絡設備,該網絡設備包括:
[0037] 確定模塊,用于根據當前已用存儲空間的大小,確定是否需要對所述當前已用存 儲空間中同屬一個數據流的報文進行丟包處理;其中,所述同屬一個數據流的報文為N個, N > 2;
[0038] 丟棄模塊,用于在所述確定模塊確定需要進行丟包處理的情況下,丟棄所述同屬 一個數據流中連續(xù)的M個報文,其中1《M《N。
[0039] 結合第二方面,在第一種可能的實現(xiàn)方式中,所述確定模塊包括:
[0040] 第一獲取單元,用于獲取所述同屬一個數據流的N個報文的隨機數;
[0041] 第一確定單元,用于確定當前的第一闊值;所述第一闊值為判定數據流是否丟包 的臨界值;
[0042] 第二確定單元,用于根據所述第一獲取單元獲取的所述N個報文的隨機數W及所 述第一確定單元確定的所述當前的第一闊值確定是否需要對所述當前已用存儲空間中同 屬一個數據流中的報文進行丟包處理。
[0043] 結合第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述確定 模塊,用于在當前已用存儲空間的大小在第一口限和第二口限之間時,確定是否需要對所 述當前已用存儲空間中同屬一個數據流的報文進行丟包處理;其中,所述第一口限小于所 述第二口限,所述第二口限小于或等于所述網絡設備存儲空間的容量;
[0044] 所述第一確定單元,用于根據當前已用存儲空間的大小,W及已用存儲空間的大 小與第一闊值的函數關系確定當前的第一闊值;其中,在所述已用存儲空間的大小與第一 闊值的函數關系中,所述第一口限和所述第二口限中的一個對應最大的第一闊值,另一個 對應最小的第一闊值。
[0045] 結合第二方面的第二種可能的實現(xiàn)方式,在第H種可能的實現(xiàn)方式中,在所述已 用存儲空間的大小與第一闊值的函數關系中,所述已用存儲空間的大小與所述第一闊值負 相關;
[0046] 所述第二確定單元,用于若所述N個報文的隨機數之和小于當前的第一闊值,貝U 確定不需要對所述同屬一個數據流中的報文進行丟包處理;若所述N個報文的隨機數之和 大于當前的第一闊值,則確定需要對所述同屬一個數據流中的報文進行丟包處理。
[0047] 結合第二方面,在第四種可能的實現(xiàn)方式中,所述確定模塊包括:
[0048] 第二獲取單元,用于獲取所述數據流的隨機數;
[0049] 第H確定單元,用于確定當前的第二闊值;所述第二闊值為判定數據流是否丟包 的臨界值;
[0050] 第四確定單元,用于根據所述第二獲取單元獲取的所述數據流的隨機數W及所述 第H確定單元確定的所述當前的第二闊值確定是否需要對所述數據流中的報文進行丟包 處理。
[0051] 結合第二方面的第四種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述確定 模塊,用于在當前已用存儲空間的大小在第一口限和第二口限之間時,確定是否需要對所 述當前已用存儲空間中同屬一個數據流的報文進行丟包處理;其中,所述第一口限小于所 述