我们前面了解了TR-069的基本交互流程,接下来我们来介绍一下ACS和CPE交互时涉及的协议及信息。
协议栈
此处提供官方定义的TR-069的协议栈:
CPE/ACS Management Application |
RPC Methods |
SOAP |
HTTP |
SSL/TLS |
TCP/IP |
图1 - TR-069协议栈(选自TR-069官方文档)
详细说明如下:
Protocol Layer | Description |
CPE/ACS Application | The application uses the CPE WAN Management Protocol on the CPE and ACS, respectively. The application is locally defined and not specified as part of the CPE WAN Management Protocol. |
RPC Methods | The specific RPC methods that are defined by the CPE WAN Management Protocol. |
SOAP 1.1 | A standard XML-based syntax used here to encode remote procedure calls. Specifically SOAP 1.1 |
HTTP 1.1 | ACS is a HTTP server, CPE is a HTTP client |
SSL/TLS | (Optional) The standard Internet transport layer security protocol. Specifically, TLS 1.2(Transport Layer Security) as defined in (or a later version). Note that previous versions of this specification referenced SSL 3.0 and TLS 1.0. |
TCP/IP | Standard TCP/IP |
图2 - TR-069协议栈内容说明(选自TR-069官方文档)
协议介绍
HTTP
从协议栈里可以看到,TR-069交互实际上是基于 HTTP 进行的文本格式信息传输,其 HTTP 和底层协议的格式必须符合各协议层的标准协议规则,下图提供了一个简单的例子表示HTTP和TR-069交互信息的关系:
图3 - HTTP与SOAP关系示例图
TR-069信息携带者SOAP报文(下方会介绍)作为传输数据,需要带上HTTP的报头进行传输。
TLS
ACS 和 CPE 之间的通信可以选择 http 和 https(http+TLS)。
如果选择了https作为通信方式,那么CWMP报文的内容会被加密,通过TLS报文进行传输。
图4 - TR-069下HTTPS报文示例图
SOAP
SOAP(Simple Object Accrss Protocol,简单对象访问协议)是一种简单的基于XML的协议。要传输的信息以SOAP消息为载体,所有的SOAP消息都使用XML形式编码,以XML格式封装,并绑定在HTTP报文上传递。
上一章中介绍的Inform、SetParameterValues、SetParameterValues Response实际上都是通过SOAP信息作为载体传输的,由于它是基于XML的协议,我们在筛选Wireshark抓包进行分析时会使用xml进行筛选过滤。