将IP打包到uint32中

时间:2015-11-13 12:26:59

标签: c ip iso

是否将字符IP [4](192.168.2.1)打包到uint32中,作为任何RSI / ISO /标准组织(即此处https://en.wikipedia.org/wiki/List_of_technical_standard_organisations的任何人)的一部分详细说明?我知道它是各种语言和工具的标准,但我想知道它是否属于任何国际标准,如果是这样的话?这应该详细说明使用的字节序。

需要知道我正在编写规范,我不想通过描述技术来重新发明轮子。

2 个答案:

答案 0 :(得分:1)

所有IP地址(以及实际上,标准网络堆栈中使用的所有多字节数字)在上发送的都在" network order"这是big-endian

如何在程序中表示任何的四个字节取决于程序员,尽管它们通常让编译器决定使用本机硬件使用的任何内容。

来自Why is network-byte-order defined to be big-endian? ...

RFC1700 声明必须如此。 (并将网络字节顺序定义为big-endian)。它现在已被RFC-3232取代,但这一部分保持不变。

  

互联网协议文档中的惯例是   表示十进制数字和图片数据" big-endian"订购   [COHEN]。也就是说,字段从左到右描述最多   左边是重要的八位字节,左边是最不重要的八位字节   右。

他们所做的参考是

loader.load('http://localhost:8080/Adaptation3D1/data/mesh8.ply');

摘要可以在IEN-137this IEEE page找到。

摘要:

  

选择哪种方式并不会太多   区别。就订单达成协议更为重要   订单达成一致。

它的结论是,big-endian和little-endian方案都是可能的。没有更好/更差方案,只要它在整个系统/协议中是一致的,就可以用它们代替另一方案。

答案 1 :(得分:0)

这取决于IPv4地址的去向。

对于实际的IP使用,即在网络数据包中,打包总是使用network byte order,即big-endian。

如果您使用的是不同的东西,那么您当然可以根据需要自由定义包装。