IPv4
IPv6
비연결형 서비스를 제공. ‘헤더’ CheckSum만 제공.
패킷을 분할/병합하는 기능을 수행, 상위 계층에서 패킷 분실 오류 복구해야함
IP Datagram Header Format
IPv4 : 0100 IPv6 : 0110
TCP/IP 제품은 IPv4를 사용한다.
IP 헤드의 길이를 ‘4바이트’ 단위로 나타낸다. 대부분의 IP 헤더의 길이는 20바이트이므로 필드값은 거의 항상 5이다. (5*4byte = 20byte)
서비스의 우선순위를 제공. 음성 -> 영상 -> Text//IPv4에는 사용X?
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|
IP 우선 순위 | 지연 최소화 | 처리량 최대화 | 신뢰성 최대화 | 비용최소화 | 0이여야함 |
전체 IP 패킷(헤더+데이터)의 길이를 ‘바이트’ 단위로 나타낸다.
분열이 발생한 경우, 조각을 재결합하기 위한 필드로 패킷을 식별하는 번호로 동일한 데이터그램에 속하면 일련번호를 공유한다.
패킷이 Fragment되어 있는지 아닌지 단서 제공하는 역할
첫 번째 비트는 항상 0 : 예약되어 있는 비트
두 번째 비트는 D : Do not fragment
IP 라우터에 의해 분열되는 여부를 나타냄
0 - 분열 가능, 1 - 분열 방지
세 번째 비트는 M : More fragment
원래 데이터의 분열된 조각이 더 있는지 판단
0 – 마지막 조각, 1 – 조각이 더 있음
패킷 재조립시 분할된 패킷간의 순서에 대한 정보.
전체 데이터에서 분할된 패킷의 상대 위치를 8byte 단위로 나타낸다.
정의된 값에 8을 곱한 값이 패킷의 삽입 위치가 된다.
패킷이 경유할 수 있는 최대 Hop 수를 나타냄. 라우터를 통과하면 –1, 0이 되면 패킷은 폐기. 이때 송신측으로 ICMP 메시지가 전달됨.
TTL값은 OS마다 다름(윈도우 : 128, 리눅스 : 64, 기타 OS : 255)
목적지가 아무리 멀어도 보통 값이 30이면 도달할수 있다. (패킷의 무한루프 방지)
IP Datagram의 몸체에 저장된 상위 계층 프로토콜을 나타냄.
ICMP : 0x01, TCP : 0x06, UDP : 0x11
IP패킷의 헤더가 정상적인지 검사하는데 사용. 라우터마다 검사하기 때문에 속도가 느림. 목적지 호스트는 체크섬을 확인하여 결과가 다르다면 패킷을 버린다.
특별히 처리 옵션이 추가로 들어갈 수 있는 필드. IHL은 4byte 단위로 헤더를 표현하기 때문에 4byte로 나뉘어질수 있도록 Padding으로 처리