SCTP协议详情详解
- 格式:doc
- 大小:169.50 KB
- 文档页数:11
SCTP协议解析多流传输控制协议的工作原理SCTP(Stream Control Transmission Protocol)是一种面向消息的传输层协议,设计用来提供可靠的、像数据流一样的传输服务。
SCTP是TCP和UDP的中间层,它将数据划分为多个消息,并通过多个流在网络中进行传输。
本文将详细解析SCTP协议的工作原理。
一、SCTP协议基本概念SCTP协议是IETF(Internet Engineering Task Force)定义的传输层协议之一。
与TCP相比,SCTP有以下几个重要特点:1. 多流传输:SCTP可以在单个连接上同时传输多个独立的数据流,每个流都有自己的序列号。
2. 可靠性:SCTP使用确认机制来保证数据的可靠传输,同时支持选择重传、快速重传、拥塞控制等功能。
3. 部分可靠性:SCTP可以对传输的消息进行部分可靠性传输,也就是只传输消息的一部分,可以用于传输多媒体数据等实时应用。
4. 心跳机制:SCTP提供心跳机制用于检测连接的存活状态,如果连接超过一定时间没有收到心跳包,会认为连接已断开。
5. 多宿主支持:SCTP可以在多个IP地址之间进行切换,适用于移动设备等场景。
二、SCTP协议工作原理SCTP使用握手过程来建立连接,并通过多个流进行数据传输。
下面是SCTP协议的基本工作原理:1. 握手过程:a. 客户端发送INIT包到服务器端,请求建立连接。
b. 服务器端收到INIT包后,发送INIT ACK包进行应答。
c. 客户端收到INIT ACK包后,发送COOKIE ECHO包,包含一个cookie。
d. 服务器端收到COOKIE ECHO包后,发送COOKIE ACK包,确认连接建立。
e. 握手过程完成,连接建立成功。
2. 数据传输:a. 数据划分成多个消息,每个消息包含一个流标识和序列号。
b. 将每个消息封装成SCTP数据包,并通过底层的IP层进行传输。
c. 接收端通过序列号和流标识来组装消息,保证数据的准确性和完整性。
SCTP协议介绍SCTP(Stream Control Transmission Protocol)是一种传输层协议,它提供了可靠的、面向消息的数据传输。
SCTP的设计目标是克服TCP在一些场景下的不足,如支持多个流、提供更好的带宽利用和网络拥塞控制等。
SCTP的出现使得传输层协议的选择更加多样化,适用于更广泛的应用场景。
SCTP与TCP和UDP的最大区别在于它是面向消息的。
在TCP和UDP中,数据流由字节流组成,而在SCTP中,数据被划分为多个独立的消息。
每个消息都有自己的序号,这样可以确保消息的顺序传递以及有序交付。
这对于那些需要传输连续的数据流的应用非常有用,如实时音视频通信、实时游戏等。
SCTP还提供了流控制功能,即允许应用程序同时发送多个消息流,以便更好地利用网络带宽。
每个消息流都有自己的流标识符,这样可以确保发送端和接收端在组合和重新排列消息时,能够正确地将它们归组到正确的流中。
这对于那些需要同时进行多个独立数据传输的应用非常有用。
另外,SCTP还提供了可选的有选择性重传机制,允许发送端选择重传丢失的消息,而不需要重传整个消息流。
这样可以避免网络拥塞和带宽浪费。
SCTP还提供了流量控制和拥塞控制机制,以优化网络资源的使用。
SCTP还支持多宿主端口号分配,这意味着应用程序可以使用多个IP地址和端口号来进行通信。
这对于提供高可用性和负载均衡非常有用。
另一个SCTP的重要特性是它的多点传输能力。
在传统的TCP和UDP 中,数据的发送和接收通过端到端的方式进行,而SCTP允许在同一会话中的多个终端之间进行点对点的数据传输。
这对于那些需要与多个节点进行通信的应用非常有用,如多路视频会议、实时监控等。
SCTP的设计目标之一是提高网络的安全性。
SCTP提供了四种安全性选项,包括同时使用多个密钥进行消息传输、对消息的认证和加密等。
这些安全选项可以确保数据的机密性和完整性,防范恶意攻击和数据篡改。
总的来说,SCTP是一种功能强大的传输层协议,适用于多种应用场景。
sctp协议解析流程SCTP协议解析流程一、引言SCTP(Stream Control Transmission Protocol)是一种可靠的传输层协议,旨在提供高可靠性、顺序传输和流控制的数据传输。
本文将介绍SCTP协议的解析流程,包括SCTP的报文格式、连接建立和维护、数据传输和连接的释放等过程。
二、SCTP报文格式SCTP协议的报文格式由报头和数据部分组成。
报头包含了一些重要的字段,如源端口号、目的端口号、校验和等。
数据部分则用于携带具体的应用层数据。
SCTP报文的格式与TCP和UDP有些不同,但也有相似之处。
三、连接建立和维护SCTP协议使用四次握手来建立连接。
与TCP的三次握手不同,SCTP在建立连接时需要进行四次握手,这是为了提供更高的可靠性和灵活性。
四次握手的过程包括初始化、参数交换、确认和最终确认。
四、数据传输SCTP协议通过流标识来实现多流传输。
每个SCTP连接可以有多个流,每个流都有自己的流标识。
数据传输过程中,发送方将数据分成多个数据块,每个数据块都包含了流标识,接收方根据流标识将数据块重新组装成完整的数据。
这种方式可以提高数据传输的效率和可靠性。
五、连接释放SCTP协议的连接释放过程也与TCP有所不同。
SCTP使用四次挥手来关闭连接,保证数据的完整性和可靠性。
四次挥手的过程包括发送端停止发送数据、接收端确认停止发送、接收端停止发送数据和发送端确认停止发送。
通过这样的过程,SCTP可以保证数据的完整传输,并释放连接资源。
六、SCTP协议的优势相对于TCP和UDP,SCTP协议具有以下优势:1. 多流传输:SCTP支持多个流的传输,可以同时传输多个应用层数据,提高数据传输的效率。
2. 可靠性:SCTP协议提供了可靠的传输机制,能够保证数据的顺序传输和完整性。
3. 流控制:SCTP协议支持流控制机制,可以根据接收方的处理能力调整发送速率,避免因发送过快导致的数据丢失。
4. 故障恢复:SCTP协议支持故障恢复机制,可以在连接断开后重新建立连接,保证数据的可靠传输。
SCTP协议详解SCTP(Stream Control Transmission Protocol)是一种传输层协议,旨在提供可靠的、有序的、多流的传输服务。
它在传输层与应用层之间起到桥梁的作用,为应用程序提供可靠的数据传输服务。
一、引言SCTP协议是为了满足现代通信网络对可靠性、延时和带宽的需求而设计的。
它具有许多优点,如支持多流传输、提供可靠的数据传输、具备拥塞控制机制等。
本协议详解将对SCTP协议的工作原理、协议头格式、连接管理、流控制、拥塞控制等方面进行详细介绍。
二、SCTP协议的工作原理SCTP协议通过将数据划分为多个消息块(Chunk)来进行传输。
每个消息块都有自己的序列号,以确保数据的有序性和完整性。
SCTP协议使用IP地址和端口号来标识通信双方的端点,通过端点之间的连接来进行数据传输。
三、协议头格式SCTP协议头由公共头部和多个块组成。
公共头部包含了一些基本的信息,如源端口号、目的端口号、校验和等。
块是SCTP协议中最基本的数据单元,用于承载数据和控制信息。
常见的块类型包括数据块、初始化块、心跳块等。
四、连接管理SCTP协议使用四次握手来建立连接。
首先,客户端向服务器发送一个初始化请求,服务器收到请求后回复一个初始化应答。
然后,客户端再次向服务器发送一个初始化确认,服务器收到确认后连接建立完成。
连接建立后,双方可以通过发送数据块来进行通信。
五、流控制SCTP协议支持多流传输,每个流都有自己的序列号。
发送方可以通过发送SACK(Selective Acknowledgement)来告知接收方哪些数据已经接收到。
接收方可以根据SACK的信息进行流控制,调整接收窗口的大小,以控制发送方的发送速率。
六、拥塞控制SCTP协议具备拥塞控制机制,以确保网络的稳定性和公平性。
发送方通过监测网络的拥塞状态来调整发送速率,以避免网络拥塞。
SCTP协议使用拥塞窗口来控制发送速率,当网络拥塞时,发送方会减小拥塞窗口的大小,以降低发送速率。
SCTP协议流控制传输协议SCTP(Stream Control Transmission Protocol,流控制传输协议)是一种面向消息的传输层协议,旨在提供可靠的、面向连接的数据传输服务。
它是OSI参考模型中传输层的一部分,与TCP和UDP相比,SCTP具有更多的特性和功能。
1. SCTP的介绍SCTP是IETF(Internet Engineering Task Force,互联网工程任务组)在1999年提出的一种新型传输协议。
它的设计目标是克服TCP和UDP在面对某些特定应用场景时的局限性。
与TCP类似,SCTP也是面向连接的,但它提供了更好的传输可靠性和更灵活的数据流控制。
2. SCTP的主要特性2.1 多流SCTP支持在一个连接上同时传输多个独立的数据流,每个流都有一个唯一的标识符。
这种特性可以使得SCTP在多个应用并发传输时更有效地利用网络资源。
2.2 完全可靠性SCTP保证数据的可靠传输,通过传输确认和超时重传机制,可以确保数据的完整性和正确性。
与TCP不同的是,SCTP提供了更细粒度的重传机制,可以实现消息级别的重传,而不是字节级别的重传。
2.3 部分可靠性SCTP支持部分可靠性传输,可以指定某些消息只需要被送达一次或者按照指定的顺序送达。
这种特性在实时通信和流媒体等应用中非常有用。
2.4 心跳机制SCTP通过定期发送心跳消息来监测连接的健康状态,一旦发现连接异常就会采取相应的措施。
这种心跳机制可以提高连接的稳定性和可靠性。
2.5 无序传输SCTP支持无序传输,允许发送方根据需要改变消息的传输顺序,在一定程度上提高了消息的传输效率。
2.6 增强的安全性SCTP可以通过TLS(Transport Layer Security,传输层安全)协议来保证传输的安全性,并且支持使用IPSec(Internet Protocol Security,网络协议安全)来对数据进行加密和认证。
3. SCTP的应用场景3.1 VoIP和视频通话SCTP可以提供较低的延迟和更好的音视频质量,适合用于实时通信应用,如VoIP(Voice over IP,网络电话)和视频通话。
网络协议知识:SCTP协议的定义和应用场景SCTP协议,全称为Stream Control Transmission Protocol,是一种传输层协议。
与TCP和UDP不同,SCTP提供多个消息流,每个消息流可以独立传输数据。
因此,SCTP具有很高的容错性、可靠性和安全性。
SCTP协议最初是为了解决VoIP通信中的一些问题而设计的。
在VoIP通信中,音频流和控制流需要独立传输,同时需要保证音频流的时延和丢包率。
SCTP协议正是为了解决这些问题而出现的。
SCTP协议具有以下几个主要应用场景:1. VoIP通信在VoIP通信中,SCTP协议可以提供多个消息流,分别用于传输音频流和控制流。
这样可以保证音频流的时延和丢包率,并且避免控制消息对音频流的影响。
2.网络存储SCTP协议可以用于网络存储中,用于在存储节点之间传输数据。
由于SCTP协议提供了多个消息流,因此可以同时传输多个数据流,提高传输效率。
3.流媒体传输在流媒体传输中,SCTP协议可以用于传输视频流和音频流。
由于SCTP协议支持多个消息流,可以实现并行传输,提高传输效率和稳定性。
4.数据中心网络在数据中心网络中,SCTP协议可以用于传输大量的数据流。
由于SCTP协议支持分片和聚合,可以将大数据流分为多个小数据流,同时聚合多个小数据流进行传输,提高传输效率。
SCTP协议还具有以下几个特点:1.多路复用:SCTP协议可以提供多个消息流,每个消息流都有独立的序列号,可以独立传输数据。
这样可以避免数据包的阻塞和互相干扰。
2.安全性高:SCTP协议支持消息级加密、完整性保护和认证。
这样可以保证数据的安全传输。
3.容错性高:SCTP协议支持多路径传输,可以避免网络中某个路径的故障导致数据传输中断。
同时,SCTP协议还具有重传机制,可以在数据传输出现错误时进行重传,保证数据的可靠性。
4.灵活性:SCTP协议支持可选择性握手,可以根据需要选择是否进行握手,同时还支持并发打开和关闭连接。
sctp协议SCTP协议。
SCTP(Stream Control Transmission Protocol)是一种传输层协议,最初由IETF (Internet Engineering Task Force)在RFC 2960中定义。
SCTP旨在提供一种可靠的、高性能的传输协议,以满足现代网络对数据传输的需求。
SCTP协议具有许多优点,使其在一些特定的应用场景中得到了广泛的应用。
首先,SCTP协议提供了多流(multi-streaming)和多路复用(multi-homing)的功能,这使得它在面对丢包和网络故障时能够更加灵活地处理数据传输。
其次,SCTP协议支持消息边界的特性,这意味着它能够保持消息的完整性,而不会像TCP那样出现粘包的问题。
此外,SCTP协议还具有内建的拥塞控制和流量控制机制,能够更好地适应网络的负载情况,从而提高了网络的稳定性和可靠性。
在实际的网络应用中,SCTP协议被广泛应用于一些对可靠性和性能要求较高的场景中。
例如,在VoIP(Voice over Internet Protocol)和视频会议等实时通信应用中,SCTP协议能够更好地保证数据的传输质量,降低了数据丢失和延迟,提高了用户体验。
此外,SCTP协议还被用于一些对安全性要求较高的应用中,例如在一些金融交易系统中,SCTP协议能够提供更加可靠和安全的数据传输机制,保护了数据的完整性和机密性。
然而,尽管SCTP协议具有许多优点,但它在实际应用中仍然面临一些挑战。
首先,由于SCTP协议相对较新,因此在一些旧的网络设备和系统中可能不太兼容,这就限制了SCTP协议的推广和应用。
其次,SCTP协议在一些特定的网络环境下可能会受到限制,例如在一些防火墙和网络设备中可能会对SCTP流量进行过滤和限制,这就会影响SCTP协议的正常使用。
总的来说,SCTP协议作为一种新型的传输协议,在网络领域具有广阔的应用前景。
随着网络技术的不断发展和完善,相信SCTP协议将会得到更广泛的应用,为网络通信提供更加可靠和高效的数据传输机制。
SCTP协议详解SCTP 被视为一个传输层协议,它的上层为SCTP 用户应用,下层作为分组网络。
在SIGTRAN 协议的应用中,SCTP 上层用户是SCN 信令的适配模块(如M2UA、M3UA),下层是IP 网。
目录∙SCTP相关术语∙SCTP功能∙SCTP 基本信令流程SCTP相关术语1. 传送地址传送地址由 IP 地址、传输层协议类型和传输层端口号定义。
由于SCTP 在IP 上传输,所以一个SCTP 传送地址由一个IP 地址加一个SCTP 端口号决定。
SCTP 端口号就是SCTP 用来识别同一地址上的用户,和TCP 端口号是一个概念。
比如IP 地址10.105.28.92 和SCTP 端口号1024 标识了一个传送地址,而10.105.28.93 和 1024 则标识了另外一个传送地址,同样,10.105.28.92 和端口号1023 也标识了一个不同的传送地址。
2. 主机和端点主机(Ho ST)主机配有一个或多个 IP 地址,是一个典型的物理实体。
端点(SCTP Endpoint)端点是SCTP 的基本逻辑概念,是数据报的逻辑发送者和接收者,是一个典型的逻辑实体。
一个传送地址(IP 地址+SCTP 端口号)唯一标识一个端点。
一个端点可以由多个传送地址进行定义,但对于同一个目的端点而言,这些传送地址中的IP 地址可以配置成多个,但必须使用相同的SCTP 端口。
3. 偶联和流偶联(Associ ATION)偶联就是两个 SCTP 端点通过SCTP 协议规定的4 步握手机制建立起来的进行数据传递的逻辑联系或者通道。
SCTP 协议规定在任何时刻两个端点之间能且仅能建立一个偶联。
由于偶联由两个端点的传送地址来定义,所以通过数据配置本地IP 地址、本地SCTP 端口号、对端 IP 地址、对端SCTP 端口号等四个参数,可以唯一标识一个SCTP 偶联。
正因为如此,在GTSOFTX3000 中,偶联可以被看成是一条M2UA 链路或M3UA 链路。
SCTP通讯协议简介SCTP(Stream Control Transmission Protocol)是一种可靠的、面向消息的传输层协议。
它在IP(Internet Protocol)之上提供可靠的传输服务,并且在保证消息可靠性的同时,还能提供流量控制和拥塞控制等功能。
SCTP最初被设计用于传输电信行业中的信令消息,但现在也被广泛用作网页应用、视频流传输、实时通信等领域。
特性1. 多流复用SCTP通过多流复用机制,使得多个数据流能够独立传输。
这种机制可以提高网络性能和吞吐量,尤其是在高延迟和丢包率较高的网络环境下。
同时,多流复用还可以保持数据流之间的顺序性,以确保接收方能够正确地重建发送方的消息。
2. 心跳机制SCTP引入了心跳机制,用于检测通信双方的存活状态。
发送方周期性地向接收方发送心跳包,接收方在收到心跳包后会回复确认信息。
如果发送方在规定的时间内没有收到确认信息,就会认为接收方已经断开连接,并进行相应的处理。
心跳机制可以有效避免网络超时等问题,提高通信的稳定性和可靠性。
3. 失序重组SCTP支持消息级别的传输,即将发送方的数据分成多个消息,并在接收方重新组装。
这个过程中,即使数据包在传输过程中发生乱序,接收方依然能够正确地拼接消息。
这种特性对于实时通信和视频流传输等应用非常关键,可以保证数据的完整性和实时性。
4. 拥塞控制SCTP拥塞控制是基于TCP的拥塞控制算法进行改进,并针对多流场景进行优化。
通过动态调整发送方的传输速率,SCTP可以在网络拥塞时降低数据的丢失率,并避免网络的过载。
拥塞控制还可以根据网络状况动态调整传输的窗口大小,以进一步提高网络性能。
SCTP的应用场景SCTP在以下多个领域都有广泛应用:1. 电信信令SCTP最早被用于电信行业中的信令传输。
在传统的电路交换网络中,信令用于传输呼叫建立、终止和状态同步等信息。
SCTP的可靠性和高吞吐量使得它成为了信令传输的理想选择。
sctp协议实例下面我们通过一个实际的SCTP协议实例来详细介绍SCTP协议的工作原理和应用。
假设有一个网络电话应用,我们使用SCTP协议来传输语音数据。
在这个应用中,有两个用户A和B,他们通过网络电话进行通话。
下面我们来详细描述SCTP协议在这个应用中的工作过程。
首先,用户A和用户B分别启动他们的网络电话应用,然后分别连接到网络电话服务器。
网络电话服务器上运行着SCTP协议栈,它负责与用户A和用户B进行通信。
当用户A和用户B连接到服务器后,它们就会建立起与服务器的SCTP连接。
在SCTP连接建立之后,用户A和用户B就可以开始进行通话了。
他们的语音数据会被分割成多个数据块,然后通过SCTP连接传输到对方。
SCTP协议会保证这些数据块会按照发送顺序到达对方,并且不会丢失或者重复。
同时,SCTP还会对传输的数据进行校验,以确保数据的完整性。
在网络电话应用中,延迟对通话质量有重要影响,SCTP协议通过多路复用和分段重组机制来减小传输时延。
当用户A和B同时进行通话时,他们的数据会被分别打包成不同的数据块,然后通过同一个SCTP连接传输到对方。
这样可以减小传输时延,并且提高通话质量。
此外,SCTP还支持流量控制和拥塞控制功能,它可以根据网络的状况来动态调整数据传输的速度,以确保网络的稳定性和可靠性。
当用户A和用户B通话结束后,他们分别关闭与服务器的SCTP连接,然后退出网络电话应用。
在这个过程中,SCTP协议会释放所有与这两个用户相关的资源,并且进行一些清理工作,以确保服务器的稳定运行。
总的来说,SCTP协议在网络电话应用中发挥了重要作用。
它提供了可靠的数据传输,同时通过一些特有的机制来减小传输时延,并且保证了通话的质量。
因此,SCTP协议在实际应用中具有广泛的应用前景。
SCTP协议详解SCTP 被视为一个传输层协议,它的上层为SCTP 用户应用,下层作为分组网络。
在SIGTRAN 协议的应用中,SCTP 上层用户是SCN 信令的适配模块(如M2UA、M3UA),下层是IP 网。
目录•SCTP相关术语•SCTP功能•SCTP 基本信令流程SCTP相关术语1. 传送地址传送地址由IP 地址、传输层协议类型和传输层端口号定义。
由于SCTP 在IP 上传输,所以一个SCTP 传送地址由一个IP 地址加一个SCTP 端口号决定。
SCTP 端口号就是SCTP 用来识别同一地址上的用户,和TCP 端口号是一个概念。
比如IP 地址10.105.28.92 和SCTP 端口号1024 标识了一个传送地址,而10.105.28.93 和1024 则标识了另外一个传送地址,同样,10.105.28.92 和端口号1023 也标识了一个不同的传送地址。
2. 主机和端点主机(Ho ST)主机配有一个或多个IP 地址,是一个典型的物理实体。
端点(SCTP Endpoint)端点是SCTP 的基本逻辑概念,是数据报的逻辑发送者和接收者,是一个典型的逻辑实体。
一个传送地址(IP 地址+SCTP 端口号)唯一标识一个端点。
一个端点可以由多个传送地址进行定义,但对于同一个目的端点而言,这些传送地址中的IP 地址可以配置成多个,但必须使用相同的SCTP 端口。
3. 偶联和流偶联(Associ ATION)偶联就是两个SCTP 端点通过SCTP 协议规定的4 步握手机制建立起来的进行数据传递的逻辑联系或者通道。
SCTP 协议规定在任何时刻两个端点之间能且仅能建立一个偶联。
由于偶联由两个端点的传送地址来定义,所以通过数据配置本地IP 地址、本地SCTP 端口号、对端IP 地址、对端SCTP 端口号等四个参数,可以唯一标识一个SCTP 偶联。
正因为如此,在GTSOFTX3000 中,偶联可以被看成是一条M2UA 链路或M3UA 链路。
流(Stream)流是SCTP 协议的一个特色术语。
SCTP 偶联中的流用来指示需要按顺序递交到高层协议的用户消息的序列,在同一个流中的消息需要按照其顺序进行递交。
严格地说,“流”就是一个SCTP 偶联中,从一个端点到另一个端点的单向逻辑通道。
一个偶联是由多个单向的流组成的。
各个流之间相对独立,使用流ID 进行标识,每个流可以单独发送数据而不受其他流的影响。
4. 通路(Path)和首选通路(Primary Path)通路(Path)通路是一个端点将SCTP 分组发送到对端端点特定目的传送地址的路由。
如果分组发送到对端端点不同的目的传送地址时,不需要配置单独的通路。
首选通路(Primary Path)首选通路是在默认情况下,目的地址、源地址在SCTP 分组中发到对端端点的通路。
如果可以使用多个目的地地址作为到一个端点的目的地址,则这个SCTP 端点为多归属。
如果发出SCTP 分组的端点属于多归属节点时,如果定义了目的地址、源地址,能够更好控制响应数据块返回的通路和数据包被发送的接口。
一个SCTP 偶联的两个SCTP 端点都可以配置多个IP 地址,这样一个偶联的两个端点之间具有多条通路,这就是SCTP 偶联的多地址性。
SCTP 偶联的多地址性是SCTP 与TCP 最大的不同。
一个偶联可以包括多条通路,但只有一个首选通路。
如图1所示,MGC(如GTSOFTX3000)一个端点包括两个传送地址(10.11.23.14:2905 和10.11.23.15:2905),而SG 一个端点也包括两个传送地址(10.11.23.16:2904 和10.11.23.17:2904)。
图1 SCTP 双归属此两个端点决定了一个偶联,该偶联包括4 条通路(Path0、Path1、Path2 和Path3)。
根据数据配置可以确定此4 条通路的选择方式,如图2所示。
图中定义了4 条通路,而且首选通路为Path0:Path0:本端传送地址1(10.11.23.14:2905)发送SCTP 分组到对端传送地址1(10.11.23.16:2904)。
Path1:本端传送地址1(10.11.23.14:2905)发送SCTP 分组到对端传送地址2(10.11.23.17:2904)。
Path2:本端传送地址2(10.11.23.15:2905)发送SCTP 分组到对端传送地址1(10.11.23.16:2904)。
Path3:本端传送地址2(10.11.23.15:2905)发送SCTP 分组到对端传送地址2(10.11.23.17:2904)。
端点发送的SCTP 工作原理为:本端点传送地址A 发送的SCTP 包通过首选通路发送到对端端点。
当首选通路出现故障后,SCTP 可以自动切换到其他备用通路上,优先切换对端端点的传送地址,再次切换本端端点的传送地址。
SCTP 定义了心跳消息(Heart Beat)。
当某条通路空闲时,本端SCTP 用户要求SCTP 生成相应的心跳消息并通过该通路发送到对端端点,而对端端点必须立即发回对应的心跳确认消息。
这种机制被用来精确测量回路时延RTT(Round Trip TI me),而且可以随时监视偶联的可用情况和保持SCTP 偶联的激活状态。
图2 确定通路选择方式的数据配置5. TSN 和SSN传输顺序号TSN(Transmission Sequence Number)SCTP 使用TSN 机制实现数据的确认传输。
一个偶联的一端为本端发送的每个数据块顺序分配一个基于初始TSN 的32 位顺序号,以便对端收到时进行确认。
TSN 是基于偶联进行维护的。
流顺序号SSN(Stream Sequence Number)SCTP 为本端在这个流中发送的每个数据块顺序分配一个16 位SSN,以便保证流的顺序传递。
在偶联建立时,所有流中的SSN 都是从0 开始。
当SSN 到达65535 后,则接下来的SSN 为0。
TSN 和SSN 的分配是相互独立的。
6. 拥塞窗口CWND(Congestion Window)SCTP 也是一个滑动窗口协议,拥塞窗口是针对每个目的地址维护的,它会根据网络状况调节。
当目的地址的发送未证实消息长度超过其CWND 时,端点将停止向这个地址发送数据。
7. 接收窗口RWND(Receive Window)RWND 用来描述一个偶联对端的接收缓冲区大小。
偶联建立过程中,双方会交换彼此的初始RWND。
RWND 会根据数据发送、证实的情况即时地变化。
RWND 的大小限制了SCTP 可以发送的数据的大小。
当RWND 等于0 时,SCTP 还可以发送一个数据报,以便通过证实消息得知对方缓冲区的变化,直到达到CWND 的限制。
8. 传输控制块TCB(Transmission Control Block)TCB 是一种部数据结构,是一个SCTP 端点为它与其他端点之间已经启动的每一个偶联生成的。
TCB 包括端点的所有状态、操作信息,便于维护和管理相应的偶联。
SCTP功能如图所示,SCTP 的功能主要包括:偶联的建立和关闭、流消息顺序递交、用户数据分段、证实和避免拥塞、消息块绑定、分组的有效性和通路管理。
图SCTP 功能示意图1、偶联的建立和关闭偶联的建立是由SCTP 用户(如M2UA、M3UA 等)发起请求来启动的。
而且建立过程相对于TCP 连接而言比较复杂,是个“四次握手”过程,并用到了“CO OKI E”的机制。
COOKIE 是一个含有端点初始信息和加密信息的数据块,通信的双方在关联建立时需要处理并交换,从而增加协议的安全性,防止拒绝服务和伪装等潜在的攻击。
SCTP 提供了对激活偶联的正常的关闭程序,它必须根据SCTP 用户的请求来执行,当然SCTP 也提供一种非正常(即中止)程序,中止程序的执行既可以根据SCTP 用户的请求来启动,也可以由SCTP 协议检查出差错来中止。
SCTP 不支持半打开状态(即一端可以在另一端结束后继续发送数据)。
无论是哪个端点执行了关闭程序,偶联的两端都应停止接受从SCTP 用户发来请求原语。
2、流消息顺序递交SCTP 提供数据报的顺序传递,顺序传递的数据报必须放在一个“流”中传递。
流是顺序传递的基石。
通过流,SCTP 将数据的确认和传输的有序递交分成两种不同机制。
SCTP 使用TSN 机制实现了数据的确认传输,使用流号和SSN(流顺序号)则实现数据的有序递交。
当SCTP 收到数据的SSN 连续的时候,SCTP 就可以将数据向SCTP 用户递交,而不用等到数据的TSN 号连续以后才向SCTP 用户递交。
当一个流被闭塞时,期望的下一个连续的SCTP 用户消息可以从另外的流上进行递交。
SCTP 也提供非顺序递交的业务,接收到的用户消息可以使用这种方式立即递交到SCTP 用户,而不需要保证其接收顺序。
3、用户数据分段SCTP 通过对传送通路上最大PMTU(Path Maximum TransmissiON Unit)的检测,实现在SCTP 层将超大用户数据分片打包,避免在IP 层的多次分片、重组,可以减少IP 层的数据负担。
在发送端,SCTP 可以对大的用户数据报进行分片以确保SCTP 数据报传递到低层时适合通路MTU(Maximum Transmission Unit)。
在接收端,SCTP 将分片重组为完整的用户数据报,然后传递给SCTP 用户。
4、证实和避免拥塞证实和重传是协议保证传输可靠性的策略,SCTP 也一样。
证实机制是SCTP 保证传输可靠性的基石。
避免拥塞沿袭了TCP 的窗口机制,进行合适的流量控制。
??SCTP 在将数据(数据分片或未分片的用户数据报)发送给底层之前顺序地为之分配一个发送顺序号(TSN)。
TSN 和SSN(流顺序号)是相互独立的,TSN 用于保证传输的可靠性,SSN 用于保证流消息的顺序传递。
TSN 和SSN 在功能上使可靠传递和顺序传递分开。
接收端证实所有收到的TSNs,即使其中有些尚未收到。
包重发功能负责TSN 的证实,还负责拥塞消除。
5、消息块绑定如果长度很短的用户数据被带上很大一个SCTP 消息头,其传递效率会很低,因此,SCTP 将几个用户数据绑定在一个SCTP 报文里面传输,以提高带宽的利用率。
SCTP 分组由公共分组头和一个/多个信息块组成,信息块可以是用户数据,也可以是SCTP 控制信息。
SCTP 用户能够可选地使用捆绑功能,决定是否将多个用户数据报捆绑在一个SCTP 分组中。
为提高效率,拥塞/重发时,捆绑功能可能仍被执行,即使用户已经禁止捆绑。
6 、分组的有效性分组的有效性是SCTP 提供无差错传输的基石。
SCTP 分组的公共分组头包含一个验证标签(VerificATIon Tag)和一个可选的32 位校验码(Checksum)。