SCTP는 TCP/IP와 같은 프로토콜 중의 하나로 최신 기술은 아니고 2000년 10월에 RFC가 되었습니다.

현재 대부분의 리눅스 플랫폼에서는 SCTP를 OS에서 기본으로 제공하고, Windows는 OS에서 제공하지는 않고 써드파티에서 제공하고 있습니다.

 

아래의 글은 IBM의 developerworks에 있는 글을 간단하게 정리했습니다.

http://www.ibm.com/developerworks/linux/library/l-sctp/

 

 

 

SCTP에 간단한 설명

 

신뢰성 높은 범용성 있는 트랜스포트층의 프로토콜이며 IP 네트웍에서 사용할 목적으로 만듬.

 

원래는 텔레폰 시그널링을 위해서 설계된 것이지만 TCP의 제한 중 몇 개를 해결함과 동시에 UDP의 뛰어난 기능도 갖추고 있으므로 우연찮게 알게 됨.

 

SCTP의 기능은 가용과 신뢰성을 높이고, 소켓 initiation(컨넥션 확립)의 보안을 향상 시켜준다.

SCTP는 쉽게 말해서 TCP와 UDP의 장점을 가졌다고 보면 된다. TCP와 같이 신뢰성 높게 순서대로 데이터 전송을 하면서 UDP와 같이 메시지 지향으로 동작하여 메시지 경계를 유지한다. 그리고 다음과 같은 특징을 가지고 있다.

 

멀티 호밍

SCTP는 클라이언트와 서버가 두 개의 인터페이스를 통해서 접속하면 하나로 통합하여 한쪽에 문제가 발생하면 자동적으로 나머지 하나를 사용, 또는 둘 중 성능이 좋은 쪽을 자동으로 선택하여 사용한다.

 

 

멀티 스트리밍

TCP와 다르게 Association내의 복수의 스트림을 통해서 통신이 가능.

 

 

소켓 initiation 보호

TCP에서 악의적인 클라이언트가 가짜 소스 어드레스를 가진 IP 패킷을 위조하여 서버에 대량의 TCP SYN 패킷을 보내면 서버는 SYN을 수신하면 접속용 리소스를 할당하여 SYN 플랫을 다 소모하여 새로운 요구에 대응할 수 없게 된다. 이것을 Dos 공격이라고 한다.

SCTP는 4way 핸드쉐이크와 쿠키를 도입하여 이런 류의 공격에서 보호할 수 있다.

 

 

메시지 프레이밍

쉽게 말해서 이것에 의해서 패킷이 뭉쳐오지 않습니다.

현재의 TCP에서는 클라이언트에서 빠르게 두 번의 send를 하면 서버에서는 한번의 receive에 의해서 수신되어서 패킷을 나누는 로직을 구현해야 하는데 SCTP에서는 이런 것이 필요 없습니다.

 

 

구성 가능한 순서 없는 배송

TCP 처럼 순서성 있는 전달을 할 수 있지만 필요에 따라서 UDP처럼 비순서 전달을 할 수도 있다.

 

 

그레이스풀 셧 다운

 

 

 

신고
by 흥배 2012.10.22 09:00
| 1 |