UDP (User Datagram Protocol)
UDP 통신은 데이터를 데이터그램 단위로 처리하는 방식으로, 비연결형이며 신뢰성 없는 전송 프로토콜이다.
TCP에 비해 속도가 빠르나 TCP에서는 제공하는 흐름제어, 오류제어, 손상된 세그먼트의 수신에 대한 재전송을 하지 않는다.
TCP와 UDP가 등장하게 된 배경
- IP의 역할은 Host to Host (장치 to 장치)만을 지원한다. 장치에서 장치로 이동은 IP로 해결되지만, 하나의 장비안에서 수많은 프로그램들이 통신을 할 경우에는 IP만으로는 한계가 있다.
- IP에서 오류가 발생한다면 ICMP에서 알려준다. 하지만 ICMP는 알려주기만 할 뿐 대처를 못하기 때문에 IP보다 위에서 처리를 해줘야 한다.
- 1번을 해결하기 위하여 포트 번호가 나오게 됐고, 2번을 해결하기 위해 상위 프로토콜인 TCP와 UDP가 나오게 되었다.
cf) ICMP : 인터넷 제어 메시지 프로토콜로 네트워크 컴퓨터 위에서 돌아가는 운영체제에서 오류 메시지를 전송받는데 주로 쓰임
TCP와 UDP가 어떻게 오류를 해결하는가?
TCP : 데이터의 분실, 중복, 순서 바뀜 등을 자동으로 보전해주어 송수신 데이터의 정확한 전달을 할 수 있게함.
UDP: IP가 제공하는 정도의 수준만을 제공하는 간단한 IP 상위 계층의 프로토콜로 TCP와는 달리 에러가 날 수도 있고, 재전송이나 순서가 뒤바뀔 수도 있어서 어플리케이션에서 처리하는 번거로움이 있다.
UDP를 사용하는 이유
오류가 있을 수 있지만 UDP를 사용하는 것은 데이터의 신속성 때문이다.
그렇기 때문에 이는 주로 신속성이 중요한 실시간 방송이나 온라인 게임에서 많이 사용된다.
DNS (Domain Name Service)에서 UDP를 사용하는 이유
- Request의 양의 작아 UDP Request에 담길 수 있다.
- 3-way handshake를 유지할 필요가 없다. (그로인한 delay를 줄일 수 있음)
- Request에 대한 손실은 Application 계층에서 제어가 가능하다.
- 그러나 크기가 UDP의 제한인 512를 넘을 땐 TCP를 사용해야한다.
UDP Header
Source port : 시작 포트
Destination port : 목적지 포트
Length : 길이
Checksum : 오류 검출 - 중복검사의 한 형태로 오류 정정을 통해 공간이나 시간 속에서 송신된 자료의 무결성을 보호하는 단순한 방법
- 이는 TCP보다 용량이 가볍고 송식 속도도 빠름
- 그러나 확인 응답을 못해 TCP보다 신뢰성이 떨어짐
- UDP는 비연결성, TCP는 연결성으로 정의할 수 있음.
'Computer Science > 네트워크' 카테고리의 다른 글
[네트워크] HTTP와 HTTPS의 동작 과정 (0) | 2021.05.21 |
---|---|
[네트워크] HTTP와 HTTPS (0) | 2021.05.18 |
[네트워크] TCP (흐름 제어 / 혼잡 제어) (0) | 2021.05.17 |
[네트워크] TCP 3-way handshake & 4-way handshake (0) | 2021.05.17 |
[네크워크] HTTP의 GET과 POST 비교 (0) | 2021.05.17 |