고석주 ( 한국전자통신연구원 표준연구센터 선임연구원, sjkoh@etri.re.kr)
2000년 10월 IETF는 RFC2960을 통해 SCTP(Stream Control Transmission Protocol)를 TCP(Transmission Control Protocol), UDP(User Datagram Protocol)에 이은 제3의 수송계층 프로토콜 표준으로 제정하였다. SCTP 등장배경은 다소 필연적이다. 90년대 후반에 접어들면서 기존 TCP, UDP를 통해서는 갈수록 광대역화 및 멀티미디어화로 발전하는 인터넷 응용 요구사항을 적절히 수용할 수 없었기 때문이다. SCTP가 IETF 표준으로 제정된 지 3년이 지나는 현 시점에서 제기되는 의문은, “과연 SCTP가 TCP/UDP를 대체할 것인가? 아니면 상호 공존하며 발전할 것인가?” 및 “SCTP의 Killer 응용은 무엇인가?” 등이 있다.
SCTP vs. TCP/UDP
SCTP 표준개발은 1997년 IETF SIGTRAN(Signaling Transport) WG에서 시작되었으며, IP 망에서 VoIP(Voice over IP) 시그널링 트래픽 전송을 위한 프로토콜 개발이 주요 목적이었다. 이를 위해 시그널링 게이트웨이간에 실시간으로 수 많은 사용자의 다양한 호처리 정보를 신뢰적으로 전송하고 또한 망 장애에 대비하여 신속한 복구기능이 제공되는 SCTP 프로토콜을 개발하였다. 초기에 SCTP는 UDP 위에 탑재될 예정이었으나, IESG(Internet Engineering Steering Group)의 강력한 권고에 따라 IP 위에서 동작하는 수송계층 프로토콜로써 제정되었으며, 이로써 VoIP 시그널링 뿐만 아니라 다양한 응용에서도 SCTP를 사용할 수 있게 되었다.
SCTP는 UDP의 메시지지향(message-oriented) 특성과 TCP의 연결지향(connection-oriented) 및 신뢰전송 특성을 모두 포함하는 등 TCP와 UDP의 장점을 살리도록 설계되었다. SCTP는 TCP의 연결지향성 및 신뢰전송 기능을 제공하지만, TCP와는 달리 4-way 연결설정 및 3-way 연결종료 등의 기능을 제공한다.
특히 SCTP는 멀티스트리밍(multi-streaming) 및 멀티호밍(multi-homing) 특성을 제공한다. Multi-streaming 특성을 통해 하나의 세션에서 다양한 종류의 컨텐츠를 식별 및 전달할 수 있으며, 바이트(byte) 기반 전송방식인 TCP의 HOL(Head-of-Line) blocking 문제를 해결하고 있다. 한편, Multi-homing 특성을 통해 단말은 두 개 이상의 IP 주소를 한 세션에서 사용할 수 있으며, 이를 통해 경로 장애에 대한 복구(fail-over) 기능을 제공한다. 또한 멀티호밍 특성은 SCTP 이동단말에 대한 핸드오버 기능을 제공할 수 있다. SCTP는 IP 패킷에 표시되는 프로토콜 식별번호(Protocol ID)로써 UDP(6), TDP(17)처럼 132번을 할당 받았다.
SCTP 표준화 및 개발 현황
SCTP 기본규격은 2000년 10월에 SIGTRAN
WG에서 RFC2960으로 표준화 되었으며, 이후 RFC 3257, 3286, 3436 등의 추가 규격이 제정되었다. 현재 후속
표준개발 작업은 IETF TSV(Transport Area) WG에서 이루어지고 있다. 현재 진행 중인 WG 문서는 “SCTP
Socket API”, “구현지침서”, “PR-SCTP(Partially Reliable SCTP),
“ADD-IP(Dynamic Address Configuration)” 등이 있다. 최근 IETF에서는
PR-SCTP(draft-ietf-tsvwg-prsctp-02.txt) 표준화 작업이 한창 진행 중이다. PR-SCTP는
SCTP 데이터 전송 도중에 “time-critical” 스트림에 대해서는 오류복구과정을 생략하고 곧 바로 응용계층에 전달될 수
있는 기능을 정의한다. 수신자는 PR-SCTP 신호를 받았을 경우, 버퍼에 있는 해당 데이터를 곧 바로 상위 응용에 전달한다.
SCTP
표준화 작업과 함께 전 세계적으로 실제 구현작업도 활발히 진행되고 있다. 먼저 지난 2003년 12월에 출시된 리눅스 커널
2.6.0 버전부터 SCTP 프로토콜 기능이 탑재되었으며, 관련 시험도구(tool set)도 개발되었다(http://sourceforge.net/projects/lksctp). 한편 독일을 중심으로 사용자레벨(user-space) 구현코드인 “sctplib” (http://www.sctp.de/sctp.html) 개발작업이 진행 중에 있으며, SCTP 시뮬레이션을 위한 ns-2 모듈(http://pel.cis.udel.edu/#downloads)도 출시되었다.
SCTP 확장: mSCTP
그
동안 SCTP 개발작업은 주로 SCTP의 멀티스트리밍 특성을 활용하는 방향으로 진행되어 왔다. 즉, VoIP 시그널링
게이트웨이간에 혹은 AAA 서버간에 SCTP 세션을 설정하고, 이를 통해 수 많은 사용자의 호처리 신호정보를 전달하는 용도로
SCTP가 사용되고 있다.
최근에 들어서는 SCTP 멀티호밍 특성에 대한 연구개발이 한창 진행 중에 있다. 특히 세션도중에
새로운 IP 주소를 추가할 수 있는 ADD-IP(draft-ietf-tsvwg-addip-sctp-08.txt)에 대한 표준화가
진행 중에 있으며, 이에 대한 주요 활용 분야로써 “mobile SCTP(mSCTP) 핸드오버” 기술이 주목을 받고 있다.
mSCTP에서는 SCTP 멀티호밍 특성과 ADD-IP 기능을 활용하여, SCTP 단말이 세션 도중에 이동함으로써 IP 주소가
변경되더라도 네트웍의 도움 없이 세션의 연속성을 제공하는 기술이다. 관련 연구개발은 Siemens 및 시스코 등을 중심으로 진행
중에 있으며, 한국에서도 활발히 관련 연구에 참여하고 있다(draft-sjkoh-sctp-mobility-03.txt,
draft-sjkoh-mobile-sctp-mobileip-03.txt).
결론 및 향후 전망
SCTP
는 IETF에서 차세대 수송계층 프로토콜 표준으로 제정되었으며, 현재 관련 표준화 및 개발작업이 한창이다. 향후 SCTP는
TCP, UDP를 대체하기보다는 서로 공존하면서, 각각의 특성에 부합하는 응용 및 서비스에 활용될 것으로 전망된다. 아직은 보급
초기단계이지만, TCP/UDP처럼 향후 지속적인 기술 보완을 통해 점차 실제 인터넷 응용에 널리 적용될 것이다.
현재의
SCTP 적용은 주로 시그널링 게이트웨이간 데이터 전송에 국한되고 있으나, 향후에는 멀티미디어 신뢰전송을 요구하는 신규 응용
서비스가 killer 응용으로 떠오를 가능성이 크다. 또한 mSCTP 핸드오버 등의 이동성 기능을 활용하는 이동통신단말기의
보급도 기대할 만하다. 특히, SCTP 관련 분야는 세계적으로 아직 개발 초기단계에 해당하므로, 이동통신 단말기 제조업체 및
서비스사업자들이 눈 여겨볼만한 기술이라 하겠다.

移