TCP头中的字节顺序是什么?

时间:2015-03-02 20:38:31

标签: tcp

我自己尝试编码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 ...

为什么?

1 个答案:

答案 0 :(得分:2)

  

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

正确。

  

,最低位应位于第一个八位位组。

不正确的。这并不意味着。它没有说什么。

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