TR069协议与商业应用1——概述(带目录索引)

article/2025/10/18 19:19:02

声明:原创作品,严禁用于商业目的。 如有任何技术问题,欢迎和我交流:19826269205(微信同号)。

学习链接
免费学习

文章目录

  • 1. 概述
    • 1.1 引言
    • 1. 2 TR069协议规范
    • 1.3 Easycwmp介绍
    • 1.4 TR069协议服务端测试工具
  • 2. TR069协议知识基础
    • 2.1 TR069协议概述
    • 2.2 TR-069 网络框架
    • 2.3 协议栈结构
    • 2.4 TR069基本功能
    • 2.5 TR069方法
  • 3.TR069具体实现举例(电信光猫连接华为ITMS管理)
    • 3.1 RPC方法接口
    • 3.2 接口时序

1. 概述

1.1 引言

1. 编写目的
目前,企业很少有独立的TR069模块或者协议管理功能,为了实现统一而且易用的TR069协议,需要做平台化考虑。本文档旨在说明TR069平台化开发以及商业应用的案例,帮助企业快速实现相关产品的网管功能开发。
2.预期的读者和阅读建议
本文档预期的读者和阅读建议见表:
在这里插入图片描述
3.定义
ACS Auto-Configuration Server
CPE Customer Premises Equipment

1. 2 TR069协议规范

tr069协议主要有tr069,tr098,tr106,tr181,TR111等。其中,TR069主要是通信协议的规范,交互的过程,TR098和TR181是数据模型的定义规范,tr111是stun应用的标准。建议必须至少阅读一次以上TR069的规范。

1.3 Easycwmp介绍

目前在CPE侧开源的TR069协议代码,维护最好、商用最广泛的就是easycwmp了,它已经集成在openwrt中,并且可以移植到Linux源码项目。easycwmp是早期freecwmp的升级版,官网提供easycwmp免费版本的packet,由于代码在业务层主要是使用脚本编写,维护和开发过程需要大量的时间和成本,而且可移植性差。但同时easycwmp还有一个纯C语言编写的商业版,毕竟是商业源码,推荐去看官网,商业和开源的差距:
Commercial solution implemented with C. This solution is recommended for big DataModels. With shell solution, the execution of GetParameterValue of the whole DataModel tree containing more than 150 parameters, can take more than 20 seconds. However, with the C solution it takes a few milliseconds.(官网部门描述)。
如果要实现自己的TR069协议的功能开发,根据EasyCwmp的设计理念,主要分为两个层次:分别是协议层CWMP程序和DataModel(数据模型)层动态库。 更多设计思想和开发技术讨论可以参考easycwmp官网:easycwmp官网。

1.4 TR069协议服务端测试工具

常见TR069的ACS端测试的软件,有openacs(鼻祖)、华为的itms、国外的测试工具vigoracs、还有个人组织的xacs等常见测试软件。后续会专门介绍相关测试软件的安装和测试。

2. TR069协议知识基础

2.1 TR069协议概述

CWMP是由数字用户线路DSL——Digital Subscriber’s Line论坛(之后更名为broadband-forum)发起开发的技术规范之一,编号为TR-069,所以又被称为TR-069协议。它提供了对下一代网络中家庭网络设备进行管理配置的通用框架、消息规范、管理方法和数据模型。
当前网络接入形式多样、网络复杂,由于用户设备数量繁多、部署分散,通常位于用户侧,不易进行设备的管理和维护。所以,CWMP提出通过ACS(Auto-Configuration Server,自动配置服务器)对CPE(Customer Premises Equipment,用户侧设备)进行远程集中管理,解决CPE设备的管理困难,节约维护成本,提高问题解决效率。
CPE管理

2.2 TR-069 网络框架

TR-069 网络的基本框架如图:
在这里插入图片描述
TR-069 网络元素主要有:
ACS:自动配置服务器,网络中的管理设备。
CPE:用户端设备,网络中的被管理设备。
DNS server:域名服务器。TR-069 协议规定 ACS 和 CPE 使用 URL 地址来互相识别和访问,DNS 用于帮助解析 URL 参数。
DHCP server:动态主机配置协议服务器,给网络 ACS、CPE 分配 IP 地址,使用 DHCP 报文中的 option 字段给 CPE 配置参数。
用户终端设备属于 CPE,使用 TR-069 协议与 ACS 进行消息交互。

