1. 软件架构     

1.1.1. 模块描述 

        本模块处于终端产品的上层,属于媒介性质的模块。与远程的ACS连接,响应ACS发起的各项命令并执行相应功能。本模块主要实现如下功能:

        1)支持ACSCPE之间基于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发起的连接,初始InformEventCode必须为”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”时,关闭该连接。然后新建一个socketCPE主动发起RPC”Inform”HTTPpost,此时inform的EventCode为”6CONNECTIONREQUEST”TR069会话正式开始。
        CPE发起的连接
        CPE有请求要发送时,需要建立连接,CPE新建socket,发送HTTPPOST请求,ACS回复HTTPResponseTR069的会话从CPE发送HTTPPOST开始,直到会话结束。

1.1.3.3. SOAP编码解码

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

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