UDP(User Datagram Protocol)

UDP(User Datagram Protocol)
 
Layer 4 계층 프로토콜 UDP는 상호 연결을 실시하지 않는 비연결 지향성 서비스이다.
즉, 송신측과 수신측간에 접속 절차를 거치지 않고(connect()함수를 사용하지않는다.) 수신측에서 요청을 실시하면, 송신측에서 바로 데이터를 전송한다. 또한, TCP에서 통신 연결과 제어를 담당하는 3-Way Handshaking 이나 나머지 TCP에서 하는 기능들을 수행 하지 않는다.
 
UDP는 최선을 다해 목적지까지 데이터를 전송하는대신, 신뢰성을 보장하는 서비스가 없기때문에
어플리케이션 계층에서 이 문제를 해결해야 한다. 대신, 신뢰성을 보장하는 서비스로 인한 데이터 전송 지연이
발생하지 않기 때문에 신속한 데이터 전송이 가능하며, 이러한 특징 때문에 실시간으로 트래픽을 전송하는
멀티미디어 서비스 환경에서 주로 사용한다.
네트워크 주소체계는 TCP와 같은 Layer 4계층에서 사용하는 Port 번호를 쓴다.
 
 
 
UDP 헤더(UDP header)


 
1. 송신원(출발지),송신지(목적지)에서 수행되는 프로세서가 사용하는 포트 번호이다.
2. 헤더의 길이는 헤더와 데이터를 합한 사용자 데이터그램의 전체 길이를 정의하는 필드이다.
3. 체크섬은 사용자 데이터 그램에 대한 오류 검사를 담당하는 필드이다.
 
UDP 헤더는 TCP에 비해서 내용이 단순하다.

 

UDP 정리
 
UDP - 신속성을 중요시 한다.
대표적으로 전화의 데이터 전송 프로토콜(RTP)가 있음
그래서 전화할때 신속하게 목소리를 주고받을 수 있는것이다.
 
UDP
장점 - 신속하고 빠르다.
단점 - 신뢰성이 없다.

 UDP의 특징
- 연결을 하지 않으므로 connect()함수를 사용하지 않음.(몇 가지 이유로 인해 connect()함수를 사용하는 경우도 있음)
- 데이터 경계 구분을 위한 작업을 애플리케이션이 하지 않아도 됨
- 프로토콜 수준에서 신뢰성 있는 데이터 전송을 보장하지 않으므로, 필요하다면 애플리케이션 수준에서 신뢰성 있는 데이터 전송 기능을 구현해야 함
- 간단한 소켓 함수 호출 절차만 따르면 다자간 통신을 쉽게 구현할 수 있음

 
 

■ UDP 서버/클라이언트 동작 원리


 
■ UDP 서버/클라이언트 분석
▷ UDP/IP 소켓 통신을 위해 필요한 요소
- 프로토콜 : 소켓을 생성할 때 결정
- 지역 IP주소와 지역 포트 번호 : 서버 또는 클라이언트 자신의 주소
- 원격 IP주소와 원격 포트 번호 : 서버 또는 클라이언트가 통신하는 상대방의 주소
 
 
▷ 소켓 데이터 구조체




 

 

■ 데이터 전송 함수
▷ sendto()함수
- 하부 프로토콜(예를 들면, UDP/IP)을 이용하여 애플리케이션 데이터를 전송
- sendto()함수를 호출할 때, 소켓의 지역 IP주소와 지역 포트 번호가 아직 결정되지 않은 상태라면 시스템이 자동으로 결정


이 글을 공유하기

댓글

Designed by JB FACTORY