5

我知道主机和网络上的字节序可能不同,但为什么字节顺序很重要?

我认为有两个原因:

1 让路由器检查 ip 标头(如地址),路由器只识别大端顺序(网络字节顺序) 2 让接收主机识别数据包的字节顺序。由于接收主机不知道发送主机的字节顺序,如果不将字节顺序转换为网络字节顺序,它就不知道数据包的字节顺序。

我对吗?

那么对于以下字段,应该转换为字节顺序,为什么?

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

1 回答 1

3

作为比单个字节长的二进制数据(尤其不是 ASCII)发送/存储的每个字段都需要具有明确定义的字节顺序。否则,正如您所指出的,接收者不知道如何解释发送者发送的内容。

您的具体问题的答案是 #1、#2 和 #3 需要按网络字节顺序排列。至于 UDP/TCP 有效负载 (#4) 中的字段,这取决于您。建议使用网络字节顺序(大端),以便与几乎所有其他协议保持一致,但如果您正在定义协议,那么您可以根据需要选择小端。有些有。

于 2013-03-22T01:42:19.920 回答