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

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


                                               发送方            接收方
                                                                 ACK1 通告小接收窗口
                                            重传                    行头阻塞恢复
                                                                  接收缓存释放
                                         停止发送                     接收窗口更新延迟
                                           数据
                                                                 ACK2 通告大接收窗口
                                         恢复发送
                                           数据

                                              图 11 ACK   延迟触发降低传输效率

                  2.5   按需确认机制设计原则
                    为了适应异构网络环境的动态变化以及不同业务的多样化需求, 解决带宽适应性、时延适应性、抖动适应性、
                 反向丢包、反向拥塞和内部干扰等挑战, 业界提出按需确认的新理念                       (acknowledgment on demand, AOD). 按需确
                 认机制试图重新思考和设计反馈信号, 以寻求最优的确认机制, 支撑高效的数据传输. “按需确认”, 本质的含义是,
                 生成的   ACK  报文必须是传输控制所必需的、并且是足够的, 二者缺一不可. 如图                     3  所示的确认机制演进历程中
                 的  TACK  机制, 则是按需确认机制的一种实现, 我们将在后面的章节对其进行详细讨论.
                    根据上述的讨论, 结合确认机制“类型-触发条件-信息”三要素的定义, 按需确认机制的基本设计原则, 可以概
                 括为以下几点.
                    (1) 按需确认机制, 要求     ACK  是根据传输状态按需触发的. 按需触发, 就是指要求根据传输的状态, 选取                     3  个
                 基本条件的最优组合和参数配置.
                    (2) 按需确认机制, 要求     ACK  根据传输的状态按需携带必要的信息. 按需要携带必要的信息, 就是要                      (数据)
                 接收方在上述描述的信息中, 选取必要的、足够的信息, 通过                  ACK  报文反馈给    (数据) 发送方.
                    (3) 按需确认机制, 要求    ACK  根据传输的状态按需使用最合适的           ACK  类型. ACK  的类型是多样的, 不同类型的
                 ACK  触发条件不同或者携带的信息不同. 按需使用最合适的                  ACK  类型, 就是要   (数据) 接收方根据传输状态, 综
                 合  ACK  触发条件和   ACK  携带的信息, 在最佳的时机, 通过       ACK  报文反馈最必要的、足量的信息给           (数据) 发送方.
                    (4) 确认机制必须支撑传输控制协议其他模块的有序工作, 保证低开销和高性能.

                  3   基于三要素的现有机制分析与比较

                  3.1   基本的确认机制分类
                  3.1.1    Per-packet ACK  机制
                    Per-packet ACK  机制是指接收方每收到一个数据报文, 回复一个            ACK  报文. 用  f 表示  ACK  的发送频率, 即每
                 秒发送的   ACK  报文数目, 以赫兹     (Hz) 为单位. 则  Per-packet ACK  机制的  ACK  发送频率可以表示为:
                                                             bw
                                                       f p =                                          (1)
                                                          PKT_SIZE
                 其中,    bw 表示发送方到接收方之间的吞吐量;          PKT_SIZE  表示数据报文大小. 其中,      PKT_SIZE ⩽ MSS  , MSS  表示
                 最大段长度    (maximum segment size).
                    Per-packet ACK  机制是一种以数据报文到达事件驱动的反馈机制. 这种机制可能的问题在于: (a) 当存在大量
                 的小数据报文时      (  PKT_SIZE ⩽ MSS ), ACK  报文开销将不可忽略; (b) 当发送方不发数据时, 发送方无法得到           ACK
                 反馈. 因此, 发生尾包丢失事件时, 发送方无数据可发, 接收方无法反馈丢包信息, 则可能引发超时问题.
                  3.1.2    Byte-counting ACK  机制
                    当存在大量的小数据报文时, 一种改进的方法就是计算累计的数据量, 如果达到指定阈值则回复                                ACK  报文.
                 这种机制被称为      Byte-counting ACK  机制. Byte-counting ACK  机制的  ACK  发送频率可以表示为:
   418   419   420   421   422   423   424   425   426   427   428