6강-IPv4
IPv4 프로토콜
IP가 하는 일
네트워크 상에서 데이터를 교환하기 위한 프로토콜
데이터가 정확하게 전달될 것을 보장하지 않는다.
중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 가능성도 있다.
데이터의 정확하고 순차적인 전달은 그보다 상위 프로토콜인 TCP에서 보장한다.
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