
[IPv4 Header 구조]
• Version 필드 (4bit)
- TCP/IP 제품은 IPv4를 사용한다.
• Header Length 필드 (4bit)
- IP 헤드의 길이를 32비트 단위로 나타낸다. 대부분의 IP헤더의 길이는 20바이트이다.
; 5 * 32 = 160bit or 20Byte
• Type-of-Service Flags (8bit)
- 서비스의 우선 순위를 제공한다.
값 | 서비스 | 설명 |
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가 보통 데이터 보다 더 신속한 패킷의 라우트를 요구하는 경우 사용 자신의 입력 에코(echo)를 신속하게 보고 싶어하는 Telnet과 같은 애플리케이션 등에 유용 플래그 0 - 보통 1 - 지연 줄임 |
15 | 보안 최대화 (Maximize Security) | IP가 가장 안전한 경로를 통해 패킷을 라우트할 것을 요구할 수 있다고 한다. 실험용이므로 이 설정을 지원하지 않는 공급 업체가 많다. |
애플리케이션 프로토콜 | 제안된 서비스 형식 값 |
Telnet | 8 |
FTP Control Channel | 8 |
FTP Data Channel | 4 |
Trivial FTP | 8 |
SMTP Commands | 8 |
SMTP Data | 4 |
DNS UDP Query | 8 |
DNS TCP Query | 0 |
DNS Zone Transfer | 4 |
NNTP | 1 |
ICMP Error Messages | 0 |
SNMP | 2 |
• Total Packet Length 필드 (16bit)
- 전체 IP 패킷의 길이를 바이트 단위로 나타낸다.
• Fragment identifier 필드 (16bit)
- 분열이 발생한 경우, 조각을 다시 결합하기 원래의 데이터를 식별하기 위해서 사용한다.
• Fragmentation Flags 필드 (13bit)
- 처음 1bit는 항상 0으로 설정, 나머지 2비트의 용도는 다음과 같다.
; May Fragment : IP 라우터에 의해 분열되는 여부를 나타낸다.
플래그 0 – 분열 가능, 1 – 분열 방지
; More Fragments : 원래 데이터의 분열된 조각이 더 있는지 여부 판단한다.
플래그 0 – 마지막 조각, 기본값 1 – 조각이 더 있음
• Fragmentation Offset 필드 (13bit)
- 8바이트 오프셋으로 조각에 저장된 원래 데이터의 바이트 범위를 나타낸다.

• Time-to-live 필드 (8bit)
- 데이터를 전달할 수 없는 것으로 판단되어 소멸되기 이전에 데이터가 이동할 수 있는 단계의 수를 나타낸다.
- Time-to-Live 필드는 1에서 255사이의 값을 지정하며 라우터들은 패킷을 전달 할 때마다 이 값을 하나씩 감소시킨다.
• Protocol Identifier 필드 (8bit)
- 상위 계층 프로토콜
; 1 – ICMP, 2 – IGMP, 6 – TCP, 17 – UDP
• Header Checksum 필드 (16bit)
- IP 헤더의 체크섬을 저장, 라우터를 지나갈 때 마다 재 계산을 하기 때문에 속도가 떨어진다.
• Source IP Address 필드 (32bit)
- 출발지 IP 주소
• Destination IP Address 필드 (32bit)
- 목적지 IP 주소
• Options(선택적) 필드 (가변적)
- Type-of-Service 플래그처럼 특별한 처리 옵션을 추가로 정의할 수 있다.
⭐발표자 : 최태연님
[IPv4 Header 구조]
• Version 필드 (4bit)
- TCP/IP 제품은 IPv4를 사용한다.
• Header Length 필드 (4bit)
- IP 헤드의 길이를 32비트 단위로 나타낸다. 대부분의 IP헤더의 길이는 20바이트이다.
; 5 * 32 = 160bit or 20Byte
• Type-of-Service Flags (8bit)
- 서비스의 우선 순위를 제공한다.
값
서비스
설명
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가 보통 데이터 보다 더 신속한 패킷의 라우트를 요구하는 경우 사용
자신의 입력 에코(echo)를 신속하게 보고 싶어하는 Telnet과 같은 애플리케이션 등에 유용
플래그 0 - 보통 1 - 지연 줄임
15
보안 최대화
(Maximize Security)
IP가 가장 안전한 경로를 통해 패킷을 라우트할 것을 요구할 수 있다고 한다.
실험용이므로 이 설정을 지원하지 않는 공급 업체가 많다.
애플리케이션 프로토콜
제안된 서비스 형식 값
Telnet
8
FTP Control Channel
8
FTP Data Channel
4
Trivial FTP
8
SMTP Commands
8
SMTP Data
4
DNS UDP Query
8
DNS TCP Query
0
DNS Zone Transfer
4
NNTP
1
ICMP Error Messages
0
SNMP
2
• Total Packet Length 필드 (16bit)
- 전체 IP 패킷의 길이를 바이트 단위로 나타낸다.
• Fragment identifier 필드 (16bit)
- 분열이 발생한 경우, 조각을 다시 결합하기 원래의 데이터를 식별하기 위해서 사용한다.
• Fragmentation Flags 필드 (13bit)
- 처음 1bit는 항상 0으로 설정, 나머지 2비트의 용도는 다음과 같다.
; May Fragment : IP 라우터에 의해 분열되는 여부를 나타낸다.
플래그 0 – 분열 가능, 1 – 분열 방지
; More Fragments : 원래 데이터의 분열된 조각이 더 있는지 여부 판단한다.
플래그 0 – 마지막 조각, 기본값 1 – 조각이 더 있음
• Fragmentation Offset 필드 (13bit)
- 8바이트 오프셋으로 조각에 저장된 원래 데이터의 바이트 범위를 나타낸다.
• Time-to-live 필드 (8bit)
- 데이터를 전달할 수 없는 것으로 판단되어 소멸되기 이전에 데이터가 이동할 수 있는 단계의 수를 나타낸다.
- Time-to-Live 필드는 1에서 255사이의 값을 지정하며 라우터들은 패킷을 전달 할 때마다 이 값을 하나씩 감소시킨다.
• Protocol Identifier 필드 (8bit)
- 상위 계층 프로토콜
; 1 – ICMP, 2 – IGMP, 6 – TCP, 17 – UDP
• Header Checksum 필드 (16bit)
- IP 헤더의 체크섬을 저장, 라우터를 지나갈 때 마다 재 계산을 하기 때문에 속도가 떨어진다.
• Source IP Address 필드 (32bit)
- 출발지 IP 주소
• Destination IP Address 필드 (32bit)
- 목적지 IP 주소
• Options(선택적) 필드 (가변적)
- Type-of-Service 플래그처럼 특별한 처리 옵션을 추가로 정의할 수 있다.
⭐발표자 : 최태연님