跳到主要内容

Appendix A: Control Channel Slow Start and Congestion Avoidance

A.1 概述 (Overview)

L2TP 控制通道采用可靠的消息传输机制。为了防止网络拥塞,建议实现类似 TCP 的慢启动和拥塞避免算法。

A.2 慢启动算法 (Slow Start Algorithm)

初始参数:

  • 初始拥塞窗口 (cwnd): 1 个消息
  • 慢启动阈值 (ssthresh): 接收窗口大小

算法步骤:

  1. 每收到一个 ACK,cwnd 增加 1
  2. 当 cwnd >= ssthresh 时,进入拥塞避免阶段
  3. 发送的未确认消息数不超过 min(cwnd, 接收窗口)

A.3 拥塞避免 (Congestion Avoidance)

退避策略:

  • 检测到超时时:ssthresh = max(cwnd/2, 2)
  • 重置 cwnd = 1,重新开始慢启动

往返时间估计 (RTT Estimation):

  • 采用 Jacobson/Karels 算法计算重传超时 (RTO)
  • 平滑 RTT = (1-α) × 平滑RTT + α × 测量RTT
  • RTO = 平滑RTT + 4 × RTT偏差