CN116915667B - 网络流量采集方法、装置、电子设备及存储介质 - Google Patents

网络流量采集方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116915667B
CN116915667B CN202310895170.XA CN202310895170A CN116915667B CN 116915667 B CN116915667 B CN 116915667B CN 202310895170 A CN202310895170 A CN 202310895170A CN 116915667 B CN116915667 B CN 116915667B
Authority
CN
China
Prior art keywords
network
network card
data packet
network interface
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.)
Active
Application number
CN202310895170.XA
Other languages
English (en)
Other versions
CN116915667A (zh
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.)
Shanghai Dragon Technology Co ltd
Original Assignee
Shanghai Dragon Technology Co 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 Shanghai Dragon Technology Co ltd filed Critical Shanghai Dragon Technology Co ltd
Priority to CN202310895170.XA priority Critical patent/CN116915667B/zh
Publication of CN116915667A publication Critical patent/CN116915667A/zh
Application granted granted Critical
Publication of CN116915667B publication Critical patent/CN116915667B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及通信技术领域,尤其是涉及一种网络流量采集方法、装置、电子设备及存储介质。网络流量采集方法包括:获取待采集设备的目标网络接口,建立与目标网络接口对应的网卡的通信通道;获取网卡对应的网络流量采集配置参数;基于通信通道,按照网络流量采集配置参数检测网卡生成的数据包;基于通信通道,捕获网卡生成的数据包进行分析,确定对应的网络流量。避免使用操作系统内核才能访问网卡,提升了网络流量采集的效率。

Description

