IP Header
: IP 데이터그램(패킷)의 앞부분에서 주소 등 각종 제어 정보를 담고 있는 부분
-> IP 데이터그램 = IP 헤더 + 데이터

IPv4 헤더 각 필드의 역할과 기능
-
Version ( 4bits )
- IP 프로토콜이 버전을 표시함. 현재는 IPv4 사용함.
-
Header Length ( HLEN | 4bits )
- 헤더의 길이
- 32bits (4bytes) 워드 단위로 헤더 길이 표시
- 길이 값 표현
- 최소 5 (4x5=20bytes) 부터 15 (4x15=60bytes, 옵션 포함된 경우) 까지의 값
-
Type Of Service ( ToS | 8bits )
- 요구되는 서비스의 품질을 나타냄
- 처리량, 전달 지연, 신뢰성, 우선순위 등을 지정
-
Total Length ( 16bits )
- IP 헤더 및 데이터를 포함하는 IP 패킷 전체 길이를 Byte 단위로 길이를 표시함.
- 최대값은 65,535 = (2^16 - 1)
- RFC 791 권고 : 68 ~ 65,535byte 범위로써 가능
-
Identification ( 16bits )
- 모든 IP 패킷은 생성될 시에 식별 번호를 부여 받음.
-
Flag ( 3bits )
- 분열의 특성을 나타내는 플래그
- 단편화 금지(Don't Fragment)를 포함
-
Fragment Offset ( 13bits )
- 하나의 패킷이 여러 개의 프래그먼트로 분할되기 전 원래의 데이터그램의 8byte 단위의 위치
- 따라서 분할된 프레그먼트들은 이 분할 위치 값을 이용하여 원래의 패킷으로 재조립됨.
-
Time To Live ( TTL | 8bits )
- 패킷의 수명을 나타냄.
- Looping에 의해 패킷이 영구히 떠도는 것을 방지
-
Protocol ( 8bits )
- IP 계층의 서비스를 사용하는 상위 계층 프로토콜을 정의함.
- TCP(->6), UDP(->17), ICMP(->1), IGMP(->2)와 같은 여러 종류의 상위 프로토콜을 캡슐화할 수 있음.
-
Header Checksum ( 16bits )
- IP 헤더의 오류 검사를 위한 필드
- 체크섬 필드를 '0'으로 하여 계산함.
-
Source IP Address ( 32bits )
- 32bits 길이의 송신처 IP 주소
- IP 주소는 네트워크 필드 및 호스트 필드의 길이에 따라 클래스 a, b, c (공인 및 사설 IP 주소로 나뉨) 주소로 나뉘며, 이 외에도 클래스 d (멀티캐스트 주소)와 클래스 e (예약된 주소)로 나뉨.
-
Destination IP Address ( 32bits)
-
Options
- 패킷의 전송 경로를 포함한 IP 프로토콜의 동작 옵션을 정의하는 필드
IPv4의 한계
- 주소 공간의 고갈
- 최소 지연과 자원의 예약 불가
- 암호화와 인증기능 미제공
IP 주소 클래스란?

- A 클래스 ( 0 ~ 127 )

- 하나의 네트워크가 가질 수 있는 호스트 수가 가장 많은 클래스
- 네트워크 주소는 1.0.0.0 ~ 126.0.0.0 까지로 규정
- ⇒ 네트워크및 브로드캐스트 주소사용으로 2개를 호스트 주소에서 제외해야 함
- B 클래스 ( 128 ~ 191 )

- host 대역이 16bit 이므로 네트워크 당 나올 수 있는 호스트 수는 약 65000개 이므로 중규모 네트워크에 적합
- C 클래스 ( 192 ~ 223 )

- host 대역이 256개이므로 소규모 네트워크 환경에 적합
- D 클래스 ( 224 ~ 239 )
- 멀티캐스트용 대역으로 IP주소에 할당되지 않음
- E 클래스 ( 240 ~ 255 )
- 연구용 예약된 주소 대역으로 IP주소에 할당되지 않음

IPv6 헤더 각 필드의 역할과 기능
-
Version ( 4bits )
- IPv6 버전을 나타냄. IPv6헤더는 항상 6으로 설정됨.
-
Traffic Class ( 8bits)
- 서비스 품질과 관련된 정보를 담고 있음(IPv4의 ToS 필드와 유사)
- 서비스 우선순위와 트래픽 클래스 지정
-
Flow Label ( 20bits )
- IP를 연결지향적 프로토콜로 사용할 수 있게 함
- 같은 플로우 패킷을 식별하기 위한 레이블.
- 실시간 서비스 등 같이 우선권을 주기 위하여 특정 트래픽 flow에 대한 라벨링
-
Payload Length ( 16bits )
- IPv6 헤더와 페이로드(실제 데이터길이)의 길이를 나타냄
- 페이로드 길이를 Byte 단위로 표시
- 필드의 길이가 16bits 이므로 2^16(65,536)bytes까지 표시
- 더 큰 데이터그램을 보내기 위해 Hop-by-Hop 확장헤더의 Jumbo Payload 옵션을 이용
- Jumbo Payload 옵션을 사용할 경우 페이로드 길이 필드는 모드 '0'으로 설정
-
Next Header ( 8bits)
- IPv6 기본 헤더 다음에 따라올 확장 헤더 또는 실제 데이터 종류를 나타냄.
-
Hop Limit ( 8bits )
- 패킷이 호핑할 수 있는 최대 라우터 수를 제한하는 값. (TTL과 같은 역할)
-
Source Address ( 128bits )
-
Destination Address ( 128bits )
-
IPv6 헤더에는 추가적인 확장 헤더들이 포함될 수 있고, 이들은 Next Header 필드를 통해 서로 연결되어있다.
IPv6 주소의 장점
-
확대된 주소 공간
- 주소의 길이가 128bits로 IPv4의 4배
-
단순해진 헤더 포맷
- IPv4의 불필요한 필드를 제거하여 빠른 처리 가능
-
간편해진 주소 설정 기능
- IPv6 프로토콜에 내장된 주소 자동 설정 기능을 이용한 플러그 앤 플레이 설치 가능
-
강화된 보안기능
-
개선된 모바일 IP
IPv4 및 IPv6 주소 비교
| 구분 | IPv4 | IPv6 |
|---|
| 주소 길이 | 32bits | 128bits |
| 표시 방법 | 8bits 씩 4부분으로 10진수로 표시 ex) 202.30.64.22 | 16bits 씩 8부분으로 16진수로 표시 ex)2001:0230:abcd:ffff:0000:0000:ffff:1111 |
| 주소 개수 | 약 43억개 | 약 43억x43억x43억x43억개 |
| 주소 할당 | A,B,C 등 클래스 단위의 비순차적 할당 | 네트워크 규모 및 단말기 수에 따른 순차적 할당 |
| 품질 제어 | 지원 수단 없음 | 등급 및 서비스별로 패킷을 구분할 수 있어 품질 보장 용이 |
| 보안 기능 | IPSec 프로토콜 별도 설치 | 확장기능에서 기본으로 제공 |
| Plug & play | 지원 수단 없음 | Auto Configuration 기능을 이용하여 IP주소 자동 할당 |
| 헤더 크기 | 옵션 필드로 인한 가변 크기 | 40bytes 고정 길이 Header |
| 모바일 IP | 상당히 곤란 | 용이 |
| 웹 캐스팅 | 곤란 | 용이 |
| 주소 유형 | 유니캐스트 멀티캐스트 브로드캐스트 | 유니캐스트 멀티캐스트 애니캐스트 |
IPv4 헤더 vs IPv6 헤더 비교

주소 유형
| 주소 유형 | 내용 | 그림 |
|---|
| Unicast | 1:1 통신 대상 MAC Addr가 아닐 시 drop하기 때문에 다른 pc들의 성능을 저하하지 않음 |  |
| Broadcast | 1:N 통신 보통 유니캐스트 통신 전 네트워크 장비의 주소를 정확히 알기 위해 동일 네트워크에 존재하는 모든 장비와 통신 트래픽 증가, 오버헤드 발생 |  |
| Multicast | 1:그룹 통신 그룹 주소를 이용하여 해당 그룹에 속한 다수의 호스트로 패킷을 전송 라우터나 스위치에서 기능을 제공해야 함 |  |
| Anycast | 1:1 통신(가장 가까운 통신) 유니캐스트와 비슷하지만 다른 점으로는 네트워크에 연결된 수신 가능한 장비 중에서 가장 가까운 한 노드에만 전송함(IPv6 기반으로 동작) |  |