TCP中的ACK是否意味着接收应用程序已读取所有数据?

4
当我阅读有关TCP三次握手连接的内容时,我脑海中出现了两个问题:
  1. 如果接收方有一个接收窗口,在数据存储到窗口时还是在窗口满时会发送ACK?
  2. 当发送方接收到ACK时,是否意味着所有已发送的数据都已被接收方应用程序读取和处理?
实际上,这两个问题有几个内在联系。感谢任何有帮助的答案!

这不完全是一个编程问题。也许它应该放在http://networkengineering.stackexchange.com/ 上。 - ghoti
第一个问题的答案都不是。发送ACK的规则有点复杂,但基本上是这样的——不要对每个数据包都发送ACK,但也不要让未确认的数据包减缓数据传输速度。 - David Schwartz
1个回答

8
不。ACK仅表示数据已到达对方TCP堆栈,这并不意味着应用程序已读取和处理数据。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接