发布时间:2023-09-25 11:52:08
导语:想要提升您的写作水平,创作出令人难忘的文章?我们精心为您整理的5篇网络协议规范范例,将为您的写作提供有力的支持和灵感!
中图分类号: TP393 文献标志码:A
0引言
在网络安全中,很多基于协议的安全技术都以协议规范说明为基础比如为了提高防御粒度,新一代的防火墙[1]和入侵检测系统[2]利用协议规范进行深度包检测和状态行为检测,从而能高效、精确地识别出恶意传输;高交互型蜜罐系统[3]基于协议规范可以生成各种脚本以监听各种远程请求,实现多种服务的仿真
但是很多网络私有协议没有公开自己的规范说明,比如MicroSoft的网络文件共享SMB(Server Message Block)协议[4]、Oracle数据库访问的TNS协议[5]、各种IPTV和及时通信软件使用的协议[6]等另外,即使对于公开规范的协议,不同厂商在软件的具体实现时并没有严格按照规范说明去设计,因此越来越多的研究人员通过协议逆向的方法自动获取协议规范说明,以支撑其他网络安全技术的实施
协议规范定义了协议报文的格式和协议状态机[7]:前者规范了协议报文由哪些字段组成,每个字段的位置、类型和取值含义等[8];后者规定了协议报文的时序关系,体现出协议的行为逻辑目前大多研究集中于反向推断协议的格式,较少研究协议状态机的逆向事实上,逆向出协议状态机可以描述一个协议的行为,帮助理解协议的行为逻辑,进一步应用到入侵检测或蜜罐系统中,因此本文对协议状态机逆向方法进行研究
1相关研究
目前关于协议状态机逆向的研究分为两类[9]一类是指令级的分析方法这种方法需要在指令级监控协议实体对报文的解析过程,实现起来比较复杂,在实际应用中很难获得对协议实体的控制权,加之很多软件为了防止其代码被逆向,加强了软件的模糊性另一类网流级的分析方法是以嗅探得到的网络数据流为分析对象,它的可行性在于同一报文格式对应的多个报文样本具有相似性,会话内报文的时序关系体现了协议状态转换的信息由于实现起来简单,因此近年来很多研究者开始研究基于网流级的状态机逆向方法
2007年,Shevertalov等[10]提出协议状态机逆向的工具PEXT,将协议的运行过程划分为多个阶段(子会话),每个子会话完成不同的功能,被定义成一个状态PEXT以最长公共子序列长度为相似度指标,对报文样本进行聚类,将协议流转化成一系列的聚类ID,在协议流之间提取相同的聚类ID序列标注成一个协议的状态,根据状态转换序列生成状态机,通过合并算法得到涵盖所有协议会话实例的最小确定状态机
2009年,Trifilo等[11]将会话中的每条报文(包括不同的方向)定义为一个状态,认为协议报文中通常存在一些报文状态域标志了当前的状态逻辑,通过分析二进制协议报文中各字节的变化分布来识别状态域并构建状态机;并考虑通过检测状态的前一状态和随后的状态来区分由同一特征值表示的不等状态,避免构建出的状态机产生错误的报文序列
2011年,Wang等[12]提出了协议的概率状态机(Probabilistic Protocol State Machine,PPSM)模型构建单方向网流的状态机PPSM首先利用统计学的方法找到网流中最频繁的字符串;而后利用围绕中心点的划分(Partitioning Around Medoids,PAM)聚类方法获取协议的状态关键字,根据关键字为每一个数据包分配状态类型;最后以概率的形式描述状态之间的转换,构建概率协议状态机
2009年,Comparetti等[13]综合利用网流级和指令级的信息提出了完整的协议逆向方案Prospex,为客户端的输出报文逆向状态机,旨在识别表示相似应用情景的状态首先利用指令执行序列分析技术,抽取每个报文的格式,继而结合格式特征和执行特征对报文进行聚类,抽取更普遍的报文格式,识别会话中的每个报文类型;然后构建增广前缀树(Augmented Prefix Tree Acceptor,APTA)接受网络会话中的所有报文类型序列,继而从观察到的会话中抽取报文类型之间的顺序特征,以正则表达式表示,称为先决条件;接着对APTA的每个状态用那个状态允许输入的报文类型集合进行标注,表示其符合先决条件的可接受的报文类型集;最后使用Exbar算法将APTA最小化
以上依据网流级状态机逆向的方法有以下不足:Trifilo等[11]的方法依赖于各种报文类型字段在报文格式的同字节偏移位置上出现,不适于报文类型字段的字节位置不固定的文本协议;Wang等[12]的方法适于文本协议,但是只依据频繁字符串标识报文状态,没有区分字符串之间的层次,无法准确提取出报文的语义字段
另外,目前构建状态机的方法都是先构建一棵状态前缀树,再利用启发式方法进行状态机的合并和简化,这会导致初始构建的状态机过于庞大,并且在状态机简化过程中容易导致路径的错误合并,无法准确地描述报文类型之间的时序关系
为解决以上问题,本文依据网络流的分析提出一种面向文本类协议的状态机逆向方法首先利用语义关键字的分布特征和偏移属性提取语义关键字,识别出会话中的报文类型;然后利用有向图的邻接矩阵描述报文类型之间的时序关系,进行状态标注;最后实现协议状态机的逆向,体现协议行为逻辑其流程如图1所示
2状态机逆向方法
2.1语义关键字提取方法
定义1语义关键字报文中表示报文类型的字段称为语义关键字
为了识别文本语义关键字,第一步使用处理文本协议的通用方法,将连续可打印ASCII码(不少于3字节)标记成一个文本块,根据分隔符将文本块划分为一系列的文本token;然后利用启发式规则过滤掉特征明显的参数,包括IP地址、版本号、URL等[14],过滤后的文本token作为候选语义关键字,并记录它在原文本token序列中的位置第二步通过考察关键字在会话集中的分布特征,来识别常用语义关键字第三步发现关键字在报文中的偏移特征,一方面作为第二步语义关键字识别规则的补充,另一方面提高报文类型的识别速度
2.1.1语义关键字的会话分布特征
语义关键字的分布特征指的是语义关键字通常频繁地出现在会话中,而不是出现在会话的每个报文中本文综合关键字在会话中的频数和报文的频数来刻画语义关键字的分布特征,定义两个识别规则,同时满足两种识别规则的文本token即为语义关键字
2.1.2语义关键字的报文偏移特征
上述识别规则容易忽略很少出现在网流中的语义关键字,由于文本协议有一定的格式规范,语义关键字往往出现在报文的固定位置上,因此本文进一步发现语义关键字的偏移属性,并基于偏移属性对2.1.1节的识别规则进行修正
本文通过发现语义关键字的报文偏移特征,一方面对2.1.1节的识别规则进行修正,补充进出现频率较少的语义关键字;另外,基于语义关键字的偏移特征可以进行语义关键字的迅速定位,实现报文类型的快速识别,将协议的每个会话转化成报文类型序列
2.2状态标注
定义3协议状态是协议的一个逻辑概念,特定状态下协议实体可以接受特定事件和执行相应动作
由于服务器发送的报文多是一些表示服务器服务能力的命令码,无法反映协议的行为逻辑,因此本文同先前的工作一样,从客户端发送的报文类型序列中构建状态机
不同的报文类型可能会引起状态的转换,因此通常利用状态转换图表现报文类型之间的时序关系,描述协议的行为逻辑先前的文献首先构建状态前缀树,接受所有的报文类型序列再进行状态的合并和化简,导致初始构建的状态前缀树过于庞大,且需要大量的比较操作而本文利用邻接矩阵描述报文类型之间的关系,基于报文类型之间的关系对状态进行标注,可以省去状态前缀树的构造,直接构建状态转换图
主要思路是首先将具有强顺序约束的报文类型序列标注为一个状态,然后找到会话的必经报文类型序列,每个必经报文类型序列标注为一个状态,最后基于报文类型之间的弱顺序约束对两两必经报文类型中间的可选报文类型集进行状态标注
2.2.1构造邻接矩阵
2.2.3基于会话必经路径的状态标注
定义6会话必经路径是指所有会话必须出现的报文类型序列,这些报文类型之间有严格的顺序关系
本文首先引入形式概念的表示方法表示报文类型与会话的隶属关系,然后利用这种隶属关系和有向图的最短路径设计会话必经路径搜索算法,找到会话开始和结束之间的必经路径,将必经路径中的每个报文类型标识成一个状态转换
2.3状态转换图的构建
利用2.2节的状态标注方法对报文类型引起的状态转换进行状态标注,构造协议的状态转换图首先将具有强顺序约束关系的报文类型序列定义为一个状态转换;然后依据2.2.3节得到会话必经报文类型画出基本的状态转换图;最后依据2.2.4节方法将具有等价关系的报文类型定义成一个状态转换,构造出完成的状态转换图
3实验验证分析
本文在Windows XP环境下利用Python2.7编写代码实现状态机逆向的方法,为了对本文的方法进行验证,选取广泛应用于网络中的两种文本类协议SMTP和FTP进行状态机逆向通过在Windows XP下利用WebMail搭建SMTP服务器,利用ServU搭建FTP服务器,获取训练数据,然后将某校园网的真实网络流量作为测试数据
由于基于网络轨迹的协议逆向一个普遍存在的缺陷是无法学习到训练集中未出现的行为,因此本文要求训练集覆盖每个协议的主要功能,使得逆向出的状态机能够反映协议的主要行为逻辑
3.1关键字提取
3.2状态机逆向
本文利用在入侵检测和信息检索中广泛使用的两个评估指标——召回率和准确率对逆向的状态机的质量进行评估
3.2.1召回率
为了测试召回率,本文利用真实网络流量,对状态机的召回率进行评估真实网络流量的SMTP会话数为855,FTP会话数为642
图2为利用不同大小的SMTP协议训练集训练出的状态机的召回率实验结果表明训练集的SMTP报文个数达到300时,召回率稳定在94.1%,即逆向出的SMTP状态机可以接受803个FTP会话,余下的52个会话使用了SSL加密传输,没有被状态机识别出来图3为SMTP训练集的报文个数达到200时逆向出的状态机,由于SMTP第一条报文有两种报文类型,HELO和EHLO,图3显示的是第一种报文类型开头的状态机
图4为利用不同大小的FTP协议训练集训练出的状态机的召回率实验结果表明训练集的FTP报文个数达到2000条时,召回率稳定在91.7%,即逆向出的FTP状态机可以接受589个FTP会话,在余下的53个会话中,有12个会话出现了训练集中未出现的命令,另外41个会话使用了SSL加密传输图5为FTP训练集的报文个数达到1500条时逆向出的FTP状态机
3.2.2准确率
状态机的准确率用来衡量状态机的可靠性,表示被状态机接受的会话中,有多少个会话是符合协议规范的,令M表示被状态机接受的会话数,CP表示符合协议规范的会话数,则
为了测试准确率,本文对测试集中的会话以0.1的概率进行随机修改,创建不符合协议规范的会话,包括关键报文丢失和报文之间的乱序通过这种方式,在己经被SMTP协议状态机接受的786个SMTP协议会话中,创建无效会话78个在已经被FTP协议状态机接受的489个FTP协议会话中,创建无效会话64个
对于修改后的会话集,SMTP状态机接受SMTP会话为708个,未被接受的会话均是无效会话;而FTP状态机接受FTP会话为473个经检查发现,由于程序对FTP会话进行随机修改,而FTP规范中的很多报文类型是不需要严格顺序的,随机修改后的会话很多仍然是符合协议规范的,经人工过滤掉这些有效会话后,其状态机的准确率达到了100%
4结语
现有逆向协议状态机的方法需要根据协议会话中的报文类型顺序构建初始状态前缀树,这会出现大量的冗余状态本文利用邻接矩阵描述报文类型之间的时序关系,基于时序关系进行协议状态的标注,构建出协议的状态转换图,并对文本类协议进行了实验验证结果表明,该方法可以正确地描述出报文类型的时序关系,抽象出准确的协议状态机模型下一步,本文准备对二进制类的协议进行逆向实验,以验证本文方法的有效性
参考文献:
[1]KRUEGER T, KRMER N, RIECK K. ASAP: automatic semanticsaware analysis of network payloads [C]// Proceedings of the 2011 International ECML/PKDD Conference on Privacy and Security Issues in Data Mining and Machine Learning, LNCS 6549. Berlin: SpringerVerlag, 2011: 50-63.
[2]郝耀辉,郭渊博,刘伟.基于有限自动机的密码协议入侵检测方法[J].计算机应用研究,2008,25(1):230-234.
[3]KRUEGER T, GASCON H, KRMER N, et al. Learning stateful models for network honeypots [C]// AISec 12: Proceedings of the 5th ACM Workshop on Security and Artificial Intelligence. New York: ACM, 2012: 37-48.
[4]How samba was written [EB/OL]. [2013-01-16]. http:///ftp/tridge/misc/french_cafe.txt.
[5]李伟明,张爱芳,刘建财,等.网络协议的自动化模糊测试漏洞挖掘方法[J].计算机学报,2011,34(2):242 -255.
[6]ANTUNES J, NENVES N, VERSSIMO P. Reverse engineering of protocols from network traces [C]// Proceedings of the 18th Working Conference on Reverse Engineering. Piscataway: IEEE, 2011:169-178.
[7]田园,李建斌,张振.一种逆向分析协议状态机模型的有效方法[J].计算机工程与应用,2011,47(19):63-67.
[8]黎敏, 余顺争.抗噪的未知应用层协议报文格式最佳分段方法[J].软件学报,2013,24(3):604-617.
[9]潘璠,吴礼发,杜有翔.协议逆向工程研究进展[J].计算机应用研究,2011,28(8):2801-2806.
[10]SHEVERTALOV M, MANCORIDIS S. A reverse engineering tool for extracting protocols of networked applications [C]// WCRE 2007: Proceedings of the 14th Working Conference on Reverse Engineering. Piscataway: IEEE, 2007: 229-238.
[11]TRIFILIO A, BURSCHKA S, BIERSACK E. Traffic to protocol reverse engineering[C]// CISDA 2009: Proceedings of the 2009 IEEE Symposium on Computational Intelligence for Security and Defense Applications. Piscataway: IEEE, 2009: 1-8.
1.引言
入侵检测就是对计算机网络和计算机系统的关键结点的信息进行收集分析,检测其中是否有违反安全策略的事件发生或攻击迹象,并通知系统安全管理员。随着宽带网络的应用,传统的网络入侵检测系统显得力不从心。本文的作者试图在Linux环境下设计一个比较有效的基于宽带网的入侵检测系统。
2.BNIDS的系统结构
BNIDS(Broad Network-based Intrusion Detection System),即基于宽带网的入侵检测系统,是为带宽在1G以上的网络设计的。传统的网络入侵检测系统一般应用在带宽不超过100M的网络上,对于超过100M的网络,漏报率高,实时性差,甚至无能为力。因此,BNIDS很好地适应了网络带宽的发展。
BNIDS框架由数据采集整理agent、数据检测agent、监控agent和响应agent组成。这些agent可以分布在不同的机器上,甚至不同的网络上。整个系统采用集中一分布式的控制结构,部件之间相互独立,以通过消息相互防作,完成对分布式攻击的检测和处理。BNIDS的结构如图1所示。
图1 BNIDS的结构
①数据采集整理agent
数据采集整理agent,具有智能负载均衡功能,可以放置在要检测的主干网的网段上,用来收集网络上的数据包,并对来自网络的数据包进行数据分流以及约简等预处理。数据采集整理agent采用了零拷贝技术,数据报从网络设备到数据采集整理agent空间传递的过程中,减少数据拷贝次数,减少系统调用,实现CPU的零参与,彻底消除CPU在这方面的负载。
②检测agent
检测agent是执行入侵检测功能的部件,可以独立运行。但通常在监控agent的管理下运行,它可以采用任何入侵检测技术。通常,对来自主机的数据采用专家系统检测技术,对来自网络的数据采用防议分析和模式匹配相结合的检测技术。检测agent实时检测来自于数据采集整理agent处理过的数据,对其进行监视、统计、分析,发现可疑行为,对于自己可以确定为攻击的行为作出处理,进行记录并作为各地区信息报告给监控agent,自己无法确定性质的异常行为,则转化推诱上,进行记录,并及时与其它监控agent联系,交流信息。
③监控agent
监控agent是整个系统的控制决策中心。安全管理员通过它来配置系统的安全策略、设定运行参数、更新模式库、观察系统的运行、监督系统的安全状态。当安全策略改变,监控agent就请求检测agent和响应agent改变其安全策略。它还接收各的事件和告警消息,并将这些信息进行综合,根据安全策略要求,通知响应agent采取必要措施。
④响应agent
响应agent将受保护网络和外部网络分离并对入侵行为进行制止和反击,对入侵事件进行日记或发邮件给管理员,是防火墙技术和响应技术综合的部件。它可以独立运行,也可以接受监控agent发来的响应命令和改变配置的消息,执行必要操作,如改变安全策略、对攻击行为进行反击等。
3.BNIDS的工作流程
BNIDS的工作流程如下图所示。
图2 BNIDS的工作流程
BNIDS可运用在超过1G的网络上,应用范围是传统入侵检测系统无法比拟的。BNIDS采用了协议分析和模式匹配相结合的检测技术,误报率大大降低;采用了数据分流和数据约简技术,漏报率几乎为零,做到了实时性。BNIDS的设计采用了很多复杂技术,实现BNIDS需要较高的软硬件条件。下面研究利用协议分析的入侵检测技术设计并实现的基于TCP/IP协议分析的网络入侵检测系统(TcpIDS)。BNIDS和TcpIDS都运用了协议分析的入侵检测技术,但两者的应用场合不一样,BNIDS适用于带宽在1G以上的主干网络,而TcpIDS适用于带宽在不超过100M的网络。
4.TcpIDS的设计与实现
本论文采用高速包捕获、协议议分析与模式匹配相结合的方法检测攻击,设计并实现了一个协议分析与模式匹配相结合的网络入侵检测系统TcpIDS,实现对攻击的实时检测,并可识别出违反协议规范的、可能是新的未知攻击的可疑活动。
TcpIDSs的工作原理是:在一个共享网段上捕获、分析原始的IP数据包,根据协议规范对数据包进行解码、组合,形成各种协议的分组结构;对各种协议的分组结构进行分析,判别数据包是否合理,并从中分解出特征信息;将分解出来的特征与攻击特征库中的特征进行模式匹配,以发现可疑的攻击;对无效、违反协议规范及带有攻击性的数据包进行实时地记录和报警。
TcpIDS是一个在Linux9.0系统下运行的基于协议分析与模式匹配相结合的网络入侵检测系统,它的主要功能是网络监视、数据包的记录、检测违反协议规范的数据包和攻击行为。从功能实现的角度将该系统划分为以下五个模块:数据收集模块、数据分析模块、入侵检测模块、响应模块和数据存储及日志模块,符合CIDF的规范。
数据收集模块一该模块完成系统所需要数据的收集工作,根据所要检测的对象,设置网络包截取,并把数据传送到数据分析模块。由于数据量大,该模块还应具有数据过滤、数据分类、数据简化等预处理功能。该模块是TcpIDS系统的最底层部分,是TcpIDS实现的基础,其中最关键的是要保证高速和很低的丢包率,而且它对于保证整个入侵检测系统的效率和可移植性是至关重要的。数据收集部分还需做的一项工作就是将网片置于混杂模式,这样可以监听到整个网段的数据。
数据分析模块一通过对网络协议进行分析,判断数据包的协议类型,以便使用相应的数据分析程序来检测数据包,检测出违反协议标准的或不应该在网络中出现的数据包,对可能的攻击特征,将其交给入侵检测模块进行进一步的检测。在数据分析的过程中,首先对数据包进行协议分析、过滤,根据协议、端口等信息将数据包送到不同的检测流程(如只有HTTP协议的包才进行CGI检查),这样可以使检查的过程尽量缩短,提高程序的工作效率。
入侵检测模块一通过对网络包特征及已知攻击进行分析,检测网络入侵。该模块完成具体的检测任务,也是入侵检测系统的核心部分。该模块使用了快速的模式匹配算法,将所有已知的攻击方法表示为模式信号存放在攻击特征库中。从网络活动 中寻找预先定义的攻击模式,一旦发现当前数据和攻击特征库中的某种特征相匹配,就认为检测出了攻击,即将此事件提交给“响应模块”。检测过程中还涉及到攻击特征表示技术及特征知识库的建立与维护。
响应模块一根据“检测模块”提交的事件种类,根据预先定义的响应行为执行相应的反应动作。目前实现了对非法操作行为提出警告,并显示出来。数据存储及日志模块一日志数据及检测结果需要长久地保存,以便查询和分析,
该模块应具有数据的存储、分析功能(如:总结、归类、查询和统计分析等)。
TcpIDS系统的数据流程图如图3所示。
图3 TcpIDS系统的数据流程图
5.结束语
基于宽带网的入侵检测技术还是一个较新的研究领域,它的研究不但对入侵检测技术自身的发展和应用起到有意义的丰富和推动作用,也能为入侵检测系统的研究、开发提出宝贵经验,促进入侵检测技术的发展和应用。同时,对我国跟踪国际入侵检测系统先进技术具有重要的意义。
传感器和控制网络不能增进人们的交流,取而代之的是,它们允许传感器和操作者交互,创建一个更加动态的世界,从而避免人为的错误并降低人力成本。
超低功耗无线传感器网络可以为很多应用带来好处。这包括监视温度、振动、湿度、位置、液位高度等,在工厂中,可以将它们连接到HAVC系统、存储系统、机器人系统,或温度控制系统等的控制和执行机构。
这样的例子很多。对于农业应用,可以通过无线传感器网络采集温度传感器和土壤湿度传感器的信息来监视农田、葡萄园、温室,并自动调整灌溉和施肥。
对于许多现实应用,低功耗无线传感网络具有许多优点,包括无须使用线缆、增加了在空间受限或危险区域应用的灵活性、易于安装、增加了安全性,而且降低了维护成本。然而,无线传感器的发展完全依赖工业标准开发的进度。
工业标准促进了无线应用的发展
无线通信在工业标准的推进下得到了很大的发展。标准为OEM和集成商提供了选择的灵活性,允许不同供应商的设备可以互操作,这在所有应用中是最重要的。
与大多数无线网络相比,传感器网络的需求是截然不同的,功率消耗指标就是最明显的差别。对于无线传感器网络收发器,事实上的标准是IEEE 802.15.4规范(ZigBee和其他版本)。许多供应商已经开始提供基于802.15.4协议的收发器芯片。有些芯片是标准协议的简化,而有些则提供了针对特殊应用的附加特征。例如,GreenPeak公司的GP500收发器就包含了许多低功耗的特性,可以用于钮扣电池供电和自收集能量供电的应用。
也有一些厂商提供采用蓝牙和Wi-Fi技术的传感器网络应用,IEEE 802.15.4和蓝牙技术的比较如表1所示。它们都采用非标准的形式,利用IEEE802.15.4协议在本国实现。IEEE 802.15.4协议规范提供最基本的低功耗无线传感器网路应用是被广泛接受的。
ZigBee联盟的推动
ZigBee联盟是一个由技术提供者和OEM产品公司组成的独立标准化组织。在2007年底,该联盟为ZigBee和ZigBeePRO网络协议规范定稿。
从使用的角度出发,ZigBee网络协议栈是非常适合家庭应用的,家庭网络通常包括10个,或多到100个设备。ZigBee PRO网络协议栈是ZigBee的超集,它增加了网络容量和很好处理与其他无线技术冲突的能力特征。ZigBeePRO的特征使它非常适合大型应用,特别是在商业建筑中的应用。
ZigBee PRO的另一个特征就是需要更大的存储器空间,这使它的成本更高。在对成本极其敏感的消费电子市场,每一点额外增加的成本都限制了采用这项技术的可能性。然而,得益于半导体成本的日益降低,可以预测,在短期内ZigBee和ZigBee PRO之间的成本差异将可以被忽略,并且更多的应用将采用ZigBee PRO。
ISA-100和无线HART标准
ISA-100和无线HART是两个工业自动化无线标准。ISA-100是由仪器、系统和自动化协会(ISA)发起的,该组织是一个针对工业自动化的非盈利技术协会。无线HART不是完整的工业传感器协议,它是一个对老式但却很流行的、用于工业自动化的HART工业有线总线标准的补充。由于ISA-100和无线HART基本上解决了同样的问题,目前正在检验是否可以合并这两种标准。上述几种低功耗无线协议的比较如表2所示。
私有无线通信技术
除了IEEE 802.15.4标准外,也有许多技术可以用来实现私有的收发器。其主要目的是降低复杂性和减小潜在的成本。
私有技术可以比标准技术开发得更快,因为不需要在不同公司之间取得一致。也应该看到如果私有解决方案会达到足够的产量,同样会降低成本。降低复杂性有时可能会牺牲性能,限制它的应用范围。
近期进展
一、引言
直放站作为一种中继产品,不仅可以在不增加基站数量的前提下保证网络覆盖,而且具有结构简单、投资较少和安装方便等优点,可广泛用于移动信号难于覆盖的盲区和弱区,是实现“小容量、大覆盖”目标的一种优选方案。对直放站设备进行远程监控,可以实时获取设备的各种工作参数,并根据实际需要进行调整,如遇设备故障,可在第一时间内获知并及时派人进行维护,这对于提高设备维护效率和质量,确保设备长期、稳定运行具有重要意义。目前,由于直放站设备厂家各自为政,没有一个统一、合理的监控通信协议,因此直放站市场也出现了一些问题[1]:
(1)各地运营商基本同时使用着多个不同设备厂家的直放站及室内覆盖设备,但不同厂家的监控项目功能和设备的监控通信协议各不相同,给运营商的直放站设备统一管理工作带来了很大不便。
(2)监控系统应该具有稳定性、可靠性、扩展性、前瞻性等技术能力,可是目前已有的多种通信协议和监控系统已不能满足监控功能扩充、协议扩充、多种类型设备兼容的需求。
(3)考虑到未来4G直放站室内覆盖设备的特点及未来新增设备兼容性的需要,制定一套高标准的统一监控技术规范以及建立一个统一的、有前瞻性的直放站覆盖设备监控平台已势在必行。
二、直放站监控系统原理
直放站监控系统一般由监控单元、通信信道和监控中心三部分组成。监控单元是安装在直放站设备内部的监控电路,它的主要功能包括设备上电初始化与自检,本地信号的采集、控制和处理,与监控中心数据交换等。通信信道完成监控单元与监控中心的物理连接。监控中心的主要职能是对众多厂家提供的多类型、多数量的直放站进行“集中控制,统一监管”。监控中心对直放站的操作主要包括参数设置、数据查询、告警处理三种主业务;直放站作为被监管对象,在被动应答来自监控中心的命令外还必须将当前故障信息以告警命令的形式主动上报给监控中心。监控中心和直放站的通信方式可以是RS232串口直连、有线MODEM拨号和CDMA短信方式、TCP、UDP等。不管采用什么通信方式,直放站统一监控协议只是作为应用层协议[2],与具体的传输介质、传输手段无关[2]。直放站监控系统基本组成如下图所示:
三、 直放站的监控现状
由于种种原因,直放站的监控一直没有国际标准化组织的统一规范,也无实际的行业使用规范。近年来,国内外设备厂家大多根据各自的理解和需求,逐步开发了一些直放站监控设备,但数百种产品的监控协议不统一、功能不健全、系统不开放,远不能满足电信级监控需求,运营商几乎无法开展有效的直放站的网络监控和运行管理。所以一直以来直放站设备故障通常都是被动发现,如用户投诉或巡检等, 因此反应速度慢,工作效率低,严重影响了网络质量和网络服务。
近年来出现了一些直放站的监控协议,并开展了产品化工作,但这些通信协议由于有先天的缺陷,如各厂家对运营商统一协议理解有歧义、而且对应用层协议格式也不统一。另外还由于厂家设备实现的差异性,即使有统一监控协议封装信息,也不能够完全保证一家对其它厂家设备管理的透彻性和高效性,为此,并没有真正形成电信级的直放站与分布系统的监控功能[3]。
四、 当前主流通信监控协议
在早期建设过程中,各厂家对直放站监控系统采用的是不同的通信协议,各厂家之间难以实现互联互通,这对建立统一监控系统带来了诸多不便,同时对设备监控性能考核也缺少统一的评判依据。
为此,中国联通在CDMA 直放站建设不久就开始关注这一问题并着手寻找解决方案,经过近一年的研讨论证与反复修改,于2002 年底推出了《中国联通CDMA 直放站统一监控管理协议规范》。此标准的颁布执行对规范直放站市场和监控性能的提高具有极其重要的意义,逐渐成为直放站监控领域的技术规范,并逐渐成为各网络运营商制定直放站协议标准的重要参考。在CDMA 统一协议成功应用的同时,统一监控的需求也日益提高,GSM 设备的接入和管理相比之下显得较为混乱,各省分公司和设备供应商都急盼早日制定GSM直放站统一监控协议。为此,并于2004年初正式颁布了《中国联通GSM 直放站综合网络监控管理协议规范》,该标准的颁布为统一监控的实现提供了进一步的便利。中国联通推出的相关监控协议规范也成了当时众多直放站厂家的厂家协议模板。
在中国联通CDMA、GSM协议标准相继形成的同时,另一大运营商中国移动也于2005年7月颁布了中国移动直放站设备监控接口技术规范1.0.0,并在全国推行,各直放站厂家也纷纷依据此规范进行通信协议的编码,从而中国两大主流通信监控协议就此形成。
五、 两大主流通信监控协议之比较
5.1 通信协议功能比较
两在主流监控协议在规范监控系统功能方面,都明确了监控系统的具体功能,主要包括设备参数信息:如设备类型、厂家代码、上报号码、版本号等,监控参数信息:如通信方式、查询/设置电话号码等,告警使能:如电源掉电告警使能等,告警状态:如电源掉电等,设置参数:如电平告警门限、功放开关等,实时采样数据:如输出功率等。为此,两大协议都基本上实现了通信协议所需具备的功能项,满足直放站监控的需要。
5.2 通信协议结构比较
中国联通监控协议为非模块化的设计:所有的监控信息都集中在一条报文中,报文在组装、发送、接收、处理等方面都是不可分割的,这使直放站的监控系统很难实现模块化设计,稳定性和可维护性不强。协议设计也没有充分考虑多帧数据的处理(如建立缓冲区、采用先入先出等),对监控中心发送的多条数据无法识别其通信顺序,使得多包发送适应能力差,监控功能的实现效率和性能较低。
中国移动监控协议采用软件工程理论中倡导的集约式模块化开发设计方法, 使各个模块不仅可以独立安装, 还可以对某个模块单独升级。模块化结构设计方法的关键在于模块间接口的标准化、通用化、规格化程度。笔者将数据协议结构分成模块( 每个模块的规模小到可以管理的程度) , 然后分别将各个模块隐藏在内部接口后面, 让模块之间通过接口相互交流。监控协议的模块化总体思路是: 承载层模块负责将通信设备驱动收发的字符流转化为协议接入层的监控报文,接入层接收承载层提供的监控协议报文并进行帧识别、差错控制和报文封装等处理, 然后提交给网络层进行目的节点操作数据流的分发, 并分解出操作指令和监控应用层数据单元,监控应用层负责监控对象单元的提取、识别、执行、回应以及设备主动告警信息的形成, 由此实现了各层模块间的独立性和关联性。协议分层结构和模块化设计思路解决了监控协议的灵活组装、升级换代和二次开发等问题, 提高了协议的适应能力。
5.3 协议通信方式扩展性比较
中国联通监控协议的网络功能扩充性差,其未考虑网络层的存在,很难在现有功能之上再进行扩充。
中国移动监控协议采用了目前在通信领域被普遍认同和使用的协议分层的设计思想, 整个体系由承载层、接入层、网络层和监控应用层组成[4]。
承载层: 通信的实际链路, 此层确定了数据通信的实际信道类型, 向接入层提供面向字节的数据包。承载层用于适应并实现直放站远程监控的多种通信方式(包括短信、数据传输、GPRS等), 解决了监控数据流的承载问题。承载层概念的引入, 实现了底层通信链路的可扩展性, 用户可以将通用的底层通信方式各自模块化封装,当出现新的数据链路方式, 通信协议和设备监控模块可以方便地将其接入到监控系统中。
接入层: 接入层是网络层与承载层之间的接口, 用于承载层各通信方式之间的匹配, 同时对上层数据进行编码, 以适应和屏蔽不同承载层的特性和差异。由于监控数据流载体的复杂性, 同时为利用各个物理载体的信号特性, 监控数据不宜采用完全一样的数据帧格式, 而是应支持数据传输、GPRS 和短信等多种接入层协议, 实现通信方式的多样性和可扩展性, 这样接入层为上层协议屏蔽了通信信道的细节特征, 并保证网络层协议数据的可靠传输。
网络层: 网络层承载监控应用层协议包, 进行数据包寻址处理和分组, 向监控应用层提供本设备需要处理的监控指令和数据, 并可以实现通信包的转发( 转发的包不需要监控应用层来处理) 。网络层提供点对点设备监控信息的交互,提供了网间广播功能, 降低了网络维护的工作量, 提高了网络的灵活度, 还可以通过动态路由技术来克服目前网络需要静态分配网络地址的弊端, 在路由技术支持下, 设备可以选择多个通信链路, 从而适应多种通信方式的监控。
监控应用层: 监控应用层针对各种监控所需功能, 实现了面向监控功能的数据组织和数据结构。监控应用层解决了设备监控信息的语法表示问题, 提供格式化的数据表示和数据转换服务, 并提供网络层与上层应用软件之间的接口服务。监控应用层采用最基本的设备状态为基本监控项, 通过对高独立性的基本监控项的算法设计形成告警信息, 从而实现了监控项的高独立性和设备监控功能的自由组合, 使得对单个或多个参量的监控功能操作时不再受相互关联的设备状态信息制约,提高了监控信息的传输效率。同时监控应用层保证了每种监控功能目的单纯、语义清晰, 设备每项监控功能对应特定的一个监控代码和数据类型。监控应用层也帮助系统预留了数据的压缩和解压缩、加密和解密等拓展功能。
5.4 协议监控对象自由度比较
中国联通监控协议的监控对象不独立,导致监控项的内容相互关联, 当出现告警时,需从上报报文中提取并解析相关信息,获得真正的告警信息,使得单个监控项的操作变得复杂。当增加新的监控项时,需重新定义监控内容,使得系统监控的灵活性无法保证,同时增加了软件代码的冗余,不利于监控算法的形成。协议格式如下图:
联通监控协议将多个告警状态信息放在统一格式的数据块中, 当只想设置下行输入功率告警上门限值时, 根据其通信协议的格式要求, 必须同时携带和输入上行输出功率告警上门限的值和下行输出功率告警上门限的值。当出现下行输入过功率告警时, 也必须上报其他两项信息, 并由监控中心进行告警判断和甄别。
中国移动监控协议因将各个监控对象作为一个个体而存在的,将每个设备运行状态封装在各自独立的数据块, 如果用户只想设置下行输入功率告警上门限值, 则用户只需输入此值, 无须携带其他冗余的监控信息。其协议格式如下图所示
5.5 协议告警处理机制比较
中国联通监控协议的告警处理机制是以实时告警的方式来上报告警和告警恢复的,这在告警的及时性上是比较好的机制,但在直放站实际工作环境中常出现恶劣环境,从而导致设备的运行状态在短时间发生频繁切,为此上报大量的重复告警和误告警。
中国移动监控协议制订了“9 次告警重发机制”(即告警3 min 确认机制”:每2 s采样1 次,3 min 共采样90 次,当采样处于告警状态的次数大于等于上门( 如40%, 即36 次)时,设备就上报告警,当采样处于告警状态的次数小于等于下门限( 如10%, 即正常状态的次数大于等于81 次) 时, 才可上报告警恢复正常的信息,而且当直放站连续3次上报告警信息后末收到监控中心的回应包的,如果上传失败,直放站停止告警,在间隔一个规定的时间(3小时)后,继续上报告警,如果再连续3次失败,则在间隔一个规定的时间后继续,共循环3次,即9次重发机制)、“告警使能机制”、“告警屏蔽机制”、“告警同步机制”等, 建立了完善、合理、可靠的告警处理机制,在防止监控中心频繁收到重复告警和误告警方面起了明显效果。
六、结束语
两大主流监控协议在各自的领域都发挥着重要的作用,在当前网络发展阶段,对当前在网的直放站及分布系统的监控及综合监控建设都起着重要的作用。虽然中国移动监控协议比中国联通监控协议在模块化、结构、可扩展性等方面更有优势,但协议在站点编号、多级站点还可以改进其扩展性,以符合更多类型、更多网络结构的设备接入,如接入GSM、WCDMA、TD-SCDMA、cdma 1X、cdma 2000、TD-LTE、LTE FDD、WLAN、固网宽带等系统的光纤分布系统设备[5]。直放站监控协议的制订是一项严谨、科学、系统的工作,也是一项不断完善的工作,随着4G网络的发展及逐步接入电信级监控的发展趋势,两大主流通信监控协议合二为一或是另定义标准协议也可以是后续的研究方向。
参考文献
[1]许奕,直放站监控规范的研究与应用,通信世界,2007年3月,第10期,20
[2].中国联通,中国联通CDMA直放站综合网络监控管理协议规范V2.0,2004,7
关键词:现场总线;CAN总线;校园餐厅消费系统
Key words: field bus;CAN bus;campus restaurant consumption system
中图分类号:TP39文献标识码:A文章编号:1006-4311(2011)22-0168-03
0引言
随着计算机网络技术和芯片制造技术的发展,芯片的性能大幅提高,其成本不断降低,以现场总线为代表的控制网络也在工业控制系统中扮演着不可缺少的角色。CAN总线由于具有可靠性高、成本低、容易实现等优点,在现场总线的实际工程应用中占据了较大的份额。校园餐厅消费系统结合了计算机技术的灵活性、射频传感技术的便利性和CAN总线通信技术的可靠性,为餐饮业走向全面数字化提供了一种可行的技术解决方案。
1系统设计相关技术
1.1 CAN现场总线简介CAN总线[1]是德国Bosch公司于1983年为汽车应用而开发的一种能有效支持分布式控制的串行通信网络,属于现场总线的范畴。1993年11月,ISO正式颁布了控制器局域网CAN国际标准(ISO[11898]),通信介质可采取双绞线,同轴电缆和光导纤维。通信距离与波特率有关,最大通信距离可达10km,最大通信波特率可达1Mbps。CAN总线仲裁用11位(CAN2.0A协议)和29位(CAN2.0B协议)标志和非破坏性位仲裁机制,可以确定数据块的优先级,保证在网络节点冲突时最高优先级节点不需要冲突等待。CAN结构取ISO/OSI模型的第1、2、7层协议,即物理层,数据链路层和应用层,总线上任意节点可在任意时刻主动向网络上其他节点发送信息而不分主次,因此可实现各节点之间的自由通信。目前,CAN总线协议已被国际标准化组织认证,技术比较成熟,控制芯片已经商品化,性价比高,特别适用于分布式测控系统的数据通信。
1.2 CAN现场总线特点CAN总线具有极高的可靠性、数据传输速率高、传输距离较长、实时性强,特别适合工业现场监控设备的互联。相对于其他总线,CAN有以下特点[2]:①采用通信数据块编码,可实现多主工作方式,数据收发方式灵活;②发送的信息遭到破坏后,可自动重发;③采用统一的标准和规范,使各设备间具有较好的互操作性和互换性;④报文不包含源地址或者目标地址,仅用标识符来指示功能和优先级信息;⑤通信介质可采用双绞线,现场布线和安装简单,易用于维护,经济性好。
2硬件设计
随着半导体技术的发展,CAN总线数据链路层的协议已经集成到各种芯片内,同时物理层的电气保护和驱动的收发器芯片也随之出现,这给工程应用提供了极大的方便。目前市场上使用最为普遍的独立CAN控制器有MCP2510和SJA1000,以及高速CAN收发器PCA82C250。
2.1 CAN控制器MCP2510简介MCP2510[3]全支持CAN总线V2.0A/B技术规范。能够发送和接收标准和扩展报文。它还同时具备验收过滤以及报文管理功能。该器件包含三个发送缓冲器和两个接收缓冲器,MCU的通信是通过行业标准串行外设接口(SPI)来实现的,其中数据传输速率高达5Mbps。
2.2 周立功USBCAN- II 智能 CAN 接口卡USBCAN-II智能CAN接口卡[4]内集成了USB1.1接口、SJA1000和 PCA82C250;因此具备着CAN SJA1000控制器和收发器PCA82C250等硬件特性。
2.3 校园餐厅消费系统CAN网络硬件平台搭建采用 USBCAN-II 智能 CAN 接口卡 ,PC 可以通过 USB 总线连接至 CAN 网络,极力地方便PC机连接CAN网络,而售饭机到CAN网络之间的连入,主要通过CAN MCP2510控制器。校园餐厅消费系统CAN网络硬件平台搭建,如图1所示。
3软件设计
校园餐厅消费系统软件设计总体架构如图2所示。针对校园餐厅消费系统CAN网络通信,主要可以分为CAN控制器的硬件驱动,CAN应用层协议的设计。
3.1 CAN控制器的硬件驱动
3.1.1 CAN控制器MCP2510驱动设计由MCP2510的工作原理,我们可以看出,MCP2510的很多读写寄存器的操作,是通过SPI来实现的。下面主要对MCP2510的读指令,写指令进行分析。
读指令:在读操作开始时,CS引脚将被置为低电平。随后读指令和8位地址码(A7至A0)将被依次送入MCP2510。在接收到读指令和地址码之后,可以顺序读取任意个连续地址寄存器中的数据,如图3所示;写指令:置 CS 引脚为低电平启动写操作。启动写指令后,地址码以及至少一个字节的数据被依次发送到MCP2510。只要CS保持低电平,就可以对连续地址寄存器进行顺序写操作。有关详细的字节写操作时序请参见图4。
读指令代码实现如下:
3.1.2 USBCAN-I/II智能CAN接口卡根据ZLGVCI接口函数及其参考文档[5],我们可以实现接收CAN报文的流程图如图5所示,发送CAN报文的流程图如图6所示。
3.2 CAN应用层协议前真正占领市场的两个应用层协议是:DeviceNet 协议和CANOpen 协议。但DeviceNet 和CANopen 协议规范比较复杂,理解和开发的难度比较大,对于一些并不复杂的基于CAN 总线的控制网络不太适合。因此有必要开发设计一种简单可靠的CAN 高层协议,以适合于CAN 的简单应用场合, cCAN 协议由此应运而生。
cCAN 协议全称“Consumption CAN-bus ApplicatI/On Protocol”,即消费CAN-bus 应用层协议,它为售饭机相互之间的连接提供了一种低成本的通讯解决方案。cCAN 协议详细的定义了CAN 报文中ID 以及数据的分配和应用,资源的访问规则,通信模型如图 7。
3.3 cCAN协议通讯模式cCAN协议采用主从方式通讯模式[6],即命令/响应通讯方式。主从通讯模式用于 iCAN网络中的主站对于从站的访问,又分为点对点方式和广播方式两种情况。(图8、9)
3.4 cCAN报文的格式说明
3.4.1 cCAN报文标示符的分配报文标识符[7]指定了数据通讯中的源节点 MACID和目标节点 MACID,并指示了报文的功能以及所要访问的资源节点。报文标识符被分为 SrcMACID (源节点地址)、DestMACID(目标节点地址)、FuncID(功能码)、Source ID(资源节点地址)、SegFlag(分段传输标识位)ACK(响应标识位)6个部分。
3.4.2 cCAN帧数据部分定义在 cCAN 协议规范中,cCAN 报文的数据部分主要用于分段传输控制和传送与功能码相关的参数。cCAN报文数据部分最多可以传输 8个字节数据。如果想传输更多的数据,可以利用SegFlag标识位,来实现分段传输数据。(表1)
4总结
随着半导体技术的发展,CAN总线数据链路层的协议已经集成到各种芯片内,同时物理层的电气保护和驱动的收发器芯片也随之出现,这给工程应用提供了极大的方便。本设计的硬件系统围绕着CAN控制芯片进行规范设计与调试。软件设计则必须以硬件系统为前提以功能定义为要求进行设计现调试。
参考文献:
[1]王黎明编著.CAN现场总线系统的设计与应用[M].电子工业出版社,2008,1.
[2]邬宽明编著.CAN总线原理和应用系统设计[M].北京航空航天大学出版社,2008.
[3]美国微芯科技有限公司编.MCP2510Datasheet. Microchip Technology Inc.2002.
[4]周立功编著.USBCAN-I/II 智能 CAN 接口卡 用户手册 V1.2.广州周立功单片机发展有限公司,2003,11.