linux网络编程之网络字节序、主机字节序、大端、小端
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協議規定:把接收到的第一個字節當作高位字節看待,這就要求發送端發送的第一個字節是高位字節;而在發送端發送數據時,發送的第一個字節是該數值在內存中的起始地址處對應的那個字節,也就是說,該數值在內存中的起始地址處對
總結
以上是生活随笔為你收集整理的linux网络编程之网络字节序、主机字节序、大端、小端的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux网络编程之地址结构sockad
- 下一篇: linux网络编程之inet_addr和