SIGTRAN(Signaling Transport, 信令传输协议)协议栈支持通过IP 网络传输传统电路交换网SCN(Switched Circuit Network ,电路交换网)信令。该协议栈支持SCN 信令协议分层模型定义中的层间标准原语接口,从而保证已有的SCN 信令应用可以未经修改地使用,同时利用标准的IP 传输协议作为传输底层,通过增加自身的功能来满足SCN 信令的特殊传输要求。
SIGTRAN 协议栈担负信令网关和媒体网关控制器间的通信,有两个主要功能:适配和传输。与此对应,SIGTRAN 协议栈包含两层协议:传输协议和适配协议,前者就是SCTP/IP,后者如M2UA(适配MTP2 用户)、IUA(适配Q.921 用户)等。SIGTRAN 协议模型如图2-1所示。
M3UA:MTP3 用户适配层M2UA:MTP3 用户适配层IUA:ISDN Q.921 用户适配层M2PA:MTP2 对等适配层V5UA:V5 用户适配层 SUA:SCCP 用户适配层SCTP :流控制传输协议 IP:互联网协议 MAC:媒体接入控制
图2-1 SIGTRAN 协议模型
SIGTRAN 协议只是实现SCN 信令的在IP 网的适配与传输,不处理用户层信令消息。为保证信令可靠传输,引入了SCTP 作为传输层协议。
SoftX3000 应用的SIGTRAN 协议包含了MAC、IP、SCTP、M2UA 和M3UA, 由于网络层以下协议(MAC、IP)为标准TCP/IP 协议族,在此不作详细介绍,请参考本手册附录。
2.1.1 SIGTRAN 在SoftX3000 的应用
SoftX3000 通过SIGTRAN 协议与SG 连接,将窄带电路交换网信令(如SS7 的ISUP、INAP 等)通过IP 网进行传输,SIGTRAN 在SoftX3000 应用如图2-2所示。
图2-2 SIGTRAN 在SoftX3000 的应用
SIGTRAN 协议应用在信令网关(SG)和SoftX3000 之间的接口上,实现窄带SCN 信令在IP 网络中进行传输。原理如下:
电路交换网信令由信令网关(SG)接入,而媒体流(如中继话路)由媒体网关(TMG)接入。信令网关将窄带信令的层间原语(或直接是窄带信令)打包传递到媒体网关控制器(即SoftX3000),媒体网关控制器处理信令,通过媒体网关控制协议(H.248)控制媒体网关的承载接续,从而完成电路交换网和分组交换网的互通。在这个模型中,信令网关和媒体网关控制器间运行SIGTRAN 协议栈。
根据SG 位置的不同,SoftX3000 提供三种方式与SCN 信令互通:
1. SG 内置在SoftX3000
SoftX3000 直接出TDM 接口与SCN 连接,使用MTP 进行信令传输,不使用SIGTRAN 协议。
2. SG 内置在TMG
TMG 通过内置SG 完成SCN 信令转换与适配,并打成IP 包在IP 网传输到SoftX3000,信令传输使用SIGTRAN 协议的M2UA 适配协议。
3. 独立SG
2.1.2 术语
1. 媒体网关(MG)
SG 完成SCN 信令转换与适配,并打成IP 包在IP 网传输到SoftX3000,信令传输使用SIGTRAN 协议的M3UA 适配协议。
当媒体流从SCN 流向分组网络时,MG 终结SCN 媒体流,打包媒体数据(如果媒体数据不是基于数据包的形式), 并且将打包后的业务传递给分组网络。当媒体流从分组网络流向SCN 时,则执行相反的功能。
2. 媒体网关控制器(MGC)
MGC 负责处理MG 上的资源的注册和管理。MGC 可能具有这种能力:根据本地策略来授权资源的使用;对于信令传输而言,MGC 可能具有这种能力:终结和发起SCN 信令协议,例如SS7-ISUP 和Q.931。
3. 信令网关(SG)
SG 是一个信令代理,能够在IP 网络边缘接收/发送SCN 内部信令。SS7-Internet 网关中的SG 功能包括SS7 信令的中继、翻译或终结。SG 功能也可能与MG 功能共存于MG 中,处理设备相关的SCN 信令(例如,信令回程)。
2.2 SCTP
2.2.1 概述
1. SCTP 术语
(1) 传输地址和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) 主机和端点
“主机”(Host) 就是一台计算机,配有一个或多个IP 地址, 是一个典型的物理实体。
“端点”(End Point)是SCTP 的基本逻辑概念,是数据报的逻辑发送者和接收者,是一个典型的逻辑实体。
SCTP 协议规定两个端点之间能且仅能建立一条偶联,但一个主机上可以有很多端点。
(3) 偶联和流
“偶联”(Association) 就是两个SCTP 端点通过SCTP 协议规定的4 步握手机制建立起来的进行数据传递的逻辑联系或者说通道。
“流”(Stream)是SCTP 协议的一个特色术语。严格地说,“流”就是一条SCTP 偶联中,从一个端点到另一个端点的单向逻辑通道。希望顺序传递的数据必须在一个流里面传输。
一个偶联中可以包含多个流。
(4) TSN 和SSN TSN(Transmission Sequence Number), 传输顺序号。在SCTP 一个偶联
的一端为本端发送的每个数据块顺序分配一个基于初始TSN 的32 位顺序号,以便对端收到时进行确认。TSN 是基于偶联维护的。
SSN(Stream Sequence Number) 流顺序号,在SCTP 一个偶联的每个流内,为本端在这个流中发送的每个数据块顺序分配一个16 位顺序号,以便保证流内的顺序传递。SSN 是基于流维护的。
TSN 和SSN 的分配是相互独立的
(5) 其他CWND:拥塞窗口。SCTP 也是一个滑动窗口协议,拥塞窗口是针对每个目
的地址维护的,它会根据网络状况调节。当目的地址的发送未证实消息长度超过其CWND 时,端点将停止向这个地址发送数据。
RWND:接收窗口。RWND 用来描述一个偶联对端的接收缓冲区大小。偶联建立过程中,双方会交换彼此的初始RWND。RWND 会根据数据发送、证实的情况即时地变化。RWND 的大小限制了SCTP 可以发送的数据的大小。当RWND 等于0 时,SCTP 还可以发送一个数据报,以便通过证实消息得知对方缓冲区的变化,直到达到CWND 的限制。
2. SCTP 概念
SCTP(Stream Control Transmission Protocol, 流控制传输协议)是提供基于不可靠传输业务的协议(如IP)之上的可靠的数据报传输协议。SCTP 的设计用于通过IP 网传输SCN 窄带信令消息。SCTP 对TCP 的缺陷进行了一些完善,使得信令传输具有更高的可靠性,SCTP 的设计包括适当的拥塞控制、防止泛滥和伪装攻击、更优的实时性能和多归属性支持。 SCTP 被视为一个传输层协议,它的上层作为SCTP 用户应用,下层作为分组网络。在SIGTRAN 协议的应用中,SCTP 上层用户是SCN 信令的适配模块(如M2UA、M3UA 等),下层是IP 网。
SCTP 协议具有如下特点:
• 基于用户消息包的传输协议;
• 支持流内用户数据报的顺序或无序传递;
• 可以在一个偶联中建立多个流,流之间数据的传输互不干涉;
• 通过在偶联的一端或两端支持多归属提高偶联的可靠性;
• 偶联建立需经过COOKIE 的认证,保证了偶联的安全性;
• 实时的路径故障测试功能。
3. SCTP 功能
SCTP 的功能主要包括连接的启动与关闭、流内顺序传递、用户数据分片、证实和消除拥塞、消息块捆绑、报文验证和路径管理等。
• 偶联的启动和关闭SCTP 是面向偶联的传输协议,通常情况下,数据只有在建立了偶联的两个端 点间才能进行传递(SCTP 允许偶联建立过程中的特定步骤传递数据)。因此偶联建立和关闭是SCTP 提供其他服务的前提。
• 流内顺序传递 SCTP 提供数据报的顺序传递,顺序传递的数据报必需放在一个“流”中传递。流是顺序传递的基石。
• 用户数据分片 SCTP 通过对传送路径上最大PMTU 的检测,实现在SCTP 层,将超大用户数据分片打包,避免在IP 层的多次分片,重组,可以减少路由器上IP 层负担。
• 证实和避免拥塞证实和重传是协议保证传输可靠性的不二法门,SCTP 也一样。证实机制是 SCTP 保证传输可靠性的基石。拥塞避免沿袭了TCP 的窗口机制,进行合适的流控。
• 块绑定 如果很短的用户数据被带上很大一个SCTP 消息头传递效率很低,可以将几个用户数据绑定在一个SCTP 报文里面传输,以提高带宽的利用率。
• 报文验证 报文验证是SCTP 提供无差错传输的基石。SCTP 通过对用户数据使用ADLER-32 算法,计算出一个32 位的校验和,带在数据报中,在接收端进行同样的运算,通过检查校验和是否相等来验证用户数据是否遭到破坏。
• 路径管理
通过心跳,累计重传次数,SCTP 将目的地址,端点的可达性好好的管理了起来。
从上面的叙述中,我们可以看到SCTP 相对于TCP 的几个不同:
(1)
TCP 基于字符流传输,上层必须有自己的定界机制。SCTP 基于数据报
传输。无需上层定界。
(2)
SCTP 支持多IP 地址配置。
(3)
SCTP 提出了流的概念,在流内进行顺序传递。
2.2.2 SCTP 消息
SCTP 消息封装在用户数据字段,表2-1列出了主要的消息类型。表2-1 SCTP 消息
名称
说明
DATA (净数据)
传输的用户数据块。
INIT
用于发起两个端点之间的SCTP 连接。
INIT ACK
用来确认SCTP 连接的发起消息(INIT )。
SACK
该数据块送至对端,以确认收到DATA 块,并且通知对端DATA 的接收顺序间隙。
HEARTBEAT
端点发送该数据块至对端,以检测当前连接中定义的某一目的地址的可达性。
HEARTBEAT ACK
响应HEARTBEAT 消息。
ABORT
关闭连接。
SHUTDOWN
连接中的一个端点对其连接发起一个GRACEFUL 关闭。
SHUTDOWN ACK
响应SHUTDOWN 消息,关闭程序完成时发出。
ERROR
通知对端,SCTP 连接发生某种错误。
COOKIE ECHO
仅用于连接发起过程,它由连接的发起者发送至对端以完成发起程序。
COOKIE ACK
相应COOKIE ECHO 消息
SHUTDOWN
用于关闭程序完成时对SHUTDOWN ACK 消息进行确认
COMPLETE
2.2.3 信令流程
SCTP 作为一个面向连接的可靠传输层协议,其协议过程包括:偶联的建立,偶联的终止,数据传递和证实,最多再加上拥塞控制机制,路径管理机制。
1. 偶联的建立
SCTP 偶联建立的过程是4 步握手。即有4 个消息交互:INIT,INIT ACK, COOKIE ECHO,COOKIE ACK。如图2-3所示。
endpoint A endpoint Z
established
图2-3 偶联建立过程消息交互图
(1) 偶联发起端首先要创建一个数据结构TCB(传输控制块)来描述即将发起的这个偶联(包含偶联的基本信息), 然后向对端发送INIT 消息。在这个消息里面,参数一般会带上本端使用的一个或多个IP 地址(如果不带,对端就把INIT 消息发送的源地址作为该端点的地址)。在通用头中,由于还不知道对方的Tag,故将Verification Tag 域置零。在消息参数中,必须带上本端的Tag 和期望的输入输出流数。发送后启动一个init 定时器,等待对方的INIT ACK 消息,定时器超期则重发INIT, 直到达到最大重发次数。这些动作完成后,发起端进入COOKIE-WAIT 状态。
(2) 偶联的接受端收到INIT 消息后,先生成一个Tag,这个Tag 将作为本端初始Tag 放到INIT ACK 消息的参数中。然后也根据偶联的基本信息生成一个TCB,不过这个TCB 是一个临时TCB。这个TCB 生成以后,将其中的必要信息(其中包含一个COOKIE 生成的时间戳和COOKIE 的生命期)和一个本端的密钥通过RFC2401 描述的算法计算成一个32 位的摘要MAC (这种计算是不可逆的)。然后将那些必要信息和这个MAC 组合成一个叫做STATE COOKIE 的参数,包含在INIT ACK 消息中。INIT ACK 消息的通用头的Verification Tag 置为INIT 消息中初始Tag 的值。INIT ACK 消息一般也带上本端使用的地址,输入输出流等信息。发送INIT ACK 到对端,删掉临时TCB,(这样,接受端没有为这个偶联保留任何资源)。
(3) 偶联发起端收到INIT ACK 后,停INIT 定时器。更新自己的TCB,填入从INIT ACK 获得的信息。然后生成COOKIE ECHO 消息,将INIT ACK 中的STATE COOKIE 原封带回。启动COOKIE 定时器。状态转移为COOKIE-ECHOED。
(4) 偶联接受端收到COOKIE ECHO 消息后,进行COOKIE 验证。将STATE COOKIE 中的TCB 部分和本端密钥根据RFC2401 的MAC 算法进行计算,得出的MAC 和STATE COOKIE 中携带的MAC 进行比较,如果不同则丢弃这个消息。如果相同,则取出TCB 部分的时间戳,和当前时间比较,看时间是否已经超过了COOKIE 的生命期。如果是,同样丢弃。否则根据TCB 中的信息建立一个和对端的偶联。将状态迁入ESTABLISHED ,并回送COOKIE ACK 消息。
(5) 偶联发起端收到COOKIE ACK 消息,停COOKIE 定时器,迁入ESTABLISHED 状态。这样偶联建立过程完毕。
2. 偶联的终止
SCTP 偶联的终止分为两种,一种是GRACEFUL 的终止,一种是UNGRACEFUL 的终止。前者保证所有两端的未发送、发送未证实数据得到发送和证实后再终止偶联。而后者则直接终止偶联,丢弃这些数据。
(1) GRACEFUL 关闭GRACEFUL 的偶联终止由三步握手完成:
(2) 首先,终止发起端的用户向SCTP 请求GRACEFUL 终止偶联。SCTP 偶联就从ESTABLISHED 状态迁入SHUTDOWN-PENDING 状态。在这个状态,SCTP 不接受上层在这个偶联上的任何数据发送请求。同时等待本端所有发送未证实的数据得到对端的证实。
(3) 当所有本端发送未证实数据得到证实,则向对端发送SHUTDOWN 消息,迁入SHUTDOWN-SENT 状态,启动SHUTDOWN 定时器,等待对端SHUTDOWN-ACK 消息。在这个状态下,收到对端的数据立即证实(后面会讲到SCTP 应用延迟证实机制)。
(4) 对端收到SHUT DOWN 消息后,进入SHOUTDOWN-REVD 状态,不再接收上层在这个偶联上的数据发送请求。当本端所有未发送数据和发送未证实数据得到发送和证实后,发送SHUTDOWN ACK 消息。启动SHUTDOWN 定时器等待SHUTDWON COMPLETE 消息。
(5) 终止发起端收到SHUTDOWN ACK 消息后,停SHUTDOWN 定时器,发送SHUTDOWN COMPLETE 消息到对端。删除偶联TCB。
(6) 对端收到SHUTDOWN COMPLETE 消息后,删除偶联TCB。
(7) UNGRACEFUL 关闭这种关闭由于不考虑数据的安全,所以比较简单。发起端发送一个ABORT
消息到对端后,立即删除偶联TCB。对端收到这个ABORT 消息后也立即删除偶联TCB。
2.3 M2UA
当SG 内置于TMG 时,TMG 通过内置SG 完成SCN 信令转换与适配,并打成IP 包在IP 网传输到SoftX3000,TMG 与SoftX3000 之间的信令传输使用SIGTRAN 协议的M2UA 适配协议。
2.3.1 概述
1. M2UA 概念
M2UA(SS7 MTP2-User Adaption layer protocol,即MTP2 用户适配协议), 它使用流量控制传输协议(SCTP) 或其他合适的传输协议,通过IP 传输SS7 MTP2 层的用户信令消息(即MTP3 ),该协议可用于信令网关(SG)和媒体网关控制器(MGC)之间的信令传输,如图2-4所示。
图2-4 M2UA 在系统中的位置
如图2-4所示,SEP(信令端点)窄带信令通过SG(信令网关)接入MGC, 在SIGTRAN 协议栈,M2UA 运行在SCTP 的上层,是SCTP 用户。MGC 端的M2UA 的上层用户是MTP3,在SG 端是MTP2 。
下面的描述中,使用了一些有关M2UA 的概念,表2-2对这些概念进行了说明。
表2-2 M2UA 的基本概念
缩写
名称
说明
IID
Interface ID (接口ID)
用于M2UA 两端之间的通信,可以用文本或整数标识。每个接口ID 对应一个实际的物理链路。接口ID 是SS7 信令链路用于SG 和ASP 之间的逻辑ID。
AS
Application server (应用服务器)
一个逻辑实体,代表一定的资源,对应一个特定的“路由上下文”。对于M2UA 来说,AS 就是一组接口ID。每个AS 包含一组应用服务器进程(ASP),其中一个或多个ASP 能够处理业务。
ASP
Application Server Process (应用服务器进程)
ASP 是AS 进程的实例。每个ASP 包含一个SCTP 端点,一个ASP 可以服务于多个AS。在M2UA 应用中,ASP 以主/备用方式工作,只有主用ASP 处理业务。
Signaling Backhaul (信令回程)
当MG 内置SG 功能,如果信令不在本地处理,将信令从偶联数据流的接口传输回呼叫处理点(即MGC)。
• M2UA 链路“M2UA 链路”是新引入的一个类似MTP LINK 的概念。
为了配置M2UA 栈,用户还必须配置SG、AS 和ASP。为避免此开销,实现对用户透明的M2UA 配置功能,引入了M2UA LINK 概念,以便用户管理和维护链路。
M2UA LINK:SG 和ASP 之间创建的逻辑连接。一条链路包括SG 和ASP 之间的SG、ASP 和SCTP 连接。它的状态和ASP 状态及SCTP 连接状态对应。
M2UA 的网络结构如图2-5所示,引入M2UA LINK 后,M2UA 网络结构可简化为图2-6所示。
MGClink0 and link 1
link2 and link 3
图2-5 M2UA 的网络结构
MGC
MTP2 link 0 M2UA LINK 0(servered for MTP2 link 0and link1)MTP2 link 1 MTP2 link 2 MTP2 link 3
图2-6 M2UA 的简化网络结构
M2UA 链路为一个或多个MTP2 提供链路通道,用于与它的用户(MTP3)通信。每个MTP 链路通过M2UA 接口ID 映射到一个特定的M2UA 链路。这样,来自MTP 链路的数据可以通过M2UA 链路进行透传。
2. M2UA 业务功能
M2UA 可提供如下业务:
• 支持MTP2/MTP3 接口边界,为PSTN 和IP 网的MTP2 用户提供无缝操作。
• 支持SG 和MGC 之间的管理层通信。
• 管理SG 和MGC 之间的SCTP 连接。
2.3.2 M2UA 消息
1. 消息格式
M2UA 消息封装在SCTP 消息的用户数据字段,包含公用消息头、M2UA 消息头。
• 公用消息头 M2UA 公用消息头包括版本、消息等级、消息种类、消息长度和消息内容。
• M2UA 消息头M2UA 消息头和MAUP 消息一起使用。
消息首部包括标签、长度和接口标识符。接口标识符用于标识发送/接收该信令消息的SG 上的物理接口。接口标识参数的格式可以是文本或整数,它们的值根据网络运营策略分配。使用的值在SG 和ASP 之间协商。
2. M2UA 消息
• M2UA 消息:
• ASP 维护消息:
消息名称
说明
Data
包含SS7 MTP2 -用户协议数据单元(PDU)。
TTC data
包含TTC SS7 MTP2 -用户协议数据单元(PDU)。
Establish(request,
当MGC 要求SS7 链路服务,它将发送建立请求(Establish
confirmation)
request )消息给网关,网关回送建立确认消息(Establish
confirmation )。
Release(request,
释放请求(Release request) 消息用于释放通道。释放确认和
indication,
指示消息(Release indication, confirmation) 用于指示通道已
confirmation)
经释放。
由MGC 发出,用于在由SG 支持的一条特定SS7 链路上引发
State request
一个动作。
State confirm
由SG 发出,以响应MGC 发出的State request 消息。
State indication
从SG 发送到ASP,指示链路的状态。
Congestion
由SG 发送到ASP,表明拥塞状态和链路的丢弃状态。
indication
Retrieval(request, confirm)
Retrieval request 消息用于MTP 三级倒换程序过程,请求BSN 从转发队列中恢复PDU,或从恢复队列中清除PDU。SG 发送Retrieval confirm 消息给该队列。
Retrieval indication
由SG 发出,带有来自重发队列的PDU。
Retrieval complete indication
同Retrieval request, 另外,它还表示包含来自重发队列的最后一个PDU。
消息名称
说明
ASP Up
用于指示远端M2UA,适配层已准备接收业务或维护消息。
ASP Up Ack
用于确认收到远端M2UA 的ASP Up 消息。
ASP Down
用于指示远端M2UA,适配层没有做好接收业务或维护消息的准备。
ASP Down Ack
用于确认收到远端M2UA 的ASP Down 消息。
ASP Active
由ASP 发送,向SG 指示它处于活动状态,可以使用。
ASP Active Ack
用于确认收到从远端M2UA 发送的ASP-Active 消息。
消息名称
说明
ASP Inactive
由ASP 发送,向SG 指示它不再是一个活动的ASP。
ASP Inactive Ack
用于确认从远端M2UA 收到的ASP-Inactive 消息。
• 层管理消息:
消息名称
说明
Error
用于通知对端有关入局消息的错误事件。
Notify
用于向对端M2UA 提供M2UA 的自治指示。
3. 消息举例
• Data
Data 消息包括SS7 MTP2 -用户协议数据单元(PDU) 。数据消息参数的格式如下:
协议数据字段包括MTP2 -用户应用消息,按照网络字节顺序,从信令信息八位位组(SIO)开始。
• Establish(request, confirm):
用于创建链路或指示通道已经创建。当MGC 希望SS7 链路在线时,它将发送创建请求消息。如果SG 已在该层创建SS7 链路,则发送Establish Confirm 消息,不采取其它措施。
• ASP UP
ASP UP(ASPUP )消息用于指示远端M2UA,适配层准备接收业务或维护消息。
INFO 串为可选参数,可以随同消息一起携带任何有意义的8bit ASCII 字符串。INFO 串参数的长度从0 到255 字符。
2.3.3 信令流程
1. 创建业务环境
M2UA 业务环境的创建程序如图2-7所示。在M2UA 业务环境创建之前,在SG 和MGC 之间必须创建SCTP 连接。
图2-7 M2UA 业务环境的创建程序
MGC 作为客户端,它首先发起创建环境的请求。一旦环境创建,M2UA 数据、MGC 维护消息和层管理消息即可在两端点之间传递。
2. 数据传输流程
若一个ASP 的M2UA 层有一条MAUP 消息需要发送到SG,它将进行如下操作:
• 确定正确的SG;
• 获取M2UA 链路号;
• 找到与所选SG 的SCTP 连接;
• 确定基于SS7 链路的SCTP 连接的恰当的流;
• 填充MAUP 消息、M2UA 消息头、公用消息头,生成M2UA 消息单元;
• 通过SCTP 连接发送MAUP 消息给SG 的M2UA。若SG 上的M2UA 有一条MAUP 消息发送到ASP ,它将进行如下操作:
• 获取接口标识;
• 确定支持MTP 链路的M2UA 链路号;
• 建立SCTP 连接;
• 确定基于SS7 链路的SCTP 连接的恰当的流。
• 填充MAUP 消息、M2UA 消息头、公用消息头,生成M2UA 消息单元;
• 通过SCTP 连接发送MAUP 消息给ASP 的M2UA。
3. 释放流程M2UA 业务环境的释放程序如图2-8所示:
图2-8 M2UA 业务环境的释放流程
SG 收到MGC 发来的释放原语,开始M2UA 业务环境的释放流程,关闭SCTP 连接。
2.4 M3UA
2.4.1 概述
1. 术语
• IP 服务器进程(IPSP) 基于IP 应用的进程实例。本质上IPSP 与ASP 相同, 只是IPSP 使用点到点的M3UA,而不使用信令网关的业务。
• 信令网关进程(SGP) 一个SG 的进程实例,状态是激活/备用/负荷分担。
• 选路关键字选路关键字描述一组SS7 信令参数和参数值(如DPC 、SIO+DPC 、
SIO+DPC+OPC、SIO+DPC+OPC+CIC), 它唯一地定义了由特定应用服务器处理的信令业务。选路关键字中的参数不能基于多个目的信令点编码。
2. M3UA 概念
M3UA 是SS7 MTP3 用户适配层,为处于IP 网中的MTP3 用户和处于网络边缘的MTP3 (在SG 上)提供原语通信服务,实现TDM SS7 和IP 互通。M3UA 支持如下功能:
• 七号信令信令点编码表示 在SS7 信令网中,信令网关用来表示IP 域中的一组节点用来选路到SS7 信令网。SG 自身作为SS7 信令网的一个物理节点,必须具有SS7 信令点编码。
• 选路功能SGP 和AS 间SS7 信令消息的分配是由选路关键字和相关的选路上下文确定。 构成选路关键字条目的SS7 信令地址/选路信息包括MTP3 路由标记中的OPC、DPC、SIO,或MTP3-用户的特定字段,例如ISUP 的CIC 等。
• SS7 信令与M3UA 的互通
SS7 信令与M3UA 的互通中,M3UA 适配层提供定义的MTP3 用户原语的扩展。
• 拥塞管理ASP 或IPSP 的M3UA 用SCON 消息向M3UA 对等层指出本地拥塞。当SG 的M3UA 接收到ASP 的SCON 消息时,SG 确定SPMC 正发生拥塞,根据MTP 规范SG 向相关的SS7 信令目的地发送MTP3 受控管理消息。
• SCTP 流映射SGP 和ASP 的M3UA 支持把信令业务分配到SCTP 的流中。MTP3-用户业务可以根据MTP 路由标记中的SLS 分配流,流的数量应该小于低层SCTP
偶联支持的最大流的数量。对于有顺序要求的信令业务必须分配到相同的流中。
• 客户端/服务器模型SGP 和ASP 都能支持客户端和服务器操作,使用M3UA 的对等端点应该配
置为一端是服务器,另一端是启动SCTP 偶联的客户端。缺省值SGP 作为服务器,ASP 是客户端,ASP 应该启动对SGP 的SCTP 偶联。
M3UA 是在SCTP 上传送,为M3UA 登记的SCTP 用户端口号码为2905。
3. M3UA 协议结构
M3UA 协议的体系结构如图2-9所示。
MTP3 -用户
M3UA
LM
SCTP
IP
图2-9 M3UA 协议的体系结构
MTP3-用户的低层协议是M3UA,它向MTP3-用户提供标准的MTP3 接口;M3UA 的低层协议是SCTP,由SCTP 提供偶联为M3UA 服务;M3UA 还有专门的层管理(LM),为其提供管理服务。
M3UA 提供的业务M3UA 提供如下业务功能:
• 支持传送MTP3 -用户消息
• 本地管理功能
• 支持与MTP3 网络管理功能互通
• 支持SGP 和ASP 间SCTP 偶联的管理
• 支持到多个SGP 偶联的管理
M3UA 消息格式
M3UA 消息格式中包含一个公共消息头,之后是0 个或多个由消息类型定义的参数,考虑到前向兼容性,因此所有消息类型都带有兼容性参数。
1. 公共消息头
MTP3 用户适配层协议消息的结构要求包括版本,消息类型、消息长度和消息内容(如图2-10所示)。消息头对于所有信令协议适配层消息是公共的。
0123 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
图2-10 公共消息头
• M3UA 协议版本版本字段包括M3UA 适配层的版本。所支持的版本为:
值:00000001; 版本:Release 1.0 protocol 。
• 消息类别和消息类型
表2-3中列出了M3UA 定义的消息类别,表2-4、表2-5、表2-6 、表2-7、表2-8和表2-9分别列出M3UA 定义的消息类型。
表2-3 M3UA 消息类别
消息类别名
消息类别编码(十六进制)
管理(MGMT )消息
00
传送消息
01
SS7 信令网管理(SSNM)消息
02
ASP 状态维护(ASPSM)消息
03
ASP 业务维护(ASPTM )消息
04
为其它SIGTRAN 适配层备用
05
为其它SIGTRAN 适配层备用
06
为其它SIGTRAN 适配层备用
07
为其它SIGTRAN 适配层备用
08
选路关键字管理(RKM)消息
09
IETF 备用
0A-7F
为IETF 定义的消息类别扩展备用
80-FF
表2-4 M3UA 管理(MGMT )消息类型
消息类型
消息类型编码(十六进制)
差错(ERR)
00
通知(NTFY)
01
IETF 备用
02-7F
为IETF 定义的M
GMT扩展备用
80-FF
表2-5 M3UA 传送消息类型
消息类型
消息类型编码(十六进制)
备用
00
数据(DATA)
01
IETF 备用
02-7F
为IETF 定义的传送
扩展备用
80-FF
表2-6 M3UA 信令网管理(SSNM)消息类型
消息类型
消息类型编码(十六进制)
00
备用
消息类型
消息类型编码(十六进制)
目的地不可用(DUNA)
01
目的地可用(DAVA)
02
目的状态查询(DAUD)
03
SS7 信令网拥塞状态(SCON)
04
目的地用户部分不可用(DUPU)
05
目的地受限(DRST)(暂不使用)
06
IETF 备用
7-7F
为IETF 定义的SSNM 扩展备用
80-FF
表2-7 M3UA 状态维护(ASPSM)消息类型
消息类型
消息类型编码(十六进制)
备用
00
ASP Up(ASPUP)
01
ASP Down(ASPDN)
02
Heartbeat(BEAT)
03
ASP Up Ack(ASPUP ACK)
04
ASP Down Ack(ASPDN ACK)
05
Heartbeat Ack(BEAT ACK)
06
IETF 备用
7-7F
为IETF 定义的ASPSM 扩展备用
80-FF
表2-8 M3UA 业务维护(ASPTM) 消息类型表2-9 M3UA 选路关键字管理(RKM)消息类型
消息类型
消息类型编码(十六进制)
备用
00
ASP 激活(ASPAC)
01
ASP 去活(ASPIA)
02
ASP 激活Ack(ASPAC ACK)
03
ASP 去活Ack(ASPIA ACK)
04
IETF 备用
5-7F
为IETF 定义的ASPTM 扩展备用
80-FF
消息类型
消息类型编码(十六进制)
备用
00
注册请求(REG REQ)
01
注册响应(REG RSP)
02
注销请求(DEREG REQ)
03
注销响应(DEREG RSP)
04
IETF 备用
5-7F
为IETF 定义的RKM 扩展备用
80-FF
• 消息长度 消息长度定义了消息的八位位组长度,长度包括消息头在内。对于消息的最后一个参数,如果包含填充,那么消息长度应把填充信息包含在内。
• 可变长度参数的格式
M3UA 由公共消息头和随后的0 个或几个可变长度参数构成。所有包含在消息中的参数的格式如图2-11所示:
0123 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
图2-11 可变长度参数格式
消息中可以包括多个参数,参数可以是任何顺序,除非有明确的要求。接收者应该接收任何顺序的参数。
• 参数标签参数标签为16 比特,用于识别参数类型,它可以是0 到65534 。用于适配层
的公共参数在0x00 到0x3F 之间,M3UA 的特定参数在0x0200 到0x02FF 之间。定义的公共参数标签如表2-10 所示。
表2-10 公共参数标签
参数名
参数标签编码(十六进制)
备用
0x0000
没有在M3UA 中使用
0x0001
没有在M3UA 中使用
0x0002
没有在M3UA 中使用
0x0003
信息串
0x0004
没有在M3UA 中使用
0x0005
选路上下文
0x0006
诊断信息
0x0007
没有在M3UA 中使用
0x0008
Heartbeat 数据
0x0009
没有在M3UA 中使用
0x000a
业务模式类型
0x000b
差错码
0x000c
状态
0x000d
没有在M3UA 中使用
0x000e
没有在M3UA 中使用
0x000f
没有在M3UA 中使用
0x0010
ASP 标识符
0x0011
被影响的信令点编码
0x0012
Correlation ID
0x0013
M3UA 的特定参数如表2-11所示。表2-11 M3UA 的特定参数• 参数长度
参数名
参数标签编码(十六进制)
网络外貌
0x0200
备用
0x0201
备用
0x0202
备用
0x0203
用户/Cause
0x0204
拥塞指示
0x0205
参数名
参数标签编码(十六进制)
相关的目的地
0x0206
选路关键字
0x0207
注册结果
0x0208
注销结果
0x0209
本地选路关键字标
识符
0x020a
目的信令点编码
0x020b
业务指示语
0x020c
备用
0x020d
源信令点编码列表
0x020e
电路范围
0x020f
协议数据
0x0210
备用
0x0211
注册状态
0x0212
注销状态
0x0213
IETF 备用
0x0214-0xffff
参数长度为16 比特,包含参数的字节数,其包括参数标签、参数长度和参数值字段。参数长度不包括任何填充字节。
参数值是可变长度,它包含参数实际传送的信息。
参数的总长度(包括标签、参数长度和值字段)必须是四字节的整数倍。如果参数长度不是四的整数倍,发送者在结尾用0 填充参数,填充的长度不包括在参数长度字段。发送者不能填充多于三个字节,接收者忽略填充字节。
2. 数据(DATA)消息数据消息中都包含公共消息头和0 个或多个由消息类型定义的参数。DATA 消息包含SS7 信令MTP3 用户协议数据,包含了完整的MTP3 路由标
记,DATA 消息包含如下参数:
网络外貌
任选(暂不使用)
选路上下文
任选
协议数据
必选
Correlation Id 任选DATA 消息的参数格式如图2-12: 012
3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
图2-12 DATA 消息参数格式
(1) 网络外貌是消息中用来补充NI(网络标识语)的参数。在DATA 消息中,网络外貌隐含地定义了所用SS7 信令点编码格式、SS7 信令网指示语值和MTP3/MTP3 用户协议类型/变量/版本。举例说明,中国内陆和香港特别行政区属于同样的NI(国内主用网),但是其信令点格式不同。中国内陆使用24 位的信令点编码,香港地区使用14 位的信令点编码。这就需要消息中的网络外貌参数来定义。如果网络外貌参数存在,因为它定义了协议数据字段的格式,则它必须是消
息中的第一个参数。M3UA 协议规范暂不使用网络外貌参数。
(2) 选路上下文选路上下文是一个32bit 的值,在消息中一一代表选路关键字。
(3) 协议数据协议数据参数包含源SS7 信令MTP3 消息,其中包括业务信息八位位组和路
由标记。协议数据参数包含下列字段:
• 业务指示语(SI)
• 网络指示语(NI)
• 目的信令点编码(OPC)
• 源信令点编码(DPC)
• 信令链路选择码(SLS) 用户协议数据包括:MTP3-用户协议单元(例如,ISUP 、SCCP 或TUP 参数)。
协议数据参数的格式如图2-13所示。
012
3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
空空
OPC
空空
DPC
空空SI
空空
NI
空空
SLS
流流参协
图2-13 协议数据的格式
• OPC:24 位;
• DPC:24 位;
• NI:2 位;
• SI:4 位;
• SLS:4 位。
• Correlation Id:在AS 内唯一地识别协议数据中携载的MSU。
3. SS7 号信令网管理(SSNM )消息
M3UA 协议所有的消息(包括SSNM 消息)中都包含公共消息头和0 个或多个由消息类型定义的参数。
(1) 目的地不可用(DUNA) SG 中的SGP 向所有相关的ASP 发送DUNA 消息用来指示SG 已经确定了 一个或多个SS7 信令目的地不可达,它也用于SGP 响应ASP 消息不可达的
SS7 信令目的地。ASP 的MTP3 用户应当停止向DUNA 消息中被影响的目的 地发送业务。
(2) 目的地可用(DAVA) SGP 向所有相关的ASP 发送DAVA 消息用来指示SG 已经确定了一个或多
个SS7 目的地目前可达,或响应DAUD 消息(见下文)。ASP 的MTP3-用 户协议应当恢复DAVA 消息中被影响的目的地的业务。
(3) 目的地状态查询(DAUD)
ASP 向SGP 发送DAUD 消息来查询到一个或多个被影响目的地的SS7 信令 路由的可用性/拥塞状态。
(4) SS7 信令网拥塞(SCON) SGP 向所有相关的ASP 发送SCON 消息,用来指示到SS7 信令网的一个或 多个目的地拥塞,或发送SCON 消息到ASP 用来响应DATA 或DAUD 消息;
也可以从ASP 的M3UA 向M3UA 对等层发送SCON 消息指示M3UA 或ASP 拥塞。
(5) 目的地用户部分不可用(DUPU)
SGP 向ASP 发送DUPU 消息通知SS7 信令网节点上的远端对等MTP3-用户 部分不可用。应用服务器进程管理(ASPM)消息
(6) ASP Up(ASPUP )消息
ASP Up(ASPUP )消息用来向远端MU3A 对等层指示适配层已经准备好为ASP 配置的所有的选路关键字接收SSNM 或ASPM 管理消息。
(7) ASP Up Ack(ASPUP ACK )消息
ASP Up Ack(ASPUP ACK) 消息用来证实从远端M3UA 对等层接收的ASP Up 消息。
(8) ASP Down(ASPDN)消息
ASP Down(ASPDN) 消息用来向远端M3UA 对等层指示适配层尚未准备好接收DATA、SSNM、RKM 或ASPTM 消息。
(9) ASP Down Ack(ASPDN Ack )消息
ASP Down Ack 消息用来证实从远端M3UA 对等层接收的ASP Down 消息,或答复从出于管理原因而被锁的ASP 接收的ASPM 消息。
(10) Heartbeat(BEAT)消息BEAT 消息被任选的用来保证M3UA 对等层一直对其它M3UA 可用,当M3UA
不使用SCTP 作为传送层时必须使用BEAT 消息。BEAT 消息中不包含任何参数。
(11) Heartbeat Ack(BEAT Ack )消息
发送BEAT Ack 消息以响应接收的BEAT 消息,它包含接收的BEAT 消息的所有参数。
4. M3UA 选路关键字管理(RKM)消息
(1) 注册请求(REG REQ) ASP 发送注册请求消息用于向远端M3UA 对等层指出它希望与远端对等层注
册一个或几个给定的选路关键字。最典型的情况是ASP 向SGP 发送这个消 息,并希望接收具有相关选路上下文值的REG RSP。
(2) 注册响应(REG RSP)
REG RSP 消息用于对来自远端M3UA 对等层REG REQ 消息的响应,它包含注册请求成功/故障的指示,并返回成功注册请求的唯一的选路上下文值而用于后续的M3UA 业务管理协议。
(3) 注销请求(DEREG REQ) ASP 发送DEREG REQ 消息向远端M3UA 对等层指出希望注销给定的选路
关键字,通常情况下ASP 将向SGP 发送这个消息并希望接收带相关选路上 下文值的返回DEREG RSP 消息。
(4) 注销响应(DEREG RSP) DEREG RSP 消息用于响应来自远端M3UA 对等层的DEREG REQ 消息。
5. 应用业务维护(ASPTM)消息
(1) ASP 激活(ASPAC)
ASP 发送ASPAC 消息来指出远端M3UA 对等层准备处理特定应用服务器的信令业务。ASPAC 只影响选路上下文识别的选路关键字的ASP 状态。
(2) ASP 激活Ack ASPAC Ack 消息用于证实从远端M3UA 对等层接收的ASPAC 消息。
(3) ASP 去活(ASPIA)
ASP 发送ASPIA 消息向远端M3UA 对等层指示一列ASP 中不再使用的某个ASP。ASPIA 消息只影响由选路上下文识别的选路关键字中ASP 的状态。
(4) ASP 去活Ack ASPIA Ack 消息用于证实从远端M3UA 对等层接收的ASP 去活消息。
6. 管理消息
(1) 差错(ERR)
如果在收到的消息中发现差错事件的值,则发送ERR 消息。如在现行的状态收到非期望的值,或参数值无效。ERR 消息必须包括差错码参数。
差错码参数用来指示ERR 消息产生的原因,差错参数值使用表2-12中规定的值。
表2-12 差错参数的有效值
取值
描述
0x01
无效的版本
0x02
M3UA 中不使用
0x03
未支持的消息类别
取值
描述
0x04
未支持的消息类型
0x05
不支持的业务处理模式
0x06
非期望的消息
0x07
协议差错
0x08
M3UA 中不使用
0x09
无效的流标识符
0x0a
M3UA 中不使用
0x0b
M3UA 中不使用
0x0c
M3UA 中不使用
0x0d
拒绝-管理闭塞
0x0e
要求ASP 标识符
0x0f
无效的ASP 标识符
0x10
M3UA 中不使用
0x11
无效的参数值
0x12
参数字段差错
0x13
非期望的参数
0x14
目的状态未知
0x15
无效的网络外貌
0x16
丢失参数
0x17
M3UA 中不使用
0x18
M3UA 中不使用
0x19
无效的选路上下文
0x1a
没有为ASP 配置的AS
如果接收到无效或不支持版本的消息,就发送“无效版本”差错,ERR 消息在公共头中包含支持的版本,ERR 消息可任选地在诊断信息区域提供支持的版本。
如果接收到非期望的或不支持的消息类别,就发送“不支持的消息类别”差错。
如果接收到非期望的或不支持的消息类型,就发送“不支持的消息类型”差错。
如果ASP 发送不支持的业务量模式类型的ASP 激活消息或发送与应用服务器现在配置的业务量处理模式类型不兼容的ASP 激活消息,SGP 就发送“不支持/无效的业务量处理模式”,例如SGP 不支持负荷分担。
如果在现行状态下接收到非期望的已定义和可识别的消息,可以发送“非期望的消息”(ASP 也可以丢弃这个消息而不发送ERR 消息)。
对于接收到任何语法正确但非期望的参数,发送“协议差错”差错。
如果在非期望的SCTP 流上接收到消息(例如,在非“0”流上接收到MGMT 消息),就发送“无效流标识符”差错。
当接收到ASP-Up 或ASP 激活消息并且出于管理原因拒绝请求(例如管理闭锁)时,就发送“拒绝-管理闭塞”差错。如果这个差错是响应ASP 激活消息,在ERR 消息中应包括ASP 激活消息中的选路上下文。
如果SGP 接收到不包含ASP 标识符参数的ASP Up 消息而SGP 要求这个参数时,响应ASP Up 时就发送“要求ASP 标识符”。
如果SGP 接收到无效(即不唯一)的ASP 标识符的ASP Up 消息,响应ASP Up 时就发送“无效的ASP 标识符”。
如果接收到无效参数值的消息(接收到备用段非“0”的消息),就发送“ 无效参数值”差错。
如果接收消息中的参数有错误的长度字段,就发送“参数字段差错”。
如果消息中包含无效的参数就发送“非期望的参数”差错。
如果SG 接收到DAUD 消息查询目的地的可用性/拥塞状态,但SG 不希望提供这些状态(例如发送者无权知道这些状态)时,就发送“目的地状态未知”差错。
如果消息中不包含必选参数,就发送“丢失参数”差错。
如果从对等层接收到无效(没有配置)的选路上下文值,就发送“无效选路上下文”差错。对于这种错误,在ERR 消息中必须包括无效选路上下文。
如果从对等层接收到没有选路上下文的消息并且通过配置数据不知道参考哪个应用服务器时,就发送“没有为ASP 配置AS”差错。
(2) 通知(NTFY) NTFY 消息用来向M3UA 对等层提供M3UA 事件的自治指示。
2.4.4 M3UA 消息流程
下面的示例指出在SGP 和ASP 间业务建立的M3UA 消息流,所有这些示例假设已经建立了SCTP 偶联。
1. 建立SGP 和ASP 间的偶联和业务示例
(1) AS 中有一个ASP
这个示例给出了建立SGP 和ASP 之间业务的M3UA 消息的流程,这里的AS 中只有一个ASP(无备份)。
• 单个ASP 在一个AS/(1+0 备份),没有注册在该条件下,M3UA 消息调用示例如图2-14所示。
RC:选选选选选( 任选)
图2-14 建立M3UA 消息的流程示例1
• 单个ASP 在一个AS(1+0 备份),动态注册
这个示例和上一个相同,只是增加了注册信息的交换,SGP 接受了注册。在该条件下,M3UA 消息调用示例如图2-15所示。
SGP ASP1
ASP UpASP Up AckLRC :版: 选选选选选 REG REQ(LRCn,RKn) RK:选选::: RC: 选选选选选REG RSP(LRCn,RKn)
ASP 激激(RCn)
图2-15 建立M3UA 消息的流程示例2
• 单个ASP 在多个AS(1+0 备份),动态注册在该条件下,M3UA 消息调用示例如图2-16所示。
ASP1
SGP
LRC :版:选选选选选 RK:选选::: RC:选选选选选图2-16 建立M3UA 消息的流程示例3
2. ASP 业务故障示例
(1) 两个ASP 主备用,一个ASP 故障参考图2-17,ASP1 退出服务的情况如图2-17所示。
SGP ASP2
图2-17 ASP 业务故障示例1
注:如果SGP 检测到M3UA 对等层丢失(M3UA Heartbeat 丢失或者是检测到SCTP 故障),则初始的ASP 去活消息交换(例如,ASP1 和SGP 间)将不会发生。
(2) 两个ASP 主备用
以下的示例也根据图2-18 所示的情况,这里是由ASP2 发起的主动请求并负责全部的业务。该示例如图2-18所示。
SG
ASP1 ASP2 ASP 激激ASP 激激Ack 通通标((( ASP 激激标图2-18 ASP 业务故障示例2
3. 从AS 中正常退出ASP 并清除偶联示例
如果ASP 要退出业务,处于“ASP-INACTIVE”状态(即已经接收到ASP 去活Ack 消息)的ASP 就可以进入“ASP-DOWN”状态。该示例如图2-19所示。
ASP1
SGP
ASP 去激(RCn) ASP 去激 Ack(RCn)RC:选选选选选
DEREGREQ(RCn)
DEREG RSP(LRCn,RCn)
ASP Down
图2-19 从AS 中正常退出ASP 并清除偶联示例