UDP의 구조와 특성
TCP가 비효율적인 경우도 있다. 실시간성을 중요시하거나 응답성을 중요시하는 프로그램이 대표적인데 이런 경우를 위해 개발된 것이 사용자 데이터그램 프로토콜인 UDP(User Datagram Protocol)이다.
UDP는 오버헤드를 최소화한 매우 간단한 구조로 TCP보다 전송속도가 빠르다. UDP는 비연결성 프로토콜로 데이터 전송의 신뢰성을 보장하지 않으며 IP 서비스에 단지 프로세스 대 프로세스 데이터통신 환경만 제공한다. 다시 말해 데이터를 주고받을 때 TCP처럼 연결설정 단계를 거치지 않고 전송지에서 일방적으로 데이터를 전송하며 수신 여부도 확인하지 않는다. 흐름제어와 혼잡제어도 처리하지 않으므로 네트워크 부하가 적고, 체크섬도 최소한의 오류만 검출하도록 선택적으로 수행한다.
UDP 상에 정의된 대표적인 프로토콜에는 실시간 인터넷 방송과 네트워크 장비를 관리 감시하기 위한 응용 계층 프로토콜인 SNMP(Simple Network Management Protocol)가 있다. UDP도 TCP와 마찬가지로 프로세스 대 프로세스 프로토콜이다. 디바이스 대 디바이스가 아니라 응용프로그램이 수행되는 프로세스가 최종 수신자라는 의미다.
UDP는 단순한 요청이나 응답을 필요로 하는 프로세스, 흐름제어와 오류제어가 크게 필요하지 않은 프로세스, 내부적인 흐름제어와 오류제어 기능을 갖고 있는 프로세스, 멀티캐스팅과 브로드캐스팅을 위한 전송 프로토콜, SNMP와 같은 관리 프로세스, 온라인게임이나 동영상 시청 또는 대량의 데이터를 신속하게 전달해야 하는 스트리밍 서비스 등 신뢰성보다는 연속성이 중요한 서비스에 효율적으로 사용된다.
UDP | TCP |
호스트 사이에 세션이 설정되지 않는 비연결성 서비스 | 호스트 사이에 세션이 설정되는 연결지향 서비스 |
전송 승인이나 데이터 정렬을 보장하지 않음 | 승인 및 순차적인 데이터 전송을 통해 전송 보장 |
UDP를 사용하는 프로그램은 데이터 전송에 필요한 신뢰성을 제공해야 함 | TCP를 사용하는 프로그램은 신뢰할 수 있는 데이터 전송을 보장 |
빠르고 오버헤드가 적으며 지점 간 통신과 지점 대 다중 지점 간(point-to-multipoint) 통신을 지원 | 많은 오버헤드가 필요하며 지점 간 통신만 지원 |
SCTP의 구조와 특성
SCTP는 TCP의 신뢰성과 UDP의 메시지 지향적인 특성을 조합한 프로토콜이다. TCP처럼 연결지향적 프로토콜이며 혼잡제어를 통해 신뢰성 있는 순차적 메시지 전송을 보장하면서도 연결설정과 연결종료 과정의 약점을 해결했다. 또한 복원력과 안정성을 향상시키기 위해 멀티홈잉(multi-homing)과 멀티스트리밍(multi-streaming) 기능도 제공한다. 주 데이터 전송 경로를 선택하고, 경로의 연결을 검증하기 위한 경로 선택 및 모니터링 기능을 지원한다. 외부 공격으로부터 데이터를 보호하고, 중복 또는 누락된 데이터 청크에 대한 알림 제공을 위해 유효성 검사 및 승인 메커니즘을 지원한다. VoIP(Voice over IP) 서비스, 다중 미디어를 전송하는 웹 응용서비스, 고도의 신뢰성을 요구하는 보안 응용 등에 활용된다.
댓글