软交换分组协议基础-SIGTRAN

2024-02-09 23:08

本文主要是介绍软交换分组协议基础-SIGTRAN,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  要:本文对SIGTRAN协议进行简介,重点对NGN组网中使用的M2UA协议部分进行介绍,对于NGN的概念和协议的简介参见《软交换分组协议基础-NGN和软交换分组协议综述V2.0》文档。

缩略语清单:

名词

英文解释

中文解释

SIGTRAN 

Signalling Transport

信令传输

M2UA

MTP2 User Adaption Layer

MTP2用户适配层

SCTP         

Stream Control Transport Protocol

流控制传输协议

SG               

Sigaling Gateway

信令网关

MG              

Media Gateway

媒体网关

MGC           

Media Gateway Controller

媒体网关控制器

AS                

Application Server

应用服务器,代表了一定的资源。对于SG,表示SG上的接口标识的组合。

ASP          

Application Server Process

应用服务器进程,是为一个或多个AS服务的进程实例,是和SG的进程实例进行通信的实体

NIF            

Node Interworking Function

节点互通功能,是窄带信令协议模块和UA之间的转换适配层。

参考资料清单:


 

1 SIGTRAN简要介绍... 1-2

1.1 SIGTRAN入门简介.. 1-2

1.2 SIGTRAN协议栈结构介绍.. 1-2

1.2.1 SIGTRAN协议栈结构.. 1-2

1.2.2 SIGTRAN应用模型.. 1-2

2 M2UA基本概念和业务功能... 2-2

2.1 M2UA组网应用.. 2-2

2.2 SIGTRAN的特点-“无缝连接”.. 2-2

2.3 M2UA的基本概念和业务功能.. 2-2

2.3.1 M2UA的基本概念.. 2-2

2.3.2 M2UA的业务功能.. 2-2

2.3.3 支持传送MTP2/MTP3接口原语功能.. 2-2

2.3.4 支持分别位于SGMGC上的层管理模块之间的通信.. 2-2

2.3.5 支持对SGASPSCTP偶联的管理.. 2-2

2.4 M2UA的内部功能.. 2-2

2.4.1 映射.. 2-2

2.4.2 ASP状态.. 2-2

2.4.3 SCTP 流映射.. 2-2

2.4.4 无缝的网管互通.. 2-2

2.4.5 IP拥塞管理.. 2-2

2.4.6 链路查询.. 2-2

3 协议消息入门... 3-2

3.1 通用消息头结构.. 3-2

