ITMS介绍

ITMS(Integrated Terminal Management System),终端综合管理系统。

主要用于家庭网关的设备注册,初始化自动配置,软件版本升级,远程故障诊断修复和设备监控等。它通过北向连接服开系统用于接收业务工单,南向通过TR069管理通道连接终端,通过安装客户端与ITMS连接用于查看工单、终端情况。


应用场景

功能要求

TR-069协议介绍

CWMP协议(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进行消息交互。

TR069( Technical Report 069)

全称是“ CPE广域网管理协议(CWMP),用于远程终端管理,是 CPE 和 ACS之间沟通的通讯协定。CPE 可以借着这个协定完成服务开通、功能设定、档案上传下载、系统检测 等等初始化及营运管理的必须动作。

CPE/ACS Management Application
该应用程序分别用于CPE广域网管理协议的CPE和ACS, 不属于CPE广域网管理协议的一部分。

RPC Methods
CPE WAN管理协议定义的特定RPC方法。RPC方法包括定义CPE参数,这些参数可由ACS通过与该参数相关的PRC方法访问。

ACS与CPE之间通过TR069协议特有的RPC方法进行互操作
CPE函数由ACS调用,用来对CPE进行管理,如设置CPE参数、获取CPE参数、硬件升级、重启设备等。

ACS函数由CPE调用,用来向ACS上报状态信息,请求硬件镜像文件下载(用来升级硬件)等等。


SOAP
基于XML的标准语法,用于编码远程过程调用,要求支持SOAP 1.1。

ACS与CPE之间进行消息传输基于HTTP1.1,消息内容使用SOAP包进行封装,SOAP包含SOAP head和SOAP body两部分组成的XML格式数据。


HTTP
要求支持HTTP1.1

SSL/TLS
标准的 Internet传输层安全协议。特别的,SSL 3.0 (Secure Socket Layer),TLS 1.0 (Transport Layer Security) 使用SSL/TLS是建议而非要求。

TR069协议的设计允许基于该协议的交互作用具有高度安全性。TR069协议的设计防止CPE和ACS之间事务被篡改,提供事务机密性,及允许多层次认证。

本协议使用下述安全机制:
----协议支持CPE和ACS间的通信传输使用SSL/TLS,提供事务机密性,数据完整性,以CPE和ACS间基于证书的认证。
----HTTP层提供另一种基于共享密钥的CPE认证方法。

TCP/IP
标准TCP/IP

对于用户设备来说,TR-069主要完成以下四方面的工作
一是用户设备自动配置和动态的业务配置。对于ACS来说,每个用户设备可以在协议中对自己作出标志(例如型号、版本等),根据可设定的规则,ACS可以对某一个特定用户设备下发配置,也可以对某一组用户设备下发配置。CPE可以在开机后自动请求ACS中的配置信息,ACS也可在任意需要的时刻主动发起配置。通过该功能可以实现用户设备的“零配置安装”功能,或是可以从网络侧控制业务参数的动态改变。

二是对用户设备的软件、固件的管理。TR-069的协议提供了对用户设备中的软件、固件进行管理和下载的功能。ACS可以识别用户设备的版本号,决定是否远程更新用户设备的软件版本,并且在更新完成后能够得知是否成功。例如,当用户设备需要加载新的软件以实现新的业务功能时,或是当前软件存在必须修复的bug时,通过该功能可以实现对用户设备的远程管理升级。

三是对用户设备的状态和性能进行监测。TR-069定义了ACS对用户设备的状态和性能进行监测的手段。其中包括了一些通用的性能参数,可以反映当前用户设备的工作状态。另外还提供了标准的语法,运营商可以定义额外的参数。

四是对通信故障的诊断。TR-069还定义了可以用户端自我诊断和报告的能力,例如在ACS的指示下,用户端可以通过ping或其它手段检查用户端与网络业务提供点之间的连通性、带宽等,检测结果返回给ACS。这样,运营商通过在远端操作,就可以对用户申告的设备故障进行简单定位,并作相应的处理。

TR-069协议完整的通信过程

以下为设备重启到挂上TR069网管的报文流程解析:

(1) 设备启动:根据配置的ACS(自动配置服务器)地址,建立安全的HTTP连接以后,每次连接CPE都必须首先对ACS发出一个Inform的RPC调用请求来向ACS汇报本次连接的信息。ACS会返回给一个Inform response作为确认连接。
标准的Inform方法的参数如表所示

(2) ACS服务器接受到设备端(CPE端)发出的inform消息之后,会给予一个 informresponse响应机cwmp连接创建成功。

(3) 设备端发送空消息,表示没有后续的请求。

(4) ACS服务器收到空消息后,根据空消息中携带的序列号对设备进行合法性验证,若验证通过则进行后续操作,若不通过则下发消息提示设备非法。序列号的判断在ACS内部判断,未体现在报文中。

(5) ACS验证设备序列号合法,发送消息要求设备端上报网管的账号信息。

(6) 设备端接收该ACS服务器请求上报账号的消息后,将发送设备上配置的账号信息作为请求的响应。

(7) ACS服务器收到消息后,根据消息中携带的账号信息进行合法性验证,若验证通过则进行后续操作,若不通过则下发消息提示账号非法。序列号的判断在ACS内部判断,未体现在报文中。

(8) ACS验证账号合法,发送消息要求设备从特定URL上下载配置文件。

(9) 设备接收到该消息之后,并根据消息中的URL地址下载配置文件并自动配置,同时给ACS服务器一个下载成功的响应消息。

(10) ACS服务器发送消息,要求设备从特定的URL下载升级文件(是否升级可由用户自行决定)。

(11) 设备接收到该消息之后,并根据消息中的URL地址获取升级文件,同时给予ACS服务器一个响应。

(12) ACS服务器发送空消息结束流程。

TR069协议簇的其他规范
TR069协议不仅仅包括TR-069子协议,还包括其他一些的协议,构成了一个完整的网管协议簇。与之配套的TR-098协议和TR-104协议分别定义了CPE的数据业务的管理参数和VoIP业务的管理参数,WT-135协议用于定义数字机顶盒的管理参数,TR-111协议定义了在家庭内部数字设备上实施TR069网管的机制,WT-121协议则是各个厂家在实现和部署TR069过程中对协议的修订。
 

TR069事件类型(EVENT CODE对应的含义)

0 BOOTSTAP指出由于CPE第一次安装或是ACS的URL改变而引起会话建立。
这种特殊的情况有:
1)出厂后CWMP端第一次与ACS连接;
2)出厂设置后,CWMP端第一次与ACS连接;
3)由于某种原因ACS的URL改变后CWMP端第一次与ACS连接。
注意,0 BOOTSTARP可能和其他事件代码一起组成事件代码组,例如,在出厂后CPE初始启动时,CPE发送0 BOOTSTARP和1 BOOT事件代码。

