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

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


                                                   发送方           接收方

                                                         数据报文
                                                    t 1
                                                                     t 3
                                                         ACK 报文
                                                                     t 4
                                                    t 2


                                                   图 5 RTT  评估方式示例


                                                         正向路径
                                                   数据报文                     ACK 报文
                         RTT 采样:                                                      每收到 1 个数据报文,
                       18,20,16,22,15,30  数据报文                ACK 报文                    回复 1 个 ACK
                                                         反向路径
                                       发送方                                   接收方
                                                   (a) 数据报文 : 确认报文=1 : 1

                                                    数据报文
                                                                                      每收到 2 个数据报文,
                         RTT 采样:                              ACK 报文                    回复 1 个ACK
                         20,22,30
                                       发送方                                   接收方
                                                   (b) 数据报文 : 确认报文=2 : 1
                                                  数据报文
                                                                                      每收到 6 个数据报文,
                         RTT 采样:                               ACK 报文                   回复 1 个 ACK
                           30
                                       发送方                                   接收方
                                                   (c) 数据报文 : 确认报文=6 : 1
                                               图 6 不同  ACK  数目下的   RTT  评估

                    从上面的例子可以得到, 确认机制的修改, 应该避免显著影响传输状态监测的精准性. 对于按需确认机制而
                 言, ACK  触发条件的设计, 以及     ACK  携带的信息, 需要满足精准的传输状态监测的需求.
                  2.4.2    确认机制与丢包恢复
                    丢包恢复包括丢包检测和数据重传两个关键步骤. 丢包检测是丢包恢复的前提, 而                           ACK  的触发时机和    ACK
                 携带的反馈信息, 则直接影响丢包检测的性能. 因此, 确认机制直接影响丢包恢复的效率.
                    对于需要保障可靠和有序的传输控制而言, 行头阻塞                 (head-of-line blocking, HoLB)(详细分析见第  4.1.4  节) 导
                 致报文组装延迟, 从而影响传输性能. 后文图           7 和图  8 对比了两种不同的     ACK  触发方式对报文组装延迟的影响. 在图         7
                 中, 每收到  1  个数据报文回复     1  个  ACK  报文, 假设丢包检测采用经典      TCP  默认的  DupACK, 即“3  次重复  ACK”算
                 法  [25]  , 则数据报文  3  从丢失到恢复所花费时间长短, 对于报文重组装具有直接影响. 具体地, 报文                 3  的丢失阻塞了
                 后续队列, 使得后续的       8  个数据报文无法及时提交到上层应用. 在图            8  中, 每收到  100  个数据报文回复    1  个  ACK
                 报文, 假设理想情况下发送方可以通过该             ACK  报文推测丢包事件, 则报文        3  的丢失阻塞了后续队列, 使得后续的
                 98  个数据报文无法及时提交到上层应用. 因此, ACK            触发方式直接影响丢包恢复效率, 一般地, ACK             触发时间间
                 隔越长, 则丢包恢复的效率越低.
                    从上面的例子可以看出, 确认机制的设计, 应该考虑其是否会显著影响丢包恢复的效率. 具体而言, ACK                              触发
                 条件的设计, 以及     ACK  携带的信息, 需要满足高效的丢包恢复的需求.
                  2.4.3    确认机制与速率控制
                    速率控制包括拥塞控制和流量控制. 拥塞控制和流量控制的区别, 在于拥塞控制的目标是优化整网性能, 而流
   416   417   418   419   420   421   422   423   424   425   426