관리 메뉴

wa_ter_ve

인터넷 프로토콜(IP) - ① 데이터그램 본문

공부/컴퓨터네트워크

인터넷 프로토콜(IP) - ① 데이터그램

수win 2024. 6. 2. 03:07

참조 교재: Wireshark로 배우는 컴퓨터 네트워크


 

🌐 인터넷 프로토콜

- TCP/IP 프로토콜이 사용하는 전송 메커니즘

- 신뢰성이 없고 최선의 노력 전달 서비스 제공

- 데이터그램 방식을 사용하는 패킷 교환망을 위해 설계된 비연결형 프로토콜

 

➡️ 비신뢰성(Unreliable) 

IP 데이터그램이 목적지에 성공적으로 도달한다는 것을 보장X
➡️  비접속형(Connectionless)
전달되는 데이터그램에 대해 상태 정보 유지X
➡️  주소 지정
네트워크 상에 접속해 있는 각각의 노드에 주소를 지정해서 데이터를 전송할 목적지를 지정
➡️  경로 설정
IP의 주요 기능으로서, 목적지 주소를 가지고 패킷을 전송하기 위하여 최적의 경로를 설정해 주는 역할

 


IP데이터그램

: IP 계층의 패킷

- 가변 길이 패킷으로 '헤더 + 데이터' 부분으로 구성

- 헤더: 20 바이트 ~ 60 바이트

- 라우팅(경로지정)과 전달에 필요한 정보 포함

- TCP/IP에서는 헤더를 4 바이트 단위로 표시

 


 #️⃣ 헤더 내의 필드

 

ⓐ 헤더 길이 (HLEN)
- 4 비트로 구성
- 데이터그램 헤더의 전체 길이를 4 바이트 단위로 표시
- 선택사항(Option)을 포함한 헤더의 길이
- 옵션이 추가되지 않은 헤더는 20 바이트(0101)로 표시
- 옵션이 추가되는 경우는 최대 60 바이트

 

ⓑ 서비스 유형 (TOS, Type-Of-Service)
: 데이터그램이 어떻게 처리되어야 하는가를 정의
- 8비트로 구성
- 현재는 차별화 서비스(Differentiated Services) 집합으로 부름
- 6비트는 코드포인트 부필드이고, 2비트는 사용하지 않음

 

  코드포인트 부필드 (오른쪽 3 비트 = 0)
- 왼쪽 3 비트는 서비스 유형에서의 우선순위와 같은 의미
- 우선순위는 혼잡과 같은 문제가 발생하였을 경우 데이터그램의(0 부터 7 사이의) 우선순위를 정의
- 만약 라우터에 혼잡이 발생하여 데이터그램 일부를 폐기해야 한다 면 가장 낮은 우선순위 값을 가진 데이터그램이 가장 먼저 폐기

  코드포인트 부필드 (오른쪽 3 비트 ≠ 0)
- 6비트는 인터넷이나 지역 당국에 의해 부여된 우선순위에 따라 56가지의 서비스를 정의
- 처음 범주는 24개의 서비스를 포함하고 인터넷 당국(IETF)에 의하여 지정
- 두 번째 범주는 16개의 서비스를 포함하고 지역 당국(기관)에 의해 지정
- 세 번째 범주는 16개의 서비스를 포함하고 임시로서 실험적 목적으로 사용
될 수 있음

 

ⓒ 전체 길이 (Total Length)
: 헤더+데이터
- 16비트로 구성
- IP 데이터그램의 전체 길이를 바이트로 표현
- 최대 65,535바이트
데이터 길이 = 전체 길이 - 헤더길이

 

ⓓ 식별 (Identification)
: 단편화를 위하여 사용하는 필드
- 16비트로 구성
- 호스트가 보낸 각 데이터그램을 유일하게 식별
- 단편화가 생기면 플래그 필드와 단편화 옵셋을 사용
- 분할된 패킷은 동일한 식별자를 가짐

 

ⓔ 플래그 (Flags)
: 단편화를 위해 사용
- 3비트로 구성

 

ⓕ 단편화 옵셋 (Fragmentation Offset)
: 단편화된 조각들을 하나의 데이터그램으로 합칠 때,
전체 데이터 그램에서의 상대적인 위치를 표시
- 13비트로 구성

 

ⓖ 수명 (Time-To-Live)
: 데이터그램이 지날 수 있는 '라우터의 수(Hop count)'에 대한 상환을 설정하여 생존 시간을 제한
- 8비트로 구성
- 인터넷을 통해 전달되는 동안 제한된 수명을 가짐
- 두 호스트 사이에 있는 라우터 수의 대략 두 배로 설정
- 방문되는 라우터에 의해 감소, 필드의 값이 0이 되면 데이터그램 폐기

 

