Page 425 - 《软件学报》2024年第4期
P. 425
李彤 等: 传输控制中的确认机制研究 2003
制能够使得 ACK 的频率在不同的带宽场景下保持较低水平, 具有较强的带宽适应性.
3.1.6 Tame ACK 机制
Tame ACK 机制也称为 TACK 机制 [29,30] , 它的目标是在网络条件动态变化下, 最小化 ACK 的发送频率.
TACK 机制是针对 Bounded ACK 机制的进一步改进, 不仅具有带宽适应性, 还具有时延适用性. 根据公式 (5), 具
RTT min
体实现时, TACK 机制将 α 的取值设置成 RTT 的因数, 即 α = . RTT min 表示一段时间内的最小 RTT, β 表示
β
每个 RTT min 回复的 ACK 的数目. 由于 bw 表示实时的吞吐量, 在实际实现中无法及时更新, 因此 TACK 机制采用
bw 最大值, 则 TACK 机制的 ACK
了其统计值, 即 bw max , 表示一段时间内的 频率 f tack 可以表示为:
( )
β
bw max
f tack = min , (6)
L·MSS RTT min
定义带宽时延积 (bandwidth and delay product, BDP) 为 BDP= RTT min ×bw max . 则 TACK 机制频率更新方法如
下: (1) 当 BDP 大于或等于 ρ× L×MSS 时, 该 ACK 的频率更新为: 每经过 RTT min 时间发送 β 个 ACK; (2) 当 BDP
小于 ρ× L×MSS 时, 该 ACK 的频率更新为: 每收到 L×MSS 字节的数据报文后, 发送 1 个 ACK.
因此, 当 BDP 较大时, TACK 机制的 ACK 频率保持在一个相对恒定的水平 (即 Periodic ACK), 同时与 RTT min
成比例进行变化, 具有较强的时延适应性; 当 BDP 较小时, TACK 机制回退到 Byte-counting ACK, 此时, ACK 频率
随着 bw 等比例减小. 因此, TACK 机制能够最小化 ACK 的频率, 具有较强的带宽适应性.
3.1.7 不同 ACK 机制对比
表 1 总结了不同 ACK 机制的优缺点对比分析. 其中, 最简单的 ACK 机制为 Per-packet ACK, 但其面临 ACK
开销大的问题. 减少 ACK 开销主要有两类方法. 一类是收到更多数据报文后再回 ACK 报文, 如 Byte-counting
ACK; 一类是经过更长的时间后再回 ACK 报文, 如 Periodic ACK.
表 1 不同 ACK 机制对比
机制 ACK频率 触发条件 优/缺点
bw
Per-packet ACK 收到1个数据报文 开销大、尾包丢失超时问题
PKT_SIZE
bw 解决开销问题, 但带宽较大时适应性
Byte-counting ACK 收到L个MSS大小的数据报文
L·MSS 差、尾包丢失超时问题
1 解决尾包丢失超时问题, 但带宽较小
Periodic ACK 周期性
α 时适应性差
( )
bw 1 Byte-counting ACK和Periodic ACK两
,
Delayed ACK max L·MSS α 者频率较大值 带宽适应性差, 无法最小化ACK频率
L = 2
( )
bw 1 Byte-counting ACK和Periodic ACK两
Bounded ACK min , 带宽适应性强, ACK频率有界
L·MSS α 者频率较小值
( )
bw max β Byte-counting ACK和Periodic ACK两 带宽适应性强, 时延适应性强, 可以最
TACK min ,
L·MSS RTT min 者频率较小值 小化ACK频率
Byte-counting ACK 的 ACK 频率与带宽成正比, 因此带宽较大时 ACK 开销仍然较大 (即带宽适应性差). 同
时, 由于 ACK 触发条件必须是接收到数据报文, 因此, 当发生尾包丢失时, 易导致超时问题.
Periodic ACK 不以接收数据报文为触发条件, 因此, 即使发生尾包丢失, 发送方也可以收到反馈, 从而避免超
时. 然而, Periodic ACK 的 ACK 频率与带宽不相关, 当带宽较小时, ACK 频率仍然可能在较高的水平, 从而导致资
源浪费 (即带宽适应性差).
Delayed ACK 综合了 Byte-counting ACK 和 Periodic ACK, 然而并没有解决带宽适应性的问题. 具体地, 当带
宽较大时, Delayed ACK 采用 Byte-counting ACK 的方式, 并且规定 L=2, 在这种情况下, ACK 开销仍然较大; 当带
宽较小时, Delayed ACK 回退到 Periodic ACK, 但在这种情况下, ACK 频率无法随带宽成比例减小.