CN112165446A - 一种VxWorks系统网络侦听方法 - Google Patents

一种VxWorks系统网络侦听方法 Download PDF

Info

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
Application number
CN202010823335.9A
Other languages
English (en)
Inventor
郭廷喜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hebei Hanguang Heavy Industry Ltd
Original Assignee
Hebei Hanguang Heavy Industry Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hebei Hanguang Heavy Industry Ltd filed Critical Hebei Hanguang Heavy Industry Ltd
Priority to CN202010823335.9A priority Critical patent/CN112165446A/zh
Publication of CN112165446A publication Critical patent/CN112165446A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network 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系统网络侦听方法
技术领域
本发明属于嵌入式系统通信技术领域,具体涉及一种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个时,侦听函数捕获到数据包后,首先识别数据包是哪块网卡收到的,再把数据包的报文内容显示出来。
CN202010823335.9A 2020-08-17 2020-08-17 一种VxWorks系统网络侦听方法 Pending CN112165446A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114124457A (zh) * 2021-10-25 2022-03-01 河北汉光重工有限责任公司 一种基于vxworks系统网络的侦听方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
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 天津津航计算技术研究所 一种通用双冗余网卡切换的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
杨坤: "《牵引变电所断路器智能单元设计》", 《中国优秀硕士学位论文全文数据库 工程科技II辑》 *
王景刚等: "基于VxWorks的网卡驱动设计", 《中国新技术新产品》 *
穆欣侃等: "VxWorks下LAN91C111网卡驱动程序的开发与分析", 《沈阳理工大学学报》 *

Cited By (1)

* Cited by examiner, † Cited by third party
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