IPv4

  • 작성자
    조재혁 (Mminzkn@minzkn.com)

  • 고친과정
    2008년 6월 24일 : 처음씀
    2008년 9월 1일 : IP header
    2010년 8월 18일 : 사설IP관련 내용 추가


역사

IPv4 protocol 은 1981년에 [https]RFC791 - INTERNET PROTOCOL[]에 의해서 정의되었다.

용어정의

  • RTT : Round-Trip Time
  • ICMP : Internet Control Message Protocol

Class 구분

  • A class (0.0.0.0 ~ 127.255.255.255)
    128개의 네트웍으로 구성되며 각 네트웍은 16,777,216개의 주소를 갖는다.
    A class
    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
    0 NetID HostID

  • B class (128.0.0.0 ~ 191.255.255.255)
    16,384개의 네트웍으로 구성되며 각 네트웍은 65,536개의 주소를 갖는다.
    B class
    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
    1 0 NetID HostID

  • C class (192.0.0.0 ~ 223.255.255.255)
    2,097,152개의 네트웍으로 구성되며 각 네트웍은 256개의 주소를 갖는다.
    C class
    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
    1 1 0 NetID HostID

  • D class (224.0.0.0 ~ 239.255.255.255)
    Multicast를 위한 주소로 사용된다.
    D class
    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
    1 1 1 0 Multicast group ID

  • E class (240.0.0.0 ~ 247.255.255.255)
    미래를 위하여 사용을 보류한 영역이다.
    E class
    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
    1 1 1 1 0 Reserved for future use

  • CIDR(Classless Inter-Domain Routing, 사이더)에 따른 Network 규모 정리 표 (참고: [https]RFC1519 - Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy[])
    CIDR(Classless Inter-Domain Routing, 사이더)에 따른 Network 규모 정리 표
    CIDR Class Hosts Usable hosts netmask
    /0 - (any or default) 0.0.0.0
    /1 8388608 C, 32768 B, 128 A 2147483648 2147483646128.0.0.0
    /2 4194304 C, 16384 B, 64 A 1073741824 1073741822192.0.0.0
    /3 2097152 C, 8192 B, 32 A 536870912 536870910224.0.0.0
    /4 1048576 C, 4096 B, 16 A 268435456 268435454240.0.0.0
    /5 524288 C, 2048 B, 8 A 134217728 134217726248.0.0.0
    /6 262144 C, 1024 B, 4 A 67108864 67108862252.0.0.0
    /7 131072 C, 512 B, 2 A 33554432 33554430254.0.0.0
    /8 65536 C, 256 B, 1 A (Class A network) 16777216 16777214255.0.0.0
    /9 32768 C, 128 B 8388608 8388606255.128.0.0
    /10 16384 C, 64 B 4194304 4194302255.192.0.0
    /11 8192 C, 32 B 2097152 2097150255.224.0.0
    /12 4096 C, 16 B 1048576 1048574255.240.0.0
    /13 2048 C, 8 B 524288 524286255.248.0.0
    /14 1024 C, 4 B 262144 262142255.252.0.0
    /15 512 C, 2 B 131072 131070255.254.0.0
    /16 256 C, 1 B (Class B network) 65536 65534255.255.0.0
    /17 128 C 32768 32766255.255.128.0
    /18 64 C 16384 16382255.255.192.0
    /19 32 C 8192 8190255.255.224.0
    /20 16 C 4096 4094255.255.240.0
    /21 8 C 2048 2046255.255.248.0
    /22 4 C 1024 1022255.255.252.0
    /23 2 C 512 510255.255.254.0
    /24 1 C (Class C network) 256 254255.255.255.0
    /25 1/2 C 128 126255.255.255.128
    /26 1/4 C 64 62255.255.255.192
    /27 1/8 C 32 30255.255.255.224
    /28 1/16 C 16 14255.255.255.240
    /29 1/32 C 8 6255.255.255.248
    /30 1/64 C 4 2255.255.255.252
    /31 1/128 C Point-to-Point links only ([https]RFC3021[]) 255.255.255.254
    /32 1/256 C (Single IP address) 1 1255.255.255.255

사설 IP (Private IP) 대역

IANA(Internet Assigned Numbers Authority, 국제 주소관리 기구)는 다음과 같은 사설 IP주소(Private IP)를 예약해 두었으며, 이의 사용을 강력히 권고하고 있습니다.
  • Class A 규모 : 10/8(10.0.0.0∼10.255.255.255)
  • Class B 규모 : 172.16/12(172.16.0.0∼172.31.255.255)
  • Class C 규모 : 192.168/16(192.168.0.0∼192.168.255.255)

