Internet Protocol

youngwiki
Pinkgo (토론 | 기여)님의 2025년 4월 11일 (금) 12:44 판

상위 문서: Network Layer

개요

IP(Internet Protocol)은 인터넷에서 패킷을 송신하기 위한 network layer의 프로토콜이다.

IPv4 Datagram Format

Figure 1. IPv4 Datagram format
Figure 1. IPv4 Datagram format

인터넷의 network layer의 데이터 단위는 데이터그램(datagram)이다. 데이터그램의 데이터 그램은 figure 1과 같이 구성되어있다. 이때 이 문서를 이해하기 위해서는, fragmentation/reassembly의 구현을 위한 16-bit identifier, flgs, fragment offset32비트 IP 주소를 나타내기 위한 헤더 필드가 존재가 존재한다는 것만 기억하면 된다.

Fragmentation

모든 링크(link)들은 각각의 해당 link-level이 운반할 수 있는 최대 frame[1]의 크기MTU(Max Transfer Size)를 가지고 있다. 각각의 IP 데이터그램은 한 라우터(router)에서 다음 라우터로 이동할 때 link layer의 frame에 캡슐화되기 때문에, MTU는 IP 데이터그램의 크기에 대해 제약을 가한다. 이로 인해 발생하는 진짜 문제는 송신 호스트(host)에서 수신 호스트로 패킷이 이동할 때 거쳐가는 링크의 MTU들이 서로 다른 수 있다는 것이다. 예를 들어, 다양한 링크를 연결하는 라우터에서 한 링크에서 IP 데이터그램을 수신했을 때, 출력 링크의 MTU가 입력 링크의 MTU보다 작으면 문제가 된다. 이 경우 문제는 커다란 IP 데이터그램을 그보다 작은 크기의 MTU를 가지는 링크에 어떻게 전달할지이다.
이때 해결책은 IP 데이터그램의 페이로드를 두 개이상의 더 작은 IP 데이터그램에 나누어 담고(fragment), 각각의 쪼개진 데이터그램을 frame으로 캡슐화해서 전송하는 것이다. 이때 쪼개진 데이터그램을 fragment라고 한다.

각주

  1. Link layer에서의 데이터 단위이다.