Page 438 - 《软件学报》2024年第4期
P. 438
2016 软件学报 2024 年第 35 卷第 4 期
时, 如果吞吐量从 48 Mb/s 增长到 200 Mb/s, 则 TACK 机制的 ACK 频率将降低两个数量级 ( f tack = 2.4%· f tcp ) , 而
TCP 仅降低了一个数量级. 同时, 如图 22(a) 所示, 吞吐量越大, 拐点对应的 RTT 边界值越小.
最后, 往返时延越大, 应用 TACK 机制减少的 ACK 数目越多, 收益越大. 例如, 如图 22(b) 所示, 当 bw =
200 Mb/s 时, 如果往返时延从 10 ms 增长到 80 ms, 则 TACK 机制的 ACK 频率将降低 3 个数量级 ( f tack = 0.3%· f tcp ) ,
而 TCP 保持不变. 同时, 如图 22(b) 所示, 往返时延越大, 拐点对应的 bw 边界值越小.
总结起来, 在大部分情况下, TACK 机制可以显著地减少 ACK 报文的数目. 同时, 容易证明, 如果数据报文小
于 MSS, 也可以得到相似的结论.
f tcp (bw=1000 Mb/s) f tack (bw=1000 Mb/s) f tcp (L=1) f tack (RTT=80 ms)
f tcp (bw=100 Mb/s) f tack (bw=100 Mb/s) f tack (RTT=1 ms) f tack (RTT=200 ms)
f tcp (bw=0.1 Mb/s) f tack (bw=0.1 Mb/s) f tack (RTT=10 ms) f tack (RTT=400 ms)
10 5
10 5 拐点
拐点
10 4 10 4
ACK 频率 (Hz) 10 3 ACK 频率 (Hz) 10 3 2
10
2
10
10 1
10 0
10 1
0.001 0.01 0.1 1 10 20 30 40 50 60 70 80 90 100 0.001 2 5 10 50 100 500 1 000 2 000 3 000
RTT (ms) bw (Mb/s)
(a) ACK 频率与往返时延的关系 (b) ACK 频率与吞吐量的关系
图 22 ACK 频率与往返时延、吞吐量之间的关系
4.4.2 TACK 机制在实际网络中的运行结果
(1) 实验设置
实验运行在基于 IEEE 802.11 b/g/n/ac 的无线链路上, 这些链路的物理速率分别为 11/54/300/866.7 Mb/s. 实验
对比对象为应用了 TACK 机制的 TCP 实现, 即 TCP-TACK, 以及采用 Delayed ACK 机制的传统的 TCP. 其中, L =
2. 实验过程中, 一台 Wi-Fi 主机 (Intel Wireless-AC 8260, 2 × 2) 通过一台无线路由器 (TLWDR7500) 连接另一台有
线的主机. 所有设备均放置在一个公共办公室环境中, 经检测, 峰值情况下, 环境中存在超过 10 个其他的 Wi-Fi 路
由器和超过 100 个无线终端用户. 通过 Ping 进行测试, 发现 RTT 在 4 ms 到 200 ms 之间波动, 且存在少量的突发
丢包. 收发双方之间进行打流测试, 测试重复执行了 7×24 h.
(2) 实验结果
在给出实际的性能结果之前, 我们先进行理论数值分析. 如图 23(a) 所示, 针对 IEEE 802.11 b 链路, 当 RTT 较
小 (RTT=10 ms) 时, TACK 与 TCP 具有相同的 ACK 报文数目. 然而, 针对 IEEE 802.11 ac 链路, 当 RTT 较小
(RTT=10 ms) 时, TACK 的 ACK 报文数目相比 TCP 降低了两个数量级, 当 RTT 较大 (RTT=80 ms) 时, TACK 的
ACK 报文数目相比 TCP 降低了 3 个数量级. 考虑到当前实际网络很少用到 IEEE 802.11 b 链路, 大部分实际网络
的带宽都要高于 IEEE 802.11 b 链路的带宽, 因此, TACK 机制在实际的网络中能够显著地减少 ACK 的数目, 从而
有潜力提升网络传输的性能.
如图 23(b) 所示, 在实际的基于 IEEE 802.11 b/g/n/ac 链路的网络中, TCP-TACK 相比传统 TCP 减少了 90% 以
上的 ACK 数目, 提升了 20%–28% 的吞吐量. TCP-TACK 获得有益效果的原因, 来源于 TCP-TACK 减少了 ACK
报文的数目, 从而减少了 ACK 报文与数据报文之间的频谱资源竞争, 从而提升了可用带宽.
针对前面讨论的 ACK 机制面临的问题和挑战, 我们进一步探究 TACK 机制在时延抖动和反向丢包场景下的
性能. 图 24(a) 给出了时延抖动下的 TACK 机制性能举例. 在这个实验中, 实际最小 RTT 为 100 ms, 蓝色虚线表示