IP 헤더

박상후·2025년 5월 9일

네트워크

목록 보기
5/10
post-thumbnail

들어가기 전에

IP 헤더패킷의 목적지, 발신지, 생명 주기, 단편화 여부 등 중요한 정보를 가지고 있습니다.
이를 통해 패킷이 올바른 경로로 전달될 수 있습니다.


1. IP 헤더란?

IP 헤더는 IP 패킷의 맨 앞에 위치하며, 패킷 전달에 필요한 메타데이터를 포함하고 있습니다.

네트워크 계층(3계층)에서 동작하며, 라우터가 IP 헤더를 읽어 경로를 설정합니다.


2. IP 헤더의 주요 필드

필드크기 (비트)설명
Version4IP 버전 (4: IPv4, 6: IPv6)
Header Length (IHL)4IP 헤더의 길이 (IPv4: 20~60 bytes)
Type of Service (ToS)8QoS(Quality of Service) 우선순위 설정
Total Length16IP 헤더 + 데이터의 전체 길이
Identification16패킷 단편화 시 순서 식별
Flags3단편화 허용 여부 설정 (DF, MF)
Fragment Offset13단편화된 패킷의 순서
Time to Live (TTL)8패킷 생존 시간. 라우터를 지날 때마다 1씩 감소
Protocol8상위 계층 프로토콜 식별 (TCP: 6, UDP: 17, ICMP: 1)
Header Checksum16IP 헤더의 오류 검출
Source IP Address32발신지 IP 주소
Destination IP Address32목적지 IP 주소
Options (Optional)가변특수한 네트워크 옵션 (사용 빈도 낮음)
Padding가변32비트 배수를 맞추기 위한 여유 공간

3. 주요 필드 설명

(1) Version

  • IPv4(4) 또는 IPv6(6)을 나타냅니다.
  • IPv4는 32비트 주소, IPv6는 128비트 주소를 사용합니다.

(2) Header Length (IHL)

  • IP 헤더의 길이를 나타냅니다.
  • 일반적으로 IPv4는 20바이트, 옵션이 추가될 경우 최대 60바이트까지 확장됩니다.

(3) Type of Service (ToS)

  • 네트워크 서비스의 우선순위를 지정합니다.
  • 예를 들어, 실시간 스트리밍 같은 경우 우선순위를 높여 전달 속도를 보장합니다.

(4) Total Length

  • IP 헤더 + 데이터 전체의 길이를 나타냅니다.
  • 최대 65,535바이트(64KB)까지 전송할 수 있으며, 이를 넘을 경우 단편화(Fragmentation)가 발생합니다.

(5) Identification

  • 단편화된 패킷이 다시 조립될 때 순서를 식별하는 고유 값입니다.
  • 동일한 패킷에 대해 동일한 ID가 부여됩니다.

(6) Flags

  • DF(Don't Fragment): 단편화를 허용하지 않음
  • MF(More Fragments): 뒤에 더 많은 조각이 있음을 나타냄
[000] → 단편화 없음
[001] → 단편화 가능
[010] → 마지막 조각

(7) Fragment Offset

  • 단편화된 패킷이 원본 데이터의 어느 위치에 속하는지를 나타냅니다.
  • 조각난 순서대로 다시 조립하기 위해 사용됩니다.

(8) Time to Live (TTL)

  • 패킷의 생명 주기를 나타내며, 각 라우터를 지날 때마다 1씩 감소합니다.
  • TTL이 0이 되면 패킷은 폐기되며, 송신자는 ICMP Time Exceeded 메시지를 받습니다.

이를 통해 패킷의 무한 루프 방지합니다.

(9) Protocol

  • 상위 계층의 프로토콜을 식별합니다.
  • 예를 들어 TCP(6), UDP(17), ICMP(1) 등으로 구분됩니다.
  • 라우터가 다음 계층에서 어떤 프로토콜로 전달할지 결정합니다.

(10) Header Checksum

  • IP 헤더에 오류가 있는지 검사합니다.
  • 데이터(payload)는 검사하지 않으며, 헤더 부분만 오류 검출을 수행합니다.

(11) Source IP Address / Destination IP Address

  • 발신지와 목적지의 IP 주소를 명시합니다.
  • 라우터는 목적지 IP를 기준으로 라우팅 경로를 탐색합니다.

4. IP 단편화(Fragmentation)와 재조립(Reassembly)

(1) 단편화가 필요한 이유

  • MTU(Maximum Transmission Unit): 네트워크 장비가 한 번에 전송할 수 있는 최대 크기 → 일반적으로 이더넷의 MTU는 1500바이트
  • IP 패킷이 MTU보다 클 경우, 단편화(Fragmentation)가 이루어진다. → 패킷을 여러 조각으로 나누어 전송

(2) 단편화 시 변경되는 헤더 값

  • Identification: 각 조각에 동일한 식별자(ID)가 부여된다.
  • Fragment Offset: 원본 데이터의 어느 위치에 있는지 기록한다.
  • Flags:
    • DF(Don't Fragment): 단편화 금지 (만약 단편화가 필요하면 폐기됨)
    • MF(More Fragments): 뒤에 더 많은 조각이 있음을 표시

(3) 재조립(Reassembly)

  • 최종 목적지에서만 재조립된다.
    • 중간 라우터는 단편화를 수행하지만, 재조립하지 않는다.
  • Fragment Offset 값을 기준으로 순서를 정렬하여 완성된 패킷을 복구한다.
  • 만약 단편 중 일부가 손실되면 전체 패킷이 손실된 것으로 간주한다.

면접 대비 요약

핵심 질문설명 포인트
IP 헤더의 역할은?패킷의 발신지, 목적지, TTL, 단편화 정보 등을 담아 최적 경로로 전달
TTL은 왜 필요한가?무한 루프 방지. 라우터를 지날 때마다 1씩 감소
Flags 필드의 역할은?단편화 여부와 순서 식별을 설정
단편화는 어디서 재조립되나?최종 목적지에서만 재조립된다
Protocol 필드는 무엇을 나타내는가?상위 계층의 프로토콜 (TCP, UDP 등)
Checksum은 어디를 검사하나요?IP 헤더의 무결성을 검사 (Payload는 검사하지 않음)
Fragment Offset의 역할은?조각난 패킷의 순서를 맞추기 위한 위치 정보
Flags의 DF와 MF의 의미는?DF: 단편화 금지, MF: 추가 조각이 존재함
profile
성장보다 성과를

0개의 댓글