Network byte order

지식 2013. 4. 3. 09:48

Network byte order

 

출처 : http://stone.backrush.com/sunfaq/ljs003.html

 

* Big endian 방식 사용

 

 

                             Axil S/E-ljs046
                                1994.10.4
                               Lee Jin-Soo


SUBJECT:   NETWORK에서 사용되는 Byte Order는?


  #######   NETWORK  BYTE   ORDER   #######

o 불행히도 모든 컴퓨터가 여러 바이트로 된 데이타의 저장시 같은 바이트 순서를 따르지 않는다.
   8-비트 바이트를 사용하지 않는 컴퓨터들은 사라져 가고 있지만 바이트의 순서에 대해서는 명확한
   표준이 없으므로 문제점으로 남아 있다.
   2바이트로 이루어진 16-비트 정수의 경우를 예로 들어 보면 이것의 저장 방법에는 하위 바이트를 먼저
   두는것 - 이를 little endian이라고 한다 -과 상위 바이트를 먼저 두는 것 - 이를 big endian이라고한다 -이
   있다.
   첫번째의 경우는 다음과 같다.

     Little endian byte order   ---------------------------------------------------------
                                |    high-order byte      |     low-order  byte         |
                                ---------------------------------------------------------
                                                          ↑                            ↑
                                                       addr A+1                      addr A

                                여기서 오른편에서 왼편으로 주소가 증가한다.
                                낮은 주소가 낮은 바이트라는 논리이다.

     Big endian byte  order     ---------------------------------------------------------
                                |    high-order byte      |     low-order  byte         |
                                ---------------------------------------------------------
                                ↑                        ↑
                              addr A                    addr A+1

                                여기서는 왼쪽편에 있는 것이 오른편보다 낮은 주소이다

   현재 컴퓨터 시스템에서 많이 쓰이고 있는 바이트 순서는 다음과 같다.

           --------------------------------------------------------------------
           |  big endian    :  sparc, IBM 370, Motorola 68000, Pyramid        |
           --------------------------------------------------------------------
           |  little endian : Intel 80x86(IBM PC), DEC VAX, DED PDP-11        |
           --------------------------------------------------------------------

   32 비트 정수의 경우에는 이런 현상이 심각하다. 시스템에 따라 16 비트 부분이 서로 바뀌어 있다.
   전산망 규약에서 이 문제에 대한 해결 방법은 망 바이트의 순서를 확정짓는 것이다.
   TCP/IP, XNS, SNA 규약들은 규약 머릿부에 쓰이는 16-비트 정수와 32-비트 정수에 모두
   big endian을 사용한다. (실수 데이타 부분에 대해서는 차이가 심하지만 다행이 규약에서는 정수 영역만
   다룬다)

참고 : http://fattarzan.tistory.com/entry/htonl-htons-ntohl-ntohs

참고 : http://choong0121.tistory.com/entry/네트워크-바이트-순서Network-byte-Ordering

'지식' 카테고리의 다른 글

ASCII 코드표(확장포함)  (0) 2014.05.29
단위 환산표  (0) 2013.07.03
VMware 자동시작 방법  (0) 2013.02.08
SVN 관련  (0) 2012.08.10
Windows XP Mode 쉽게 재설치하는 방법  (0) 2012.07.03
Posted by 올케이알
,