Tech Blog/TCP-IP
빅엔디안과 리틀엔디안
EXPRESSIONS HAVE POWER
2023. 1. 27. 15:40
네트워크 프로그래밍에서 바이트 주소를 읽는 방식에 따라서 빅엔디안과 리틀엔디안으로 나뉜다.
CPU의 종류에 따라서 바이트 주소를 읽는 방식이 다르다는 의미이다.
기본적으로 TCP/IP 통신은 데이터를 읽는 방식을 빅엔디안 방식으로 통일해서 사용한다.
그래서 기본적으로 소켓을 설정할 때 htons, htonl을 사용하는 형식을 봤을 것이다.
** Write Read 함수에 내부적으로 엔디안 처리가 되어 있기 때문에, 소켓통신 시 포트와 Ip 만 변환해주면 된다.
빅엔디안 (IBM, SPARC, Motorola)
빅엔디안은 네트워크바이트오더 형식으로 데이터를 읽는다.
0x1234
htons (Host to Network Short)
- port 변환 시 사용함수
htonl (Host to Network Long)
- ip 변환 시 사용함수
리틀엔디안 (Intel x86, AMD , Arm, DEC)
리틀엔디안은 호스트바이트오더 형식으로 데이터를 읽는다.
0x3412
ntohs (Network to Host Short)
- port 변환 시 사용함수
ntohl (Network to Host Long)
- ip 변환 시 사용함수