基于VxWorks的端口控制实现
更新时间:2023-05-27 13:24:01 阅读量: 实用文档 文档下载
- vxworks大小端推荐度:
- 相关推荐
基于VxWorks的端口控制实现
2004年第11期
文章编号:100622475(2004)1120132203
计算机与现代化
JISUANJI YU XIANDAIHUA
总第111期
基于VxWorks的端口控制实现
张敬伟1,周 娅1,周德新2
(1.桂林电子工业学院计算机系,广西桂林 541004;2.桂林电子工业学院通信与信息工程系,广西 摘要:介绍了嵌入式操作系统VxWorks:,并对两种实现方法的特点和性能做了比较。
关键词:端口控制;MUX接口;HOOK中图分类号:TP393.09ofPortControlBasedonVxWorks
ZHANGJing2wei1,ZHOUYa1,ZHOUDe2xin2
(1.Dept.ofComputerScience,GuilinInstituteofElectronicTechnology,Guilin 541004,China;
2.Dept.ofCommunicationandInformationEngineering,GuilinInstituteofElectronicTechnology,Guilin 541004,China)Abstract:TwokindsofmethodbasedonVxWorkstorealizeportcontrol,HOOKfunctionsandMUXinterfacearediscussedinthispaper.Theperformanceandcharactercomparisonsofthetwomethodsarealsodetailed.Keywords:portcontrol;MUXinterface;HOOKfunctions
0 引 言
网络用户的主观行为是网络安全的最大“敌人”,
因此需要从职业道德和安全技术两方面来保证网络的安全性。从技术角度上来看,控制网络用户的主观行为主要是要根据网络用户的合法性来控制(用户使用的)物理通信端口的状态(开放或者关闭),从而达到限制或者阻止网络用户的恶意主观行为的效果。因此,如何有效对端口进行控制,使得在被控端口上,既能保证端口通信的流畅,又能很好地解决网络安全问题成了在各个开发平台下的一个主要任务。
现今,端口控制在不同的应用平台上有不同的实现方法。在Windows操作平台下,有winpcap开发包来实现对底层通信设备的驱动;Linux提供了原始套接字来访问通信设备的输入输出缓冲区。随着当前越来越多的网络设备对网络安全功能的加强,提出了端口控制在嵌入式系统中的实现。本文主要讨论端口控制在实时嵌入式系统VxWorks中的解决方案。
1 VxWorks简介
VxWorks
是当前比较流行的一个实时嵌入式操
作系统,主要应用于各种有实时需求的系统开发和嵌入式系统开发。VxWorks具有高效的任务管理功能,使得开发人员能够方便地设计高效的嵌入式系统;其可剪裁的微内核结构,使得基于VxWorks的应用实现只占用很少的存储空间便可以完成复杂的任务;Vx2Works提供了强大的网络功能和硬件驱动支持。
2 端口控制的方法
对一个物理通信端口进行控制,一般的处理措施是设法访问该物理端口的输入输出缓冲区,通过直接对输入输出缓冲区中的数据进行操作,从而达到控制端口的目的。例如,我们可以把合法的数据发送到网络中去,或者交给上层协议进行处理;而把非法的数据(没有合法身份的用户发来的数据)直接从缓冲区中删除,阻止这样的信息的流通。但对物理端口的缓冲区进行访问一般需要涉及到硬件的底层操作和复
收稿日期:2003212219
作者简介:张敬伟(19772),男,山东烟台人,桂林电子工业学院硕士研究生,研究方向:网络安全技术;周娅(19652),女,湖北人,副教授,研究方向:数据库理论与应用技术;周德新(19352),男,安徽人,教授,研究方向:计算机网络。
基于VxWorks的端口控制实现
2004年第11期张敬伟等:基于VxWorks的端口控制实现
133
杂的数据结构,从而使得这方面的编程比较困难。目前,Windows下有辅助软件包winpcap,Linux系统提供可直接进行底层操作的原始套接字,以简化底层操作的复杂性。VxWorks结合其在嵌入式领域的特殊应用,提供了两种对底层设备的处理方法:HOOK函数和MUX接口,利用这两种方法都能够实现对底层设备的操作。
下面我们来具体讨论如何利用这两种方法来实现端口控制。2.1 HOOK函数
主机在接收到一个数据包后,始去掉相应的头部,。VxWorks允许我们使用H
。,由HOOK函数OOK函数一般用来判断包的合法性。HOOK函数每处理完一个数据包会返回一个布尔值,VxWorks则根据HOOK
函数的返回值来决定是否继续将该数据包交由上层协议处理。HOOK函数返回FALSE,表示该数据包是合法数据,应被上层协议继续处理;HOOK函数返回TRUE,表示该数据包是非法数据,应被丢弃,从而达到端口控制的目的。HOOK函数的处理流程如图1所示。
层可以调用相应的MUX函数来完成;同理,如果数据链路层的驱动程序需要访问网络层服务(IP服务和其它服务),也可以通过调用相应的MUX函数来实现。这样使得网络层和数据链路层不再直接交互,由MUX接口来屏蔽双方的细节。因此无论是改变数据链路层的驱动程序,,都不会影响到对方UX3MUX接口屏蔽了网络层和数据链路层的大部分
细节操作,但使用MUX对端口进行控制,一个关键的问题是需要直接操作数据缓冲区,因此需要熟悉缓冲区的组织结构。VxWorks使用网络内存池来存放数据包,其组织结构如图4所示。由图4可以看出,网
HOOK函数工作在数据链路层,
可以在输入和输
出两个方向对端口进行控制(分别使用InputHook和OutputHook函数)。2.2 MUX接口
为了更好地提供网络服务,VxWorks提供了MUX接口,以支持网络层和数据链路层的独立性,其网络层次图如图2所示。如果网络层需要使用数据链路层的驱动程序,则网络
络内存池主要有3种形态的组织结构,它们构成了MUX函数要操作的主要数据结构,分别是mBlk,clBlk和Cluster。其中Cluser为数据的存储区域,根据应用
基于VxWorks的端口控制实现
134
计 算 机 与 现 代 化2004年第11期
的需求,各个Cluster的大小可能不一样(64,128字节
不等);而mBlk和clBlk存储数据的管理信息。这3种结构通过指针连接在一起,形成一个完整的数据包。数据包的组织结构如图5所示。
使用MUX接口前,需要使用函数muxBind()将上层协议和底层端口进行绑定。同时在该函数中,要指定MUX将接收到的数据包递交给该协议时,
先进行的预处理操作(由自定义的函数来完成)。MUX对端口进行控制的流程如图6所示,其中实线表示发送数据包,虚线表示接收数据包。
(3)两者对数据包的操作。HOOK函数是不能够直接对网络内存池进行操作的,其实际上是对数据包的副本进行操作;而MUX函数则直接对网络内存池进行操作,显然具有较高的工作效率。
(4)使用HOOK函数进行编程比使用MUX函数要相对简单。对端口进行控制函数仅需要6个函数,构(;10M而且除了使用描述端口的,还需要了解一些其它的复杂数据,clBlk和Cluster,需要对网络数据包的组织结构有较清晰的了解。
4 结束语
在对交换机(例如24端口)这样的小型应用中,这两种端口控制的实现方法基本都可采纳。但WindRiver公司决定在将来的VxWorks版本中不再支持
3 特点与性能比较
使用HOOK函数和MUX接口来实现端口控制,都不需要了解太多的数据链路层和网络层协议细节,能够简化实现的复杂性。但二者在工作效率、操作简易度等方面还有一些区别,主要有以下几方面:
(1)HOOK函数主要是为以太网设计的,不适合对其它类型网络的端口进行控制;而MUX接口没有这个限制。
(2)HOOK函数工作在数据链路层;而MUX接口用于屏蔽数据链路层和网络层的交互。
HOOK函数,而致力于提供MUX接口服务。因此,考
虑到将来系统的兼容性和可扩展性,使用MUX接口进行端口控制将是最佳选择。
参考文献:
[1] IEEEStd802.1X22001,IEEEStandardforLocalandMetropol2
itanAreaNetworks—Port2BasedNetworkAccessControl[S].[2] WindRiverSystems,Inc.VxWorksNetworkProgrammer’s
Guide[M].WindRiverSystems,Inc.,2000.
[3] WindRiverSystems,Inc.VxWorksProgrammer’sGuide[M].
WindRiverSystems,Inc.,2000.
[4] 孔祥营,柏桂枝.嵌入式实时操作系统VxWorks及其开
发环境Tornado[M].北京:中国电力出版社,2002.
(上接第131页)
xl.Caption=″打印预览″ ‘设置预览窗口的标题xl.ActiveSheet.PrintPreview ‘打印预览xl.ActiveSheet.PrintOut ‘打印输出
到一张张漂亮的报表轻易地被打印出来了。
2 结束语
本文对表格的制作、图表的插入等几个方面进行了详细的技术分析。在Excel软件中所能做到的,在应用程序开发中都可以通过调用来实现。这就很好地解决了复杂报表的设计问题,在实践应用中具有一定的实用价值。
参考文献:
[1] JeffSpots.VisualBasic6.0开发使用手册[M].北京:机械
通过打印方向、打印纸张大小的设置,不断进行预览,直到满意为止,最终进行打印输出。
(8)退出Excel。
xl.DisplayAlerts=False ‘不提示用户是否保存已修改的
文件
xl.Quit
‘退出Excel
xl.DisplayAlerts=True ‘设置为默认值
设计的报表打印是通过Excel程序来控制后台实现的。对于使用者来说,根本看不到具体过程,只看
工业出版社,2000.
正在阅读:
基于VxWorks的端口控制实现05-27
如何开好乡镇人大的“一年两会”02-22
2011.6统计学习题集10-28
中国跳棋教材04-14
大一思修期末考试试论述题参考答案05-21
高二化学教学反思范文02-22
《简爱》内容提要与人物性格、写作特点、填空、简答、阅读题06-02
装饰木门设备采购合同05-06
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 端口
- 基于
- VxWorks
- 实现
- 控制
- 技术项目开发合同书
- 汽车维修企业应急救援预案
- 风淋室介绍及参数标准
- 初中语文教案:《背影》教案模板
- 云南农村信用社历年面试真题集
- 宋天佑版无机化学 第16章氧族元素
- 2010-2012年中国种子产业现状及前景分析报告
- 人教版初中数学24圆练习题(三)
- 凤凰传说公司简介2012
- 《学生体质健康标准》的测试项目包括哪些内容,其中哪些是必选?
- 电厂水化验员计算题
- 数棋学习方法及步骤
- 高级中学数学检讨书1000字_检讨书.doc
- 《互联网软件基础》上机作业2012
- 苏教版四年级科学下册期末测试题四年级科学 2008
- 2016年陕西师范大学新闻与传播学院811新闻传播实务之《当代新闻评论教程》考研内部复习题2
- 极端市态中基金申购赎回行为研究——基于中国开放式股票型基金的分析
- 人文精神是医学科学的旗帜
- 2000方球罐防腐施工方案
- 2011湖北省网络工程师岗位职责试题及答案