文件格式

本类阅读TOP10

·文件格式及说明
·http 协议学习笔记(一)
·DivX播放全攻略手册
·win2000错误代码和提示
·BitTorrent 协议规范1.0版
·802.1Q VLAN协议和802.1P协议的实现
·rtsp协议相关之-rfc2326
·rtsp协议相关之-rfc1889(RTP 实时应用传送协议文档).txt
·MICROSOFT EXCEL FILE FORMAT(BIFF2.1)
·国家标准GB18030-2000

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
SIGTRAN(Signaling Transport, 信令传输协议

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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

SIGTRAN 协议栈担负信令网关和媒体网关控制器间的通信,有两个主要功能:适配和传输。与此对应,SIGTRAN 协议栈包含两层协议:传输协议和适配协议,前者就是SCTP/IP,后者如M2UA(适配MTP2 用户)、IUA(适配Q.921 用户)等。SIGTRAN 协议模型如图2-1所示。

M3UAMTP3 用户适配层M2UAMTP3 用户适配层IUAISDN Q.921 用户适配层M2PAMTP2 对等适配层V5UAV5 用户适配层 SUASCCP 用户适配层SCTP :流控制传输协议 IP:互联网协议 MAC:媒体接入控制

2-1 SIGTRAN 协议模型

SIGTRAN 协议只是实现SCN 信令的在IP 网的适配与传输,不处理用户层信令消息。为保证信令可靠传输,引入了SCTP 作为传输层协议。

SoftX3000 应用的SIGTRAN 协议包含了MACIPSCTPM2UA M3UA, 由于网络层以下协议(MACIP)为标准TCP/IP 协议族,在此不作详细介绍,请参考本手册附录。

2.1.1 SIGTRAN SoftX3000 的应用

SoftX3000 通过SIGTRAN 协议与SG 连接,将窄带电路交换网信令(如SS7 ISUPINAP 等)通过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 适配协议。

    1. 3. 独立SG
    2. 2.1.2 术语
  1. 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 TSNTransmission Sequence Number), 传输顺序号。在SCTP 一个偶联

的一端为本端发送的每个数据块顺序分配一个基于初始TSN 32 位顺序号,以便对端收到时进行确认。TSN 是基于偶联维护的。

SSNStream Sequence Number) 流顺序号,在SCTP 一个偶联的每个流内,为本端在这个流中发送的每个数据块顺序分配一个16 位顺序号,以便保证流内的顺序传递。SSN 是基于流维护的。

TSN SSN 的分配是相互独立的

(5) 其他CWND:拥塞窗口。SCTP 也是一个滑动窗口协议,拥塞窗口是针对每个目

的地址维护的,它会根据网络状况调节。当目的地址的发送未证实消息长度超过其CWND 时,端点将停止向这个地址发送数据。

RWND:接收窗口。RWND 用来描述一个偶联对端的接收缓冲区大小。偶联建立过程中,双方会交换彼此的初始RWNDRWND 会根据数据发送、证实的情况即时地变化。RWND 的大小限制了SCTP 可以发送的数据的大小。当RWND 等于0 时,SCTP 还可以发送一个数据报,以便通过证实消息得知对方缓冲区的变化,直到达到CWND 的限制。

2. SCTP 概念

SCTPStream Control Transmission Protocol, 流控制传输协议)是提供基于不可靠传输业务的协议(如IP)之上的可靠的数据报传输协议。SCTP 的设计用于通过IP 网传输SCN 窄带信令消息。SCTP TCP 的缺陷进行了一些完善,使得信令传输具有更高的可靠性,SCTP 的设计包括适当的拥塞控制、防止泛滥和伪装攻击、更优的实时性能和多归属性支持。 SCTP 被视为一个传输层协议,它的上层作为SCTP 用户应用,下层作为分组网络。在SIGTRAN 协议的应用中,SCTP 上层用户是SCN 信令的适配模块(如M2UAM3UA 等),下层是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 个消息交互:INITINIT ACKCOOKIE ECHOCOOKIE ACK。如图2-3所示。

endpoint A endpoint Z

established

