2015-03-02 82 views
0

我想自己編碼一個TCP頭,但不明白什麼是正確的位/八位組。這是RFC 793說:TCP報頭中字節的正確順序是什麼?

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 ... 

爲什麼?

回答

2

這意味着,源端口應該採取的兩個字節

正確的。

最低位應該在第一個八位位組中。

不正確。這並不意味着這一點。它沒有提到任何關於它的事情。

所有IP頭中的所有多字節整數都是以網絡字節順序表示的,這是大端的。這在RFC 1700中指定。

+0

看起來像這個問題是相關的:http://stackoverflow.com/questions/13514614/why-is-network-byte-order-defined-to-be-big-endian – yegor256 2015-03-02 21:02:43

相關問題