UDP (User Datagram Protocol)
- 데이터를 데이터그램 단위로 처리하는 프로토콜
- 비연결 지향적인 프로토콜로 연결 설정 및 해제 과정이 없다.
- 전송 중 손실된 패킷을 재전송하지 않으므로 신뢰성이 낮다.
- 신뢰성을 보장하지 않기 때문에, 전송 속도가 빠르다.
TCP와 UDP가 생긴 이유
IP의 한계
IP는 인터넷에서 데이터를 패킷 단위로 전송하는 기본 프로토콜이지만, IP는 비연결형 프로토콜로서 데이터의 신뢰성이 낮고, 데이터의 순서를 보장하지 않는다. 또한, IP는 데이터 전송에 대한 흐름 제어나 혼잡 제어와 같은 기능을 제공하지 않고, 오류가 발생하면 ICMP 에서 알려 주기만하고 처리해주지 않는다.
TCP와 UDP가 오류를 해결하는 법
- TCP : 데이터의 분실, 중복, 순서의 뒤바낌 등을 자동으로 보정하여 송수신 데이터의 정확한 전달을 할 수 있도록 한다.
- UDP : IP 프로토콜 위에서 동작하는 비연결형 프로토콜로서 IP에 몇 가지 부가적인 기능을 더한 수준이다. 그래서 TCP와는 다르게 에러가 날 수 있고, 순서가 보장되지도 않으며, 패킷이 손실 될 수도 있다.
UDP 를 사용하는 이유
- 데이터의 신속성 : 데이터 처리가 TCP보다 빠르다.
- 때문에 실시간 스트리밍, DNS, 게임 서버, IoT 등 빠른 응답과 연속성이 중요한 경우 사용된다.
DNS에서 UDP를 사용하는 이유
DNS(Domain Name System) : 도메인 이름을 IP 주소로 해석하기 위한 프로토콜
- 작은 크기의 요청과 응답 : UDP는 512bytes를 넘어가지 않는 패킷만 전송이 가능하고 오버헤드가 없어서 속도가 빠른데 DNS는 매우 작은 사이즈의 데이터 패킷을 전송하므로 UDP가 유리하다.
- 빠른 응답 시간 : DNS는 빠른 응답이 필요한데 UDP는 연결 설정 단계 없이 직접 데이터를 전송하므로 빠른 응답 시간을 제공할 수 있다.
- 신뢰성 보다는 가용성 : DNS는 신뢰성이나 데이터의 완전성보다는 가용성이 중요한 서비스이다. 즉, 일시적인 데이터 손실은 크게 문제가 되지 않는다. 따라서 UDP가 더 적합하다.
+ 데이터가 512bytes를 넘어가거나 DNS 서버 간에 요청을 주고 받을 때의 경우 TCP를 사용하기도 한다.
UDP 구조
- Source port : 시작 포트
- Destination port : 도착지 포트
- Length : 길이
- Checksum : 오류 검출 → 중복 검사의 한 형태로, 오류 정정을 통해 공간이나 시간 속에서 송신된 자료의 무결성을 보호하는 단순한 방
'Computer Science > Network' 카테고리의 다른 글
[Network] HTTP & HTTPS (0) | 2023.07.07 |
---|---|
[Network] 대칭키 & 비대칭키 (0) | 2023.07.07 |
[Network] TCP/IP 흐름제어 & 혼잡제어 (0) | 2023.06.30 |
[Network] TCP 3 & 4 way handshake (0) | 2023.06.30 |
[Network] OSI 7 계층 (0) | 2023.06.23 |