【问题标题】:TCP Packet after the Handshake握手后的 TCP 数据包
【发布时间】:2009-08-19 11:06:54
【问题描述】:

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

在连接和关闭握手之间的 TCP 数据包是什么样的? (尤其是标题)

【问题讨论】:

    标签: tcp


    【解决方案1】:

    在连接期间通常的稳态情况下,标头将具有:

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

    也可能有一个类型 8 的选项字段,代表 RFC1323 中描述的时间戳选项。

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

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

    【讨论】:

    • 非常感谢。这正是我想要的。
    猜你喜欢
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    相关资源
    最近更新 更多