握手后的TCP数据包

时间:2009-08-19 02:23:27

标签: tcp

我正试图了解TCP并解析大规模的RFC并没有帮助。我相信我理解连接和关闭握手,但我似乎无法找到任何总结实际数据流的内容。

在连接和关闭握手之间,TCP数据包看起来像什么? (特别是标题)

1 个答案:

答案 0 :(得分:4)

在连接期间通常的稳态情况下,标题将包含:

  • 目的地和源端口设置正确;
  • 设置ACK标志;
  • 如果连接本质上是事务性的(而不是批量传输),则PSH标志也可能被设置;
  • 序列号字段设置为此端要发送的下一个字节的序列号(将此数据包中的数据计算为“要发送”);
  • 确认字段设置为尚未从另一端收到的最早字节的序列号;
  • 窗口字段显示此端接收窗口中的剩余空间 - 使用的编码取决于是否在初始连接设置中协商了窗口缩放。

也可能存在类型8选项字段,表示RFC1323中描述的时间戳选项。

因此,例如,在服务器向客户端发送大量数据的HTTP连接部分期间,客户端将发送设置为ACK的数据包,序列号字段保持不变,确认字段以服务器正在发送的段的大小递增,窗口大小在某个段的大小附近。服务器将发送设置为ACK的数据包,序列号字段按正在发送的段的大小前进,确认字段保持不变,窗口大小最大。

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