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   频率无法随带宽成比例减小.
   420   421   422   423   424   425   426   427   428   429   430