Networking TCP中的序列号

Networking TCP中的序列号,networking,tcp,tcp-ip,Networking,Tcp,Tcp Ip,为什么我们需要TCP头中的序列号和下一个序列号字段 下面是使用wireshark捕获的数据包的TCP头 因为TCP是一种可靠的管道。这意味着数据包是按顺序(且仅一次)交付的,即使较低的层不提供这种保证。为了做到这一点,TCP需要内务管理数据、ACK、NACK等 “下一个序列”是wireshark的一个工件,它实际上不在TCP报头中,ws只是告诉您捕获文件中的下一个数据包。首先,wireshark中用括号括起来的字段是计算字段——它们不在数据包中。Wireshark显示的下一个序列号字段就是这样

为什么我们需要TCP头中的序列号和下一个序列号字段

下面是使用wireshark捕获的数据包的TCP头


因为TCP是一种可靠的管道。这意味着数据包是按顺序(且仅一次)交付的,即使较低的层不提供这种保证。为了做到这一点,TCP需要内务管理数据、ACK、NACK等


“下一个序列”是wireshark的一个工件,它实际上不在TCP报头中,ws只是告诉您捕获文件中的下一个数据包。首先,wireshark中用括号括起来的字段是计算字段——它们不在数据包中。Wireshark显示的下一个序列号字段就是这样一个字段。Wireshark通过获取“序列号”字段并将其添加到数据包的有效负载大小来计算。因此,毫不奇怪,这两个数字之间的差异是1430——一个常见的TCP负载大小

TCP中的序列号是以字节为单位的——它们基本上表示,该数据包的有效负载插入TCP流中的哪个字节位置

“确认”序列号显示我确认已接收的字节数

由于TCP是双向的,因此每一端都必须声明

  • 其传输的字节应在流中的何处,以及
  • 你发送给我的字节和我收到的字节
  • 因此,每个TCP数据包都有两个引用序列号的字段——“序列号”字段和“确认号”字段

    如果没有“序列号”字段,接收端将无法判断数据包是否按顺序接收。如果没有“确认号码”字段,发送端将不知道他的一些数据包是否已被丢弃,而接收方从未收到它们