https://www.zhihu.com/people/bei-ji-85/posts
今天在一个技术群里有人问起来了,当时有一些讨论(不完全都是我个人的观点),整理一下:
为什么网络字节序(多数情况下)是大端?
早年设备的缓存很小,先接收高字节能快速的判断报文信息:包长度(需要准备多大缓存)、地址范围(IP地址是从前到后匹配的)。在性能不是很好的设备上,高字节在先确实是会更快一些。
为什么主机字节序(多数情况下)是小端?
小端的加法器比较好做,如果做一个8位*4的加法器,只需要一个8位加法器,然后依次从低到高循环加上所有字节就可以了,进位的电路非常简单,而如果是大端,则需要一次加载32位,不然的话进位的设计比较困难。
---------------------------
所以才有了PPC/MIPS更适合做网络设备,早年的时候,设备速度慢,缓存小,大端在网络上传输确实有一定优势。Intel当年选择小端,也许是基于成本的考虑,毕竟在那个年代,能节省一个晶体管,是能节省不少成本的。
不过对于现在的设备来说,大小端的区别已经很小了。