1. UDP란?
앞서 TCP의 특징에 대해서 살펴보았다. TCP는 신뢰성에 기반을 둔 트렌스포트계층 프로토콜 이라면 UDP는 빠른 데이터 전송을 목적으로 하는 프로토콜이다.
TCP (Transmission Control Protocol) 3-way handshake, 4-way handshake
UDP의 특징
- 비연결형 서비스로 데이터그램 방식을 제공
- 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다.
- UDP 헤더의 CheckSum 필드를 통해 최소한의 오류만 검출
- 신뢰성이 낮다
- TCP보다 속도가 빠르다
UDP의 데이터 전송과정을 살펴보면 1, 2, 3 순서대로 데이터를 전송했다고 할 때 네트워크의 사용량에 따라 어떤 데이터그램은 늦게 도착할 수도 있고 어떤 데이터 그램은 빠르게 도착할 수 있다.
즉 UDP의 데이터 전송과정은 연결과정 자체를 갖지 않기 때문에 데이터의 순서를 보장하지 않는다.
2. UDP 헤더
- Source Port : 송신지의 포트번호
- Destination Port : 목적지의 포트번호
- Total Length : 헤더를 포함한 전체 데이터그램의 크기를 의미하는 필드
- Checksum : 데이터그램의 오류를 확인하기 위한 필드 (최소한의 오류만 검출)
이처럼 UDP는 속도를 떨어뜨리는 요소를 없애기 위해 TCP처럼 각종 흐름제어, 오류제어, 혼잡제어를 하지 않으며 매우 간단한 헤더 구조를 가지고 있다.
3. JAVA DatagramSocket 클래스를 활용한 UDP 통신
JAVA 에서는 UDP 통신을 하기위한 DatagramSocket 클래스를 제공한다.
이를 사용하여 간단하게 UDP 통신 프로그래밍을 하였는데 아래 포스팅 글에서 확인할 수 있다.
'네트워크' 카테고리의 다른 글
TCP (Transmission Control Protocol) 3-way handshake, 4-way handshake (0) | 2021.12.30 |
---|---|
네트워크의 공통 언어 TCP/IP (0) | 2021.12.30 |