본문 바로가기
네트워크

네트워크 정리 11. IPv4 데이터그램 형식

by 호놀롤루 2022. 4. 13.

1. 개요

IP가 사용하는 패킷을 데이터그램(datagram)이라 한다.

데이터그램은 가변 길이 패킷(내용에따라 길이 바뀜)이며, 헤더와 페이로드(내용물, 데이터)로 구성된다.

헤더는 20~60바이트 길이이며, 라우팅 전송에 필수적인 정보를 가지고 있다.

 

 

2. 설명

2-1. IPv4 데이터그램의 구성요소

헤더의 경우, 기본 20바이트이고 최대 60바이트이다.

기본 20바이트의 구성은 5층이 있고, 각 층은 4바이트를 차지한다.

  • 1층 : VER (4bits), HLEN (4bits), Service Type (8bits), Total Length (16bits), 합쳐서 4바이트
  • 2층 : Identification (16bits), Flags (3bits), Fragmentation Offset (13bits)
  • 3층 : Timte-To-Live (8bits), Protocol (8bits), Header Checksum(16bits)
  • 4층 : Source IP Address (32bits)
  • 5층 :  Destination IP Address (32bits)

그리고 필요에 따라 옵션을 추가해서, IPv4의 헤더는 20~60바이트로 구성된다.

 

 

2-2. 1층 설명

  • 버전 숫자 (VER) : 4비트의 버전 숫자 필드는 IP 프로토콜의 버전을 정의한다. IPv4는
    4의 값을 가지고 있다. 2진수로 0100

  • 헤더 길이 (HLEN) : 4비트 길이의 헤더 길이 필드는 데이터그램 헤더의 전체 길이를 4비트로 표현한다.
    4비트로 표현할 수 있는 범위는 0~15까지 이고 헤더의 크기는 최대 60이니, HLEN의 1은 4바이트를
    나타낸다. HLEN이 5(0101)이면 헤더는 20바이트, 15(1111)이면 헤더는 60바이트이다.

  • 서비스 유형 (Service Type) : 데이터그램을 어떻게 처리할지를 정의하는 서비스의 유형(TOS)을
    나타낸다. 예를 들자면 우체국에서 편지를 보낸다고 해도, 일반우편, 등기우편 등 여러 종류의 서비스가 있다.
    그걸 정의하는 필드가 여기다.

  • 전체 길이 (Total Length) : IP 데이터그램의 전체 바이트 수를 정의하는 16비트 길이의 필드다.
    16비트의 숫자는 65,535 까지의 길이를 나타낼 수 있다.

 

2-3. 2층 설명

우선 2층의 경우, 단편화(Fragmentation)가 필요할 때 쓰는 필드이다.

단편화란 데이터그램을 보낼 때, 라우터에서 받아들일 수 있는 최대 용량 (MTU, Maximum Transmission Unit)

보다 데이터그램이 클 경우, 데이터를 분할(단편화)시켜서 보내야 한다. 그 때, 어디부터 어디까지가 같은

데이터그램인지를 나타내는 것이 2층의 역할이다.

  • 식별자 (Identification), 플래그 (Flags), 분할 오프셋 (Fragmentation Offset) : 데이터그램을
    분할(Fragmentation), 재조립(Reassembly)할 때, 사용되는 필드다.

2-4. 3층 설명

  • TTL (Time-TO-Live) : 데이터그램이 얼마동안 살아있을 수 있는지 나타내는 것이다.
    데이터그램이 방문할 수 있는 최대 라우터 수를 정의, 보통 이 값은 일반 호스트 사이의 라우터 수의
    약 2배로 정의한다. (왔다 갔다 할 수 있는 시간)

  • 프로토콜 (Protocol) : 어떤 프로토콜로 처리할 건지 정의
  • 헤더 체크섬 (Header Checksum) : 간단한 오류검사용 체크섬

 

2-5. 4, 5층 설명

IPv4의 네트워크 길이는 32비트이다. 그래서 송신지 주소 (Source IP Address), 수신지 주소 (Destination IP Address)

의 길이가 각각 32비트 씩이다.

댓글