Search
Duplicate
🥼

SCTP(Stream Control Transmission Protocol)

Category
S/W 엔지니어
Tags
SCTP
multi homing
multi streaming
Created time
2008/02/10

정의

PSTN망에서 사용되는 signaling message를 인터넷 망의 IP Network상에서 전송하기 위해 IETF SIGTRAN Working group에서 2000년 10월 표준으로 제안한 전송 프로토콜(RFC 2960)

주요 장점

전송계층에서 동작하며 UDP의 메시지 지향 특성과 TCP의 연결지향 및 신뢰 전송 특성을 모두 포함하는 등 TCP와 UDP의 장점을 살리도록 설계
Association 설정시 발생할 수 있는 Syn Flooding과 같은 DOS 공격이나 Masquerading 공격에 안전하도록 설계
Multi-Streaming : TCP의 Head Of Line Blocking으로 인한 성능 저하 문제 해결. 하나의 세션에서 여러 종류의 컨텐츠 전달 가능.
Multi-Homing : 특정 경로에 Path Fail이 발생하더라도 미리 설정된 다른 통신 경로로 자동적인 데이터 전송을 가능케 하는 기능(fail-over 기능).

기술적 특징

세션인증 및 SACK 메커니즘 : 세션 초기화시 Cookie를 사용한 Key 교환(DOS, Sync Flooding 공격 방지), SACK(Selective ACKnowledgement)를 통한 데이터 수신 확인 및 재전송 요구
Path Selection & Monitoring : 하나의 SCTP 세션에 여러 IP 주소 사용(fail over 역할)
Flow & Congestion Control : 흐름 제어는 association 별, 혼잡 제어는 전송경로 별로 수행
데이터 전송 : 각 데이터 chunk에게 TSN(Transmission Sequence Number: 흐름 제어, 오류 복구), SSN(Stream Sequence Number: 스트림별 순서화) 부여
세션 초기화 및 종료 : 초기화에는 4 way handshaking, 종료시에는 3 way handshaking(TCP의 Half Open 문제 해결)
protocol ID : 132번

SCTP 프로토콜 스택

하나의 패킷에 여러 개의 데이터 및 제어 chunk가 포함 가능
데이터 chunk에는 Type, Length, 해당 데이터 chunk에 대한 TSN, SSN 번호를 포함하여 추후 오류제어 및 흐름제어 등에 사용

SCTP에서의 데이터 전송

SCTP는 IP 네트워크 기반에서 효율적인 데이터 전송을 위한 여러 기능을 지원 :
Bundling, Fragment and Reassembly, Flow Control, Congestion Control, Selective Repeat, Ordered and Unordered Delivery, Path MTU Discovery 또한 transport Sequence Number(TSN)을 이용한 패킷 중복 방지 및 손실탐색 메커니즘을 통해 데이터 전송의 신뢰성을 높임.
Bundling : SCTP 패킷 안에 여러 개의 Chunk를 포함하는 방법으로 chunk를 묶음.
Path MTU Discovery : 주어진 경로에 존재하는 MTU를 측정 및 전송중인 패킷 정지 또는 MTU 변공을 시도.

활용분야

전송 프로토콜 수준의 보안기능이 요구되는 시스템 : SCTP 위에 TLS를 적용하여 보안 기능 강화
인증, 권한, 과금정보를 관리하는 인증 시스템 장비 : Multi-Homing 기능을 활용한 신뢰성 있는 데이터 전송
신뢰성이 요구되는 군 장비 및 위성 통신 장비 : SCTP 데이터 전송의 Unordered 기능 적용, 좋지 못한 환경으로 인한 Path Fail 발생이 쉬운 전쟁에 사용되는 군 장비나 위성 통신을 위해 Multi-Homing 기능을 활용
Mobile IP 분야 : Multi-Homing 기능을 이용한 무선 통신 단말기에 적용
미래의 HTTP를 위한 전송 프로토콜 : 다중 객체를 송수신해야 하는 HTTP에 SCTP를 사용하여 데이터 전송의 성능 향상.

참고: SCTP Multi-Streaming

하나의 SCTP Association에 여러 개의 Stream을 가짐. 각 Stream마다 있는 순서번호(SSN: Stream Sequence Number)를 통해 각 Association 관리.
Head of line blocking 현상 방지 : 하나의 Stream으로 구성된 TCP의 경우 Stream에 전송된 데이터에 패킷의 손실이 발생했을 때 손실된 패킷이 재전송되기를 기다리는 동안 application에 데이터를 전달하지 못하는 Head of line blocking 현상을 방지함. 특정 stream에서 패킷 손실로 인한 지연이 발생하더라도 타 stream에는 이상이 없음. 전송 속도 증가 효과를 냄. 또한 패킷 순서 유지 및 비유지 선택 필드를 통해서도 전송 속드 증가 효과를 가져옴.

참고: SCTP Multi-Homing

SCTP Association을 맺고자 하는 endpoint들이 Multiple Ethernet의 각각에 IP가 할당된 multi-homed인 경우 적용 가능.
여러 경로 중 하나를 Primary Path로 설정하고 다른 경로는 idle 상태로 진입. idle path에 주기적으로 Heart Beat Chunk를 보내 사용 가능한지를 모니터링. Primary Path에 Path Fail이 발생한 경우 idle path 중 하나를 선택하여 Primary Path로 변경하고 데이터 전송을 계속함. 신뢰성 증가.

References

SCTP란? by yangck20
SCTP 표준기술 분석 및 전망, 전자통신동향분석 18-3 2003/06, 고석주 외 3명
댓글 백업