ACK和SEQs背后的基本原理?

Leg*_*end 4 networking network-programming tcp network-protocols

我不确定人们是否觉得这很明显,但我有两个问题:

  1. 在3次握手期间,为什么ACK = SEQ + 1,即为什么我要确认我期待发送者的下一个字节?
  2. 握手后,我的ACK = SEQ + len.为什么这与握手有所不同?为什么不只是确认我期待的下一个字节(与握手期间相同)?

我知道我一定错过了一个基本点.有人可以澄清一下吗?

Mat*_*ery 6

这是因为序列号空间的第一个字节对应于SYN标志,而不是数据字节.(最后的FIN标志也会消耗一个字节的序列号空间.)