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

发布时间: 2023-02-23 19:44:56 作者: 大象笔记

TR069 协议

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

CPE / ACS

TR069 里有两个重要的名词:

作用

传输协议

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 的完整通信过程

南向接口 / 北向接口

Golang 实现

参考

我是一名山东烟台的开发者,联系作者