一种网络报文抓包方法技术

技术编号:38240479 阅读:16 留言:0更新日期:2023-07-25 18:03
本发明专利技术涉及一种网络报文抓包方法,属于通信技术领域。该方法既方便开发人员在用户态处理特殊网络报文,又可以利用操作系统网络协议栈处理常用网络协议报文,且易于调试程序,降低了特种网络设备研发成本,缩短了项目周期。因此,这种应用程序抓包的方法具备效率高、时延低、自主可控等特征,且可以充分利用操作系统的网络协议栈处理一些常见报文。该方法适合应用在各类网络设备上,具有良好的市场前景。具有良好的市场前景。具有良好的市场前景。

【技术实现步骤摘要】
一种网络报文抓包方法


[0001]本专利技术属于通信
,具体涉及一种网络报文抓包方法。

技术介绍

[0002]随着信息技术的发展,网络设备的种类日异月新,其功能也在不断增强。之前市场上主流的网络设备报文处理软件技术主要有两种:
[0003]①
基于netfilter框架的网络报文处理,这种技术是在内核态开发,对研发人员的技术储备有较高的要求,且不易调试定位,其研发成本较高,项目周期也较长;
[0004]②
基于虚拟网卡的网络报文处理,这种技术主要是在用户态开发,但无法使用操作系统的网络协议栈,其常用的报文都需自行处理(例如:ARP、RARP、邻居发现、IGMP等),这对研发人员也需要一定的技术储备,研发成本也比较高。

技术实现思路