ⓗ 프로토콜 (Protocol)
: IP계층의 서비스를 사용하는 상위 계층 프로토콜을 정의
( TCP, UDP, ICMP, IGMP와 같은 여러 종류의 상위 계층 프로토콜을 캡슐화)
- 8비트로 구성

 

ⓘ  검사합 (Checksum)
: 오류 확인을 위한 검사합
- 16비트로 검사

 

ⓙ 발신지 주소 (Source Address)
: 발신지의 IP주소를 정의
- 32비트로 구성
- IP 데이터그램이 발신지에서 목적지까지 전달되는 동안 변해서는 안 되는 값

 

ⓚ 목적지 주소 (Destination Address)
 : 최종 목적지의 IP주소
- 32비트로 구성
- IP 데이터그램이 발신지에서 목적지까지 전달되는 동안 변해서는 안 되는 값

 

 

 


데이터그램

 

#️⃣ IPv6 데이터그램 

: 각 패킷은 필수적인 기본 헤더 + 페이로드로 구성

  기본 헤더

   - 40바이트로 구성

 페이로드

   - 선택적인 확장 헤더와 상위 계층에서 온 데이터로 구성

   - 최대 65,535바이트로 구성

 

 

 

#️⃣IPv6 데이터그램의 기본 헤더

 

 

💠버전(version)
  - 4비트로 구성
  - IP의 버전을 정의 (IPv6의 경우에는 6)

 


💠 트래픽 클래스(traffic class)
  - 8비트로 구성
  - 서로 다른 전달 요구사항을 갖는 페이로드를 구분하는 데 쓰임
  - IPv4의 서비스 클래스 필드를 대신함


💠 흐름 레이블(flow label)
  - 20비트로 구성
  - 특정 데이터의 흐름을 특별하게 제어하기 위해 설계

►  흐름 레이블
: IPv6에서는 흐름 레이블이 IPv6 데이터그램의 형식에 추가되어, IPv6를 연결 지향 프로토콜로 사용할 수 있게 해줌
🔸{ 흐름 레이블의 효과적인 사용을 위한 방법 }      
   - 흐름 레이블은 발신지 호스트에 의해 패킷에 할당   
   - 호스트가 흐름 레이블을 제공하지 않으면 이 필드를 0으로 설정   
   - 만약 라우터가 흐름 레이블을 제공하지 않으면 흐름 레이블을 단순히 무시   
   - 동일 흐름에 속하는 모든 패킷은 동일 자원, 동일 목적지, 동일 우선권, 동일 옵션을 가져야 함

 


💠 페이로드 길이(payload length)
  - 16비트로 구성
  - 기본 헤더를 제외한 IP 데이터그램의 전체 길이를 정의

 


💠 다음 헤더(next header)
  - 8비트로 구성
  - 데이터그램에서 기본 헤더 다음의 헤더를 정의
  - 선택적인 확장 헤더이거나 UDP 또는 TCP와 같은 상위 계층 프로토콜을 위한 헤더 (IPv4에서의 protocol)

 


💠 홉 제한(hop limit)
  - 8비트로 구성
  - IPv4의 TTL 필드와 같은 목적으로 사용

 


💠 발신지 주소(source address)
  - 128비트로 구성
  - 데이터그램의 원래 발신지 주소를 식별하는 인터넷 주소

 


💠 목적지 주소(destination address)
  - 128비트로 구성
  - 데이터그램의 최종 목적지를 식별하는 인터넷 주소

 

 


 

#️⃣ IPv4와 IPv6 헤더 비교

- v6은 헤더의 길이가 고정되어 있기 때문에 헤더 길이 필드가 없음
- 서비스 유형 필드는 없고 트래픽 클래스와 흐름 레이블 필드가 서비스 유형 필드의 기능을 대신
-  총 길이 필드는 IPv6에는 없고 페이로드 길이 필드로 대치
-  '식별, 플래그, 옵셋 필드'는 IPv6 기본 헤더에는 없고, 이 필드는 단편화 확장 헤더에 포함
-  TTL 필드는 IPv6에서 홉 제한(hop limit)으로 불림
-  프로토콜 필드는 다음 헤더 필드로 대치
-  헤더 검사합은 상위 계층 프로토콜에 의해 제공되므로 네트워크 계층에서는 필요 없음
-  IPv4에서 옵션 필드는 IPv6에서는 확장 헤더로 구현