一个字节的位排序,这有关系吗?

时间:2014-07-31 09:45:03

标签: networking protocols endianness

假设我们在网络上有两台机器 MA MB
MA 认为小端是一个字节中位的顺序,
相反 MB cosiders big endian一个字节中位的顺序。

MA MB 如何同意在字节期间用于字节中的位的“endianess” 通过网络进行通信?

是否有标准的“网络结束”或什么? 套接字程序员是否必须采取任何措施来确保正确的通信?

例如,HTTP是一种文本协议,这意味着机器发送和接收代表字符的字节,如果字符的编码在位的字节顺序上有什么不同呢?

感谢

2 个答案:

答案 0 :(得分:2)

是的,硬件协议指定所有网络链路上的字节位顺序。这通常由NIC硬件自动处理。

例如,请参阅Ethernet帧格式的此描述。

  

以太网传输很奇怪,因为字节顺序是大端(最左边的字节先发送),但是字节的位顺序是小端(最严格的,或最低位的LSB(最低有效位))。

答案 1 :(得分:0)

查看此页面:http://www.comptechdoc.org/independent/networking/protocol/protlayers.html 它表明字节排序是在表示层完成的,这是非常高的。然而,这将特别涉及您正在使用的应用程序。我怀疑较低级别的数据(包含较高级别)具有预定的字节和位顺序。