[Network] Network Byte Order

Network Byte Order

CPU가 데이터를 메모리에 저장하는 방식은 빅 엔디안과 리틀 엔디안으로 분류된다. 빅 엔디안의 경우에는 상위 바이트의 값을 작은 번지수에 저장하고 리틀 엔디안의 경우에는 상위 바이트의 값을 큰 번지수에 저장한다. 즉 0x12345678의 데이터를 저장할 때 빅 엔디안 CPU는 0x12 0x34 0x56 0x78로 리틀 엔디안 CPU는 0x78 0x56 0x34 0x12로 저장한다. 이렇게 CPU별로 바이트 오더가 다르게 되니 네트워크를 통해서 데이터 전송을 할 때는 통일된 기준이 필요하다. 이를 Network Byte Order라 하고 빅 엔디안방식으로 동작한다. 그렇기 때문에 리틀 엔디안의 CPU는 데이터를 전송하기 전 빅 엔디안의 정렬 방식으로 데이터를 재정렬 해야 한다.

Author: Song Hayoung
Link: https://songhayoung.github.io/2020/08/02/Network/network-byte-order/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.