跳转至

入门

要点 1 参数配置信息

example_run/ 文件夹下:

  • config_ns3.properties: 配置 仿真参数 的文件
    • 包含仿真结束时间、随机种子、拓扑文件、调度配置
  • topology.properties: 描述 拓扑结构 的文件
    • 包含节点和链路的设置
  • tcp_flow_schedule.csv: 描述 TCP 流的调度 文件
    • 指定了每个 TCP 流的源、目标、大小、起始时间
  • udp_burst_schedule.csv: 描述 UDP 爆发流的调度 文件
    • 指定了 UDP 流的源、目标、速率、持续时间等信息

要点 2 运行主函数

$ns-3scratch/ 文件夹中创建一个名为 my_main.cc 的文件,文件内容为仿真程序代码。

此代码将:

  • 加载仿真环境 (从上述配置文件中获取)
  • 读取拓扑文件并安装路由器和调度器 (scheduler or helper)
  • 安装 TCP、UDP 和 Ping 流的调度器 (scheduler or helper)
  • 执行仿真并输出结果

基础模板

要点 3 执行方式

这点跟ns-3的基本步骤一模一样,都是先configure,再build,最后run

值得一提的是,这个子模块基于 ns-3-3.31,此时还是用 ./waf 作为构建指令的(在3.37之后就不用了,直接用 ./ns3

Bash
1
./waf --run="my_main --run_dir='/your/path/to/example_run'"

如果你想保存控制台输出,可以使用:

Bash
1
2
mkdir -p /your/path/to/example_run/logs_ns3
./waf --run="my_main --run_dir='/your/path/to/example_run'" 2>&1 | tee /your/path/to/example_run/logs_ns3/console.txt

要点 4 查看结果

仿真结束后,在 example_run/logs_ns3/ 目录下会生成一些结果文件,内容包括:

  • finished.txt:仿真完成标志
  • timing_results.csvtiming_results.txt:时间统计结果
  • tcp_flows.csvtcp_flows.txt:TCP 流的详细信息
  • udp_bursts_incoming.csvudp_bursts_outgoing.csv:UDP 流的收发统计
  • pingmesh.csvpingmesh.txt:Ping 测试的统计数据
  • link_utilization.csv:链路利用率
  • link_utilization_summary.txt:链路利用率汇总