zoukankan      html  css  js  c++  java
  • TCP延迟确认

    简介

    TCP延迟确认是由一些实现采用的技术,努力提高网络性能的传输控制协议 。从本质上讲,几个应答响应可能结合在一起,成一个响应,减少协议开销 。然而,在某些情况下,该技术可以降低应用程序的性能。

    方法和优势

    RFC 1122中描述,主机可能延迟发送ACK响应到500毫秒。此外,收到一个完整大小的TCP报文段,就要发送ACK响应 。

    延迟ACK可以给应用程序的机会,一起发送更新的TCP接收窗口,ACK和应用程序的即时响应。如某些协议,远程登录,通过合并ACK,tcp窗口更新和应用程序的响应为一个报文段,延迟ACK可以减少服务器发送的响应的数据为3倍

    问题

    在某些应用程序和配置交互时,延迟ACK引入额外的等待时间可能会导致进一步延误。

    如果Nagle算法是由发送方使用,数据将会排队,直到收到一个ACK确认 。如果发件人不发送足够的数据来填充最大的段大小(例如,如果它执行两个小写入一个阻塞读),然后发件人的应用程序将会暂停,直到ACK延迟超时 。

    例如,考虑一个情况,其中鲍勃是将数据发送到卡罗尔,鲍勃的套接字层中,要发送的有效数据不够一个完整的数据包。根据Nagle算法,它不会被发送,直到收到一个ACK确认已发送的数据。同时,卡罗尔的应用层不会发送一个响应,直到它得到的所有数据。如果卡罗尔是使用延迟ACK,她套接字层将不会发送一个ACK,直到最后超时才会发送ACK。

    如果应用程序是在较小的块中传输数据,并期望定期确认回复,可能会出现这种负面的效果。为了防止这种延迟,应用层需要不断发送数据,而无需等待确认回复。另外,发送端的应用程序可能会禁用Nagle算法。

     

  • 相关阅读:
    2019.1.8兔子问题和汉诺塔问题的解决代码
    REST
    存储过程和函数练习
    十六、性能优化
    十五、MySQl日志
    Shell入门
    十四、数据备份
    十三、MySQL触发器
    十二、视图
    十一、MySQL锁
  • 原文地址:https://www.cnblogs.com/ggjucheng/p/2323081.html
Copyright © 2011-2022 走看看