TCP RFC 提到接收者应该为它接收到的每 2 个完整大小的段发送一个 ACK(假设它们是有序的)并且不应该延迟一个 ACK。
考虑到窗口大小是 8 个段,发送方发送 8 个完整段,这是否意味着接收方发送 4 个 ACK,即使它已收到 8 个段?
它不能用一个 ACK 确认所有 8 个段吗?
TCP RFC 提到接收者应该为它接收到的每 2 个完整大小的段发送一个 ACK(假设它们是有序的)并且不应该延迟一个 ACK。
考虑到窗口大小是 8 个段,发送方发送 8 个完整段,这是否意味着接收方发送 4 个 ACK,即使它已收到 8 个段?
它不能用一个 ACK 确认所有 8 个段吗?
我将在这里复制粘贴 RFC 的重要部分:
4.2.3.2 何时发送 ACK 段
A host that is receiving a stream of TCP data segments can increase efficiency in both the Internet and the hosts by sending fewer than one ACK (acknowledgment) segment per data segment received; this is known as a "delayed ACK" [TCP:5]. A TCP SHOULD implement a delayed ACK, but an ACK should not be excessively delayed; in particular, the delay MUST be less than 0.5 seconds, and in a stream of full-sized segments there SHOULD be an ACK for at least every second segment.
完整的 RFC 可以在这里找到:RFC 1122