首先,Wireshark中用[方括号]括起来的字段是计算字段 - 它们不在数据包中。Wireshark显示的下一个序列号字段就是这样的字段之一。Wireshark通过将“序列号”字段加上包的有效载荷大小来计算它。因此,这两个数字之间的差异为1430-这是常见的TCP有效载荷大小。TCP中的序列号以字节为单位 - 它们基本上说,该数据包负载插入到TCP流中的哪个字节位置。“确认”的序列号显示我已经接收了多少字节。由于TCP是双向的,因此每端都必须声明:1.其传输的字节应该在流中放置在哪里 2.我已经接收到了你发送给我的哪些字节。因此,每个TCP数据包都有两个字段与序列号有关-“序列号”字段和“确认号”字段。如果没有“序列号”字段,则接收端无法确定是否按顺序接收到数据包。如果没有“确认号”字段,则发送端将不知道他的某些数据包是否被丢弃,以及接收方是否从未接收到它们。
因为TCP是一条可靠的管道。这意味着即使更低层没有提供保证,数据包也会按顺序(且仅一次)传递。为了实现这一点,TCP需要维护数据、确认和否定等信息。“下一个序列”是wireshark的一个特殊标记,实际上并不在TCP头部中,wireshark只是告诉你它捕获文件中的下一个数据包。参考链接:https://en.wikipedia.org/wiki/Transmission_Control_Protocol