网络流量采集方法、装置、电子设备及存储介质
技术领域
本申请涉及通信技术领域,尤其是涉及一种网络流量采集方法、装置、电子设备及存储介质。
背景技术
网络流量采集是指通过监控和捕获网络上的数据流量来获取关于网络通信的信息。在网络中,设备之间通过数据包交换信息。网络流量采集可以捕获这些数据包并分析其中的信息,包括源地址、目的地址、通信协议、数据大小、时间戳等等。网络流量采集可以用于网络安全监控、网络性能分析、网络故障排除、计费管理等方面。常见的网络流量采集方法包括网络抓包、网络嗅探等。
目前市面上有许多的流量采集工具,例如抓包神器(Transmission ControlProtocol Dump,TCPdump)、猎豹(Suricata Intrusion Detection and PreventionSystem,Suricata)等,这些同类的工具一般都是在要采集网络流量的设备的操作系统内核中工作的软件工具,依赖于依赖于操作系统提供的网络协议栈来采集、处理数据包,来采集网络流量。这样的方式需要使用操作系统内核才能访问网络接口卡,进而获取网络流量,网络流量采集的效率较低。
发明内容
为了提升网络流量采集的效率,本申请提供一种网络流量采集方法、装置、电子设备及存储介质。
第一方面,本申请提供网络流量采集方法,包括:
获取待采集设备的目标网络接口,建立与所述目标网络接口对应的网卡的通信通道;
获取所述网卡对应的网络流量采集配置参数;
基于所述通信通道,按照所述网络流量采集配置参数检测所述网卡生成的数据包;
基于所述通信通道,捕获所述网卡生成的数据包进行分析,确定对应的网络流量。
通过采用上述技术方案,可以与目标网络接口对应的网卡建立通信通道,基于此按照网络流量采集配置参数检测网卡生成的数据包,进而捕获并分析网卡生成的数据包。避免通过操作系统内核的数据传输路径进行网络流量采集,直接进行网卡的访问,减少了网络流量采集过程的步骤,提升了网络流量采集的效率。
可选的,所述方法还包括:
检测待采集设备的可用网络接口;
根据网络接口属性,识别所述可用网络接口中与所述网络接口属性对应的网络接口;
所述获取待采集设备的目标网络接口,包括:
获取所述可用网络接口中与所述网络接口属性对应的网络接口,并确定为待采集设备的目标网络接口。
通过采用上述技术方案,从检测到的可用网络接口中识别出网络接口属性对应的网络接口,确定为待采集设备的目标网络接口,提升了网络流量采集对象的准确性,减少资源浪费。
可选的,所述建立与所述目标网络接口对应的网卡的通信通道,包括:
检测所述待采集设备的所述目标网络接口对应的网卡的设备标识和网卡信息;
根据所述设备标识、所述网卡信息和内存映射机制,将所述网卡的存储空间映射到内核的地址空间中,以生成通信通道,访问所述目标网络接口对应的网卡。
通过采用上述技术方案,通过设备标识、网卡信息和内存映射机制,将网卡的存储空间映射到内核的地址空间,使得流量采集设备可以通过读写映射位置,即在内核的地址空间中的内存地址,来访问和配置网卡的存储空间,实现对网卡直接的控制和管理。通过读写网卡存储空间映射的位置的地址来接收和发送网卡生成的数据包,减少了网络流量采集过程中的拷贝和中间缓冲,提升了网络流量采集的效率。
可选的,所述网卡信息包括网卡型号,所述网卡的存储空间包括所述网卡的寄存器;所述方法还包括:
根据所述网卡型号,初始化对应网卡的寄存器。
通过采用上述技术方案,根据网卡型号对网卡的寄存器进行了初始化,便于根据实际需求和配置要求对网卡进行合适的设置,提高网络性能、可靠性和安全性,实现定制化的网络功能和性能要求。
可选的,所述方法还包括:
根据网络流量采集需求,对所述网卡的工作属性进行配置,以基于所述通信通道,按照所述网络流量采集配置参数检测所述网卡的数据包,所述工作属性包括工作模式、中断设置和缓冲区配置。
通过采用上述技术方案,根据网络流量采集需求,对网卡的工作属性进行配置,可以定制化地满足网络流量采集需求,优化网络性能、加强安全性、提高资源利用率,并帮助排除和调试网络故障。
可选的,所述捕获所述网卡生成的数据包进行分析,确定对应的网络流量,包括:
根据所述网卡生成的数据包的存储地址,从所述内核的地址空间中捕获所述网卡生成的数据包;
解析所述网卡生成的数据包,得到对应的帧头信息和有效载荷;
分析所述帧头信息和所述有效载荷,确定对应的网络流量。
通过采用上述技术方案,通过分析数据包,得到帧头信息和有效载荷,进而确定网络流量。提升了网络流量的可靠性。
可选的,所述方法还包括:
当接收到数据包传输请求时,分析所述数据包传输请求,确定对应的数据包和请求来源;
查找所述数据包的存储地址,并将所述存储地址所述数据包发送到所述请求来源。
通过采用上述技术方案,在接收到数据包传输请求时,将想要获取的数据包的存储地址发送给请求来源,避免数据包拷贝过程占用的存储空间,也减少了数据包发送的时长。
第二方面,本申请提供一种网络流量采集装置,包括:
通信通道建立模块,用于获取待采集设备的目标网络接口,建立与所述目标网络接口对应的网卡的通信通道;
配置参数获取模块,用于获取所述网卡对应的网络流量采集配置参数;
数据包检测模块,用于基于所述通信通道,按照所述网络流量采集配置参数检测所述网卡生成的数据包;
网络流量确定模块,用于基于所述通信通道,捕获所述网卡生成的数据包进行分析,确定对应的网络流量。
可选的,所述网络流量采集装置还包括网络接口识别模块,用于:
检测待采集设备的可用网络接口;
根据网络接口属性,识别所述可用网络接口中与所述网络接口属性对应的网络接口;
所述通信通道建立模块具体用于:
获取所述可用网络接口中与所述网络接口属性对应的网络接口,并确定为待采集设备的目标网络接口。
可选的,所述通信通道建立模块具体用于:
检测所述待采集设备的所述目标网络接口对应的网卡的设备标识和网卡信息;
根据所述设备标识、所述网卡信息和内存映射机制,将所述网卡的存储空间映射到内核的地址空间中,以生成通信通道,访问所述目标网络接口对应的网卡。
可选的,所述网卡信息包括网卡型号,所述网卡的存储空间包括所述网卡的寄存器;所述网络流量采集装置还包括初始化模块,用于:
根据所述网卡型号,初始化对应网卡的寄存器。
可选的,所述网络流量采集装置还包括工作属性配置模块,用于:
根据网络流量采集需求,对所述网卡的工作属性进行配置,以基于所述通信通道,按照所述网络流量采集配置参数检测所述网卡的数据包,所述工作属性包括工作模式、中断设置和缓冲区配置。
可选的,所述网络流量确定模块具体用于:
根据所述网卡生成的数据包的存储地址,从所述内核的地址空间中捕获所述网卡生成的数据包;
解析所述网卡生成的数据包,得到对应的帧头信息和有效载荷;
分析所述帧头信息和所述有效载荷,确定对应的网络流量。
可选的,所述网络流量采集装置还包括数据包发送模块,用于:
当接收到数据包传输请求时,分析所述数据包传输请求,确定对应的数据包和请求来源;
查找所述数据包的存储地址,并将所述存储地址所述数据包发送到所述请求来源。
第三方面,本申请提供一种电子设备,包括:存储器和处理器,所述存储器上存储有能够被处理器加载并执行第一方面的方法的计算机程序。
第四方面,本申请提供一种计算机可读存储介质,存储有能够被处理器加载并执行第一方面的方法的计算机程序。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的一种应用场景示意图;
图2为本申请一实施例提供的一种网络流量采集方法的流程图;
图3为本申请一实施例提供的一种数据包传输示意图;
图4为本申请一实施例提供的一种直接访问网络接口的流程示意图;
图5为本申请一实施例提供的一种数据包处理流程;
图6为本申请一实施例提供的一种网络流量采集装置的结构示意图;
图7为本申请一实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本申请实施例作进一步详细描述。
现在市面上有很多流量采集的工具,例如TCPdump、Wireshark、Suricata等,这些同类产品一般都是在操作系统内核中工作的软件工具,依赖于操作系统提供的网络协议栈来处理数据包,并不能直接访问网络接口卡(NIC)和其他硬件设备。目前使用流量采集工具采集网络流量时需要使用操作系统内核的数据传输路径,由操作系统内核控制操作网络接口卡,使得流量采集工具能获取网络流量。在遇到大规模的数据包流时,都要按照这样的数据传输路径采集网络流量,导致采集过程的效率很低。除此之外,由于需要对数据包进行复制、存储、发送等,需要占用的计算机资源也较多。
基于此,本申请提供一种网络流量采集方法、装置、电子设备及存储介质。通过建立与待采集设备的目标网络接口对应的网卡的通信通道,按照采集配置参数,直接采集到网络接口对应的网卡,即网络接口卡的数据包,进行分析确定对应的网络流量,避免通过操作系统内核的数据传输路径采集网络流量,提升了采集过程的效率。
图1为本申请提供的一种应用场景示意图。在图1的应用场景中,网络流量采集方法可以搭载在流量采集设备上。流量采集设备可以与待采集设备的目标网络接口对应的网卡建立通信通道,检测网卡生成的数据包进行分析,确定对应的网络流量。
具体的实现方式可以参考以下实施例。
图2为本申请一实施例提供的一种网络流量采集方法的流程图,本实施例的方法可以应用于以上场景中的流量采集设备。如图2所示的,该方法包括:
S201、获取待采集设备的目标网络接口,建立与目标网络接口对应的网卡的通信通道。
待采集设备可以用于表示需要进行网络流量采集的电子设备。目标网络接口可以为与流量采集设备兼容的网络接口。
具体的,待采集设备的目标网络接口可以预先设备并存储在流量采集设备中,可以通过安装自设的驱动程序,向采集设备的操作系统发送请求以建立与目标网络接口对应的网卡的通信通道。流量采集设备可以通过控制自设的驱动程序来管理和控制目标网络接口对应的网卡。
S202、获取网卡对应的网络流量采集配置参数。
网络流量采集配置参数可以用于表示如何进行网络流量的采集,可以包括设置流量采集设备的内存池的大小、分配算法、内存块大小等参数,还可以包括设置用于管理数据包的收发和处理的队列的大小、队列的类型、队列的操作方式等,还可以包括设置目标网络接口对应的网卡的速率、中断处理等参数。
具体的,网络流量采集配置参数可以是预先根据待采集设备的设备情况进行设置并存储在流量采集设备中,可以直接进行获取。
在一些实现方式中,可以基于大数据预先设置不同网络接口的不同网卡的属性对应的网络流量采集配置参数。流量采集设备可以通过步骤S201建立的通信通道访问目标网络接口对应的网卡,确定网卡的属性,然后基于网卡的属性对应查找获取网络流量采集配置参数。
S203、基于通信通道,按照网络流量采集配置参数检测网卡生成的数据包。
数据包是在计算机网络中传输的数据单元,它是网络通信中数据的封装和传输方式。数据包通常包含了源地址、目标地址、协议信息、数据内容等。这些数据包在网络中以离散的形式通过各种网络设备和链路传输。
具体的,流量采集设备可以通过通信通道实时或者按照一定的访问频率,访问目标网络接口对应的网卡的内存区域和寄存器,网卡生成的数据包被存放在网卡的内存区域和/或寄存器中。因此流量采集设备可以基于通信通道,按照网络流量采集配置参数检测到网卡的数据包。
在一些实现方式中,可以基于网络流量采集配置参数来设置检测网卡的频率。
S204、基于通信通道,捕获网卡生成的数据包进行分析,确定对应的网络流量。
网络流量可以用于表示在一段时间内通过网络传输的数据包携带的数据总量。
具体的,当步骤S203检测到网卡生成的数据包时,流量采集设备可以将数据包复制到流量采集设备的内存池中进行分析,确定网络流量的来源、目的地、数据载荷、延迟以及贷款信息等内容。
在一些实现方式中,可以利用内存映射机制将网卡生成的数据包映射到流量采集设备的操作系统内核的地址空间中进行分析。
本实施例可以与目标网络接口对应的网卡建立通信通道,基于此按照网络流量采集配置参数检测网卡生成的数据包,进而捕获并分析网卡生成的数据包。避免通过操作系统内核的数据传输路径进行网络流量采集,直接进行网卡的访问,减少了网络流量采集过程的步骤,提升了网络流量采集的效率。
需要说明的是,流量采集设备和待采集设备可以为同一电子设备,可以对自身的网卡产生的数据包进行捕获并分析。
在一些实施例中,可以先检测待采集设备的可用网络接口,在其中确定出网络接口属性对应的网络接口,作为目标网络接口。具体的,检测待采集设备的可用网络接口;根据网络接口属性,识别可用网络接口中与网络接口属性对应的网络接口。
相对应的,获取可用网络接口中与网络接口属性对应的网络接口,并确定为待采集设备的目标网络接口。
可用网络接口可以包括待采集设备上可以进行网络流量采集的、正常工作的所有网络接口。网络接口属性可以用于表示与流量采集设备兼容的,可以与流量采集设备进行信息交互的网络接口的属性,可以包括网络接口支持的最大数据传输速率或带宽容量、支持的数据传输方式以及支持的安全性特性和加密算法等。
具体的,待采集设备在出厂时可能会配备用对应的设备规格信息,流量采集设备可以预先将设备规格信息进行存储。流量采集设备可以先向待采集设备的各个网络接口发送检测信号,通过判断是否有回应来确定是否为可用网络接口。然后可以基于预先存储的设备规格信息来确定每一可用网络接口的属性,与网络接口属性进行对比,识别出可用网络接口中与网络接口属性一致的网络接口,将其确定为待采集设备的目标网络接口。
本实施例从检测到的可用网络接口中识别出网络接口属性对应的网络接口,确定为待采集设备的目标网络接口,提升了网络流量采集对象的准确性,减少资源浪费。
在一些实施例中,可以基于内存映射机制,将网卡的存储空间映射到内核的地址空间,来生成通信通道。具体的,检测待采集设备的目标网络接口对应的网卡的设备标识和网卡信息;根据设备标识、网卡信息和内存映射机制,将网卡的存储空间映射到内核的地址空间中,以生成通信通道,访问目标网络接口对应的网卡。
网卡的设备标识网卡的设备标识也可以被称为MAC地址,是由6个十六进制数字(0-9和A-F)组成的48位(12个字符)的标识符。每个网卡都有一个唯一的MAC地址,可以用于在网络中唯一标识该网卡。网卡信息可以包括网卡的名称、网卡的型号、网卡的子网掩码以及发送数据包的默认网关等信息。网卡的存储空间可以用于存储网卡生成的数据包。内存映射机制是一种访问和处理计算机内存的机制,它允许进程将磁盘上的文件或其他设备中的数据映射到其虚拟地址空间内的一部分。内核的地址空间可以为流量采集设备的地址存储空间,可以预先将其进行划分,确定不同的内容映射到内核的地址空间后存储的位置。
具体的,可以先加载自设的驱动程序,将自设的驱动程序载入流量采集设备的内核的地址空间,然后控制自设的驱动程序对待采集设备进行读取,得到网卡的设备标识和网卡信息。然后可以按照网卡的设备标识和网卡信息对应的映射情况,通过内存映射机制将网卡的存储空间映射到流量采集设备的内核的地址空间中,并且记录对应的映射位置,以建立通信通道。
本实施例通过设备标识、网卡信息和内存映射机制,将网卡的存储空间映射到内核的地址空间,使得流量采集设备可以通过读写映射位置,即在内核的地址空间中的内存地址,来访问和配置网卡的存储空间,实现对网卡直接的控制和管理。通过读写网卡存储空间映射的位置的地址来接收和发送网卡生成的数据包,减少了网络流量采集过程中的拷贝和中间缓冲,提升了网络流量采集的效率。
在一些实施例中,网卡信息包括网卡型号,网卡的存储空间包括网卡的寄存器。可以对网卡的寄存器进行初始化。具体的,根据网卡的型号,初始化网卡的寄存器。
不同的网卡型号的网卡的寄存器的初始化方式不相同,因此可以根据网卡型号确定对应网卡的初始化方式。
具体的,可以利用自设的驱动程序使用网卡型号适合的API函数、库对网卡进行初始化。
在一些实现方式中,可以选择与网卡型号匹配的开发工具进行初始化。
在另一些实现方式中,可以结合硬件规范网卡进行初始化。
本实施例根据网卡型号对网卡的寄存器进行了初始化,便于根据实际需求和配置要求对网卡进行合适的设置,提高网络性能、可靠性和安全性,实现定制化的网络功能和性能要求。
在一些实施例中,可以根据网络流量采集需求对网卡的工作属性进行配置。具体的,根据网络流量采集需求,对网卡的工作属性进行配置,以基于通信通道,按照网络流量采集配置参数检测网卡的数据包,工作属性包括工作模式、中断设置和缓冲区配置。
网络流量采集需求可以用于表示工作人员想要采集的网络流量的形式,可以包括配置流量采集设备的内存池,还可以包括配置上述实施例中涉及的队列,可以利用队列来管理数据包的收发和处理,还可以包括网卡的相关参数和操作模式的配置。在一些实现方式中,若工作人员没有网络流量采集需求,流量采集设备可以按照预存的采集方式进行采集。网卡的工作属性可以包括工作模式、中断设置和缓冲区配置。工作模式可以包括半双工模式、全双工模式以及节能模式等。中断设置可以是中断处理程序的设置,用于处理网卡的中断信号,当有数据包到达网卡或者其他事件发生时,网卡会触发中断,中断处理程序可以被流量采集设备调用来处理相应的事件。
具体的,流量采集设备可以接收工作人员发送的网络流量采集需求并进行分析,确定出网卡的工作模式、中断设置等的配置需求,对应进行参数的配置。配置好网卡的工作属性后,可以基于通信通道,按照网络流量采集配置参数检测网卡的数据包。
本实施例根据网络流量采集需求,对网卡的工作属性进行配置,可以定制化地满足网络流量采集需求,优化网络性能、加强安全性、提高资源利用率,并帮助排除和调试网络故障。
在一些实施例中,可以通过解析数据包得到枕头信息和有效载荷确定对应的网络流量。具体的,根据网卡生成的数据包的存储地址,从内核的地址空间中捕获网卡生成的数据包;解析网卡生成的数据包,得到对应的帧头信息和有效载荷;分析帧头信息和有效载荷,确定对应的网络流量。
网卡生成的数据包的存储地址可以用于表示数据包存储在网卡的存储空间中的地址。帧头信息可以是数据包中数据帧的起始部分,可以包括帧起开始标志以及数据帧长度和数据类型等信息。有效载荷可以用于表示通信中携带的实际数据部分,携带了数据包传输的实际信息,是通信中真正需要传递和接收的数据。可以对数据包的存储进行配置,可以按照一定的位置排列,将数据包依次进行存储,也可以按照数据包类型,存储到对应的区域,然后按照顺序存储并记录。
具体的,可以通过通信通道访问网卡,确定数据包的存储地址,然后从内核的地址空间中,在对应的存储地址获取数据包。将数据包进行解析,得到帧头信息和有效载荷,通过对帧头信息和有效载荷,能够确定出对应的网络流量。
本实施例通过分析数据包,得到帧头信息和有效载荷,进而确定网络流量。提升了网络流量的可靠性。
在一些实施例中,当接收到数据包传输请求的时候,可以将存储地址发送给对应的请求来源。具体的,当接收到数据包传输请求时,分析数据包传输请求,确定对应的数据包和请求来源;查找数据包的存储地址,并将存储地址数据包发送到请求来源。
数据包传输请求可以是流量采集设备接收到的获取数据包的请求,可以包括想要获取的数据包和该请求的发送来源,即请求来源。
具体的,当接收到数据包传输请求时,可以分析数据包传输请求,确定请求来源和该请求来源想要获取的数据包。然后查找该数据包的存储地址,将存储地址发送给请求来源。
本实施例在接收到数据包传输请求时,将想要获取的数据包的存储地址发送给请求来源,避免数据包拷贝过程占用的存储空间,也减少了数据包发送的时长。
在另一些实施例中,现在市面上有许多的流量采集工具,下面是一些同类产品的信息:
1.TCPdump:TCPdump 是一款开源的命令行网络流量捕获工具,常用于捕获和分析网络数据包。它可以在多种操作系统上运行,并支持多种协议的数据包捕获和显示。
2.Wireshark:Wireshark 是一款功能强大的网络协议分析工具,它可以捕获和分析网络数据包,并提供可视化的界面来查看和解析数据包的内容和协议信息。Wireshark支持多种协议和数据包过滤选项。
3.Suricata:Suricata 是一个开源的入侵检测和网络安全监测系统,它可以捕获和分析网络流量,并进行实时的入侵检测和网络流量分析。Suricata 支持多种协议解析和规则匹配。
4.Bro/Zeek:Bro(现已更名为 Zeek)是一个网络流量分析平台,它可以捕获和分析网络数据包,并提供高级的协议解析和网络流量分析功能。Bro/Zeek 支持自定义的脚本编程,用于实现特定的网络流量分析逻辑。
现有的同类产品一般都是在操作系统内核中工作的软件工具,依赖于操作系统提供的网络协议栈来处理数据包。并不能直接访问网络接口卡(NIC)和其他硬件设备,通过操作系统内核的数据传输路径,在高速网络环境下可能无法处理大规模的数据包流,导致吞吐量和延迟的限制。同时由于依赖于操作系统内核进行网络数据包的捕获和处理,这会引入较高的延迟和额外的系统开销。
本申请旨在实现高性能的网络流量采集。为此,提供了一套组优化的用户态库和驱动程序(自设的驱动程序),使开发人员能够直接访问网络接口卡和其他硬件设备。通过绕过操作系统内核的数据传输路径,实现了低延迟和高吞吐量的目标。
本申请允许应用程序直接访问网络接口卡和硬件设备,绕过操作系统内核的数据路径,从而实现了更低的延迟和更高的吞吐量。还提供了一组丰富的库和驱动程序,使 开发人员能够构建高度定制化的数据平面应用程序。这些工具赋予开发人员对底层硬件的细粒度控制,以满足特定需求。
总而言之,通过提供组优化的用户态库和驱动程序,本申请实现了直接访问网络接口卡和硬件设备的能力,绕过操作系统内核的数据路径,从而实现了低延迟和高吞吐量。此外,提供的库和驱动程序还赋予开发人员构建定制化数据平面应用程序的能力,并提供对底层硬件的精细控制。
本申请的主要目的在于实现高性能的网络流量采集,使用本申请的具体流程可以参考如图3所示的数据包传输示意图。
首先进行网络接口绑定,将网络接口绑定到的驱动程序,这样可以使的申请直接访问网络接口卡而不经过操作系统内核;
第二步是初始化配置,一旦网络接口绑定到本申请的驱动程序,应用程序需要进行初始化和配置。这包括创建相关环境和配置内存池、队列、设备等。这些步骤可以使用本申请提供的初始化和配置函数来完成;
第三步是接收数据包:本申请需要设置接收队列以准备接收数据包。这可以通过配置网络接口的接收队列来实现。一旦设置完毕,应用程序可以使用本申请提供的接收函数来从接收队列中读取数据包;
第四步是数据包处理:一旦数据包被接收到本申请的应用程序中,可以对其进行必要的处理。这可能包括解析数据包头部、提取有效载荷、执行网络分析或应用特定的处理逻辑。
本申请提供了一组功能丰富的库,可以对数据包的各个方面进行特定的处理,例如数据包缓冲区处理、以太网协议处理、IP协议处理等,可以帮助进行数据包处理;
第五步是数据包发送:如果需要将数据包发送回网络或将其传递给其他应用程序,本申请可以使用发送函数将数据包发送到指定的网络接口队列中。
同时本申请提供了丰富的统计和监控功能,可以用于监视网络流量的性能和状态。通过的统计API,应用程序可以获取关于接收、发送数据包数量、丢包情况以及队列状态等信息。
为了实现直接访问网络接口卡,绕过操作系统内核的干预,可以参考如图4所示的直接访问网络接口的流程示意图,本申请采用了一下的技术和方法:
1.用户态驱动程序:提供了一个用户态驱动程序,允许应用程序在用户空间直接与网络接口卡进行交互,而无需通过操作系统内核。
2.网络接口绑定:在初始化阶段,将网络接口卡绑定到用户态驱动程序中。这个绑定过程通常需要在操作系统内核中执行,但通过特定的技术手段,使得绑定过程可以在用户空间完成。
3.数据传输路径的绕过:一旦网络接口卡成功绑定到用户态驱动程序,数据传输路径就被直接建立起来,绕过了操作系统内核的干预。应用程序可以直接通过用户态驱动程序与网络接口卡进行通信,发送和接收数据包。同时为了提高性能,采用了零拷贝技术。在数据传输过程中,应用程序可以直接访问网络接口卡的内存缓冲区,避免了数据在用户空间和内核空间之间的复制过程。通过上述过程绑定网络接口实现了直接访问网络接口卡,避免了操作系统内核的干预。这样可以显著提高网络流量采集的性能,并实现低延迟和高吞吐量的数据传输。
在接收数据包之后,本申请还提供了多种对数据包的处理功能,可以参考如图5所示的数据包处理流程,例如:
1.首先,本申请提供了功能强大的数据包解析功能。它可以识别不同协议(如以太网、IP、TCP、UDP等)的头部,并提供相应的解析函数。通过调用这些解析函数,应用程序可以从数据包中提取出各个协议头部的字段信息,如源/目的MAC地址、源/目的IP地址、源/目的端口等。
2.本申请还支持从数据包中提取有效载荷(Payload)。有效载荷通常包含了数据包中传输的实际数据,如HTTP请求/响应、文件内容等。应用程序可以使用本申请提供的函数,指定要提取的有效载荷的起始位置和长度,从而获取所需的数据。
3.网络分析:本申请还提供了丰富的网络分析功能,以帮助应用程序进行深入的网络分析。这些功能包括流量统计、协议识别、流量分析等。应用程序可以调用相关函数,获取有关数据包流量统计信息、识别协议类型、执行流量分析算法等方面的结果。
4.应用特定的处理逻辑:本申请允许应用程序定义和执行特定的处理逻辑。应用程序可以根据自身的需求,在接收到数据包后,调用自定义的处理函数,对数据包进行应用特定的处理操作。这可以包括应用层协议处理、安全策略执行、业务逻辑判断等。总的来说,本申请提供通过解析数据包头部、提取有效载荷、执行网络分析和应用特定的处理逻辑等功能,为应用程序提供了丰富的数据包处理能力。应用程序可以使用这些功能来实现各种网络应用,如网络监控、安全分析、协议分析等,从而充分发挥网络流量捕获和处理的潜力。
基于上述专利的技术方案,以网络流量监控和分析为例,描述一个采用该技术方案处理问题的实例,按照处理步骤一步一步进行解释说明:
实例:网络流量实时监控和分析
步骤1:网络接口绑定和初始化配置
首先,应用程序通过调用本申请提供的函数,将网络接口绑定到驱动程序。这样,应用程序可以直接访问网络接口卡而不需要经过操作系统内核。接着,应用程序使用本申请提供的初始化和配置函数,创建相关的环境和配置内存池、队列和设备等。这些步骤确保了应用程序与网络接口卡的连接,并准备好接收和处理数据包。
步骤2:接收数据包
一旦网络接口绑定到驱动程序并完成初始化配置,应用程序可以开始接收数据包。通过配置网络接口的接收队列,确保了应用程序可以准备好接收数据包。应用程序可以使用本申请提供的接收函数,从接收队列中读取数据包。这样,可以实时地捕获网络流量,并将其传递给下一步进行处理。
步骤3:数据包处理
当数据包被接收到应用程序中时,可以对其进行特定的处理操作。首先,使用本申请提供的解析函数,解析数据包的头部,提取出源/目的IP地址、源/目的端口等信息。接着,可以根据应用的需求,进一步提取数据包的有效载荷,如HTTP请求/响应等。通过这些处理步骤,可以获得对数据包的详细信息,并为后续的分析和处理做准备。
步骤4:数据包分析和应用特定处理逻辑
在这一步骤中,可以利用本申请提供的丰富的库函数进行数据包分析和应用特定处理逻辑的执行。可以使用库函数执行各种网络分析,如流量统计、协议识别等。同时,可以根据应用的需求定义和调用自定义的处理函数,进行特定的业务逻辑判断和处理操作。这样,可以实现针对网络流量的实时监控和精确分析。
本申请相对于现有技术具有高性能的网络流量采集、低延迟和高吞吐量的数据处理能力,以及细粒度控制和定制化应用的优势。通过直接访问网络接口卡、绕过操作系统内核的数据传输路径,本申请实现了数据包的快速捕获和处理,提供了更高效、更灵活的网络流量管理和应用开发方式。
图6为本申请一实施例提供的一种网络流量采集装置的结构示意图,如图6所示的,本实施例的网络流量采集装置600包括:通信通道建立模块601、配置参数获取模块602、数据包检测模块603和网络流量确定模块604。
通信通道建立模块601,用于获取待采集设备的目标网络接口,建立与目标网络接口对应的网卡的通信通道;
配置参数获取模块602,用于获取网卡对应的网络流量采集配置参数;
数据包检测模块603,用于基于通信通道,按照网络流量采集配置参数检测网卡生成的数据包;
网络流量确定模块604,用于基于通信通道,捕获网卡生成的数据包进行分析,确定对应的网络流量。
可选的,网络流量采集装置600还包括网络接口识别模块605,用于:
检测待采集设备的可用网络接口;
根据网络接口属性,识别可用网络接口中与网络接口属性对应的网络接口;
通信通道建立模块601具体用于:
获取可用网络接口中与网络接口属性对应的网络接口,并确定为待采集设备的目标网络接口。
可选的,通信通道建立模块601具体用于:
检测待采集设备的目标网络接口对应的网卡的设备标识和网卡信息;
根据设备标识、网卡信息和内存映射机制,将网卡的存储空间映射到内核的地址空间中,以生成通信通道,访问目标网络接口对应的网卡。
可选的,网卡信息包括网卡型号,网卡的存储空间包括网卡的寄存器;网络流量采集装置600还包括初始化模块606,用于:
根据网卡型号,初始化对应网卡的寄存器。
可选的,网络流量采集装置600还包括工作属性配置模块607,用于:
根据网络流量采集需求,对网卡的工作属性进行配置,以基于通信通道,按照网络流量采集配置参数检测网卡的数据包,工作属性包括工作模式、中断设置和缓冲区配置。
可选的,网络流量确定模块604具体用于:
根据网卡生成的数据包的存储地址,从内核的地址空间中捕获网卡生成的数据包;
解析网卡生成的数据包,得到对应的帧头信息和有效载荷;
分析帧头信息和有效载荷,确定对应的网络流量。
可选的,网络流量采集装置600还包括数据包发送模块608,用于:
当接收到分析数据包传输请求时,确定对应的数据包和请求来源;
查找数据包的存储地址,并将存储地址数据包发送到请求来源。
本实施例的装置,可以用于执行上述任一实施例的方法,其实现原理和技术效果类似,此处不再赘述。
图7为本申请一实施例提供的一种电子设备的结构示意图,如图7所示,本实施例的电子设备700可以包括:存储器701和处理器702。
存储器701上存储有能够被处理器702加载并执行上述实施例中方法的计算机程序。
其中,处理器702和存储器701相连,如通过总线相连。
可选地,电子设备700还可以包括收发器。需要说明的是,实际应用中收发器不限于一个,该电子设备700的结构并不构成对本申请实施例的限定。
处理器702可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器702也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线可包括一通路,在上述组件之间传送信息。总线可以是PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器701可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器701用于存储执行本申请方案的应用程序代码,并由处理器702来控制执行。处理器702用于执行存储器701中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。还可以为服务器等。图7示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
本实施例的电子设备,可以用于执行上述任一实施例的方法,其实现原理和技术效果类似,此处不再赘述。
本申请还提供一种计算机可读存储介质,存储有能够被处理器加载并执行如上实施例中的方法的计算机程序。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (9)

