SCTP: 멀티호밍과 멀티스트리밍을 지원하는 전송 프로토콜
SCTP의 연결 관리 방식과 멀티호밍·멀티스트리밍, PR-SCTP 및 Mobile SCTP 활용 특성을 정리한다.
2026-08-14 · 최초 발행 2025-08-10
TCP와 UDP 사이에서 SCTP가 맡는 역할
SCTP(Stream Control Transmission Protocol)는 TCP와 UDP의 한계를 보완하기 위해 개발된 전송 계층 프로토콜이다. UDP의 메시지 지향(Message-oriented) 특성에 TCP의 연결 지향(Connection-oriented) 및 신뢰성 특성을 결합했다.
IETF(Internet Engineering Task Force)는 이를 RFC 2960으로 2000년에 표준화했다. 초기 목적은 SS7(Signaling System No.7) 시그널링 메시지 전송이었지만, 이후 여러 통신 환경으로 적용 범위가 확장됐다.
연결과 상태를 제어하는 메시지
SCTP는 데이터 전달뿐 아니라 연결 설정, 상태 확인, 오류 처리, 종료를 위한 제어 메시지를 사용한다.
연결을 만들 때는 init, init-ack, cookie-echo, cookie-ack가 순서대로 사용된다. 데이터 전송 상태는 sack(Selective Acknowledgment), heartbeat, heartbeat-ack로 확인한다. 비정상 종료와 오류 보고에는 abort, error를 쓰며, 정상 종료는 shutdown, shutdown-ack, shutdown-complete로 진행한다.
장애 경로를 피할 수 있는 멀티호밍
멀티호밍(Multi-Homing)은 하나의 엔드포인트가 다수의 IP 주소를 보유하는 기능이다. 특정 네트워크 경로에 장애가 발생해도 대체 경로로 통신을 이어갈 수 있어 가용성과 장애 대응력을 높인다.
SCTP는 다중 경로 가운데 적합한 경로를 선택하고 지속적으로 상태를 감시한다. heartbeat 메시지로 경로 가용성을 확인하며, 장애가 확인되면 자동으로 경로를 전환한다.
연결 안에서 스트림을 분리하는 방식
멀티스트리밍(Multi-Streaming)은 하나의 SCTP 연결(Association) 안에서 여러 독립 스트림을 제공한다. 각 스트림은 독립적으로 데이터를 전송하므로, 한 스트림의 패킷 손실이 다른 스트림의 전송까지 막는 헤드오브라인(Head-of-Line) 블로킹 문제를 줄일 수 있다.
흐름 제어와 혼잡 제어는 TCP와 유사한 윈도우 기반으로 동작한다. 네트워크 혼잡 상황에 맞춰 전송률을 조절하고, 공정한 네트워크 자원 분배를 지원한다. 양방향 동시 전송이 가능한 전이중 통신도 지원하므로 통신 효율과 지연시간 측면에서 유리하다.
쿠키 기반으로 연결을 설정하고 종료한다
SCTP의 연결 설정은 쿠키 메커니즘을 사용하는 4-way 핸드셰이킹이다. 이 방식은 SYN 플러딩 공격에 대한 저항성을 높인다.
클라이언트가 INIT를 보내면 서버는 상태 쿠키를 포함한 INIT-ACK를 반환한다. 클라이언트는 COOKIE-ECHO로 쿠키를 되돌려 보내고, 서버의 COOKIE-ACK가 도착하면 연결이 설정된다.
세션 인증으로 보안성을 강화하며, SACK(Selective Acknowledgment)은 선택적 패킷 재전송을 지원해 네트워크 대역폭 사용 효율을 높인다.
정상 종료는 SHUTDOWN, SHUTDOWN-ACK, SHUTDOWN-COMPLETE 순서로 처리한다.
실시간 전송과 이동 환경을 위한 확장
PR-SCTP(Partial Reliable SCTP)는 실시간 응용에 맞춘 SCTP 확장이다. 시간 제약이 있는 데이터는 신뢰성 요구사항을 완화할 수 있으며, 지정된 시간 안에 전송하지 못하면 재전송 시도를 중단한다. 실시간 음성·영상 통화와 스트리밍 서비스에 적합하다.
Mobile SCTP는 이동성 지원을 위한 확장으로, 동적 주소 구성(DAR: Dynamic Address Reconfiguration)을 제공한다. 세션 중 새로운 IP 주소를 등록하고 Primary IP를 변경할 수 있으며, 끊김 없는 핸드오버(Seamless Handover)를 지원한다. 모바일 기기와 IoT 장치가 네트워크를 로밍하는 상황에서 활용할 수 있다.
SCTP는 통신사 시그널링 시스템, 금융 거래 시스템, 대용량 데이터 전송 서비스, 고가용성이 필요한 클라우드 인프라, 실시간 미디어 스트리밍 서비스에 적용될 수 있다.
TCP·UDP와 비교한 SCTP의 위치
| 특성 | TCP | UDP | SCTP |
|---|---|---|---|
| 연결 지향성 | 연결 지향적 | 비연결 지향적 | 연결 지향적 |
| 신뢰성 | 높음 | 낮음 | 높음(조절 가능) |
| 순서 보장 | 보장 | 비보장 | 스트림별 보장 |
| 메시지 경계 | 없음(바이트 스트림) | 있음(메시지 지향) | 있음(메시지 지향) |
| 흐름/혼잡 제어 | 있음 | 없음 | 있음 |
| 멀티호밍 | 지원 안함 | 지원 안함 | 지원 |
| 멀티스트리밍 | 지원 안함 | 지원 안함 | 지원 |
| 헤드오브라인 블로킹 | 발생 | 발생 안함 | 스트림별 발생 가능 |
| 핸드셰이크 | 3-way | 없음 | 4-way |
구현 전에 확인할 운영 제약
운영체제별 SCTP 지원 여부를 먼저 확인해야 한다. Linux는 커널 2.6 이상에서 기본 지원하며, Windows는 기본 지원이 없어 서드파티 구현이 필요하다. BSD 계열에서는 FreeBSD가 기본 지원한다.
일부 방화벽은 SCTP 트래픽을 차단할 수 있으므로 네트워크 경로도 검토 대상이다. 응용 프로그램에서는 Linux의 lksctp-tools, Windows의 SctpDrv 같은 라이브러리를 사용할 수 있으며, SCTP API 사용법을 함께 확인해야 한다.
SCTP는 멀티호밍과 멀티스트리밍으로 가용성과 효율을 확보하고, 쿠키 기반 연결 설정으로 보안 메커니즘을 제공한다. 5G/6G 네트워크, IoT, 클라우드 컴퓨팅 환경에서 더 넓은 활용이 기대된다.