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