簡體   English   中英

網絡數據包中的哪種字段應轉換為網絡字節順序

[英]what kind of fields in network packets should be converted to network byte order

我知道主機和網絡上的endianess可能不同,但為什么字節順序很重要?

我認為有兩個原因:

1為路由器檢查ip頭(likeaddresses),路由器只識別big-endian命令(網絡字節順序)2,以便接收主機識別數據包的字節順序。 由於接收主機不知道發送主機的字節順序,如果字節順序沒有轉換為網絡字節順序,則它不知道數據包字節順序。

我對嗎?

所以對於以下字段,應該轉換為字節順序,為什么?

1 TCP/UDP Header options, like MSS, timestamps
2 TCP/UDP header checksum
3 TCP sequence number
4 UDP/TCP data fields

作為長度超過單個字節的二進制數據(特別是非ASCII)發送/存儲的每個字段都需要具有明確定義的字節順序。 否則,如您所示,接收方不知道如何解釋發送方發送的內容。

您的具體問題的答案是#1,#2和#3需要按網絡字節順序排列。 至於UDP / TCP有效載荷中的字段(#4),這取決於你。 建議使用網絡字節順序(大端),以便與幾乎所有其他協議保持一致,但如果要定義協議,則可以根據需要選擇小端。 有些人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM