移动软交换协议分析.doc_第1页
移动软交换协议分析.doc_第2页
移动软交换协议分析.doc_第3页
移动软交换协议分析.doc_第4页
移动软交换协议分析.doc_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软交换协议分析第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 TransactionReplyTransactionReply是事务交互接收者对TransactionRequest的一种响应,表明接收者完成该TransactionRequest命令执行,对每个事务交互都应有一个Reply响应。有两种情况表明一个TransactionRequest执行完成:(1) TransactionRequest中的所有命令成功执行完毕;(2) TransactionRequest中的一个非可选命令执行失败。TransactionReply结构如下:l TransactionPendingTransactionPending由接收者发送,指示事务交互正在处理,但仍然没有完成。当命令处理时间较长时,可以防止发送者重发事务交互请求。TransactionPending结构如下:可见,事务交互表现为TransactionRequest,对TransactionRequest接收者必须响应一个TransactionReply,在此之前可能由许多TransactionPending响应。表1-2 H.248事务交互(Transaction)事务交互说明MGW Communication UpMGC与MGW通信恢复后,MGW上报的消息MGW Out Of ServiceMGW出现故障时,上报MGC,表示MGW离开服务MGW RestorationMGW从故障中恢复后,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发送该消息给MGWTermination 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出现故障时,通知MGWChange 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 ReleasedMGW上报的承载释放完成事件。该事件由MGC请求Bearer EstablishedMGW上报的承载创建完成事件。该事件由MGC请求Send Tone送音操作。呼叫时,MGC请求终端向某一方向送一个音,如回铃音、忙音等Play Announcement 智能业务、补充业务等应用中播放通知音Send DTMF送DTMF音Detect DTMF 请求MGW检测DTMF音Report DTMFMGW向MGC上报检测DTMF音完成Announcement CompletedMGW上报通知音播放完成Activate Voice Processing Function激活语音处理功能,包括EC、预留电路资源等Tunnel Information UpMGW向MGC上报IPBCP帧,MGC通过隧道把它送给对端MGWTunnel Information DownMGC把其它MGC送来的IPBCP消息发给MGWTone CompletedMGW上报完成播放音事件Stop AnnouncementMGC请求MGW停止送通知音Stop ToneMGC请求MGW停止送音Stop DTMFMGC请求MGW停止送DTMF音Stop DTMF DetectionMGC请求MGW停止DTMF检测Confirm CharMGC请求MGW确认保留的资源Modify CharMGC修改以前保留在MGW上的资源Reserve Char MGC保留MGW上的资源Bearer Modified承载修改完成事件Bearer Modification Failed承载修改故障事件TFO ActivationMGC激活MGW的TFO功能Optimal Codec and Distant List NotifyMGW上报TFO时Codec 协商的Codec列表。Codec ModifyMGW上报Codec修改结果Distant Codec ListMGW上报远端Codec协商结果Command Rejected当MGW从MGC检测到不合法或不可执行的命令,MGW返回拒绝的命令Modify Bearer CharacteristicsMGC请求修改承载资源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命令命令发送方向含义AddMGCMG增加一个终端到一个关联中,当不指明ContextID时,将生成一个关联,然后加入终端ModifyMGCMG修改一个终端的属性、事件和信号参数SubtractMGCMG从一个关联中删除一个终端,同时返回终端的统计状态。如关联中再没有其它的终端将删除此关联MoveMGCMG将一个终端从一个关联移到另一个关联AuditValueMGCMG返回终端特性的当前状态AuditCapabilitiesMGCMG返回终端特性的能力集NotifyMGMGCMG将检测到的事件通知给MGCServiceChangeMGCMGMG向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描述符的列表LocalMG接收的流相关的属性RemoteMG发送的流相关的属性Localcontrol描述MGC和MG之间的属性EventsMGC要求MG检测及报告的事件列表EventBufferMGC要求MG在EventBufferControl为LockStep时,检测及缓冲的事件列表Signals描述应用于终端的信号和(或)活动(如回铃音)Audit描述哪些信息需要审计ServiceChangeServiceChange的活动和原因DigitMap指示如何在MG中处理号码匹配的拨号方案StatisticsSubtract和Audit命令中,终端保持的统计数据的报告Packages审记时,返回终端识别的包的列表ObservedEvents“Notify”上报检测到的事件Topology描述Context内各终端间的流的方向,用于Context而不是 Termination1.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和SSNl 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报文里面传输,以提高带宽的利用率。l SCTP分组由公共分组头和一个/多个信息块组成,信息块可以是用户数据,也可以是SCTP控制信息。l SCTP用户能够可选地使用捆绑功能,决定是否将多个用户数据报捆绑在一个SCTP分组中。l 为提高效率,拥塞/重发时,捆绑功能可能仍被执行,即使用户已经禁止捆绑。2.3.6 分组的有效性分组的有效性是SCTP提供无差错传输的基石。SCTP分组的公共分组头包含一个验证标签(Verification Tag)和一个可选的32位校验码(Checksum)。验证标签的值由偶联两端在偶联启动时选择。如果收到的分组中如果没有期望的验证标签值,接收端将丢弃这个分组,以阻止攻击和失效的SCTP分组。校验码由SCTP分组的发送方设置,以提供附加的保护,用来避免由网络造成的数据差错。接收端将丢弃包含无效校验码的SCTP分组。2.3.7 通路管理发送端的SCTP用户能够使用一组传送地址作为SCTP分组的目的地。SCTP管理功能可以根据SCTP用户的指令和当前合格的目的地集合的可达性状态,为每个发送的SCTP分组选择一个目的地传送地址。当其他分组业务量不能完全表明可达性时,通路管理功能可以通过心跳消息来监视到某个目的地地址的可达性,并当任何对端传送地址的可达性发生变化时,向SCTP用户提供指示。通路功能也用来在偶联建立时,向对端报告合格的本端传送地址集合,并把从对端返回的传送地址报告给本地的SCTP用户。在偶联建立时,为每个SCTP端点定义一个首选通路,用来正常情况下发送SCTP分组。在接收端,通路管理功能在处理SCTP分组前,用来验证入局的SCTP分组属于的偶联是否存在。2.4 SCTP原语SCTP通过接收高层协议(SCTP用户)发送的原语请求,为SCTP的用户提供服务。同时SCTP可以根据不同事件向SCTP用户发送通知原语。SCTP原语描述使用了如下格式:原语名:必备属性,【任选属性】返回结果:必备属性,【任选属性】2.4.1 SCTP用户向SCTP发送的请求原语SCTP用户向SCTP发送的请求原语共有16种,含义如表2-1所示。表2-1 SCTP请求原语原语名功能INITIALIZE允许SCTP启动其内部的数据结构,并为建立操作环境分配所需的资源,一旦SCTP启动后,则高层协议在与其他SCTP端点之间通信时就不需要再调用此原语。SCTP将向高层协议返回本地准备处理SCTP偶联的事件号(实例)。ASSOCIATE由高层启动一个到特定端点的偶联。对端端点将按照该端点定义的传送地址的方式进行规定。如果偶联事件尚未启动,则认为该原语是一个错误。用来本地处理SCTP偶联的偶联ID,将作为返回结果用来返回偶联是否成功建立。如果偶联建立不成功,则返回一个差错。如果偶联成功,则返回结果中还应包含到对端的完整传送地址以及本端端点出局的流数量,同时还应从返回的目的地地址中选择一个传送地址,该传送地址将作为本地端点向对端端点发送SCTP分组的首选通路。返回的“目的地传送地址列表”可以由SCTP用户用来改变首选通路或者是向一个特定传送地址强制发送一个SCTP分组。返回结果:偶联IDSHUTDOWN用来正常地关闭一个偶联,任何以在本地发送队列中的用户数据都将被递交到对端。该偶联将在收到所有发送的SCTP分组的证实后停止。返回结果用来指示是否成功关闭了该偶联。如果成功关闭,则反馈一个成功关闭偶联编码;如果关闭失败,则返回一个差错编码。ABORT用来非正常关闭一个偶联,本地发送队列中的用户数据将被丢弃,并发送一个ABORT数据块到对端。返回结果用来指示是否成功中止了该偶联。如果中止成功,则返回一个已经中止的偶联编码。如果中止失败,则返回一个差错编码。SENDSCTP用户使用该原语通知SCTP在指定流ID中向目的地发送地址发送数据。返回结果用来指示是否成功发送了数据。SET PRIMARY高层协议使用该原语指示本地SCTP将指定的目的地传送地址作为发送分组的首选通路。返回结果为结果编码,指示此操作是否成功执行。如果规定的目的地传送地址没包含在ASSOCIATE请求原语或COMMUNCIATION UP通知原语返回的“目的地传送地址列表”中,则返回一个差错。RECEIVE用来把在SCTP队列中的可用的用户消息读到由SCTP用户规定的缓冲区中。所读消息的字节数将作为结果返回。如果有可能根据特定的规定,也可以返回其他消息,如发送方的地址、收到消息的流ID、是否有消息可以进行恢复等。对于顺序的消息,消息的流顺序号码(SSN)也可以被返回。STATUS用来要求SCTP返回一个包含以下信息的数据块:偶联连接状态、目的地传送地址表、目的传送地址的可达性状态、当前的接收方窗口大小、当前的拥塞窗口大小、未确认的DATA数据块的数量、收到的DATA数据块的数量、首选通路、首选通路上最近收到的SRTT、首选通路的RTO。返回结果为要求返回信息的状态。CHANGE HEARTBEAT高层协议用该原语指示本地端点允许或禁止向指定的目的地传送地址发送心跳消息。返回结果用来指示该操作的执行情况。当目的传送地址未空闲时,心跳程序也不执行。REQUEST HERATBEAT高层协议用该原语指示本地端点对指定偶联的特定目的地地址执行心跳程序。返回结果用来指示传送给目的地址的HEART BEART数据块是否成功。GET SRTT REPORT高层协议用该原语指示本地SCTP报告对给定偶联上规定的目的地传送地址的当前SRTT测量值。返回结果是一个包含最近SRTT的毫秒值。SET FRAILURE THRESHOLD允许本地SCTP定制到给目的地传送地址的可达性故障检出的门限。返回结果用来指示该操作是否成功。SET PROTOCOL PARAMETERS允许本地SCTP定制协议参数。返回结果用来指示该操作是否成功。RECEIVE UNSENT MESSAGE高层协议用该原语指示本地SCTP将收到故障消息在高层协议缓存区储存。返回结果为一个包含故障消息的字节数。RECEIVE UNACKNOWLEDGED MESSAGE高层协议用该原语指示本地SCTP将收到的没有应答故障消息在高层协议缓存区储存。返回结果为一个包含没有应答消息的字节数。DESTROY指示本地哪个SCTP事件号(实例)被破坏。SCTP事件号由INITIALIZE原语生成的。返回结果为是否成功。2.4.2 SCTP向SCTP用户发送的通知原语SCTP向SCTP用户发送的通知原语共有8种,含义如表2-2所示。表2-2 SCTP通知原语原语名功能DATA ARRIVE当一个用户消息被成功接收,并且准备向SCTP用户递交时,SCTP使用该原语通知高层用户。如下信息会被传递:偶联

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论