IPv4 Datagram Format
- ver : IP 프로토콜의 버전
- head. len : 헤더의 길이
- length : 총 데이터그램의 길이
- 16-bit identifier, flags, fragmentation offset : 큰 IP 데이터그램이 여러 개의 작은 IP 데이터그램으로 분할된 다음 목적지로 독립적으로 전달되며, 여기서 페이로드 데이터가 최종 호스트의 트랜스포트 계층으로 전달되기 전에 다시 모이게 된다. 이 때 사용되는 정보들이다.
- time to live : 네트워크에서 데이터그램이 무한히 순환하지 않도록 한다. 이 필드가 0이되면 라우터가 데이터그램을 폐기한다.
- upper layer : 이 필드는 일반적으로 IP 데이터그램이 최종 목적지에 도착했을 때만 사용 된다. 이 필드값은 IP 데이터그램에서 데이터 부분이 전달될 목적지의 트랜스포트 계층의 특정 프로토콜을 명시한다.
- header checksum : 라우터가 수신한 IP 데이터그램의 비트 오류를 탐지하는 데 도움을 준다.
- source/destination IP address : 출발지와 목적지의 IP주소.
IPv4 addressing
- IP address : 호스트 또는 라우터 인터페이스와 연관된 32-bit 식별자
- Interface : 호스트/라우터와 물리적 링크 사이의 경계. 라우터는 보통 여러개의 인터페이스를 갖고, 호스트는 1~2개의 인터페이스를 갖는다. (무선/유선)
- subnet : 중간 라우터를 통과하지 않고 물리적으로 호스트/라우터들이 서로 도달할 수 있는 인터페이스(네트워크)
- IP 주소는 subnet part와 host part로 구성되어 있다.
- subnet part : 같은 서브넷에 속한 디바이스들은 동일한 상위 비트를 갖는다.
- host part : IP 주소에서 subnet part를 제외한 나머지 부분
- CIDR(Classless InterDomain Routing) : 인터넷 주소 할당 방식으로, 서브넷 주소체계 표기를 일반화 하고 있다. 서브넷 주소체계로서, 32비트 IP 주소는 두 부분으로 나누고, 이것은 다시 점으로 된 십진수 형태의 'a.b.c.d/x'를 가지며, 여기서 x는 주소 첫 부분의 비트 수이다. 이 형식 주소에서 MSB를 의미하는 x는 IP 주소의 네트워크 부분을 구성한다. 이를 해당 주소의 '네트워크 프리픽스' 라고 부른다.
- 외부기관의 라우터는 목적지 주소가 내부기관인 데이터그램을 전달할 때, 단지 앞의 x비트들만 고려하므로 라우터들에서 포워딩 테이블의 크기를 상당히 줄여준다.
- 나머지 32-x 비트들은 기관 내부에 같은 네트워크 프리픽스를 갖는 모든 장비를 구별한다.
DHCP : Dynamic Host Configuration Protocol
DHCP(동적 호스트 구성 프로토콜)는 호스트가 배정되는 IP 주소를 자동으로 얻을 수 있게 한다. 네트워크 관리자는 해당 호스트가 네트워크에 접속하고자 할 때마다 동일한 IP 주소를 받도록 하거나, 다른 임시 IP 주소를 할당 받도록 DHCP를 설정한다. DHCP는 호스트 IP 주소의 할당뿐만 아니라, 서브넷 마스크, 첫 번째 홉 라우터 주소나 로컬 DNS 서버 주소 같은 추가 정보를 얻게 해준다.
위 그림은 서브넷에 새로운 호스트가 도착하는 예시이다.
- DHCP 서버 발견 : 새롭게 도착한 호스트는 상호작용할 DHCP를 발견한다. 이것은 DHCP 발견 메시지를 사용하여 수행되며, 클라이언트는 포트 67번으로 UDP 패킷을 보낸다. 호스트는 자신이 접속 될 네트워크의 IP 주소를 모르며, 더군다나 해당 네트워크의 DHCP 서버 주소도 모른다. 이때 DHCP 클라이언트는 DHCP 발견 메시지를 포함하는 IP 데이터그램을 생성하는데, 이 메시지 내의 목적지 IP 주소를 브로드캐스트 IP 주소 255.255.255.255로 설정하고 출발지 IP 주소는 0.0.0.0으로 설정한다. DHCP 클라이언트는 링크 계층으로 IP 데이터그램을 보내며 이 프레임은 서브넷에 연결된 모든 노드로 브로드캐스트 된다.
- DHCP 서버 제공 : DHCP 발견 메시지를 받은 DHCP 서버는 DHCP 제공 메시지를 클라이언트로 응답한다. 이때에도 다시 IP 브로드캐스트 주소 255.255.255.255를 사용하여 서브넷의 모든 노드로 이 메시지를 브로드캐스트한다. 서브넷에는 여러 DHCP 서버가 존재하기 때문에, 클라이언트는 여러 DHCP 제공 메시지로부터 가장 최적의 위치에 있는 DHCP 서버를 선택한다.
- DHCP 요청 : 새롭게 도착한 클라이언트는 하나 또는 그 이상의 서버 제공자 중에서 선택할 것이고 선택된 제공자에게 파라미터로 설정으로 되돌아 오는 DHCP 요청 메시지로 응답할 것이다.
- DHCP ACK : 서버는 DHCP 요청 메시지에 대해 요청된 파라미터를 확인하는 DHCP ACK 메시지로 응답한다.
Obtaining a Block of Addresses
위 그림 처럼 Fly-By-Night-ISP가 인터넷에 200.23.16.0/20으로 시작하는 주소를 모두 자신에게 보내라고 요청하면 그런 조직들이 모두 Fly-By-Night-ISP로 들어가게 된다.
이 때 Fly-By-Night-ISP가 IPSs-R-Us를 인수한 후 조직 1이 자회사인 IPSs-R-Us를 통해 인터넷에 연결되면 Longest prefix matching rule에 의해서 ISPs-R-Us로 조직1에 속한 호스트들이 들어간다. 이 방식으로 호스트들이 IP 주소를 유지하며 ISP가 변경될 수 있다.