一、引言
SS7(Signaling System No.7)网络和Internet网络是两个独立的网络,SS7用于传输电话信令,而Internet是基于分组交换的,用来传输数据业务。随着IP网络和SS7信令网各自业务的扩展,信令在IP网上的传输已经成为了关键问题,而信令传输具有高可靠性低时延的要求。在IP网络中,大部分的业务都是通过UDP或TCP来传送的。UDP是无连接的传输协议,它能满足低延迟的要求,但是它却无法保证可靠传输。TCP能保证数据可靠传输,但是它也不能完全符合信令传输的要求;TCP套接字不支持多宿性;TCP是面向比特流的,将数据传输当作是没有结构的字节序列。
因此,为了满足信令传输的要求,IETF的SIGTRAN(Signaling Transport Group)组提出了一种新的传输层协议─SCTP(Stream Control Transport Protoco1)。
二、SCTP基本概念
1.多宿性
多宿是指一个SCTP 端点可以通过多个IP地址到达,这样两个SCTP端点在建立了偶联后,数据可以通过不同的物理通路进行传送。
ATM 交换机偶联的两个端点A和B各自绑定两块不同的IP地址的接口卡,通过卫星电路和ATM两种方式连接。其中一个地址被置为首选,另一个则作为可选,当首选通路出现错误时可以通过可选通路继续进行数据传输而不会导致传输中断,直到首选通路恢复。上层应用可以显式声明使用可选通路,丢包重传也可以在可选通路上进行。
2.多流性
SCTP通过数据传输和数据递交相互独立来实现多流特性。每个DATA数据块在协议中使用两套顺序号:传送顺序号TSN和流顺序号SSN。当一个用户消息被分段后,必须在该消息的每个分段中带有相同的SSN,这样才能从一个流中分辨出不同的消息。当用户消息被分段到各个DATA块中,接收方就要使用TSN对消息进行消息重组,即被分段的用户消息的各段必须使用连续的TSN。SCTP允许数据接收端确定TSN是否出现间隔,以及在间隔后收到的消息是否属于同一个被影响的流中。如果TSN出现间隔,SSN也出现相应的间隔,则收到的消息就在被影响的流中,否则SSN不会出现相应间隔。接收方可以继续在未受影响的流中传送消息,仅缓冲被影响的流直到被重传,各流相互独立,解决了在TCP单流中容易出现的队头阻塞现象。
3.阻塞控制机制
SCTP阻塞控制同样是基于速率自适应窗口的机制,通过重传的方式提供可靠的数据传输。SCTP和TCP的阻塞控制机制有几点不同:
(1)SCTP采用与TCP相似的基于SACK间隔报告的快速重传机制,但SCTP没有一个显式快速恢复阶段,借助SACK块SCTP自动进入快速恢复。
(2)SCTP强制使用SACK,在TCP中SACK的使用是可选的。在遇到单个数据窗口发生连续丢包时,SCTP更为健壮,避免了耗时的慢启动阶段,节省了带宽,同时提高了吞吐量。
(3)SCTP在慢启动或阻塞避免时,阻塞窗口大小随着确认字节增加,而TCP中则是随着接收到的确认字段增加。SCTP改善了在长传输延迟的环境下(如卫星链路)的传输性能。
(4)SCTP在阻塞避免时,阻塞窗口只有在整个窗口被充分利用才增加其大小。此外,如果SCTP端点保持一个低的发送速率,而没有充分利用阻塞窗口,这时网络不会产生丢包指示,阻塞窗口不断增大,此时发送端突然发送一个超过阻塞窗口的突发数据流,结果会造成网络更加阻塞。