Communication 版 (精华区)
发信人: dormouse (出征 V 号带飘扬), 信区: Communication
标 题: Q3接口中的CMIP协议
发信站: 哈工大紫丁香 (2001年06月24日10:54:33 星期天), 站内信件
Q3接口中的CMIP协议
南方邮电工业研究院
摘要:Q3接口中的公共管理信息协议(CMIP)是电信管理网(TMN)实现管理者与
代理互连互操作的关键协议,本文通过两方面的内容——协议为上层用户提供的服
务、协议数据单元及CMIP操作,对CMIP协议进行了阐述。
关键字:CMIP,Q3,TMN,CMISE
1 引言
随着电信网的日益庞大、电信设备供应商的不断增多, 电信网变得越来越复杂,
虽然不同厂商的设备之间互连互通已经不成问题,但在电信网的管理上,尽管各厂
商为各自的电信设备提供了相应的维护管理系统,然而由于这些维护管理系统都是
针对某种或某几种电信设备的,没有一个公共的标准,很难统一起来,这就给电信
部门管理、维护整个电信网增加了难度,随着电信的不断发展,该问题变得越来越
突出。为了解决这个难题,ITU制定了TMN标准体系,该体系提出了电信网管的技术
模型和具体的运行模型,使得面向不同厂商的设备提供统一的网络管理成为了可能
。而Q3接口则是TMN实体之间最重要的界面之一,在TMN中起着举足轻重的作用,在
一定程度上,Q3接口成为了衡量一种设备的网管是否是TMN兼容(Conformance)的
关键。例如,在新近电信总局颁布《用户接入网管理功能及管理接口技术规范》暂
行规定中,明确规定了接入网网管必须具备Q3接口,正因为如此,各大电信设备厂
家,如华为、中兴、UT斯达康等纷纷推出了具有Q3接口的接入网设备。当然,Q3接
口异常复杂,由于其研发周期长,经费昂贵,致使小一些的电信设备制造商对其望
而怯步,因此,有人建议采用其它技术,如CORBA、TINA等,但这些技术大多不成
熟,尚未形成相应的行业标准,要取代技术成熟,功能完善的TMN/Q3,估计还需一
段较长的时间。
众所周知,为了实现网络系统互连,国际标准化组织(ISO)提出了开放系统互连
(OSI)模型,即我们经常所说的七层参考模型,Q3接口就是基于OSI而设计、跨越
了整个OSI七层参考模型的协议的集合。具体地说,1-3层的Q3协议标准是Q.811,
4-7层的协议标准是Q.812,在Q.812的最上层即应用层,有两个协议——CMIP协议
和FTAM协议,其中FTAM协议是面向文件传输的协议,而CMIP协议则是面向事物管理
的协议,是TMN实现管理者与代理互连互操作的关键协议,也是Q3接口中最重要的
协议。下面,我们就介绍一下CMIP协议。
2 公共管理信息服务元素(CMISE)
在OSI(开放系统互连)网络通信中,ISO对每个通信协议总是分成两部分进行定义
的,一部分是协议为其上层用户所能提供的服务,另一部分则是协议本身的内容,
即该协议对等实体进行通信的规范。CMIP做为管理信息的通信协议,也是按照上述
两部分进行定义的,其中之一就是CMIP协议为上层用户提供的服务—公共管理信息
服务(CMIS),CMIS的实体就是公共管理信息服务元素(CMISE),它是CMIP协议
的功能体现,也是实现网络系统管理应用实体(SMASE)中三大要素最为重要的元
素;对CMIP协议定义的另一部分就是协议规则及协议数据格式。图1描述了管理信
息通信的体系结构,也暗示了CMIP、CMIS、CMISE之间的关系
2.1 CMISE提供的服务
CMISE主要提供七种服务,它们分别是:
M-GET:获取对象属性服务
M-SET:设置对象的属性服务
M-ACTION:请求对象执行某个操作
M-EVENT-REPORT:事件报告服务
M-CREATE:创建对象服务
M-DELETE:删除对象服务
M-CANCEL-GET:取消最近一次的M-GET操作
每一种服务,在执行的过程中都可能包括以下几种原语(Primitive):请求原语
(request),指示原语(indication),响应原语(response),证实原语(
confirm)。若一种服务在执行过程中包含了全部上述四种原语,则该服务是证实
型的,否则,该服务只能包括请求和指示两种原语,我们称该服务为非证实型原语
,如表一所示:
表1
从表一可以看出,M-GET、M-CREATE、M-DELETE、M-CANCEL-GET是证实型原语,而
M-SET、M-ACTION、M-EVENT-REPORT既可能是证实型的,也可能是非证实型的,取
决于使用该服务的用户(Manager/Agent)。
在上述七种服务中,只有M-EVENT-REPORT服务属于管理通报服务,一般是由代理主
动向管理发送,其它六种服务都为管理操作服务。
2.2 服务原语的参数
每一种服务原语都携带有相应的参数,不同的原语具有不同的参数,一般说来,同
一种服务的请求和指示原语携带的参数是一样的,当然,响应原语和证实原语也带
相同的参数。下面,简单介绍一些服务原语中经常用到的参数
1. 发起方用户标识符(initiatedIdentify)
该参数用于表示申请服务的网络管理实体,在所有服务原语中都包含该参数
2. 模式(Mode)
该参数表示本服务是否需要证实,该参数在证实/非证实型服务的请求和指示原语
中必须携带
3. 管理对象类(managedObjectClass)
该参数用于指明被操作的管理对象类或报告事件的管理对象类,在
M-EVENT-REPORT和M-CREATE服务的请求和指示原语中必须携带,而在其它原语中是
可有可无的。
4. 管理对象实例(managedObjectInstance)
本参数说明被操作的管理对象实例或报告事件的管理对象实例,在
M-EVENT-REPORT和M-CREATE服务的请求和指示原语中必须携带,而在其它原语中是
可有可无的。
5. 基本对象类(baseObjectClass)
该参数指定在某些服务的操作中提取对象属性等信息的一组管理对象的类,也可能
是指定一个管理对象的类。如果是指定一组,则这个参数指定了要进行搜索、过滤
的一组管理对象的第一个。该参数是和视窗参数配合使用的,一般出现在某些管理
操作服务的请求和指示原语中
6. 基本对象实例(baseObjectInstance)
该参数指定一个管理对象的实例,和基本对象类参数一样,该参数是和视窗参数配
合使用的,一般出现在某些管理操作服务的请求和指示原语中
7. 视窗(scope)
这个参数用于指定管理对象树(MIT)的一棵子树,这棵子树上的一部分管理对象
是即将进行搜索并操作的。除了指定子树外,该参数还进一步指定这棵子树上的搜
索范围,但这需要和基本对象参数一起指定:基本对象本身、基本对象以下N层(
子孙节点)上的对象或基本对象的所有子孙。若省略,则指基本对象及其所有子孙
。该参数一般出现在某些管理操作服务的请求和指示原语中。
8. 过滤器(filter)
该参数给出搜索子树时的匹配条件,只有符合条件的对象才是本次操作的对象,匹
配条件是一个布尔多项式,由AND、OR和NOT等逻辑运算符组合而成。该参数一般出
现在某些管理操作服务的请求和指示原语中。
9.访问控制(accessControl)
该参数如何取值在标准中尚无规定,决定于参与管理通信的各个对等管理实体之间
的协议,在响应和证实原语中无此参数。一般出现在某些管理操作服务的请求和指
示原语中
10. 同步(synchronization)
该参数规定当操作的管理对象不止一个时,发起方管理实体用该参数告诉对等用户
在多个回答之间如何同步。同步的方式由两种:原子方式(atomic)和最大努力方
式(bestEffort)。原子方式是指所有被选中的管理对象都必须成功地完成操作,
否则认为此次操作失败;而最大努力方式则要求各个对象操作独立进行,能够完成
操作的对象就返回操作响应不能完成操作的对象不会影响其它管理对象的操作。一
般出现在某些管理操作服务的请求和指示原语中
11. 属性标识符清单(attributeIdList)
该参数一般出现在某些管理操作服务的请求和指示原语中,表示要进行操作的管理
对象的属性集合(也称属性列表)。若省略,则表示对象的所有属性。
12. 属性值清单(attributeList)
该参数一般出现在某些管理操作服务原语中,表示要进行操作的管理对象的属性值
的集合,当它出现在M-SET和M-CREATE请求和指示原语中,表示要给对象设置的属
性值,当它出现在M-GET、M-SET和M-CREATE的响应或证实原语时,表示操作后对象
返回的属性值列表。
13. 差错信息(SpecificErrorInfo)
当对管理对象进行的操作失败时,该参数被用来表示本此操作失败的原因。 该参
数包含在所有服务的响应或证实原语中。
14. 当前时间(currentTime)
该参数携带响应、证实原语发生的时间,在请求和指示原语中是不带该参数的。
15. 链式标志(LinkedID)
当服务操作的对象由多个时,可能产生多个响应,用该参数来表示下一个响应。
由于篇幅所限,在这里只能对一些常用参数的做一般性的介绍,至于哪些服务原语
究竟携带什么参数?在这里并没有解析得很清楚,另外,除了上述16中参数外,还
有一些参数,如事件类别、事件信息、动作变量、动作结果等参数,这里就不一一
列出了,有兴趣得读者可以参阅ITU-T X711。
2.3 CMISE服务的执行过程
CIMSE服务的执行过程如图2 所示:
图2中,CMIPM称为CMIP协议机,PDU称为协议数据单元。根据图2所示,我们可以把
一个服务的执行过程分成以下几个阶段:
1 发送阶段(Invocation)
CMIPM接收服务用户发送过来的某一种服务请求原语,经CMISE解析映射成协议数据
单元(PDU)后调用ROSE中的RO-INVOKE服务将该PDU送至表示层以下的通信协议栈
传送给对方的CMIPM
2 接收阶段(Receipt)
对方的CMIPM收到PDU后,先检测数据的合法或正确性,若合法,将PDU还原成此服
务的指示原语发给上层的服务用户,若不合法,收方CMIPM将调用ROSE 的RO服务向
发方CMIPM报告错误信息。至此,一个非证实的服务执行过程结束。
3 响应阶段(Response)
收方的CMIPM接收服务用户的响应原语并形成相应的PDU,若该服务作用的对象不止
一个,则可能产生多个响应原语(即有多份PDU),在这些响应原语中,前一个响
应原语用连接标识符(LinkedID)指向后一个,最后一个响应原语不带LinkedID,
除最后一个响应原语外,CMIPM均调用ROSE的RO-INVOKE服务向对方CMIPM发送相应
的PDU,最后一个相应原语调用RO发送
4 响应接受阶段(Receipt of response)
发方CMIPM收到收方CMIPM发送过来的响应原语后,也要先检测数据的合法或正确性
,若合法,将PDU还原成此服务的证实原语发给上层的服务用户,若不合法,收方
CMIPM将调用ROSE 的RO服务向发方CMIPM报告错误信息。至此,一个证实型的服务
执行过程结束。
对于证实原语,其执行过程中要经过上述全部的四个阶段,而对于非证实原语,只
能经历1、2两个阶段。
3 公共管理信息协议(CMIP)
公共管理信息协议(CMIP)是TMN实体间应用层信息交互的协议,目前,它和
Internet的简单网络管理协议(SNMP)一道,成为了通信领域中重要的应用层协议
,而且,从发展趋势来看,CMIP必将取代SNMP,成为网络管理的新贵。我们将从
CMIP的协议数据单元和CMIP协议操作两大部分阐述该协议。
3.1 CMIP的操作
CMIP操作是CMIP协议的一部分,它和CMISE的服务原语一一对应。在CMIPM协议机中
,把收到的CMISE服务用户发送过来的请求或响应原语映射成相应的CMIP操作,进
而形成协议数据单元,向底层协议栈发送。可见,在CMIP协议数据单元中,服务原
语已经不复存在,取而代之的是CMIP操作,只有经对方CMIPM协议机还原后才能恢
复成服务指示或证实原语。换而言之,CMISE服务是由CMIP操作实现的。CMIP操作
和CMISE服务原语的对应关系如表二所示:
表二
3.2 CMIP协议数据单元(PDU)
CMIP协议数据单元(PDU)是CMIP协议的数据格式,是CMIP的重要组成部分。CMIP
协议数据单元在发方CMIPM协议机中形成,在收方CMIPM协议机中拆除,只有在
CMIPM 中才能识别。从3.1我们知道,对应每一个服务原语,都由一个CMIP操作实
现它(当然,它们之间并非是一一对应的关系),在CMIP协议数据单元中,每个服
务原语均映射成相应的CMIP操作,也就是说,CMIP协议数据单元描述的是同服务原
语对应的CMIP操作。下面,我们以M-GET操作为例,给出相应的CMIP协议数据单元
,其ASN.1描述如下:
m-Get OPERATION
ARGUMENT GetArgument //变量字段
RESULT GetResult //结果字段
ERRORS { accessDenied, classInstanceConflict, complexityLimitation,
getListError, invalidFilter, invalidScope,noSuchObjectClass,
noSuchObjectInstance, operationCancelled, processingFailure,
syncNotSupported //错误信息
LINKED { m-Linked-Reply } //连接标志
::= localValue : 3
其中,GetArgument的描述如下:
GetArgument ::= SEQUENCE {
COMPONENTS OF BaseManagedObjectId, //基本管理对象标识符
accessControl [5] AccessControl OPTIONAL, //访问控
制
synchronization [6] IMPLICIT CMISSync DEFAULT
bestEffort, //同步
scope [7] Scope DEFAULT namedNumbers :
baseObject, //视窗
filter CMISFilter DEFAULT and : {}, //过滤
器
attributeIdList [12] IMPLICIT SET OF AttributeId
OPTIONAL //属性标识符列表
}
GetResult的描述如下:
GetResult ::= SEQUENCE {
managedObjectClass ObjectClass OPTIONAL, //管理对象类
managedObjectInstance ObjectInstance OPTIONAL, //管理对象实
例
currentTime [5] IMPLICIT GeneralizedTime
OPTIONAL, //当前事件
attributeList [6] IMPLICIT SET OF Attribute
OPTIONAL //属性值列表
}
m-Get操作的协议数据单元由以下四部分组成,分别是变量字段(ARGUMENT)、结
果字段(RESULT)、错误信息字段(ERROR)及连接字段(LinkedID),其中,
ARGUMENT字段是从请求原语中获得的发起方用户给出的操作参数,由发起方发送给
接收方。RESULT和ERROR字段是从响应原语中获得的接收方发给发送方的参数。
LinkedID字段也是从响应原语中获得,由接收方发给发送方的,当m-Get操作的对
象不止一个时,该字段通过m-Linked-Reply操作指向下一个响应原语。在
GetArgument和GetResult模块定义中,给出了具体的操作参数和返回结果参数,读
者可以对照2.2去理解它。至于错误信息的含义以及m-Linked-Reply操作的定义,
由于内容较多,这里就不再详细介绍了。
4 总结
CMIP协议是Q3接口中的应用层协议,是TMN实体间(NE-OS、MD-OS、OS-OS)信息交
换的关键,也是ISO网络管理国际标准中最成熟的一种,我们通过两方面介绍了该
协议,一方面,我们介绍了CMIP协议功能即它为上层用户提供的服务,另一方面,
介绍了CMIP协议数据单元及CMIP操作,希望能对那些关心Q3接口的读者有一定的帮
助。由于作者水平有限,本文肯定有纰漏或值得商榷的地方,敬请谅解和指教。
--
I am dormouse. 我是睡鼠
too lazy.
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: dormouse.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.715毫秒