如何在 NS3 中使用 Tcp 变体比较?

How to use Tcp Variants Comparison in NS3?

我需要为一个 class 项目比较使用 ns-3 的不同类型的 TCP。我是 ns-3 的新手。我不想实施新代码。简而言之,我有 2 个问题:

  1. 哪个 ns-3 示例最适合我的目的? Tcp-变体-Comparison.cc?
  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 协议的拥塞 window 存储到 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 的一个很好的介绍,所以请仔细阅读。

所以为了完整回答你的问题,你可以用这个例子来比较:

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

所以 运行 这个例子有不同的 transport_prot 参数并比较你的痕迹。