Internet Protocol: 두 판 사이의 차이
| 6번째 줄: | 6번째 줄: | ||
==IPv4 Datagram Format== | ==IPv4 Datagram Format== | ||
[[파일:IPv4 Datagram format.png|대체글=Figure 1. IPv4 Datagram format|가운데|섬네일|382x382픽셀|Figure 1. IPv4 Datagram format]] | [[파일:IPv4 Datagram format.png|대체글=Figure 1. IPv4 Datagram format|가운데|섬네일|382x382픽셀|Figure 1. IPv4 Datagram format]] | ||
인터넷의 network layer의 데이터 단위는 '''데이터그램(datagram)'''이다. 데이터그램의 데이터 그램은 figure 1과 같이 구성되어있다. 이때 이 문서를 이해하기 위해서는, fragmentation/reassembly의 구현을 위한 16-bit identifier, flgs, '''fragment offset'''과 '''32비트 IP 주소'''를 나타내기 위한 헤더 필드가 존재가 존재한다는 것만 기억하면 된다. | 인터넷의 network layer의 데이터 단위는 '''데이터그램(datagram)'''이다. 데이터그램의 데이터 그램은 figure 1과 같이 구성되어있다. 이때 이 문서를 이해하기 위해서는, fragmentation/reassembly의 구현을 위한 16-bit identifier, flgs, '''fragment offset'''과 '''32비트 IP 주소'''를 나타내기 위한 헤더 필드가 존재가 존재한다는 것만 기억하면 된다.<br> | ||
이때 datagram의 IP 헤더필드는 20bytes이고, TCP 헤더필드는 20bytes이다. 따라서 datagram의 [[overhead]]는 <code>40bytes + app layer overhead</code>이다. | |||
==Fragmentation== | ==Fragmentation== | ||
2025년 4월 11일 (금) 12:54 판
상위 문서: Network Layer
개요
IP(Internet Protocol)은 인터넷에서 패킷을 송신하기 위한 network layer의 프로토콜이다.
IPv4 Datagram Format

인터넷의 network layer의 데이터 단위는 데이터그램(datagram)이다. 데이터그램의 데이터 그램은 figure 1과 같이 구성되어있다. 이때 이 문서를 이해하기 위해서는, fragmentation/reassembly의 구현을 위한 16-bit identifier, flgs, fragment offset과 32비트 IP 주소를 나타내기 위한 헤더 필드가 존재가 존재한다는 것만 기억하면 된다.
이때 datagram의 IP 헤더필드는 20bytes이고, TCP 헤더필드는 20bytes이다. 따라서 datagram의 overhead는 40bytes + app layer overhead이다.
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라고 한다. 이때 fragment들을 라우터에서 합쳐서 다시 이를 보내는 것은 네트워크 성능을 저하시킬 수 있기 때문에, 수신측 호스트에서 fragment들을 받아서 원래대로 재조립(reassemble)한다. 이때 reassemble을 수신측 호스트가 수행할 수 있도록, IP 데이터그램 헤더에는 identifier, flag, fragmentation offset 필드가 존재한다.
Figure 3는
각주
- ↑ Link layer에서의 데이터 단위이다.