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 发送频率可以表示为: