ns中模擬出來的時間最終會以trace檔案的形式告訴我們,雖然說一般都是用awk等工具分析trace檔案,但是了解trace檔案的格式也是必不可少的。下面就介紹一下無線網路模擬中trace檔案的格式。
trace檔案的最開始時一段形如
m 0.0 nn 4 x 500 y 500rp dsdv
m 0.0 sc cp seed 0.0
m 0.0 prop propagation/tworayground ant antenna/omniantenna
這段**主要是一些環境介紹性性的文字。通過查閱官方手冊我自己理解,大概猜了一下
首先的那個字母有五種選擇
代表的是trace檔案所描述資訊的型別,然後跟的就是一些tcl中的配置資訊,像是範圍什麼之類的。
再給出一段我們要重點分析的例子:
動作 時間 節點 層次 ---分組uid 分組型別 分組大小 【mac層資訊】 ----【ip層資訊】r 0.033271645 _1_ mac --- 0 cts 64 [0 18f840e1 d23f5e16 0
] s
0.033281645 _1_ mac --- 0 unkn 64 [0 18f840e1 d23f5414 0
] s
0.033803645 _1_ mac --- 10 cbr 600 [0 18f840e1 d23f8a01 0] ------- [1:0
0:032
0] [3] 00r
0.038604145 _0_ mac --- 10 cbr 532 [0 18f840e1 d23f8a01 0] ------- [1:0
0:032
0] [3] 10s
0.038614145 _0_ mac --- 0 ack 48 [0 18f840e1 d23f0000 0
] r
0.038998645 _1_ mac --- 0 ack 48 [0 18f840e1 d23f0000 0
] s
0.039308645 _2_ mac --- 8 message 100 [0 80e6de89 933f0000 0] ------- [2:255 -1:255320
] r
0.040108978 _3_ mac --- 8 message 32 [0 80e6de89 933f0000 0] ------- [2:255 -1:255320
] r
0.040109145 _0_ mac --- 8 message 32 [0 80e6de89 933f0000 0] ------- [2:255 -1:255320
] d
0.040244414 _2_ rtr ifq 0 cbr 532 [000
0] ------- [2:0
3:032
0] [0] 00s
0.041607590 _1_ mac --- 0 rts 56 [0 18f840e1 d23f6818 0
] r
0.042056090 _0_ mac --- 0 rts 56 [0 18f840e1 d23f6818 0
] s
0.042066090 _0_ mac --- 0 cts 64 [0 18f840e1 d23f5e16 0
] r
0.042578590 _1_ mac --- 0 cts 64 [0 18f840e1 d23f5e16 0]
可以看出檔案的開始形式基本相同
首先第一列代表的是事件型別,其中:
s代表分組的傳送事件;
r代表分組的接收事件;
d代表分組的丟棄事件;
f代表分組的**事件;
第二列是時間的發生時間
第三列(形如「——1——」)代表節點編號
第四列是trace種類,種類有:
rtr:路由器trace;
agt:**trace;
mac:mac層trace;
接下來的部分略有不同。首先我們看事件型別為傳送和接收的:
第五列(形如「---」)是分隔符
第六列是分組id
第七列是分組型別(像是rts、cts、ack等)
第八列是分組大小(單位位元組)
第九列(接下來那個中括號括的)表示mac層的詳細資訊
然後有的還有
第十列(中括號中的四個值)分別表示:
分組的ttl值。
源節點到目的節點的跳數。
這是些比較通用的字段,其他的部分主要就是和自己的定義有一定關係了。
NS2中trace檔案分析
ns中模擬出來的時間最終會以trace檔案的形式告訴我們,雖然說一般都是用awk等工具分析trace檔案,但是了解trace檔案的格式也是必不可少的。下面就介紹一下無線網路模擬中trace檔案的格式。trace檔案的最開始時一段形如 m 0.0 nn 4 x 500 y 500 rp dsdv m ...
NS2學習 看懂trace檔案(2)
ns use newtrace 使用新格式。語句在 ns trace all tracefd 之前 new trace格式定義 n node property i ip level packet information h next hop information m mac level packe...
NS2中,編譯檔案
ns2是用c 和tcl編寫的,可以按照自己的方式修改並執行。所以就需要修改一下裡面的原始碼,編譯之後執行。這裡簡單介紹一下,如何編譯。一如果只是簡單改動,比如新增了乙個.cc檔案,或者修改了乙個.cc檔案。在makefile檔案修改之後,直接在nsx.xx目錄下,執行 make就可以了。修改make...