握手后的TCP数据包

握手后的TCP数据包,tcp,Tcp,我试图了解TCP,但解析大量RFC并没有帮助。我相信我理解连接握手和近距离握手,但我似乎找不到任何能概括实际数据流的东西 连接握手和闭合握手之间的TCP数据包是什么样子的?(尤其是收割台)在连接期间的通常稳态情况下,收割台将具有: 适当设置目标端口和源端口 ACK标志集 如果连接本质上是事务性的(而不是批量传输),则也可能设置PSH标志 序列号字段设置为该端要发送的下一个字节的序列号(将此数据包中的数据(如果有)计算为“要发送”) 确认字段设置为尚未从另一端接收的最早字节的序列号 窗口字段显示

我试图了解TCP,但解析大量RFC并没有帮助。我相信我理解连接握手和近距离握手,但我似乎找不到任何能概括实际数据流的东西


连接握手和闭合握手之间的TCP数据包是什么样子的?(尤其是收割台)

在连接期间的通常稳态情况下,收割台将具有:

  • 适当设置目标端口和源端口
  • ACK
    标志集
  • 如果连接本质上是事务性的(而不是批量传输),则也可能设置
    PSH
    标志
  • 序列号字段设置为该端要发送的下一个字节的序列号(将此数据包中的数据(如果有)计算为“要发送”)
  • 确认字段设置为尚未从另一端接收的最早字节的序列号
  • 窗口字段显示该端接收窗口中的剩余空间-使用的编码取决于初始连接设置中是否协商了窗口缩放
还可能有一个类型8选项字段,表示RFC1323中描述的时间戳选项

因此,例如,在服务器向客户端发送大量数据的HTTP连接部分中,客户端将发送设置了
ACK
的数据包,序列号字段保持不变,确认字段按服务器发送的段的大小递增,窗口的大小大约是一段的大小。服务器将发送设置了
ACK
的数据包,序列号字段按发送段的大小前进,确认字段保持不变,窗口大小最大


我建议使用Wireshark检查一系列真实世界的连接。

在连接过程中的通常稳态情况下,标头将具有:

  • 适当设置目标端口和源端口
  • ACK
    标志集
  • 如果连接本质上是事务性的(而不是批量传输),则也可能设置
    PSH
    标志
  • 序列号字段设置为该端要发送的下一个字节的序列号(将此数据包中的数据(如果有)计算为“要发送”)
  • 确认字段设置为尚未从另一端接收的最早字节的序列号
  • 窗口字段显示该端接收窗口中的剩余空间-使用的编码取决于初始连接设置中是否协商了窗口缩放
还可能有一个类型8选项字段,表示RFC1323中描述的时间戳选项

因此,例如,在服务器向客户端发送大量数据的HTTP连接部分中,客户端将发送设置了
ACK
的数据包,序列号字段保持不变,确认字段按服务器发送的段的大小递增,窗口的大小大约是一段的大小。服务器将发送设置了
ACK
的数据包,序列号字段按发送段的大小前进,确认字段保持不变,窗口大小最大


我建议使用Wireshark检查一系列真实世界的连接。

非常感谢。这正是我想要的。非常感谢。这正是我想要的。