하루에 한 문제
UDP 본문
UDP
- User Datagram Protocol의 약자이다.
- 데이터를 데이터 그램 단위로 처리하는 프로토콜.
- 데이터 그램 : 독립적인 관계를 지니는 패킷
- 비연결형 프로토콜로 사전에 연결 설정 없이 데이터를 전달한다.
- 사전에 연결 설정을 하지 않은 데이터 그램 방식을 통해 데이터를 전달하기 때문에 하나의 메시지에서 분할된 각각의 패킷은 서로 다른 경로로 전송될 수 있다.
- 송신측에서 전송한 패킷의 순서와 수신측에 도착한 패킷의 순서가 다를 수 있다. 그러나 서로 다른 경로로 패킷을 처리함에도 불구하고 순서를 부여하거나 재조립하지 않는다.
- 흐름 제어, 혼잡 제어, 오류 제어를 하지 않으므로 손상된 세그먼트에 대한 재전송을 하지 않는다.
- 이로 인해 속도가 빠르며 네트워크 부하가 적다는 장점이 있지만, 신뢰성 있는 데이터 전송을 보장하지 못한다.
- 신뢰성 보다는 연속성이 중요한 서비스(스트리밍)에 자주 사용된다.
- UDP는 RTP(Real Time Protocol), Multicast, DNS 등에서 사용된다
DNS 같은 경우 누군가 DNS 서비스를 요청할 때마다 TCP처럼 Session을 맺고 통신한다면 속도도 느리고, 서버 리소스도 엄청나게 소모될 것이다. 그렇기 때문에 UDP를 사용한다.
재전송을 하면 안되는 서비스가 있다. 대표적으로 RTP이다. 전화를 하고 있다 다고 가정해보자.
"여","보","세","요"라는 4개의 데이터를 전송했는데, "세"를 못받았다고 다시 보내달라고 하면 "여보요세"가 될 것이다.
이럴 때는 그냥 "여보X요"로 전달하는게 나은 상황이다.
또한, Multicast 서비스에서도 UDP를 사용한다.
1:N으로 통신하는 방식에서 한 사람이 데이터를 받지 못했다고 재전송을 요청한다고 가정해보자. 제대로 받은 사람들도 해당 데이터를 다시 받아서 처리해야 한다는 문제점이 발생할 수 있기 때문에 UDP를 사용한다.
참고
github.com/WooVictory/Ready-For-Tech-Interview/blob/master/Network/UDP.md
'CS > 네트워크' 카테고리의 다른 글
로드 밸런싱 (0) | 2021.04.01 |
---|---|
주소창에 naver.com을 치면 일어나는 일 (1) | 2021.03.31 |
TCP ( 흐름 제어, 오류 제어) (0) | 2021.03.31 |
OSI 7계층 & TCP/IP 4계층 (0) | 2021.03.31 |
TCP 3 Way-Handshake & 4 Way-Handshake (0) | 2021.03.30 |
Comments