Skip to main content

7 posts tagged with "NS2"

View All Tags

· One min read

說到網路模擬,大家在試過各種模擬網路工具之後,都會覺得模擬網路比起實際架設其實並不是容易的事情,

網路模擬 Scenario 主要都是由 4 個部分構成:點,線,面,時間

因為網路通訊本身就由 Physical/MAC, IP, Network, Application 等層構成, 就 Physical/MAC 來簡分就有無線,有線之別,IP, Network 層裡又有多樣的協定, 總合起來先天網路通訊本模擬上就有極高的複雜度.

先由網路模擬 Scenario 來說. 在 ns2 上是在 tcl 檔中定義,在 omnet++ 上是在 ned 檔與 omnetpp.ini 檔中定義

· 2 min read

Digest from here :

In a mixed simulation involving wired and wireless nodes its necessary : 1. to turn on hierarchical routing 2. to create separate domains for wired and wireless nodes. There may be multiple wired and wireless domains to simulate multiple networks. 3. to have one base-station node in every wireless domain, thru which the wireless nodes may communicate with nodes outside their domain.

we need to use hierarchical routing in order to route packets between wireless and wired domains

  • the routing information for wired nodes are based on connectivity of the topology
  • use base-stations which act as gateways between wired and wireless domains

#Number of domains in this topology is 2 (one for the wired nodes and one for the wireless) AddrParams set domainnum 2

#Number of clusters in each of these domains #which indicates the first domain (wired) to have 1 clusters and #the second (wireless) to have 5 cluster. AddrParams set clusternum {1 5}

#the number of nodes in each of these clusters AddrParams set nodesnum {1 1 3 1 1 1}

心得: 在 mobiwan 中,bs 可以當 rt 用, 因此 bs 也有路由功能

每個 bs 都可以當 HA, 因此 mobiwan 裡不必指定 HA, mobile attach 上的那個點就自動做 HA.

所以 set mobile_ [create-mobile 1.4.1 1.4.0 1000 200 0 0 0.01] 表示 mobile 會把 1.4.0 這節點當作 HA

create-mobile 來自 proc-mipv6-config.tcl 啟動 def_mobile_config 來處理

base-station: create-base-station 啟動 def_bs_config 來處理 讓 bs 可以處理 wired&wireless 的重點是 #have wired routing mechanism turned on -wiredRouting ON 開啟 MIPv6 功能 -mipv6 ON

router: def_transit_config -mipv6 ON -mipagent CN

NS2 上的 RO 即是把 CN 當作 HA, 接收 BU, 然後作 tunnel 欲啟動 RO , 則在檔案最前頭宣告: Agent/MIPv6/MN set rtopti 1 ; # 0 if routing optimization OFF

· 3 min read

新 r 33.908773621 3 MAC --- 334 mipv6_bu 70 [13a 1 4 800] ------- [4196353:0 0:0 32 4198400] 舊 s -t 1.000075000 -Hs 22 -Hd 2147483647 -Ni 22 -Nx 100.00 -Ny 2200.00 -Nz 0.00 -Ne -1.000000 -Nl MAC -Nw --- -Ma 0 -Md ffffffff -Ms 14 -Mt 800 -Is 4222977.0 -Id 2147483647.0 -It ipv6_sol -Il 100 -If 0 -Ii 1 -Iv 255

欄位: event type 事件類型)

有四種基本事件類型

  • s: send (傳送)
  • r: receive (接收)
  • d:drop (丟棄)
  • f: forward (轉送)

還有一種特別類型

  • m: move (移動)

欄位 2: general flag

-t: time (時間)

欄位 3: Next hop info (下一站的資訊)

-Hs: id for this node -Hd: id for next hop towards the destination

