Internet 프로토콜의 가장 기본인 IPv4과  IPv6의 패킷 형식을 알아보겠다.


1. IPv4 패킷 구조



0

4

8

16

31

VER

4 bits

HLEN

4 bits

Type of Service

8 bits

Total length

16 bits

Identification

16 bits

Flags

3 bits

Fragmentation offset

13 bits

Time-to-live

8 bits

Protocol

8 bits

Header checksum

16 bits

Source IP address

Destination IP address

Options + padding

(0 ~ 40 bits)


그림 1.1 IPv4 헤더 구조

(1) 전체구조

VER (버전 숫자)

IP 프코토콜의 버전을 정의한다. IPv4는 4의 값을 가진다.


HLEN (헤더 길이)

패킷 헤더의 전체 길이를 4 바이트 단위로 표시한다.

헤더의 전체 바이트 수는 헤더 길이에 4를 곱하여 구한다.


Type of service (서비스 유형)

서비스 품질에 따라 패킷의 등급을 구분한다. 높은 값을 우선처리하게 된다.

이 필드는 IETF에서 DiffServ (differentiated services)로 재정의하였다.


Total length (전체 길이)

이 필드는 IP 패킷의 전체 바이트 수로 헤더와 페이로드 길이의 합이다.

(2) 부분 상태

Identification (식별자)

패킷을 전송한 근원지 호스트를 나타낸다.

모든 단편에 동일한 값이 지정된다.


Flags (플래그 필드)

 비트

 의미 

  비트 (예약된 비트)

 사용되지 않는다.

  번째 비트 (D 비트)

 단편화 금지(do not fragment) 나타낸다.

 0 - 단편화 가능

 1 - 단편화 불가능

  번째 비트 (M 비트)

 추가 단편화 비트(more fragment bit)이다.

 1 - 번째 단편 또는 중간 단편이다.

 0 - 마지막 단편이거나 오직 하나의 단편이다.


Fragmentation offset (단편 옵셋)

전체 패킷에서 해당 단편의 옵셋을 나타내며 8바이트 단위로 표기한다. 즉, 단편의 옵셋이 100이면 800바이트에서 단편이 시작된다.

(3) 품질 제어

Time to live (수명)

패킷이 방문할 최대 라우터(hop)의 수를 나타낸다.

근원지 호스트에서 이 값을 생성하며, 각 라우터는 이 값을 1씩 감소하고 이 값이 0이되면 라우터는 패킷을 폐기한다.


Protocol (프로토콜)

IP층의 서비스를 사용하는 상위 계층 프로토콜에 부여된 번호.

Keyword

Protocol

References

0

HOPOPT

IPv6 Hop-by-Hop Option

RFC 2460

1

ICMP

Internet Control Message Protocol

RFC 792

2

IGMP

Internet Group Management Protocol

RFC 1112

3

GGP

Gateway-to-Gateway Protocol

RFC 823

4

IP-in-IP

IP in IP (encapsulation)

RFC 2003

5

ST

Internet Stream Protocol

RFC 1190, RFC 1819

6

TCP

Transmission Control Protocol

RFC 793

7

CBT

Core-based trees

RFC 2189

8

EGP

Exterior Gateway Protocol

RFC 888

9

IGP

Interior Gateway Protocol

 

10

BBN-RCC-MON

BBN RCC Monitoring

 

11

NVP-II

Network Voice Protocol

RFC 741

12

PUP

Xerox PUP

 

13

ARGUS

ARGUS

 

14

EMCON

EMCON

 

15

XNET

Cross Net Debugger

IEN 158

16

CHAOS

Chaos

 

17

UDP

User Datagram Protocol

RFC 768

41

IPv6

IPv6 Encapsulation

RFC 2473

43

IPv6-Route

Routing Header for IPv6

RFC 2460

44

IPv6-Frag

Fragment Header for IPv6

RFC 2460

50

ESP

Encapsulating Security Payload

RFC 4303

51

AH

Authentication Header

 RFC 4302

58

IPv6-ICMP

ICMP for IPv6

RFC 4443, RFC 4884

59

IPv6-NoNxt

No Next Header for IPv6

RFC 2460

60

IPv6-Opts

Destination Options for IPv6

RFC 2460

89

OSPF

Open Shortest Path First

RFC 1583

132

SCTP

Stream Control Transmission Protocol

RFC 2960 RFC 4960

135

Mobility Header

Mobility Extension Header for IPv6

RFC 6275


Header checksum (헤더 검사합)

IP는 비신뢰성 프로토콜로 오류제어를 지원하지 않는다. 

하지만, 최소한 IP가 추가한 헤더에 대한 검사는 지원해야 한다.

데이터가 아닌 오직 헤더 부분에 대한 것만 검사한다.

또한 패킷이 라우팅 될 때 TTL 값이 감소하고 단편화 될 때는 식별, 플래그, 단편 옵셋의 값이 변경되기 때문에 검사합은 각각의 라우터에서 다시 계산된다.

(4) 주소

발신지와 목적지 주소

IPv4의 32비트 길이의 주소를 정의한다.

2. IPv6 패킷 구조

그림 2.1. IPv6 패킷 구조

그림 2.2. 기본 헤더


(1) 기본 헤더 형식

