TR-069协议介绍

article/2025/10/18 21:34:57

一、概念

关于TR-069

①协议命名
TR-069, 全称“Technical Report 069”是由DSL Forum(一个非盈利性的全球行业联盟,致力于发展宽带网络范)。其成员包括通讯、设备、计算机、网络和服务提供商等行业的领先厂商,现已更名为“Broadband Forum”)修订一份技术规范,该规范是应用层的管理协议,命名为“CPE广域网管理协议(CPE WAN Management Protocol)”。

②协议应用
TR069协议提供了对下一代网络中家庭网络设备进行管理配置的通用框架消息规范管理方法数据模型

③ACS和CPE模型
当前网络接入形式多样、网络复杂、由于用户设备数量繁多、部署分散,通常位于用户侧,不易进行设备的管理和维护。所以,CWMP(广域网管理协议)提出通过ACS对CPE进行远程集中管理,解决CPE设备的管理困难,节约维护成本,提高问题解决效率。在TR069协议定义的网管模型中管理服务器称为自动配置服务器(ACS),负责完成对**用户终端设备(CPE)**的管理。

华为的ITMS1000
在这里插入图片描述

二、TR069网络框架

在这里插入图片描述

TR-069网络元素主要有:

①ACS:自动配置服务器,网络中的管理设备。
②CPE:用户端设备,网络中的被管理设备。
③DNSserver:域名服务器。TR-069协议规定ACS和CPE使用URL地址来互相识别和访问,DNS用于帮助解析URL参数。
④DHCP server:动态主机配置协议服务器,给ACS和CPE分配IP地址,使用DHCP报。文中的option字段给CPE配置参数。

用户终端设备属于CPE,使用TR-069协议与ACS进行消息交互。

三、TR-069协议栈结构

①TR-069协议协议栈:
在这里插入图片描述
②协议各层概要
在这里插入图片描述

四、TR-069协议基本功能

1、ACS和CPE自动连接。CPE可以通过发送Inform报文自动连接ACS。

触发的连接方式有以下几种:(连接是双向的)

CPE—>ACS
①CPE启动,根据获得的URL值找到相应的ACS,并自动发起连接。
②CPE使能了周期性发送Inform报文功能,当周期(比如1小时)到达时,CPE会自动发送Inform报文来建立连接。
③CPE使能了定期发送Inform报文功能,当时间点到达时,CPE会自动发送Inform报文来建立连接。
④如果当前会话没有结束,但是连接异常中断,而且CPE自动重新连接的次数还没到达上限,此时,CPE也会自动建立连接。

ACS—>CPE
⑤ACS可以在任何时候向CPE发起请求连接(Connect Request),通过CPE的认证(即匹配CPE用户名、CPE密码)后,可以与CPE建立连接。

2、支持ACS对CPE的自动配置

当CPE上线时,ACS可以自动下发一些配置给CPE,完成对CPE的自动配置。设备支持的自动配置项主要参数主要包括如下:
在这里插入图片描述

3、支持对CPE系统映像文件和配置文件的上传/下载管理

网络管理员可以将系统启动文件、配置文件等重要文件保存在ACS上,当ACS发现某个文件的版本有更新,将会通知CPE进行下载。CPE收到ACS的下载请求后,能够根据ACS报文中提供的下载地址和文件名,自动到指定的文件服务器下载文件,下载完成后,将下载文件的合法性做相应的检查,并将下载结果(成功或失败)反馈给ACS。目前支持上传的文件类型有:配置文件和日志文件。

4、支持ACS对CPE状态和性能的监控

ACS可以监控与其相连的CPE的各种参数。由于不同的CPE具有不同的性能,可执行的功能也各异,因此ACS必须能识别到不同的CPE的性能,并监控到CPE的当前配置以及配置的变更。TR-069还允许网络管理人员自定义监控参数并通过ACS获取这些参数,以便了解CPE的状态和统计信息。

ACS能监控的状态和性能有:厂商名称(Manufacturer)、厂商标识OUI(ManufacturerOUI)、序列号(SerialNumber)、硬件版本号(HardwareVersion)、软件版本号(SoftwareVersion)、设备状态(DecicesStatus)、启动时间(UpTime)、配置文件、ACS地址、ACS用户名、ACS密码、Inform报文自动发送使能标志、Inform报文周期发送时间间隔、Inform报文定期发送日期、CPE地址、CPE用户名、CPE密码等。

五、TR-069实现机制

①TR069主要方法
ACS对CPE的管理和监控是通过一系列的操作来实现的,这些操作在TR-069协议里称为RPC方法,主要方法的描述如下:
在这里插入图片描述
在这里插入图片描述
②TR069实现机制
eg:
区域内有主、备两台ACS,主ACS系统升级,需要重启。为了连续监控,主ACS需要将区域内的CPE都连接到备用ACS上,处理流程如下:
在这里插入图片描述
(1)建立TCP连接。

