adhoc简单仿真
[一個簡單的 802.11b ad-hoc 網路實驗] 資料來源http//mailman.isi.edu/pipermail/ns-users/2004-March/040068.html [模擬網路的架構圖] n0 --------------------- n1802.11b ad-hoc network [TCL 程式碼] wireless.tcl A simple example for wireless simulation Define options set valchan Channel/WirelessChannel ; channel type set valprop Propagation/TwoRayGround ; radio-propagationmodel set valnetif Phy/WirelessPhy ; network interface type set valmac Mac/802_11 ; MAC type set valifq Queue/DropTail/PriQueue ; interface queue type set valll LL ; link layer type set valant Antenna/OmniAntenna ; antenna model set valifqlen 50 ; max packet in ifq set valnn 2 ; number of mobilenodes set valrp DSDV ; routing protocol Main Program 主程式 產生一個模擬的物件 set ns_ [new Simulator] 定義一個記錄檔,用來記錄封包傳送的過程 set tracefd [open simple.tr w] ns_ trace-all tracefd 開啟一個 NAM trace file set nf [open out.nam w] ns_ namtrace-all-wireless nf 500 500 set up topography object 建立一個拓樸物件 set topo [new Topography] 拓樸的範圍為 500m x 500m topo load_flatgrid 500 500 Create God create-god valnn set chan_1_ [new valchan] Create the specified number of mobilenodes [valnn] and “attach“ them to the channel. Here two nodes are created node0 and node1 configure node 設置節點參數ns_ node-config -adhocRouting valrp \-llType valll \-macType valmac \-ifqType valifq \-ifqLen valifqlen \-antType valant \-propType valprop \-phyType valnetif \-channel chan_1_ \-topoInstance topo \-agentTrace ON \-routerTrace ON \-macTrace OFF \-movementTrace OFF 802.11b 的參數設定 Configuration for Orinoco 802.11b 11Mbps PC card with -22.5m range Phy/WirelessPhy set Pt_ 0.031622777 Phy/WirelessPhy set bandwidth_ 11Mb Mac/802_11 set dataRate_ 11Mb Mac/802_11 set basicRate_ 1Mb for broadcast packetsPhy/WirelessPhy set freq_ 2.472e9 channel-13.2.472GHz Phy/WirelessPhy set CPThresh_ 10.0 Phy/WirelessPhy set CSThresh_ 5.011872e-12 Phy/WirelessPhy set L_ 1.0 Phy/WirelessPhy set RXThresh_ 5.82587e-09for {set i 0} {i valnn } {incr i} { set node_i [ns_ node] node_i random-motion 0 ; disable random motion } Provide initial X,Y, for now Z0 co-ordinates for mobilenodes 設定節點 0 的位置在10.0, 20.0, 0.0 node_0 set X_ 10.0 node_0 set Y_ 20.0 node_0 set Z_ 0.0 設定節點 1 的位置在10.0, 40.0, 0.0 node_1 set X_ 10.0 node_1 set Y_ 40.0 node_1 set Z_ 0.0 ns_ initial_node_pos node