CN105281984A - 一种抓取和过滤报文的虚拟终端和方法 - Google Patents
一种抓取和过滤报文的虚拟终端和方法 Download PDFInfo
- Publication number
- CN105281984A CN105281984A CN201510852541.1A CN201510852541A CN105281984A CN 105281984 A CN105281984 A CN 105281984A CN 201510852541 A CN201510852541 A CN 201510852541A CN 105281984 A CN105281984 A CN 105281984A
- Authority
- CN
- China
- Prior art keywords
- message
- virtual terminal
- filter
- filter condition
- parameter value
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种抓取和过滤报文的虚拟终端和方法,该虚拟终端包括:接收模块,用于接收数据源产生的所有数据报文;获取模块,用于获取用户预设的过滤条件;过滤模块,用于调用和所述过滤条件对应的BPF过滤器对所述数据报文进行过滤。本发明能够在为虚拟环境提供调试数据时,减少代码的复杂度、提高系统的耦合性,从而加快调试进度。
Description
技术领域
本发明涉及计算机网络领域,特别是涉及一种抓取和过滤报文的虚拟终端和方法。
背景技术
随着软件的应用领域越来越广以及软件规模和软件复杂度的增加,软件调试在软件开发过程中占居越来越重要的位置,并逐渐为软件开发的一个制约瓶颈。程序调试越来越需要依赖复杂的现场环境,而开发人员不可能在现场进行程序设计和调试,现场设备也不允许由开发人员任意使用。在软件开发过程中采用虚拟调试环境已经是比较常态的方式,虚拟环境中的设备称为虚拟终端,通过虚拟终端可以最大程度模拟各种场景和现场环境、现场设备,从而完成软件的调试。
为了获取虚拟环境中调试软件所需要的数据,需要对数据源提供的数据报文进行抓取和过滤,目前虽然调试在虚拟环境中进行,但是收发报文还是采用第三方软件,例如wireshark工具软件进行报文的抓取和过滤。而在虚拟终端中嵌入第三方软件,往往存在耦合性差的问题,也增加了代码复杂度。
发明内容
本发明主要解决的技术问题是提供一种抓取和过滤报文的虚拟终端和方法,能够在为虚拟环境提供调试数据时,减少代码的复杂度、提高系统的耦合性,从而加快调试进度。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种抓取和过滤报文的虚拟终端,该虚拟终端包括接收模块,用于接收数据源产生的所有数据报文;获取模块,用于获取用户预设的过滤条件;过滤模块,用于调用和所述过滤条件对应的BPF过滤器对所述数据报文进行过滤。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种抓取和过滤报文的方法,该方法包括虚拟终端接收数据源产生的所有数据报文;获取用户预设的过滤条件;调用和所述过滤条件对应的BPF过滤器对所述数据报文进行过滤。
区别于现有技术,本发明的抓取和过滤报文的虚拟终端,用于接收数据源产生的所有数据报文;获取用户预设的过滤条件;调用和所述过滤条件对应的BPF过滤器对所述数据报文进行过滤;从而能够在为虚拟环境提供调试数据时,减少代码的复杂度、提高系统的耦合性,从而加快调试进度。
附图说明
图1是本发明抓取和过滤报文的虚拟终端的第一实施方式的结构示意图;
图2是本发明抓取和过滤报文的虚拟终端的第二实施方式的结构示意图;
图3是本发明抓取和过滤报文的方法的第一实施方式的流程示意图。
具体实施方式
下面结合具体实施方式对本发明的技术方案作进一步更详细的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
参阅图1,图1是本发明提供的抓取和过滤报文的虚拟终端的第一实施方式的结构示意图。
该抓取和过滤报文的虚拟终端100包括:接收模块110,获取模块120,过滤模块130。
其中,接收模块110,用于接收数据源产生的所有数据报文。
例如,当模拟环境模拟的是光线路终端(opticallineterminal,OLT)时,数据源为光网络单元(OpticalNetworkUnit,ONU)。
具体的,所述数据源产生的报文有各种类型,例如用户数据报协议(UserDatagramProtocol,UDP)类型的数据报文、互联网组管理协议(InternetGroupManagementProtocol,IGMP)类型的报文、传输控制协议(TransmissionControlProtocol,TCP)类型的报文,这些报文的目的地址是虚拟终端,或者只是经过虚拟终端转发。
获取模块120,用于获取用户预设的过滤条件。
例如,所述过滤条件为只需要用UDP类型的数据报文、或者只需要IGMP类型的报文。
过滤模块130,用于调用和所述过滤条件对应的柏克莱封包过滤器(BerkeleyPacketFilter,BPF)对所述数据报文进行过滤。
具体的,可以事先针对不同的过滤条件生成相应的BPF过滤器,以便随时调用。所述过滤器对数据包进行过滤后,将返回满足过滤条件的数据包的访问地址。
区别于现有技术,本发明的抓取和过滤报文的虚拟终端,接收数据源产生的所有数据报文;获取用户预设的过滤条件;调用和所述过滤条件对应的BPF过滤器对所述数据报文进行过滤;从而能够在为虚拟环境提供调试数据时,减少代码的复杂度、提高系统的耦合性,从而加快调试进度。
参阅图2,图2是本发明提供的抓取和过滤报文的虚拟终端的第二实施方式的结构示意图。
该抓取和过滤报文的虚拟终端200包括:接收模块210,获取模块220,过滤模块230。
其中,接收模块210包括确定单元211和接收单元212,确定单元211用于确定Socket描述符的参数值为链路层原始套接字所有协议,以及确定网卡标志位的参数值为混杂模式;接收单元212用于在所述确定单元211确定成功后接收数据源产生的所有报文数据。
例如,当模拟环境模拟的是OLT时,数据源为ONU设备。
具体的,所述数据源产生的报文有各种类型,例如UDP类型的数据报文、IGMP类型的数据报文、TCP类型的数据报文,而且这些报文的目的地址有的是虚拟终端,有的只是经过虚拟终端转发给被调试软件。在提供给被调试软件之前,都需要对这些数据报文先抓取过来进行过滤。
具体的,接收模块通过将Socket描述符的参数值设置为链路层原始套接字所有协议、以及将网卡标志位的参数值为混杂模式,可以让网卡处于洪泛模式,当网卡工作在该模式下时就能实现抓取所有数据报文,不管这个报文的目的地址是否该虚拟终端。
例如,以下语句用来实现将Socket描述符的参数值设置为链路层原始套接字所有协议:
sockfd=socket(AF_PACKET,SOCK_RAW,htons(ETH_P_ALL))。
例如,以下语句用来实现将网卡标志位的参数值为混杂模式:
structifreqifr;//定义网卡标志位的变量
strncpy(ifr.ifr_name,eno,strlen(eno)+1);//获得网卡标志位
ifr.ifr_flags|=IFF_PROMISC//设置网卡标志位的参数值
获取模块220,用于获取用户预设的过滤条件。
例如,所述过滤条件为只需要用UDP类型的数据报文、或者只需要IGMP类型的报文。
过滤模块230包括解析单元231,获取单元232和判断单元233;其中,解析单元231用于调用所述和过滤条件对应的BPF过滤器对所述报文进行解析,获取单元232用于在所述报文中获取与所述过滤条件对应字段的参数值,判断单元233用于根据所述参数值是否满足所述过滤条件从而判断所述报文是否要保留。
例如,当过滤条件为只需要UDP类型的报文时,解析单元231对每个接收到的报文解析,获取单元232获取该解析出来的协议字段(报文头检验位和前面那个字段),判断单元233用于根据协议字段的值是否等于17判断是否UDP包,如果等于17则说明该报文为UDP包,需要保留,否则丢弃。
具体的,可以事先针对不同的过滤条件生成相应的BPF过滤器,以便随时调用。所述过滤器对数据包进行过滤后,将返回满足过滤条件的数据包的访问地址。
可选的,该虚拟终端200进一步还包含发送模块240,用于将所述过滤后的报文发送给被调试的软件。具体的,可以是将所述过滤器返回的满足过滤条件的数据包访问地址发送给被调试的软件。
区别于现有技术,本发明的抓取和过滤报文的虚拟终端,接收数据源产生的所有数据报文;获取用户预设的过滤条件;调用和所述过滤条件对应的BPF过滤器对所述数据报文进行过滤;从而能够在为虚拟环境提供调试数据时,减少代码的复杂度、提高系统的耦合性,从而加快调试进度。
参阅图3,图3是本发明提供的抓取和过滤报文的方法第一实施方式的流程示意图。
该方法的步骤包括:
S301:虚拟终端接收数据源产生的所有数据报文。
其中,该步骤的具体实现可以是:虚拟终端确定Socket描述符的参数值为链路层原始套接字所有协议,确定网卡标志位的参数值为混杂模式,从而接收数据源产生的所有报文数据。
具体的,当模拟环境模拟的是OLT时,数据源为ONU设备。
具体的,所述数据源产生的报文有各种类型,例如UDP类型的数据报文、IGMP类型的数据报文、TCP类型的数据报文,而且这些报文的目的地址有的是虚拟终端,有的只是经过虚拟终端转发给被调试软件。在提供给被调试软件之前,都需要对这些数据报文先抓取过来进行过滤。
具体的,接收模块通过将Socket描述符的参数值设置为链路层原始套接字所有协议、以及将网卡标志位的参数值为混杂模式,可以让网卡处于洪泛模式,当网卡工作在该模式下时就能实现抓取所有数据报文,不管这个报文的目的地址是否该虚拟终端。
例如,通过以下语句用来实现将Socket描述符的参数值设置为链路层原始套接字所有协议:
sockfd=socket(AF_PACKET,SOCK_RAW,htons(ETH_P_ALL))。
例如,通过以下语句用来实现将网卡标志位的参数值为混杂模式:
structifreqifr;//定义网卡标志位的变量
strncpy(ifr.ifr_name,eno,strlen(eno)+1);//获得网卡标志位
ifr.ifr_flags|=IFF_PROMISC//设置网卡标志位的参数值
S302:获取用户预设的过滤条件。
例如,所述过滤条件为只需要用UDP类型的数据报文、或者只需要IGMP类型的报文。
S303:调用和所述过滤条件对应的BPF过滤器对所述数据报文进行过滤。
具体的,该步骤的实现方式为:调用所述和过滤条件对应的BPF过滤器对所述报文进行解析;在所述报文中获取与所述过滤条件对应字段的参数值;根据所述参数值是否满足所述过滤条件从而判断所述报文是否要保留。
例如,当过滤条件为只需要UDP类型的报文时,调用和过滤条件对应的BPF过滤器,该过滤器首先对每个接收到的报文解析,然后获取该解析出来的协议字段(报文头检验位和前面那个字段),根据协议字段的值是否等于17判断是否UDP包,如果等于17则说明该报文为UDP包,需要保留,否则丢弃。
具体的,可以事先针对不同的过滤条件生成相应的BPF过滤器,以便随时调用。所述过滤器对数据包进行过滤后,将返回满足过滤条件的数据包的访问地址。
可选的,该方法之后进一步还可以包含将所述过滤后的报文发送给被调试的软件。具体的,可以是将所述过滤器返回的满足过滤条件的数据包的访问地址发送给被调试的软件。
区别于现有技术,本发明的抓取和过滤报文的方法,接收数据源产生的所有数据报文;获取用户预设的过滤条件;调用和所述过滤条件对应的BPF过滤器对所述数据报文进行过滤;从而能够在为虚拟环境提供调试数据时,减少代码的复杂度、提高系统的耦合性,从而加快调试进度。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种抓取和过滤报文的虚拟终端,其特征在于,包括:
接收模块,用于接收数据源产生的所有数据报文;
获取模块,用于获取用户预设的过滤条件;
过滤模块,用于调用和所述过滤条件对应的BPF过滤器对所述数据报文进行过滤。
2.根据权利要求1所述的抓取和过滤报文的虚拟终端,其特征在于:所述接收模块包括确定单元和接收单元;
所述确定单元用于确定Socket描述符的参数值为链路层原始套接字所有协议,以及确定网卡标志位的参数值为混杂模式;
所述接收单元用于在所述确定单元确定成功后接收数据源产生的所有报文数据。
3.根据权利要求1或2所述的抓取和过滤报文的虚拟终端,其特征在于,所述过滤模块包括解析单元,获取单元和判断单元;
所述解析单元用于调用所述和过滤条件对应的BPF过滤器对所述报文进行解析;
所述获取单元用于在所述报文中获取与所述过滤条件对应字段的参数值;
所述判断单元用于根据所述参数值是否满足所述过滤条件从而判断所述报文是否要保留。
4.根据权利要求1或2所述的抓取和过滤报文的虚拟终端,其特征在在于,所述虚拟终端进一步还包括发送模块,用于将所述过滤后的报文发送给被调试的软件。
5.一种抓取和过滤报文的方法,其特征在于,包括:
虚拟终端接收数据源产生的所有数据报文;
获取用户预设的过滤条件;
调用和所述过滤条件对应的BPF过滤器对所述数据报文进行过滤。
6.根据权利要求5所述的抓取和过滤报文的方法,其特征在于,
所述虚拟终端接收数据源产生的所有数据报文具体为:所述虚拟终端确定Socket描述符的参数值为链路层原始套接字所有协议,确定网卡标志位的参数值为混杂模式,从而接收数据源产生的所有报文数据。
7.根据权利要求5或6所述的抓取和过滤报文的方法,其特征在于,所述调用和所述过滤条件对应的BPF过滤器对所述报文进行过滤具体为:
调用所述和过滤条件对应的BPF过滤器对所述报文进行解析;
在所述报文中获取与所述过滤条件对应字段的参数值;
根据所述参数值是否满足所述过滤条件从而判断所述报文是否要保留。
8.根据权利要求5或6所述的抓取和过滤报文的方法,其特征在于,所述方法进一步还包括:将所述过滤后的报文发送给被调试的软件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510852541.1A CN105281984A (zh) | 2015-11-27 | 2015-11-27 | 一种抓取和过滤报文的虚拟终端和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510852541.1A CN105281984A (zh) | 2015-11-27 | 2015-11-27 | 一种抓取和过滤报文的虚拟终端和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105281984A true CN105281984A (zh) | 2016-01-27 |
Family
ID=55150353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510852541.1A Pending CN105281984A (zh) | 2015-11-27 | 2015-11-27 | 一种抓取和过滤报文的虚拟终端和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105281984A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110138797A (zh) * | 2019-05-27 | 2019-08-16 | 北京知道创宇信息技术股份有限公司 | 一种报文处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060122377A1 (en) * | 2004-02-19 | 2006-06-08 | Genentech, Inc. | CDR-repaired antibodies |
CN101345687A (zh) * | 2008-08-21 | 2009-01-14 | 北京星网锐捷网络技术有限公司 | 一种在linux网桥模式下传送报文的方法及系统 |
-
2015
- 2015-11-27 CN CN201510852541.1A patent/CN105281984A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060122377A1 (en) * | 2004-02-19 | 2006-06-08 | Genentech, Inc. | CDR-repaired antibodies |
CN101345687A (zh) * | 2008-08-21 | 2009-01-14 | 北京星网锐捷网络技术有限公司 | 一种在linux网桥模式下传送报文的方法及系统 |
Non-Patent Citations (2)
Title |
---|
张楠: "《人工免疫系统的混沌机制及在网络入侵检测中的应用》", 《中国优秀博硕士学位论文全文数据库(博士)信息科技辑》 * |
饶超: "《千兆网络报文捕获平台的设计与实现》", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110138797A (zh) * | 2019-05-27 | 2019-08-16 | 北京知道创宇信息技术股份有限公司 | 一种报文处理方法及装置 |
CN110138797B (zh) * | 2019-05-27 | 2021-12-14 | 北京知道创宇信息技术股份有限公司 | 一种报文处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2723399C (en) | Methods, test systems and arrangements for verifying compliance with requirement specifications | |
CN109495870B (zh) | 蓝牙测试的方法和装置 | |
CN103200190B (zh) | 一种面向QualNet网络半实物仿真的实物接入方法 | |
CN101447898A (zh) | 一种用于网络安全产品的测试系统及测试方法 | |
CN103023708A (zh) | 通信协议接口的测试方法及系统 | |
CN103312532B (zh) | 用于物联网网关的故障自动排除方法及系统 | |
CN101808021A (zh) | 故障检测方法、装置及系统以及报文统计方法、节点设备 | |
CN109743235A (zh) | 一种测试网络设备中网卡的网络性能的方法、装置及介质 | |
WO2012062108A1 (zh) | 一种测试系统及测试方法 | |
CN104539483A (zh) | 网络测试系统 | |
CN110798386B (zh) | 一种可配置的can总线协议收发测试方法及系统 | |
CN106559230A (zh) | 一种故障处理方法、装置及系统 | |
CN105281984A (zh) | 一种抓取和过滤报文的虚拟终端和方法 | |
CN103034206A (zh) | 一种采用后绑定通信插件的工业数据采集系统 | |
CN101895441A (zh) | 一种物联网终端java应用的业务调试装置和方法 | |
CN101753372B (zh) | 承载网路由设备的检测方法及装置 | |
CN109286536B (zh) | 一种接口测试方法及装置 | |
CN110753363A (zh) | 一种智能设备无线调试系统和方法 | |
CN103618641B (zh) | 一种基于众核网络处理器并可快速部署的数据包检测监控系统 | |
CN103530342B (zh) | 数据共享方法及装置 | |
CN104717109A (zh) | 广域网链路模拟测试方法及系统 | |
CN109981394B (zh) | 基于增强型can总线协议分析仪的通信方法和装置 | |
CN103973519B (zh) | 一种基于pc平台的交换中心仿真测试系统和方法 | |
CN113031569B (zh) | 一种核聚变控制系统的监听方法、系统、终端及介质 | |
CN111585741B (zh) | 一种将非时间敏感网络数据接入时间敏感网络的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160127 |
|
RJ01 | Rejection of invention patent application after publication |