1 BOOT当给电或是复位时引起的会话建立,这包括初始系统启动或是由于其他原因的再启动,包括用M Reboot方法,但是不是从待机状态醒来。

2 PERIODIC在周期通知间隔时会话建立,用作心跳包时间。

3 SCHEDULED由于调用ScheduleInform 方法会话建立,这种事件必须只能用M ScheduleInform。

4 VALUE CHANGE指出从上次成功的Inform后,具有Passive和Active通知属性的一个或多个参数的值发生了改变,如果这个事件代码在事件组中,所有修改的参数必须被包含在Inform的参数列表中,如果这个事件被丢弃,那么这些修改的参数也应该同时被丢弃。

5 KICKED指出会话建立的目的是网页验证,并且Kicked方法会在这个会话中调用一次或多次。

6 CONNECTION REQUEST由于ACS(终端管理)发送了连接请求而使会话建立。

7 TRANSFER COMPLETE由于先前请求的下载或上传完成而引起会话建立,TransferComplete方法会在这个会话中调用一次或多次。这个事件代码必须用M Download,M ScheduleDownload,或者是M Upload etc。

8 DIAGNOSTICS COMPLETE当完成了一个或多个由ACS启动的诊断,CPE会用该事件码重新建立起一个连接。

9 REQUEST DOWNLOAD为了调用RequestDownload方法而发起的会话。

10 AUTONOMOUS TRANSFER COMPLETE当不是由ACS请求的上传或下载完成而引起的会话建立(成功或是不成功),Autonmous TransferComplete 方法会在这个会话中调用一次或多次。

11 DU STATE CHANGE COMPLETE为了表明先前请求的DU state改变完成而建立的会话,不管成功与否,DUStateChangeComplete方法会在这个会话中调用。这个方法必须用M ChangeDUState

12 AUTONMOUS DU STATE CHANGE COMPLETE会话建立是要通知ACS DU state改变完成了, 而这个改变不是由于调用ChangeDUState 方法的请求,DUStateChangeComplete方法会在这个会话中调用。

