반응형
728x170
뭐 순서와 관련되었다고 생각하면 쉽다.
알아보자
2바이트 이상의 데이터를 송수신할 때는 바이트 오더에 주의해야 한다.
바이트 오더란 2 바이트 이상의 데이터를 메모리에 배치하는 방식을 말하는데
배치 방식에는 빅 엔디안, Big Endian, 리틀 엔디안, Little Endian이 있다.
기본적으로 우리는 빅 엔디안에 익숙해져있다.
우리가 12345를 만 이천 삼백 사십 오라고 읽는 것과 같은 이치다.
이러한 기준 엔디안은 프로세서에 따라 달라진다.
같은 엔디안 끼리 통신할 때는 문제가 당연히 없지만 다를 때 문제가 생긴다.
즉, 송신했을 때 어떻게 수신하느냐에 따라 데이터가 달라질 수도 있다는 것이다.
이처럼 다른 프로세서 간의 데이터를 송수신할 때는 바이트오더를 약속해야 한다.
C#에서는 IPAddress 클래스에 short, int, long 바이트 오더를 변환하는 메서드가 있다.
HostToNetworkOrder라는 함수는 단말에서 데이터를 송신할 때 네트워크 바이트 오더로 변환하는 것이고
NetworkToHostOrder는 수신한 데이터를 수신한 단말의 엔디안으로 변환하는 것이다.
짧지만 데이터를 보낼 때 이러한 것을 일치시키지 않고 보낸다면 오류가 생길 수 있다는 점을 생각해야 한다.
728x90
반응형
그리드형
'컴퓨터(Computer Science) > 네트워크, Network' 카테고리의 다른 글
SSL의 동작방식 (0) | 2022.10.10 |
---|---|
소켓 프로그래밍, Socket Programming (0) | 2022.09.03 |
쿠키, Cookie 와 세션, Session (0) | 2021.09.15 |
SSL, Secure Sockets Layer 란 무엇일까? (+HTTPS) (0) | 2021.09.14 |
TCP vs UDP 비교 (2) | 2021.09.13 |