VER (버전 숫자)

IP 프코토콜의 버전을 정의한다. IPv6는 6의 값을 가진다.


Traffic class (트래픽 분류)

8비트 트래픽 분류 필드는 IPv4의 서비스 유형 필드와 유사하다.

IP 패킷 마다 서로 다른 서비스 요구사항을 구분하기 위함.


Flow label (흐름 레이블)

20비트 필드로 데이터의 특정한 흐름을 위한 특별한 처리를 제공한다.

IP는 원래 비연결형 프로토콜로 설계되었으나 IP 프로토콜을 연결-지향형으로 사용하려는 경향이 있다.

MPLS 기술은 레이블 필드를 이용하여 IPv4 패킷을 MPLS 헤더에 캡슐화하였다.

IPv6를 연결-지향형 프로토콜로 사용할 수 있게 한다. 


Payload length (페이로드 길이)

2바이트의 페이로드 길이 필드는 기본 헤더를 제외한 IP 패킷의 길이를 정의한다.

페이로드부의 길이는 (확장헤더 + 상위계층 데이터) < 216 (65536) 까지 가능하다.

IPv4에서는 헤더 길이 필드와 전체 길이 필드의 2개의 필드가 있지만,

IPv6는 기본 헤더의 길이가 40바이트의 고정되어 있어 페이로드의 길이만 정의하면 된다.

 

다음 헤더 (Next header)

기본헤더 다음에 위치하는 확장 헤더의 종류를 표시하며 IPv4의 프로토콜 번호와 같은 역할을 한다.

 

Hop limit (홉 제한)

IPv4 TTL 필드와 같은 목적으로 사용된다.

 

근원지 주소와 목적지 주소

주소 필드는 128비트 (16바이트) 인터넷 주소이다.

16진수 콜론 표기법(colon hexadecimal notation)이 사용되어 주소를 8부분으로 나타낸다.

영역 앞에 있는 0은 생략 가능하고 연속되는 영역이 0으로만 구성되면 0을 모두 제거하고 더블콜론으로 대체하는 0 압축(zero compression)을 사용한다.

 

페이로드

IPv6 패킷의 페이로드는 아래 그램 2.3과 같다.

 

IPv4 헤더에 있던 선택사항을 IPv6의 확장 헤더로 설계하였다.

하나 이상의 확장 헤더(선택사항) 다른 프로토콜(TCP, UDP )에서 데이터의 조합이다.

각각의 확장 헤더는 2개의 필수적인 필드를 가지며, 특정 선택사항에 관련된 정보가 뒤에 따라온다.

각각의 다음 헤더 필드 값은 다음 헤더의 종류(매 홉 선택사항, 목적지 라우팅 선택사항, …)를 결정한다.

마지막 다음 헤더 필드는 전송할 프로토콜(TCP, UDP, …)을 정의한다.

(2) 기본 헤더 형식


매 홉 선택사항 (Hop-by-hop)

데이터그램이 거쳐 가는 모든 라우터에 소스 정보를 전달해야 할 때 사용된다.

전달할 소스 정보는 관리, 디버깅, 제어 기능 등의 정보가 될 수 있다.

매 홉 선택사항의 세 가지 종류

패드 1

1바이트 길이. 정렬 목적.

선택사항이 정확하게 한 바이트에 의해 요구사항이 충족되지 못하면, 패드 1이 추가.

패드 N

패드 1과 유사.

정렬 목적으로 2바이트 이상이 필요할 때 사용된다.

점보 페이로드

IP 패킷의 페이로드의 길이는 최대 65,535바이트이다.

이보다 긴 페이로드를 정의할 때 점보 페이로드가 사용된다.

 

목적지 선택사항  (destination option)

근원지가 정보를 목적지에만 전달할 필요가 있을 때 사용한다.

 

근원지 경로지정 (source routing)

IPv4의 엄격한 근원지 경로와 유연한 근원지 경로 선택사항의 개념을 혼합한 것이다.

 

단편화  (fragmentation)

IPv4와 동일한 개념이나 단편화가 발생하는 곳이 다르다.

 

단편화가 발생하는 곳

단편화가 발생하는 조건

IPv4

근원지나 라우터

패킷이 이동하는 네트워크의 MTU보다 패킷의 크기가 더 클 경우

IPv6

원 근원지만 가능.

경로상 지원 가능한 최소 MTU를 찾는 경로 MTU 발견 기술을 사용하여 단편화를 한다.

(이 기술을 사용하지 못하면 MTU의 최소 크기는 1280바이트 이하.)

 

인증 (authentication)

발신지 인증 - 메시지 송신자를 증명하는 것으로 메시지가 진짜 송신자로부터 온 것을 확인.

데이터 무결성 보장 데이터가 전송 중 변경되지 않은 것을 보장.

 

암호화된 보안 페이로드 (ESP, encapsulated security payload)

인증 확장헤더가 제공하는 발신지 인증과 데이터 무결성 보장에 더해 기밀성과 도청에 대한 방비를 제공한다.

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'Communication > Internet' 카테고리의 다른 글

IPv4, IPv6 packet structure  (1) 2017.03.12
  1. 2017.03.22 17:49

    비밀댓글입니다

+ Recent posts

티스토리 툴바