linux网络编程之网络字节序、主机字节序、大端、小端

本文介绍了主机字节序的两种模式:大端和小端,以及常见的CPU字节序类型。网络字节序是TCP/IP协议规定的,采用大端模式,确保数据在不同平台间传输的兼容性。在网络通信中,跨平台通信需进行字节序转换,如使用htons, htonl等函数。总结来说,网络字节序是解决不同字节序平台间数据交换的关键。" 52832949,4833787,Python科学计算入门:环境配置与matplotlib动态图,"['Python开发', '数据可视化', '科学计算', '开发环境']
摘要由CSDN通过智能技术生成

1、主机字节序介绍

         不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机字节序,存储方式有2种

         1)、大端模式

                        大端模式(Big-Endian)就是高位字节排放在内存的低地址端(即该值的起始地址),低位字节排放在内存的高地址端

         2 ) 、小端模式

                         小端存储在起始地址处,即是小端字节序;大端存储在起始地址处,即是大端字节序; 或者说: 1.小端法(Little-Endian)就是低位字节排放在内存的低地址端(即该值的起始地址),高位字节排放在内存的高地址端。

         3)、常见cpu大小端存储方式

                          不同CPU有不同的字节序类型,典型的使用小端存储的CPU有:Intel x86和ARM  典型的使用大端存储CPU有:Power PC、MIPS UNIX和HP-PA UNIX

 

2、网络字节序介绍

         网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用大端(big endian)排序方式。

         为什么网络字节序是大端模式?

         网络上传输的数据都是字节流,对于一个多字节数值,在进行网络传输的时候,先传递哪个字节?也就是说,当接收端收到第一个字节的时候,它将这个字节作为高位字节还是低位字节处理,是一个比较有意义的问题; UDP/TCP/IP协议规定:把接收到的第一个字节当作高位字节看待,这就要求发送端发送的第一个字节是高位字节;而在发送端发送数据时,发送的第一个字节是该数值在内存中的起始地址处对应的那个字节,也就是说,该数值在内存中的起始地址处对

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码莎拉蒂 .

你的鼓励是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值