[CS] TCP/IP 4계층 (1)

최지나·2023년 10월 30일
2

CS

목록 보기
14/55

TCP/IP 4계층 개요

TCP/IP 4게층이란?
장치들이 인터넷 상에서 데이터를 주고받을 때 쓰는 독립적인 프로토콜들의 집합으로 각 계층은 독립적으로 동작

1. TCP/IP 4계층

응용 (= 어플리케이션) 계층

  • HTTP, SMTP, SSH, FTP . 웹 서비스, 이메일 등 서비스를 실질적으로 client에게 제공하는 층

전송 (Transport) 계층

  • TCP, UDP
  • 애플리케이션 계층에서 받은 메시지를 기반으로 세그먼트 (TCP) 또는 데이터그램 (UDP)로 데이터를 쪼개고, 데이터가 오류 없이 순서대로 전달되도록 도움을 주는 계층

인터넷 계층

  • IP, ICMP, ARP
  • 한 노드에서 다른 노드로 전송 계층에서 받은 세그먼트 또는 데이터그램을 패킷화 하여 목적지로 전송

링크 (=네트워크 접근) 계층

  • 전선, 광섬유, 무선 등으로 데이터가 네트워크를 통해 물리적으로 전송되는 방식을 정의

2. 캡슐화와 비캡슐화

캡슐화 = encapsulation, 비캡슐화 = decapsulation
캡슐화란 송신자가 수신자에게 데이터를 보낼 때, 데이터가 각 계층을 지나며, 각 계층들의 특징이 담긴 헤더 (또는 트레일러)들이 붙여지는 과정을 의미

  • ex) 전송 계층에서는 TCP 헤더가 추가되고, 네트워크 계층에서는 IP 헤더가 추가됨
  • 비캡슐화는 캡슐화의 역과정. 수신자 측에서는 캡슐화된 데이터에서 헤더를 역순으로 제거하면서 애플리케이션 계층까지 도달

3. PDU

Protocol Data Unit

  • TCP/IP 4계층 모델에서 각 계층의 데이터 단위를 의미
애플리케이션 계층메시지
전송 계층세그먼트 (TCP), 다이어그램 (UDP)
인터넷 계층패킷
링크 계층프레임(데이터 링크 계층), 비트(물리 계층)
  • 패킷: 세그먼트에 SP (송신자의 32비트 IP 주소)와 DP (수신자의 32비트 IP 주소)가 포함된 IP 헤더가 붙은 형태의 조각
  • 프레임: MAC 주소 헤더와 CRC/체크섬 트레일러가 붙은 조각

CRC/체크섬 트레일러

  • 데이터의 오류 감지를 위한 수학적 함수가 적용된 값들이 있는 필드
  • 링크의 오류로 인한 데이터 손상을 감지하는 역할
  • CRC와 체크섬 2가지의 과정을 기반으로 데이터 전송 오류 및 데이터 무결성 방지
    • CRC: CRC-1, CRC-16 등의 알고리즘으로 나온 값을 통해 데이터 전송 오류 감지를 수행
    • 체크섬: MD5, SHA-256 등의 알고리즘으로 나온 값을 통해 데이터 무결성을 방지

4. OSI 7 계층 ⭐

TCP/IP 4계층은 OSI 7계층 모델로 설명된다

  • 애플리케이션 계층을 3단계로 쪼개고, 링크 계층을 데이터 링크 계층, 물리 계층으로 나눠서 표현하는 것이 다름. 인터넷 계층을 네트워크 계층이라고 부른다는 점도 다르다.

MTU와 MSS와 PMTUD

1. MTU

MTU = Maximum Transmission Unit

  • 네트워크 통신 할 때 가능한 가장 큰 PDU의 크기 (cf 터널의 높이 제한을 생각)
  • 네트워크에 연결된 장치가 받아들일 수 있는 최대 데이터패킷의 크기. 이 크기를 기준으로 데이터가 쪼개져서 패킷화된다.
  • 즉, 패킷이 쪼개질 때 MTU 를 기반으로 쪼개진다.
  • 네트워크 경로 상에 있는 아무 장치의 MTU보다 패킷이 크면 그 패킷은 분할될 수도 있다
  • 통신을 하는 양쪽 끝은 각 장치의 MTU 뿐만 아니라 중간의 모든 라우터, 스위치, 서버를 고려해야 한다.

2. 패킷이 분할되지 않는 경우

네트워크 경로 상에 있는 어떠한 라우터나 장치의 MTU 초과 시 패킷을 분할하는 대신 패킷을 아예 전달하지 않을 수도 있다

IPv6

  • 아예 분할을 하지 않음

IPv4

  • 헤더에 flags라는 필드가 있는데 여기서 bit가 1이 되면 'don't fragment' 플래그가 활성화되면서 이 경우 패킷 분할이 불가능하다

3. MTU와 MSS

MTU는 IP헤더와 TCP 헤더의 크기까지 합치지만 MSS(Maximum Segent Size)는 데이터의 크기 (payload의 크기)만을 가리킴

  • 일반적으로 MTU는 1500 바이트이며 MSS는 1460바이트이다. 따라서 네트워크를 통해 데이터를 보낼 때 MTU가 1500이더라도 데이터는 보통 1460바이트 이하의 크기로 보내야 전달이 된다
  • 그림에서 이더넷 헤더와 FCS(Frame Check Sequence)를 포함한 것을 이더넷 프레임이라고 하고 FCS는 데이터의 에러 검출을 돕기 위해 삽입되는 필드로 CRC에 의해 생성되는 값
    • 이더넷 프레임의 크기는 일반적으로 1518바이트

4. PMTUD

Path MTU Discovery

  • 패킷의 최대 전송 단위 (MTU)를 결정하는 프로세스. 최적의 MTU를 선정하는 과정
  • 수신자와 송신자의 경로 상에서 장치가 패킷을 누락한 경우 테스트 패킷의 크기를 낮추면서 MTU에 맞게끔 반복해서 보내는 과정

REF

profile
의견 나누는 것을 좋아합니다 ლ(・ヮ・ლ)

0개의 댓글