이 주소들은 전세계 어디에도 할당되지 않는 특수목적의 IP주소이므로, 비록 기업내부에 이미 할당받은 공인 IP 주소가 있다 하더라도 주소 충돌의 위험성은 없습니다. 단, 이 기업이 인터넷으로 다른 기업과 통신하려 할 때는 이 사설 IP주소를 공인(Public) IP주소로 변환하여 통신하여야 하며, 특히, Private IP주소가 외부로 라우팅되지 않도록 조심해야 합니다.

Private-to-public IP주소 변환을 위해서는 NATs(Network Address Translators)와 같은 Gateway System(주로 방화벽제품에서 사용)을 사용하여야 합니다. 즉, 내부적으로 private address를 사용하도록 설정되어 있는 전산기가 외부 인터넷상의 전산기와 통신하려 할때는, 이 gateway 시스템에서 private IP주소를 public IP주소로 변환해 줍니다. 이때 gateway 시스템은 적정 수량의 필요한 public IP주소 pool을 유지하고 있어야 하므로, 이에 필요한 public IP주소는 인터넷주소할당조직(Internet Registry)으로부터 할당받아야 합니다.

이 private 주소 사용에 있어서의 장점은 KRNIC, ISP등 누구에게도 주소공간 할당 신청을 하지 않음으로서, 까다로운 심사절차 를 거치지 않아도 됩니다. 즉, 기업내부의 모든 host수를 조사하고, CIDR/VLSM을 적용한 세밀한 networking plan을 세우고, 상대적으로 다루기 어려운 OSPF같은 프로토콜을 사용하여야 하는 등의 불편이 따르지 않게 됩니다.

조직내부 IP주소공간 관리 편의를 위해, 필요이상으로 충분히 넉넉한 주소공간을 자유롭게 사용할 수 있습니다. 즉, 5개의 host가 필요한 subnet에 대해서도 미래를 대비하여 /24를 할당할 수 있습니다. 수시로 변하는 조직변동, 전산기들의 이동, 재배치 등등에 대해서도 별로 걱정할 필요로 없습니다. Private IP주소를 사용하게 되고, 주로 NATs 시스템이 방화벽기능을 포함하고 있으므로, 상대적으로 보안성이 강화됩니다.

그러나, 전세계 인터넷도메인이름 시스템과 연결되는 external용과 기업 내부용의 internal Domain Name server를 운영해야 할 것이며, 외부 공개용으로 반드시 public IP주소가 필요한 시스템과 그렇지 않은 시스템으로 구분하여, 외부 공개용 시스템에는 public IP 주소를 static하게 지정하여야 할 것입니다. 최근 private IP주소를 활용하는 라우터, 시스템 등이 많이 출시되고 있는 추세이므로, 이의 사용을 적극 권장한다. 보다 자세한 내용은 [https]RFC1597 - Address Allocation for Private Internets[]을 참조할수 있습니다.

IP (Internet Protocol) header

  • IP datagram은 다음과 같은 형식을 가진다.
    IP datagram
    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Description
    4bit Version 4bit Header length / 4 8bit Type of service (TOS) 16bit Total length (in bytes) ↑↓20 bytes ↑↓20~60 bytes
    16-bit Identification 3-bit Flags 13bit Fragment offset
    8bit Time to live (TTL) 8bit Protocol 16bit Header checksum
    32bit 출발지 IP 주소
    32bit 목적지 IP 주소
    Options (if any) ↑↓0~40 bytes
    Data ↑↓ Total length - Header length
    • 4-bit Header length는 4의 배수로 해석한다. 즉, 1이 4바이트를 뜻한다. 최대 4-bit로 15까지 값을 지정할수 있으므로 15x4=60 bytes가 최대값이고 이것은 "Options (if any)" 가 60-20=40 bytes를 넘지 못한다는 의미이기도 하다.
    • 8-bit Protocol 항목에는 다음의 값들을 사용할수 있다. (참고: [http]http://www.iana.org/assignments/protocol-numbers[])
      More
    • Options 항목은 32bit로 정렬되어야 한다.

  • Type of service (TOS) : 각 응용의 종류에 따라 권장되는 값은 아래와 같다.
    More


2008년 9월 1일 현재 IANA protocol-numbers

IANA protocol-numbers 를 보시려면 여기를 클릭해주세요.




/*

[ FrontPage | PrintView | RawView | RSS ]

Copyright ⓒ MINZKN.COM
All Rights Reserved.

MINZKN

----

*/