네트워크 프로그래밍에서 바이트 주소를 읽는 방식에 따라서 빅엔디안과 리틀엔디안으로 나뉜다.
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 변환 시 사용함수
'Tech Blog > TCP-IP' 카테고리의 다른 글
IPC란 ? (Inter-Process Communication) (0) | 2023.01.30 |
---|---|
3way HandShaking, 4way HandShaking (0) | 2023.01.30 |
TCP IP의 I/O 모델 (Linux & Windows) (0) | 2023.01.29 |
멀티캐스팅과 브로드캐스팅 (UDP) (+ 서브넷팅) (0) | 2023.01.26 |
TCP / IP 소켓 프로그래밍 기초 다지기 (0) | 2021.07.07 |