Page 417 - 《软件学报》2024年第4期
P. 417
李彤 等: 传输控制中的确认机制研究 1995
的时效性和精准性, 因此, 确认机制的设计应该考虑其抖动适应性.
(4) 反向丢包
确认机制中, 通过 ACK 报文对接收的数据报文进行确认, 初衷是为了应对正向路径上的丢包问题. 然而, 反向
路径上的 ACK 报文本身也会丢失. 如果正向路径没有丢包, 只有反向路径存在丢包, 传输控制的性能影响可能较
小. 然而, 真实网络的链路往往同时存在正向丢包和反向丢包. 因此, 如何应对反向丢包问题, 也是确认机制设计中
需要考虑的因素.
(5) 反向拥塞
一方面, ACK 报文所在的连接可能与其他的连接共享瓶颈链路, 因此反向路径也可能产生拥塞. 另一方面, 卫
星通信网和蜂窝网等通常会部署非对称链路技术, 即下行链路的带宽是上行链路带宽的数倍. 当上行链路被 ACK
报文充满时, 其下行链路的数据报文的吞吐将受到限制. 在这些情况下, 确认机制的设计应该考虑减少反向路径上
的流量, 以应对反向拥塞带来的不良影响.
(6) 内部干扰
以上挑战可以归类为来自连接外部的干扰, 简称为“外部干扰”. 然而, 对于基于 IEEE 802.11 标准的无线网络
而言, 除了外部干扰, 还存在内部干扰. 内部干扰是指同一连接内的 ACK 报文竞争数据报文的频谱资源而产生的
干扰. 产生内部干扰的原因是数据报文所在的正向路径和 ACK 报文所在的反向路径共享有限的无线频谱资源, 并
且发送一个报文需要的额外开销几乎与报文大小无关——即使一个 ACK 报文通常比一个数据报文小很多, 但发
送一个 ACK 报文将消耗与数据报文几乎相同的频谱资源 [14] . 因此, 在 ACK 报文的开销不可忽略的场景, 确认机
制的设计还应该考虑 ACK 报文造成的内部干扰.
2 确认机制的定义与内涵
2.1 传输控制技术背景
2.1.1 传输控制的定义
计算机之间的数据传输网络, 本质上是一个控制系统. 传输控制是指通过共同遵循的某种协议, 将数据从一个
网络节点转移到另一个网络节点的过程. 在计算机网络 OSI 模型中, 传输层是位于网络层之上, 应用层之下的中间
层, 传输控制主要完成第 4 层传输层所指定的功能.
传输控制是通过传输层协议实现的. TCP (transmission control protocol) 和 UDP (user datagram protocol) 是两
种最常见的传输层协议. TCP 通常需要保证可靠传输, 并配套相应的拥塞控制手段. 而 UDP 本身是“尽最大努力”
的, 无需保证可靠, 也不配套相应的拥塞控制手段. 但是, 近年来, 基于 UDP 的可靠或部分可靠的传输控制 (例如
DCCP [14] 、QUIC (quick UDP Internet connection) [15] 、VOXEL [16] 等) 已经成为业界关注的热点. 具体地, 在 UDP 传
输的基础上, 灵活根据应用的需求, 在应用层和 UDP 传输层之间添加一个适配层, 通过在适配层中实现可靠传输
和拥塞控制, 实现类似 TCP 的传输效果.
2.1.2 传输控制的功能模块
传输控制的功能模块关系如后文图 1 所示. 数据收发的基本流程是: (1) 发送方从上层应用读取数据, 放在发
送缓存中, 发送模块将数据封装成报文后, 通过正向路径上的网络链路将数据报文传输到接收方, 随后放入接收缓存
中; (2) 在接收数据报文的过程中, 接收方对每个报文的到达情况、接收缓存剩余量等进行状态监测, 同时根据确
认机制, 生成 ACK 报文后, 通过反向路径上的网络链路将 ACK 报文传输到 (数据) 发送方, 供反馈处理模块进行
解析; (3) 发送方根据解析的 ACK 反馈信息, 进一步完成丢包恢复、状态监测和速率控制等.
从上述流程可以看出, 不论是状态监测、丢包恢复、还是速率控制, 这些功能模块都需要与确认机制进行交互.
2.2 确认机制的演进历史
传输控制中的确认机制, 是指数据接收方通过确认报文 (ACK) 对数据发送方发送过来的数据报文的传输结
果进行确认的机制. 本文研究的确认机制, 对 OSI 模型对应的传输层和应用层均适用. 针对本身自带 ACK 的传输