안녕하세요!

FE 개발자 유진주입니다.

CS/네트워크

[컴퓨터네트워크] Chapter4.1 인터넷 프로토콜(IP)

ypearl 2023. 12. 14. 14:34

Chapter4.1 인터넷 프로토콜(IP)

  • IP 서비스 개요
  • IP 데이터그램 구조
  • IP 데이터그램 단편화(Fragmentation)

 

IP 서비스 개요

- 비연결형 서비스

  • 연결 설정 과정 없음
  • 일련의 데이터그램을 독립적으로 전달

 

- 최선형(best-effort) 서비스

  • 전송속도, 지연시간 보장 없음
  • 오류 복구 서비스 미지원

 

- 서브넷 독립적 서비스

  • 다양한 서브넷을 통해 IP 데이터그램 전송 가능
  • 서브넷 주소와 독립적인 IP 주소 사용

 

- Hop-By-Hop 통신 서비스

 

- 계층 구조

 

 

IP 데이터그램 구조

- IP 데이터그램

  • 헤더+데이터그램
  • 헤더: 가변길이(Mandatory: 20바이트 + Option: 0~40 바이트)

- VER

: IP 프로토콜 버전 번호  // 현재: ver4, 차세대: ver6

 

- HLEN

: 헤더 길이(4바이트로 끊어서 표현)   // 예) 20 바이트 => 20 / 4 = 5

 

- Service Type

: 데이터 속성(특징)  // diffserv(0:5), ECN(6:7)

 

- Length(Total Length)

: 전체 데이터그램(헤더+데이터) 길이  // 예) 16비트 = 2^16 - 1

 

- Identifier & Flag + Fragment offset

: Fragment 시에 사용

 

- TTL(Time To Live):

최대로 거칠 수 있는 홉의 수(=생존 시간)

 

- Upper Layer Protocol:

상위 계층(트랜스포트 계층)에 어떤 프로토콜이 있는지  // UDP, TCP

 

- Header Checksum

: UDP의 체크섬과 동일

 

- 출발지 IP 주소

- 도착지 IP 주소

 

- Option: 선택 헤더 (0~40 바이트)

 

 

IP 데이터그램 단편화(Fragmentation)

- 서브넷에 따라 MTU(Maximum Transmission Unit)이 다름
   => 단편화가 필요

- 목적지에 재조립(Re-assembly)

 

- 단편화 필드 설정

  • ID(identification): 동일
  • 플래스(flags): 마지막 데이터그램은 0, 나머지는 1
  • 옵셋(offset): 원래 데이터 필드에서의 상대적 위치(바이트 수 / 8)

*원래 헤더 필드의 일부를 수정해서 만들어 붙임(그대로 X)

→ 이를 변경하는 필드가 위의 3가지

 

 

- 예제

Fragmentation이란?

: 데이터+헤더가 MTU가 되게 나누어서,
목적지에서 재조립할 수 있도록

ID 값과 Flag 값, Offset 값을 설정하는 것

단편화 예제: MTU=1420
단편화 예제: MTU1=1420, MTU2=820