Page 429 - 《软件学报》2024年第4期
P. 429

李彤 等: 传输控制中的确认机制研究                                                              2007


                    第三, QUIC  协议的   Delayed ACK  机制运行在应用层    (用户态), 而  TCP  协议的  Delayed ACK  机制运行在传输
                 层  (内核态). 由于用户态相比内核态天然易于调试, 因此可以预见未来                  QUIC  协议上的   ACK  机制将会更有机会得
                 到进一步的演进和优化.
                    (2) RTCP  与  TCP  的确认机制对比
                    RTCP  协议主要用于实时音视频传输应用中, 而              TCP  协议是通用传输协议, 两者应用场景的差异导致其在
                 ACK  报文的类型和携带的信息的设计上截然不同.
                    ACK  报文的发送频率方面, RTCP        协议的确认机制是       Bounded ACK  机制的具体实现. 因此, 相比       TCP  的
                 Delayed ACK  机制, RTCP  协议的确认机制具有更强的带宽适应性. 具体地, RTCP             协议的确认机制可以根据会话
                 中发送方的数目进行适配, 如果发送方超过总成员的                 25%, 则  ACK  占用的带宽平均分配给所有发送方和接收方;
                 否则把至少    25%  的  ACK  带宽分配给发送方, 其余分配给接收方.
                    RTCP  协议的确认机制是继       TCP  协议的确认机制之后的一种全新的尝试, 为后续的按需确认机制的提出奠定
                 了良好的基础.

                  4   按需确认机制设计与评价

                  4.1   设计实践: 针对无线局域网的     TACK  机制
                    按需确认机制的实现, 依赖于对收发双方节点的修改                  (通常不需要修改中间的转发节点). 即使基于用户态协
                 议栈, 实现一个全新的确认机制也依然存在双端部署难题. 因此, 设计一个按需确认机制, 使其能够运行在通用网
                 络中显然不太现实. 真正可行的方式, 是针对某种特定应用环境设计相应的确认机制. 下面, 以无线局域网抗干扰
                 的应用场景为例, 介绍如何根据应用场景的需求, 设计可行的按需确认机制.
                  4.1.1    动机: 减少  ACK  数目
                    传统传输协议      TCP  因为要保证可靠, 在发送数据报文的同时, 难以避免地频繁发送                  ACK  报文. 另一方面, 无
                 线局域网    (如  Wi-Fi) 的半双工特性和冲突避免机制, 使        ACK  报文和数据报文产生直接的资源竞争, 形成“内部干
                 扰”. 在传统  TCP  的  ACK  机制下, ACK  报文占用大量的可用频谱资源. 而且, 带宽越大, “内部干扰”越严重. 在这种
                 情况下, 减少   ACK  报文的数目从而降低“内部干扰”, 不仅可以提高无线传输的有效带宽利用率, 而且还可以在弱
                 网下将有限的宝贵传输资源留给数据报文.
                    TACK (Tame ACK) 机制  [29,30]  是一种按需确认机制, 其设计目标是最小化         ACK  的数目, 从而减少内部干扰,
                 并且需要能够支撑其他协议功能模块实现低开销和高性能的基本目标. 如前面所述, TACK                           机制的   ACK  频率   f tack
                 可以表示为:
                                                        (            )
                                                                  β
                                                          bw max
                                                               ,                                      (7)
                                                   f tack =min
                                                         L·MSS RTT min
                 其中,   bw max  表示一段时间内的最大带宽, MSS     表示最大段长度,      RTT min  表示一段时间内的最小     RTT. L  和   β 是可
                        bw max
                 调参数.         表示每累计收到      L  个  MSS  大小的数据报文后回复     1  个  ACK  报文.    β 用于控制每个  RTT  回复的
                        L·MSS
                               β
                 TACK  的数目,        表示每经过    RTT min  回复   β 个  ACK.
                             RTT min
                    要最小化    ACK  数目, 则需要确定     β 的下界和   L  的上界. Li 等人  [29]  通过理论推导和分析, 证明了当瓶颈链路
                 的缓存至少为     1  倍  BDP  时, 有   β =2, 即   β 的下界为  2. 同时, L  的上界可以表示为   Q   , 其中  Q 表示  ACK  携带的
                                                                                ρ·ρ ′
                                               ′
                 信息量,    ρ  表示正向路径上的丢包率,      ρ  表示反向路径上的丢包率.
                    为了增加    ACK  报文的反馈鲁棒性, Li 等人     [29]  通过进一步的分析, 结合实际经验, 建议取         β = 4 .
                  4.1.2    挑战: TACK  引入的副作用
                    (1) 丢包恢复延迟大
                    行头阻塞导致报文组装延迟, 从而严重影响传输性能. 应用                  TACK  将进一步增大由于行头阻塞引入的报文组
   424   425   426   427   428   429   430   431   432   433   434