SCTP

SCTP란 2000년도에 No.7 Signaling 메시지를 IP NW을 사용하여 전송하기 위해 만들어진 전송 프로토콜로

표준문서 RFC2960 으로 정의되어 있다.

나는 06년 모 통신회사에서 SG라고 부르는 Signaling Gateway 장비를 구축하면서 처음 접하게 되었다.

SCTP는 Stream Control Transmission Protocol의 약자이다. 기존의 TCP와 비슷한데 한가지 차이점은

Stream 이라는 단어가 들어가 있다는 점이다. 여기에 뭔가 중요한 의미가 있을것 같지 않은가?

그렇다면 기존에 TCP 라는 전송 프로토콜을 잘 사용하다가 왜 굳이 SCTP 라는 프로토콜을 새로 만들었는지 살펴보자.

 

No.7 Signaling 메시지는 오래전부터 Circuit Switching 일명 전화망에서 사용하던 control 메시지였는데 아시다시피

전화망은 IP NW망에 비해 상당히 폐쇄적이고, 견고하게 구성되어 있다. 근데 이 No.7 메시지를 TCP를 사용하여

전송하기에는 TCP의 단점들이 너무 많았으며 따라서 TCP를 보완하여 SCTP라는 신규 프로토콜을 생성하게 된 것이다.

 

TCP의 대표적인 단점을 먼저 살펴보고 SCTP의 특징에 대해 알아보자.

 

■ TCP 단점

1. Head of Line Blocking

TCP는 신뢰성 있는 전송을 위하여 패킷을 송신 후 ack를 기다린다. 바로 여기서 TCP의 어쩔수 없는 단점이 나타난다.

어떤 연구결과에 따르면 TCP에서 1% packet loss 발생시 총 소요시간 중 9% delay를 유발한다고 나와있다.

쉽게 얘기하면 100개의 패킷을 전송하는데 한 패킷 당 1초가 소요된다고 치면 총 100초가 걸린다. 근데

전송 중에 한개의 패킷이 유실될 경우 재전송 등으로 인해 총 109초가 걸린다는 의미이다.

Head of Line Blocking을 풀어보면 라인의 머리가 어떠한 이유로 막혀있다는 의미인데 이는 패킷을 전송 후

상대방으로 부터 ack를 수신하지 못하면 그 이후에 보내야 할 패킷들이 전송되지 못하고 모두 대기한다.

TCP의 단점글을 찾아보면 어김없이 나오는 이 단어를 SCTP에서는 어떻게 해결했는지 잠시 후 알아보자.

 

2. 보안에 취약

TCP는 개발된지 상당히 오래된 프로토콜로 TCP의 여러가지 취약점을 이용한 해킹기법이 상당히 많이 존재한다.

대표적으로 TCP에서 동작하는 3 way handshake 방식을 살펴보자.

Client 와 Server 간에 3 way handshake 를 시도한다고 할때 Client 에서 최초로 syn 을 전송한다.

이때 Server는 backlog queue에 서비스 제공을 위한 메모리 자원을 할당 후 ack/syn을 전송한다.

근데 여기서 Client 가 악의적인 목적으로 패킷을 조작하여 처음 syn을 보낼때 소스IP를 잘못된 IP로

변경하여 (혹은 존재하지 않는 IP) 전송한다고 하면 Server는 아무것도 모르고 해당 소스IP를 목적지IP로

변경하여 ack/syn을 전송하려고 할 것이다. 당연히 이는 실패될 것이고, 정해진 시간이 만료되면 Server에서

해당 자원을 해제할 것이다. Client에서 Server의 timeout 시간보다 훨씬 빠른 속도로 대량의 syn을 보낸다면?

Server에서 계속해서 리소스를 할당하다 결국 시스템이 다운될 것이다.

이게 바로 그 유명한 DOS 공격유형 중 대표적인 Syn Flooding 이라는 공격방법이다.

이처럼 TCP 구조적인 문제점을 이용한 해킹공격들이 SCTP를 개발하는데 충분한 이유가 되었던 것이다.

 

그럼 다음 시간에 SCTP의 본격적인 특징에 대해 알아보도록 하겠다.

 

 

 

 

 

 

 

 

 

 

 

'Protocol' 카테고리의 다른 글

Gratuitous ARP  (0) 2013.09.13
Proxy ARP  (4) 2013.09.12