1.一种网络流量采集方法,其特征在于,包括:
获取待采集设备的目标网络接口,建立与所述目标网络接口对应的网卡的通信通道;
获取所述网卡对应的网络流量采集配置参数;
基于所述通信通道,按照所述网络流量采集配置参数检测所述网卡生成的数据包;
基于所述通信通道,捕获所述网卡生成的数据包进行分析,确定对应的网络流量;
所述建立与所述目标网络接口对应的网卡的通信通道,包括:
检测所述待采集设备的所述目标网络接口对应的网卡的设备标识和网卡信息;
根据所述设备标识、所述网卡信息和内存映射机制,将所述网卡的存储空间映射到内核的地址空间中,以生成通信通道,访问所述目标网络接口对应的网卡。
2.根据权利要求1所述的方法,其特征在于,还包括:
检测待采集设备的可用网络接口;
根据网络接口属性,识别所述可用网络接口中与所述网络接口属性对应的网络接口;
所述获取待采集设备的目标网络接口,包括:
获取所述可用网络接口中与所述网络接口属性对应的网络接口,并确定为待采集设备的目标网络接口。
3.根据权利要求1所述的方法,其特征在于,所述网卡信息包括网卡型号,所述网卡的存储空间包括所述网卡的寄存器;所述方法还包括:
根据所述网卡型号,初始化对应网卡的寄存器。
4.根据权利要求1所述的方法,其特征在于,还包括:
根据网络流量采集需求,对所述网卡的工作属性进行配置,以基于所述通信通道,按照所述网络流量采集配置参数检测所述网卡的数据包,所述工作属性包括工作模式、中断设置和缓冲区配置。
5.根据权利要求1所述的方法,其特征在于,所述捕获所述网卡生成的数据包进行分析,确定对应的网络流量,包括:
根据所述网卡生成的数据包的存储地址,从所述内核的地址空间中捕获所述网卡生成的数据包;
解析所述网卡生成的数据包,得到对应的帧头信息和有效载荷;
分析所述帧头信息和所述有效载荷,确定对应的网络流量。
6.根据权利要求1所述的方法,其特征在于,还包括:
当接收到数据包传输请求时,分析所述数据包传输请求,确定对应的数据包和请求来源;
查找所述数据包的存储地址,并将所述存储地址所述数据包发送到所述请求来源。
7.一种网络流量采集装置,其特征在于,包括:
通信通道建立模块,用于获取待采集设备的目标网络接口,建立与所述目标网络接口对应的网卡的通信通道;
配置参数获取模块,用于获取所述网卡对应的网络流量采集配置参数;
数据包检测模块,用于基于所述通信通道,按照所述网络流量采集配置参数检测所述网卡生成的数据包;
网络流量确定模块,用于基于所述通信通道,捕获所述网卡生成的数据包进行分析,确定对应的网络流量;
所述通信通道建立模块在建立与所述目标网络接口对应的网卡的通信通道时,具体用于:
检测所述待采集设备的所述目标网络接口对应的网卡的设备标识和网卡信息;
根据所述设备标识、所述网卡信息和内存映射机制,将所述网卡的存储空间映射到内核的地址空间中,以生成通信通道,访问所述目标网络接口对应的网卡。
8.一种电子设备,其特征在于,包括:存储器和处理器;
所述存储器,用于存储程序指令;
所述处理器,用于调用并执行所述存储器中的程序指令,执行如权利要求1-6任一项所述的网络流量采集方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序;所述计算机程序被处理器执行时,实现如权利要求1-6任一项所述的网络流量采集方法。
CN202310895170.XA 2023-07-19 2023-07-19 网络流量采集方法、装置、电子设备及存储介质 Active CN116915667B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310895170.XA CN116915667B (zh) 2023-07-19 2023-07-19 网络流量采集方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310895170.XA CN116915667B (zh) 2023-07-19 2023-07-19 网络流量采集方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN116915667A CN116915667A (zh) 2023-10-20
CN116915667B true CN116915667B (zh) 2024-03-08

