ndnSIM中提供了幾種trace用來對仿真結果進行跟蹤,生成數據文件txthtml
官網地址: https://ndnsim.net/current/metric.html#packet-trace-helper-examplepython
一、L3RateTracer(官網示例文件:ndn-tree-tracers.cpp)緩存
L3RateTracer::InstallAll("rate-trace.txt", Seconds(1.0)); 跟蹤NDN節點轉發的興趣/數據包的字節數和速率 生成結果文件rate-trace.txt,包含如下內容
Time Node FaceId FaceDescr Type Packets Kilobytes PacketRaw KilobytesRaw
0.5 leaf-1 1 internal:// InInterests 0 0 0 0
0.5 leaf-1 1 internal:// OutInterests 0 0 0 0
0.5 leaf-1 1 internal:// InData 0 0 0 0
0.5 leaf-1 1 internal:// OutData 0 0 0 0
0.5 leaf-1 1 internal:// InNacks 0 0 0 0
0.5 leaf-1 1 internal:// OutNacks 0 0 0 0CacheHits:「數據包」列指定緩存中知足的興趣數
CacheMisses:「數據包」列指定緩存中未知足的興趣數
0.5 leaf-1 1 internal:// InSatisfiedInterests 0 0 0 0
0.5 leaf-1 1 internal:// InTimedOutInterests 0 0 0 0
0.5 leaf-1 1 internal:// OutSatisfiedInterests 1.6 0 1 0
0.5 leaf-1 1 internal:// OutTimedOutInterests 0 0 0 0
二、L2RateTracer(官網示例文件:ndn-simple-withl2tracer.cpp)網絡
此跟蹤器在本質上與ndn :: L3RateTracer類似,但當前僅跟蹤第2層上的數據包丟棄
下圖是根據官網用R語言繪製的結果圖
ns3::L2RateTracer::InstallAll("rate-trace.txt", Seconds(1.0));
結果文件包含如下內容:
Time Node Interface Type Packets Kilobytes PacketsRaw KilobytesRaw
1 Rtr1 combined Drop 0 0 0 0
三、CsTracer(官網示例文件:ndn-tree-cs-tracers.cpp)app
僅當使用OldContentStore結構時,此跟蹤器才起做用!spa
經過使用ndn :: CsTracer,能夠得到仿真節點上緩存命中/緩存未命中的統計信息.net
CsTracer::InstallAll("cs-trace.txt", Seconds(1));
結果文件包含:
Time Node Type Packets
1 leaf-1 CacheHits 0
1 leaf-1 CacheMisses 11
1 leaf-2 CacheHits 0
1 leaf-2 CacheMisses 1
Type:CacheHits: 「數據包」列指定緩存中知足的興趣數
CacheMisses:「數據包」列指定緩存中未知足的興趣數
Packets:該時間段內的數據包數量,其含義取決於「類型」列
四、AppDelayTracer(官網示例文件:ndn-tree-app-delay-tracer.cpp)rest
經過使用ndn :: AppDelayTracer,能夠獲取有關發出興趣和接收相應數據包之間的延遲的數據。code
AppDelayTracer::InstallAll("app-delays-trace.txt");
結果文件中包含:
Time Node AppId SeqNo Type DelayS DelayUS RetxCount HopCount
10.0058 leaf-1 0 0 LastDelay 0.0057904 5790.4 1 2
10.0058 leaf-1 0 0 FullDelay 9.00579 9.00579e+06 3 2
seqNo:興趣數據的序列號
Type: LastDelay表示DelayS和DelayUS表示最後發送的興趣和接收到的數據包之間的延遲
FullDelay表示DelayS和DelayUS表明發送的第一個興趣點和接收到的數據包之間的延遲(即,包括興趣點重傳的時間)
DelayS:延遲值,以秒爲單位
DelayUS:延遲值,以微秒爲單位(10 ^ -6)
RetxCount:重發興趣的次數(對於LastDelay始終等於1)
HopCount:檢索到的數據包在從生產者應用程序或緩存返回的途中通過的網絡躍點數。
請注意,與ndnSIM 1.0相比,HopCount字段的語義已更改。
剩下的工做就是將結果數據文件處理後可視化htm
官方使用的R語言,這裏數據處理的方法均可,我習慣用python。