TR069协议编程基础知识
更新时间:2024-07-02 20:17:01 阅读量: 综合文库 文档下载
- TR069协议推荐度:
- 相关推荐
TR069
TR069协议编程需掌握知识
1、 TR069协议是由DSL所开发的技术规范,它提供了对网络设备进行管理配置的通用框架
和协议,用于从网络侧对网关、FEMTO、路由器等设备进行远程管理。当前在统一网管的实现过程中需要处理TR069协议包数据,为了能够正确的处理设备的请求响应,就必须对TR069协议包数据内容有所了解。
协议组成
2、 协议组成如下图
层描述:
3、 我们所关心的层主要是RPC Methods层、SOAP层以及HTTP层。下面具体介绍RPC
Methods层的内容,首先我们需要知道ACS和CPE建立连接的方式。 这里列出封装RPC方法的SOAP信息的格式。理解它们有助于组包解包。
SOAPMessageSOAPPartSOAPEnvelopeSOAPHeader(OPTIONAL)HEADERSOAPBodyXMLContentSOAPFault(optional)
ACS与CPE的连接建立
4、 ACS和CPE的连接建立:
ACS与CPE建立连接的方式,按连接发起方划分可以分为两种方式:CPE发起连接、
ACS主动建立连接
CPE发起连接有以下几种情况:
(1) CPE第一次建立网络连接,对应RPC命令INFORM +\(2) 加电或者重置,对应的RPC命令INFORM +\(3) 每个周期上报时间,对应的RPC命令INFORM +\
(4) 可选的Schedule Inform方法被要求,对应RPC命令是的是INFORM+\
SCHEDULED\
(5) CPE接收到来自ACS的有效连接请求,对应的RPC命令INFORM +\
REQUEST\
(6) ACS的URL发生变化,对应的RPC命令是对应RPC命令INFORM +\(7) CPE的参数发生更改,如CPE的IP地址;
(8) CPE的参数值发生变化,并且这个变化不是由ACS引起的,对应对应的RPC命
令是INFORM +\
CPE与ACS连接示意图如下:
CPEINFORMACS401 unauthorizedInform200 OKPOST EMPTY204 NO CONTENT消息1关闭连接
ACS发起连接:
ACS向CPE发起连接通过HTTP GET请求;
(1)需要注意的是连接使用的必须是HTTP请求而不是HTTPS
(2)并且GET通告中不需要包含其它数据,即使有数据也会被CPE忽略。
(3)CPE接到GET请求后与ACS建立连接,并在成功建立连接后发送一条INFORM报文。
连接建立示意图
CPEACSHTTP GET(CONNCTION REQUEST NOTIFICATION)INFORM “6 CONNECTION REQUEST”401 unauthorizedInform200 OKPOST EMPTY204 NO CONTENT关闭连接
ACS与CPE之间结束会话:
ACS与CPE之间的会话如果要正常结束需要以下条件:
(1)CPE不再有请求发给ACS (2)ACS也没有请求发给CPE
(3)CPE已经发送完毕ACS的请求响应 (4)ACS已经发送完毕CPE的请求响应
RPC方法 方法列表
方法介绍
1、Inform信息:由CPE传送到网管,CPE事件通过绑定Inform信息进行上报;事件的EVENT_CODE有
(1)\表示会话发起的原因是CPE首次安装或者是ACS的URL发生变化。
网管接收到后要执行注册流程
(2)\BOOT\表示会话发起的原因是CPE通电启动或者是重置,包括系统首次启动,
以及任何原因引起的重启,或者是事件\引起的;
(3)\表示会话发起的原因是因为定时Inform策略引起的。
符串代表名称空间的顶层。 NotificationChange boolean 如果为true,Notification的值将替换该参数或参数组的当前notification的设置。 如果是false,则不作任何notification设置的改动。 Notification int[0:2] 指定是否CPE应当将指定的该(或多个)参数的变化值放到其Inform报文中,以及是否当指定参数的值发生变化时,CPE应当发起一个到ACS的会话。值的定义如下: 0 = Notification关闭。 CPE不必通过ACS指定参数的变化。 1 = 被动式Notification。当指定的参数值变化时,CPE必须在下一次建立与ACS的会话时,将这一新值包含在Inform报文的ParameterList中。 2 = 主动式Notification。一旦指定参数的值发生变化,CPE必须发起与ACS的会话,将新值包含在相应的Inform报文的ParameterList中。 因非零的Notification设置引起发送的Inform报文中参数发生变化,事件代码“4 VALUE CHANGE”必须包括在事件列表中。 如果试图给一个不适合设置notification值的参数(比如一个持续变化的统计值)设置notification值,CPE可以返回一个“notification request rejected”错误。 AccessListChange boolean 如果为true,AccessList的值会替换该参数或参数组的当前access list值。如果为false,access list不作改动。 AccessList String(64)[] 零个或多个实体的数组,该实体对指定的参数有写权限。如果数组中不包含条目,则只允许ACS有写权限。目前,只定义了一类实体可以包含在该列表中: “Subscriber” 指明由LAN上的Subscriber控制的设备拥有写权限。比如通过LAN端的DSL CPE配置协议或通过UPnP。 默认情况下,在ACS对access list作改动前,上述的所有实体应当被赋予写访问权。 12 SetParameterAttributesResponse参数
参数 - 类型 void 描述 该方法的应答没有参数。 13 GetParameterAttributes参数
参数 类型 描述 字符串数组,每一条对应所请求的参数的名称。 如果参数名是以部分路径名的方式出现,则该请求需被解释为请求返回命名层次中共用相同前缀的该分支的所有参数。部分路径名必须在层次的最后一个节点名称后面以“.”(点)结尾。空字符串代表整个层次名称的顶部。 下面是完整参数名称的例子: InternetGatewayDevice.DeviceInfo.SerialNumber 下面是部分路径名称的例子: InternetGatewayDevice.DeviceInfo. 14 GetParameterAttributesResponse参数
参数 类型 描述 ParameterNames string(256)[] ParameterList ParameterAttributeStruct[] 列示指定的参数集的access control信息。该数组中的每一条目是一个ParameterAcessStruct结构,在下表中定义。 15 ParameterAttributesStruct参数
参数 Name Notification 类型 string(256) int[0:2] 描述 这是给出属性值的参数名称。 指定是否CPE应当将指定的该(或多个)参数的变化值放到其Inform报文中,以及是否当指定参数的值发生变化时,CPE应当发起一个到ACS的会话。值的定义如下: 0 = Notification关闭。 CPE不必通过ACS指定参数的变化。 1 = 被动式Notification。当指定的参数值变化时,CPE必须在下一次建立与ACS的会话时,将这一新值包含在Inform报文的ParameterList中。 2 = 主动式Notification。一旦指定参数的值发生变化,CPE必须发起与ACS的会话,将新值包含在相应的Inform报文的ParameterList中。 AccessList string(64)[] 零个或多个实体的数组,该实体对指定的参数有写权限。如果数组中不包含条目,则只允许ACS有写权限。目前,只定义了一类实体可以包含在该列表中: “Subscriber” 指明由LAN上的Subscriber控制的设备拥有写权限。比如通过LAN端的DSL CPE配置协议或通过UPnP。 16 AddObject参数
参数 类型 描述 objectName string(256) 要建立新实例的对象集合的路径名称。路径名必须在该对象的层次名称的最后节点后加上“.”(点)结尾。 ParameterKey string(32) 需要设置的ParameterKey参数的值。该参数由服务器决定,并可以为空。 17 AddObjectResponse参数
参数 类型 描述 新建对象的实例号码。在对象建立后,可以在路径名中使用该实例号码来引用该对象的参数或子对象。由CPE指定的实例号码是任意的,并且与后续的AddObject调用分配的号码无需连续。 CPE不应当将曾经分配出去的现已删除的对象使用过的号码再分配给新的实例。CPE应当在耗尽某指定对象的整个整数值空间后再重用实例号码。 Status int[0:1] 对该方法的成功应答返回一个整数型的枚举值定义如下: 0 = 对象已经建立。 1 = 对象的建立已经验证并提交,只是尚未应用(比如,增加新对象前需要进行重新启动)。 18 DeleteObject参数
参数 objectName 类型 string(256) 描述 欲删除的对象实例的路径名。路径名必须以对象的实例号码后加“.”(点)来结尾。 ParameterKey string(32) 需要设置的ParameterKey参数的值。该参数由服务器决定,并可以为空。 19 DeleteObjectResponse参数
InstanceNumber unsignedInt[1:] 参数 Status 类型 int[0:1] 描述 对该方法的成功应答返回一个整数型的枚举值定义如下: 0 = 对象已经建立。 ·1 = 对象的建立已经验证并提交,只是尚未应用(比如,增加新对象前需要进行重新启动)。 20 DownLoad 参数 参数 类型 描述 CommandKey string(32) CPE用来指向特定下载的字符串。该参数在方法TransferComplete和GetQueuedTransfers中引用。 FileType string(64) 一个整数,其后是一个空格,再其后是一个文件类型说明。目前FileType参数仅定义了以下值: \ \ \ 下列格式用于定义唯一的厂商自定义文件类型: \ 其中,
值为零表明不需要延迟。如果是非零值,则下载不应当使用与该请求相同的事务会话。 SuccessURL string(256) 在能应用的情况下,本参数包含在下载成功完成后,CPE应当将用户的浏览器重定向到哪一URL。在不需要这样的URL的情况下,这一参数应当为空。 FailureURL string(256) 在能应用的情况下,本参数包含在下载未成功完成后,CPE应当将用户的浏览器重定向到哪一URL。在不需要这样的URL的情况下,这一参数应当为空。 Staus int[0:1] 对该方法的成功应答返回一个整数型的枚举值定义如下: 0 = 下载已结束并已应用。 1 = 下载还没有结束(比如,CPE需要重新启动后才能执行文件的下载)。 如果该参数的值非零,则CPE必须在本会话的后续时间,或者在其后的会话中,调用TransferComplete方法来说明本次下载的完成状态(成功或者失败)。 StartTime dateTime 下载开始的日期和时间(UTC)。只有在下载结束后该值才需要填写。 CompleteTime dateTime 下载完全结束并应用时的日期和时间(UTC)。只有在下载结束后该值才需要填写。 21 Reboot参数
参数 CommandKey 类型 string(32) 描述 当CPE重新启动并调用Inform方法时,将在InfromStruct的CommandKey元素中返回该元素值。 22 RebootResponse参数
参数 - 23 CPE的错误码
类型 void 描述 该响应方法无参数。 参数 9000 9001 9002 9003 9004 描述 方法不支持 拒绝请求(未说明原因) 内部错误 无效参数 资源超限(当用于SetParameterValues的关联时,它不得用来指示参数错误) 9005 无效参数名(与Set/GetParameterValues,GetParameterNames,Set/GetParameterAttributes相关) 9006 9007 9008 9009 9010 9011 9012 无效参数类型(与SetParameterValues相关) 无效参数值(与SetParameterValues相关) 试图设置不可写的参数(与SetParameterValues相关) Notification请求被拒(与SetParameterAttributes方法相关) 下载失败(与Download或TransferComplete方法相关) 上载失败(与Upload或TransferComplete方法相关) 文件传输服务器认证失败(与Upload,Download,或TransferComplete方法相关) 9013 文件传输的协议不支持(与Upload和Download方法相关) 9800 – 9899 厂商定义的错误代码 24 ACS错误码 参数 8000 8001 8002 8003 描述 方法不支持 拒绝请求(未指明原因) 内部错误 无效参数 8004 8005 8800 - 8899
资源超限 重试请求 厂商自定义错误代码
正在阅读:
TR069协议编程基础知识07-02
浅谈中英文翻译中直译与意译的特点及应用03-18
学前教育专业自考00883学前特殊儿童教育-重点整理资料06-15
新课标人教版四年级语文下册 6 万年牢 教学设计 板书设计及教学反思07-23
SQL server2005连接及测试是否连接成功的方法,错误解决08-05
部编人教版二年级下册道德与法治教学计划、全册教案、教学反思07-30
电动车报警器遥控板PCB设计09-25
辩论赛中的经典辩句有哪些 doc03-14
中共子长县委组织部关于开展03-04
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 基础知识
- 协议
- 编程
- TR069
- “十三五”重点项目-专用材料项目申请报告
- 施工组织设计--质量管理体系与措施
- 公路施工组织设计范本
- 湖南中考面对面2016年中考语文 第一部分 积累与运用 易考词语分
- (答案)融资融券业务知识考试试题题库
- 2017中国工商银行校园招聘:2015年度经营报告
- 2005-2015年二级建造师市政实务历年真题及答案 - 图文
- 2016会展场馆经营与管理
- 基础护理学习题
- 12年7月劳动法串讲资料
- 外科总论题库 附答案
- 单片机热水器的设计
- 万科地产实用员工手册
- 城市总体规划成果技术规程--控件
- 隐蔽工程检查记录
- 都市类报纸如何避免同质化
- 2016年兰州大学事业单位招聘公告
- 微波双频带通滤波器的仿真设计
- 复习数与式测试题
- 昆明市中考满分作文-教案