Openwrt常用软件模块之CWMP
Openwrt常用软件模块之CWMP
CWMP概述
CWMP(CPE WAN Management Protocol)是一个面向终端设备的网管技术规范。这个技术规范提供了对下一代网络中家庭网络设备进行管理配置的通用框架、消息规范、管理方法和数据模型 。
它由宽带(Broadband)论坛管理和发布,于2004年发布第一版,文件编号为TR-069
CWMP 中定义了以下两种基本网络元素:
- ACS: 自动配置服务器(Auto Configuration Server),网络中的管理服务器
- CPE: 客户端设备(Customer premises equipment),网络中的被管理设备
CWMP作为一个 双向的SOAP/ HTTP的协议 ,它定义了客户端设备和自动配置服务器之间的通信协议。它包括一个安全的自动配置和其他CPE管理功能控制整体框架。协议支持了不同的互联网接入设备,如调制解调器、路由器、机顶盒和VoIP电话等。标准TR-069 协议的自动配置服务器对这些设备进行自动配置和管理 。
CWMP是一个基于文本的协议,在设备和自动配置服务器之间 传输 HTTP文本。在HTTP层面上CPE是客户端,ACS起到HTTP服务器的作用。这意味着控制配置数据的流动是客户端设备的职责
会话的概念: 所有的通信和操作都在配置会话的范围内进行。会话是由设备从一个通知(Inform)消息的传输开始的。ACS 服务器在收到通知消息时,开始对 CPE 调用接口方法进行状态查 询和配置。认证对于 CPE 来说是必不可少的,一般采用摘要认证算法来对 CPE 进行认证
配置数据模型:
大多数的配置和诊断是通过
设置和检索设备参数
的值来实现的。这些配置都是组织为 一个定义良好的层次结构,包括常见或不太常见的所有设备模型。宽带论坛发布的数据模型标准有两种格式:(TR181包含了大多数设备类型的数据模型定义,设备所支持的管理模型用设备节点Device.DeviceInfo.SupportedDataModel来表示)
- XML包含每一个子元素的详细规范
- 可读细节的PDF文件格式
每一个定义的对象节点都需要标识出 是可修改的还是只读 的。这些是通过GetParameter Names方法来获取设备支持配置对象节点报告。设备不应允许标记为只读的任何参数的修 改。TR181 数据模型的规格和扩展清楚地标识了大多数设备参数的规格。参数的类型和含 义在标准 TR181 中有详细定义
应用场景与优点: CWMP主要应用于电话、有线电视、宽带等家庭接入网络环境。在这些接入网络中, 由于用户设备数量很多,并且用户分散,不容易进行设备的管理和维护。采用CWMP协议,可以实现ACS对CPE设备的远程集中管理,解决了CPE设备的管理维护问题,提高了网络的运维效率
方法和流程
设备的整个管理过程是建立在定义好的一组简单的操作方法上,每个方法都是原子操作。如果设备不能执行一个配置命令那就返回给 ACS适当的错误值。设备不应当因为错误中止会话
方 法 | 含 义 |
---|---|
SetParameterValues | 服务器用来修改 CPE 的参数 |
GetParameterValues | 用于服务器获取 CPE 的参数配置值。一次可以获取一个或多个参数 |
GetParameterNames | 用于服务器来发现客户端可以访问的配置参数 |
Inform | CPE 调用服务器的 Inform 方法来建立和服务器之间的传输会话 |
AddObject | 用于服务器来针对多实例对象来创建新的实例 |
DeleteObject | 服务器删除客户端多实例中的一个实例 |
为适应终端数量巨大并且地址不固定的特性,TR069 定义的交互流程中,管理交互通常都是由 CPE 发起的,由 CPE 来“请求”ACS 进行管理(见下图)。当 ACS 希望启动对 CPE 的管理时,协议定义了一个反向触发机制。CPE 建立一个用于侦听的 HTTP 端口,这 个端口地址信息在 CPE 初始连接时上报给 ACS,当 ACS 希望对 CPE 进行管理时,ACS 向 该端口建立传输控制协议连接并发送空的 POST 请求报文,CPE 收到该请求报文后随即启 动正向的 HTTP/HTTPS 连接,请求自动配置服务器的管理 。
- 第1步: CPE和ACS建立TCP连接
- 第2步: SSL初始化进行双向认证
- 第3步: CPE发送Inform报文,开始建立 CWMP 连接。Inform 报文使用 Eventcode 字段 描述发送 Inform 报文的原因,通常为“0 BOOTSTRAP”,表示 CPE 首次启动建立连接
- 第4步: 如果CPE通过 ACS 的认证,ACS 将返回 Inform 响应报文,连接建立完成
- 第5步: 如果CPE没有别的请求,就会发送一个 HTTP Post 请求,内容为空,以满足 HTTP 报文请求/响应报文交互规则(CWMP 是基于 HTTP 协议的,CWMP 报文作为 HTTP 报文 的数据部分封装在 HTTP 报文中)
- 第6步: ACS 查询 CPE 上设置的轮询通知间隔的值等
- 第7步: CPE 把自身的轮询通知间隔的值返回给 ACS
- 第8步: ACS发现轮询通知间隔的值设置不符合服务器配置,于是发起设置请求,要求将CPE的轮询通知间隔的值设置为1800 秒
- 第9步: 设置成功后,CPE发送响应报文
- 第10步: ACS 发送空报文通知CPE没有别的请求了
- 第11步: CPE 关闭连接
配置CWMP
http://easycwmp.org/ EasyCwmp-support
EasyCwmp—openwrt 下载EasyCwmp
Openwrt常用软件模块之CWMP相关推荐
- Openwrt常用软件模块之SSH(Dropbear)
Openwrt常用软件模块之SSH(Dropbear) SSH(Secure Shell)是专为远程登录会话和其他网络服务提供安全性的协议.OpenWrt 默认采用Dropbear软件来实现 SSH协 ...
- Openwrt常用软件模块之NTP
Openwrt常用软件模块之NTP NTP简介 NTP(Net Time Protocol)是用于互联网上计算机时间同步的协议.其中有NTP服务器来提供网络时间服务,客户端从服务器获取时间 OpenW ...
- OpenWrt 基础软件模块之netifd
OpenWrt 基础软件模块之netifd Openwrt 支持模块化编程,增加新功能非常简单.但是一些通用的基础模块必须包含,他们是OpenWrt核心. 如:实用基础库libubox.系统总线ubu ...
- 32 --> 详解 OpenWRT系统框架基础软件模块之netifd
一.简介 OpenWrt路由操作系统的框架基础软件有很多,大部分是通用的软件模块,如 dhcp .dnsmasq.iproute.cmwp.vpn.ipsec等等:OpenWrt还集成部分具有专属特征 ...
- 37 --> 详解 OpenWRT系统框架基础软件模块之 procd
一.简介 OpenWrt路由操作系统的框架基础软件有很多,大部分是通用的软件模块,如 dhcp .dnsmasq.iproute.cmwp.vpn.ipsec等等:OpenWrt还集成部分具有专属特征 ...
- animiz动画制作软件_学习动画制作需要掌握的常用软件合集
影视动画越来越深入我们的工作和生活,其中动画的发展也深深吸引着我们的眼球. 在当下创作一部动画,大多已放下传统纸上动画的形式,开始尝试使用电脑绘图和3D方式来制作.所以,就让我们来看看常用的动画制作的 ...
- Atitit 常用sdk 模块 组织架构切分 规范与范例attilax总结
Atitit 常用sdk 模块 组织架构切分 规范与范例attilax总结 常用200个模块 2017/04/12 22:01 <DIR> acc 2017/04 ...
- 【AWSL】之Linux源代码编译及配置yum源(tar 解包、./configure配置软件模块、make)
源代码编译 序言 一.源代码概述 1.使用源代码安装软件的优点 2.应用场合举例 3.安装源代码软件为什么使用编译安装 二.编译安装的基本思路 三.配置本地yum源仓库 四.`yum常用命令` 五.` ...
- excel进销存管理系统_通用Excel助力企业定制开发信息化系统常用功能模块
信息化成为现代企业管理的趋势,而企业管理系统则是推动这一趋势发展的重要载体.那么什么是企业管理系统呢?企业管理系统都有那些呢? 通用Excel助力企业定制开发信息化系统常用功能模块 企业管理系统,是指 ...
- linux_manjaro常用软件安装
安装(win10+ubuntu+新增manjaro) 参考 Windows+Manjaro双系统安装:https://blog.csdn.net/xiaoyaotan_77/article/detai ...
最新文章
- 爸爸又给Spring MVC生了个弟弟叫Spring WebFlux
- Windows查看端口被占用的程序!
- 别怕,BCH无惧攻击
- C# 的EF框架怎么连接Oracle数据库
- oracle 计划名称,甲骨文修改合作伙伴计划 分为四个级别
- SqlCommandBuilder
- MVC2验证(自定义异常)
- 实验四Java_《Java实验四》
- 前沿 | 阿里达摩院最牛科技~摄像头ISP处理器,提升夜间识别精准率
- P3047 [USACO12FEB]附近的牛Nearby Cows
- 用于jqGrid获取SQL Server中数据的简单分页存储过程及sp_executesql的一点使用方法...
- 麦本本从u盘启动计算机,麦本本怎么设计u盘启动顺序
- gradle报错this sometimes occurs after a network connection timeout.解决
- Linux面试题1.只查看ett.txt文件(100)中的第20到第30行的内容
- 秦曾昌人工智能课程---7、决策树集成学习Tree Ensembles
- python OpenCV与NAOqi库在机器人点球比赛中的应用
- Qt 之 打开exe程序
- 咨询行业细分——管理咨询、战略咨询、IT咨询
- Ubuntu18.04安装搜狗拼音输入法皮肤透明解决方法
- RHEL4-ASU2-i386上安装oracle9204