HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedInternal参考资料RFC2960《StreamControlTransmissionProtocol》RFC3331《SignalingSystem7(SS7)MessageTransferPart2(MTP2)—UserAdaptationLayer》RFC3332《SignalingSystem7(SS7)MessageTransferPart3(MTP3)—UserAdaptationLayer(M3UA)》HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage2第1章SIGTRAN概述第2章SCTP协议分析第3章M2UA/M3UA协议分析HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage3传统SS7信令协议栈MTP1MTP2BSSAPSCCPTCAPTUPMAP/CAPMTP3ISUP网络的全IP化发展趋势导致信令将会基于IP传输DSS1Q.921LAPV5V5.2HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage4IPMTP3SCTPM3UAM2UAM2PAIUAV5UADSS1V5.2BSSAPSCCPTCAPTUPMAP/CAPISUP适配层传输层SIGTRAN协议栈结构HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage5第1章SIGTRAN概述第2章SCTP协议分析第3章M2UA/M3UA协议分析HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage6产生背景:SCTP(StreamingContronlTransmissionProtocol)制定以前,在IP网上传输信令使用的是UDP或TCP协议。UDP是一种无连接的传输协议,无法满足PSTN信令对传输质量的要求。对TCP的缺陷进行了完善,能更好的满足信令在IP网络中的传输。SCTPTCP具有行头阻塞、实时性差、支持多归属比较困难、易受拒绝服务攻击(DoS)的缺陷。SCTP协议产生背景HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage7SCTP协议特点SCTP协议优点可靠性可靠性可靠性安全性IPSCTPM3UA/M2UA/M2PA…SCTP在协议栈中的位置与UDP、TCP相同,SCTP也处于传输层脱胎于TCP而优于TCP,使用范畴远超过SIGTRAN基于用户消息包的传输协议;支持流内用户数据报的顺序或无序传递;通过在偶联的一端或两端支持多归属,提高偶联的可靠性;偶联建立需经过COOKIE的认证,保证了偶联的安全性;可以在一个偶联中建立多个流,流之间数据的传输互不干涉;HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage8基本概念:SCTP传输地址SCTP传输地址=IP地址+SCTP端口号HostAIPSCTP端点标识:SCTP端口号端点标识:IP地址IP地址SCTP端口号10.105.28.92318010.105.28.92318110.105.28.933180举例:下面是3个不同的传输地址HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage9基本概念:主机和端点SCTP端口1SCTP端口2主机IP1IP2用户1用户2IP层SCTP层应用层主机(Host):配有一个或多个IP地址,是一个典型的物理实体,如一台计算机。端点(SCTPEndpoint):是SCTP的基本逻辑概念,是数据报的发送和接收的典型逻辑实体。由一个或多个具有相同SCTP端口号的传输地址组成。端点1端点2HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage10基本概念:偶联和流主机1主机2流A流B偶联(Association):两个SCTP端点通过SCTP协议规定的4步握手机制建立起来的进行数据传递的逻辑联系或者说通道。流(Stream):一条SCTP偶联中,从一个端点到另一个端点的单向逻辑通道,是SCTP协议的一个特色术语。SCTP端点ASCTP端点B偶联偶联和流的关系一个偶联中可以包含1个或多个流,一个流必定属于仅属于一个偶联HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage11概念:通路和首选通路MGCSGPath0Path1Path2Path310.11.23.14:318010.11.23.15:318010.11.23.16:318110.11.23.17:3181通路(PATH):是一个端点将SCTP分组发送到对端端点特定目的传送地址的路由。一个偶流可以包含多条通路,如上图MGC到SG的通路有4条。首选通路(PATH):是在默认情况下,目的地址、源地址在SCTP分组中发到对端端点的通路,即传数据时优先选用的通路。只有在首选通路故障时,才选择其他通路传送数据。HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage12注意:TSN和SSN的分配是相互独立的基本概念:TSN和SSNTSN(传输顺序号)TransmissionSequenceNumberSSN(流顺序号)StreamSequenceNumber定义SCTP偶联的一端为本端发送的每个数据块按序分配的序列号。在SCTP一个偶联的每个流内,为本端在这个流中发送的每个数据块顺序分配的顺序号。功能保证偶联内所有传送数据的可靠性保证流内所有数据的传递顺序性作用对象整个偶联单个流取值情况32位,在偶联内唯一16位,在流内唯一HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage13TSN及SSN如下表一个连接的端点X使用两个输出流和端点Y相连。有数据块A,B,C,D要依次发送,A,B要求顺序:A走流1,B走流1,C走流1,D走流2。则各数据块分配到的假设:TSN和SSN序号分配举例数据块TSNSSN所属流A11流1B22流1C33流1D41流2HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage14拥塞窗口(CWND):定义:SCTP也是一个滑动窗口协议,拥塞窗口是针对每个目的地址维护的,当目的地址的发送未证实消息长度超过其CWND时,端点将停止向这个地址发送数据,以防拥塞。传输控制块(TCB):定义:TCB是一种内部数据结构,是一个SCTP端点为它与其他端点之间已经启动的每一个偶联生成的。TCB包括端点的所有状态、操作信息,便于维护和管理相应的偶联。定义:用来描述一个偶联对端的接收缓冲区大小,RWND的大小限制了SCTP可以发送的数据的大小,达到流控目的。偶联建立过程中,双方会交换彼此的初始RWND。接收窗口(RWND):拥塞窗口、接收窗口、传输控制块HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage15SCTP功能介绍:偶联建立和关闭SCTP功能模块图偶联的建立和关闭通路管理分组有效性数据块绑定证实和避免拥塞用户数据分段流内顺序传递偶联的建立与关闭功能说明:偶联的建立是SCTP数据传送的基础。建立过程:四次握手、COOKIE机制关闭过程:正常关闭、非正常关闭HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage16SCTP功能介绍:流内顺序传输SCTP功能模块图偶联的建立和关闭通路管理分组有效性数据块绑定证实和避免拥塞用户数据分段流内顺序传递流内顺序传递功能说明:使SCTP具有提供数据报顺序传输的能力实现机制:流的传输模式,SSN的使用HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage17SCTP功能介绍用户数据分段功能说明:传送通路上最大PMTU(PathMaximumTransmissionUnit)的检测,实现在SCTP层将超大用户数据分片打包。实现机制:发端分片,收端重组。证实和避免拥塞功能说明:是SCTP协议保证传输可靠性和防止拥塞的策略。实现机制:TSN保障可靠性,窗口机制控制拥塞HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage18SCTP功能介绍数据块绑定功能说明:提高SCTP传送上层用户数据时的带宽利用率。实现机制:将多个用户数据捆绑在一起发送。分组的有效性功能说明:检测分组的有效性,保证SCTP传送的分组的无差错。实现机制:验证标签、校验码HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage19SCTP功能介绍:流内顺序传输SCTP功能模块图偶联的建立和关闭通路管理分组有效性数据块绑定证实和避免拥塞用户数据分段流内顺序传递通路管理功能说明:检验通路的可用性实现机制:心跳机制HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage20备注:数据块的总长度(包括类型、长度和取值长度)必须是4字节的整数倍,如果该长度不是4字节的整数倍,则发送方应当向数据块中填充全0的字节,这些填充的字节不计入数据块长度字段。SCTP消息结构16bit16bitSourcePortDestionationPortVerificationTagChecksumTypeFlagsLengthUserDataTypeFlagsLengthUserData数据块n…数据块1公共头HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage21SCTP数据块消息类型名称说明DATA(净数据)传输的用户数据块。SACK该数据块送至对端,以确认收到DATA块,并且通知对端DATA的接收顺序间隙。INIT用于发起两个端点之间的SCTP连接。INITACK用来确认SCTP连接的发起消息(INIT)。COOKIEECHO仅用于连接发起过程,它由连接的发起者发送至对端以完成发起程序。COOKIEACKCOOKIE证实,相对于COOKIEECHOHEARTBEAT端点发送该数据块至对端,以检测当前连接中定义的某一目的地址的可达性。HEARTBEATACK响应HEARTBEAT消息。ABORT关闭连接。SHUTDOWN连接中的一个端点对其连接发起一个GRACEFUL关闭。SHUTDOWNACK响应SHUTDOWN消息,关闭程序完成时发出。SHUTDOWNCOMPLETE用于关闭程序完成时对SHUTDOWNACK消息进行确认HUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage22SCTPINIT数据块的格式INIT数据块格式32bitType=1LengthInitialTagNumberOfOutboundStreamsInitialTSNOptional/Variable-LengthParametersAdvertisedReceiverWindowCreditTrunkFlagNumberOfInboundStreamsHUAWEITECHNOLOGIESCO.,LTD.AllrightsreservedPage23SCTPDATA数据块的格式DATA数据块格式32bitType=0ReserveUUBLengthStreamIDSSNPayloadProtocolIdentifierUserData备注:数据块的总长度(包括类型、长度和取值长度)必须是4字节的整数倍,如