还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
对比不同的标准化组织和对3GPP PacketCable协议的扩展COPS师晓刚北京邮电大学电子工程学院,北京()100876E-mail摘要本文首先简要介绍了协议协议作为一种底层协议,被很多应用加以扩展,COPS COPS例如的接口和的接口本文就以这两个接口为例,分析了比较3Gpp GPacketCable PktMM-2了两种截然不同的协议扩展方式的优缺点和对协议长期生命力的深远影响,并从一般意义COPS上对协议扩展的方式提出自己的建议关键词协议扩展COPS,Go,PKTMM-2,COPS中图分类号
1.引言定义了()它是一种简单的查询和响应协议,IETFRFC2748COPS Common Open Policy Service,基于用于在(策略执行点)和(TCP/IPo PEP Policy Enforcement Points,PDP Policy Decision Point,策略决策点)之间交换策略信息作为一种基础协议,协议常被加以扩展,用于定义不同的接口本文就将比较不同的COPS标准化(以接口为例)和(以为例)对协议扩展的不同3Gpp GoPacketCable PKTMM-2COPS思路
2.COPS协议简介协议用于策略的总体管理,配置和实施它是为策略服务器和客户端之间交换策略信COPS息而定义的一种简单的查询和响应协议采用客户机/服务器模式为保证可靠的数据交互,COPS协议基于传输层协议之上总体而言协议比较简单而且易于扩展COPS TCPCOPS定义了三个逻辑实体(策略执行点),(COPS PEPPolicy EnforcementPoints,PDP Policy Decision策略决策点)和可选的(本地策略决策点)和Point,LPDP LocalPolicyDecision Point,PEP PDP之间通过消息以交互策略信息参见下图COPSNetwork Node|Policy ServerI++-I-----COPS++I PEPI I--I--------------PDP I++---------|+4-I人I I\--++-----------------||LPDP||++----I图示意图1COPS较低协议的一致较高性,严谨性,结构清晰性因为自定义的灵活性,相对容易协议扩展难因为要严格遵循已有协议(有协议的设J易程度计思路也许已经不适合当前应用),又要考虑性能等因素,较难相对容易较难协议理解、实现的难易程度相对容易较难协议再扩展、修改的难易程度表的接口和的接口对协议的扩展不同方式的比较33GPP GoPacketCable PktMMCOPS从上表比较,传统的垂直协议扩展模式看来严谨有余,灵活不足这个缺点在接口身G上的到了明显的例证由于其复杂性,通常一个经验丰富的工程师也需要几个月才能搞清楚Go协议的每一个细节(尤其是在搞清楚编解码方面要耗费大量时间精力)而对于接口,PktMM-2相对就容易多了从某种方面来看,的复杂性是得不偿失的在不少地方,甚至出现在一些行业协议里,Go抱怨协议太过复杂--和它的、实现功能的复杂度不成正比,有点“大马拉小车”的G payload味道出于上述考虑,已经中尝试采用在(包含功能)和之间用3Gpp R7PCRF PDFGGSN Diameter协议,而不用COPS协议,这是因为Diameter协议生来就有良好的可扩展性(通过新定义AVP)笔者对此有些疑惑,定义的机制非常适合策略控制,Attribute ValuePair COPSREQ-DEC-RPT而消息总是成对的,至少对于不需要端回复的消息,协议增Diameter PDPCOPS RPTDiameter加了网络负荷协议的制定者一定也会考虑到这个问题最终选择也许是一种折衷方Diameter案相比之下,接口的协议扩展方式更加可取但是笔者认为接口的PktMM-2COPS PktMM-2扩展方式有点太过灵活,主要体现在定义了太多新的消息和新的对象,对协议COPS COPS-PR的一些优势之处没有充分利用总体感觉比较杂乱,不如协议栈结构清晰另外,从重用性Go角度而言,这种扩展方式就不如传统的协议栈扩展方式Go接口的问题出在在本身比较复杂的基础之上(COPS-PR),堆叠同样很复杂协议()如果只是去适应现有协议,这样设计出来的协议栈也许很难具备长期的生命力PIB/ANS.l o接口虽然在也有缺点,但是相对而言生命力更强PktMM-2所以是笔者并不认为传统的协议垂直嵌套模式是不正确的,反而这是大多数协议栈成功的根本关键是要看实际情况
6.结论总之,原有协议的扩展要具体情况具体分析,平衡好功能性和复杂度之间的关系一一个“度”的问题从这个意义上,不能说单纯的水平扩展和单纯的垂直扩展哪个更优越扩展的方式要既“传统”又“灵活”参考文献
[1]IETF RFC2748The COPSCommonOpenPolicyServiceProtocol[S]IETF January2000
[2]3GPP TS
29.207V
6.
2.0Policy controlover Gointerface[S]3GPP2004-12
[3]PKT-SP-MM-I02-040930PacketCable MultimediaSpecification[S]Cable TelevisionLabs,Inc.September30,2004胡乐明,曹磊,陈洁编著《技术原理及应用》北京电子工业出版社
[4]IMS[M],
2006.UCompare theCOPS ProtocolExtension byDifferentStandardization Originations-3GPP andPacketCableShiXiao GangBeijingUniversity ofPosts andTelecommunications,Beijing100876E-mailAbstract Thispaper firstdescribes theCOPS protocol.As alow levelprotocol,COPS protocolisextended bymany applications,such as3GPP Gointerface andPacketCable PktMM-2interface.Usingthe twointerfaces asexample,this paperthen compareswith twototally differentCOPS protocolextensionways onadvantage/disadvantage andlife cyclerelated,and thenprovides asuggestion onprotocolextension asgeneral view.Keywords COPS,Go,PKTMM-2,COPS ProtocolExtension向发送配置、更新、删除等请求,收到请求后,将决策响应回送给PEP PDPPDP PEP,PEP再执行相应的操作PEPs-requests,updates,and deletes-PDP Client-decisions-Server特性总结如下:COPS•采用客户机/服务器模式,即向远程发送请求、更新和删除信息,COPS PEP PDP然后返回决定给PDP PEPo•使用传输层协议以便为客户机和服务器提供可靠信息交换COPS TCP•是可扩展的,它能够自我识别,并在不需要修改协议本身的情况下支COPS COPS持不同特定客户机信息是为策略的通用管理、配置和执行而创建的COPS•为认证、中继保护和信息完整性提供了信息级别的安全性也能使用COPS COPS已有安全协议,如或以认证和确保和之间的信道IPSEC TLS,PEP PDP•有两个主要状态客户机和服务器共享请求/决策状态;可能是内部互COPS12相联系的来自各种不同事件请求/决策的状态•此外,允许服务器将配置信息加载到客户机上,然后在不再使用的情况下允COPS许服务器将其从客户机中删除
2.1COPS协议格式消息由公共头和一个或多个专有对象组成COPS headerCOPS COPSSpecific Object的公共头
2.
1.1COPS格式为0123+----------------+-----------------+-----------------+-----------------+|Version|Flags|Op Code|Client-type|++++-------------+I MessageLength|++++-------------+图公共头格式2copS解释如下表:名字起始所占字节内容解释数version0%0x1指定COPS版本号当前版本号14bitsFlags%%0x0unsolicited message4bits0x1solicited message4bits当有其它信息发送信息请求时需要COPS设置该为所有其它的必须设置Flag1Flag为0op-code0x01Request REQDecision DECReport State110x02RPT DeleteRequest StateDRQ0x03Synchronize StateRequest SSQClient Open0x04OPN0x05Client AcceptCAT ClientClose CCKeep0x06Alive KASynchronize CompleteSSC0x070x08注用于识别操作Op CodeCOPS0x090x0aclient type220x0000如果二op-code KA其他值如果声op-code KA(由扩展注:用来识别政策客户机所有协议指定)Client-Type封装对象的解释都与有关Client-Typemessage length44n消息的字节数,包含公共头和所有封装n=对象表公共头格式的具体解释1COPS专有对象格式
2.
1.2COPS格式为0123I Lengthoctets|C-Num|C-Type|+------------------------+-------------------------+-------------------------+-------------------------+I I//Object contents//I I++-----------------------+-------------------------+-------------------------+图专有对象格式3COPS解释如下表:名字起始所占字节内容解释数length02n n=对象字节长度(包括头部)C-Num210x01Handle object0x02Context object0x03In Interfaceobject0x04Out Interfaceobject0x05Reason object0x06Decision object0x07LDPD Decisionobject0x080x09Error object0x0a0x0b Client Specific InfoClientSI object0x0c OxOdKA TimerobjectOxOe PEPIdentification objectOxOf0x10Report TypeobjectPDP RedirectAddress objectLastPDP Addressobject AccountingTimer objectMessageIntegrity object用于描述对象中信息的种类C-NumC-Type31用于描述对象中的子类别或版本号,contents4n-4注如果消息长度不是字节的整数倍,必须加到字节的整数倍4padding4表专有对象格式的具体解释2COPS
2.2几种重要的COPS专有对象以下简要介绍几种重要的专有对象⑷,其中决策对象和客户端特定信息对COPS Decision象常被用于上层协议的扩展ClientSI处理对象1HandleC-Num=l客户端处理C-Type=l,用于封装识别一种存储状态的唯一值,由来负责创建和删除PEP上下文对象2ContextC-Num=2C-Type=l用于让通知是谁发起的触发,内容部分是由请求类型PEP PDPRequest Type,R-Type和消息类型组成Protocol MessageType,M-Type原因对象3ReasonC-Num=5C-Type=l用于描述原因内容部分是由和组成定义了Reason-Code ReasonSub-code COPS13种用户在实现时可以添加自己的私有定义Reason-Code决策对象4DecisionC-Num=6C-Type=l,Decision Flag用于给本地携带附加的无状态信息C-Type=2,Stateless Data,PDP用于取代特定消息中已存在的数据C-Type=3,Replacement Data,,用于特定决策对象客户端C-Type=4,Client Specific Decision Data,用于给配置请求回应约定的配置信息C-Type=5,Named Decision Data,注协议栈中,利用来包含上层协议数据;接口Go Named Decision DataPktMM-2中,利用包含扩展的协议数据ClientSpecificDecision Data5)错误对象(Error)C-Num=8C-Type=l用于描述报错信息内容部分是由和组成定义了Error-Code ErrorSub-code COPS15种用户在实现时可以添加自己的私有定义Reason-Code6)客户端特定信息对象(ClientSI)C-Num=9对象中包含了客户端协议或内部状态的对象或属性不同客C-Type=l,Signaled ClientSI,户端类型决定了对象的数据格式用于回应给请求或配置状态,以约定配置信息C-Type=2,Named ClientSI,PEP该对象用于相应请求、上报报告和打开操作,包含客户端特定信息注协议栈中,利用【来包含上层协议数据;接口中,Go NamedQientSPktMM-2利用包含扩展的协议数据Signaled ClientSI7)保活定时器对象(KATimer)C-Num=10保活定时值C-Type=l,用于定义保活消息收发的最大间隔)类别对象()8PEP PEPIDC-Num=l1C-Type=l用于让向区分客户端该对象的内容为字符串PDP PEPASCII9)上报类型对象(Report-Type)C-Num=12C-Type=l,用于让某一处理过程的请求状态上报报告该对象的内容为字节的叩(分2R ort-Type为三种)Success,Failure,Account
2.3COPS消息和简单的消息流消息有公共头中的标识最重要的消息有:COPS Op-code COPSOPN,CAT,CC,KA,REQ,DEC和RPT简单的消息流如下图所示COPSPDPPEP◄cc►图完整的消息流示意图4COPS和与和之间的连接有关,用来区分不同的连接对以一个连接,OPN,CAT CCPEPPDPPEPID发出要求连接回复以接受来自的连接当想要中断连接时,或PEP OPNPDP,PDP CATPEP PEPPDP都可以发送来中断连接CC在一个连接上,可以有多个并行的会话他们用来区分对于一个会话,首COPS session,Handle先是发出请求策略,然后回应给出策略决策,执行描述的策略后,发PEP REQPDP DECPEP DEC出报告策略决策执行情况当会话要结束时,发出来结束会话RPT PEPDRQ
3.3GPPG接口对COPS协议的扩展方式定义了接口是和3GPP GoGo PDFPolicyDecisionFunction GGSNGPRS GatewaySupport Node之间的接口下图描述了接口在网络中的位置Go IMS协议栈扩展:
3.1依据接口的实现实际上是一个复杂的协议栈协议栈可以分为四层3GPP TS
29.207,G G COPS,,和的解码层COPS-PR,PIB RFC3520AT层
1.COPS」!策略执行点就是策略决策点PEPPolicyEnforcementPoints,GGSN,PDP PolicyDecisionPoint,图接口在网路中位置图5Go IMS就是定义的标识符例如被用于标识的会话协议PDF COPS Client Handle,PEPID GoCOPS定义的一些“数据容器例如等被用于的具体而”data containers,ClientSI,Decision Gopayload,言就是是对象的一种和Named ClientSIC-Num=9,C-Type=2,ClientSI NamedDecisionData是对象的一种层自身支持叩机制C-Num=6,C-Type=5,Decision COPS KA kealive层
2.COPS-PRobuoutodsue定义了它提供进一步的数据容IETF RFC3084COPS-PR COPSUsage forPolicy PRovisioning,器”在对象或中用于支持它的例如,定Named ClientSINamedDecisionpay loadTS
29.207义的数据,同时告诉它的上层那一个是编码的那一个是编码的PIB BERPRID,BER EPDPRI:意味着一个的唯一标识Provisioning Instance;PRID:PRovisioning InstanceiDentifier,PRC instance符注意格式是说利用符合规范的编解码即采BER BERBER:Basic EncodingRule,ASN.l.BER用格式TLV Type,Length,Value层
3.PIB定义了编码按照规则中描RFC3318PIBPolicy InformationBase,PIB ASN.l3GPP TS
29.207述了为定义的基于可以获得和相应的PDF PIBPIB,PDF ATAuthorization TokensFLID Flow也可以为每个流发送信息和identifiers,IP IPFlows QoSgate decisionso注意:编码基于格式,它被包含在一个对象AT RFC3520PIB object层
4.RFC3520定义了用至的的编码格式IETF RFC3520Go UAuthorization Token消息类型扩展
3.2协议既没有定义全新的消息,又没有定义全新的对象只不过通过GCOPS COPS ClientSI,等专有对象将原有的消息进行细化,成为一些新的“子”消息例如消息NamedDecision COPSDEC细化为消息,消息,Authorization DecisionAuthorization FailureDecision Gate消息,消息和消息、消息细化为Decision RemoveDecision ErrorDecision RPTSuccess Report消息,消息和消息Failure ReportState ChangeReport下图描述了协议栈和所有消息在这些消息协议栈中的情况例如G GOPN,DRQ,CAT,就是纯消息、其余消息是消息,其中除之外都ErrorDEC,CC,KA COPS COPS-PR RmvDEC涉及了层,消息甚至涉及了协议PIB AuthREQRF3520RFC3520PIBCOPS-PR qM______________OL£nCOPS o5b工u KTCP/IP andlowers vW V图协议栈和各消息在协议栈中位置图6Go
4.PacketCable PktMM-2接口对COPS协议的扩展方式定义了接口是和PacketCable PktMM-2PktMM-2PS PolicyServer CMTSCable Modem之间的接口下图描述了接口在网络中的位置⑶Termination SystemPktMM-2PKTMM图接口在网路中位置图7PktMM-2PKTMM依据协议,接PacketCable MultimediaSpecification,PKT-SP-MM-I02-040930PktMM-2口的实现实际上是一个比较简单的协议栈,包括层和层非常少的一部分COPSCOPS-PRwumCI4-ouUJa qDHdxpm8ns
4.1协议栈扩展:层
1.COPS就是就是自身除了定义的标识符(例如)PEP CMTS,PDP PSCOPSClientHandle,PEPID,还在层定义了其他标识符用于标识会话协议定义的一些”数据容器”(COPS-PR COPSdata)被用于的扩展,具体而言就是(containers PktMM-2Signaled ClientSIC-Num=9,C-Type=1,是对象的一种)和(是对ClientSI ClientSpecificDecisionData C-Num=6,C-Type=4,Decision象的一种)层自身支持()机制COPSKAkeep alive层
2.COPS-PR其实接口基本几乎没有用协议定义的内容,只不过借鉴了对象PktMM-2COPS-PR COPS-PR的格式(S-Num,S-Type),完全自定义了很多新的COPS-PR对象这些COPS-PR对象会被包含在的“数据容器”中,例如等COPS TransactionlD,AMID,GateSpec,Flow Spec注:以下是对象的编码格式COPS-PR0123I Length|S-Num|S-Type|+------------------------+------------------------+-------------------------+------------------------+|32bit unsignedinteger|++----------------------+------------------------+-------------------------+图对象格式8copS-RP
4.2消息类型扩展接口并没有定义真正全新意义上的对象,但是定义了很多对象(由于PktMM-2COPSCOPS-PR具有和的特征),这些对象将会被封装到或这样的对象中去S-Num S-Type ClientSIDecision COPS可能是由于几乎没有用到COPS-PR协议,PKT・SP-MM-I02-040930协议干脆说这些新定义的对象是新增加的对象,COPS-PR“COPSPktMM・2接口也并没有定义真正全新的COPS消息(既没有定义新的Op-code),但是PktMM-2在逻辑上定义了新的消息类型,和每种消息类型还可以分Gate ControlCommand Gate Control Responseo为很多子类,如消息可分为但是从逻辑角度,GateControlCommand Gate-Set,Gate-Info,Gate-Deleteo可以认为定义了新的消息PktMM-2COPS
5.两种扩展方式的比较和思考从设计目标、实现的功能角度比较,定义的接口和定义的3GPP GoPacketCable PktMM-2接口都比较类似但是从协议栈的复杂程度比较,接口要复杂的多G比较两种接口对协议的不同扩展方式COPS接口接口方面PacketCable PktMM-23GPP Go基于定义COPS-PR PIBASN.1协议扩展的基本上是在协议基础上直接扩COPS方式展协议扩展的水平扩展,灵活的自定义,对payload的传统模式,垂直扩展,层层相套,新扩展承载效率较高严格符合原有协议框架,对的承载模式payload效率较低。
个人认证
优秀文档
获得点赞 0