13 WAKE UP由于CPE从待机中苏醒而建立的会话。

开机注册

  1. 终端开机后,调用Inform方法,上报终端信息及参数,Event Code为“0 BOOTSTRAP”或者“1 BOOT”;
  2. 终端管理系统对终端进行认证,返回Inform Response;
  3. 终端发起一条空的Http Post请求;
  4. 如果终端认证失败,则直接走到第8步,返回空的HTTP响应,以使终端结束会话。如果认证成功,则需记录或更新终端信息。如果终端管理系统需要的参数在Inform的参数列表里没有,则终端管理系统可以下发GetParameterValues查询参数;
  5. (可选)终端返回GetParameterValuesResponse
  6. (可选)如果终端管理系统需要设置一些参数,则终端管理系统可以下发SetParameterValues设置参数;
  7. (可选)终端返回SetParameterValuesResponse
  8. 如果终端管理系统没有其他任务下发,则下发空的HTTP Response。
  9. 终端结束会话,断开连接。

Inform消息上报的参数列表

参数名称

是否必选

Device.DeviceInfo. HardwareVersion

M

Device.DeviceInfo. SoftwareVersion

M

Device.DeviceInfo.AdditionalHardwareVersion

O

Device.DeviceInfo.AdditionalSoftwareVersion

O

Device.DeviceInfo.ModelName

O

Device.DeviceInfo.Description

O

Device.DeviceInfo.FirstUseDate

M

Device.DeviceInfo.UpTime

M

Device.ManagementServer. ConnectionRequestURL

M

Device.TIME. NTPServer

M

Device.LAN. DNSServers

M

Device.LAN. AddressingType

M

Device.LAN. IPAddress

M

Device.LAN. MACAddress

M

Device.X_CMCC_OTV. STBInfo. STBID

M

Device.X_ CMCC_OTV. ServiceInfo.UserID

M

Device.X_ CMCC_OTV. ServiceInfo. PPPoEID

M

Device.X_ CMCC_OTV. ServiceInfo.AuthURL

M

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/98073.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

servlet初体验之环境搭建!!!

我们需要用到tomcat服务器,咩有下载的小伙伴看过来:如何正确下载tomcat???_明天更新的博客-CSDN博客 1. 创建普通的Java项目,并在项目中创建libs目录存放第三方的jar包。 建立普通项目 创建libs目录存放第三…

数据是如何存储在内存中的?听我慢慢道来

数据的存储 1. 前言2. 数据类型2.1 整形家族2.2 浮点数家族2.3 构造类型(自定义类型)2.4 指针类型2.5 空类型(无类型) 3. 整数在内存中的存储4. 大小端5. 浮点数在内存中的存储 1. 前言 大家好,我是努力学习游泳的鱼。…

软考:中级软件设计师:信息系统的安全属性,对称加密和非对称加密,信息摘要,数字签名技术,数字信封与PGP

软考:中级软件设计师:信息系统的安全属性 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准…

软考:中级软件设计师:数据库恢复与备份,故障与恢复,反规范化

软考:中级软件设计师:数据库恢复与备份 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备…

RunnerGo:轻量级、全栈式、易用性和高效性的测试工具

随着软件测试的重要性日益凸显,市场上的测试工具也日益丰富。RunnerGo作为一款基于Go语言研发的开源测试平台,以其轻量级、全栈式、易用性和高效性的特点,在测试工具市场中逐渐脱颖而出。 RunnerGo是一款轻量级的测试工具,使用Go…

关于Linux系统时间的问题

关于Linux系统时间的问题 当我们进行一些特定的业务需求时,需要修改当前Linux系统的系统时间。我们可以用以下命令进行修改时间。 data -s "2022-08-31 15:00:00"当我们将时间设置为某个时间点后,Linux系统的时间会出现一个问题:…

ELK安装、部署、调试(三)zookeeper安装,配置

1.准备 java安装,系统自带即可 2.下载zookeeper zookeeper.apache.org上可以下载 tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /usr/local mv apache-zookeeper-3.7.1-bin zookeeper 3.配置zookeeper mv zoo_sample.cfg zoo.cfg /usr/local/zookeeper/con…

您的账号已停用:Google谷歌账号被停用,如何解封?附最新保姆级教程

有个兄弟的谷歌账号最近被停用,或者说被封了。 以此为例,教下大家如何解封。 先来解释下账号为什么会被停用? 这里面可能有三种情况: 1、使用的代理节点频繁切换,或者你用的代理节点被过多人使用,其它人也可…