Family

ID=88350727

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310895170.XA Active CN116915667B (zh) 2023-07-19 2023-07-19 网络流量采集方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116915667B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101873337A (zh) * 2009-04-22 2010-10-27 电子科技大学 一种基于rt8169千兆网卡和Linux操作系统的零拷贝数据捕获技术
CN111431757A (zh) * 2020-02-18 2020-07-17 平安科技(深圳)有限公司 虚拟网络的流量采集方法及装置
CN113595832A (zh) * 2021-08-04 2021-11-02 中国光大银行股份有限公司 一种网络数据获取系统和方法
CN114039875A (zh) * 2021-10-30 2022-02-11 北京网聚云联科技有限公司 一种基于eBPF技术的数据采集方法、装置及系统
CN115514686A (zh) * 2021-06-23 2022-12-23 深信服科技股份有限公司 一种流量采集方法、装置及电子设备和存储介质
CN116389372A (zh) * 2023-03-10 2023-07-04 中国工商银行股份有限公司 网络流量的解析方法及其装置、电子设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10063444B2 (en) * 2016-02-29 2018-08-28 Red Hat, Inc. Network traffic capture analysis

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101873337A (zh) * 2009-04-22 2010-10-27 电子科技大学 一种基于rt8169千兆网卡和Linux操作系统的零拷贝数据捕获技术
CN111431757A (zh) * 2020-02-18 2020-07-17 平安科技(深圳)有限公司 虚拟网络的流量采集方法及装置
CN115514686A (zh) * 2021-06-23 2022-12-23 深信服科技股份有限公司 一种流量采集方法、装置及电子设备和存储介质
CN113595832A (zh) * 2021-08-04 2021-11-02 中国光大银行股份有限公司 一种网络数据获取系统和方法
CN114039875A (zh) * 2021-10-30 2022-02-11 北京网聚云联科技有限公司 一种基于eBPF技术的数据采集方法、装置及系统
CN116389372A (zh) * 2023-03-10 2023-07-04 中国工商银行股份有限公司 网络流量的解析方法及其装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN116915667A (zh) 2023-10-20

