호우동의 개발일지

Today :

article thumbnail

IPv4 데이터그램 포맷 및 주요 필드

  • IP 데이터그램은 총 20바이트의 헤더(옵션이 없다고 가정)를 갖는다.
  • 데이터그램이 TCP 세그먼트를 전송할 경우
    • 단편화되지 않은 각 데이터그램은 애플리케이션 계층 메시지와 함께 총 40바이트의 헤더를 전송
      • IP헤더 20 + TCP 헤더 20

IPv4 데이터그램 구성 및 필드
IPv4 데이터그램 구성 및 필드

 


버전 정보

  • 4비트로 데이터그램의 IP 프로토콜 버전을 명시한다.
  • 라우터는 버전 번호를 확인하여 데이터그램의 나머지 부분을 어떻게 해석할지 결정

 


헤더 길이

  • IPv4 데이터그램은 헤더에 가변 길이의 옵션을 포함
    → 해당 4개의 비트로 IP 데이터그램에서 실제 페이로드가 시작하는 곳을 결정
    • 페이로드(payload) : 전송되는 데이터 자체를 뜻함
      • 예시 - 데이터그램에 캡슐화된 트랜스포트 계층 세그먼트

  • 대부분의 IPv4 데이터그램은 옵션을 포함하지 않음
    → IPv4 데이터그램 헤더는 20바이트

 


서비스 타입

  • IPv4 헤더에 포함된 서비스 타입(type of service, TOS) 비트
    → 각자 다른 유형의 IP 데이터 그램을 구별
    • 예시 : 실시간 데이터그램(IP 전화 통화 애플리케이션)과 비실시간 트래픽을 구분하는데 유용

  • TOS 비트 중 2개는 명시적 혼잡 알림에 사용됨
  • 제공될 서비스 레벨은 해당 라우터의 네트워크 관리자가 결정하고 구성

 


데이터그램 길이

  • 바이트로 계산한 IP 데이터그램(헤더 + 데이터)의 전체 길이
  • 필드의 크기 = 16비트 → 이론상 최대 길이는 65,535바이트
    ← 하지만 실제론 1,500바이트 보다 큰 경우는 거의 없음
    • 최대 크기의 이더넷 프레임의 페이로드 필드에 IP 데이터그램이 장착될 수 있음

 


식별자, 플래그, 단편화 오프셋

  • 이 3개의 필드는 IP 단편화와 연관됨
  • IP 단편화 동작
    1. 큰 데이터그램이 여러 개의 작은 IP 데이터그램으로 분할됨
    2. 이후 분할된 데이터그램이 목적지로 독립적으로 전달
    3. 여기서 페이로드 데이터가 최종 호스트의 트랜스포트 계층에 전달되기 전에 다시 모임

 


TTL(Time-To-Live)

  • 네트워크에서 데이터그램이 무한히 순환(라우팅 루프) 하지 않도록 하는 필드
  • 이 필드값은 라우터가 데이터그램을 처리할 때마다 감소
    → 필드가 0이 되면 라우터가 데이터그램을 폐기

 


프로토콜

  • 일반적으로 IP 데이터그램이 최종 목적지에 도착했을 때 사용되는 필드
  • 필드값 → 데이터그램에서 데이터 부분이 전달될 목적지의 트랜스포트 계층의 특정 프로토콜을 명시
    • 예시 - 값 6은 데이터 부분을 TCP로, 17은 UDP로 데이터를 전달하라는 뜻

  • IP 데이터그램 프로토콜 번호의 역할은 트랜스포트 계층 세그먼트 포트 번호 필드의 역할과 유사
    → 프로토콜 번호는 네트워크 계층과 트랜스포트 계층을 묶는 역할을 한다.

 


헤더 체크섬

  • 라우터가 수신한 IP 데이터그램의 비트 오류를 탐지하는데 도움을 줌
    • 트랜스포트 계층과 네트워크 계층에서 오류 검사를 수행하는 이유
      1. IP 헤더만 IP 계층에서 체크섬을 수행하지만, TCP/UDP 체크섬은 전체 TCP/UDP 세그먼트를 계산
      2. TCP/UDP와 IP는 동일한 프로토콜 스택에 속할 필요가 없다.
        → IP는 TCP/UDP로 전달되지 않는 데이터를 전달할 수도 있기 때문

  • 헤더 체크섬의 값 = 헤더에서 각 2바이트를 수로 처리하고 이 1의 보수를 합산하여 계산
    • 인터넷 체크섬으로 알려진 이 합의 1의 보수는 체크섬 필드에 저장됨

  • 라우터는 수신한 각 IP 데이터그램마다 헤더 체크섬을 계산
    → 이 값과 데이터그램 헤더의 체크섬이 다르면 오류 상태임을 감지
    • 라우터는 보통 오류가 검출된 데이터그램을 폐기한다.

  • TTL 필드와 옵션 필드의 값이 가변적이기 때문에, 체크섬은 각 라우터에서 재계산되고 저장됨

 


출발지와 목적지 IP 주소

  • 출발지가 데이터그램을 생성 시
    • 자신의 IP 주소를 출발지 IP 주소 필드에 삽입
    • 목적지 IP 주소를 목적지 IP 주소 필드에 삽입
      • 종종 DNS 검색을 통해 목적지 주소를 결정하기도 함

 


옵션

  • 옵션 필드는 IP 헤더를 확장한다.
  • 오버헤드를 해결하기 위한 방법
    → 모든 데이터그램 헤더 옵션 필드에 정보를 포함하지 않는 방법을 사용
    • 데이터그램 헤더가 가변 길이로, 데이터 필드 시작점을 초기에 결정할 수 없음
      → 옵션은 문제를 복잡하게 만든다.

  • 일부 데이터그램은 옵션 처리 유무에 따라 라우터에 IP 데이터그램 처리의 필요한 시간이 크게 달라짐
    • 이런 가변 길이의 옵션은 고성능 라우터 및 호스트에서 IP 처리에 특히 중요

  • 이런 이유로 IP 옵션은 IPv6에 포함 X

데이터(페이로드)

  • 데이터그램이 존재하는 이유이자 가장 중요한 필드
  • IP 데이터그램 데이터 필드가 목적지에 전달되기 위해 담는 것
    • 트랜스포트 계층 세그먼트(TCP/UDP)를 포함
    • 또는 ICMP 메시지 가은 유형의 데이터를 담기도 함