也称为CWMP,是在Internet网上通过wan口控制通信终端设备的协议。其协议流程如下图所示:

具体网上有很多资料。其主要的两个内容是:HTTP Client模型、DATA模型。

 

    HTTP Client模型是精华,也是比较复杂的。目前较为可靠的开源库有libevent,网上有基于该开源库编写的Client模型,名字好像叫evcpe。在公司用的这套代码,我只是大概学习了下,很复杂。

    上图所示的是协议的一个完整的session,该session由终端设备发起,且不停地重复循环该session。当然,若ACS端没有指令(或终端没有更新等),那么session到Inform后就会终止。然后等待开始下一个session。

终端设备主动发起协议session的方法有以下几种:(以下client即终端设备)

  1. client周期性的主动发起,即一个周期发起一次session;
  2. client端的参数有更新(如LAN端配置、手动配置等),会主动发起session;
  3. client在另一个端口上维护一个creq监听,当ACS端要求配置时,回向client的creq端口发请求,然后client被动发起session。
  4. 。。。。。。或者还有其他的吧。。。。。。

把这些方法揉和在一起,实现起来时很复杂的,那套event的代码,我最终也没能全看明白,以后有机会再看吧。从测试的结果看,好像有这几种方法,不过也可能不对,姑且这样认为。

 

DATA模型也是很重要的,大部分参数模型由TR098协议规定好了,只要照样子做就行。要做的工作主要两个方面:

  1. 在终端本地,用一种方式来表示数据,与ACS端的数据对应。这里我们用的是xml文件,按照tr098把参数写在xml文件中,方便参看。系统启动后,读取该xml文件,并在内核中建立一个庞大的类似于数组的结构存储这些参数。并且在该数组结构和xml文件间实现一种类似文件系统中的磁盘更新的机制。
  2. 是各种get/set作用到实际的系统中去。这里要根据各平台的特性来做了。

 

要讲的也很少,有时间还是去看看那个代码,应该是很有价值的。

TR069协议小结的更多相关文章

  1. 转:oracle ebs po模块一揽子采购协议小结

    转自:http://yedward.net/?id=193 oracle ebs po模块一揽子采购协议小结 本文总结oracle ebs采购订单(po)模块一揽子采购协议的相关知识,总结如下: 1. ...

  2. TR069协议向导——一个帮助你了解TR069协议的简明教程(一)

    您也能够到下面地址下载: http://download.csdn.net/source/993034 1.为什么须要TR069    随着VoIP.IPTV等越来越多IP终端设备的普及(尤其在家庭中 ...

  3. KERMIT,XMODEM,YMODEM,ZMODEM传输协议小结(转)

    源:KERMIT,XMODEM,YMODEM,ZMODEM传输协议小结 Kermit协议 报文格式: 1.MARK,起始标记START_CHAR,为 0x01(CTRIL-A): 2.LEN,报文剩余 ...

  4. HTTP协议小结

    HTTP/0.9已过时.只接受GET一种请求方法,没有在通讯中指定版本号,且不支持请求头.由于该版本不支持POST方法,因此客户端无法向服务器传递太多信息. HTTP/1.0 这是第一个在通讯中指定版 ...

  5. TCP&UDP协议小结

    TCP和UDP 传输层功能 网络安全 Tcp可靠性 Tcp流控 Tcp拥塞控制 Tcp运输连接管理 一个网页可能很大,一个数据包传不过来,就需要分段传输. 网络可能拥塞,某段可能丢失.那必须有人监管, ...

  6. Oracle PO - 模块一揽子采购协议小结

    本文总结oracle ebs采购订单(po)模块一揽子采购协议的相关知识,总结如下: 1.理论介绍 (1)名词术语 一揽子采购协议(Blanket Purchase Agreement,BPA)是指某 ...

  7. ISO 7810 协议小结

    ISO 7816规定了Smart Card的传输协议分为 T=0 异步半双工字符传输协议 T=1 异步半双工块传输协议 T=0命令介绍 命令总是由接口设备启动,他以一个5字节的报头通知卡要做什么,然后 ...

  8. 《SDN核心技术剖析和实战指南》2.3 OF-CONFIG配置管理协议小结

    OpenFlow协议定义了交换机和控制器交换数据的方式和规范,但并没有定义如何配置和管理必需的网络参数和网络资源,OF-CONFIG的提出就是为了对OpenFlow提供配置管理支持.如下图所示,OF- ...

  9. KERMIT,XMODEM,YMODEM,ZMODEM传输协议小结

    转:http://blog.163.com/czblaze_3333/blog/static/208996228201272295236713/ Kermit协议 报文格式: 1.       MAR ...

随机推荐

  1. 微信小程序 跳一跳 外挂 C# winform源码

    昨天微信更新了,出现了一个小游戏“跳一跳”,玩了一下 赶紧还蛮有意思的 但纯粹是拼手感的,玩了好久,终于搞了个135分拿了个第一名,没想到过一会就被朋友刷下去了,最高的也就200来分把,于是就想着要是 ...

  2. day7面向对象--反射

    反射 通过字符串映射或修改程序运行时的状态.属性.方法, 有以下4个方法     1.getattr(object, name[, default]) -> value Get a named ...

  3. 程序设计实习MOOC / 程序设计与算法(二)第二周测验(2018春季)

    递归算法: 1:全排列 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列. 我们假设对于小写字母有'a' < ' ...

  4. 【LOJ】#2059. 「TJOI / HEOI2016」字符串

    题解 我们冷静一下,先画一棵后缀树 然后发现我们要给c和d这一段区间在[a,b]这一段开头的串里找lcp 而lcp呢,就是c点的祖先的到根的一段,假如这个祖先的子树里有[a,b - dis[u] + ...

  5. 【Java】 参数的传递:值传递与引用传递讨论

    内容稍多,可直接看第4点的讨论结果 前言 在涉及到传递参数给方法时,容易出现一些参数传递错误的问题,这就涉及到了参数的传递问题,必须搞清楚:参数是如何传递到方法中的?一般来说,参数的传递可以分为两种: ...

  6. Spring Boot 教程demo

    https://github.com/ityouknow/spring-boot-examples

  7. ECSHOP的JS文件代入问题

    参考一下默认的js写法就行了<script type='text/javascript' src='themes/ecmoban/js/jquery-1.7.2.min.js'></ ...

  8. CSUOJ 1341 String and Arrays

    Description 有一个N*N的字符矩阵,从上到下依次记为第1行,第2行,--,第N行,从左至右依次记为第1列,第2列,--,第N列.    对于这个矩阵会进行一系列操作,但这些操作只有两类:  ...

  9. In 和Exists

    1.exist,not exist一般都是与子查询一起使用. In可以与子查询一起使用,也可以直接in (a,b.....) 2.exist会针对子查询的表使用索引. not exist会对主子查询都 ...

  10. 使用IIS实现反向代理

    IIS的反向代理是通过ARR模块来完成的,ARR模块需要另外安装,而且只能通过Web PlatForm Installer安装.关于安装来源与步骤,帖子已有很多,不做描述.启用“Application ...