跳转至

TCP优化器

用于调整 TCP 协议栈的默认设置,以便优化 TCP 性能

组件

优化器实现:tcp-optimizer.cc/h

优化模式对比

整个优化器有两种模式可以启用:

  1. 基础优化模式: 优化 TCP 的一些基础参数设置,但不会修改与时序相关的设置
  2. 最坏RTT优化模式: 不仅调整基本参数,还考虑最坏情况下的 RTT(往返时间)
特性 基础优化模式 最坏RTT优化模式
参数调整范围 窗口大小/拥塞算法等静态参数 增加超时重传等动态时延参数
RTT敏感性 不依赖网络时延估算 依赖拓扑最坏RTT估算值
适用场景 通用网络环境 高延迟/卫星网络等极端场景

启用优化

C++
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#include "ns3/tcp-optimizer.h" // 头文件引入

// 基础优化(常规参数调优)
TcpOptimizer::OptimizeBasic(basicSimulation);

// 增强优化(含时延敏感参数)
TcpOptimizer::OptimizeUsingWorstCaseRtt(
    basicSimulation, 
    topology->GetWorstCaseRttEstimateNs() // 获取拓扑最大RTT
);

典型优化参数

Text Only
1
2
3
4
5
6
7
8
9
# 基础优化包含:
- 默认拥塞控制算法调整为CUBIC
- 接收窗口大小扩展至1MB
- 启用选择性ACK(SACK)

# RTT优化新增:
- 最小重传超时(RTO)设为3*RTT
- 延迟ACK阈值动态调整
- 初始拥塞窗口倍增
Note

最坏RTT值通过topology->GetWorstCaseRttEstimateNs()自动计算,反映拓扑中最大可能往返时延。

两种优化方法可叠加使用,建议在卫星网络等长时延场景优先启用RTT模式。