엔디안

컴퓨터의 메모리와 같은 1차원 공간에 여러 개의 연속된 대상을 배열하는 방법을 의미한다. 여기서 바이트를 배열하는 방법을 바이트 순서(Byte Order) 라고 한다. 바이트의 큰 단위가 앞에 나오는 것을 빅엔디안이라고 말하고, 반면에 작은 단위가 앞에 나오는 것을 리틀엔디안이라고 말한다. 그리고 두 경우에 속하지 않은 것을 미들엔디안이라고 말한다.


빅엔디안

최상위 바이트 (MSB : Most Significant Byte) 부터 차례대로 저장하는 방식이다. 이는 메모리 시작주소부터 차례대로 상위 바이트부터 기록됨을 의미한다.

Big-Endian

빅엔디안 그림 (위키피디아)


리틀엔디안

최하위 바이트 (LSB : Least Significant Byte) 부터 차례대로 저장하는 방식이다. 이는 메모리 시작주소부터 차례대로 하위 바이트부터 기록됨을 의미한다.


사실 위의 내용은 메모리 주소가 증가함에 따라 바이트가 어떻게 표현되는지에 대한 이야기이다. 만약 우리가 패킷을 분석하는 경우, 보게되는 네트워크 프로토콜은 기본적으로 빅엔디안의 표현방식을 가지고 있다. 빅엔디안의 표현방식은 사람이 이해하기 쉽고 대소비교가 빠르다는 장점이 존재한다. 반면에 리틀엔디안은 산술연산에 빠르다는 장점이 존재한다.


결과적으로 빅엔디안과 리틀엔디안의 비교는 사람이 읽기 편하냐 혹은 기계가 읽기 편하냐의 차이로 나뉠 수 있다. 그리고 엔디안의 표기법은 각각의 디바이스가 네트워크 통신을 통해서 맞추는 작업이 필요하다.

Little-Endian

리틀엔디안 그림 (위키피디아)



Posted by doubler
,