Networking 在哪些情况下,tcp连接需要等待ACK?
据我所知,等待ACK的唯一原因与传输窗口耗尽有关。或者慢启动。但是,我觉得Wireshark在预先存在的TCP套接字上转储的这个片段没有意义: 这里,在包38和40之间,服务器(45.55.162.253)在继续发送之前等待完整的RTT。我通过Netem更改了RTT,以确保延迟始终等于RTT,并且正如您所看到的,没有应用程序数据从客户端流向服务器,服务器可能需要“继续工作”。但是,有一个非常明显的ACK数据包从客户端(数据包39)发送,没有任何有效负载。播发的窗口比[SEQ/ACK analysis]/[Bytes in flight]大得多,后者为1230Networking 在哪些情况下,tcp连接需要等待ACK?,networking,tcp,wireshark,Networking,Tcp,Wireshark,据我所知,等待ACK的唯一原因与传输窗口耗尽有关。或者慢启动。但是,我觉得Wireshark在预先存在的TCP套接字上转储的这个片段没有意义: 这里,在包38和40之间,服务器(45.55.162.253)在继续发送之前等待完整的RTT。我通过Netem更改了RTT,以确保延迟始终等于RTT,并且正如您所看到的,没有应用程序数据从客户端流向服务器,服务器可能需要“继续工作”。但是,有一个非常明显的ACK数据包从客户端(数据包39)发送,没有任何有效负载。播发的窗口比[SEQ/ACK analy
我的问题是:TCP中是否有东西触发服务器在数据包38和40之间等待ACK?TCP根据两种不同的机制限制其传输速率:
然而,需要注意的重要一点是,这两种机制都在连接的整个生命周期中运行,而不仅仅是在连接开始时。似乎您的发件人在发送了迄今为止最大的数据包(至少在屏幕截图中显示的数据包中)后暂停了发送,因此该数据包可能占用了其剩余的免费拥塞控制窗口,尽管流量控制窗口仍然很大,但它被绑定到了前者。。这也是我所怀疑的,我调整了一些超时时间,使套接字在不活动后缓慢启动,而“热”套接字的问题就消失了。