IP 데이터그램

From CS Wiki


IP Datagram; IP Packet; IP 패킷

IP프로토콜에서 데이터가 전달되는 기본 단위

  • IP 패킷이라고 많이 부르지만, '패킷'이라는 표현은 더 일반적인 표현으로, IP에서 사용되는 패킷을 데이터그램이라 칭하므로, IP 데이터그램이라고 부르는 것이 더 정확함

데이터그램 헤더[edit | edit source]

Version (4bit)

All) 0100

HLEN (4bit, quartets 단위)

헤더의 길이

DS/ESN (8bit)

지금은 거의 쓰이지 않는 옵션 대부분 00000000으로 들어감

Total Length (16bit, octets 단위)

데이터를 포함한 IP Datagram의 전체 길이

Identification (8bit)

재조립을 위한 모체를 식별하는 코드

Flags(3bit)

-More bit: 파편 중 마지막인지 아닌지 -Don't fragment bit: 절대 분할금지. 분할이 필요하면 폐기

Fragment Offset(15bit, octets 단위)

헤더를 포함하지 않은 데이터만의 시작 위치

Time to Live (8bit)

데이터그램의 수명 네트워크를 거칠 때마다 --1; (라우터 통과) 0이 되면 폐기

Protocol(8bit)

상위 계층의 프로토콜이 누구인가? ex) TCP, UDP, ICMP

Header Checksum(16bit)

데이터 전체가 아닌 헤드의 오류만 검출 오류가 검출되면 복구하지 않고 폐기

Source Address(32bit)
Destination Address (32bit)
Options + Padding (가변 bit)

Padding: 전체 길이가 무조건 4의 배수가 되어야 하기 때문에 4의 배수가 아닐 경우 이를 채우기 위해 사용.

  • 버전숫자: IP 프로토콜의 버전을 정의
  • 헤더길이: 데이터그램은 가변의 헤더를 가지게되기 떄문에 수신자가 데이터그램을 수신하면 헤더가 어디서 끝나고 패킷에 캡슐화된 데이터가 어디서 시작하는지 알아야 한다. 따라서 수신자는 전체 길이를 확인하기 위해 필드값에 4를 곱하게 된다.
  • 서비스유형: 데이터그램을 어떻게 처리할지를 정의
  • 전체길이: IP 데이터그램의 전체 바이트 수를 정의함
  • 식별자 (단편화 관련): 데이터그램이 전송된 근원지 호스트를 구분
  • 플래그 (단편화 관련): 세개의 비트로 단편화 관련 정보를 표시함
    • 첫번째 비트 : 사용되지 않음
    • 두번째 비트 : 단편화 금지 필드
    • 세번째 비트 : 1이면 다른 단편이 더 있음을 의미, 0이면 마지막 단편이거나 오직 하나의 단편임을 의미
  • 단편화 오프셋: 전체 데이터그램에서 해당 단편의 상대적인 위치를 나타냄
  • 생존시간(TTL): TTL 필드는 데이터그램이 방문할 수 있는 최대 라우터 수를 정의함
  • 프로토콜: 근원지 IP에서 페이로드가 캡슐화될 때, 이 필드에 상응하는 프로토콜의 번호가 추가됨
  • 헤더 검사합(Checksum): IP는 헤더를 검사하기 위한 검사합 필드를 추가함
  • 근원지와 목적지(Destination Address): 각각 소스IP와 목적지IP주소를 나타냄
  • 옵션: 데이터그램 헤더는 40바이트까지 옵션을 가질 수 있음

IP 단편화[edit | edit source]