关键词:流控制 传输协议 sctp
一、引言
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端点保持一个低的发送速率,而没有充分利用阻塞窗口,这时网络不会产生丢包指示,阻塞窗口不断增大,此时发送端突然发送一个超过阻塞窗口的突发数据流,结果会造成网络更加阻塞。
(5)sctp规定发送端收到4个重复确认后开始快速重传,而在tcp中是3个。
4.安全机制
传输协议可用于传输像计费或信令消息这样的敏感信息,sctp中提出了服务的可用性和消息的完整性两个目标。
对服务的可用性而言,常见的威胁是拒绝服务,根源就在于目标主机为每个未决的连接在内存中保留了大量无用的状态信息,最终耗尽系统资源。sctp采用“四次握手”的连接建立方式和cookie机制消除了syn攻击的威胁,解决了为未决的连接保留状态信息的问题。服务器端只有在收到cookie echo消息后才从关闭状态进入建立状态,此前的关闭状态不为客户端的请求保留任何状态信息。cookie放在init ack和cookie echo消息中在端点间传送,服务器能够从cookie echo中提取出建立正常偶联要求的所有信息。cookie机制设立的主要用意是将状态信息存储在客户端或者网络上,而非服务器内存中,它的使用将服务器资源预留的时间推迟到了cookie带回完整的鉴别信息后。这是一种简单有效的防御dos攻击的方法。
如果攻击的目的是信息的完整性和机密性,那么sctp载荷将是攻击的目标。sctp用ipsec(ip security)或传输层安全(transport layer security,tls)来保护载荷。
三、问题与挑战
作为一种相对新型的协议,sctp仍然面临着许多问题要解决,下面简单介绍一下:
(1)no.7信令传输有严格的可靠性需求,但至今没有大规模利用sctp协议在ip网上传输no.7消息的可信的结果报告,仍有许多的仿真和实验工作要做。
(2)sctp假定所有的数据丢失都是由阻塞引起的,而且rtt也在逐渐慢速变化。
(3)不中断数据传输即能动态增删地址对一些关键应用或移动环境很有益,但需要增加新的块定义和参数类型,目前正处于ietf草案阶段,而且又引入了额外的风险:流量重定向攻击。
四、结束语
虽然sctp最初是作为一种为了在ip网络上传输信令消息而设计的,但它与生俱来的新特性使越来越多的人认为sctp将会是一种新型通用传输协议,甚至可能会替代现有的tcp协议成为下一代网络主要的传输协议。
目前,sctp已被3gpp采纳,许多设备厂商都已经完成了各自的协议和互通测试,但大规模应用的仿真工作仍在进行,sctp在无线互联网下的应用及性能评估也在进一步研究中。
参考文献
1 randall r.stewart .stream control transmission protocol[s].ietf rfc 2960,2000.10.
2 randall r.stewart .流控制传输协议sctp参考指南(影印版). 清华大学出版社,2003.1
3 于林.ss7 over ip的关键技术sctp概述.江西通讯科技,2002.12
4 贺羽中.sctp协议的研究。山西电子技术,2005.5
5 叶凌伟.sctp 与tcp 的功能对比及应用分析.中国数据通信,2003.1