一种网关机、基于Linux系统的网络数据处理方法及装置与流程

文档序号:20211191发布日期:2020-03-31 11:03阅读:433来源:国知局
一种网关机、基于Linux系统的网络数据处理方法及装置与流程

本发明涉及一种网关机、基于linux系统的网络数据处理方法及装置,属于网络数据处理技术领域。



背景技术:

变电站内某些特定业务需求,比如syslog协议日志服务,采用的是udp/ip通信协议。而udp/ip协议数据传输的的不可靠性,需要对传输的网络报文进行抓包并处理,目前的网络数据抓包主要是利用linux系统下的抓包工具实现,抓包工具作为一个独立的进程运行,数据处理进程需要通过抓包进程交互才能获取抓包的数据,而数据处理进程和抓包进程之间的交互一般需要上百毫秒,导致数据处理进程无法及时对抓包进程抓取的数据进行处理。



技术实现要素:

本发明的目的提供一种网关机、基于linux系统的网络数据的处理方法及装置,以解决目前无法及时对抓包数据进行处理的问题。

本发明为解决上述技术问题而提供一种基于linux系统的网络数据处理方法,该处理方法包括以下步骤:

1)将抓包工具的源码设置在网络抓包库中,并将网络抓包库作为数据处理进程的运行库进行调用,使数据抓包和数据处理处于同一进程;

2)设置用于与网络抓包库交互的接口函数,在数据处理进程中通过调用接口函数实现数据抓包的启动、数据抓包的停止和对抓包数据的获取。

本发明通过设置一个存储有抓包工具源码的网络抓包库,将该网络抓包库作为数据处理进程的运行库,使抓包进程作为数据处理进程中的一个线程,数据处理进程可直接获取抓包的数据,避免了两个进程之间交互,提高了对抓包数据处理的及时性。

进一步地,为了实现对数据抓包的启动、数据抓包的停止和对抓包数据的获取的单独控制,所述的接口函数包括启动抓包控制接口函数、停止抓包控制接口函数和网络报文获取接口函数,启动抓包控制接口函数用于实现数据抓包的启动,停止抓包控制接口函数用于实现数据抓包的停止,网络报文获取接口函数用于实现对抓包数据的获取。

进一步地,为了实现对网络抓包库的初始化,该方法还包括在数据处理进程启动后,加载网络抓包库,并在网络抓包库加载成功后对网络抓包库进行初始化的步骤。

进一步地,为了实现数据的发送,在数据处理进程中还通过调用接口函数实现报文发送。

本发明还提供了一种基于linux系统的网络数据处理装置,该处理装置包括网络抓包库和数据处理模块,所述网络抓包库为数据处理模块的运行库,存储有抓包工具的源码,所述数据处理模块用于通过接口函数与网络抓包库交互,在数据处理进程中通过调用接口函数实现数据抓包的启动、数据抓包的停止和对抓包数据的获取。

本发明通过设置一个存储有抓包工具源码的网络抓包库,将该网络抓包库作为数据处理进程的运行库,使抓包进程作为数据处理进程中的一个线程,数据处理进程可直接获取抓包的数据,避免了两个进程之间交互,提高了对抓包数据处理的及时性。

进一步地,为了实现对数据抓包的启动、数据抓包的停止和对抓包数据的获取的单独控制,所述的接口函数包括启动抓包控制接口函数、停止抓包控制接口函数和网络报文获取接口函数,启动抓包控制接口函数用于实现数据抓包的启动,停止抓包控制接口函数用于实现数据抓包的停止,网络报文获取接口函数用于实现对抓包数据的获取。

进一步地,为了实现对网络抓包库的初始化,所述的数据模块还用于在数据处理进程启动后,加载网络抓包库,并在网络抓包库加载成功后对网络抓包库进行初始化。

进一步地,为了实现数据的发送,所述的数据处理进程还通过调用接口函数实现报文发送。

一种网关机,该网关机包括存储器和处理器,以及存储在所述存储器上并在所述处理器上运行的计算机程序,所述处理器与所述存储器相耦合,所述处理器执行所述计算机程序时实现本发明的基于linux系统的网络数据处理方法。

