TCP/IP 4계층 모델 | 주요 프로토콜 | 역할 |
---|---|---|
응용 계층(4층) | HTTP, DNS | 애플리케이션에 맞추어 통신한다. |
전송 계층(3층) | TCP, UDP | IP와 애플리케이션을 중개해 데이터를 확실하게 전달한다. |
인터넷 계층(2층) | IP, ICMP, ARP | 네트워크 주소를 기반으로 데이터를 전송한다. |
네트워크 액세스(1층) | 이더넷, wifi | 컴퓨터를 물리적으로 네트워크에 연결해서, 기기 간에 전송이 가능하도록 한다. |
TCP와 UDP는 2계층에서 동작하는 IP
와 4계층에서 동작하는 애플리케이션(http 등)을 중개하는 역할을 한다.
TCP와 UDP는 IP 프로토콜의 한계점(비연결성, 비신뢰성)을 극복하기 위해 사용된다.
TCP | UDP | |
---|---|---|
서비스 타입 | 연결 지향적 프로토콜 | 데이터그램 지향적 프로토콜 |
신뢰성 | 신뢰성이 높음(표적 호스트까지의 전송을 보장한다.) | 신뢰성이 낮다.(전송을 보장되지 않는다.) |
순서 보장 | 패킷들의 순서가 보장 O | 패킷들의 순서가 보장 X |
속도 | 느리다 | 빠르고, 단순하며 더 효율적이다. |
예시 | HTTP | DNS, 비디오 스트리밍 앱 |
✅ TCP는 신뢰성이 높은 대신에 속도가 느리고, UDP는 신뢰성이 낮은 대신에 속도가 빠르며 효율적이다.
데이터의 신뢰성이 필요한 애플리케이션 -> TCP
데이터의 빠른 속도나 실시간 통신이 필요한 애플리케이션 => UDP
3-way handshake
과정이 있다.3-way handshake
같은 준비 과정이 없고, 바로 전송을 시작❓ DNS가 UDP를 사용하는 이유?
1. 빠른 속도
DNS는 신뢰성보다, 속도가 더 중요한 서비스이다.
2. 연결 상태를 유지할 필요가 없다.
DNS 서버는 정보 기록을 최소화하며, 연결 상태를 유지하지 않아 더 많은 클라이언트를 수용할 수 있는 UDP를 사용한다.