摘要 信令传输(SigTran)协议簇是由IETF的SigTran工作组制定的一系列协议,包括流控制传输协议(SCTP)和用户适配层(UAL)协议。SCTP协议弥补了传输控制(TCP)协议的很多漏洞,主要用于在IP网络上可靠传输信令消息;适配层协议包括M2UA、M3UA、SUA等UA协议,UA层的作用就是将电路域的消息进行适配封装,使其顺利在IP域传输,完成电路域与IP域的兼容与互通。文章主要讨论了SCTP协议的功能以及SCTP协议的数据传输方式,UA层协议的代表M3UA的功能及应用,并进一步阐述了SigTran在3G组网中的应用。
0、引言
随着网络的演进,IP为核心的趋势已经是势不可挡,3GPP提出的第三代移动通信标准R4版中提出了基于全IP网的核心网架构。第三代移动通信的特色就是数据业务的膨胀,此时,传统的七号信令网结构已经不能完全适应。但由于七号信令具备信令速度快,具有提供大量信令的潜力、具有改变和增加信令的灵活性、便于开放新业务、在通话时可以随意处理信令、成本低等优点,而且当前IP网还做不到电路交换网络的高QoS的特性,所以传统电路交换域的七号信令网还不能被IP网所完全替代,实现电路交换网与IP网的互通成为必然。为了保证七号信令在无QoS保证的IP网上可靠传输,3GPP建议电路交换域底层的信令承载采用信令传输(Sigtran)协议簇。SigTran实现了七号信令网与IP网的融合。
1、SigTran简介
在everything over IP的潮流的驱动下,SigTran应运而生,实现SS7 over IP。SigTran协议簇是由IETF的SigTran工作组制定的一系列协议。从功能上可以分为两大块:流控制传输协议(SCTP)和一些七号信令的用户适配层(UAL)协议(如SUA、M3UA、M2UA等)。
SigTran的协议模型架构如图1所示。
图1 SigTran协议簇协议结构图
2、SCTP协议
随着IP业务发展的多元化,传统的可靠传输协议TCP已经出现了很多局限性,IETF的信令传输工作组顺应形势发展提出了一种面向多媒体通信的SCTP,SCTP主要用于在IP网中传送公共交换电话网(PSTN)的信令消息,同时SCTP协议还可以用于其他信息在IP网内传送。
2.1 SCTP的偶联
SCTP实际上是一个面向连接的协议,SCTP提供了在两个SCTP端点之间的一组传送地址间建立偶联的方法。通过这些建立好的偶联,SCTP端点可以发送SCTP分组。SCTP的偶联比TCP的连接具有更广泛的含义,它是在两个SCTP端点间的一个关系,而一个SCTP端点可以由一组IP地址表示,但它使用的所有传送地址必须具有相同的端口号,所以在TCP连接时地址是一对一的关系,而SCTP的偶联是一组IP地址之间的对应关系。
2.2 SCTP的功能
SCTP传送业务可以分解为几个功能块:偶联的建立和释放;流内消息的顺序递交;用户数据分段;证实和避免拥塞;数据捆绑;分组有效性验证;通路管理。
2.2.1 偶联的建立和释放
偶联的建立是由SCTP用户发起请求来启动的,在偶联的启动过程中采用了COOKIE机制,避免遭受恶意的攻击。
偶联的释放遵循SCTP所提供的正常关闭程序(由SCTP用户来请求)和非正常的关闭程序(中止程序)。无论是哪个端点执行了关闭程序,偶联的两端都应该停止接受从用户发出来的新数据,只传送队列中的数据,这一点与TCP的半打开状态是不同的。
2.2.2 流内消息的顺序递交
流是在两个SCTP端点之间建立的一个逻辑通道,流内传递用户消息,在这个流这个通道中的所有用户消息都必须按照顺序进行递交。SCTP用户在建立偶联时可以通过协商确定一个偶联中所支持的流的数量,用户消息通过流号来进行关联,当某个流由于等待下一个用户消息造成闭塞时,其他流上的顺序递交不应该受到影响。
2.2.3 用户数据分段
SCTP在发送用户消息时为了确保发送到低层的SCTP分组长度符合通路最大传输单元(MTU)的要求将对消息进行分组,在接受端将各分段重组成消息后再发送给SCTP用户。
2.2.4 证实和避免拥塞
SCTP为每个用户数据分段或者为分段的消息分配一个传送顺序号码(TSN),接受方通过对所有收到的TSN进行证实来保证消息的可靠递交。证实和避免拥塞功能可以在规定的时间内对没有收到证实的分组负责重发,其重发功能采取与TCP协议类似的拥塞避免程序来调节。
2.2.5 数据块的捆绑
SCTP具有数据块捆绑功能,SCTP用户可以请求将多个用户消息捆绑到一个SCTP分组中,在接受端再进行分解。SCTP分组在发送到低层时包含一个公共的分组头,在分组头的后面跟有一个或多个数据块,每个数据块中既可以包含用户信息亦可以包含控制信息。
2.2.6 分组的有效性验证
SCTP的公共分组头中包含了验证标签字段和校验字段,在偶联启动时由偶联的端点选择验证标签,如果收到的分组中为包含期望的验证标签值则舍弃该分组;校验码由SCTP分组的发送方设置,接受方对包含无效校验码的SCTP分组予以丢弃。
2.2.7 通路管理
SCTP的通路管理有两层含义:a)SCTP通路管理功能可以根据SCTP用户指令和当前合格的目的地集合的可达性状态,为SCTP分组选择一个目的地传送地址。b)当分组业务量不能完全表明可达性时,通路管理功能可以通过心跳消息来监视到某个目的地地址的可达性;同样,通路管理功能亦能将本端的合格传送地址报告给远端,并把从远端返回的传送地址报告给本端。
在偶联建立时都为每个SCTP端点定义一个首选通路用来在正常情况下发送分组。
2.3 SCTP的数据传输方式
SCTP的数据传输方式是采用了优于TCP连接的“四次握手”来实现,下面从SCTP的分组格式开始详细介绍其数据传输的实现。
2.3.1 SCTP分组格式
SCTP的分组由公共的分组头和若干数据块组成,每个数据块中既可包含控制信息又可以包含用户数据。除了INIT、INIT ACK和SHUTTDOWN COMPLETE数据块外,其他类型的多个数据块可以捆绑在一个SCTP分组中,当然必须要满足偶联对MTU的要求。
2.3.2 SCTP偶联的建立过程
正如前面所说SCTP采用的是“四次握手”机制,INIT、INIT ACK和SHUTTDOWN COMPLETE数据块不能与其他任何数据块捆绑在一起,它们是SCTP分组中出现的唯一数据块。
正常偶联建立过程如图2所示。
图2 偶联的建立过程
参照图2,偶联的建立过程如下:
首先,SCTP端点A向SCTP端点B发送一个“INIT”数据块,A必须在其启动标签中提供它的验证标签(Tag_A),A在发送了INIT后启动T1-INIT定时器并进入COOKIE-WAIT状态。
其次,B收到INIT数据块之后会立刻启动INIT ACK数据块响应,在这个响应数据块中除了填写其他参数外,B必须将验证标签字段设为(Tag_A),将自己的启动标签字段置成(Tag_B),同时B产生一个状态COOKIE与INIT ACK一起发送,此后B不分配任何资源,也不为新偶联保持任何状态。
再次,A根据收到的INIT ACK需停止T1-INIT定时器并离开COOKIE-WAIT状态。然后A将从B收到的INIT ACK中的COOKIE在COOKIE ECHO数据块中发送给B,A启动T1-COOKIE定时器并进入COOKIE-ECHOED状态。注意,此时的COOKIE ECHO数据块可以与其他数据块捆绑到同一个SCTP分组中,但它必须放在首位,除非收到COOKIE ACK,否则不能发送别的分组。
最后,B根据收到的COOKIE ECHO,创建传输控制块(TCB),转移至Establish状态,然后给A回应COOKIE ACK响应,同样A收到COOKIE ACK后会从COOKIE-ECHEOD状态转移至Establish状态,并停止T1-Cookie定时器。
3、适配层协议
如图1所示,适配层包括M2UA、M3UA、SUA等UA层协议,这里主要介绍NO.7信令消息传递部分(MTP)第三级用户的适配层M3UA。
3.1 M3UA的功能
由图1 SigTran的协议架构可以看出M3UA的底层协议是SCTP,高层是MTP3的上层用户部分,所以M3UA向上层用户提供标准的MTP3的接口,同时由SCTP提供的偶联为M3UA提供服务。M3UA还有专门的层管理为其提供管理服务。
3.1.1 上层协议的接口功能
在活动服务器页面(ASP)或IP服务器页面(IPSP)的M3UA层向MTP3的上层用户提供的原语与NO.7信令网中的MTP3向高层提供的原语相同,这样就能保证所有的MTP3用户协议不作任何修改就能在M3UA上运行,还保证在传输过程中不丢失上层协议消息;通过提供相同的原语,M3UA将MTP3层的业务扩展到远端基于IP的业务,因为ASP或IPSP的ISUP或SCCP并不知道它所希望的MTP3的业务是由远端的软件通用发布协议(SGP)提供的,而不是本地的MTP3层;同时SGP的MTP3也不知道本地用户实际是通过M3UA的远端用户。
3.1.2 地址映射功能
M3UA可以将上层协议消息中的七号信令地址信息映射成相应的IP网上的地址信息,并转发七号信令消息,实现七号信令在IP网上的路由。
3.1.3 支持SGP与ASP间偶联的管理
为了管理对等M3UA间的SCTP偶联和业务,SGP的M3UA层维护所有配置的远端ASP的可用性状态及激活/去活拥塞状态。
3.1.4 支持到多个SGP连接的管理
ASP可以连接到多个SGP,这样一个NO.7信令的目的地可以通过多个SGP或信令网关(SG)到达,即支持多个路由。由于MTP3的上层用户只维护目的地的状态而不管理路由,因此M3UA必须维护个别路由状态,从个别路由状态推出目的地的整个可用性或拥塞状态,并通知给MTP3的上层用户。
3.2 M3UA的应用
M3UA是MTP3的适配层,适合传输SCCP、TUP/ISUP等上层消息,使用SCTP协议作为可靠的底层传输协议。M3UA可以应用在SGP 中或者在IPSP之间。
3.2.1 M3UA在SGP中的应用
在SGP中,希望所有的MTP3用户消息都通过标准的NO.7信令网接口进行发送和接收,SGP提供了NO.7信令与IP的网络互通功能(NIF),NIF作为SGP内的MTP3和M3UA之问的接口,既对两端网络提供网络状态信息,还提供NO.7信令的协议信息和管理信息,实现了NO.7与IP的互通。在SGP 中应用M3UA有以下三种方式。
1)SGP调用M3UA传送用户信令
SGP的NIF能将从MTP3高层接口收到的MTP-Transfer indication原语翻译为MTP-Transfer request原语并发送到M3UA以选路到最终的IP目的地;从M3UA收到的MTP-Transfer亦可作为MTP-Transfer request原语发送到MTP3的高层接口。过程如图3所示。
图3 MTP用户信令传送示意图
2)SGP调用M3UA进行SCCP信令传送
同样SGP调用M3UA传送SCCP信令,此时NIF具有SCCP协议层的功能,它可以对消息中SCCP被叫用户地址进行GT翻译,如果GT翻译的结果是IP域,则选路到IP域,如果是七号域则选路到MTP3的高层。过程示意图与图3相似。
3)MTP3管理消息的传送
对MTP3的管理消息的传送不能封装为Data消息的净荷在SGP和ASP之间传送,SG必须产生适当的M3UA消息。MTP3的管理消息要求ASP的MTP3用户协议也能像NO.7信令的信令代理方式(SEP)一样能接受到NO.7信令点的可用性、NO.7信令网络拥塞和用户部分可用性的指示。因此,SGP的MTP3的高层接口上收到的原语应当跟远端ASP的MTP3用户的低层接口是通用的。
3.2.2 M3UA在IPSP-IPSP间的应用
M3UA在IPSP之间的应用不需要经过SG,此时不需要完成域的转换,消息直接在IPSP之间传递,传送过程见图4。
图4 IPSP间SCCP用户信令传送图
4、SigTran在3G组网中的应用
第三代移动通信的组网非常多,SigTran的应用是它的基本特征。下面具体介绍一下SigTran在3G核心网中的一些应用。
4.1 IP路由的冗余配置
SCTP偶联与TCP连接的最大区别就是SCTP可以提供“多地址”的功能,从而实现网络级的容错。每个SCTP的端点必须至少配置两个IP地址,为了实现网络级的容错还需要对IP网的网络进行优化,使一个SCTP的偶联至少有两个完全不重合的IP路由,这样的冗余配置使得如果一条偶联中断就会切换到另外一条偶联,两个之间的偶联不至于中断。
4.2 M3UA的冗余配置
为了保证七号路由的可靠性,M3UA通常采用ASP的冗余配置。在3G组网中,我们可以使用多个ASP为一个AS服务,每个ASP又运行在不同的主机或处理板上。
在ASP为AS服务时,通常有主备和负荷分担两种使用方式。当采用主备方式时只有当主用的ASP处于up状态时才能正常为AS服务;当主用的ASP处于down状态时备用的ASP立刻激活处于工作状态。负荷分担方式即N+K方式,只有当N个ASP都处于up状态时才能正常服务于AS。
4.3 组网时的七号信令路由
在组建3G核心网时,需要考虑如何架构3G核心网电路域的信令网。有两种解决方案:平面路由和分级路由。
平面路由适合网络比较小的情形,或者是试验环境下使用。在平面路由中任何两个实体间通过SCTP偶联直联在一起,任何一条七号信令一次路由就可以到达目的地。但是每一个七号信令实体必须维护全网所有七号信令实体的状态和IP地址信息,它还必须在每一个七号信令实体之间维护一个SCTP偶联。该方案的优点是投资少。
分级路由是将电路域的信令网组成一个分级结构,在核心网中增加一些信令实体作为七号信令的转接点,这样每一个七号信令实体只需维护与它自身相邻的信令转接点的状态和IP地址信息,而且只需要维护它与相邻信令转接点之间的SCTP偶联即可,不需要在核心网中的每一个七号信令实体之间都维护一个SCTP偶联。当一个信令实体发送消息时,消息总是通过直联的SCTP偶联发送到相邻的信令转接点。然后信令转接点根据消息的七号信令路由信息再进行转发,直至到达目的地。此方案的优点是可以避免平面路由必须维护全局路由数据的压力,并且当需要在核心网中增加信令实体的时候,只需对相应的信令转接点的路由数据进行更新即可,网络的扩展性好,适用于大规模网络的情况。此方案的缺点是需要在核心网中增加一些设备作为七号信令转接点。
5、结束语
本文在3G组网中应用了SigTran协议来实现在IP上传输七号信令,完成它们之间的互通。由于3G还处于起步阶段,所以SigTran还将面临着更大的挑战。
来源:中国联通网站