Similar Documents

Publication Publication Date Title
CN108268328B (zh) 数据处理装置及计算机
US8005022B2 (en) Host operating system bypass for packets destined for a virtual machine
EP2933955B1 (en) Deep packet inspection method, device, and coprocessor
US8312544B2 (en) Method and apparatus for limiting denial of service attack by limiting traffic for hosts
US7577707B2 (en) Method, system, and program for executing data transfer requests
US7499463B1 (en) Method and apparatus for enforcing bandwidth utilization of a virtual serialization queue
US8516509B2 (en) Methods and computer program products for monitoring system calls using safely removable system function table chaining
US7515596B2 (en) Full data link bypass
US7739736B1 (en) Method and apparatus for dynamically isolating affected services under denial of service attack
CN111711801B (zh) 视频数据传输方法、装置、服务器和计算机可读存储介质
US7627899B1 (en) Method and apparatus for improving user experience for legitimate traffic of a service impacted by denial of service attack
US8458366B2 (en) Method and system for onloading network services
CN108491278B (zh) 一种处理业务数据的方法和网络设备
US10452570B1 (en) Presenting physical devices to virtual computers through bus controllers emulated on PCI express endpoints
CN114025018A (zh) 数据处理方法、装置、网络设备及计算机可读存储介质
CN115269213A (zh) 数据接收方法、数据发送方法、装置、电子设备及介质
CN112650558A (zh) 数据处理方法、装置、可读介质和电子设备
CN115733832A (zh) 计算设备、报文接收方法、可编程网卡及存储介质
US7697434B1 (en) Method and apparatus for enforcing resource utilization of a container
CN116915667B (zh) 网络流量采集方法、装置、电子设备及存储介质
US6757904B1 (en) Flexible interface for communicating between operating systems
CN109189652A (zh) 一种封闭网络终端行为数据的采集方法及系统
US8050266B2 (en) Low impact network debugging
CN114780353B (zh) 一种文件日志监控方法、系统及计算设备
US7675920B1 (en) Method and apparatus for processing network traffic associated with specific protocols

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
GR01 Patent grant
GR01 Patent grant