【牛客网题目】反转链表

目录 描述 解题分析 描述 给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。 数据范围: 0≤n≤1000 要求:空间复杂度O(1) &a…

【校招VIP】java语言考点之多线程NIO

考点介绍 多线程&NIO考点是校招面试中的常制点之一。 Java NIO是new IO的简称,是一种可以替代Java 10的一套新的IO机制。它提供了一套不同于Java标准1O的操作机制,严格来说,NIO与并发并无直接关系,但是使用NIO技术可以大大提高…

燃气管网监测系统,24小时守护燃气安全

随着社会的发展和人民生活水平的提高,燃气逐渐成为人们日常生活和工作中不可或缺的一部分。然而,近年来,屡屡发生的燃气爆炸问题,也让人们不禁对燃气的安全性产生了担忧。因此,建立一个高效、实时、准确的燃气管网监测…

PVE 8.0.4 配置记录

前言 七夕收到了媳妇送的礼物 Beelink SER 5 PRO (Ryzen 5700U), 记录打造成私人服务器的过程. 下载安装 Proxmox 8.0.4 https://www.proxmox.com/en/downloads 安装过程中修改磁盘设置: swap 分区设置为物理内存的 2 倍, 防止虚机太多内存不足 root 最大设置为 32 GB, 多了…

Win7系统电脑开机总出现硬盘自检的简单解决方法

你是不是经常会遇到电脑开机进行硬盘自检,而且每次开机都检查很久不能跳过;怎么才能跳过这一步骤呢?下面教大家如何让Win7系统电脑在开机的时候跳过硬盘自检这一步骤,加快开机时间。 解决步骤: 1、按下“Win R”快捷键…

Docker容器学习:搭建自己专属的LAMP环境

目录 编写Dockerfile 1.文件内容需求: 2.值得注意的是centos6官方源已下线,所以需要切换centos-vault源! 3.Dockerfile内容 4.进入到 lamp 开始构建镜像 推送镜像到私有仓库 1.把要上传的镜像打上合适的标签 2.登录harbor仓库 3.上传镜…

正中优配:A股早盘三大股指微涨 华为概念表现活跃

周三(8月30日),到上午收盘,三大股指团体收涨。其间上证指数涨0.06%,报3137.72点;深证成指和创业板指别离涨0.33%、0.12%;沪深两市合计成交额6423.91亿元,总体来看,两市个…

动态场景建图 Removert(offline) 和 DynamicFilter(online)前端部分对比

1.Removert 简单来说2020年的REMOVERT是针对动态环境下的建图进行优化的一篇很好的作品。 针对的主要问题:若是采用点云特征进行匹配的话,动态障碍物在预处理阶段也会被剔除。那么,另一个方面,动态障碍物对点云地图的构建的影响在…

数组——双指针法

双指针法 用两个同向或者反向的指针来代替两重循环。 提醒&#xff1a;不要老想着用同向双指针&#xff0c;有时候&#xff0c;相向双指针更容易解决问题。 LeetCode 27 class Solution {public int removeElement(int[] nums, int val) {int j0;for(int i0;i<nums.leng…

基于Java的代驾管理系统 springboot+vue,mysql数据库,前台用户、商户+后台管理员,有一万五千字报告,完美运行

基于Java的代驾管理系统 springbootvue&#xff0c;mysql数据库&#xff0c;前台用户、商户后台管理员&#xff0c;有一万五千字报告&#xff0c;完美运行。 系统完美实现用户下单叫车、商户接单、管理员管理系统&#xff0c;页面良好&#xff0c;系统流畅。 各角色功能&#x…

Java实现根据商品ID获取京东商品详情数据,1688商品详情接口,1688API接口封装方法

要通过京东的API获取商品详情数据&#xff0c;您可以使用京东开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例&#xff0c;展示如何通过京东开放平台API获取商品详情&#xff1a; 首先&#xff0c;确保您已注册成为京东开放平台的开发者&#xff0c;并创建一…

【安全】原型链污染 - Hackit2018

目录 准备工作 解题 代码审计 Payload 准备工作 将这道题所需依赖模块都安装好后 运行一下&#xff0c;然后可以试着访问一下&#xff0c;报错是因为里面没内容而已&#xff0c;不影响,准备工作就做好了 解题 代码审计 const express require(express) var hbs require…