基於NS的路由器佇列管理機制效能分析

才智咖 人氣:7.91K
畢業論文

基於NS的路由器佇列管理機制效能分析
 
摘要:隨著Internet的飛速發展,由於競爭網路資源而導致的網路擁塞問題越來越嚴重。在路由器等交換裝置上應用有效的佇列管理演算法對於提高網路效能來說顯得愈發重要。
由於TCP的擁塞控制作用有限,IETF推薦在路由器上使用主動佇列管理(AQM)技術與TCP擁塞控制相配合來避免擁塞,並推薦RED作為候選演算法。RED演算法目前已經成為使用最為廣泛的主動佇列管理演算法。
本文所作的工作如下:
首先分析了擁塞產生的原因以及進行擁塞控制的方法,包括TCP源端控制和路由佇列管理演算法。
然後闡述了1些經典的AQM演算法的設計原理,以及RED演算法的改進方向。
接著詳細分析了SRED演算法和RED演算法是如何在Network Simulator(NS)上實現的,並從工程的角度分析了它們C++程式碼的實現。
最後通過NS模擬平臺,設計了4種具有普遍意義的網路實驗,測試了RED演算法和SRED演算法在各種流量環境中的效能,並分析實驗結果。

基於NS的路由器佇列管理機制效能分析

關鍵詞: 擁塞控制;主動佇列管理;Network Simulator;RED;SRED

 
Performance Analysis of Router Queue Management Mechanism Based on NS
 
Abstract: With the rapid development of the Internet, the network congestion which is caused by competing of network resource becomes more and more critical. In order to improve network performance, applying effective queue management algorithm on routers become more and more important.
Because of some defects of TCP congestion control, IETF suggests using an active queue management (AQM) on routers and recommends RED as the candidate algorithm. RED has been most widely implemented as one of the AQMs at present.
The main work of this thesis is:
At first, analyzing the reason why the congestion is caused and the method to control the congestion, including resource control of TCP and the algorithm for routing queue.
Then, stating the design principles of some classic AQM algorithms, and how to improve RED algorithm.
And the follow, analyzing how to install the algorithm of SRED and RED on Network Simulator (NS) in detail and how to realize the algorithms in C++ code.
At last, designing four classical network experiments on NS to test the performance of RED and SRED , and analyzing the results of experiments.

Keywords: congestion control; active queue management; Network Simulator; RED; SRED
目錄

前言 1
1 Internet所面臨的擁塞問題 2
1.1 擁塞和擁塞控制的基本概念 2
1.2 擁塞和網際網路模型關係 2
1.3 擁塞產生的原因 3
1.4 擁塞避免/控制策略的要求 4
1.5 本章小結 4
2 TCP擁塞控制機制 5
2.1 TCP擁塞控制機制的介紹 5
2.2 TCP擁塞控制機制的過程 5
2.3 擁塞控制的問題 7
2.4 本章小結 7
3 路由器佇列管理的擁塞控制 8
3.1 被動式佇列管理及其缺陷 8
3.2 主動佇列管理(AQM)及其優點 9
3.3 幾種主動佇列管理演算法 9
3.3.1 RED主動佇列管理演算法 10
3.3.2 SRED主動佇列管理演算法 15
3.3.3 RED演算法的1些改進演算法 17
3.4 AQM的設計要求與要點 19
3.5 本章小結 19
4 NS軟體的介紹 20
4.1 NS的簡介 20
4.2 NS的使用 21
4.3 NS的模擬 23
4.4 本章小結 24
5 AQM演算法的C++程式碼分析 25
5.1 NS中Otcl和C++的關係 25
5.2 AQM演算法在NS中的實現 26
5.2.1 SRED的C++程式碼分析 26
5.2.2 RED的C++程式碼分析 36
5.3如何新增1個新的AQM演算法在NS中執行 39
5.4 本章小結 40
6 模擬實驗 41
6.1 實驗簡介 41
6.2 實驗結果與分析 41
6.2.1靜態小流量下兩種演算法效能比較 41
6.2.2 動態小流量下兩種演算法效能比較 42
6.2.3靜態大流量下兩種演算法效能比較 43
6.2.4動態大流量下兩種演算法效能比較 44
6.3本章小結 45
7 結束語 46
參考文獻 47
致謝 48
 
前言

隨著Internet規模的不斷擴大和寬頻網路連線的普及,網路使用者數量呈現指數級的增長。網路資源的有限性與網際網路日益增長的使用者需求之間的矛盾愈發突出,從而導致越來越嚴重的'網路擁塞問題。產生擁塞的原因主要在於應用對於資源的需求超過網路資源所能提供的可用部分。1旦發生擁塞,網路的效能將受到極大的影響,表現為資料包時延增加、丟棄概率增大、上層應用系統性能下降等。
網路中的資源主要有以下幾種:鏈路容量,交換節點的快取區和處理機等。通過高速骨幹網的架設來增加鏈路容量,在1定程度上緩解了低頻寬所帶來的瓶頸問題。硬體廠商不斷推出具有高速處理能力的路由器等網路裝置,以保證CPU在執行排隊快取和更新路由表等功能時,其處理速度能夠匹配高速鏈路。增加快取空間在某種程度上可以緩解突發流量的分組由於快取容量有限而被強制丟棄這1問題,然而如果路由器快取容量過大時,擁塞只會變得更壞,而不是更好。
近年來,網際網路的主營業務在逐步發生著變化和轉移。傳統的WWW網頁瀏覽、FTP檔案傳輸1類的非時延敏感的網路應用己經不能滿足人們的需求,各類視訊點播VOD、音訊VOIP和實時監控等實時多媒體網路應用飛速增長。新興業務流的服務質量QoS對於網路傳輸的延時和抖動的控制提出了較高的要求。
假設交換節點的CPU處理能力不受限(即不存在處理延時),那麼網路的延時主要由傳輸延時和排隊延時兩個部分構成。傳輸延時依賴於通訊雙方的物理連線距離和傳輸介質,1般來說比較固定。路由器上的排隊延時則與其快取區的佇列長度有關。因此,如何使用有效的排隊演算法對佇列的長度進行控制並降低佇列長度的變化幅度和範圍,是控制延時和抖動問題的關鍵。
主動佇列管理(Active Queue Management, AQM)就是IP層擁塞控制和資源管理技術之1。這些演算法控制路由器快取區的佇列長度,並在1定程度上對可能出現的擁塞進行檢測和預防,而不僅僅是在出現擁塞時進行被動的丟包,這正是主動佇列管理的含義。
    本文主要做的工作是對1些經典的AQM演算法進行比較;解釋了AQM演算法是如何在NS 中完全實現的,並通過分析RED演算法和SRED演算法基於NS的C++程式碼實現,來解釋1個演算法是如何在工程上實現的;最後在NS的模擬平臺上,進行了4種典型的網路環境下RED演算法和SRED演算法的效能測試,並分析了測試結果。