UDP (User Datagram Protocol)은 비연결형 프로토콜이다.
IP 데이터그램을 캡슐화하여 보내는 방법과 연결 설정을 하지 않고 보내는 방법을 제공한다.
흐름제어, 오류제어 또는 손상된 세그먼트 수신에 대한 재전송을 하지 않음.
클라이언트-서버 상황 에 유용
→ 클라이언트는 서버로 짧은 요청을 보내고, 짧은 응답을 기대
만약 요청 또는 응답이 손실되면 클라이언트는 time out이 되고 다시 시도할 수 있음.
이는 코드가 간단하며 TCP에서 요구되는 프로토콜보다 적은 메시지가 요구 됨
DNS
→ IP 주소를 찾을 필요가 있을 때 DNS서버로 호스트 네임을 포함한 UDP 패킷을 보낸다. 이 서버는 호스트의 IP 주소를 포함한 UDP 패킷으로 응답. 사전에 설정이 필요하지 않으며 그 후에 해체도 필요 없음.
실시간 멀티미디어
오디오, 비디오 데이터 패킷으로 전송하는 RTP(Real-Time Transport Protocol)이 등장.
기본기능
→ UDP 패킷의 단일 스트림으로 몇몇 실시간 데이터를 멀티플렉싱.
→ UDP 스트림은 단일 목적지 또는, 다중 목적지로 전송 가능
→ UDP를 사용하기 때문에 전달, 지연, 손실에 대한 보장이 없음.
⇒ 보완하기 위해 패킷 번호를 주어서 한 패킷이 없다면 보간하는 방식을 사용하지만, 느려서 권장하지는 않음.
RTP 데이터 전송
다수의 사용자가 하나의 세션에 참여해 실시간 데이터를 전송하도록 지원
→ 멀티캐스트 전송을 지원하기 위함
RTP 릴레이 지원
릴레이: 데이터 전송 과정에서 송수신 프로세스가 데이터를 직접 전송할 수 없는 상황이 발생했을 때, 데이터를 중개하는 기능
믹서: 여러 송신 프로세스로부터 RTP 데이터그램 스트림을 받아 새로운 데이터그램 스트림 생성
→ 시간 정보 표시 ⇒ 시간 정보에 민감
→ 여러 수신 프로세스에게 전달
트랜슬레이터: RTP 데이터그램을 하나 이상의 출력용 RTP 데이터그램으로 만들어주는 장치
→ 수신자가 수신 능력이 없으면 변환하거나 멀티캐스트 RTP 데이터그램을 복사하여 다수의 유니캐스트로 변환
⇒ 특별한 변환작업
TCP(Transmission Control Protocol)은 연결형 프로토콜로 신뢰성과 순차적인 전달을 위해 고안되었고, 이를 위해 바이트 스트림을 전송한다.