








摘" 要: 隨著信息化時代的蓬勃發展,信息傳輸已經滲透到了日常生活和商業活動的方方面面,成為不可或缺的一部分。然而,這種信息傳輸的大規模增長也帶來了一系列問題,其中包括網絡擁塞等現象變得愈加普遍。在應對網絡擁塞問題時,主動隊列管理(AQM)算法顯得尤為重要,其中包括隨機早期檢測(RED)和自適應平均隊列大小及其變化率(AQMRD)算法等。盡管這些算法已經起到了一定作用,但在提升吞吐量與服務質量方面仍有進步的空間。針對已有算法的不足,文中提出一種基于AQMRD的改進算法,即Huber?AQMRD算法。該算法通過引入“Huber”損失函數,更準確地評估隊列大小與期望值之間的差異,從而優化了丟包函數的設計。通過ns3仿真實驗驗證,Huber?AQMRD算法在降低丟包率的同時,提高了網絡吞吐量和服務質量,對于解決大規模增長的信息傳輸下的網絡擁塞問題,提升網絡性能和用戶體驗具有重要意義。
關鍵詞: 網絡擁塞; 主動隊列管理; Huber?AQMRD; ns3; 丟包率; 吞吐量
中圖分類號: TN711?34; TP393" " " " " " " " " " 文獻標識碼: A" " " " " " " " " " "文章編號: 1004?373X(2025)01?0065?06
Huber?AQMRD algorithm: Performance improvement against network congestion
CHAO Kai, KANG Baicheng, WANG Shuangquan
(School of Electronics and Information, Xi’an Polytechnic University, Xi’an 710600, China)
Abstract: With the vigorous development of the information age, information transmission has permeated every aspect of people′ daily lives and commercial activities and become an indispensable part. However, this massive growth in information transmission has also brought about a series of problems, of which the network congestion has become increasingly common. In addressing the issue of network congestion, the active queue management (AQM) algorithms play a crucial role, including the algorithm of random early detection (RED) and the algorithm of adaptive mean queue size and its rate of change: queue management with random dropping (AQMRD). However, although these algorithms have worked to some extent, there is still room for improvement in throughput and quality of service. In view of the shortcomings of the existing algorithms, this paper proposes an improved algorithm based on AQMRD, namely the Huber?AQMRD algorithm. This algorithm assesses the differences between queue size and expected value more accurately by introducing the loss function ″Huber″, so as to optimize the design of packet dropping function. It is verified by ns3 simulation experiments that the Huber?AQMRD algorithm improves network throughput and the quality of service while reducing packet loss rate, so it holds significant importance in eliminating the network congestion under the background of massive growth of information transmission and enhancing the network performance and user experience.
Keywords: network congestion; AQM; Huber?AQMRD; ns3; packet loss rate; throughput
0" 引" 言
1986年第一次出現了網絡擁塞問題,當時LBL和UCBeley之間通信狀況突然惡化,吞吐量[1]從32 Kb/s下降到40 b/s,在此之后,網絡擁塞問題成為計算機網絡中一個重要的研究問題,網絡擁塞是指在計算機網絡中,由于網絡上的數據傳輸量超過了網絡基礎設施的處理能力,導致數據傳輸受阻、延遲增加的現象。當網絡擁塞發生時,數據包可能被延遲傳輸或丟失,從而影響用戶體驗和網絡性能。這種情況通常需要采取措施來避免或緩解,以確保網絡的順暢運行。
近年來,智能化網絡通信成為網絡發展的主要特點。與傳統網絡通信相比,智能網絡通信中涌現出了大量實時多媒體業務,包括網頁瀏覽、語音聊天和視頻會議等,為網絡通信帶來了龐大且多樣的數據流量[2?5]。伴隨著實時多媒體業務的增加,其網絡負載也在逐步上升,網絡轉發設備的緩沖區很容易被充斥,從而導致網絡擁塞的現象[6]。這一趨勢促使網絡通信過程中對高效網絡管理和適應性機制的需求增加,從而更好地適應不斷演變的實時多媒體業務需求[7]。在這個背景下,主動隊列管理(AQM)算法顯得尤為關鍵,特別是在高流量應用如YouTube、Skype和網絡會議等多媒體應用中。音頻和視頻流的廣泛應用進一步推動了網絡流量的增長[8]。網絡擁塞在對一些數據包丟失敏感的應用可能導致嚴重的影響,因此在網絡擁塞形成之前需要及時采取干預措施。總體而言,AQM算法的應用對于確保網絡性能和服務質量至關重要。
本文介紹了幾種AQM算法,如隨機早期檢測(Random Early Detection, RED)[9]、自適應平均隊列大小及其變化率:隨機丟棄的隊列管理(Adaptive Mean Queue Size And its rate of change: Queue Management with Random Dropping, AQMRD)[10],同時提出了一種基于AQMRD改進的網絡擁塞控制算法。其中RED算法通過使用基于平均隊列大小的丟包函數,成功地提升了吞吐量。該算法的一個可取之處是在存在隨機流量特征的情況下降低丟包率[11?13]。另一種算法是:AQMRD在RED算法的基礎上融合了隊列大小及其變化速率,通過觀察隊列大小的變化率及時地調整丟包函數,從而更好地描述隊列大小演變的動態特性。
本文提出的Huber?AQMRD算法是在AQMRD的基礎上引入了“Huber”損失函數,用于評估當前隊列大小與期望隊列大小之間的差異,更準確地描述了隊列之間的期望差異。該算法將計算得到的“Huber”損失函數整合到丟包函數中,以更有效地計算丟包概率,從而對即將到來的數據包進行標記。
1" 研究現狀
1.1" RED算法概述
RED算法是一種為計算機網絡中的擁塞控制而設計的算法,其主要目標是通過及時丟棄部分數據包來避免網絡擁塞的惡化,并確保網絡的性能和穩定性[14]。RED算法的工作原理是通過監測網絡設備的輸出隊列長度來判斷網絡擁塞的程度。一旦隊列長度超過預設的閾值,即意味著網絡可能即將發生擁塞,RED算法便開始采取措施[15]。與傳統的丟包機制不同,RED算法采用隨機丟包的方式,以一定的概率丟棄部分數據包,而不是等到隊列完全滿載時再開始丟包。這樣做的目的是盡早向數據發送端發出擁塞信號,促使其減緩發送速率,從而避免網絡性能的急劇下降[16]。具體為:交換機或路由器的端口需要設置一個平均隊列最大閾值maxth和一個平均隊列最小閾值minth。在交換機或路由器的端口接收到新到來的數據包時,交換機或路由器需要計算當前的平均隊列長度。其計算方式為:
[avg(t+1)=(1-wq)×avg(t)+wq×q(t+1)] (1)
式中:[q(t+1)]為當前時刻的隊列長度;[wq]為計算權值,通常為0.002;平均隊列長度[avg(t+1)]通過上一時刻的平均隊列長度[avg(t)]和當前隊列長度[q(t+1)]加權計算得到。
丟包函數為:
[Pb=0," " " avglt;minthmaxp×avg-minthmaxth-minth," " " minth≤avg≤maxth1," " " avggt;maxth] (2)
最終的數據包丟棄概率函數為:
[Pa=Pb1-count×Pb] (3)
式中:count為上一時刻丟包后進入緩沖區的數據包個數;最終的數據包丟棄概率[Pa]由[Pb]丟包函數與count緩沖區的數據包個數計算而得。
1.2" AQMRD算法概述
AQMRD算法考慮了隊列大小的平均值及其變化率,使其更加適應網絡環境的變化,并在此基礎上進行動態調整,從而提高了系統對于吞吐量、平均隊列大小、利用率等性能指標的優化效果。AQMRD引入了隊列大小變化率以及中間值的概念,首先計算了隊列大小的平均值以及隊列大小的變化率。
[avg(t+1)=(1-wq)×avg(t)+wq×q(t+1)] (4)
[davg(t+1)=(1-wq)×davg(t)+wq(q(t+1)-q(t))] (5)
式中:avg([t]+1)為當前時刻的隊列大小變化率;avg([t])為上一時刻的隊列大小變化率。當前時刻的隊列大小變化率通過上一時刻的隊列大小變化率以及隊列長度加權得到。
AQMRD算法中引入了中間值的概念,使用中間值計算丟包函數,其中中間值的計算根據隊列大小變化率分為三種情況:
[midth=midth+1," " " " "davglt;0midth-1," " " " "davggt;0midth," " " " " " " davg=0] (6)
當davggt;0時,其丟包函數為:
[Pb=0," " minthgt;avgavg-minthmidth-minthmaxp," " minth≤avglt;midth1," " midth≤avg] (7)
當davg ≤ 0時,其丟包函數為:
[Pb=0," " minthgt;avgavg-minthmaxth-minthmaxp," " minth≤avglt;maxth1," " maxth≤avg] (8)
式中:minth與maxth為設定好的最小閾值與最大閾值;[maxp]為丟包概率的最大閾值,在丟包函數中,它決定著隊列丟棄的程度。
最終的數據包丟棄概率函數為:
[Pa=Pb1-count×Pb] (9)
式中:count為上一時刻丟包后進入緩沖區的數據包個數;最終的數據包丟棄概率[Pa]由[Pb]丟包函數與count緩沖區的數據包個數計算而得。
2" Huber?AQMRD算法
2.1" Huber?AQMRD算法概述
Huber損失函數的公式為:
[Ly, fx=0.5y-fx2," " "y-fx≤δδy-fx-0.5δ2," " "y-fxgt;δ] (10)
式中:[y]為真實值;[f(x)]為期望值;[δ]為衡量真實值與期望值差異的參數。當預測偏差小于[δ]時,采用平方誤差,當預測偏差大于[δ],采用線性誤差。
在Huber?AQMRD算法中通過計算平均隊列大小與瞬時隊列大小,加權得到Huber函數中的[nq(t)]值,其公式為:
[nq(t)=q(t)×i+avg(t)×(1-i)] (11)
式中[i]為權值參數,在本文中[i]=0.2。通過計算設定的最大隊列閾值與最小隊列閾值加權得到期望值[qexp],其公式為:
[qexp=maxth×j+minth×(1-j)] (12)
式中[j]為權值參數,在本文中[j]=0.3。再將計算得到的[nq(t)]與[qexp]進行歸一化處理,即:
[nqnor(t)=0.01×nq(t)] (13)
[qexp_nor=0.01×qexp] (14)
將中間閾值midth設置為差異參數[δ],因此在本文中Huber損失函數為:
當[nqnor(t)-qexp_nor≤midth]時:
[Lnqnor(t),qexp_nor=0.5×nqnor(t)-qexp_nor2" ] (15)
當[ nqnor(t)-qexp_norgt;midth]時:
[Lnqnor(t),qexp_nor=midth×nqnor(t)-qexp_nor-0.5×mid2th] (16)
在計算丟包函數時,Huber?AQMRD算法的丟包函數如下:
當[davggt;0]時:
[Pb=0," " " " " " avglt;minthPc," " " " " minth≤avglt;midthPd," " " " " midth≤avglt;maxth1," " " nbsp; " " maxth≤avg] (17)
在AQMRD算法下只要maxth≤avg,就會將丟包函數[Pb]置為1,這樣的做法過于激進,本文將在當davggt;0的情況下,在minth≤avglt;midth之后加入了midth≤avglt;maxth來緩解其激進的丟包方式。在minth≤avglt;midth情況下,加入了Huber函數以及Sigmoid函數,即:
[Pg=L?avg-minthmid-minth?maxp] (18)
[Pc=11+exp(-Pg)] (19)
在AQMRD算法中,[Pg]函數是由AQMRD的原始計算結果與Huber函數相乘得到的。Huber函數能夠表達當前隊列情況與期望隊列情況的差異,這種差異越大,就希望通過更多的丟包來緩解,而當差異較小時,則不需要過多地影響當前的性能。為了更好地處理[Pg]函數的計算結果,引入了Sigmoid函數。Sigmoid函數的作用是將計算得到的值轉換為一個具有S形狀的輸出,即使得到的結果更分散化,輸出具有更好的靈活性和可調節性。
在midth≤avglt;maxth的情況下也加入了Huber函數,即:
[Pd=0.75×Pg+0.25×L] (20)
式中[Pd]函數通過原本的[Pg]函數以及Huber函數加權得到。
當[davg≤0]時:
[Pb=0," " " "avglt;minthPh," " "minth≤avglt;maxth1," " " " maxth≤avg] (21)
其中,[Ph]的計算方式為:
[Ph=L?avg-minthmaxth-minth?maxp] (22)
同樣,在原本的AQMRD相同情況下與Huber函數相乘得到[Ph]函數來控制當前的丟包情況。
整個偽代碼如下:
Initialization:
avg=0
davg=0
count=-1
Calculate avg and davg
Calculate Huber
if davggt;0
midth++
if avglt;minth
[Pb]=0
else if minth≤avglt;midth
Calculate probability [Pc]
else if midth≤avglt;maxth
Calculate probability [Pd]
else
[Pb]=1
else
mid--
if avglt;minth
[Pb]=0
else if minth≤avglt;maxth
Calculate probability [Pc]
else
[Pb]=1
update the dropping probability
if count×[Pb]lt;1
[Pa=Pb1-count×Pb]
else
[Pa=1]
mark the arriving packet with probability [Pa]
2.2" Huber?AQMRD算法仿真
模擬環境的組建采用網絡仿真軟件ns3,對應的網絡拓撲結構如圖1所示,在多Incast網絡傳輸場景下進行性能測試,將結果與AQMRD擁塞控制算法做對比。
2.2.1" 仿真環境搭建
仿真實驗網絡拓撲結構如圖1所示。圖1中,[R1]?[R2]帶寬為5 Mb/s,時延為2 ms,[n]取4,即為4條發送流,帶寬均為10 Mb/s,時延為2 ms,如圖1所示,在[R1]?[R2]鏈路設置4組minth與maxth。仿真時間設置為60 s,其中全局發送停止時間延遲2 s,接收開始時間延遲0.2 s,接收停止時間延遲3 s,發送數據包大小為1 000 B,[S1]、[S2]、[S3]、[S4]同時向[R1]發送數據。
2.2.2" 隊列尺寸
隊列尺寸是指在網絡或系統中用于暫時存儲數據包或任務的隊列容量大小。在網絡通信中,數據包在傳輸過程中可能會遇到延遲或丟失,因此需要在發送和接收之間設置一個緩沖區,用于臨時存儲這些數據包,以防止數據丟失或過早處理。這個緩沖區就是隊列,而隊列尺寸就是指這個緩沖區能夠容納的數據包或任務的數量。
隊列尺寸的大小對系統性能和服務質量有重要影響。如果隊列尺寸過小,可能會導致數據包丟失或傳輸延遲增加,從而降低網絡的吞吐量和響應速度。相反,如果隊列尺寸過大,可能會占用過多的內存資源,導致系統資源浪費或引發隊列溢出等問題。
AQMRD與Huber?AQMRD在不同參數下輸出的隊列尺寸如圖2所示。
可以觀察到,當網絡流量開始增加時,AQMRD算法會快速將隊列尺寸降至極低水平,這是由擁塞控制算法的調節作用引起的。然而,這種迅速降低隊列尺寸可能導致數據包的大量丟失或傳輸延遲增加,從而降低了網絡的吞吐量和響應速度。相比之下,Huber?AQMRD算法解決了這個問題。它在擁塞控制算法生效后并沒有將隊列尺寸降低到極低水平,而是保持在一個相對穩定的狀態,從而確保了網絡流量的正常處理。這種優化設計有助于維持較低的傳輸延遲和減少數據丟失,從而提高了網絡的性能和服務質量。
2.2.3" 丟包率
丟包率在評估和衡量網絡性能時扮演著至關重要的角色,因為它直接反映了網絡服務的質量水平。簡而言之,丟包率是指在數據傳輸過程中丟失的數據包所占的比例。當丟包率較低時,通常意味著數據傳輸更加可靠,服務質量更高,因為它表示在數據包傳輸過程中丟失的可能性較小。這對于實時應用和對數據完整性要求高的場景尤為重要,例如語音通話、視頻會議、在線游戲,以及文件傳輸和數據庫查詢等。
表1通過比較不同參數設置下的AQMRD和Huber?AQMRD算法的丟包率,可以看到在(12,48)和(20,60)參數設置下,Huber?AQMRD算法都表現出了一定的優勢。特別是在(12,48)參數設置下,其丟包率從1.228%降低到了1.182%,相較于AQMRD算法,丟包率下降了3.7%。這個結果清晰地展示了Huber?AQMRD算法在優化丟包率方面的顯著效果,為提升網絡性能和提高服務質量提供了有效的解決方案。
2.2.4" 吞吐量
吞吐量是指在一定時間內系統或設備處理數據的能力。它是衡量系統性能的重要指標,反映了系統在單位時間內能夠傳輸、處理或完成的數據量或任務數量。高吞吐量意味著系統具有更快的數據處理速度和更高的效率,能夠在更短的時間內完成更多的工作。在網絡通信中,吞吐量直接影響著數據傳輸的速度和響應時間。因此,對于確保快速、可靠的數據傳輸以及提供良好的用戶體驗,吞吐量至關重要。在設計和優化網絡架構、協議或系統時,需要重點關注吞吐量的優化。
表2通過比較不同參數設置下的AQMRD和Huber?AQMRD算法的吞吐量,可以看到在(12,48)的參數設置條件下,兩者的吞吐量基本相當。然而,在(20,60)的參數設置條件下,Huber?AQMRD算法的吞吐量得到了顯著的提升。這表明Huber?AQMRD算法在(20,60)設置下能夠更有效地提高系統的數據處理能力,進而提升系統的性能和效率。
2.2.5" 帶寬公平性
當多個連接共享同一瓶頸資源時,各數據流量之間必然會因為有限的網絡資源而發生競爭,導致資源的不公平使用,而這種不公平性在現代網絡中可能會造成用戶極差的體驗感,在一些特殊的網絡環境中,例如證券交易所,則會造成嚴重的后果,所以帶寬公平性是衡量網絡服務質量的重要指標。AQMRD與Huber?AQMRD四條流的吞吐量見表3。
在表3中,在參數為(12,48)與(20,60)的情況下,分別計算了AQMRD與Huber?AQMRD四條流的吞吐量,通過分別計算不同情況下的四條流的方差去判斷帶寬公平性,結果如表4所示。
從表4中可以看出在參數為(12,48)的情況下,Huber?AQMRD的帶寬公平性與AQMRD的帶寬公平性相差無幾,而在參數為(20,60)的情況下Huber?AQMRD算法中的四條流吞吐量標準差比AQMRD算法中四條流的吞吐量標準差低7.89,這表明Huber?AQMRD算法相對于AQMRD算法在帶寬公平性上略有提升。
3" 結" 語
網絡擁塞控制一直以來是網絡通信中密切關注的問題,總體來說,Huber?AQMRD擁塞控制算法通過對丟包函數的優化,在(minth,maxth)參數為(20,60)時,丟包率、吞吐量以及帶寬公平性指標上有不俗的表現,下一步則需要驗證在實際網絡環境中的性能表現。
參考文獻
[1] JACOBSON V. Congestion avoidance and control [J]. Computer communication review, 1995, 25(1): 157?187.
[2] TIAN L, YANG M Z, WANG S G. An overview of compute first networking [J]. International journal of web and grid services, 2021, 17(2): 81?97.
[3] ABDEL?JABER H. An exponential active queue management method based on random early detection [J]. Journal of computer networks and communications, 2020(5): 1?11.
[4] PATEL S. Nonlinear performance evaluation model for throughput of AQM scheme using full factorial design approach [J]. International journal of communication systems, 2020, 33(8): e4357.
[5] JIANG F C, FENG C W, ZHU C, et al. Performance analysis of active queue management algorithm based on reinforcement learning [J]. Journal Européen des systèmes automatisés, 2020, 53(5): 637?644.
[6] KHATARI M, ZAIDAN A A, ZAIDAN B B, et al. Multidimensional benchmarking framework for AQMs of network congestion control based on AHP and group?TOPSIS [J]. International journal of information technology amp; decision making, 2021, 20(5): 1409?1446.
[7] 沈陽.一種基于PID控制器的自適應RED算法[J].中國科技信息,2018(8):72?74.
[8] 潘成勝,張松,趙晨,等.一種基于TCP?ARED的網絡動態擁塞控制策略[J].火力與指揮控制,2023,48(1):1?7.
[9] 夏潔,李付勇,姜勝明.基于被動偵聽與數據幀調度的擁塞控制方法[J].現代計算機(專業版),2018(19):3?7.
[10] KARMESHU, PATEL S, BHATNAGAR S. Adaptive mean queue size and its rate of change: queue management with random dropping [J]. Telecommunication systems, 2017, 65(2): 281?295.
[11] ABOOD L H, OLEIWI B K, HUMAIDI A J, et al. Design a robust controller for congestion avoidance in TCP/AQM system [J]. Advances in engineering software, 2023, 176: 103395.
[12] 溫春暉.網絡擁塞控制中的自適應RED算法研究[D].贛州:江西理工大學,2018.
[13] 張松.自適應主動隊列管理算法研究[D].南京:南京信息工程大學,2023.
[14] GIMéNEZ á, BONASTRE ó M, VALERO J, et al. Poster: Modified dynamic beta RED—A new AQM algorithm for internet congestion control [C]// Proceedings of the 2023 ACM on Internet Measurement Conference. New York: ACM, 2023: 718?719.
[15] MAHAWISH A A, HASSAN H J. Improving RED algorithm congestion control by using the Markov decision process [J]. Scientific reports, 2022, 12(1): 13363.
[16] MISHRA A, SUN X P, JAIN A, et al. The great internet TCP congestion control census [J]. Proceedings of the ACM on measurement and analysis of computing systems, 2019, 3(3): 1?24.
作者簡介:晁" 凱(1999—),男,陜西西安人,在讀碩士研究生,研究方向為智能網絡通信。
康百成(1998—),男,甘肅武威人,在讀碩士研究生,研究方向為智能網絡通信。
王雙全(1997—),男,河南周口人,在讀碩士研究生,研究方向為智能網絡通信。