SMALL
데이터 저장 방식인 빅 엔디안, 리틀 엔디안에 대한 정리
CPU 데이터 저장방식(Host Byte Order)
연속된 바이트를 메모리에 저장할때 어떤 순서로 저장할지 정하는것
데이터는 컴퓨터에 Byte 단위로 저장됨
빅 엔디안(Big Endian)
상위 바이트 값을 작은 번지수에 저장하는 방식
RISC CPU
- 정수 0x12345678 저장

리틀 엔디안(Little Endian)
상위 바이트 값을 큰 번지수에 저장하는 방식
인텔 CPU
- 정수 0x12345678 저장

바이트 순서의 문제
빅 엔디안 CPU ---- 0x1234 전송 ----> 리틀 엔디안 CPU(0x3412로 해석)
=> CPU마다 데이터 저장 순서가 다르기 때문에 데이터를 주고 받을 때 문제 발생 가능
네트워크 바이트 순서(Network Byte Order)
바이트 순서 문제를 해결하기 위해, 네트워크상으로 데이터 전송시 빅 엔디안 기준으로 변경해서 송수신하기로 정함
- unsinged short htons(unsinged short) : short형 데이터를 리틀 엔디안 -> 빅엔디안으로 변환
- unsinged short ntohs(unsinged short) : short형 데이터를 빅 엔디안 -> 리틀 엔디안으로 변환
- unsinged long htonl(unsinged long) : long형 데이터를 리틀 엔디안 -> 빅엔디안으로 변환
- unsinged long ntohl(unsinged long) : long형 데이터를 빅 엔디안 -> 리틀 엔디안으로 변환
* h는 host 바이트 순서, n은 network 바이트 순서로, h는 리틀엔디안, n은 빅엔디안으로 봄
SMALL
LIST
'OS > All' 카테고리의 다른 글
| [OS] 뮤텍스(Mutex) & 세마포어(Semaphore) (0) | 2023.09.16 |
|---|---|
| [OS] 메모리 구조(stack, heap) (0) | 2023.09.08 |
| [ETC] CRLF / LF /CR (0) | 2023.07.21 |
| [OS] 프로세스(Process)/스레드(Thread) (0) | 2023.06.25 |