TCP 时延确认

作者: F_wind | 来源:发表于2021-12-22 08:18 被阅读0次

    《HTTP 权威指南》阅读随笔

    为什么要有 TCP 时延确认
    因特网由于自身原因无法保证可靠的分组传输,比如路由器超负荷的情况下可以随意丢弃分组。因此 TCP 实现了自己的确认机制来确保数据的成功传输。

    TCP 如何保证发送数据的完整性
    每个 TCP 段都有一个序列号和数据完整性校验和,每个段的接收者收到完好的段时,都会像发送者送回小的确认分组,如果发送者没有在指定时间内收到确认信息,那么发送者会认为分组已被破坏,并重新发送数据。

    延迟确认算法
    由于确认报文很小,所以 TCP 允许在发往同方向的输出数据分组中对其进行“捎带”。TCP 将返回的确认消息和输出的数据分组结合在一起,可以更有效的利用网络。为了增加确认报文找到同向传输数据分组的可能性,很多 TCP 栈都实现了一种“延迟确认”算法。延迟算法会在一个特性的窗口时间内,比如 100~200 毫秒,将输出确认放在缓冲区中,以寻找能够“捎带”它们的输出数据分组。如果在这个特定的窗口时间内没有输出分组数据,那么确认信息将会单独发送。

    适当使用算法
    对于具有双峰特征(请求 - 应答)的 HTTP 行为,则降低了“捎带”确认信息的可能,当希望有相反方向的回传分组时,往往没有那么多,这时延迟确认算法的引入反而会带来相当大的时延。因此,需要根据实际情况来选择是否使用延迟确认算法。

    相关文章

      网友评论

        本文标题:TCP 时延确认

        本文链接:https://www.haomeiwen.com/subject/tvxqqrtx.html