欄位 4: Node property type tag (節點屬性類型標籤

-Ni: node id (節點 ID) -Nx –Ny -Nz: node s x/y/z coordinate (節點 x/y/z 的座標位置) -Ne: node energy level -Nl: trace level, such as AGT, RTR, MAC -Nw: reason for the event (事件發生原因)

欄位 5: packet info at MAC level (封包在 Mac 層的資訊)

-Ma: duration -Md: dest’s ethernet address -Ms: src’s ethernet address -Mt: ethernet type

欄位 6: Packet information at IP level (封包在 IP 層的資訊)

-Is: source address. Source port number (來源位置,a.b 其中 a 為節點 ID, b 為埠號 -Id: dest address.dest port number (目的位置) -It: packet type (封包類型) -Il: packet size (封包大小) -If: flow id (資料流 ID) -Ii: unique id (唯一的 ID 編號) -Iv: ttl value (Time To Live 的值)

欄位 7: 封包在應用層的資訊。

包含的應用程式類型如 arp, tcp 或者是 adhoc 路由協定,這個欄位都是以 P 所開頭的, 且標籤為隨著應用程式不同而不同

Trace 檔分析:

Packet Loss 數量計算: 不考慮 Out-of-Order 情況時,Packet Loss 數量的計算方法最簡單,每一個封包在傳送端發送前,傳送端都會給封包一個序號,序號是連續性的,因此若是在接收到發現序號有不連續的發生,則可視為有封包的移失。

OWD&IPDV 計算: 最重要的欄位是 Sending Time (傳送時間) 和 Sequence Number (封包序號), 可以用來計算出 One Way Delay (OWD) 和 IP Delay Variance (IPDV,或是 Jitter)。

One Way Delay = 接收時間 – 傳送時間

IPDV = | 目前量測到的 OWD - 上一次量測到的 OWD|

Reference:

http://140.116.72.80/~smallko/ns2/wireless1.htm http://www.k-lug.org/~griswold/NS2/ns2-trace-formats.html http://www.ee.surrey.ac.uk/Personal/L.Wood/ns/

· One min read

(討論區整理得)

如果是已經 Compiler 過的 ns2, 則改 Makefile 然後在 ns2 的目錄下 例如: ns2.2x 則是在 ns-2.2x 目錄下執行

#make depand #make

這樣就可以從新 compiler ns2 並且加入自己的模組

如果想要加入自己寫的程式,則可以修改 ns2 的 Makefile 如果是還未 Compiler 過的 ns2, 則修改 Makefile.in 然後依照 ns2 的安裝說明來安裝

· 2 min read

用來與 OMNET++ IPv6Suite 模組 作對照的模擬工具是 NS2 上的 Mobiwan2 模組. 這是目前最多人使用的模擬模組. 除了基礎對照系統架設之外, 還將根據之前學長在 NS2.1b1 上使用 Mobiwan 的程式, 改寫成 for NS2.27 的 Mobiwan2 版本. 以順便了解其架構,並利用其優點在 INET6 porting 上

剛開始照著 NS2 (Network Simulator) 教學手冊 的 安裝篇 裝, 成功後再裝 Mobiwan2 卻遇到問題.

解決方法是在執行 NS2-AllinOne 安裝前先照著 Mobiwan2 網站上的指令 patch 好,

# cd <your>ns-allinone-2.27/ns-2.27
# zcat <patchfile.gz></patchfile.gz></your>patchfile.gz<your><patchfile.gz> |patch -p1</patchfile.gz></your>

然後再執行 NS2 安裝

./install

要是已經把 NS2 裝好了怎麼辦?還能怎麼辦,我只會一個笨方法...... 先把之前裝的整個目錄砍掉後,再裝一次吧...Orz.

在 Cygwin 上測試的方法:命令列中輸入 startxwin.bat。會產生一個新的視窗,在此命令視窗中輸入

$ cd your path to ns-2.27
$ ./ns simple-mipv6.tcl

若要在 Fedora Core 3 上安裝,因為 gcc 版本太新 (3.34) 的關係,笨笨的 NS2 不懂得支援, 去下載 http://www.ececs.uc.edu/~cdmc/ucbt/src/ns227-gcc34.patch 這個好心人寫的修正檔, 丟到 ns-allinone-2.27 目錄下,打入

#patch -p0 -p0 < ns227-gcc34.patch

修正後再來裝就可以了.