TR069 - 用户终端设备广域网管理协议

更新日期: 2023-05-04 阅读次数: 4834 字数: 743 分类: 物联网

TR069 协议

TR069 (Technical Report 069), 即 CPE 用户终端设备广域网管理协议(CPE WAN Management Protocol, CWMP)。用于实现终端的自动配置。

CPE / ACS

TR069 里有两个重要的名词:

  • 用户终端设备(Customer Premise Equipment,CPE)。在宽带接入中,CPE 指的就是家庭网关。any equipment used by customers which can be managed by the ACS (set-top boxes, VoIP-phones but also modems, routers, gateways, and more). CPE is commonly called a device.
  • 自动配置服务器(Auto-Configuration Server,ACS)。ACS 的作用是管理 CPE。

作用

  • 统一管理:电信公司对众多终端设备需要统一管理,这样可以保证服务质量。
  • 自动初始化:实现用户设备的“零配置安装”功能,或是可以从网络侧控制业务参数的动态改变。
  • 远程升级:ACS 可以识别用户设备的版本号,决定是否远程更新用户设备的软件版本,并且在更新完成后能够得知是否成功。
  • 远程监控:对用户设备的状态和性能进行监测。类似 SNMP 的监控功能。
  • 远程故障诊断

传输协议

TCP / HTTP 之上的 SOAP RPC (XML 格式)。

CPE 与 ACS 间支持的函数列表参考:

https://www.cnblogs.com/smillepro/articles/10573720.html

非常有必要浏览一遍,否则没法看懂服务端的代码逻辑(路由部分)

例如,对 CPE 发送来的数据进行解析,可以参考 golang 的一个实现:

https://github.com/CA17/TeamsACS/blob/main/tr069/handlers.go

数据流

首先是 CPE 向 ACS 发起初始化消息,然后才是后续的消息交互。例如 CPE 在上电启动过程中,从已有的配置文件中读取 ACS 的地址,然后通过这个地址向 ACS 发起会话请求,如果连接失败,则需要通过DHCP (Dynamic Host Configuration Protocol)来获得 ACS 地址,再尝试建立与 ACS 的连接。

CPE 维护用于侦听消息的 HTTP 端口,CPE 在初始化连接的时候把端口报给 ACS。 当 ACS 要对 CPE 进行管理时,ACS 建立传输控制协议(TCP)连接并向 CPE 发送 POST 消息,然后 CPE 与 ACS 建立 HTTP/HTTPS 连接,启动 ACS 的管理过程。

服务器为主然后向光终端下达命令的管理方式,终端主动上报告警信息或通知消息,这种主从模式标准的例子在传统的电信网络中经常可以看到。

具体参考 tr069 协议中,acs 与 cpe 的完整通信过程

南向接口 / 北向接口

  • 南向接口: ACS 与 CPE 之间的接口称为南向接口
  • 北向接口: 而 ACS 与电信运营商的业务管理系统、计费系统管理等之间的接口称为北向接口

Golang 实现

  • https://github.com/it-man-cn/go-acs
  • https://github.com/CA17/TeamsACS 一个完整的 ACS golang 实现

参考

  • https://en.wikipedia.org/wiki/TR-069
  • http://www.broadband-forum.org/technical/download/TR-069_Amendment-5.pdf
  • https://www.avsystem.com/crashcourse/tr069

微信关注我哦 👍

大象工具微信公众号

我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式

tags: ACS tr069