TCP 流量应用¶
组件
- 发送端:
tcp-flow-send-application.cc/h
- 接收端:
tcp-flow-sink.cc/h
- 调度器:
tcp-flow-scheduler.cc/h
- 辅助类:
*-helper.cc/h
系列文件
部署应用¶
跟前面两节一样,这里依然是存在两种部署方式🚀
部署模式对比
特性 | 调度器模式 | 手动模式 |
---|---|---|
配置复杂度 | 低(自动批量处理) | 高(逐流配置) |
管理粒度 | 全局流量管理 | 单流精细控制 |
典型场景 | 多流批量实验 | 特定流调试 |
使用调度器¶
- 配置文件设置 (
config_ns3.properties
):Text Only 1 2 3
enable_tcp_flow_scheduler=true tcp_flow_schedule_filename="tcp_flow_schedule.csv" tcp_flow_enable_logging_for_tcp_flow_ids=set(0,1)
- 调度文件格式 (
tcp_flow_schedule.csv
):Text Only 1 2 3
flow_id,from_node,to_node,size_byte,start_ns,params,metadata 0,0,1,10000,0,, 1,0,1,3000,10000,,
- 代码集成:
C++ 1 2 3 4 5
#include "ns3/tcp-flow-scheduler.h" // 头文件 TcpFlowScheduler scheduler(basicSimulation, topology); // 调度器 scheduler.WriteResults(); // 仿真后输出结果
手动安装¶
C++ | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
流状态监控¶
C++ | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
日志文件解析¶
文件名 | 格式 |
---|---|
tcp_flows.csv |
flow_id,from,to,size_byte,start_ns,end_ns,duration_ns,sent_byte,status |
tcp_flows.txt |
人类可读格式,包含流完成状态标记(YES/NO_* 系列状态码) |
状态码说明
YES
: 成功完成NO_CONN_FAIL
: 连接失败NO_BAD_CLOSE
: 异常关闭NO_ERR_CLOSE
: 错误关闭NO_ONGOING
: 未完成