三方握手和序列号

从Ilya Grigorik(高性能浏览器networking)的书中可以看出,SYN数据包select的随机序列号在SYN ACK数据包(N + 1)中递增。 最后,在ACK分组中,序列(N + 1)和确认(N + 1)数字都被递增。

当使用Wireshark进行testing时,我得到的ACK数据包的确认号= N + 1,但是序号= N。 这是作者的错误,他说,在ACK数据包中,序列号和确认号都递增了?

在这里输入图像说明

RFC 793 反复指出,确认号码是最终预期接收的下一个数据包的序列号。 因此它将总是高于序列号。

例如,在第2.6节中:

段还携带一个确认号码,它是反向传输的下一个预期数据字节的序列号。

在第3.1节中:

确认号码:32位

如果设置了ACK控制位,则该字段包含该段的发送者期望接收的下一个序列号的值。 一旦连接build立,这总是发送。

3.3节详细解释了序列号是如何工作的,以及他们为什么如此工作。 你可能会发现它比你的书更有启发性。