(2)SSL初始化,建立安全机制。

(3)CPE发送Inrorm报文,开始建立CWMP连接。Inform报文使用Eventcode字段描述发送Inform报文的原因。该举例为“6 CONNECTION REQUEST”,表示ACS要求建立连接。

(4)如果CPE通过ACS的认证,ACS会返回Inform响应报文,连接建立。

(5)如果CPE没有别的请求,就会发送一个空报文,以满足HTTP报文请求/响应报文交互规则(TR-069是基于HTTP协议的,TR-069报文作为HTTP报文的数据部分封装在HTTP报文中)。

(6)ACS查询CPE上设置的ACS URL的值。

(7)CPE把获取到的ACS URL的值回复给ACS。

(8)ACS发现CPE的ACS URL是本机的URL的值,于是发起Set请求,要求将CPE的ACS URL设置为备用ACS的URL的值。

(9)设置成功,CPE发送响应报文。

(10)ACS发送空报文通知CPE没有别的请求了。

(11)CPE关闭连接。

之后,CPE将向备用ACS发起连接,该交互过程可以结合报文进行分析。


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

相关文章

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、使用方…

CrashRpt.dll用来在应用程序出现异常crash

欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c 编程经验,就来吧!158427611 欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c 编程经验,就来吧&a…

crashRpt使用方法

从官网上下载crashRpt的源码,按说明编译出相应的lib和dll 1 在编译crashRpt的时候,在环境变量中设置 crashrptDirD:\work\AIW\WebMicaps\WebMicapsServer\src\CrashRpt,以简化编译 2 在主程序运行的工作目录下要拷贝crashRpt编译后生成…

CrashRpt使用

CrashRpt 中除了错误处理之外值得学习的地方还是不少的,如屏幕截图、邮件 发送。 这里主要提取屏幕截图的功能。 1. 从 CrashRpt 源码目录中分别复制 minizip 、 zlib 、 libpng 到一个目录作为公 共库使用,并分别编译它们生成 lib ,需要设置…

crashRpt用法

从官网上下载crashRpt的源代码,按说明编译出对应的lib和dll 1 在编译crashRpt的时候,在环境变量中设置 crashrptDirD:\work\AIW\WebMicaps\WebMicapsServer\src\CrashRpt,以简化编译 2 在主程序执行的工作文件夹下要拷贝crashRpt编译后生…

捕获Windows C/C++程序异常奔溃工具CrashRpt

背景 在Windows环境下做C/C程序开发有段时间了,经常遇到程序奔溃时缺无法捕获,经同事推荐,知道了CrashRpt这个捕获C/C程序异常的工具,让我省去了通过增加打印调试去查询程序异常的繁琐方式。下面记录下使用这个工具的一些方法。 …

关于CrashRpt的研究

CrashRpt是轻量级的开源错误报告库 官网下载链接 ##编译工程 从官网下载下最新版(v.1.4.3_r1645),解压后发现是visual studio的工程,使用的是vs2010。但我用得是vs2017,所以在编译之前要做一下处理: 对于…

C++接入CrashRpt并上报分析崩溃信息

项目需要监测在Windows平台的崩溃情况,折腾了两天终于弄好了,记录一下。 1.捕获崩溃信息 接到这个需求,心想应用崩溃系统会收到信号,应该有相应的函数可以监听,上网搜索,果不其然函数 SetUnhandledExcep…

计算机中丢失crashrpt,修复crashrpt.dll

crashrpt.dll是电脑系统必备的一个DLL组件修复程序。系统重要文件 crashrpt.dll 。crashrpt.dll(含64位)在电脑中起着重要作用。比如电脑中的部分软件的正常运行就离不开它,如果缺少这款dll,会给用户带来不少麻烦。一旦发现自己的电脑这款crashrpt.dll出…

计算机中丢失crashrpt,crashrpt.dll

crashrpt.dll是smartFTP中一款重要的dll文件,缺少它将导致软件的部分功能无法实现或者无法启动,如果计算机弹出crashrpt.dll丢失或者找不到crashrpt.dll的问题,下载一个crashrpt.dll文件修复一下即可解决问题,需要的朋友可以下载&…

crashrpt

今天原本打算在谷歌上搜索处理SEH的文章,以使我不需要在每一个线程中使用__try{}__except()代码块包裹代码的情况下,就能在任意线程抛出SEH时生成MiniDump文件。不过最后的结果是处理SEH的文章没有搜索出几篇,却幸运的搜索出了满足我需要的工…

Windows平台崩溃转储系统crashrpt的使用

概述 CrashRpt 是一个免费的、轻量级的开源错误报告库开源库,旨在拦截C程序中的异常,收集有关崩溃的技术信息并通过互联网向软件供应商发送错误报告,用于在 Microsoft Visual Studio IDE 中创建并在 Windows 中运行C应用程序。(不…