2.3 协议栈结构

(1) TR069协议协议栈:
在这里插入图片描述
(2) 协议各层概要
在这里插入图片描述

2.4 TR069基本功能

(1). ACS 和 CPE 的自动连接
CPE 可以通过发送 Inform 报文自动连接 ACS。触发连接的方式有以下几种:
CPE 启动,根据获取的 URL 值找到相应的 ACS,并自动发起连接。
CPE使能了周期性发送 Inform报文功能,当周期(比如 1小时)到达时,CPE会自动发送 Inform报文来建立连接。
CPE 使能了定期发送 Inform 报文功能,当时间点到达时,CPE 会自动发送 Inform 报文来建立连接。
如果当前会话没有结束,但是连接异常中断,而且 CPE 自动重新连接的次数还没有达到上限,此时,CPE 也会自动建立连接。
ACS 可以在任何时候自动向 CPE 发起连接请求(Connect Request),通过 CPE 的认证(即匹配CPE 用户名、CPE 密码)后,可以与 CPE 建立连接。
(2). 支持 ACS 对 CPE 的自动配置
当 CPE 上线时,ACS 可以自动下发一些配置给 CPE,完成对 CPE 的自动配置。设备支持的自动配置项参数主要包括(不仅限于此):
配置文件(ConfigFile)
ACS 地址(URL)
ACS 用户名(Username)
ACS 密码(Password)
Inform 报文自动发送使能标志(PeriodicInformEnable)
Inform 报文周期发送时间间隔(PeriodicInformInterval)
Inform 报文定期发送日期(PeriodicInformTime)
CPE 用户名(ConnectionRequestUsername)
CPE 密码(ConnectionRequestPassword)
(3). 支持对 CPE 系统映像文件和配置文件的上传/下载管理
网络管理员可以将系统启动文件、配置文件等重要文件保存在 ACS 上,当 ACS 发现某个文件的版本有更新,将会通知 CPE 进行下载。CPE 收到 ACS 的下载请求后,能够根据 ACS 报文中提供的下载地址和文件名,自动到指定的文件服务器下载文件,下载完成后,对下载文件的合法性做相应的检查,并将下载结果(成功或失败)反馈给 ACS。目前,设备不支持以数字签名的方式进行的文件下载。
目前,设备支持下载的文件类型有:系统启动文件和配置文件。
同样,为了实现对重要数据的备份,CPE 将根据 ACS 的要求将当前的配置文件上传到指定的服务器。目前,设备支持上传的文件类型有:配置文件和日志文件。
(4). 支持 ACS 对 CPE 状态和性能的监控
ACS 可以监控与其相连的 CPE 的各种参数。由于不同的 CPE 具有不同的性能,可执行的功能也各异,因此ACS必须能识别到不同的CPE的性能,并监控到CPE的当前配置以及配置的变更。TR-069还允许网络管理人员自定义监控参数并通过 ACS 获取这些参数,以便了解 CPE 的状态和统计信息。
ACS 能够监控的状态和性能有:厂商名称(Manufacturer)、厂商标识 OUI(ManufacturerOUI)、序列号(SerialNumber)、硬件版本号(HardwareVersion)、软件版本号(SoftwareVersion)、设备状态(DeviceStatus)、启动时间(UpTime)、配置文件、ACS 地址、ACS 用户名、ACS 密码、Inform 报文自动发送使能标志、Inform 报文周期发送时间间隔、Inform 报文定期发送日期、CPE地址、CPE 用户名、CPE 密码等。

2.5 TR069方法

