收稿日期:2021-10-19;修回日期:2021-12-16" 基金項目:上海飛機設計研究院課題項目(MJZ-2016-S-45)
作者簡介:毛銀寧(1997-),男,浙江寧波人,碩士研究生,主要研究方向為民機無線鏈路管理系統(359322025@qq.com);姚旭寅(1983-),男,安徽壽縣人,高級工程師,主要研究方向為民機機載軟件與適航驗證工作;張小貝(1982-),男,湖北宜城人,教授,博士,主要研究方向為特種光纖器件、光學諧振腔、光纖傳感研究;李偉杰(1985-),男,山東威海人,高級工程師,碩士,主要研究方向為機載信息系統的集成與適航驗證;楊融(1984-),男,陜西西安人,高級工程師,碩士,主要研究方向為機載信息系統的集成、民機網絡安保.
摘 要:隨著技術發展,民機上的網絡環境漸漸趨于日常生活中的網絡環境。為了避免擁塞,需要對飛機上的鏈路數據進行主動隊列管理。在比例微分控制的隨機早期檢測(random early detection based on proportional deri-vative control principle,PD-RED)算法基礎上,提出一種系數自調整的PD-RED(improved PD-RED,IPD-RED)算法。在IPD-RED算法中,引入比例系數和微分系數的調整函數來減小參數選取對算法的影響。考慮隊列偏差,將其歸一化處理后,作為調整函數的參數來使系數動態變化,根據系數變化規律設計函數。實驗通過改變上下門限值組合、路由節點間延時和端節點數量來分析算法改善效果,通過改變比例系數和微分系數的初值來探究初值對算法性能的影響。NS2仿真結果表明,IPD-RED算法使平均隊列長度更接近期望值,提高了吞吐量,減小了丟包率。初值影響表明,一定范圍內增大比例系數可使平均隊列長度更快更接近期望值且減小丟包率,但會使延時和振蕩增加。微分系數的動態范圍很大,對幾個網絡性能參數的影響很小。實際應用中適當選取系數初值,可使算法更好地適配飛機上的業務。
關鍵詞:主動隊列管理;早期檢測;調整函數;IPD-RED
中圖分類號:TP393"" 文獻標志碼:A
文章編號:1001-3695(2022)06-014-1683-06
doi:10.19734/j.issn.1001-3695.2021.10.0610
PD-RED algorithm with self-adjusting coefficients
Mao Yinning1,Yao Xuyin2,Zhang Xiaobei1,Li Weijie2,Yang Rong2
(1.Communication amp; Information Engineering Institute,Shanghai University,Shanghai 200444,China;2.Electronic Integration Dept.,Shanghai Aircraft Design amp; Research Institute,Shanghai 201315,China)
Abstract:With the development of technology,the network environment on civil aircraft gradually tends to it in daily life.In order to avoid congestion,link data on aircraft needs active queue management.This paper proposed an IPD-RED algorithm with self-adjusting coefficients,which based on the PD-RED algorithm.IPD-RED algorithm introduced the adjustment functions of proportional coefficient and derivative coefficient to reduce the influence of parameter selection on the algorithm.Considering the queue deviation after normalization,the adjustment function used it as the parameter in order to make the coefficient change dynamically.IPD-RED designed the adjustment function according to the law of coefficient change.The experiment analyzed the improvement effect of the algorithm by changing the combination of upper and lower threshold values,the delay between routing nodes and the number of end nodes,and explored the impact of the initial value on the performance of the algorithm by changing the initial value of proportional coefficient and derivative coefficient.NS2 simulation results show that IPD-RED algorithm makes the average queue length closer to the expected value,improves the throughput and reduces the packet loss rate.The influence of initial value shows that increasing the proportional coefficient in a certain range can make the average queue length faster and closer to the expected value and reduce the packet loss rate,but it increases the delay and oscillation.The dynamic range of the derivative coefficient is very large and has little effect on several network performance parameters.In practical application,the appropriate selection of the initial value of the coefficient can make the algorithm better adapt to the business on the aircraft.
Key words:active queue management;early detection;adjustment function;IPD-RED
0 引言
隨著時代發展和科技進步,飛機上的接口和鏈路越來越多,與外界的通信需求越來越多。隨著國產大飛機事業的蓬勃發展,機場無線通信、機組無線通信、寬帶衛星通信、空地無線寬帶通信(ATG)、航空機場場面移動通信系統(AeroMACS),這些已有的或者未來將有的通信鏈路將逐漸地部署到位。這些鏈路日趨復雜與龐大,鏈路所涉及到的用戶需求與通信數據量也在與日俱增。此時,飛機上的網絡環境逐漸趨于日常生活中的網絡環境。它也會如日常生活中使用因特網一般,出現擁塞與延遲,網絡波動與不穩定等情況,給用戶帶來不愉快的體驗感。設想到未來的這些情形,現考慮對于飛機上的鏈路數據進行隊列管理,采取合適的隊列管理算法來提高性能。
早在1984年,美國加州的一位學者Nagle就提出了針對網絡擁塞控制[1]的思想,他指出,TCP、IP協議一起使用時,由于數據報文層和傳輸層之間的相互作用,會導致異常擁塞問題,特別是IP網關特別容易受到擁塞崩潰。基于此思想,后來的學者逐漸提出了擁塞控制的策略及算法,歸根結底可分為兩大類。第一類是針對源端而設計的擁塞控制機制,這類算法的思想是根據發送端接收到來自接收端返回的是否接收到超時信息以及是否接收到確認信息,以此來調整發送端的數據發送速率,這一類算法難以適應網絡負載的變化,且是被動調節。第二類算法是基于鏈路中間節點的擁塞控制機制,這類算法的思想是鏈路的中間節點比目的端節點對擁塞情況的感知更加及時與準確,因此算法通過監測中間節點的擁塞情況并通知發送端來調節發送端的數據發送速率,以此來達到擁塞控制的目的。而針對中間節點的擁塞控制機制,又可分為隊列調度算法[2]和隊列管理算法[3]兩類相關算法。隊列調度算法是根據數據流所屬的業務類型來進行帶寬資源的分配,隊列管理算法則通過不同形式地丟棄包來避免擁塞的發生。目前隊列管理算法可分為被動式隊列管理(passive queue management,PQM)和主動式隊列管理(active queue management,AQM)[4,5]兩大類。被動式隊列管理主要采用先進先出(first in first out,FIFO)機制進行處理,隊列發生溢出時對末尾的包進行丟棄,簡單的處理機制使它具有固有的一些缺點[6],這里不再贅述。本文主要對主動式隊列管理算法進行研究。
1 主動隊列管理算法簡述
主動式隊列管理算法AQM是擁塞控制算法的其中一類[7],也可歸于鏈路管理算法。它主動檢測進入隊列的數據包大小,并通過預設的算法來通知源端相應地調整源端數據的發送速率[8,9]。隨機早期檢測算法(random early detection,RED)是AQM算法中的一種典型算法[10]。RED算法的核心思想就是保持緩沖區隊列長度較低。當進入隊列的數據包較大時,會按照一定的算法進行隨機丟包。RED算法在參數選取及不同的擁塞情況下并不能保持良好的性能,且對于目標隊列長度的期望值也不理想。因此基于RED算法,又有許多學者提出了改進算法[11,12]。比例微分控制的RED(RED based on proportional derivative control principle,PD-RED)就是其中一種能提高性能的改進算法[13]。它引入了比例微分控制的思想來調整最大丟棄概率,通過算法來動態調節最大丟棄概率,使得隊列保持在期望值附近,丟棄概率仍然按照RED算法的方式來進行處理。它能使RED算法的一部分性能得到改善,但同時也引入了新的參數,即比例系數和微分系數。新參數會涉及參數初值選取問題,不同參數的選擇會使算法最終呈現出來的性能有所差異。考慮到這個問題,為了盡量減小參數選取對于算法性能的影響,本文提出一種改進的PD-RED算法(improved PD-RED,IPD-RED),引入比例系數和微分系數的調整函數,通過設定初值,然后動態調整這兩個參數,以此來減小參數選取對于算法性能的影響。通過仿真實驗,比較吞吐量和丟包率,發現RED、PD-RED、IPD-RED算法在這兩個參數上保持著逐步優化的趨勢。比較隊列圖,IPD-RED算法相較PD-RED算法,平均隊列長度更接近期望值。
2 算法及其思想介紹
2.1 RED算法
RED算法的思路[14]可分為兩個步驟。
a)計算平均隊列長度。
avg(i+1)=(1-wq)·avg(i)+wq·q(1)
其中:avg(i)是每采樣時刻(i為采樣時刻,本文所述每時刻的數據即為采樣時刻的數據)計算的平均隊列長度;wq是權值,一般取0~1的一個值;q是每時刻的瞬時隊列長度。
RED算法使用平均隊列長度是為了使整體的隊列長度更趨于平滑狀態,剔除一些數據瞬態變化造成的影響。權值wq可以理解為低通濾波器長度,該值的選取可影響到瞬時隊列長度q變化時對平均隊列長度avg的改變程度。在設置初值時,wq通常取一個較小的值,此時平均隊列長度會與瞬時隊列長度反映出來的隊列情況有所滯后,但也正是該滯后性降低了隊列對瞬態變化的敏感度。
b)根據最大丟棄概率進行丟包。RED算法引入了minth和maxth兩個閾值,它們分別是設定的最小隊列長度和最大隊列長度,算法希望隊列長度能保持在這兩個值之間。當平均隊列長度大于最大閾值時,進行數據包的隨機丟棄;當平均隊列長度小于最小閾值時,不進行包的丟棄;當平均隊列長度在兩個閾值之間時,按照以下的公式進行計算與丟棄包。
Pb=maxp·(avg-minth)/(maxth-minth)(2)
Pa=Pb/(1-count·Pb)(3)
其中:count表示當前進入隊列中連續的沒有被丟棄的包;maxp是最大丟棄概率,取0~1的一個值。RED算法把Pb作為一個中間量,不讓包丟棄概率直接取該值,而是如該算法的核心思想一樣,希望能夠使包丟棄的情況更加均勻化,不對瞬態突發情況進行大面積的丟棄。隨著count的增加,到達的數據包被丟棄的概率也越來越大,最終以Pa作為實際的丟棄概率進行丟包。上述步驟的目的是為了避免連續大面積丟包,使瞬態的影響被均衡到其他時刻,讓隊列更能反映傳輸過程中整個趨勢而不是直接剔除瞬時數據流變化所造成的影響。
RED算法引入了平均隊列長度這個參數,試圖盡量減小突發數據擁塞的情況對于整個數據流傳輸的影響,用這個參數來反映整個過程中的隊列擁塞情況。RED的穩定性主要由最大包丟棄概率maxp所決定,因此考慮通過調整最大丟棄概率使隊列長度穩定在期望值,使算法性能進一步優化。
2.2 PD-RED算法
PD-RED算法通過調節最大丟棄概率maxp來對RED算法進行優化,對于maxp的調節函數如下[13]:
maxp(i+1)=maxp(i)+Kp0e(i+1)Bs+Kd0e(i+1)-e(i)Bs(4)
e(i)=avg(i)-QT(5)
QT=(maxth+minth)/2(6)
其中:Kp0為比例系數,Kd0為微分系數,e(i)是隊列誤差長度,如式(5)所示,為每時刻的平均隊列長度和期望隊列長度的差值。QT為期望的隊列長度,如式(6)所示表現為最大閾值和最小閾值的均值。Bs為時延帶寬積,即鏈路延時和帶寬相乘的結果。
業界的規則是路由器應能存儲與時延帶寬積相同大小的數據,這里可以假設緩沖區在傳輸速率上呈線性增長。由于隊列長度波動與時延帶寬積呈線性增長,所以它們也與所表示的緩沖區大小呈線性增長。那么,實際可以使用歸一化的誤差信號來代替誤差信號,即式(4)。PD-RED通過調節最大丟棄概率來使隊列均值更靠近期望值,同時也改進了RED的部分性能參數,實現了優化目的。
2.3 IPD-RED算法
本文提出的IPD-RED算法在PD-RED的基礎上進行了改進,其核心是根據比例系數和微分系數引入相應的調整函數,因此要把PD-RED算法變形為
maxp(i+1)=maxp(i)+Kpe(i+1)Bs+Kde(i+1)-e(i)Bs(7)
Bs=B·linkdelay(8)
Kp=-4009Kp0·x2+5Kp00≤xlt;0.3
20Kp0·(x-0.5)2+0.2Kp00.3≤xlt;0.7
-4009Kp0·(x-1)2+5Kp00.7≤xlt;1
5Kp0x≥1(9)
Kd=1.5Kd0·(x-1)2+0.5Kd00≤xlt;1
0.5Kd0x≥1(10)
x=|avg(i)-QT|/QT·10(11)
其中:B為鏈路帶寬,linkdelay為鏈路延時,Kp0和Kd0為設定的比例系數和微分系數的初值。x為調整函數的參數,表示隊列長度的波動情況。本文設計的調整函數參考了文獻[15,16]中Kp、Kd的變化規律。變化規律為
a)當隊列長度與期望值波動較大時,即|e(i)|較大時,Kp應取較大值;當隊列長度與期望值波動中等大小時,Kp應取較小值;當隊列長度與期望值波動較小時,Kp應增大。
b)當隊列長度與期望值波動較大時,Kd應取較小值;當隊列長度與期望值波動較小時,Kd應取較大值。
根據以上規律,本文選取平均隊列長度與期望值之間的偏差作為檢測量來實時調整比例系數和微分系數。首先本文設計隊列的波動期望保持在1/10QT之間,將偏差取絕對值并對其作歸一化處理,乘以10得到調整函數的參數x。接著以x為參照量,將它作為調整函數的橫坐標,然后將[0,1]這個區間劃分為[0,0.3]、[0.3,0.7]、[0.7,1]。此區間內變化規律為:比例系數Kp在[0,0.3]單調遞減,在[0.7,1]單調增加,在[0.3,0.7]有減有增,在x=0.5取得最小值,在x=0和x=1兩點取得最大值,調整函數均取為二次函數,保證了調整函數的連貫性;微分系數Kd在[0,1]單調遞減,在x=0時取得最大值,在x=1時取得最小值。比例系數和微分系數在[0,1]以變化規律依照調整函數進行動態調整,超過1就保持一恒定倍率,即維持x=1時的取值。將Kp0的倍率設置在[1/5,5],Kd0的倍率設置在[1/2,2],即Kp0和Kd0設定完初值后在這個倍率之間進行波動調整,具體的調整值遵循上述公式中的函數。IPD-RED控制流程如圖1所示。
圖1中,平均隊列長度和期望隊列長度計算得到誤差信號,歸一化處理得到調整函數參數x,然后將x輸入系數調整函數中。PD控制器完成比例微分控制的作用,其受到系數調整函數的影響,通過控制信號調整最大丟棄概率maxp,實際丟包概率按照RED算法的方式進行計算,從而達到TCP擁塞控制的作用。本文設計的IPD-RED算法與模糊邏輯控制、應用隸屬度函數調整的算法差異在于,應用的調整函數比較簡單、易設計,引入了調整函數的參數x,該變量由誤差信號計算歸一化后得出。參數x計算式中對誤差信號即偏差取絕對值是為了在設計調整函數時能更加簡便,取絕對值可以使負數域的波動范圍映射到正數區間,從而在設計調整函數時只需考慮設計正半軸的函數即可,減小設計復雜性。算法設法改變最大丟棄概率maxp,通過調整maxp來使隊列長度保持穩定,并盡量地靠近期望隊列長度附近,從而使網絡鏈路利用率、網絡延時、丟包率等方面能有更好的表現。
3 算法仿真
為了比較三種主動隊列管理算法的性能差異,本文采用的仿真平臺及仿真工具為VMware Workstation Pro 16.1.1、Ubuntu20.04和NS2(ns-2.35)[17~19]。仿真網絡的拓撲結構如圖2所示。
r1和r2作為路由器節點,數據的傳輸都要經過這兩個節點。n1~n10為端節點,可作為數據的源端與終端。它們之間可以任意傳輸數據,實驗中設置的數據傳輸方向為n1到n6,n2到n7,n3到n8,n4到n9,n5到n10。n1~n5連接著r1節點,它們鏈路的帶寬與延時設置為10 Mbps、3 ms;n6~n10連接著r2節點,它們鏈路的帶寬與延時設置為10 Mbps、3 ms;r1和r2鏈路之間的帶寬與延時設置為10 Mbps、5 ms。在此情況下對鏈路配置服務,對于五條傳輸鏈路配置FTP業務,并在數據層使用TCP協議。此外,對于隊列管理算法的配置,n1~n5連接r1節點之間的鏈路配置DropTail(隊尾丟棄隊列),n6~n10連接r2節點之間的鏈路配置DropTail,r1、r2節點之間的鏈路依次配置RED、PD-RED、IPD-RED。算法中配置的基本參數為:RED中thresh=20,maxthresh=80,wq=0.002,maxp=0.1,mean_pktsize=500; PD-RED和IPD-RED中Kp0= 0.002,Kd0=0.05;仿真時間設置為60 s,從0時刻開始傳輸TCP流。上述配置中,thresh和maxthresh為門限值的包大小,乘上后面的mean_pktsize(單位為Byte)便是minth和maxth兩個門限值,因此期望隊列長度QT以包大小表示為(thresh+maxthresh)/2=50。
3.1 隊列圖
設置上述的基本配置信息后,首先通過網絡仿真軟件來觀察隊列圖的情況,用NS2仿真器對三個算法分別進行仿真,得到如圖3所示的隊列。
圖3中,紅色表示的是瞬時隊列長度數據,黃色表示的是平均隊列長度數據(見電子版 )。圖(a)可以看出,RED算法的期望隊列長度是50個包大小,但實際仿真出來的結果在20~30,這是RED算法的一個缺陷。圖(b)可以看出,PD-RED算法的平均隊列長度在一定時間后上升,從這幅圖中看到,上升的幅度并不是很大。圖(c)可以看出,IPD-RED算法的平均隊列長度在一定時間后上升,上升幅度較PD-RED算法明顯,最終趨于期望值,在期望值附近上下波動。
從仿真的結果暴露出來,RED算法的缺陷之一在于該算法并不能達到設計預期的期望隊列長度QT,它離期望隊列長度還有顯著差距。PD-RED算法能在RED基礎上有所改善,但該初始條件下改進效果不顯著,IPD-RED較PD-RED算法對于平均隊列長度的改進程度較明顯,經過一定時間后能接近期望值。從與期望隊列長度的接近程度來看,RED、PD-RED、IPD-RED呈逐步改良與優化的關系。
3.2 thresh組合的影響分析
為了進一步說明三個算法之間的性能差異,實驗中引入更多網絡仿真中的參數來觀察它們之間的改進情況。接下來,通過吞吐量和丟包率這兩個參數來觀察各個算法之間的差異。吞吐量和丟包率通過運行awk腳本文件[20,21]來得到。NS2首先運行tcl腳本文件,以此來調用到隊列管理算法,仿真軟件運行結束后在文件夾中生成tr數據流文件。然后運行awk腳本文件,它可以分析仿真過程中生成的tr數據流,對于實驗需要的列數據進行讀取并加載到awk腳本文件中,由不同腳本邏輯得出不同的網絡仿真參數。此外,考慮到參數選取對于算法性能的影響,因此在分析吞吐量和丟包率這兩個參數時,通過控制變量的方法,分別改變thresh/maxthresh、路由節點間延時delay和端節點數量node的數值來分析算法性能差異。首先保持delay、node不變,通過仿真來觀察thresh/maxthresh不同組合的影響。
3.2.1 吞吐量
在delay=5 ms,node=10的條件下,保持期望隊列長度QT的數值為50個包大小,但改變thresh和maxthresh的數值,由于建議的maxthresh數值要在thresh的兩倍以上[22],所以選取以下幾種組合情況(由于仿真結束時刻為60 s,所以選取60 s時的吞吐量作對比,吞吐量單位為Kbps)。以case表示各種組合,case1:thresh=10,maxthresh=90;case2:thresh=15,maxthresh=85;case3:thresh=20,maxthresh=80;case4:thresh=25,maxthresh=75;case5:thresh=30,maxthresh=70。通過運行awk腳本文件可得到仿真過程中的吞吐量數值,選取60 s時刻的數據進行匯總,如表1所示。
通過表1可以看出,無論哪一種組合情況下,在吞吐量方面,RED、PD-RED、IPD-RED呈現逐步增大的趨勢。在case1、case2、case3下,算法的改善程度比較小;在case4、case5下,算法的改善程度較顯著。這是由于在前面幾種情況下,thresh和maxthresh差值更大,對RED算法來說能取得更優異的性能,改善效果不顯著,隨著上下門限值差值變小,RED算法性能變差,改善效果漸漸明顯。在case1、case2、case3下,三種算法的吞吐量都可以保持一個較高的值,尤其是RED算法與case4、case5對比。PD-RED與IPD-RED在這幾種case下均可以保持較高的吞吐量且保持著逐步提升的關系,說明實現了這一參數方面的改善效果。
3.2.2 丟包率
同樣在上述條件下,運行awk腳本文件得到丟包數量和傳輸的包總量,兩者相除得到丟包率,具體如表2和圖4所示。
通過表2和圖4可以看出,無論哪一種組合情況下,在丟包率方面,RED、PD-RED、IPD-RED呈現逐步減小的趨勢,且改善的效果均比較明顯。在幾種情況下,RED算法在case3下取得了最小的丟包率,PD-RED算法在case4下取得了最小的丟包率,IPD-RED在case3下取得了最小的丟包率。IPD-RED算法在每一種case下都能保持較低的丟包率且波動不大。
3.3 延時影響分析
綜合上述兩個表格的結果來看,case3是一個較優的選擇,即thresh=20,maxthresh=80的閾值條件下,RED在丟包率和吞吐量這兩個方面的綜合性能最優,PD-RED、IPD-RED也能有接近最優的性能。因此,這里選擇thresh=20,maxthresh=80這個條件,通過改變路由節點間延時delay的大小,同樣也是通過觀察吞吐量和丟包率這兩個參數來進行分析。吞吐量和丟包率也是通過上述同樣的awk腳本文件分析得出。
3.3.1 吞吐量
選取delay為5 ms、10 ms、15 ms、20 ms、25 ms、30 ms進行仿真。整理60 s時吞吐量的數據進行匯總,如表3所示。
通過表3可以看出,隨著延時的增大,不同算法的吞吐量均表現出下降的趨勢。在每個不同的延時下,RED、PD-RED、IPD-RED算法三者表現出吞吐量逐漸增加的情況,表明改進算法的確實現了吞吐量性能的改進。
3.3.2 丟包率
接下來同樣利用awk腳本文件得到包數據,計算丟包率與匯總數據,具體如表4和圖5所示。
通過表4和圖5可以看出,在一定的延時范圍內,隨著延時的增加,各個算法的丟包率均表現出減小的趨勢,且在不同的延時下,RED、PD-RED、IPD-RED的丟包率均逐次減小。在延時較小的情況下,RED、PD-RED、IPD-RED之間的改善效果較為顯著,隨著延時的增大,改善效果漸漸變小。
綜合上述兩組改變不同變量的實驗最終得出,改變thresh/maxthresh的值以及delay的值,用相同的腳本分析幾個算法之間的吞吐量與丟包率,可以發現,在一定的參數范圍內,RED、PD-RED、IPD-RED之間在吞吐量和丟包率方面保持著一致性的規律:在吞吐量方面,吞吐量大小始終保持著IPD-REDgt;PD-REDgt;RED這樣一個趨勢;在丟包率方面,丟包率大小始終保持著IPD-REDlt;PD-REDlt;RED這樣一個趨勢。這樣的趨勢說明了RED改進算法的合理性,實現了它們的改進功能,在吞吐量和丟包率方面有明顯的改善。此外,在上面兩組實驗中,也對延時和隊列振蕩的時間進行了腳本分析。經實驗發現,三個算法在延時和振蕩這兩個方面并無明顯的改善關系,而是保持著整體相近的數值。
3.4 端節點數量影響分析
然后研究端節點數量變化會對算法的網絡參數造成何種影響。選擇thresh=20,maxthresh=80,delay=30 ms這一條件,選取端節點為10、20、40、60進行仿真,觀察高負載下網絡參數如何變化。
3.4.1 吞吐量
運行awk腳本得到60 s時的吞吐量數據,如表5所示。
通過表5可以看出,隨著端節點數量增加,各算法吞吐量都呈增加趨勢。PD-RED算法在負載量小時吞吐量高于RED算法,隨著負載增加,一定程度后吞吐量小于RED算法。IPD-RED算法的吞吐量一直處于最優,但隨著負載增加改善效果漸漸變小,各算法的網絡吞吐量漸漸趨于瓶頸容量。
3.4.2 丟包率
計算丟包率數據如表6所示。
通過表6可以看出,隨著端節點數量增加,各算法的丟包率都呈增加趨勢。在負載量小時,PD-RED的丟包率小于RED算法,在負載大于一定程度后丟包率大于RED算法。IPD-RED算法的丟包率一直處于最優,但隨著負載增加改善效果漸漸變小,說明高負載下各算法的丟包率指標變差,漸漸趨同。
此外,仿真得出,隨著負載增加,隊列長度均值漸漸增加并靠近期望值,但其余的網絡性能參數都呈現惡化趨勢,總體說明高負載不利于隊列管理算法的執行。
3.5 初值影響分析
對于初值的考慮,是由于其余文獻中并未詳細提及初值變化會對算法有何影響,也沒有研究人員對初值進行改變,并借此來分析可能會對算法的哪些網絡參數造成影響。因此本文欲探究比例系數Kp0和微分系數Kd0的初值變化對IPD-RED算法性能的影響。實驗中將初值變為原來的0.5倍、2倍、5倍、10倍再次進行仿真比較(保持delay=5 ms,node=10,thresh=20,maxthresh=80這一條件)。
3.5.1 比例系數的影響
實驗先觀察比例系數的初值變化可能會對算法性能造成的影響。保持Kd0不變,改變Kp0的初值。仿真隊列如圖6所示。
對于延時、振蕩的期望和方差、吞吐量、丟包率數據,如表7所示。由圖6可以看出,隨著Kp0的增大,可以使隊列在更短的時間內靠近期望值附近,而且最終平均隊列長度離目標期望值(50)更接近。但可以看出從Kp0=0.01開始,平均隊列長度在期望值附近的抖動明顯變大,說明Kp0初始值到一定程度時會使隊列最終穩定性變差。從表7可以看出,在選取的范圍內,隨著Kp0的增加:a)丟包率先減小后增大;b)一定范圍內吞吐量無較大差異,在Kp0大到一定程度后明顯減小;c)延時和振蕩的期望與方差均呈現增大趨勢。綜上可知,Kp0的變化對吞吐量的影響較小,會使隊列圖、丟包率、延時和振蕩發生較大的差異。提高Kp0可使隊列更快更好地接近目標期望值,同時也可以使丟包率減小,但這會帶來延時和振蕩的增加。因此在實際情況下要適當選擇。本實驗中,設定側重于延時和振蕩的數據,因此選取Kp0=0.002,在更側重丟包率的情況下可選取Kp0=0.004。
(a)Kp0=0.001"""""""" (b)Kp0=0.002
(c)Kp0=0.004""""""""" (d)Kp0=0.01
(e)Kp0=0.02
3.5.2 微分系數的影響
接下來保持Kp0=0.002,改變Kd0的初值,來觀察微分系數的變化又會使IPD-RED算法的性能產生何種變化。同樣將初值變為原來的0.5倍、2倍、5倍、10倍再次進行仿真比較,如表8所示。經實驗發現,Kd0的變化對于隊列圖的影響幾乎不可見,因此這里不進行討論。觀察表8發現,在選取的范圍內,Kd0變化對于其余幾個參數的影響也很小,說明該微分系數的取值范圍動態空間很大。
4 結束語
本文基于主動式隊列管理算法,在PD-RED算法的基礎上進行改進,提出了IPD-RED算法,并通過實驗比較了RED、PD-RED、IPD-RED算法。經實驗發現,改變不同參數的情況下,IPD-RED算法均能夠在吞吐量和丟包率方面對于PD-RED算法有所改進,即提高了吞吐量、減小了丟包率。同時實驗也驗證了PD-RED對于RED的改進關系。在隊列長度方面,IPD-RED算法能夠更快更好地接近期望,PD-RED次之,RED這方面性能最差。在實驗分析比例系數和微分系數的初值影響后,發現一定范圍內比例系數的增大可使平均隊列長度更快更接近期望值且減小丟包率,但會使延時和振蕩增加。微分系數的動態范圍很大,對幾個網絡性能參數的影響很小。實際應用可以適當選取初值來使隊列管理功能更好地實現。
參考文獻:
[1]Maheshwari M K.NexGen D-TCP:next generation dynamic TCP congestion control algorithm[J].IEEE Access,2020,8:164482-164496.
[2]秦劍秀,宋建霖,戴小文.改進WFQ算法在列車網絡調度中的應用研究[J].計算機應用研究,2019,36(11):3302-3305.(Qin Jianxiu,Song Jianlin,Dai Xiaowen.Research on application of improved WFQ algorithm in train network scheduling[J].Application Research of Computers,2019,36(11):3302-3305.)
[3]Khatari M,Zaidan A A,Zaidan B B,et al.Multi-criteria evaluation and benchmarking for active queue management methods:open issues,challenges and recommended pathway solutions[J].International Journal of Information Technology amp; Decision Making,2019,18(4):1187-1242.
[4]Abdelmoneim A M,Bensaou B.Hysteresis-based active queue management for TCP traffic in data centers[C]//Proc of IEEE INFOCOM.Piscataway,NJ:IEEE Press,2019:1621-1629.
[5]張義,趙旭,涂華,等.無線局域網中增強3D視頻傳輸的隊列管理機制[J].中國電子科學研究院學報,2017,12(3):246-250.(Zhang Yi,Zhao Xu,Tu Hua,et al.A queue management mechanism to improve 3D video transmission in WLAN[J].Journal of CAEIT,2017,12(3):246-250.)
[6]張旭,顧乃杰,谷德賀,等.一種高效通用的TCP尾部丟包恢復算法[J].小型微型計算機系統,2017,38(9):1921-1927.(Zhang Xu,Gu Naijie,Gu Dehe,et al.Efficient universal tail loss recovery algorithm for TCP[J].Journal of Chinese Computer Systems,2017,38(9):1921-1927.)
[7]譚堯木.自適應隊列管理算法研究[D].北京:華北電力大學,2019.(Tan Yaomu.Research on adaptive queue management algorithm[D].Beijing:North China Electric Power University,2019.)
[8]劉正飛,孫金生,胡斯喬.基于模型有效性評價的主動隊列管理算法[J].控制理論與應用,2019,36(4):570-578.(Liu Zhengfei,Sun Jinsheng,Hu Siqiao.An active queue management algorithm based on model effectiveness evaluation[J].Control Theory amp; Applications,2019,36(4):570-578.)
[9]Hotchi R,Chibana H,Iwai T,et al.Active queue management suppor-ting TCP flows using disturbance observer and Smith predictor[J].IEEE Access,2020,8:173401-173413.
[10]吉曉香.一種面向網絡擁塞的AQM算法研究[J].現代電子技術,2019,42(14):74-77,82.(Ji Xiaoxiang.Research on AQM algorithm dealing with network congestion[J].Modern Electronics Technique,2019,42(14):74-77,82.)
[11]Rastogi S,Zaheer H.Comparative analysis of queuing mechanisms:Droptail,RED and NLRED[J].Social Network Analysis and Mi-ning,2016,6(1):123-232.
[12]馮思楠,康巧燕,王建峰,等.一種基于BP神經網絡預測的RED改進算法[J].計算機與網絡,2019,45(3):68-71.(Feng Sinan,Kang Qiaoyan,Wang Jianfeng,et al.An Improved RED algorithm based on BP neural network prediction[J].Computer amp; Network,2019,45(3):68-71.)
[13]Sun Jinsheng,Ko K T,Chen Guanrong,et al.PD-RED:to improve the performance of RED[J].IEEE Communications Letters,2003,7(8):406-408.
[14]Hamadneh N,Al-Kasassbeh M,Obiedat I,et al.Revisiting the gentle parameter of the random early detection(RED) for TCP congestion control[J].Journal of Communications,2019,14(3):229-235.
[15]Azami G,Gholizade N H.Bandwidth management with congestion control approach and fuzzy logic[J].International Journal of Enginee-ring,2021,34(4):891-900.
[16]魏濤,張順頤.一種模糊自調整的PD-RED算法[J].計算機工程與應用,2007,43(5):124-126,162.(Wei Tao,Zhang Shunyi.A fuzzy self-tuning PD-RED algorithm[J].Computer Engineering and Applications,2007,43(5):124-126,162.)
[17]張家鋼,王海松,胡洛林.基于NS2的AODV路由協議分析及仿真研究[J].現代信息科技,2020,4(3):52-54.(Zhang Jiagang,Wang Haisong,Hu Luolin.Analysis and simulation of AODV routing protocol based on NS2[J].Modern Information Technology,2020,4(3):52-54.)
[18]Gupta A,Agrawal K,Bansal P,et al.Performance evaluation of various transmission control protocols in NS2[M].Berlin:Springer,2020.
[19]Issariyakul T,Hossain E.Introduction to network simulator NS2[M].2nd ed.Berlin:Springer,2009.
[20]Free Software Foundation.Gawk:effective AWK Programming[EB/OL].(2021)[2021-10-20].http://www.gnu.org/software/gawk/ manual/.
[21]Ahmed K T,Hossen M R,Sana S,et al.Estimating a suitable routing protocol in MANET for CBR and FTP traffic for varying pause time[J].IOSR Journal of Electronics and Communication Enginee-ring,2019,14(6):53-58.
[22]曹志波.基于NS-2的RED算法的優化策略[D].焦作:河南理工大學,2010.(Cao Zhibo.Optimization strategy of RED algorithm based on NS-2[D].Jiaozuo:Henan Polytechnic University,2010.)