TR069(详解)
1. 软件架构1. 软件架构1.1.1. 模块描述本模块处于终端产品的上层,属于媒介性质的模块。与远程的ACS连接,响应ACS发起的各项命令并执行相应功能。本模块主要实现如下功能:1)支持ACS和CPE之间基于TR069协议的会话。2)支持ACS设置获取CPE参数;3)支持ACS设置和获取CPE的参数属性;4)支持ACS添加和删除参数对象;5)支持从ACS服务器下载升级CPE的版本或配置文件;6)
·
1. 软件架构
1.1.1. 模块描述
本模块处于终端产品的上层,属于媒介性质的模块。与远程的ACS连接,响应ACS发起的各项命令并执行相应功能。本模块主要实现如下功能:
1)支持ACS和CPE之间基于TR069协议的会话。
2)支持ACS设置获取CPE参数;
3)支持ACS设置和获取CPE的参数属性;
4)支持ACS添加和删除参数对象;
5)支持从ACS服务器下载升级CPE的版本或配置文件;
6)支持将CPE的日志文件或者配置文件上传到网管侧;
7)支持ACS重启CPE以及恢复出厂设置;
8)支持对CPE进行Ping等诊断测试;
1.1.2. 模块位置
本模块在整个系统中的位置如下图中蓝色标记部分所示,属于网管应用的一个子模块。

1.1.3. 模块的架构
TR069模块软件架构如下图所示:

1) 连接管理模块,包含会话层管理、选路层处理;
2)报文处理模块, 包含HTTP模块,SOAP编解码以及RPC方法处理模块;
3)对外适配模块,包含公有的对象节点device.xml以及对象适配函数g_TR069_obj_func_list。
1.1.3.1. 会话管理
不管是CPE发起的连接,还是ACS发起的连接,TR069会话都是从CPE发送一条初始Inform开始,直到满足会话终止的条件才终止会话。需要注意的是,ACS发起的连接,初始Inform的EventCode必须为”6 CONNECTIONREQUEST”。本模块设置一个全局会话锁g_session_status;当会话创建后,打开会话锁,防止开启另外一个会话,保证同一时间只有一个会话进行;当会话结
束时,释放会话锁。创建会话时,如果有会话正在进行,等待会话结束后再创建会话。下图为会话管理的流程图。

1.1.3.2 HTTP/HTTPS模块
HTTP(S)模块支持Digest方式的WWW-Authentication认证。支持SSL/TLS的安全连接提供机密性,支持使用证书的安全认证。
TR069的SOAP报文使用HTTP1.1来承载,ACS发送给CPE的请求基于HTTPresponse,CPE发送给ACS的应答基于HTTPPost。本模块socket调用API——CreateSocket()来建立。同时对socket设置了超时(默认30S)检测,当socket在超时规定的时间内没有响应,关闭socket,释放占用资源。
ACS发起的连接(反向连接)
ACS发起的连接又称反向连接,ACS首先发送请求方法为”GET”的HTTP 消息,CPE收到该消息后会回复HTTPresponse。当WWW-Authentication认证通过后,CPE回复状态为”200OK”的HTTPresponse;认证失败,CPE回复状态为”401Unauthorized”的HTTPresponse。当认证通过后,CPE会发起RPC为”Inform”的HTTPpost,开始TR069的会话。TR069在初始化时会建立一个socket,在固定端口(默认58000)处于监听状态。这个socket是为了监听ACS发起的反向
链接,当监听到有连接请求时,就会建立连接进行消息处理。CPE接收消息,检测到该消息是ACS发送的HTTP请求且请求方法为”GET”时,关闭该连接。然后新建一个socket,CPE主动发起RPC为”Inform”的HTTPpost,此时inform的EventCode为”6CONNECTIONREQUEST”,TR069会话正式开始。
CPE发起的连接
CPE有请求要发送时,需要建立连接,CPE新建socket,发送HTTPPOST请求,ACS回复HTTPResponse。TR069的会话从CPE发送HTTPPOST开始,直到会话结束。

1.1.3.3. SOAP编码解码
TR069协议将SOAP作为HTTP的Body封装在HTTP包中。本模块负责将接收的SOAP包中解析出数据,需要发送的数据封装成SOAP包,SOAP包详细的格式及含义参考《TR069CPEWAN管理协议》。

更多推荐


所有评论(0)