CN112165446A - 一种VxWorks系统网络侦听方法 - Google Patents
一种VxWorks系统网络侦听方法 Download PDFInfo
- Publication number
- CN112165446A CN112165446A CN202010823335.9A CN202010823335A CN112165446A CN 112165446 A CN112165446 A CN 112165446A CN 202010823335 A CN202010823335 A CN 202010823335A CN 112165446 A CN112165446 A CN 112165446A
- Authority
- CN
- China
- Prior art keywords
- network
- function
- mux
- interception
- network card
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 4
- 238000012544 monitoring process Methods 0.000 claims description 8
- 238000011161 development Methods 0.000 abstract description 9
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 238000004891 communication Methods 0.000 description 5
- DYPYMMHZGRPOCK-UHFFFAOYSA-N seminaphtharhodafluor Chemical compound O1C(=O)C2=CC=CC=C2C21C(C=CC=1C3=CC=C(O)C=1)=C3OC1=CC(N)=CC=C21 DYPYMMHZGRPOCK-UHFFFAOYSA-N 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000013112 stability test Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种VxWorks系统网络侦听方法,能够实现VxWorks操作系统下以太网络数据包的抓取和分析功能,实时接收,实时处理,还具有识别数据包来自哪个网卡的功能,可以用于双冗余网络系统的网络侦听;同时,本发明也可作为一种VxWorks操作系统网络应用软件的调试手段,有助于提高应用软件的开发效率。
Description
技术领域
本发明属于嵌入式系统通信技术领域,具体涉及一种VxWorks系统的网络侦听方法。
背景技术
当前,随着计算机和通信技术的快速发展,嵌入式系统的性能日益提高,集成度更高、计算速度更快、存储容量更大,使嵌入式系统得到广泛应用,同时,在嵌入式系统领域的很多行业,网络通信取代了传统串口,并取得了良好的效益。在嵌入式系统中常用的是以太网,它是一种高速通信方法。
在以太网软件的开发与调试中,当出现以太网通信异常的情况时,常常借助侦听软件来对故障进行定位,确定是应用软件还是网络配置或者硬件链接出现问题,能够很快找出原因,使问题得到解决。所以,通用操作系统Windows及unixi系统都有网络侦听软件,比如,Windows操作系统的Sniffer Pro、OmniPeek、Ethereal和Wireshark,Unix系统下的tcpdump,它们都是必备的装机软件。而嵌入式VxWorks操作系统,支持网络通信,但不提供以太网侦听应用软件,使得VxWorks用户不能像Windows和Unix用户那样借助侦听软件,快速、便捷、高效地开发网络通信软件。所以,有必要开发基于VxWorks系统的网络侦听软件,为用户开发网络通信软件提供必要的帮助。
发明内容
有鉴于此,本发明的目的是提供一种VxWorks系统网络侦听方法,能够实现VxWorks操作系统下以太网络数据包的抓取和分析功能。
一种VxWorks系统网络侦听方法,包括如下步骤:
步骤1、利用MUX接口函数库的muxBind函数,把用户需要的协议和网卡链路层驱动进行绑定,同时绑定回调函数,即把用户编写的侦听函数设置为由MUX层负责调用的回调函数;
绑定回调函数时,所述侦听函数的函数指针是muxBind函数的一个参数;
步骤2、利用MUX接口函数库的muxIoctl函数,设置网卡的工作模式为混杂模式;
步骤3、当MUX层收到网卡驱动程序发送的数据包时,调用侦听函数捕获数据包。
较佳的,用户需要的协议包括MUX_PROTO_SNARF协议、MUX_PROTO_PROMISC协议或者MUX_PROTO_OUTPUT协议。
较佳的,设置网卡的工作模式为混杂模式的方法为:首先用muxIoctl函数获取网卡的当前的工作模式字,在得到的模式字中加入混杂模式,再把模式字写入网卡,完成混杂工作模式的设置。
较佳的,所述侦听函数还用于分析和处理报文内容。
较佳的,当网卡有2个时,侦听函数捕获到数据包后,首先识别数据包是哪块网卡收到的,再把数据包的报文内容显示出来。
本发明具有如下有益效果:
本发明的一种VxWorks系统网络侦听方法,能够实现VxWorks操作系统下以太网络数据包的抓取和分析功能,实时接收,实时处理,还具有识别数据包来自哪个网卡的功能,可以用于双冗余网络系统的网络侦听;同时,本发明也可作为一种VxWorks操作系统网络应用软件的调试手段,有助于提高应用软件的开发效率。
具体实施方式
下面对本发明进行详细描述。
本发明描述的是一种用于嵌入式系统以太网的网络侦听方法,适用于基于VxWorks操作系统的软件开发。
本发明描述的网络侦听方法用于捕获网络数据包,适用于开发类似windows系统的sniffer抓包软件那样的VxWorks应用软件。该方法使VxWorks用户能够接收通过网卡的全部以太网数据包,在数据录取、故障定位、网络诊断等诸多方面为用户的软件开发提供强有力的帮助。
嵌入式开发操作系统VxWorks不提供随机的网络侦听软件,所以,本发明描述的方法可为VxWorks操作系统用户提供这方面的技术支持,提供一种基于vxworks操作系统的以太网侦听方法,使VxWorks用户可以像Windows用户一样用抓包软件捕获数据包,在软件开发和应用的过程中得到所需的帮助。
为了更好地理解本发明描述的侦听方法的机理,有必要先介绍一下VxWorks网络协议栈的MUX层机制。
与通用计算机操作系统相比,嵌入式操作系统的网络设计要求适应更多的网络设备,支持更多网络协议。为了便于网络驱动程序和协议的开发,要求驱动程序和协议之间的耦合较松,因此,VxWorks操作系统在协议层和数据链路层之间加了MUX层。也就是说MUX层是为了减弱驱动程序和协议之间的耦合性而设计的。它的优点是,在开发网络设备驱动程序时,程序员不要考虑协议的影响,只要实现MUX提供的接口;同样,在开发协议时,也不要考虑下层驱动的影响,只要遵循MUX层接口规范。值得注意的是,网络协议层和数据链路层驱动程序不能直接通讯,它们必须通过MUX。
VxWorks网络协议栈的基本特征和传统的TCP/IP协议相似,VxWorks的网络协议栈最大的特点是在数据链路层和网络协议层之间多了MUX层。
在VxWorks的网络协议栈中,网络接口的驱动程序叫做END(Enhanced NetworkDriver),即增强型网络驱动程序,它处于数据链路层,是一种面向桢结构的驱动。IP层和TCP/UDP层合称为网络协议层。
在数据链路层和网络协议层之间有应用程序接口(API),叫做MUX(Multiplexer)接口,VxWorks提供了MUX接口例程库,用户使用该例程库实现对协议层和链路层的访问和控制。
本发明主要利用VxWorks操作系统的MUX接口例程库实现,在MUX层进行网络侦听,捕获网络数据包。
因为用户一般无法直接访问链路层,所以,用户只能通过MUX层获取数据包,具体说,就是用MUX例程库的MuxBind函数把一个协议和链路驱动程序关联起来,这样,驱动程序收到数据包后,就会传给MUX层,收到数据包后,MUX层调用协议对应的回调函数,获取网络数据包。回调函数是用户编写的C/C++函数,其函数指针是MuxBind函数的一个参数。
在VxWorks系统下,网卡接收到数据包后,向上传送给MUX层。在缺省工作模式下,网卡只接收发给本机的数据包,因此,为了实现侦听功能,需要改变网卡的工作模式,把网卡设为混杂模式。在混杂模式下,网卡不管数据包是不是发给本机,能够接收通过它的所有数据包,既接收发给本机的数据包,也接收不是发给本机的数据包。使用MUX例程库的muxIoctl函数设置混杂模式。
这样,通过调用MUX例程库函数,就可以实现网络侦听功能:网卡接收网上所有的数据包并上传给MUX层,MUX层再调用协议对应的函数获取网络数据包。
具体内容如下:
步骤1、绑定协议到链路层
利用MUX接口函数库的muxBind函数,把MUX_PROTO_SNARF协议和网卡链路层驱动进行绑定,同时绑定回调函数,即把用户编写的侦听函数设置为由MUX层负责调用的回调函数。
MUX_PROTO_SNARF协议的含义是:在所有标准协议之前调用用户的接收函数。还有MUX_PROTO_PROMISC、MUX_PROTO_OUTPUT等协议,用户有其它需要时,可根据需要绑定相应的协议。
绑定回调函数时,用户编写的侦听函数的函数指针是muxBind函数的一个参数。
绑定成功后,当MUX层收到网卡驱动程序发送的数据包时,会自动调用侦听函数捕获数据包。
步骤2、设置混杂工作模式。
利用MUX接口函数库的muxIoctl函数,设置网卡的工作模式为混杂模式,使网卡能够接收所有数据包。首先用muxIoctl函数获取网卡的当前的工作模式字(命令字参数为EIOCGFLAGS),在得到的模式字中加入混杂模式(位操作运算,位或(|)IFF_PROMISC),再把模式字写入网卡(命令字参数为EIOCSFLAGS),这样,就可完成混杂工作模式的设置。注:EIOCGFLAGS、EIOCSFLAGS和IFF_PROMISC是系统提供的muxlib.h文件中的宏定义。
步骤3、侦听函数:
侦听函数既可以获取数据包,还可以根据用户的需要在侦听函数中增加分析、处理报文内容的功能。数据包主要包括数据的来源、类型和长度、IP地址等信息。用户也可根据需要,编写代码,实现诸如报文内容的转换、打印和存盘等功能。
实施例:
运行环境由三台计算机和一个HUB组成。一台工控机,安装有vxworks操作系统,奔腾CPU,3块网卡,网卡0,网卡1,和网卡2,为Intel公司生产的同型号网卡,网卡的驱动程序相同。在该机上运行用本发明编写的侦听软件。
工控机的网卡0和网卡1用于侦听抓包,侦听软件需分别调用MuxBind函数为它们绑定网卡协议(MUX_PROTO_SNARF)和侦听函数,侦听软件还需分别调用muxIoctl函数把它们的工作模式设置为混杂模式(IFF_PROMISC)。网卡2用于侦听软件在Tornado环境下的在线开发和调试,只设置IP地址和地址掩码即可。
两台办公用PC机,均安装Windows XP系统,一台电脑专门运行各种网络测试软件,用来发送网络数据包,另一台电脑除了运行网络测试软件,还装有Tornado软件,用于侦听软件的在线开发和调试。
还有一个HUB。工控机和两台PC机分别用网线连接在HUB上,组成一个局域网,其中工控机的三块网卡都用网线连在HUB上。
运行过程是:首先所有设备开机,工控机运行侦听软件。随后两台办公用PC机运行网络测试软件,发送网络数据包。工控机捕获到数据包时,首先识别数据包是工控机的哪块网卡收到的,再把数据包的报文内容显示出来。
试验中,测试人员用sniffer、ping和自写网络测试软件发送各种数据包,工控机侦听软件都能实时捕获,并且数据包完整正确。还进行了稳定性测试,侦听软件运动稳定,工作正常。
试验成功后,该方法应用于单位开发的某型训练设备的双冗余网络侦听软件,实现了双冗余网络的侦听功能,能够实时捕获各种数据包,满足使用要求。
注:可参考Tornado的帮助文档,获取关于MuxBind和muxIoctl函数的功能、参数和返回值等的详细说明。
本发明的一种基于VxWorks操作系统的以太网侦听方法,该方法利用VxWorks操作系统网络协议栈的MUX机制,用MUX例程库进行编程,具有简单、实用、灵活和高效的特点,能够实时捕获各种数据包,应用于多网卡设备时,还能够识别数据包来自哪个网卡,已应用于产品开发中。实证表明,该方法是VxWorks操作系统下一种有效的网络调试手段,能够提高以太网应用软件的开发效率。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种VxWorks系统网络侦听方法,其特征在于,包括如下步骤:
步骤1、利用MUX接口函数库的muxBind函数,把用户需要的协议和网卡链路层驱动进行绑定,同时绑定回调函数,即把用户编写的侦听函数设置为由MUX层负责调用的回调函数;
绑定回调函数时,所述侦听函数的函数指针是muxBind函数的一个参数;
步骤2、利用MUX接口函数库的muxIoctl函数,设置网卡的工作模式为混杂模式;
步骤3、当MUX层收到网卡驱动程序发送的数据包时,调用侦听函数捕获数据包。
2.如权利要求1所述的一种VxWorks系统网络侦听方法,其特征在于,用户需要的协议包括MUX_PROTO_SNARF协议、MUX_PROTO_PROMISC协议或者MUX_PROTO_OUTPUT协议。
3.如权利要求1所述的一种VxWorks系统网络侦听方法,其特征在于,设置网卡的工作模式为混杂模式的方法为:首先用muxIoctl函数获取网卡的当前的工作模式字,在得到的模式字中加入混杂模式,再把模式字写入网卡,完成混杂工作模式的设置。
4.如权利要求1所述的一种VxWorks系统网络侦听方法,其特征在于,所述侦听函数还用于分析和处理报文内容。
5.如权利要求4所述的一种VxWorks系统网络侦听方法,其特征在于,当网卡有2个时,侦听函数捕获到数据包后,首先识别数据包是哪块网卡收到的,再把数据包的报文内容显示出来。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010823335.9A CN112165446A (zh) | 2020-08-17 | 2020-08-17 | 一种VxWorks系统网络侦听方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010823335.9A CN112165446A (zh) | 2020-08-17 | 2020-08-17 | 一种VxWorks系统网络侦听方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112165446A true CN112165446A (zh) | 2021-01-01 |
Family
ID=73859365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010823335.9A Pending CN112165446A (zh) | 2020-08-17 | 2020-08-17 | 一种VxWorks系统网络侦听方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112165446A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124457A (zh) * | 2021-10-25 | 2022-03-01 | 河北汉光重工有限责任公司 | 一种基于vxworks系统网络的侦听方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101206162A (zh) * | 2007-12-14 | 2008-06-25 | 哈尔滨工程大学 | 平轮检测数据采集与信号处理系统 |
WO2011072536A1 (zh) * | 2009-12-17 | 2011-06-23 | 研祥智能科技股份有限公司 | 一种VxWorks系统下的多网卡双冗余装置及系统 |
CN104468238A (zh) * | 2014-12-22 | 2015-03-25 | 上海斐讯数据通信技术有限公司 | 基于vxworks系统的双网卡冗余切换方法 |
CN110690994A (zh) * | 2019-09-25 | 2020-01-14 | 天津津航计算技术研究所 | 一种通用双冗余网卡切换的方法 |
-
2020
- 2020-08-17 CN CN202010823335.9A patent/CN112165446A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101206162A (zh) * | 2007-12-14 | 2008-06-25 | 哈尔滨工程大学 | 平轮检测数据采集与信号处理系统 |
WO2011072536A1 (zh) * | 2009-12-17 | 2011-06-23 | 研祥智能科技股份有限公司 | 一种VxWorks系统下的多网卡双冗余装置及系统 |
CN104468238A (zh) * | 2014-12-22 | 2015-03-25 | 上海斐讯数据通信技术有限公司 | 基于vxworks系统的双网卡冗余切换方法 |
CN110690994A (zh) * | 2019-09-25 | 2020-01-14 | 天津津航计算技术研究所 | 一种通用双冗余网卡切换的方法 |
Non-Patent Citations (3)
Title |
---|
杨坤: "《牵引变电所断路器智能单元设计》", 《中国优秀硕士学位论文全文数据库 工程科技II辑》 * |
王景刚等: "基于VxWorks的网卡驱动设计", 《中国新技术新产品》 * |
穆欣侃等: "VxWorks下LAN91C111网卡驱动程序的开发与分析", 《沈阳理工大学学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124457A (zh) * | 2021-10-25 | 2022-03-01 | 河北汉光重工有限责任公司 | 一种基于vxworks系统网络的侦听方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7523198B2 (en) | Integrated testing approach for publish/subscribe network systems | |
WO2020147419A1 (zh) | 监控方法、装置、计算机设备及存储介质 | |
US7827531B2 (en) | Software testing techniques for stack-based environments | |
US7171464B1 (en) | Method of tracing data traffic on a network | |
EP3140960B1 (en) | Methods, systems, and computer readable media for providing fuzz testing functionality | |
US20060288096A1 (en) | Integrated monitoring for network and local internet protocol traffic | |
CN108989151B (zh) | 用于网络或应用性能管理的流量采集方法 | |
CN112039722A (zh) | 一种mqtt协议仿真方法及仿真设备 | |
CN114363144B (zh) | 一种面向分布式系统的故障信息关联上报方法及相关设备 | |
CN101447931B (zh) | 一种排他操作的实现方法和装置 | |
CN112165446A (zh) | 一种VxWorks系统网络侦听方法 | |
CN110730112A (zh) | 网络运行速率的测试方法、系统、设备及存储介质 | |
CN113900939A (zh) | 测试环境访问方法、装置、可读存储介质和计算机设备 | |
CN113114794A (zh) | 一种基于二次代理处理域名的方法及设备 | |
CN109688139B (zh) | 云平台安全检测系统 | |
CN112148537A (zh) | 总线监控装置及方法、存储介质、电子装置 | |
CN113031569B (zh) | 一种核聚变控制系统的监听方法、系统、终端及介质 | |
US20230066835A1 (en) | Methods, systems and computer readable media for improving remote direct memory access performance | |
WO2021128936A1 (zh) | 报文的处理方法及装置 | |
US8468008B2 (en) | Input/output processor (IOP) based emulation | |
CN114124457A (zh) | 一种基于vxworks系统网络的侦听方法及系统 | |
CN114490202B (zh) | 一种密码设备测试方法、装置、电子设备及存储介质 | |
CN116302849B (zh) | 一种Linux套接字关闭事件监控方法及装置 | |
CN116302850B (zh) | 一种Linux套接字连接事件监控方法及装置 | |
CN116886445B (zh) | 过滤结果的处理方法及装置、存储介质、电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210101 |