網絡仿真的意義
在網絡規劃和設計、網絡設備研發、網絡協議開發中,需要一種手段來反映和預測網絡的性能 網絡仿真可以提高網絡規劃設計的可靠性和準確性,明顯降低網絡投資風險,減少不必要的浪費
Ns-2 is a discrete event simulator
Scheduler
Advance of time depends on the timing of events
Object-oriented simulator
C++ : fast to run, slower to change – protocol implementation
Otcl : slower to run, fast to change – simulation configuration
Components
Ns – simulator itself
Nam – network animator Visualize ns (or other) output
Simulation procedure
Pre-processing
Traffic and topology model
Post-processing Trace analysis, often in awk, perl, or tcl
Platform
Unix (Linux)
Windows (cygwin)
Packages
Tcl/tk
Otcl
tclcl
Ns-2
Nam
Xgraph
C++ compiler
NS2安裝
windows:虛擬機 cygwin Liunx 版本2.19或2.31 安裝過程 (請百度)
Linux 下NS2使用
“cd 文件夾名” 與 “cd..” 命令進入編寫好的tcl腳本所在的文件夾 “ns2 xxx.tcl” 測試:~/ns-allinone-x.x/ns-x.x/ns-tutorial/examples
Tcl與OTcl
Tcl:Tool Command Language,是一種腳本語言
OTcl:Object Tcl,是在Tcl的基礎上進行了面向對象的封裝 NS中主要使用Tcl/OTcl來模擬環境中網絡的環境和參數設置?
Tcl基本語法
Tcl只支持一種數據結構,即字符串
Tcl基本語法
Cmd arg1 arg2
Tcl中對代碼進行注釋用“#”
?
NS2基本組件
節點(node):網絡設備
鏈路(link):網絡物理連接
包(packet):數據包
代理(Agent):創建傳輸層的端到端連接
調度器( Scheduler):事件調度?
用Tcl/Otcl進行網絡仿真
以端到端測量實驗為例開始網絡仿真
網絡中測量端節點的時延、丟包率等參數對于了解網絡運行狀態、優化網絡結構、提高網絡服務質量具有十分重要的作用 本項目實驗的目的是通過構建網絡環境,測量網絡中的節點之間時延、丟包率等參數,分析參數與網絡流量的變化關系
以端到端測量實驗為例開始網絡仿真
初始化
創建ns simulator
創建.tr文件(記錄仿真結果)
創建.nam文件(記錄仿真過程)
設置結束函數
設置仿真中所需的參數
創建仿真拓撲
創建節點
創建并設置鏈路
設置鏈路各鏈路在nam中的排列方式
創建流量
探測流量:向網絡中添加的額外流量,通過對這些流量進行統計分析可以獲得端到端性能參數,在ns2中可以通過設置CBR、UDP、TCP等形式的流量實現。
背景流量:用于模擬網絡中已經存在的流量,可以有TCP、UDP、短時TCP等多種形式。(添加準則:盡量能夠反映實際網絡中流量的特性)
設置步驟
設置流量的產生、結束
結束仿真
實例說明
?
?
?dest_node_num對應拓撲圖的最下面,給每個節點編號
for循環創建節點,然后一條一條創建鏈路
?隊列設置小一點(幾十),方便觀察丟包
91——131行: 每條鏈路源點和目的節點的節點編號,放入到兩個向量中ls和ld?
設置背景流量,希望和真實流量行為一致?
設置每條udp流的起始和結束時間
在鏈路的源節點創建一個agent,把agent鏈接到目的節點。
發送一個隨機產生的udp流,發一段時間,挺一段時間,發送和停止的時間各占一半,創建了每條鏈路上的udp流,每一條鏈路上都添加了link_udp_num條UDP流?
?
?每一個包是一個CBR流 (修改為源到每個葉節點的所有探測包都在一個CBR流)
對發包過程進行簡化,每條CBR流的起始和結束時間?
?
實驗目的:
熟悉Tcl/OTcl腳本語言的基本語法,熟悉NS2的基本組件和使用 掌握使用Tcl/OTcl腳本語言實現網絡仿真環境,仿真結果分析方法?
實驗步驟:
使用NS2構建仿真網絡拓撲,給出相應的拓撲結構圖,不少于20個節點
利用NS2流量發生器模擬產生流量,使鏈路平均負載達到需要的比例,給出鏈路平均負載的計算過程和結果
利用CBR流量發生器在端節點之間發送數據包
通過對NS2仿真結果文件(*.tr文件)的分析,統計CBR流量數據包的傳輸情況,計算端到端平均排隊時延和丟包率
驗證鏈路平均負載對端到端時延和丟包率的影響,給出端到端時延和丟包率隨鏈路平均負載的變化曲線圖和結果分析,并對結果進行分析