2016-05-01 35 views
2

我需要比較不同類型的TCP使用NS-3的類項目。我是ns-3的新手。我不想實現一個新的代碼。簡而言之,我有兩個問題:如何在NS3中使用Tcp變體比較?

  1. ns-3的哪個示例最適合我的用途? Tcp-Variants-Comparison.cc
  2. 如何查看輸出。我運行了代碼,但沒有輸出。

回答

2

您可以使用.waf運行您的示例。導航到您的NS-3目錄(其中.waf可執行文件所在的位置),然後運行:

./waf --run tcp-variants-comparison 

這將編譯(如果需要),並運行默認參數的例子。您可以使用--command-template="%s <args>"更改參數。如果你看看tcp-variants-comparison.cc裏面你可以看到所有可用的參數,如:

... 
cmd.AddValue ("delay", "Access link delay", access_delay); 
cmd.AddValue ("tracing", "Flag to enable/disable tracing", tracing); 
cmd.AddValue ("tr_name", "Name of output trace file", tr_file_name); 
cmd.AddValue ("cwnd_tr_name", "Name of output trace file", cwnd_tr_file_name); 
... 

因此,這裏是你可以存儲默認TcpWestwood協議cwndTrace的擁塞窗口的例子文件:

./waf --run tcp-variants-comparison --command-template="%s --tracing=1 --cwnd_tr_name=cwndTrace" 

然後,您可以使用任何你喜歡的工具來顯示數據。下面是如何與gnuplot繪製它:

$ gnuplot 
gnuplot> set terminal png size 640,480 
gnuplot> set output "cwnd.png" 
gnuplot> plot "cwndTrace" using 1:2 title 'Congestion Window' with linespoints 
gnuplot> exit 

你也應該看看this NS-3 tutorial。這給你一個很好的介紹NS-3,所以仔細閱讀。

cwnd

所以完全回答你的問題,你可以用這個例子的對比:

cmd.AddValue ("transport_prot", "Transport protocol to use: TcpTahoe, TcpReno, TcpNewReno, TcpWestwood, TcpWestwoodPlus ", transport_prot); 

所以運行具有不同transport_prot爭論這個例子和比較你的痕跡。

+0

不幸的是,在我的ns3中沒有'cwnd_tr_name'。我如何獲得'tcp-variants-comparison'的輸出文件? – codddeer123

+1

@ codddeer123你是對的[刪除](http://code.nsnam.org/ns-3-dev/diff/a4c1c237df2c/examples/tcp/tcp-variants-comparison.cc)這個選項。但是,如果你看看代碼,你會找到答案:) 'Simulator :: Schedule(秒(0.00001),&TraceCwnd,prefix_file_name +「-cwnd.data」);'' – incBrain