本发明通过设置一个存储有抓包工具源码的网络抓包库,将该网络抓包库作为数据处理进程的运行库,使抓包进程作为数据处理进程中的一个线程,数据处理进程可直接获取抓包的数据,避免了两个进程之间交互,提高了对抓包数据处理的及时性。

附图说明

图1是本发明的基于linux系统的网络数据处理原理示意图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步地说明。

网络数据处理方法的实施例

本发明通过设置一个存储有抓包工具源码的网络抓包库,并将该网络抓包库作为数据处理进程的运行库,使抓包进程作为数据处理进程中的一个线程。抓包工具是基于linux内核的af_packet协议族,获取网络数据效率高,利用网络抓包库中的抓包工具获取数据包后,数据包可直接被数据处理进程获取,以避免两个进程之间的数据交互来实现,提高对抓包数据处理的效率、及时性,该处理方法的实现原理如图1所示,下面进行具体说明。

构建一个网络抓包库,对应图1中的抓包工具library库,该网络抓包库中存储有抓包工具的源码,本实施例中选用的抓包工具为linux系统下使用的tcpdump抓包工具,将tcpdump抓包工具源码(源代码)存入图1中的抓包工具library库中。为了在处理处理进程中实现数据抓包的启动、数据抓包的停止和对抓包数据的获取,本发明设置有用于与抓包工具library库交互的相关接口函数。相关的接口函数包括启动抓包控制接口函数、停止抓包控制接口函数和网络报文获取接口函数。其中启动抓包控制接口函数用于启动数据抓包,用statrt_get_pack_process(char*argc)表示,argc为输入参数,用于定义捕获报文的网卡、ip等信息;停止抓包控制接口函数用于停止数据抓包的过程,用stop_get_pack_process(char*argc)表示;网络报文获取接口函数用于获取抓包数据,用get_pack_tcpdump_callback(unsignedchar*data,intlen,intmode)表示,参数data为网络报文字符串,len为长度,mode为自定义参数,标示通信协议等私有信息。

此外,为了实现对网络抓包库的初始化、反初始化以及网络报文的发送,相关的接口函数还包括初始化函数、反初始化函数和发送数据接口函数。初始化函数用于实现对网络抓包库的初始化,用init_tcpdump(char*argc)表示,反初始化函数用于释放网络抓包库中的系统资源,用uninit_tcpdump(char*argc)表示;发送数据接口函数用send_pack_process(unsignedchar*data,intlen,intmode,structsockaddr_insrvaddr)表示,其中参数data为网络报文字符串,len为长度,mode为自定义参数,表示通信协议等私有信息,srvaddr为网络连接信息。

该处理方法的实现过程如下:

1)启动数据处理进程,数据处理进程启动后,加载抓包工具library库,调用初始化函数init_tcpdump,实现对抓包工具library库的初始化。

2)初始化结束,调用启动抓包控制接口函数statrt_get_pack_process,通过该函数调取抓包工具library库中的抓包工具源码,运行相应的抓包工具源码开始捕获网络报文,并将捕获的网络报文存储在抓包工具library库中;如果需要停止抓包,调用停止抓包控制接口函数stop_get_pack_process停止抓包工具library库中的抓包功能。

3)抓包工具library库获取网络报文后,通过get_pack_tcpdump_callback函数实时传递给数据处理进程,数据处理进程。

4)当数据处理进程需要向网络上发送数据时,调用函数send_pack_process,通过抓包工具library库向网络发送数据。

作为其他实施方式,tcpdump抓包工具也可采用linux系统下的其他抓包工具,例如tcpflow等。

网关机的实施例

本实施例的网关机包括存储器和处理器,以及存储在存储器上并在处理器上运行的计算机程序,处理器与存储器相耦合,处理器执行计算机程序时实现本发明的基于linux系统的网络数据处理方法,具体的实现过程已在方法实施例中进行了详细说明,这里不再赘述。

网络数据处理装置的实例

本实施例的处理装置包括网络抓包库和数据处理模块,网络抓包库为数据处理模块的运行库,存储有抓包工具的源码,数据处理模块用于通过接口函数与网络抓包库交互,在数据处理进程中通过调用接口函数实现数据抓包的启动、数据抓包的停止和对抓包数据的获取。具体的实现过程已在方法的实施例中进行了详细说明,这里不再赘述。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1