SCTP在客户和服务器之间提供管理,并像TCP那样给应用提供可靠性,排序,流量控制以及全双工的数据传送,SCTP支持多宿而涉及不止两个地址。 SCTP是面向消息的。提供各个记录的按序递送服务。与UDP一样。由发送端写入的每条记录的长度随数据一道传递给接收端。同时SCTP不会因为一个消息的丢失阻塞统同一关联其他流上消息的投递。
SCTP提供多宿性,使得单个SCTP端点能够支持多个ip地址。增强应对网络故障的健壮性。
SCTP也是面向连接的 SCTP四路握手
SCTP 四路握手和TCP三次握手的区别
差别主要在于作为SCTP整体的cookie的生成。INIT随其众多参数一道承载一个验证标记Ta和一个初始化序列号J。在管理的有效期内,验证标记Ta必须在对端发送的每个分组中出现,初始序列号J用作承载用户数据的DATA块的起始序列号,对端也在INIT ACK中承载一个验证标记Tz,在关联有效期内,验证标记Tz也必须在其发送的每个分组中出现。除了验证标记Tz和初始化序列号K外,INIT的接收端还在作为响应的INIT ACK中提供了一个cookie C。该cookie包含设置本SCTP关联所需的所有状态。
SCTP关联终止
SCTP状态转换图
端口号的划分
在unix系统有保留端口的概念,指的是小于1024的任何端口,这些端口只能赋予特权童虎进程的套接字。所有的IANA众所周知的端口都是保留端口。
套接字对
一个TCP连接的套接字对是一个定义该连接的两个端点的四元组:
本地IP地址,本地TCP端口号,外地IP地址,外地TCP端口号。套接字对唯一标识一个网络上的每个TCP连接。SCTP在两个端点均非多宿简单情况下,同一关联可能需要多个四元组标识这些四元组的IP各部相同,但端口号是一样的。