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策略引起的。