1. 바이트 순서 (Byte Order) 또는 엔디안 (Endian) 방식
ㅇ 컴퓨터는 여러 바이트로 이뤄진 값을 메모리에 저장하거나 네트워크로 보낼 때,
- 순서를 정해 저장/전송하게 됨
. 이를두고, 바이트 순서 (Byte Order) 또는 엔디안 (Endian) 방식 이라고 함
2. 빅 엔디안 순서, 리틀 엔디안 순서 비교
ㅇ 빅 엔디안 : 중요한 것 또는 큰 것이 먼저 표현/저장/전송 됨
- Big-endian Order = High Order First
* (일상적인 문자 또는 숫자 표현 순서 방식 임)
ㅇ 리틀 엔디안 : 중요한 것 또는 큰 것이 나중에 표현/저장/전송 됨
- Little Endian Order
* (일상적인 문자 또는 숫자 표현 순서와는 반대 순서 임)
3. 컴퓨터 내의 `저장 순서`
ㅇ 例) 0x1234 를 컴퓨터 구조 표현 상 2개씩(16비트씩) 묶어질 때, 0x12 0x34 가 됨
- Big-endian 방식 : MSB인 0x12가 먼저 나타나는 물리적인 순서로 저장됨
. 즉, 메모리에서 낮은(처음) 주소에 MSB(상위), 높은(나중) 주소에 LSB(하위) 저장
- Little-endian 방식 : LSB인 0x34가 먼저 나타나는 0x34 0x12 순서로 저장됨
. 즉, 낮은 주소에 하위 바이트부터 채우면서 올라가며 저장되는 방식 (기계에 유리한 듯)
ㅇ 실제 사용 例 : (플랫폼 차이)
- Big-endian Byte Order : Motorola, IBM의 컴퓨터, Internet(IP) 등
. 저장방식(바이트 순서) : 0번 바이트가 가장 왼쪽에 위치
- Little-endian Byte Order : Intel, DEC Alpha 등
. 저장방식(바이트 순서) : 0번 바이트가 가장 오른쪽에 위치
- Bi-endian Byte Order : ARM 등 (선택 사용 가능)
※ [참고_웹] ☞ 리틀엔디안(Little-endian)과 빅엔디안(Big-endian)이해하기
4. 네트워크 상의 `전송 순서`
ㅇ 인터넷 IP 패킷의 전송 순서 = 네트워크 표준 바이트 순서 (Network Byte Order)
- IP 패킷이 바이트 단위로 구분되고,
. 최상위 바이트(MSB)를 먼저 보내고, 최하위 바이트(LSB)는 맨나중에 보냄
. 바이트 내 비트 전송 순서도, 최상위 비트를 먼저 보냄
- 즉, 전체적으로 빅 엔디안 순서 임 (인간이 보기 편한 방식)
ㅇ 이더넷 프레임 전송 순서 : (위 IP 패킷 전송 순서와 약간 다름)
- 프레임을 바이트 단위로 구분하고,
. 각 바이트들은, => 빅 엔디안 순서로 전송됨
. 각 바이트 내 비트들은, => 리틀 엔디안 순서로 전송됨
- 단,
. 프레임 내외 특수 목적의 Preamble,SFD,FCS(CRC) 필드 등은 다름
. 例) FCS(CRC)는 4 바이트가 모두 하나의 단위로써 간주되어, 전 비트들이 빅 엔디안 순서 임