[그림 1: IP Header ]
- Version : IP Protocol 버전. IPv4, IPv6가 유요하다. 이 다이어그램은 IPv4 버전 구조를 나타낸다.
- Header Length (IHL): IP 헤더의 길이를 32비트 단위로 나누어 나타내는데 대부분의 IP 헤더의 길이는 20바이트 이다. 필드 값은 거의 항상 5이다. (5 * 32 = 160bit or 20byte)
- Type-of-Service : 서비스의 우선 순위를 제공한다.
값 |
서비스 |
설명 |
0 |
보통 (normal) |
보통 데이터로 취급, 대부분의 IP 데이터는 이 분류에 속한다 |
1 |
비용최소화 (Minimize Cost) |
IP가 가장 비용이 적게 드는 경로를 통해 패킷을 라우트 할 것을 요구하는 경우에 사용. 플래그 0 - 보통, 1 - 저비용 |
2 |
신뢰성 최대화 (Maximize Reliability) |
IP가 가장 신뢰성 있는 네트워크를 통해 패킷을 라우트 할 것을 요구하는 경우 사용. 플래그 0 - 보통, 1 - 높은 신뢰성 |
4 |
처리량 최대화 (Maximize Throughput) |
IP가 보통 데이터 패킷을 더 많은 처리를 하면서 라우트 할 것을 요구하는 경우 사용. 플래그 0 - 보통, 1 - 높은 처리량 |
8 |
자연 최소화 (Minimize Delay) |
IP가 보통 데이터보다 더 신속한 패킷의 라우트를 요구하는 경우 사용. 자신의 입력 에코를 신속하게 보고 싶어하는 Telnet과 같은 애플리케이션 등에 유용. 플래그 0 - 보통, 1- 지연 줄임 |
15 |
보안 최대화 (Maximize Security) |
IP가 가장 안전한 경로를 통해 패킷을 라우트 할 것을 요구할 수 있음. |
- Total Length : 전체 IP 패킷의 길이를 바이트 단위로 나타낸다.
- Identifier : 분열이 발생할 경우, 조각을 다시 결합하고 원래의 데이터를 식별하기 위해 사용한다.
- Flags : 처음 1bit는 항상 0으로 설정, 나머지 2비트의 용도는 다음과 같다.
- May Fragment : IP 라우터에 의해 분열되는 여부를 나타낸다. 플래그 0 - 분열 가능, 1 - 분열 방지
- More Fragments : 원래 데이터의 분열된 조각이 더 있는지 여부 판단. 플래그 0 - 마지막 조각, 기본 값 1- 조각 더있음
- Fragment Offset : 8바이트 offset으로 조각에 저장된 원래 데이터의 바이트 범위를 나타낸다.
- Time-to-live : 데이터를 전달할 수 없는 것으로 판단되어 소멸되기 이전에 데이터가 이동할 수 있는 단계의 수를 나타낸다. Time-to-Live 필드는 1에서 255 사이의 값을 지정하며 라우터들을 패킷을 전달 할 때마다 이값을 감소.
- Protocol : 상위 계층 프로토콜. 1 - ICMP, 2 - IGMP, 6 - TCP, 17 - UDP
- Header Checksum : IP 헤더의 체크섬을 저장, 라우터를 지나갈 때마다 재 계산을 하기 때문에 속도가 떨어짐.
- Source IP Address : 출발지 IP 주소
- Destination IP Address : 목적지 IP 주소
- Options : Type-of-Service 처럼 특별한 처리 옵션을 추가로 정의 가능.