NS3基本命令學習

腳本運行

./war --run scratch/myfirst

日志設置

可以在程序中給程序設置日志級別

LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_INFO);

程序外export命令設置

export NS_LOG=UdpEchoClientApplication=level_all
export 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func'
export 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func:UdpEchoServerApplication=level_all|prefix_func'
export 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func|prefix_time:UdpEchoServerApplication=level_all|prefix_func|prefix_time'
export 'NS_LOG=*=level_all|prefix_func|prefix_time'
export 'NS_LOG=*=level_all|prefix_func|prefix_time'
 ./waf --run scratch/myfirst > log.out 2>&1
/*
./waf --run scratch/myfirst 1> log.out 2>&1
Linux的IO輸入輸出有三類
Standard Input 代碼 0
Standard Output 代碼 1
Standard Error 代碼 2
2>&1 &1表示類似1,錯誤輸出綁定到1上
*/
export NS_LOG= //清除腳本外ns3日志設置

使用命令行參數(當次運行有效)

CommandLine cmd;
cmd.Parse (argc, argv);//在程序中加入
./waf --run "scratch/myfirst --PrintHelp"
./waf --run "scratch/myfirst --PrintAttributes=ns3::PointToPointNetDevice"
./waf --run "scratch/myfirst --ns3::PointToPointNetDevice::DataRate=5Mbps"
./waf --run "scratch/myfirst --ns3::PointToPointNetDevice::DataRate=5Mbps --ns3::PointToPointChannel::Delay=2ms --ns3::UdpEchoClient::MaxPackets=2"http://要注釋掉程序中原來的參數
//自己添加命令行參數
uint32_t nPackets = 1;
CommandLine cmd;
cmd.AddValue("nPackets", "Number of packets to echo", nPackets);
//然后再運行./waf --run "scratch/myfirst --PrintHelp"就可以看到自己添加的參數了
./waf --run "scratch/myfirst --nPackets=2"

使用Tracing

Trace發送端是可以在仿真過程中產生信號事件并且提供有關數據訪問通道。
Trace發送端自身是沒有用的,必須要跟接收端提供有用信息的代碼段“相連”。這種發送端和接收端工作的基本原理是允許用戶給已有的tracing發送端關聯上新類型的接收端,而不需要編輯和重新編譯仿真器的核心,一個用戶可以在腳本中定義新的tracing接收端,并且可以將其關聯到仿真核心中定義的tracing接收端

ASCII 碼Tracing

增加以下代碼
#include <iostream>//就可以使用標準的C++輸出
然后,在Simulator::Run()前增加下面的代碼:

AsciiTraceHelper ascii;
pointToPoint.EnableAsciiAll(ascii.CreateFileStream("myfirst.tr"));

然后編譯運行,使用trace可以更加詳細的分析仿真過程

啟用pcap tracing

pointToPoint.EnablePcapAll ("myfirst");

用tcpdump讀取結果或者用Wireshark讀取結果

tcpdump -nn -tt -r myfirst-0-0.pcap

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,992評論 19 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,972評論 6 342
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,558評論 25 708
  • 一:LoadRunner常見問題整理1.LR 腳本為空的解決方法:1.去掉ie設置中的第三方支持取消掉2.在系統屬...
    0100閱讀 4,257評論 0 11
  • 還有十五分鐘,就要23了。 凄慘的23歲。荒誕的意外。 怎樣能擺脫…
    Flavie閱讀 183評論 0 1