6강-IPv4

IPv4 프로토콜

IP가 하는 일

  • 네트워크 상에서 데이터를 교환하기 위한 프로토콜

  • 데이터가 정확하게 전달될 것을 보장하지 않는다.

  • 중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 가능성도 있다.

  • 데이터의 정확하고 순차적인 전달은 그보다 상위 프로토콜인 TCP에서 보장한다.

IPv4 프로토콜 구조

ipv4
  • version (4bits)

    • 이 필드는 IP 버전을 나타낸다.

  • IHL (Internet Header Length, 4bits)

    • IP 헤더의 길이를 나타낸다.

    • 단위는 32비트(4바이트)로 계산된다.

    • Ipv4 기본 헤더는 5 (20바이트)로 설정된다.

  • TOS

    • 패킷 처리 우선순위를 나타내는 필드이다.

    • 현재 거의 사용되지 않으며, 기본 값은 0이다.

  • Total Length (16 bits)

    • 패킷의 전체 길이를 바이트 단위로 나타낸다.

    • IPv4 헤더 + 데이터 페이로드의 총합을 의미한다.

    • 최대 값은 65,535바이트이다.

  • Identification (16 bits)

    • 패킷이 분할(fragmentation)될 경우 각 분할된 패킷을 식별하기 위한 값. 원본 데이터그램의 고유한 ID로 사용됨

  • IP Flages (3bits)

    • 프래그먼트와 관련된 설정을 나타낸다.

    • x 예약된 비트 항상 (0)

    • D Don’t Fragment (1로 설정 시 패킷이 분할되지 않음)

    • M More Fragments (1로 설정 시 추가 분할된 데이터가 있음)

  • Fragment Offset (13 bits)

    • 분할된 패킷에서 원본 데이터의 위치를 나타낸다.

    • 단위는 8바이트 입니다. ( 즉 0부터 8바이트씩 나누어 계산함)

  • TTL

    • 패킷이 네트워크에서 전송될 수 있는 최대 홉 수를 나타낸다.

    • 패킷이 라우터를 통과할 때마다 TTL 값이 1씩 감소하며, 0이 되면 패킷은 폐기된다.

    • 기본적으로 Window는 128, Linux는 64를 초기 값으로 사용한다.

  • Protocol (8 bits)

    • 상위 프로토콜의 타입을 나타낸다.

    • 예 TCP(6), UDP(17), ICMP(1)

  • Header Checksum (16 bits)

    • 헤더의 오류를 검출하기 위한 값이다.

    • IPv4 헤더에만 적용되며, 데이터는 포함되지 않는다.

Last updated