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  的传输
   412   413   414   415   416   417   418   419   420   421   422