【问题标题】:What is the right order of bytes in a TCP header?TCP 标头中正确的字节顺序是什么?
【发布时间】:2015-03-03 05:06:22
【问题描述】:

我正在尝试自己对 TCP 标头进行编码,但无法理解其中正确的位/八位字节顺序是什么。这就是RFC 793 所说的:

0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Source Port          |       Destination Port        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Sequence Number                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...

这意味着Source Port 应该采用前两个八位字节,最低位应该在第一个八位字节中。这对我来说意味着为了对源端口 180 进行编码,我应该以这两个字节开始我的 TCP 标头:

B4 00 ...

但是,我能找到的所有示例都告诉我要反过来:

00 B4 ...

为什么?

【问题讨论】:

    标签: tcp


    【解决方案1】:

    这意味着源端口应该占用前两个八位字节

    正确。

    最低位应该在第一个八位字节中。

    不正确。这不是那个意思。它什么也没说。

    所有IP头中的所有多字节整数都以网络字节顺序表示,即big-endian。这是在RFC 1700 中指定的。

    【讨论】:

    猜你喜欢
    • 2016-05-08
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-20
    • 1970-01-01
    相关资源
    最近更新 更多