UDP
UDP (User Datagram Protocol)는 비연결형, 속도 우선의 전송 계층 프로토콜로, 네트워크상에서 데이터를 빠르게 전송하기 위해서 설계됌.
특징
- 비연결형 (Connectionless)
- UDP는 송신자와 수신자가 데이터를 교환하기 전에 연결 설정 과정이 없다. 이로인해 전송 지연이 적고 속도가 빠름.
- 신뢰성 없음 (Unreliable)
- UDP는 데이터의 전달 여부를 확인하지 않는다.
- 데이터의 신뢰성을 보장해야 하는 경우 애플리케이션 레벨에서 이를 별도로 처리해야 함.
- 패킷 단위 전송
- UDP는 데이터를 데이터그램 단위로 전송한다.
- 각 데이터그램은 독립적으로 처리되며, 패킷의 크기가 IP 패킷의 최대 크기를 초과하면 전송이 불가능함.
- 빠른 속도
- 신뢰성이나 순서 보장을 위한 부가적인 작업을 수행하지 않으므로 전송속도가 매우 빠름.
- 실시간 전송이 필요한 응용 프로그램에서 자주 사용된다.
- 멀티캐스트와 브로드캐스트 지원
- UDP는 멀티캐스트와 브로드캐스트를 지원하여 여러 대상에게 데이터를 전송할 수 있다.
- 스트리밍, 게임 등과 같은 응용 프로그램에서 유용하다.
- 간단한 헤더
- UDP 헤더는 고정 길이(8바이트)이며, TCP에 비해 단순하다. 헤더 필드가 적어 처리 오버헤드가 낮다.
UDP 헤더 구조
UDP 헤더는 고정 크기 8바이트(64비트)이며, 다음 4개의 필드로 구성된다.
- Source Port (16비트)
- 송신자의 포트 번호를 나타낸다. 응답이 필요하지 않으면 이 필드를 0으로 설정할 수 있다.
- Destination Port (16비트)
- 수신자의 포트 번호를 나타낸다.
- Length (16비트)
- 헤더와 데이터를 포함한 UDP 패킷의 길이를 나타낸다.
- 최소 길이는 8바이트 (헤더만 포함)
- Checksum (16비트)
- 데이터 무결성을 확인하기 위한 필드. UDP 데이터와 가상의 IP 헤더를 사용해 계산
- 이 필드는 선택적이며, 데이터 무결성을 확인하지 않으려면 값을 0으로 설정 가능
UDP의 장점
- 속도 우선
- 연결 설정 없이 바로 데이터를 전송하므로 TCP보다 훨씬 빠르다.
- 낮은 오버헤드
- 헤더 크기가 작고, 신뢰성 보장을 위한 추가 작업이 없으므로 네트워크 자원을 적게 사용한다.
- 실시간 데이터 전송에 적합
- 신뢰성보다는 속도가 중요한 스트리밍, YoIP. 온라인 게임 등에 적합.
- 브로드캐스트 및 멀티 캐스트 지원
- 여러 수신자에게 동시에 데이터를 전송할 수 있는 기능은 UDP의 중요한 장점 중 하나이다.
UDP 단점
- 신뢰성 부족
- 패킷 손실, 중복, 순서 뒤바뀜에 대한 처리를 하지 않으므로 애플리케이션이 별도로 신뢰성을 구성해야함.
- 혼잡 제어 없음
- 네트워크 혼잡 상황에서도 전송을 중단하거나 속도를 조절하지 않기 때문에, 네트워크 성능에 악 영향을 줄 수 있음.
- 데이터 크기 제한
- 단일 UDP 데이터그램 크기는 IP 패킷 크기 제한을 초과할 수 없다.
TCP와 UDP 비교
UDP와 신뢰성 문제 해결 방안
- ACK/NACK(확인 응답): 데이터 수신 여부를 확인
- 순서 번호: 패킷의 순서를 유지하기 위해 번호를 부여
- 재전송: 손실된 데이터에 대해 재요청.
'🚣활동 > NHN Academy' 카테고리의 다른 글
Hypertext, www, html, url (0) | 2025.02.17 |
---|---|
Java Socket Communication (0) | 2025.02.10 |
TCP (Transmission Control Protocol) (0) | 2025.02.10 |
Socket, TCP, UDP (0) | 2025.02.10 |
Thread Pool (0) | 2025.02.04 |