TCP & IP
3-2 바이트 순서와 네트워크 바이트 순서
카시야수01
2021. 10. 6. 09:57
CPU가 데이터를 메모리에 저장하는 방식은 빅 엔디안 , 리틀 엔디안 두 가지로 나뉜다.
이 둘을 알아가기에 앞서 엔디안(endian)이란 단어를 알아보자. 엔디안은 컴퓨터의 메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻한다. 그리고 바이트를 배열하는 방법을 바이트 순서라고 말한다.
빅엔디안은 큰 단위가 앞에 나오는 것을 말하며 리틀 엔디안은 작은 단위가 앞에 나오는 것을 의미한다. 쉽게 말하자면 빅엔디안은 사람이 숫자를 쓰는 방법과 같다고 생각하면 되고 리틀 엔디안은 그 반대라 생각하면 된다. 예를 들어 우리는 12345이라는 숫자를 보면 제일 왼쪽에 있는 1에 '만'이라는 단위를 부여하여 가장 높은 단위라고 생각한다. 이것처럼 빅엔디안은 왼쪽에 있는 숫자가 가장 높은 단위이며 리틀엔디안은 그 반대라 생각하면 이해하기 쉬울 것이다.
현재 네트워크 바이트 순서는 빅엔디안으로 통일되어 있는 반면 인텔, AMD 계열의 CPU가 모두 리틀 엔디안으로 구성되어있기 때문에 반드시 변환해주어야한다. 그렇다면 코드를 통해 변환해보도록 하자.
우리 컴퓨터는 현재 인텔CPU이기 때문에 리틀 엔디안을 사용하고 있다. 그래서 네트워크 바이트 순서인 빅엔디안으로 변경되는 것이다.