ACS 对 CPE 的管理和监控是通过一系列的操作来实现的,这些操作在 TR-069 协议里称为 RPC 方法。主要方法的描述如下:
Get:ACS 使用该方法可以获取 CPE 上参数的值。
Set:ACS 使用该方法可以设置 CPE 上参数的值。
Inform:当 CPE 与 ACS 建立连接时,或者底层配置发生改变时,或者 CPE 周期性发送本地信息到 ACS 时,CPE 都要通过该方法向 ACS 发起通告信息。
Download:为了保证 CPE 端硬件的升级以及厂商配置文件的自动下载,ACS 使用该方法可以要求 CPE 到指定的 URL 下载指定的文件来更新 CPE 的本地文件。
Upload:为了方便 ACS 对 CPE 端的管理,ACS 使用该方法可以要求 CPE 将指定的文件上传到 ACS 指定的位置。
Reboot:当 CPE 故障或者需要软件升级的时候,ACS 使用该方法可以对 CPE 进行远程重启。
在这里插入图片描述

3.TR069具体实现举例(电信光猫连接华为ITMS管理)

3.1 RPC方法接口

以参数变化上报接口为例,ITMS获得某一家庭网关特定的参数,调用如下RPC方法的接口:
RPC方法

3.2 接口时序

参数变化上报接口流程图
a)家庭网关发起Inform,包含EventCode CONNECTIONREQUET;
b)ITMS回应InformResponse;
c)家庭网关发起空的HTTP Post;
d)ITMS调用SetParameterAttributes RPC方法,设定参数值改变需要上报的参数属性;
e)家庭网关回应SetParameterAttributesResponse;
f)回应或结束Session;
g)参数值发生改变,家庭网关自动发起Inform,EventCode为VALUE CHANGE;
h)ITMS回应InformResponse;
i)结束。


http://chatgpt.dhexx.cn/article/camyYAhi.shtml

相关文章

TR069协议与商业应用4——TR069服务器测试工具

声明:原创作品,严禁用于商业目的。 如有任何技术问题,欢迎和我交流:19826269205(微信同号)。 腾讯课堂链接 B站免费视频部分 文章目录 1. openACS2. VigorACS3. XACS3.1 概述3.2. 设备接入3.3 管理端登录…

TR069-STUN

该模块依据TR-111实现STUN Server功能,基站设备(CPE)作为STUN Client,向STUN Server发送BINDING-REQUEST,CPE通过BINDING-RESPONSE响应消息获取设备是否在NAT之后,以及NAT类型。 如果设备在NAT之后&#xf…

TR069 测试

对于需要测试TR069的用户,可以使用一个免费的测试平台。 测试方法可以参考下面的流程: TR069智能云平台提供了完全免费的终端自动配置系统. 1.首先登录到http://39.106.195.193:9090/acscloud 注册您的用户 2.注册成功后,在您的设备端配置ACS…

TR069协议与商业应用5——TR069协议架构设计

声明:原创作品,严禁用于商业目的。 如有任何技术问题,欢迎和我交流:19826269205(微信同号)。 腾讯课堂链接 B站免费视频部分 文章目录 1. TR069(CWMP)程序设计思想2. 架构分析3. T…

TR069协议

TR069( Technical Report 069)全称是“ CPE广域网管理协议(CWMP),用于远程终端管理,是 CPE 和 ACS之间沟通的通讯协定。CPE 可以借着这个协定完成服务开通、功能设定、档案上传下载、系统检测 等等初始化及…

TR069浅析

何为TR069? TR069, 全称“Technical Report 069”是由DSL Forum修订的一份技术规范,该规范是应用层的管理协议,命名为“CPE广域网管理协议”。 TR069定义了一套全新的网管体系结构,包括管理模型,交互接口及基本的管理…

TR069

tr069简介 全称是“用户终端设备广域网管理协议(CWMP) 用于远程终端管理,比如远程的配置阿什么的(对远程的设备进行配置等管理) 1. TR069协议网络架构 ACS为自动配置服务器,负责对终端设备CPE进行管理…

CWMP协议(TR069协议)学习

文中借鉴了一些大神的整理,后面会贴上链接,如侵删 目录 一、概念(来自百度百科) 二、网络元素 三、基本功能 四、CWMP协议栈 五、远程调用方法(RPC)详细的RPC方法定义请参见TR-069 六、inform的事件…

TR069是什么鬼

