TCP header 中字节的正确顺序是什么?
What is the right order of bytes in a TCP header?
我正在尝试自己对 TCP header 进行编码,但无法理解其中 bits/octets 的正确顺序是什么。 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 header:
B4 00 ...
但是,我能找到的所有例子都告诉我要反过来做:
00 B4 ...
为什么?
This means that Source Port should take first two octets
正确。
and the lowest bit should be in the first octet.
不正确。这不是那个意思。它什么也没说。
所有IP报头中的所有多字节整数均以网络字节顺序表示,即大端。这在 RFC 1700.
中指定
我正在尝试自己对 TCP header 进行编码,但无法理解其中 bits/octets 的正确顺序是什么。 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 header:
B4 00 ...
但是,我能找到的所有例子都告诉我要反过来做:
00 B4 ...
为什么?
This means that Source Port should take first two octets
正确。
and the lowest bit should be in the first octet.
不正确。这不是那个意思。它什么也没说。
所有IP报头中的所有多字节整数均以网络字节顺序表示,即大端。这在 RFC 1700.
中指定