收藏 分销(赏)

移动软交换协议分析资料.doc

上传人:胜**** 文档编号:3001454 上传时间:2024-06-12 格式:DOC 页数:87 大小:2.88MB 下载积分:10 金币
下载 相关 举报
移动软交换协议分析资料.doc_第1页
第1页 / 共87页
移动软交换协议分析资料.doc_第2页
第2页 / 共87页


点击查看更多>>
资源描述
软交换协议分析 第4章 BICC协议 第1章 H.248协议 1.1 概述 H.248和MEGACO是ITU-T与IETF共同努力的结果,ITU-T称之为H.248,而IETF称为MEGACO,以下通称为H.248。 H.248是一种媒体网关控制协议,在分离网关体系中,H.248协议用作媒体网关控制器(Media Gateway Controller,即MGC)与媒体网关(Media Gateway,即MG)之间的通信,实现MGC对MG的控制功能。在UMTS系统,H.248协议应用于Mc接口上。 1.1.1 Mc接口定义及功能 1. Mc接口定义 Mc接口是MSC Server(或GMSC Server)与媒体网关MGW间的标准接口,其协议遵从H.248协议,并针对3GPP特殊需求,定义了H.248扩展事务交互(Transaction)及包(Package)。Mc接口为3GPP R4新增接口,物理接口方式可选择ATM或IP。 Mc接口的协议消息编码采用二进制或文本方式,底层传输机制将采用MTP3b(基于ATM的信令传输)或SCTP(基于IP的信令传输)为其提供协议承载。 2. Mc接口功能 Mc接口提供了MSC Server(或GMSC Server)在呼叫处理过程中控制MGW中各类传输方式(IP/ATM/TDM)的静态及动态资源的能力(包括终端属性、终端连接交换关系及其承载的媒体流);该接口还提供了独立于呼叫的MGW状态维护与管理能力。 1.1.2 H.248协议的应用 MSOFTX3000在UMTS系统中用作MSC Server(或GMSC Server),是核心网控制面设备,处于分离网关体系的控制地位(即作MGC)。H.248协议应用于MSOFTX3000与媒体网关(UMG8900)之间的接口上,该接口在UMTS定义为Mc接口,如图1-1所示。 图1-1 H.248协议的应用 1.1.3 协议栈结构 如图1-2所示,H.248协议应用于Mc接口,该协议传输可以基于IP(图中a),也可基于ATM(图中b)。目前的组网结构一般采用基于IP的传输方式。 图1-2 H.248协议结构 1.2 H.248协议介绍 1.2.1 概述 1. 基本概念 l 媒体网关(MG):媒体网关将一种类型网络的媒体转换成另一网络所要求的格式,例如,媒体网关可能终结交换电路网的承载信道(如PCM)和分组网络的媒体流(如IP网络中的媒体流)。可以有能力分别对音频、视频和数据进行处理,并且能够进行全双工的媒体转换。也可以播放一些音频/视频信号,执行一些IVR功能,甚至具有提供媒体会议的能力。 l 媒体网关控制器(MGC):负责对相关于MG内媒体信道连接控制的呼叫状态进行维护。 l 多点控制单元(MCU):控制多方会议(通常会包含对音频、视频和数据的处理)的建立和协调的实体。 l 流(Stream):作为呼叫或者会议的一部分,而被媒体网关发送/接收的双向媒体或控制流。 2. 连接模型 协议的连接模型描述了能够被MGC所控制,位于MG内的逻辑实体或对象。连接模型的主要抽象是终端(Termination)和关联(Context)。图1-3是对连接模型的一个图形化抽象表示: 图1-3 H.248/MEGACO协议连接模型示意图 在H.248/Megaco定义的连接模型中,包括关联和终端两个实体。一个关联中至少要包含一个终端,否则此关联将被删除。同时一个终端在任一时刻也只能属于一个关联。 (1) 关联(Context) 关联描述一个终端集内部的关联关系,当一个关联涉及多个终端时,关联将描述这些终端所组成的拓扑结构以及媒体混合交换的参数。 NULL关联为特殊关联,用于容纳当前不与任何其它终端处于关联状态的终端。当终端处于NULL关联中时,允许对其进行参数查询、修改,请求事件检测等操作。 关联所允许包含的最大终端数目是个依赖于媒体网关实现的属性。 关联的属性主要包括: l ContextID,32bits,在网关范围内唯一标识一个关联。 特殊关联ID表示如表1-1: 表1-1 特殊关联编码对照图 关联 二进制编码表示 文本编码表示 NULL关联 0 ‘-’ CHOOSE关联 0xFFFFFFFE ‘$’ ALL关联 0xFFFFFFFF ‘*’ l 拓扑,用于描述一个关联内部终端之间的媒体流向。终端也存在一个称之为MODE的属性,用于描述媒体的流向,但它描述的是相对于关联外部的流向。 l 优先级,标识媒体网关对关联处理的优先级。取值范围为0到15,取值越小优先级越大。 l 紧急指示,用于在某些紧急情况下指示网关进行优先处理。 (2) 终端(Termination) 终端是位于媒体网关中的一个逻辑实体,可以发送/接收媒体和(或)控制流。终端特征通过属性来描述,这些属性被组合成描述符在命令中携带。终端被创建时,媒体网关会为其分配一个唯一标识。 终端通常可分为两类,一类是半永久终端,用来表示物理实体。例如TDM信道,只要这个TDM信道在媒体网关中被配置,就一直存在,只有当配置信息被删除时,与之对应的终端才会消失。另一类称为临时终端,代表临时性的信息流,例如RTP流,当需要时创建,使用完毕后就删除。临时终端通过ADD命令创建,通过SUBTRACT命令清除。与此不同,当一个半永久终端被加入一个特定关联时,它是从NULL关联中获取,而当从特定关联中删除时,它又被返回到NULL关联。 l 终端属性,可以创建新的终端或者修改已存在终端的属性。 l 终端ID,对不同的终端通过终端ID来引用,终端ID是由MG自己设置的。终端ID有两种通配方式:“ALL” 和“CHOOSE”。 l 包,不同类型网关的终端可能具有不同的特性。为了获取媒体网关/媒体网关控制器之间良好的互操作性,将终端的可选属性组合成包,通常终端实现这些包的一个子集。 l 终端属性和描述符,终端拥有属性,属性拥有唯一的属性ID。 l ROOT终端,通常用来表示媒体网关本身,允许在ROOT终端上定义包,也可以拥有属性、事件、信号、统计和参数。ROOT终端可以出现在Modify、Notify、AuditValue、AuditCapability、ServiceChange命令中,其它任何对ROOT终端的使用都是种错误。 l 命令,协议提供了命令以操作连接模型的逻辑实体:关联和终端。大多数命令由媒体网关控制器发起,媒体网关作为响应方。比较特殊的是Notify和ServiceChange两个命令,前者从媒体网关发往媒体网关控制器,后者则可以双向传递。命令含义请参考后面的命令解释部分内容。 l 描述符,命令的参数表现为描述符,描述符包括一个名字和一个由子项构成的列表。描述符可以作为命令的输出在响应中返回,这些返回的描述符,如果不存在任何内容,则用只包含描述符名和空子项列表来表示。 1.2.2 消息结构 消息是H.248协议发送的一个信息单元。消息可以二进制格式和文本格式编码。 l 采用二进制编码时,使用ITU-T X.680(ASN.1)定义的规范描述,使用X.690定义的BER规则编码; l 采用文本方式编码时,遵循RFC 2234 ABNF规范。 MGC必须支持两种编码格式,MG可能支持其中任何一种或两种方式。H.248消息都有相同的结构,一个H.248消息的结构如图1-5所示。 图1-5 H.248消息结构 一个H.248消息(Message)包含多个事务交互(Transaction),消息中的事务交互之间没有关系,可以单独处理;一个事务交互由多个动作(Action)构成,动作对应关联(Context);动作由一系列局限于一个关联的命令(Command)组成。由此,H.248消息构成机制如图1-6所示。 图1-6 消息构成机制 1. 消息(Message) H.248协议发送或接受的信息单元称为消息,消息从消息头(Header)开始,后面是若干个事务交互。 消息头中包含消息标识符(MID,Message Identifier)和版本字段: l MID用于标识消息的发送者,可以是域地址、域名或设备名,一般采用域名。 l 版本字段用于标识消息遵守的协议版本。版本字段有1位或2位数,目前版本为1。 消息内的事务交互是相互独立的,当多个被独立处理时,消息没有规定处理的先后次序。 2. 事务交互(Transaction) MGC和MG之间的一组命令构成事务交互,事务交互由TransactionID进行标识。事务交互包含一个或多个动作,一个动作由一系列局限于一个关联的命令组成。 一个事务交互从“事务头部”(TransHdr)开始。在TransHdr中包含TransactionID。TransactionID由事务交互的发送者指定,在发送者范围内是唯一的。 TransHdr后面是该事务交互的若干动作,这些动作必须顺序执行。若某动作中的一个命令执行失败,该事务交互中以后的命令将终止执行(Optional命令除外)。引入事务交互的一个重要功能是可以保证命令的顺序执行。 当命令标记为“Optional”(可选命令),该命令可以越过一个命令执行失败而导致以后命令终止执行的限制,即如果可选命令执行不成功,其后的命令可以继续执行。 事务交互包括请求和响应两种类型,而响应也有两种:TransactionReply和TransactionPending。 l TransactionRequest 每个TransactionRequest请求激发一个事务交互。一个事务交互包含一个到多个动作,每个动作包含与同一个关联(Context)相关的一个到多个命令。 TransactionRequest结构如下: l TransactionReply TransactionReply是事务交互接收者对TransactionRequest的一种响应,表明接收者完成该TransactionRequest命令执行,对每个事务交互都应有一个Reply响应。有两种情况表明一个TransactionRequest执行完成: (1) TransactionRequest中的所有命令成功执行完毕; (2) TransactionRequest中的一个非可选命令执行失败。 TransactionReply结构如下: l TransactionPending TransactionPending由接收者发送,指示事务交互正在处理,但仍然没有完成。当命令处理时间较长时,可以防止发送者重发事务交互请求。 TransactionPending结构如下: 可见,事务交互表现为TransactionRequest,对TransactionRequest接收者必须响应一个TransactionReply,在此之前可能由许多TransactionPending响应。 表1-2 H.248事务交互(Transaction) 事务交互 说明 MGW Communication Up MGC与MGW通信恢复后,MGW上报的消息 MGW Out Of Service MGW出现故障时,上报MGC,表示MGW离开服务 MGW Restoration MGW从故障中恢复后,MGW上报的恢复消息 MGW Register 系统上电后,MGW主动发送注册消息给MGC,请求注册。只有MGW成功注册,MGC才可以使用MGW的资源 MGW Re-Register 在一些情况下,如MGC切换时,MGC可以要求MGW重新注册 (G)MSC Server Ordered Re-Register (G)MSC Server请求MGW重新注册,MGW收到命令后,发起定义的事务交互 (G)MSC Server Restoration (G)MSC Server从故障中恢复后,(G)MSC Server发送该消息给MGW Termination Out Of Service 终端出现故障时,MGW发送该消息给MGC,以便MGC不再使用该资源 Termination Restoration 当终端从故障中恢复,MGW发送该消息,通知MGC更新资源状态 Audit Value 审计请求终端资源的各种属性的当前值 Audit Capability 审计请求终端资源的各种属性的能力集合 MGW Capability Change 由于故障或OMC配置改变MGW时,MGW使用该事务交互通知MGC,以便MGC更新MGW的能力状态 (G) MSC Server Out Of Service 当(G)MSC Server出现故障时,通知MGW Change Through Connection 改变终端的MODE属性。该操作可用于控制媒体流程的方向,包括向前、向后、双向和隔离 Change Flow Direction 通过修改终端之间的拓扑参数,控制终端之间的媒体流方向 Isolate Bearer Termination 把一个终端从其他终端的媒体流关系中孤立出来, 不与任何一个终端发生媒体流关系 Join Bearer Termination 在存在的关联中加入一个终端 Establish Bearer 建立MGW之间的承载。该操作包括申请终端资源和到目的MGW的承载 Prepare Bearer 从MGW申请终端资源,该操作在建立承载之前。它可能导致产生一个新的关联 Activate Interworking Function 激活MGW上的IWF功能 Release Bearer 释放MGW之间的承载,该操作不释放终端资源 Release Termination 释放终端资源 Bearer Released MGW上报的承载释放完成事件。该事件由MGC请求 Bearer Established MGW上报的承载创建完成事件。该事件由MGC请求 Send Tone 送音操作。呼叫时,MGC请求终端向某一方向送一个音,如回铃音、忙音等 Play Announcement 智能业务、补充业务等应用中播放通知音 Send DTMF 送DTMF音 Detect DTMF 请求MGW检测DTMF音 Report DTMF MGW向MGC上报检测DTMF音完成 Announcement Completed MGW上报通知音播放完成 Activate Voice Processing Function 激活语音处理功能,包括EC、预留电路资源等 Tunnel Information Up MGW向MGC上报IPBCP帧,MGC通过隧道把它送给对端MGW Tunnel Information Down MGC把其它MGC送来的IPBCP消息发给MGW Tone Completed MGW上报完成播放音事件 Stop Announcement MGC请求MGW停止送通知音 Stop Tone MGC请求MGW停止送音 Stop DTMF MGC请求MGW停止送DTMF音 Stop DTMF Detection MGC请求MGW停止DTMF检测 Confirm Char MGC请求MGW确认保留的资源 Modify Char MGC修改以前保留在MGW上的资源 Reserve Char MGC保留MGW上的资源 Bearer Modified 承载修改完成事件 Bearer Modification Failed 承载修改故障事件 TFO Activation MGC激活MGW的TFO功能 Optimal Codec and Distant List Notify MGW上报TFO时Codec 协商的Codec列表。 Codec Modify MGW上报Codec修改结果 Distant Codec List MGW上报远端Codec协商结果 Command Rejected 当MGW从MGC检测到不合法或不可执行的命令,MGW返回拒绝的命令 Modify Bearer Characteristics MGC请求修改承载资源 3. 动作(Action) 动作与关联(Context)是密切相关的,它由一系列局限于一个关联的命令组成。动作由ContextID进行标识。在一个动作内,命令需要顺序执行。 一个动作从关联头部(CtxHdr)开始,在CtxHdr包含ContextID,用于标识该动作对应的关联。ContextID由MG指定,在MG范围内是唯一的。MGC必须在以后的与此关联相关的事务交互中使用ContextID。 在CtxHdr后面是若干命令,这些命令都与ContextID标识的关联相关。 4. 命令(CMD) 命令是H.248消息的主要内容,实现对关联和终端属性的控制,包括指定终端报告的事件什么信号和动作可施加于终端,以及指定关联的拓扑结构等。命令由命令头部(CMDHdr)与命令参数构成,在H.248协议中,命令参数被组织成“描述符”(Descriptor)。 H.248协议定义了八个命令,其中“Notify”是由MG发给MGC,“ServiceChange”可由MG或MGC发送,其它命令都是由MGC发给MG。H.248命令参见表1-3。 表1-3 H.248命令 命令 发送方向 含义 Add MGC→MG 增加一个终端到一个关联中,当不指明ContextID时,将生成一个关联,然后加入终端 Modify MGC→MG 修改一个终端的属性、事件和信号参数 Subtract MGC→MG 从一个关联中删除一个终端,同时返回终端的统计状态。如关联中再没有其它的终端将删除此关联 Move MGC→MG 将一个终端从一个关联移到另一个关联 AuditValue MGC→MG 返回终端特性的当前状态 AuditCapabilities MGC→MG 返回终端特性的能力集 Notify MG→MGC MG将检测到的事件通知给MGC ServiceChange MGC↔MG MG向MGC通知一个或者多个终端将要脱离或者加入业务,也可以用于MG注册到MGC,表示可用性,以及MGC的挂起和MGC的主备转换通知等 5. 描述符(Descriptor) 命令的相关参数被组织成描述符,描述符包含名字和许多列表项,一些命令共享通用的描述符。通常,描述符的文本格式形式如下: H.248协议定义了18种描述符,参见表1-4。 表1-4 描述符 描述符名称 说明 Modem 标识Modem类型和属性 Mux 描述多媒体终端( H.221, H.223, H.225.0)的复用类型和终端输入队列复用 Media 媒体流规格的列表 TerminationState 不特定于流的终端属性(可在包中定义) Stream 单个流的Local/Remote/LocalControl描述符的列表 Local MG接收的流相关的属性 Remote MG发送的流相关的属性 Localcontrol 描述MGC和MG之间的属性 Events MGC要求MG检测及报告的事件列表 EventBuffer MGC要求MG在EventBufferControl为LockStep时,检测及缓冲的事件列表 Signals 描述应用于终端的信号和(或)活动(如回铃音) Audit 描述哪些信息需要审计 ServiceChange ServiceChange的活动和原因 DigitMap 指示如何在MG中处理号码匹配的拨号方案 Statistics Subtract和Audit命令中,终端保持的统计数据的报告 Packages 审记时,返回终端识别的包的列表 ObservedEvents “Notify”上报检测到的事件 Topology 描述Context内各终端间的流的方向,用于Context而不是 Termination 1.3 信令流程 下面对H.248协议的基本过程进行示例性说明,只是介绍了协议应用的一个典型的情况。画出的呼叫流程图仅仅是对媒体网关和媒体网关控制器之间交互的一种抽象表示,并没有考虑任何的时间刻度之类的问题。 示例所选取的是一个建立在两个住宅网关之间的呼叫。用户A和用户B分别连接在两个住宅网关RGW1和RGW2上,并且这两个住宅网关受同一个媒体网关控制器所控制。示例仅介绍成功呼叫的情况,并且作了媒体网关已经完成向媒体网关控制器注册的假设。 流程分为两个过程来介绍,分别为呼叫建立过程和呼叫拆除过程。 1. 呼叫建立流程 H.248呼叫建立流程如图1-10所示。 图1-10 呼叫建立过程 (1) 媒体网关控制器向两个网关发送Modify消息,检测终端的摘机事件。 (2) 假设用户A先摘机,网关RGW1检测到后,发送Notify消息给媒体网关控制器,携带相应的事件信息和检出时戳。媒体网关控制器返回响应消息应答。 (3) 媒体网关控制器发送Modify命令给RGW1。指示RGW1向用户A送拨号音。RGW向用户侧送拨号音,同时返回应答消息。 (4) 当用户A听到拨号音之后,就开始拨号。 (5) 媒体网关控制器在接收到RGW1的Notify消息之后,开始对拨号串进行分析。假设被叫用户连接在住宅网关RGW2,这个网关被同一个媒体网关控制器所管理。媒体网关控制器为RGW1创建一个新关联,并且将物理终端TermA添加到其中。如果用户B正处于空闲状态,给用户A播放回铃音,同时创建一个临时终端并将该终端加入所创建的同一关联。临时终端的连接域IP地址、媒体域端口号未指定。RGW1创建一个ID为1的关联。物理终端TermA被添加到关联中。同时,创建临时终端EphA,为其分配IP地址和端口号,之后RGW1返回相应的响应,在响应中指示所使用的IP地址和端口号。 (6) 媒体网关控制器向住宅网关RGW2发送一个类似的事务。网关RGW2首先创建一个ID为2的关联,然后将物理终端TermB添加到这个关联,同时创建临时终端EphB,返回响应消息。 (7) 用户B摘机,网关RGW2通过Notify命令请求将这个事件报告给媒体网关控制器,媒体网关控制器也返回一个Notify响应。 (8) 媒体网关控制器向RGW1发送一个消息以停止向用户A送回铃音,并且设置临时终端EphA的远端SDP信息。两个终端的模式都被修改为SendRecv(之前都是以RecvOnly模式创建的)。RGW1返回响应消息,指示操作成功。 (9) 媒体网关控制器给RGW2发送一个事务,指示停止终端TermB上的振铃音。网关RGW2处理完毕之后,返回一个应答。 (10) 两用户进入通话阶段。一旦呼叫被主叫方或被叫方终止,另一方将听到忙音。 2. 呼叫拆除流程 图1-11是呼叫拆除部分的流程。 图1-11 呼叫拆除过程 (1) 假设由主叫用户A挂机终止呼叫。RGW1向媒体网关控制器发送Notify消息,报告这一事件。媒体网关控制器返回一个Notify命令响应消息。 (2) 媒体网关控制器生成一个Modify命令,指示RGW2向被叫用户B放忙音。两个终端的模式同被设置为RecvOnly。RGW2返回应答,指示操作成功。 (3) 媒体网关控制器指示网关RGW1将两个终端从关联1中删除,并返回临时终端的统计信息作为响应。 (4) 用户B在听到忙音之后也挂机,RGW2向媒体网关控制器上报Notify消息,媒体网关控制器返回相应的响应消息。 (5) 媒体网关发出Subtract命令将终端TermB和EphB从关联2中删除。RGW2同样在关联2清除之后返回应答,携带临时终端的统计信息。到此,一次呼叫流程结束,终端又恢复初始状态,重新等待新呼叫的到来。 第2章 SCTP协议 2.1 概述 在SCTP(Stream Control Transmission Protocol,流控制传输协议)制定以前,在IP网上传输七号信令使用的是UDP、TCP协议。UDP是一种无连接的传输协议,无法满足七号信令对传输质量的要求。TCP协议是一种有连接的传输协议,可以信令的可靠传输,但是TCP协议具有行头阻塞、实时性差、支持多归属比较困难、易受拒绝服务攻击(Dos)的缺陷。因此IETF(Internet Engineering Task Force) RFC2960制定了面向连接的基于分组的可靠传输协议SCTP协议。SCTP对TCP的缺陷进行了完善,使得信令传输具有更高的可靠性,SCTP的设计包括适当的拥塞控制、防止泛滥和伪装攻击、更优的实时性能和多归属性支持,因此,SCTP成为SIGTRAN协议族中的传输协议。 SCTP被视为一个传输层协议,它的上层为SCTP用户应用,下层作为分组网络。在SIGTRAN协议的应用中,SCTP上层用户是SCN信令的适配模块(如M2UA、M3UA),下层是IP网。 2.2 SCTP相关术语 1. 传送地址 传送地址由IP地址、传输层协议类型和传输层端口号定义。由于SCTP在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. 主机和端点 l 主机(Host) 主机配有一个或多个IP地址,是一个典型的物理实体。 l 端点(SCTP Endpoint) 端点是SCTP的基本逻辑概念,是数据报的逻辑发送者和接收者,是一个典型的逻辑实体。 一个传送地址(IP地址+SCTP端口号)唯一标识一个端点。一个端点可以由多个传送地址进行定义,但对于同一个目的端点而言,这些传送地址中的IP地址可以配置成多个,但必须使用相同的SCTP端口。 & 说明: 一个主机上可以有多个端点。 3. 偶联和流 l 偶联(Association) 偶联就是两个SCTP端点通过SCTP协议规定的4步握手机制建立起来的进行数据传递的逻辑联系或者通道。 SCTP协议规定在任何时刻两个端点之间能且仅能建立一个偶联。由于偶联由两个端点的传送地址来定义,所以通过数据配置本地IP地址、本地SCTP端口号、对端IP地址、对端SCTP端口号等四个参数,可以唯一标识一个SCTP偶联。正因为如此,在MSOFTX3000中,偶联可以被看成是一条M2UA链路或M3UA链路。 l 流(Stream) 流是SCTP协议的一个特色术语。SCTP偶联中的流用来指示需要按顺序递交到高层协议的用户消息的序列,在同一个流中的消息需要按照其顺序进行递交。严格地说,“流”就是一个SCTP偶联中,从一个端点到另一个端点的单向逻辑通道。一个偶联是由多个单向的流组成的。各个流之间相对独立,使用流ID进行标识,每个流可以单独发送数据而不受其他流的影响。 & 说明: l 一个偶联中可以包含多个流,可用流的数量是在建立偶联时由双方端点协商决定,而一个流只能属于一个偶联。同时,出局的流数量可以与入局流数量的取值不同。 l 顺序提交的数据必须在一个流里面传输。 4. 通路(Path)和首选通路(Primary Path) l 通路(Path) 通路是一个端点将SCTP分组发送到对端端点特定目的传送地址的路由。如果分组发送到对端端点不同的目的传送地址时,不需要配置单独的通路。 l 首选通路(Primary Path) 首选通路是在默认情况下,目的地址、源地址在SCTP分组中发到对端端点的通路。如果可以使用多个目的地地址作为到一个端点的目的地址,则这个SCTP端点为多归属。如果发出SCTP分组的端点属于多归属节点时,如果定义了目的地址、源地址,能够更好控制响应数据块返回的通路和数据包被发送的接口。 一个SCTP偶联的两个SCTP端点都可以配置多个IP地址,这样一个偶联的两个端点之间具有多条通路,这就是SCTP偶联的多地址性。SCTP偶联的多地址性是SCTP与TCP最大的不同。 一个偶联可以包括多条通路,但只有一个首选通路。如图2-1所示,MGC(如MSOFTX3000)一个端点包括两个传送地址(10.11.23.14:2905和10.11.23.15:2905),而SG一个端点也包括两个传送地址(10.11.23.16:2904和10.11.23.17:2904)。 图2-1 SCTP双归属 此两个端点决定了一个偶联,该偶联包括4条通路(Path0、Path1、Path2、Path3)。根据数据配置可以确定此4条通路的选择方式,如Error! Reference source not found.所示。图中定义了4条通路,而且首选通路为Path0: l Path0:本端传送地址1(10.11.23.14:2905)发送SCTP分组到对端传送地址1(10.11.23.16:2904) l Path1:本端传送地址1(10.11.23.14:2905)发送SCTP分组到对端传送地址2(10.11.23.17:2904) l Path2:本端传送地址2(10.11.23.15:2905)发送SCTP分组到对端传送地址1(10.11.23.16:2904) l Path3:本端传送地址2(10.11.23.15:2905)发送SCTP分组到对端传送地址2(10.11.23.17:2904) 端点发送的SCTP工作原理为:本端点传送地址A发送的SCTP包通过首选通路发送到对端端点。当首选通路出现故障后,SCTP可以自动切换到其他备用通路上,优先切换对端端点的传送地址,再次切换本端端点的传送地址。 SCTP定义了心跳消息(Heart Beat)。当某条通路空闲时,本端SCTP用户要求SCTP生成相应的心跳消息并通过该通路发送到对端端点,而对端端点必须立即发回对应的心跳确认消息。这种机制被用来精确测量回路时延(RTT,Round Trip Time),而且可以随时监视偶联的可用情况和保持SCTP偶联的激活状态。 5. TSN和SSN l TSN(Transmission Sequence Number,传输顺序号) SCTP使用TSN机制实现数据的确认传输。一个偶联的一端为本端发送的每个数据块顺序分配一个基于初始TSN的32位顺序号,以便对端收到时进行确认。 TSN是基于偶联进行维护的。 & 说明: 在TCP协议中,数据的确认传输和顺序递交是通过TSN这一种机制实现的。当发现TSN不连续时候,TCP将进行数据重传,直到TSN连续以后才将数据向TCP层的上层用户递交。这实现机制导致TCP协议不能满足七号信令对于低传输时延的要求。 l SSN(Stream Sequence Number,流顺序号) SCTP为本端在这个流中发送的每个数据块顺序分配一个16位SSN,以便保证流内的顺序传递。 在偶联建立时,所有流中的SSN都是从0开始。当SSN到达65535后,则接下来的SSN为0。 TSN和SSN的分配是相互独立的。 6. CWND(Congestion Window,拥塞窗口) SCTP也是一个滑动窗口协议,拥塞窗口是针对每个目的地址维护的,它会根据网络状况调节。当目的地址的发送未证实消息长度超过其CWND时,端点将停止向这个地址发送数据。 7. RWND(Receive Window,接收窗口) RWND用来描述一个偶联对端的接收缓冲区大小。偶联建立过程中,双方会交换彼此的初始RWND。RWND会根据数据发送、证实的情况即时地变化。RWND的大小限制了SCTP可以发送的数据的大小。当RWND等于0时,SCTP还可以发送一个数据报,以便通过证实消息得知对方缓冲区的变化,直到达到CWND的限制。 8. TCB(Transmission Control Block,传输控制块) TCB是一种内部数据结构,是一个SCTP端点为它与其他端点之间已经启动的每一个偶联生成的。TCB包括端点的所有状态、操作信息,便于维护和管理相应的偶联。 2.3 SCTP功能 如图2-2所示,SCTP的功能主要包括偶联的建立与关闭、流内消息的顺序递交、用户数据分段、证实和避免拥塞、数据块绑定、分组的有效性和通路管理等。 图2-2 SCTP功能示意图 2.3.1 偶联的建立和关闭 偶联的建立是由SCTP用户(如M2UA、M3UA等)发起请求来启动的。而且建立过程相对于TCP连接而言比较复杂,是个“四次握手”过程,并用到了“COOKIE”的机制。COOKIE是一个含有端点初始信息和加密信息的数据块,通信的双方在关联建立时需要处理并交换,从而增加协议的安全性,防止拒绝服务和伪装等潜在的攻击。 SCTP提供了对激活偶联的正常的关闭程序,它必须根据SCTP用户的请求来执行,当然SCTP也提供一种非正常(即中止)程序,中止程序的执行既可以根据SCTP用户的请求来启动,也可以由SCTP协议检查出差错来中止。 SCTP不支持半打开状态(即一端可以在另一端结束后继续发送数据)。无论是哪个端点执行了关闭程序,偶联的两端都应停止接受从SCTP用户发来请求原语。 2.3.2 流内消息顺序递交 SCTP提供数据报的顺序传递,顺序传递的数据报必须放在一个“流”中传递。流是顺序传递的基石。 通过流,SCTP将数据的确认和传输的有序递交分成两种不同机制。SCTP使用TSN机制实现了数据的确认传输,使用流号和SSN(流顺序号)则实现数据的有序递交。当SCTP收到数据的SSN连续的时候,SCTP就可以将数据向SCTP用户递交,而不用等到数据的TSN号连续以后才向SCTP用户递交。 当一个流被闭塞时,期望的下一个连续的SCTP用户消息可以从另外的流上进行递交。 SCTP也提供非顺序递交的业务,接收到的用户消息可以使用这种方式立即递交到SCTP用户,而不需要保证其接收顺序。 2.3.3 用户数据分段 SCTP通过对传送通路上最大PMTU(Path Maximum Transmission Unit)的检测,实现在SCTP层将超大用户数据分片打包,避免在IP层的多次分片、重组,可以减少IP层的数据负担。 l 在发送端,SCTP可以对大的用户数据报进行分片以确保SCTP数据报传递到低层时适合通路MTU(Maximum Transmission Unit)。 l 在接收端,SCTP将分片重组为完整的用户数据报,然后传递给SCTP用户。 2.3.4 证实和避免拥塞 证实和重传是协议保证传输可靠性的策略,SCTP也一样。证实机制是SCTP保证传输可靠性的基石。避免拥塞沿袭了TCP的窗口机制,进行合适的流量控制。 l SCTP在将数据(数据分片或未分片的用户数据报)发送给底层之前顺序地为之分配一个发送顺序号(TSN)。 l TSN和SSN(流顺序号)是相互独立的,TSN用于保证传输的可靠性,SSN用于保证流内消息的顺序传递。 l TSN和SSN在功能上使可靠传递和顺序传递分开。接收端证实所有收到的TSNs,即使其中有些尚未收到。 l 包重发功能负责TSN的证实,还负责拥塞消除。 2.3.5 消息块绑定 如果长度很短的用户数据被带上很大一个SCTP消息头,其传递效率会很低,因此,SCTP将几个用户数据绑定在一个SCTP报
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服