一,TR069是什么 1,概念 搞嵌入式或通信设备的,或多或少都会听说TR069。那他是什么鬼? TR069,就是CPE广域网管理协议。 它用于ACS和CPE之间的自动协商交互,能够实现终端的自动配置。( ACS&#x…

TR069协议详解

一、关于TR069协议 TR069, 全称“Technical Report 069”是由DSL Forum(一个非盈利性的全球行业联盟,致力于发展宽带网络范, 其成员包括通讯、设备、计算机、网络和服务提供商等行业的领先厂商,现已更名为“Broadband Forum”)修…

TR-069协议介绍

一、概念 关于TR-069 ①协议命名 TR-069, 全称“Technical Report 069”是由DSL Forum(一个非盈利性的全球行业联盟,致力于发展宽带网络范)。其成员包括通讯、设备、计算机、网络和服务提供商等行业的领先厂商,现已更名为“Broadband Forum…

apache多个php版本fcgi,apache使用mod_proxy_fcgi实现多版本php共存

2019-08-02 apache使用mod_proxy_fcgi实现多版本php共存 首先配置php 安装你想用的php版本,找到你的php-fpm.conf配置文件 将listen换成你想要的端口 比如listen 127.0.0.1:9099 注意,如果你的fpm系变量配置文件在php-fpm.d的www.conf下面,请…

搭建nginx+fcgi并使用Holer实现内外网访问

1、环境搭建 本文使用了ubuntu20.04系统进行搭建。 1.1搭建nginx服务器 到Nginx的官网(http://nginx.org/en/download.html)上去下载最新的源码包,本文使用的是nginx-1.20.0.tar.gz (1)执行tar -zxvf nginx-1.20.0.tar.gz 命令解压文件到当…

web服务选择lighttpd,采用fcgi组件技术扩展处理业务层

目录 一、简介fcgi:web和web服务器间数据传输的桥梁... 2 二、源码编译配置ARM Lighttpd Fastcgi C.. 3 【1】交叉编译。源文件都从官网下载。 Fcgi lighttpd zlib. 3 【2】配置服务器server.document-root"/www" fastcgi.server "bin-path&quo…

Nginx运行FastCGI程序(ngx_http_fastcgi_module模块、fcgi库、spwan-fcgi进程管理器)

一、什么是CGI 通用网关接口(Common Gateway Interface、CGI)描述了客户端和服务器程序之间传输数据的一种标准,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。 CGI 独立于任何语言的,CGI 程序可…

php运行方式fpm fcgi,php如何从fpm-fcgi切换运行模式到cli

在使用一个php爬虫的时候提示一定要用cli环境 我查看了当前php版本信息如下: 我打印 PHP_SAPI 显示 fpm-fcgi 如何才能变成 cli 服务器环境是linux+nginx 补充:我能不能理解为cli一定是要命令行模式? 刚刚在命令行里测试了PHP_SAPI 输出了cli 问:能不能http模拟调用实现cli…

spwan-fcgi和fcgi 关系

spwan-fcgi: 举个例子: spawn-fcgi -a 127.0.0.1 -p 10000 -f ./login spwan-fcgi.c: main 函数 会执行参数解析过程 获得 ip 端口 和 执行文件的路径。 bind_socket 函数会执行 sockt 的 绑定监听过程, 函数 fcgi_spawn_connection 会通过系统调用d…

nginx+spawn-fcgi+demo+fcgi库函数

由于项目中用到了nginxFastCGI相关内容,所以这段时间学习了一下,顺便记下相关内容。 我是在远程工作机上实验的,有个缺点就是没有root权限,所以有些步骤我就没做了,比如make install(nginx)、添…

【fcgi-2.4.0】移植fcgi-2.4.0到armv7平台

源码下载链接 Index of /lookaside/extras/fcgi/fcgi-2.4.0.tar.gz/d15060a813b91383a9f3c66faf84867e (fedoraproject.org)https://src.fedoraproject.org/lookaside/extras/fcgi/fcgi-2.4.0.tar.gz/d15060a813b91383a9f3c66faf84867e/下载fcgi-2.4.0.tar.gz 解压源码 tar …

程序异常捕获库 - CrashRpt

CrashRpt.dll用来在应用程序出现异常crash时,捕获到错误,并收集出错信息:MiniDump文件、硬件信息、系统信息、出错信息、进程信息、服务信息、驱动信息、启动信息、软件列表、端口信息、磁盘分区、WinSock LSP、IE插件、网卡信息。 1、使用方…