一、概述
流量控制传输协议(SCTP,Stream Control Transmission Protocol)主要用于在IP网中传送公用交换电话网(PSTN)的信令消息和IP网内的信令消息。是互联网(Internet)上一个非常重要的传输协议。
1、SCTP协议的由来
我们知道,在互联网的传输协议中,最早使用的是传输控制协议(TCP,Transmission Control Protocol),称之为TCP/IP协议。TCP (最早于1980年1月由IETF发布的RFC 761规定)作为IP网络中可靠数据传输的重要手段,已经完成了大量的服务。然而,随着互联网技术的发展,越来越多的应用发现TCP限制太大(可参见下表1-1-1的描述),并在UDP(RFC 768)之上合并了自己的可靠数据传输协议。 因此需要开发一种新的传输协议来绕过这些限制,这就导致了流量控制传输协议(SCTP)的出现。在SCTP成为标准之后,IETF致力于把它作为一种通用的协议推广。
表 1-1-1:TCP的限制因素
欲具体了解TCP协议介绍的请进入。
在IP网络上传输PSTN信令是TCP所有这些限制都相关的应用。虽然这个应用直接推动了SCTP的开发,但其他应用可能会发现SCTP很好地满足了它们的需求。
由此,在互联网传输协议中,SCTP、TCP、UDP是IP网络数据传输的三种传输协议。它们处于同一层次,使用下层网络层的无连接包转发服务,并向上层应用层提供端到端的传输服务。传输控制协议(TCP,Transmission Control Protocol)用于对数据的可靠传输,但是其局限问题限制了数据的递交;用户数据报协议(UDP,User Datagram Protocol)提供非可靠数据传输,对TCP不友好,容易造成网络拥塞;流量控制传输协议(SCTP,Stream Control Transmission Protocol)的功能特点规定了它的适用性:适于无序和有序消息的可靠传输,同时通过对多穴主机的支持实现网络级的容错。下表1-1-2给出了SCTP、TCP、UDP这3种传输协议的特点比较;下表1-1-3进一步给出了SCTP与TCP间的特性简单对比。
表1-1-2:SCTP、TCP、UDP这3种协议的特点比较
表 1-1-3:SCTP与TCP间的特性对比
2、SCTP协议的版本情况
于是,互联网工程任务组(IETF)在2000年10月发布了RFC 2960《Stream Control Transmission Protocol》标准,设计用于在IP网络传输PSTN信令消息,但也能够有更广泛地应用,例如Web RTC。目前,RFC 2960在2002年9月被RFC 3309进行了部分更新;RFC 2960在2007年9月被RFC 4960进行了替代更新;而后RFC 4960在2022年6月又被RFC 9260进行了第二次替代更新。RFC 9260取代了RFC 4960. 并结合了RFC 6096中块标志注册表的规范和RFC 7053中I比特DATA块的规范。上述SCTP各版本的内容变化情况汇总于下表1-2中。
表 1-2:SCTP协议版本的内容变化情况
欲更多了解IETF的RFC文档情况介绍的请进入。
二、SCTP协议
1、简述
SCTP最先用于传送信令,其多流特性对电话信令的传输尤其适合,因为不是所有的信令消息都需要严格有序。只有那些与相同资源相关的信令(如同一呼叫,同一信道)才需要有序,而且由于其网络级容错特点(类似于提供迂回路由),可以保证信令传输的更高可靠性。因为SCTP能实现TCP及其各种主流改进版本的所有功能,并且弥补了TCP、UDP的一些不足,同时还具备一些更适宜数据健壮传输的新特点,所以获得了泛的应用。同时,SCTP协议本身也在不断完善和扩充,其作为一种通用传输协议的优点正在越来越多地显现出来。
和TCP类似,SCTP是面向连接、端到端、全双工、带有流量和拥塞控制的可靠传输协议。SCTP的连接称为关联。SCTP的关联通过4次握手建立。相对于TCP的3次握手建立连接,SCTP的关联能够抵御拒绝服务(DoS)攻击,从而提高了安全性。数据只有在关联建立之后与关联关闭之前才可发送。SCTP的关联通过3次握手关闭,不支持类似TCP的半关闭连接。也就是在任何一方关闭关联后,对方即不再发送数据。
SCTP是一种面向消息的传输协议,从上层应用传递下来的数据以消息的形式传输。SCTP提供消息的定界功能。在接收端,数据以消息的形式递交。为便于传输,SCTP提供消息的拆分和组装,以及消息的捆绑传输功能。SCTP的一个主要特点是支持多穴主机。SCTP关联的每个端点都可以拥有多个网络层地址。SCTP的另一主要特点是多流。SCTP消息在不同的流内发送,这也是流传输控制协议名称的由来。从发送端到接收端可以有多个流,在同一流内发送的消息有序,而不同流之间的消息无序,因此不同流之间的消息传输是相对独立的。在某一个流内由于数据传输失败而引起的阻塞不会影响其他流的消息递交。SCTP仍然采用类似TCP的流量控制和拥塞控制机制,但又有所增强。整个传输分为慢启动阶段和拥塞避免阶段。
2、关于SCTP的偶联机制
偶联机制是SCTP的一大突出功能。SCTP 偶联实际上是在两个 SCTP 端点间的一个对应关系,它包括了两个 SCTP 端点、以及包括验证标签和传送顺序号码等信息在内的协议状态信息,一个偶联可以由使用该偶联的 SCTP 端点用传送地址来惟一识别,在任何时候两个 SCTP 端点间都不会有多于一个的偶联。利用 SCTP偶联的机制(在偶联的一端或两端提供多归属的机制)来提供网络级的保证。
SCTP 实际上是一个面向连接的协议,但 SCTP 偶联的概念要比 TCP 的连接具有更广的概念,SCTP 协议提供了在两个 SCTP 端点间的一组传送地址之间建立偶联的方法,通过这些建立好的偶联,SCTP 端点可以发送 SCTP 分组。一个 SCTP偶联可以包含用多个可能的起源/目的地地址的组合,这些组合包含在每个端点的传送地址列表中。下图 2-2 给出了 SCTP 偶联在 IP 网络协议中的示意。
图 2-2:SCTP 偶联在 IP 网络协议中的示意
3、SCTP协议内容
SCTP的一些主要功能详见下表2-3。若要详细了解RFC 9260标准具体内容的请查询下附件2。
表 2-3:SCTP的主要功能
附件 2:RFC 9260(06/2022)《Stream Control Transmission Protocol》
三、SCTP协议的国内转化情况
我国在2002年6月参照RFC 2960标准转化为国内的标准,即YD/T 1194-2002《流控制传送协议(SCTP)》,它规定了流控制传送协议(SCTP)所使用的消息格式、编码和程序。该协议主要用于在IP网中传送PSTN的信令消息和IP网内的信令消息;主要适用于完成No.7信令与IP网互通的信令网关(SG)设备,以及IP网用于呼叫控制的软交换(Soft-Switch)交换机等设备的开发、生产、引进和购买。YD/T 1194-2002目前没有进一步的更新,但仍然有效。若要详细了解该通信行业标准具体内容的可查询下附件3。
附件 4:YD/T 1194-2002《流控制传送协议(SCTP)》
欲进一步了解因特网协议介绍的请进入。