2-3 偶联建立过程消息交互图

  1. (1) 偶联发起端首先要创建一个数据结构TCB(传输控制块)来描述即将发起的这个偶联(包含偶联的基本信息), 然后向对端发送INIT 消息。在这个消息里面,参数一般会带上本端使用的一个或多个IP 地址(如果不带,对端就把INIT 消息发送的源地址作为该端点的地址)。在通用头中,由于还不知道对方的Tag,故将Verification Tag 域置零。在消息参数中,必须带上本端的Tag 和期望的输入输出流数。发送后启动一个init 定时器,等待对方的INIT ACK 消息,定时器超期则重发INIT, 直到达到最大重发次数。这些动作完成后,发起端进入COOKIE-WAIT 状态。
  2. (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. (3) 偶联发起端收到INIT ACK 后,停INIT 定时器。更新自己的TCB,填入从INIT ACK 获得的信息。然后生成COOKIE ECHO 消息,将INIT ACK 中的STATE COOKIE 原封带回。启动COOKIE 定时器。状态转移为COOKIE-ECHOED
  4. (4) 偶联接受端收到COOKIE ECHO 消息后,进行COOKIE 验证。将STATE COOKIE 中的TCB 部分和本端密钥根据RFC2401 MAC 算法进行计算,得出的MAC STATE COOKIE 中携带的MAC 进行比较,如果不同则丢弃这个消息。如果相同,则取出TCB 部分的时间戳,和当前时间比较,看时间是否已经超过了COOKIE 的生命期。如果是,同样丢弃。否则根据TCB 中的信息建立一个和对端的偶联。将状态迁入ESTABLISHED ,并回送COOKIE ACK 消息。
  5. (5) 偶联发起端收到COOKIE ACK 消息,停COOKIE 定时器,迁入ESTABLISHED 状态。这样偶联建立过程完毕。

2. 偶联的终止

SCTP 偶联的终止分为两种,一种是GRACEFUL 的终止,一种是UNGRACEFUL 的终止。前者保证所有两端的未发送、发送未证实数据得到发送和证实后再终止偶联。而后者则直接终止偶联,丢弃这些数据。

  1. (1) GRACEFUL 关闭GRACEFUL 的偶联终止由三步握手完成:
  2. (2) 首先,终止发起端的用户向SCTP 请求GRACEFUL 终止偶联。SCTP 偶联就从ESTABLISHED 状态迁入SHUTDOWN-PENDING 状态。在这个状态,SCTP 不接受上层在这个偶联上的任何数据发送请求。同时等待本端所有发送未证实的数据得到对端的证实。
  3. (3) 当所有本端发送未证实数据得到证实,则向对端发送SHUTDOWN 消息,迁入SHUTDOWN-SENT 状态,启动SHUTDOWN 定时器,等待对端SHUTDOWN-ACK 消息。在这个状态下,收到对端的数据立即证实(后面会讲到SCTP 应用延迟证实机制)。
  4. (4) 对端收到SHUT DOWN 消息后,进入SHOUTDOWNREVD 状态,不再接收上层在这个偶联上的数据发送请求。当本端所有未发送数据和发送未证实数据得到发送和证实后,发送SHUTDOWN ACK 消息。启动SHUTDOWN 定时器等待SHUTDWON COMPLETE 消息。
  5. (5) 终止发起端收到SHUTDOWN ACK 消息后,停SHUTDOWN 定时器,发送SHUTDOWN COMPLETE 消息到对端。删除偶联TCB
  6. (6) 对端收到SHUTDOWN COMPLETE 消息后,删除偶联TCB
  7. (7) UNGRACEFUL 关闭这种关闭由于不考虑数据的安全,所以比较简单。发起端发送一个ABORT

消息到对端后,立即删除偶联TCB。对端收到这个ABORT 消息后也立即删除偶联TCB

2.3 M2UA

SG 内置于TMG 时,TMG 通过内置SG 完成SCN 信令转换与适配,并打成IP 包在IP 网传输到SoftX3000TMG SoftX3000 之间的信令传输使用SIGTRAN 协议的M2UA 适配协议。

2.3.1 概述

1. M2UA 概念

M2UASS7 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