IPv4 (Internet Protocol version 4)
우리가 현재 주로 사용하고 있는 IPv4 주소는 전세계에서 사용하는 첫 번째 인터넷 프로토콜로 데이터가 정확하게 전달될 것을 보장하지 않고 중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 가능성이 있다는 특징을 가진다.
데이터의 정확하고 순차적인 전달은 이보다 상위 프로토콜인 TCP에서 보장해주고 있고, TCP가 동작되지 않는 상황에서의 오류 제어는 ICMP 프로토콜을 사용한다.
IP주소, 최상위 도메인 등을 관리하는 관리 단체인 IANA(Internet Assigned Numbers Authority)에서 모든 IP주소 관리를 책임지고 있으며, 대륙을 5개 범위로 나눈 RIR(Regional Internet Registry)에서 IP주소 자원의 할당 및 등록을 관리하고 있다.
2011년 2월 4일부터 모든 IPv4 주소가 소진되어 할당이 중지되었고, 한국은 아시아 지역으로서 APNIC (Asia Pacific Network Information Center)에서 할당 받으며 전체 IP중 2.61%인 112,268,800개가 할당되어 사용하고 있는 중이다.
AFRINIC : 아프리카
ARIN : 카브리 제도의 일부지역, 미국, 캐나다, 남극
APNIC : 아시아, 오스트레일리아, 뉴질랜드, 주변 국가
LACNIC : 라틴아메리카, 카리브 제도의 일부지역
RIPE NCC : 유럽, 러시아, 중동, 중앙아시아
IPv4의 구성
IP는 총 32bit로 구성되어 있고 문자를 표현할 수 있는 최소단위인 8bit씩 나누고 옥텟(Octet)이라 한다.
사람이 인식하기 쉬운 10진수로 표시하며 네트워크를 구분하기 위한 Net-id와 각 네트워크 안의 호스트들을 구분하기 위한 Host-id로 나뉜다.
■ Network ID와 Host ID
전체 네트워크에서 각각의 네트워크를 구분하기 위한 것이 Network ID 이고, 그 중 하나의 네트워크에서 각각의 호스트(개인)을 구분하기 위한 것을 Host ID라고 한다.
Network ID와 Host ID를 구분하기 위해 Subnet Mask 라는 것을 사용한다.
Subnet Mask는 2진수로 Network ID로 쓰여진 부분의 bit를 1로 표시하고, Host ID로 사용된 부분은 0으로 표시해서 사람이 알아보기 쉬운 10진수로 변환한 것을 말한다.
예를 들어 A Class인 경우 Network ID인 8bit는 1로 채우고 나머지는 0으로 채운 후 2진수로 변환하면 255.0.0.0 이라고 표시할 수 있다.
■ IPv4 주소의 역할
전체 네트워크에서 통신되기 위해서 각각의 호스트들은 유일한 값의 IP를 할당받아 사용해야 한다.
IP주소가 데이터 통신을 하고자 하는 장비들의 출발지와 목적지를 나타내고 있기 때문에, 만약 중복된 IP를 할당받게 되면 목적지를 제대로 구분할 수 없어 패킷 전달에 어려움을 겪을 수 있다.
또한 모든 IP를 다 사용할 수 있는 것이 아니라 특수 용도로 지정된 주소들이 있어서 호스트에 할당할 수 있는 주소와 구분해서 알고 있어야 한다.
네트워크의 대표주소와 Broadcast 주소
각 네트워크마다 해당 네트워크를 구분할 수 있는 대표 주소를 가지고 있고, 동일한 네트워크에 속한 모든 호스트에게 데이터를 전달할 수 있는 Broadcast 주소를 가진다.
대표주소는 네트워크 범위 중 가장 앞 주소를 사용하고, Broadcast 주소는 가장 마지막 주소를 사용한다.
IPv4의 대표주소는 0.0.0.0 이고 Broadcast 주소는 255.255.255.255 이다.
공인IP 와 사설IP
사용하는 구간에 따라 공인IP와 사설IP로 나눌 수 있다.
공인 IP : 외부 통신시 사용하는 주소로 전체 네트워크에서 유일한 주소로 사용되어야 한다.
사설 IP : 내부 통신시 사용하는 주소로 하나의 네트워크에서 구분되도록 사용되어야 한다.
IPv4 Class
IP를 효율적으로 관리하기 위해 Class 라는 개념을 사용했는데 A ~ E Class 까지 나뉘어진다.
각 Class 마다 특수 목적용으로 예약되어 있는 주소들도 있는데, 아래에서 함께 살펴보자.
A Class : 최고위의 Class로서, 첫 번째 옥텟까지를 Net-id로 사용한다 (예 : 대륙별로 할당)
총 128개의 네트워크로 구분되어지고 각각의 네트워크는 총 16,777,216개의 IP를 가진다.
사설 IP : 10.0.0.0 ~ 10.255.255.255
Loopback : 127.0.0.1 (127.0.0.0 ~ 127.255.255.255)
B Class : 두 번째로 높은 단위의 Class로서, 두 번째 옥텟까지를 Net-id로 사용한다 (예 : 국가별로 할당)
총 16,384개의 네트워크로 구분되어지고 각각의 네트워크는 총 65,536개의 IP를 가진다.
사설 IP : 172.16.0.0 ~ 172.31.255.255
Link local : 169.254.0.0 ~ 169.254.255.255
C Class : 호스트에 할당 가능한 최하위의 Class로서, 세 번째 옥텟까지를 Net-id로 사용한다 (예 : 도시별로 할당)
총 2,097,152개의 네트워크로 구분되어지고 각각의 네트워크는 총 256개의 IP를 가진다.
사설 IP : 192.168.0.0 ~ 192.168.255.255
D Class : Multicast 용으로 사용되는 주소 범위
E Class : 연구용으로 예약되어 공개되지 않은 주소 범위
IPv4 Header
Version : IP의 버전 필드 (IPv4, IPv6)
Header Length : IP헤더는 옵션을 지원하기 때문에 이 부분은 필수적이며 다양한 길이값을 가질 수 있다.
옵션이 없는 기본 헤더는 20Byte 이다
TOS : QoS를 제공하고자 사용되는 필드
Total Length : 헤더 데이터를 포함한 전체 IP패킷 데이터를 바이트 단위로 나타냄
Identification : 각 개별 IP패킷이 전송될 때 할당 받은 유일한 ID값
Flages : 플래그 필드는 실제로 3bit 중 마지막 2bit만 사용한다.
0 - 예약됨. 0으로 설정
1 - 단편화 비트가 아님 (0=단편화 허용, 1=단편화 허용안함)
2 - 더 단편화 된 비트 (0=마지막 조각, 1=전송될 조각이 더 있음)
Fragment Offset : 조각이 단일 패킷에서 재조립될 때 이런 패킷의 데이터를 어디에 위치시켜야 하는지 표시
TTL(Time to Live) : 데이터가 이동할 수 있는 최대 Network Hop count를 나타냄
라우터를 지날 때마다 TTL값이 1씩 감소되며 0이 되면 라우터는 패킷을 폐기한다. 이는 목적지에 도달하지 못한 패킷이 네트워크 상에서 돌아다니며 대역폭을 감소시키는 것을 방지한다.
Protocol : 인캡슐 되어 있는 다음 헤더가 어떤 프로토콜을 사용하는지 나타낸다.
Header Checksum : IP헤더의 오류 검출 기능을 제공한다.
Source IP address : 출발지 Device의 32bit IP address
Destination IP address : 목적지 Device의 32bit IP address
Option : 옵션필드를 사용하여 특별한 처리옵션으로 추가 정의할 수 있다.
'[Network] Beginner' 카테고리의 다른 글
서브넷팅 (Subnetting) (5) | 2014.07.22 |
---|---|
Subnet-Mask (서브넷 마스크) (0) | 2014.07.21 |
3계층(Network) 세부설명 (0) | 2014.07.20 |
2계층(Data-link) 세부설명 (1) | 2014.07.19 |
1계층(Physical) 세부설명 (0) | 2014.07.18 |