3.1.1 版本(8bits.. 3-2

3.1.2 消息类别(8bits.. 3-2

3.1.3 消息类型(8bits.. 3-2

3.1.4 消息长度.. 3-2

3.1.5 M2UA消息可变长参数的结构.. 3-2

3.2 M2UA消息头.. 3-2

3.3 实例说明.. 3-2

3.3.1 ASPUP消息的处理.. 3-2

3.3.2 ASPACTIVE消息的处理.. 3-2

3.3.3 ASPINACTIVE消息的处理.. 3-2

3.3.4 ASPDOWN消息的处理.. 3-2

4 M2UA协议流程及组网应用... 4-2

4.1 M2UA协议流程举例.. 4-2

4.1.1 M2UA业务环境建立流程(建链):.. 4-2

4.1.2 M2UA业务中断流程(断链):.. 4-2

4.2 NGN组网中的SIGTRAN协议.. 4-2

 


第1章  SIGTRAN简要介绍

& 知识点:

1、理解SIGTRAN协议的应用背景、实现功能;

2、理解SIGTRAN协议的基本概念、组成结构;

 

SIGTRAN的初学者,通过阅读本章可以了解它的基本概念和应用场合。通过对SIGTRAN基本概念的理解,可以更快的进入角色。如果您对于SCN信令协议(如SS7)熟悉的话,对于理解SIGTRAN协议将会很有帮助。下面将SIGTRAN协议的基本概念进行描述。

SIGTRAN协议栈是支持通过IP网络传输SCN信令协议的协议栈。该协议栈支持SCN信令协议分层模型定义中的层间标准原语接口,从而保证已有的SCN信令应用可以未经修改地使用,同时也利用标准的IP传输协议作为传输底层,通过增加自身的功能来满足SCN信令的特殊传输要求。

1.1  SIGTRAN入门简介

我们在讲到SIGTRAN的时候不能不涉及到它的应用背景。图1-1很好的说明了这一点。

                                                                                                                                                                                图1-1 SIGTRAN应用模型

随着IP分组网络的迅速发展,IP网络和电路交换网(SCN)的互通成为必须要面对的问题。在此需求的推动下,具有互通功能的网关出现在IP网和SCN网交界处,即媒体网关MG、信令网关SG,分别完成不同媒体流和不同信令之间的承载传送和转换。其中,信令网关SG和媒体网关控制器MGC之间通过SIGTRAN传送信令。这要求SGMGC都能够支持SIGTRAN协议。以下两点说明了图1-1SIGTRAN的功能:

(1)      SGMGC之间使用SIGTRAN来传送SCN信令。在MGMGC之间、在分离的MGC之间和在SG之间也可能使用SIGTRAN来传送基于消息的信令。

(2)      SIGTRAN支持多种SCN协议的封装和承载,并不包含任何SCN协议的翻译/转换功能,而是将翻译/转换功能置于信令传送的端点处进行,仅仅将自己定位于进行信令传送。

1.2  SIGTRAN协议栈结构介绍

1.2.1  SIGTRAN协议栈结构

SIGTRAN由两层组成:传输层和UA层。

传输层协议使用流控制传输协议SCTP,在IP网上提供可靠的消息包传输;

UA层,对SCN信令的协议分层模型中各层协议的适配,负责分别位于SCNIP中的两层协议的层间原语的传输。如M2UAMTP2的用户适配层,其作用支持MTP2MTP3之间的原语接口,是位于IP网中MGC上的MTP3SG上的MTP2间的纽带。

                                                                                                                                                                             图1-2 SIGTRAN协议栈结构

1-2在许多文档中都出现过,这是整个SIGTRAN的结构层次图。其实这张图同时也包含了几层含义:

A、为什么中间SCTP这一层画的这么宽大?是因为UA层包括M2UAM3UAIUAV5UA等众多成员,它们都需要建立在SCTP的基础上,所以才将SCTP一层画得更宽大一些,可见SCTP的重要性。在这里简单将SCTP的协议情况进行介绍:

SCTP的发展历史和前景: SCTP实际上脱胎于TCP协议,很多协议过程,如拥塞控制,都和TCP如出一辙。但是一开始SCTP定位在信令传输,因此对实时性和安全行作了一些考虑,克服了TCP的一些固有缺陷。其诞生之初叫简单控制传输协议,基于UDP。历经13个版本的草案发展,形成RFC的时候,已经绝对不是一个简单协议了,各大通信公司都进行了多次BAKE OFF测试,SCTP协议的合理性和实用性已经得到充分的检验。而且SCTP由于其超越TCP的优势,其应用已经远远超出了SIGTRAN的范畴,一方面在VOIP领域很多地方承担传输协议的角色,如BICCMGCP都有选用SCTP的趋势,另一方面在通用传输协议上更有替代TCP协议的趋势,IETF已经讨论了包括HTTP协议在内的多种基于SCTP的应用可行性,并推出了SCTPsocket接口的相关草案。

B、图1-2中在V5UA的后面,有省略号,这表明SIGTRAN协议栈的UA成员还在不断增加。不仅包含M2UAM3UAV5UA等,其它协议都有可能通过SIGTRAN协议在IP网上传送,条件就是它的UA协议的底层传输要支持SCTP协议,利用SCTP提供的socket接口创建连接。

1.2.2  SIGTRAN应用模型

1-3中所示,SIGTRAN可以将一体化的SS7演进成为层间分离的SS7SIGTRAN由于支持层间原语,如MTP2/MTP3间的层间原语,所以可以将SS7进行层间分离,保证与电路相关的应用部分信息在IP网上的完整传送,其实这就是SIGTRAN的应用。SIGTRAN的一个重要的特点无缝连接,就是体现在信令传送的过程中。第二章将对无缝连接的具体内容进行详细讲解。

                                                                                                                                                                                图1-3 SIGTRAN应用模型

& 说明

总结:通过第1章对SIGTRAN的介绍,大家应该对于SIGTRAN应用背景、协议结构有一个清晰的了解。并且对于SIGTRANSCTP等的概念应该有了一个初步的理解。

 


第2章  M2UA基本概念和业务功能

& 知识点:

1、理解M2UA的应用和“无缝连接”特点;

2、掌握M2UA的基本概念和功能;

 

我们在第1章中讲到SIGTRAN协议栈组成结构,其中UA层是对SS7的协议分层模型中各层协议的适配,负责将分别位于SCNIP网络中的两层协议的层间原语进行传输。本章就对软交换系统中典型应用的M2UA协议进行重点讲解。

2.1  M2UA组网应用

2-1所示为M2UA应用组网: 通常,M2UA应用场合是当SG功能实体位于MGU内时,需要使用M2UASS7 MTP2用户信令消息送给MGC,即所说的信令回程,如图所示。绿色部分为M2UA,蓝色部分为MTP各功能级。

                                                                                                                                                                                     图2-1 M2UA应用组网

2.2  SIGTRAN的特点-“无缝连接”

SIGTRAN协议栈是支持通过IP网络传输SCN信令协议的协议栈。该协议栈支持SCN信令协议分层模型定义中的层间标准原语接口,从而保证已有的SCN信令应用可以未经修改地使用,同时也利用标准的IP传输协议作为传输底层,通过增加自身的功能来满足SCN信令的特殊传输要求。

由图2-1,我们可以清楚的看到,SIGTRAN就是在MTP1MTP2MTP3之间插了队。在传统电路交换网,MTP1MTP2MTP3按顺序在E1上传送,而现在SIGTRAN插入到了MTP2MTP3之间,使MTP信令消息在IP网中传输成为可能!而所谓的无缝连接就是指,MTP2MTP3是不会知道SIGTRAN的存在的。

2-1中最左边浅蓝色部分就是原来的MTP传输层。而中间及右边的浅蓝色部分也是MTP成员,它和最左边的MTP成员有什么不同呢?我们可以发现MTP1MTP2仍然紧紧的联在一起,而MTP2MTP3之间却被运行在IP上的SIGTRAN给隔开了。MTP2本来是通过层间原语把信令传递给MTP3,其实是传递给了SIGTRAN,这是因为SIGTRAN能够支持MTP2MTP3的层间原语功能。SIGTRAN经过IP网再将MTP2传给MTP3MTP3通过层间原语接收到MTP2消息,又传给了上层用户TUPISUP等。这样其实MTP2MTP3并不知道它们之间隔了一层SIGTRAN,上层TUPISUP等应用层模块就更不用说了。所以SIGTRANMTP上层用户之间根本就没有任何联系和关联。

同样,MGC侧的上层用户传下来的信令消息,经MTP3又传递给SIGTRAN,经IP网传给了MTP2MTP3以为直接送给了MTP2MTP2以为是MTP3送来的。图中MTP2MTP3之间被SIGTRAN所隔离,而MTP2MTP3并不知道它们之间存在这样一条缝隙!

这就是SIGTRAN的所谓的“无缝连接”。

& 说明

“无缝连接”特点是理解SIGTRANM2UA)的重要内容。图1-3是典型M2UA应用组网图,对于理解M2UA很有帮助。

 

2.3  M2UA的基本概念和业务功能

前面大家已经理解了M2UA协议的“无缝连接”特点。上文已经提到M2UA无缝连接的实现,是依靠它能够支持MTP2MTP3层间原语功能。所以本节将对M2UA的几个概念和所能提供的业务功能进行说明。

2.3.1  M2UA的基本概念

M2UA:(SS7 MTP2-User Adaptation LayerSS7 MTP2用户适配层,M2UA终结MTP2于分组网边缘SG,透传MTP2的用户消息(MTP3消息)转发给位于分组网中的MTP3(MGC)。

M2UA主要应用于信令和媒体在同一E1/T1中传到MG的直连方式情况下使用,基本为嵌入式信令网关。

(1)      Interface(接口)

M2UA中接口指的SS7的信令链路。

(2)      MTP2UserMTP2用户)

指使用MTP2的业务的协议,即MTP3

(3)      Interface Identifier (接口标识)

接口标识指在SG侧的信令消息发送和接收的物理接口标识,该值仅仅是逻辑标识,可以是数字,也可以是字符串,对于M2UA来说,可以认为一个接口标识对应一条7号信令链路,它只具有局部意义,在SGASP之间使用。

(4)      Application Server (应用服务器,简称AS)

为特定应用实体服务的一个逻辑实体,例如:处理呼叫处理的MGC就可以看作一个AS,在应用中可以在SG侧将AS看作处理相关业务的一个或多个业务的组合。

(5)      Application Server Process (应用服务器进程,简称ASP)

一个AS的进程实例,状态是激活/备用。每个ASP包含一个SCTP端点,能够处理多个AS的业务。在M2UA这一层,AS就代表了一组MTP信令链路,而一个ASP处理的就是一组信令链路的消息。比如ASP1SG之间建立一条SCTP连接1ASP2SG之间建立了一条SCTP连接2SG上有5MTP信令链路,12信令链路由ASP1处理;345信令链路由ASP2处理。可以把MGCM2UA进程看作是一个ASP,那么12信令链路的消息由M2UA进程1(即ASP1)交给MTP3345链路的消息由M2UA进程2(即ASP2)交给MTP3处理。

(6)      Fail-over(故障恢复)

当前ASP不可达或出现故障时,业务可以重选ASP,从另外同样可以处理该链路业务的ASP(或备用的ASP)传输。这种能力就叫故障恢复。 故障恢复手段可以用来切换到先前不可达的进程。

(7)      Layer Management(层管理)

它是在M2UA协议栈与本地管理实体间处理输入输出的功能。如本地管理可以通过层管理配置协议栈,将协议栈上报的故障告知本地管理等等。

(8)      链路关键字(Link Key)

链路关键字就是本地用来确定一条信号链路和及其对端的唯一标识。

(9)      信令链路终端(Signalling Link Terminal)

信令链路终端指忽略具体的执行细节,而能够实现MTP2规定的各种功能的实体。

2.3.2  M2UA的业务功能

M2UA的任务是使处于SG侧的MTP2与处ASP侧的MTP3之间通过M2UA实现无缝连接,也就是说,对于MTP2来说,M2UA表现为MTP3的接口,对于MTP3来说,M2UA表现为MTP2的接口。

& 说明

做到“无缝连接”,M2UA必须支持以下功能:

支持传送MTP2/MTP3接口原语

支持分别位于SGMGC上的层管理模块之间的通信

支持对SGASPSCTP偶联(即是连接,连接在国标里称为偶联)的管理。

 

2.3.3  支持传送MTP2/MTP3接口原语功能

M2UAMTP2/MTP3接口原语转化为M2UA相应消息通过SCTP连接在IP网中进行传输,到达对端后再将M2UA消息转化为相应的MTP2/MTP3接口原语送给MTP3M2UA支持传递MTP2MTP3协议规定的所有原语,主要包括以下几类:

ESTABLISH

用于请求信令链路开始定位,以及指示和证实链路定位成功的结果。

RELEASE

用于请求拆除先前已建立的信令链路的结果,指示和证实拆链的结果,以及链路定位失败报告。

DATA

用于请求传送MSU消息,在SGMTP2请求发送其收到的MSUMTP3,在MGCMTP3请求向MTP2发送MSU

DATA RETRIEVAL

数据回收类原语,用于链路数据的回收过程

STATE

链路状态请求、指示和确认,用于MTP3了解和控制链路状态。

2.3.4  支持分别位于SGMGC上的层管理模块之间的通信

MTP2 MTP3位于相同设备上时,由于MTP2 MTP3在一起共用相同的层管理,因而不存在问题。当MTP2 MTP3分别位于不同设备上,通过M2UAIP网通信时,两边分别有一个层管理,为了真正做到无缝连接,就必须考虑两侧层管理的通信问题。

SG侧,当发现ASP去激活时,M2UA要负责通知SG的层管理,此时M2UAMTP2采取的行动要遵循相关的MTP规范,M2UA协议草案没有作出规定。

M2UA从对端收到错误的消息时,需向本地层管理报告错误(如消息中携带一个SG侧不认识的接口标识)。

2.3.5  支持对SGASPSCTP偶联的管理

SGM2UA层须维护所有已配置的远端ASP的可用性状态,以了解ASP是启用还是宕机;为了管理SGASP之间的SCTP偶联和业务,SGM2UA还须维护远端ASP的激活/未激活状态,激活的ASP用来处理SG发送的业务。

本地管理可以命令SGASP侧的M2UA层建立到对端M2UA节点的SCTP偶联。它可以通过使用M-SCTP ESTABLISH请求、指示和证实原语来建立到对等M2UA节点的SCTP偶联。

M2UA层也可以使用M-SCTP STATUS请求和指示原语向本地层管理通知SCTP偶联的状态,例如:M2UA可以向本地管理通知SCTP偶联释放的原因,确定是由本地M2UA层还是由SCTP释放的。

M2UA层也可以向本地管理通知ASP可用性状态的变化,它通过使用M-ASP STATUS原语来通知ASP的状态。

2.4  M2UA的内部功能

2.4.1  映射

M2UA需维护SS7物理链路和接口标识之间的映射关系,这两者是一一对应的关系。

2.4.2  ASP状态

由于需要支持ASP之间的冗余,支持ASP间的不同业务处理方式,SG侧的M2UA必须维护ASP的状态。SGASP之间通过ASPM消息对ASP状态进行管理。

2.4.3  SCTP 流映射

SCTP流映射的准则:

(1)      将业务最终映射到SCTP流是由适配层完成的;

(2)      映射基准是接口标识;

(3)      有序的业务必须保证在相同的流传输;

(4)      流号0用于传送管理消息,不能用于传送MAUP消息。

2.4.4  无缝的网管互通

M2UA提供在SGASP之间的无缝的互通,SGM2UAASP从激活状态迁出时应向本地层管理通知MTP3已不可达,SGM2UAMTP2 采取的措施遵循相关的MTP规范,协议草案没有作出规定。

2.4.5  IP拥塞管理

IP网络发生拥塞时,SCTP会通知M2UAM2UA     对网络拥塞的处理可基于实现,M2UA协议草案中对此没有作出规定。

2.4.6  链路查询

ASP之间发生倒换时,新的激活的ASP上的M2UA可能会向SG查询信令链路状态,以保证两端的一致性,因此SGM2UA要将当前链路的状态如实向ASP汇报。


第3章  协议消息入门

M2UA协议消息介绍中,给大家介绍M2UA协议消息的分类以及组成,如果您对更具体的消息体内容感兴趣,请参考协议文本。

 

& 说明

M2UA消息分为以下三大类:

1MAUPM2UA用户适配消息

2ASPMASP维护消息

3MGMT:管理消息

 

3.1  通用消息头结构

需要注意的是,任何M2UA的消息都必须包含M2UA通用消息头,其结构如下:

    0               1                2                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

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    |  Version   | Reserved  | Message Class| Message Type  |

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   |          Message                Length               |

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

M2UA的通用消息头包括:版本、消息类别、消息类型、消息长度。下面我们对照上面的消息头分别进行解释。

3.1.1  版本(8bits

现在支持的版本为1.0,所以该域的值只能为01

1.  保留字段(8bits

在实际消息中都填写00

3.1.2  消息类别(8bits

SIGTRAN的消息类别是统一定义的,也就是说这个通用消息头是所有SIGTRAN家族中各种UA协议都支持的。对于M2UA来讲,只能是以下几种:

0     管理消息(MGMTManagement Message) [IUA/M2UA/M3UA/SUA]

3     ASP状态维护消息(ASPSM ASP State Maintenance Messages)                

            [IUA/M2UA/M3UA/SUA]

4     ASP业务维护消息 (ASPTM ASP Traffic Maintenance Messages)         

            [IUA/M2UA/M3UA/SUA]

6     MTP2用户适配消息(MAUP MTP2 User Adaptation Messages) [M2UA]

(注:后面的方括号表示有哪些UA协议支持这种类别,其中3和4可以统称为ASPM类消息)

3.1.3  消息类型(8bits

消息类型是指对应于消息类别的具体的实例。比如说水果是一种“消息类别”,而苹果就是水果这种消息类别的一个消息类型,梨同样也是水果这种消息类别的一个消息类型。

管理类消息(Message Class = 0) 有以下消息类型:

0    错误消息(ERR)

1    Notify消息(NTFY)

MTP2用户适配消息(Message class = 6)有以下消息类型:

       0      Reserved

      1      Data    

      2      Establish Request

      3      Establish Confirm

      4      Release Request

      5      Release Confirm 

      6      Release Indication     

      7      State Request               

      8      State Confirm            

      9      State Indication               

     10      Data Retrieval Request       

     11      Data Retrieval Confirm   

     12      Data Retrieval Indication    

     13      Data Retrieval Complete Indication 

     14      Congestion Indication 

ASP状态维护消息(Message Class = 3)有以下消息类型:

       1      ASP Up (UP)

      2      ASP Down (DOWN)

      3      Reserved

      4      ASP Up Ack (UP ACK)

      5      ASP Down Ack (DOWN ACK)

ASP业务维护消息Mesage class = 4)有以下消息类型

       1      ASP Active (ACTIVE)

      2      ASP Inactive (INACTIVE)

      3      ASP Active Ack (ACTIVE ACK)

      4      ASP Inactive Ack (INACTIVE ACK)

3.1.4  消息长度

消息长度定义消息的长度(以八位位组为单位),包括消息头的长度和填充的长度。

3.1.5  M2UA消息可变长参数的结构

M2UA消息中的参数格式包含消息标签(Parameter Tag),参数的长度(Parameter Length) 参数内容(Parameter Value) 简称TLV格式。

 

    0                       1                       2                      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

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   |          Parameter Tag            |       Parameter Length        |

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   /                                                                            /

   /                       Parameter Value                                   /

   /                                                                            /

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                                    参数的TLV格式

除了通用消息头以外,以后每个参数都是这种TLV格式,M2UA消息就是由这些一个或多个参数累加而成,或者是没有参数。其中Tag值就是区别各种参数的标志。具体的各种参数请参考协议文本。

3.2  M2UA消息头

除了通用消息头外,MAUP消息有一个特定的消息头,称之为M2UA消息头。在这类消息中,M2UA消息头紧跟在通用消息头后边。M2UA消息头中包含了接口标识,M2UA消息头的格式如下:

    0                       1                       2                      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

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   |           Tag (0x1)           |             Length            |

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   |                 Interface Identifier (integer)                |

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                       M2UA消息头(接口标识为数字类型时)

3.3  实例说明

两端之间建立M2UA业务环境的过程如下:

       SG                                           ASP

              |<-------------ASP Up--------------|

              |-----------ASP-Up Ack---------->|

              |<------- ASP Active---------------|

              |----ASP Active Ack------ ------>|    

 

(1)      ASPUP的消息包:(以下均是16进制)

01 00 03 01 00 00 00 08

ASPUP消息只有通用消息头,01表示版本号,00是保留字段,03是消息类别(ASP状态维护消息),01ASPUP消息,00 00 00 08是代表整个消息包长度。

(2)      ASPUP ACK的消息包:

01 00 03 04 00 00 00 08

ASPUP ACK消息也只有通用消息头,01表示版本号,00是保留字段,03是消息类别(ASP状态维护消息),04ASPUP ACK消息,00 00 00 08是代表整个消息包长度。

(3)      ASP ACTIVE的消息包

01 00 04 01 00 00 00 18 | 00 0b 00 08 00 00 00 01 | 00 01 00 08 00 00 00 00

ASP ACTIVE消息包括通用消息头和M2UA消息头以及参数,01表示版本号,00是保留字段,04是消息类别(ASP业务维护消息),01ASP ACTIVE消息,00 00 00 18是整个消息包的长度。00 0b是一种Tag值,表示传输模式(主备用还是负荷分担),00 08表示这个参数的长度,00 00 00 01表示是负荷分担,00 01也是一种Tag值,表示if_id值,00 08表示这个参数的长度,00 00 00 00 是我们这端配置的if_id

其余的消息也都可以按照以8个字节为单位进行分割,再按照不同的Tag值查找协议文本进行对照。

3.3.1  ASPUP消息的处理

SCTP连接建立以后,ASP发送ASP UP消息给SG(该消息总是由ASP发出)。SG将记下该ASP的标识符(如果消息中有的话),标记该ASP处于inactive状态,并返回ASP UP Ack消息。

对于ASP侧来说,如果超时未接受到返回则重发或通知上层(具体实现)。在收到返回之前,ASP侧不能发送其它ASP消息。

对于SG侧来说,如果收到ASP UP消息后发现该ASP已被标记为ASP_ACTIVEASP_STANDBY状态,则在返回ASP UP Ack消息的同时,向对端发送“Unexpercted Message”错误消息,并修改该ASP的状态为ASP_INACTIVE

对于SG侧来说,如果 收到ASP UP消息后发现该ASP已被标记为ASP_INACTIVE,则只返回ASP UP Ack消息。

3.3.2  ASPACTIVE消息的处理

不论何时,ASP收到一个ASP Up AckASP将发送一个ASP ACTIVESGSG收到ASP ACTIVE后,即使该ASP的状态已被标记为Active,也还是会给一个确认返回的,同时改变自己的状态,并通知LM开通业务。在ASP ACTIVE Ack没有返回前,ASP不能发送任何数据消息。返回后则通知LM。超时未返回则重发。

3.3.3  ASPINACTIVE消息的处理

当某ASP不想再承载AS的业务时,它将向SG发出ASP Inactive消息。该消息可以是LM通过M_ASP_INACTIVE原语发出,也可由M2UA管理机制发出。SG一般会返回一个确认 INACTIVE AckASP INACTIVE超时未返回则重发。ASP INACTIVE消息中也含有的传输模式参数。但如果SG发现指出的模式与SG中该AS的当前模式不相同,SG将返回一个错误消息。

对于主备互换模式的AS来说,在SG接受到该ASPASP_INACTIVE消息之前,已经有新的ASP接管了AS的传输,那么此时的SG则早已把它认为是Inactive状态。该ASP将接到确认消息

3.3.4  ASPDOWN消息的处理

SG接受到ASP DOWN消息后,标记该ASP状态为ASP_DOWN。通知LM(用M-ASP_Down指示原语),返回ASP Down Ack消息。不管该ASP处于何种状态,SG都要返回该ASP Down Ack消息。

对于ASP侧来说,收到ASP Down Ack消息后通知LM。但如果该ASP没有发出ASP Down消息却受到了ASP Down Ack消息,它就会认为自己处于ASP_DOWN状态。如果该ASP以前是处于ASP-ACTIVE ASP_INACTIVE状态,此时的ASP将重新使自己返回到该状态。                                                   对于ASP侧来说,如果超时没有收到确认,则反复重发或通知LM具体实现。

 


第4章  M2UA协议流程及组网应用

& 知识点:

1、掌握M2UA建链、断链等消息流程;

2、理解SIGTRANNGN组网中的作用;

 

4.1  M2UA协议流程举例

NGN组网中,SGMG都是位于分组网与SCN网的交界处,SG通过SIGTRAN协议和MGC(软交换)通信,MG通过H.248协议和MGC通信。其中SG作为信令网关,可以是单独的设备,也可以内置在TMG或者SoftX(即MGC)中。

4.1.1  M2UA业务环境建立流程(建链):

             SG                       MGC

              |<-------------ASP Up--------------|

              |-----------ASP-Up Ack---------->|

              |<------- ASP Active---------------|

              |----ASP Active Ack------ ------>|

4.1.2  M2UA业务中断流程(断链):

              SG                                      MGC

              |<-------------ASP Inactive--------|

              |--------ASP Inactive Ack------->|

              |<------- ASP DOWN -------------|

              |----ASP DOWN Ack------------>|    

M2UA消息主要有ASP UPASP UP ACKASP ActiveASP Active AckASP InactiveASP Inactive AckASP DOWNASP DOWN Ack等。

4.2  NGN组网中的SIGTRAN协议

                                                                                                                                                                        图4-1 SIGTRANNGN组网中

4-1为我司NGN组网的协议构架,可以看到在分布式的媒体网关的网络结构中,IP电话网关分离成三部分: 信令网关SG、媒体网关MG和媒体网关控制器MGC(即SoftX)。

SG负责处理信令消息,将其终结、翻译或中继;MG负责 处理媒体流,将媒体流从窄带网打包送到IP网或者从IP网接收后解包后送给窄带网;SoftX负责MG的资源的注册和管理,以及呼叫控制。

& 说明

NGN分布式的网关体系结构中,MGSoftX之间采用的是H.248协议,

SGSoftX之间采用SIGTRAN协议。

 

这篇关于软交换分组协议基础-SIGTRAN的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/695542

相关文章

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

C 语言基础之数组

文章目录 什么是数组数组变量的声明多维数组 什么是数组 数组,顾名思义,就是一组数。 假如班上有 30 个同学,让你编程统计每个人的分数,求最高分、最低分、平均分等。如果不知道数组,你只能这样写代码: int ZhangSan_score = 95;int LiSi_score = 90;......int LiuDong_score = 100;int Zhou

Solr 使用Facet分组过程中与分词的矛盾解决办法

对于一般查询而言  ,  分词和存储都是必要的  .  比如  CPU  类型  ”Intel  酷睿  2  双核  P7570”,  拆分成  ”Intel”,”  酷睿  ”,”P7570”  这样一些关键字并分别索引  ,  可能提供更好的搜索体验  .  但是如果将  CPU  作为 Facet  字段  ,  最好不进行分词  .  这样就造成了矛盾  ,  解决方法

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

c++基础版

c++基础版 Windows环境搭建第一个C++程序c++程序运行原理注释常亮字面常亮符号常亮 变量数据类型整型实型常量类型确定char类型字符串布尔类型 控制台输入随机数产生枚举定义数组数组便利 指针基础野指针空指针指针运算动态内存分配 结构体结构体默认值结构体数组结构体指针结构体指针数组函数无返回值函数和void类型地址传递函数传递数组 引用函数引用传参返回指针的正确写法函数返回数组