[0005](一)要解决的技术问题
[0006]本专利技术要解决的技术问题是:如何设计一种可自主控制抓取任何所需报文的方法,且不影响网络协议栈自身和其它应用程序的工作。
[0007](二)技术方案
[0008]为了解决上述技术问题,本专利技术提供了一种网络报文抓包方法,包括以下步骤:
[0009]第一步:创建虚拟网桥,并把收取特殊报文的网卡添加到虚拟网桥,然后网卡会切换到混杂模式,能接收所有经过它的报文,并将这些报文交给绑定的虚拟网桥处理;
[0010]第二步:在虚拟网桥上对报文进行预处理的埋点处注册报文分流器,所述报文分流器是一个特定的内核模块,虚拟网桥收到报文后会先交给报文分流器进行处理;r/>[0011]第三步:在特殊报文处理应用程序与报文分流器之间建立两个通道,其中一个通道用于发送控制命令,另一个通道用于传送特殊报文,特殊报文处理应用程序启动工作时,向报文分流器发送控制命令,报文分流器收到启动命令后更新状态为启动,并更新特殊报文参数;
[0012]第四步:网卡收到的报文交给虚拟网桥处理,虚拟网桥收到的报文交给报文分流器处理,报文分流器依据收到的控制命令判断是否为特殊报文:若为特殊报文则通过专用通道传送给特殊报文应用程序处理,非特殊报文则返回给系统网络协议栈处理;
[0013]第五步:特殊报文处理应用程序读取属于自己的特殊报文进行业务处理;系统网络协议栈继续处理非特殊报文;
[0014]第六步:特殊报文处理应用程序停止工作时,向报文分流器发送停止命令,报文分流器收到停止命令后更新状态为停止。
[0015]优选地,一个虚拟网桥可添加多个网卡。
[0016]优选地,对于linux操作系统,所述埋点位于netfilter的NF_BR_PRE_ROUTING钩子点。
[0017]优选地,所述控制命令包括特殊报文参数、启动命令。
[0018]本专利技术还提供了一种应用所述方法的网络设备。
[0019]优选地,所述网络设备是特种网络设备。
[0020]优选地,所述特种网络设备是网络密码机。
[0021]优选地,所述特种网络设备是网络测试仪。
[0022]本专利技术还提供了一种所述方法在通信
中的应用。
[0023]本专利技术还提供了一种所述网络设备在通信
中的应用。
[0024](三)有益效果
[0025]本专利技术提供的一种网络报文抓包方法是一种基于操作系统网络协议栈框架的应用程序可自主控制抓取任何所需报文的方法,且不影响网络协议栈自身和其它应用程序的工作。该方法既方便开发人员在用户态处理特殊网络报文,又可以利用操作系统网络协议栈处理常用网络协议报文,且易于调试程序,降低了特种网络设备研发成本,缩短了项目周期。因此,这种应用程序抓包的方法具备效率高、时延低、自主可控等特征,且可以充分利用操作系统的网络协议栈处理一些常见报文。该方法适合应用在各类网络设备上(尤其是特种网络设备,例如:网络密码机、网络测试仪等),具有良好的市场前景。
附图说明
[0026]图1为本专利技术的方法设计原理图;
[0027]图2为本专利技术中的报文分流器处理流程图。
具体实施方式
[0028]为使本专利技术的目的、内容和优点更加清楚,下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。
[0029]参考图1、图2,本专利技术提供的一种网络报文抓包方法包括以下步骤:
[0030]第一步:创建虚拟网桥,并把收取特殊报文的网卡添加到虚拟网桥,一个网桥可以添加多个网卡。然后网卡会切换到混杂模式(PromiscuousMode),能接收所有经过它的报文,并将这些报文交给绑定的虚拟网桥处理;
[0031]第二步:在虚拟网桥上对报文进行预处理的埋点处注册报文分流器(linux操作系统的埋点位于netfilter的NF_BR_PRE_ROUTING钩子点),此报文分流器是一个特定的内核模块。虚拟网桥收到报文后会先交给报文分流器进行处理。
[0032]第三步:在特殊报文处理应用程序与报文分流器之间建立两个通道,其中一个通道用于发送控制命令,另一个通道用于传送特殊报文,特殊报文处理应用程序启动工作时,向报文分流器发送控制命令(包括特殊报文参数、启动命令等),报文分流器收到启动命令后更新状态为启动,并更新特殊报文参数;
[0033]第四步:网卡收到的报文交给虚拟网桥处理,虚拟网桥收到的报文交给报文分流器处理。报文分流器依据收到的控制命令判断是否为特殊报文:若为特殊报文则通过专用通道传送给特殊报文应用程序处理,非特殊报文则返回给系统网络协议栈处理;
[0034]第五步:特殊报文处理应用程序读取属于自己的特殊报文进行业务处理;系统网络协议栈继续处理非特殊报文;
[0035]第六步:特殊报文处理应用程序停止工作时,向报文分流器发送停止命令,报文分流器收到停止命令后更新状态为停止。
[0036]可以看出,本专利技术通过把收取特殊报文的网卡添加到虚拟网桥,在虚拟网桥中注册报文分流器,在特殊报文处理应用程序与报文分流器之间,建立两个通道分别用于发送控制命令和传送特殊报文,且报文分流器依据收到的控制命令,把特殊报文通过专用通道直接传送给应用程序,把其它报文返回给系统网络协议栈继续处理,实现了自主控制抓取任何所需报文,该方法既方便开发人员在用户态处理特殊网络报文,又可以利用操作系统网络协议栈处理常用网络协议报文,且易于调试程序。
[0037]以上所述仅是本专利技术的优选实施方式,应当指出,对于本
的普通技术人员来说,在不脱离本专利技术技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本专利技术的保护范围。
本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种网络报文抓包方法,其特征在于,包括以下步骤:第一步:创建虚拟网桥,并把收取特殊报文的网卡添加到虚拟网桥,然后网卡会切换到混杂模式,能接收所有经过它的报文,并将这些报文交给绑定的虚拟网桥处理;第二步:在虚拟网桥上对报文进行预处理的埋点处注册报文分流器,所述报文分流器是一个特定的内核模块,虚拟网桥收到报文后会先交给报文分流器进行处理;第三步:在特殊报文处理应用程序与报文分流器之间建立两个通道,其中一个通道用于发送控制命令,另一个通道用于传送特殊报文,特殊报文处理应用程序启动工作时,向报文分流器发送控制命令,报文分流器收到启动命令后更新状态为启动,并更新特殊报文参数;第四步:网卡收到的报文交给虚拟网桥处理,虚拟网桥收到的报文交给报文分流器处理,报文分流器依据收到的控制命令判断是否为特殊报文:若为特殊报文则通过专用通道传送给特殊报文应用程序处理,非特殊报文则返回给系统网络协议栈处理;第五步:特殊报文处理应用程序读取属于自己的特殊报文进行业务处...

【专利技术属性】
技术研发人员:邓硕王震赵明亮王军王艳龚志力孙大东范京凯李正坤高小淼
申请(专利权)人:北京计算机技术及应用研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1