CN117527654B - 一种用于网络流量抓包分析的方法及*** - Google Patents
一种用于网络流量抓包分析的方法及*** Download PDFInfo
- Publication number
- CN117527654B CN117527654B CN202410016891.3A CN202410016891A CN117527654B CN 117527654 B CN117527654 B CN 117527654B CN 202410016891 A CN202410016891 A CN 202410016891A CN 117527654 B CN117527654 B CN 117527654B
- Authority
- CN
- China
- Prior art keywords
- memory access
- direct memory
- remote direct
- traffic
- application
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000012545 processing Methods 0.000 claims abstract description 194
- 238000004458 analytical method Methods 0.000 claims abstract description 110
- 238000011144 upstream manufacturing Methods 0.000 claims description 46
- 230000005540 biological transmission Effects 0.000 claims description 45
- 238000004891 communication Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 14
- 230000002093 peripheral effect Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000012546 transfer Methods 0.000 description 7
- 239000000203 mixture Substances 0.000 description 6
- 230000008569 process Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供涉及计算机技术领域并提供一种用于网络流量抓包分析的方法及***。包括:通过报文转发处理引擎,接收远程直接内存访问上下行流量以及判断远程直接内存访问上下行流量是否符合匹配规则;当远程直接内存访问上下行流量符合匹配规则时,通过报文转发处理引擎,传输远程直接内存访问上下行流量到远程直接内存访问协议处理引擎,然后,通过远程直接内存访问协议处理引擎,上送与远程直接内存访问上下行流量对应的第一镜像流量到第二应用;通过第二应用,对第一镜像流量进行解包解析从而执行与远程直接内存访问上下行流量相关联的网络流量抓包分析。如此,有助于提升抓包分析性能和提升***效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种用于网络流量抓包分析的方法及***。
背景技术
为了定位网络问题,需要经常对网络流量进行抓包,然后对抓包的网络数据进行分析。在远程直接内存访问网络中,采用了远程直接内存访问技术,不需要中央处理器的干预,通过网卡参与直接将数据从一个***快速传输到另一个远程主机的计算机存储区,因此网络数据不经过***内核。现有技术中,对于远程直接内存访问网络的网络流量的抓包分析,一种方式是借助交换机,将需要抓包分析的远程直接内存访问流量复制到监控设备如专门的抓包仪,但是这样需要额外的端口和设备,成本高且不方便。另一种方式是利用常规的协议处理引擎和网络队列来处理远程直接内存访问流量,调用主机内核进行抓包分析,但是这样必须经过***内核,增加处理负担且需要占用额外的网络接口。
为此,本申请提供了一种用于网络流量抓包分析的方法及***。
发明内容
第一方面,本申请提供了一种用于网络流量抓包分析的方法。所述方法包括:通过报文转发处理引擎,接收远程直接内存访问上下行流量以及判断所述远程直接内存访问上下行流量是否符合匹配规则,其中,与所述远程直接内存访问上下行流量相关联的存储操作通过第一应用来执行,所述匹配规则至少基于不同于所述第一应用的第二应用的解包解析能力且指示至少一个网络接口;当所述远程直接内存访问上下行流量符合所述匹配规则时,通过所述报文转发处理引擎,传输所述远程直接内存访问上下行流量到远程直接内存访问协议处理引擎,然后,通过所述远程直接内存访问协议处理引擎,上送与所述远程直接内存访问上下行流量对应的第一镜像流量到所述第二应用;通过所述第二应用,对所述第一镜像流量进行解包解析从而执行与所述远程直接内存访问上下行流量相关联的网络流量抓包分析。
通过本申请的第一方面,无需依赖额外的设备和接口,可以制定灵活的网络流量抓包分析策略且高效地区分需要进行抓包分析的网络流量,可以应对复杂多变的网络环境及网络流量组成,不干预原本的针对远程直接内存访问上下行流量的处理流程,可以适配各种既有的用于远程直接内存访问数据传输的软硬件结构,而且充分利用远程直接内存访问技术在提升数据传输性能方面的优势,绕过***内核及节省了数据拷贝的开销,有助于提升抓包分析性能和提升***效率。
在本申请的第一方面的一种可能的实现方式中,用户态远程直接内存访问队列包括远程直接内存访问流量发送队列、远程直接内存访问流量接收队列、镜像流量接收队列和远程直接内存访问完成队列,其中,所述远程直接内存访问协议处理引擎利用所述远程直接内存访问流量发送队列和所述远程直接内存访问流量接收队列与所述第一应用之间传输所述远程直接内存访问上下行流量,所述远程直接内存访问协议处理引擎利用所述镜像流量接收队列向所述第二应用传输所述第一镜像流量,所述远程直接内存访问流量发送队列、所述远程直接内存访问流量接收队列以及所述镜像流量接收队列共用所述远程直接内存访问完成队列。
在本申请的第一方面的一种可能的实现方式中,所述远程直接内存访问上下行流量是远程直接内存访问上行流量或者远程直接内存访问下行流量,所述方法还包括:当所述远程直接内存访问上行流量不符合所述匹配规则时,通过所述报文转发处理引擎,传输所述远程直接内存访问上行流量到网络协议处理引擎,然后,通过所述网络协议处理引擎,传输所述远程直接内存访问上行流量到***内核协议处理层;通过所述***内核协议处理层,对所述远程直接内存访问上行流量进行解包解析得到解包解析结果,然后,通过所述第二应用,对所述解包解析结果执行与所述远程直接内存访问上行流量相关联的网络流量抓包分析。
在本申请的第一方面的一种可能的实现方式中,所述***内核协议处理层包括网络协议栈、网络设备层和网络驱动,所述网络协议处理引擎利用应用于非远程直接内存访问网络的网络队列向所述***内核协议处理层传输所述远程直接内存访问上行流量。
在本申请的第一方面的一种可能的实现方式中,所述报文转发处理引擎、所述远程直接内存访问协议处理引擎以及所述网络协议处理引擎均部署在远程直接内存访问网卡,所述***内核协议处理层部署在主机***的内核空间,所述第一应用和所述第二应用均部署在所述主机***的用户空间,所述远程直接内存访问网卡通过快捷***组件互连接口连接所述主机***。
在本申请的第一方面的一种可能的实现方式中,当所述远程直接内存访问下行流量不符合所述匹配规则时,通过所述报文转发处理引擎,传输所述远程直接内存访问下行流量到所述网络协议处理引擎,然后,通过所述网络协议处理引擎,传输所述远程直接内存访问下行流量到所述***内核协议处理层用于解包解析,以及,通过所述第二应用执行与所述远程直接内存访问下行流量相关联的网络流量抓包分析,或者,通过更新所述第二应用,然后,基于更新后的第二应用的解包解析能力来更新所述匹配规则得到更新后的匹配规则,从而使得所述远程直接内存访问下行流量符合所述更新后的匹配规则,以及,通过所述更新后的第二应用执行与所述远程直接内存访问下行流量相关联的网络流量抓包分析。
在本申请的第一方面的一种可能的实现方式中,所述方法还包括:通过报文转发处理引擎,接收非远程直接内存访问上行流量以及判断所述非远程直接内存访问上行流量是否符合所述匹配规则;当所述非远程直接内存访问上行流量符合所述匹配规则时,通过所述报文转发处理引擎,传输所述非远程直接内存访问上行流量到远程直接内存访问协议处理引擎,然后,通过所述远程直接内存访问协议处理引擎,上送与所述非远程直接内存访问上行流量对应的第二镜像流量到所述第二应用;通过所述第二应用,对所述第二镜像流量进行解包解析从而执行与所述非远程直接内存访问上行流量相关联的网络流量抓包分析。
在本申请的第一方面的一种可能的实现方式中,所述远程直接内存访问协议处理引擎利用所述镜像流量接收队列向所述第二应用传输所述第二镜像流量,所述远程直接内存访问协议处理引擎响应于所述第一镜像流量的传输完成或者所述第二镜像流量的传输完成添加完成队列条目到所述远程直接内存访问完成队列。
在本申请的第一方面的一种可能的实现方式中,所述远程直接内存访问流量发送队列和所述远程直接内存访问流量接收队列属于同一队列对,并且,所述第一应用通过提交发送队列工作请求到所述远程直接内存访问流量发送队列来管理所述远程直接内存访问流量发送队列以及通过提交接收队列工作请求到所述远程直接内存访问流量接收队列来管理所述远程直接内存访问流量接收队列,所述第二应用通过提交镜像流量接收队列工作请求到所述镜像流量接收队列来管理所述镜像流量接收队列。
在本申请的第一方面的一种可能的实现方式中,所述远程直接内存访问上下行流量符合所述匹配规则,包括:所述匹配规则所指示的所述至少一个网络接口包括用于收发所述远程直接内存访问上下行流量的网络接口。
在本申请的第一方面的一种可能的实现方式中,所述第二应用的解包解析能力包括所述第二应用所支持的至少一个通信标准和至少一个网络协议,其中,所述远程直接内存访问上下行流量符合所述匹配规则,包括:所述第二应用所支持的所述至少一个通信标准包括与所述远程直接内存访问上下行流量相关联的通信标准,并且,所述第二应用所支持的所述至少一个网络协议包括与所述远程直接内存访问上下行流量相关联的网络协议。
第二方面,本申请实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据上述任一方面的任一种实现方式的方法。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
第四方面,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的指令,当所述指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
第五方面,本申请实施例还提供了一种用于网络流量抓包分析的***。所述***包括:报文转发处理引擎,用于接收远程直接内存访问上下行流量以及判断所述远程直接内存访问上下行流量是否符合匹配规则,其中,与所述远程直接内存访问上下行流量相关联的存储操作通过第一应用来执行,所述匹配规则至少基于不同于所述第一应用的第二应用的解包解析能力且指示至少一个网络接口;远程直接内存访问协议处理引擎,其中,当所述远程直接内存访问上下行流量符合所述匹配规则时,所述报文转发处理引擎传输所述远程直接内存访问上下行流量到所述远程直接内存访问协议处理引擎,然后,所述远程直接内存访问协议处理引擎上送与所述远程直接内存访问上下行流量对应的第一镜像流量到第二应用;所述第二应用,用于对所述第一镜像流量进行解包解析从而执行与所述远程直接内存访问上下行流量相关联的网络流量抓包分析。
通过本申请的第五方面,无需依赖额外的设备和接口,可以制定灵活的网络流量抓包分析策略且高效地区分需要进行抓包分析的网络流量,可以应对复杂多变的网络环境及网络流量组成,不干预原本的针对远程直接内存访问上下行流量的处理流程,可以适配各种既有的用于远程直接内存访问数据传输的软硬件结构,而且充分利用远程直接内存访问技术在提升数据传输性能方面的优势,绕过***内核及节省了数据拷贝的开销,有助于提升抓包分析性能和提升***效率。
在本申请的第五方面的一种可能的实现方式中,用户态远程直接内存访问队列包括远程直接内存访问流量发送队列、远程直接内存访问流量接收队列、镜像流量接收队列和远程直接内存访问完成队列,其中,所述远程直接内存访问协议处理引擎利用所述远程直接内存访问流量发送队列和所述远程直接内存访问流量接收队列与所述第一应用之间传输所述远程直接内存访问上下行流量,所述远程直接内存访问协议处理引擎利用所述镜像流量接收队列向所述第二应用传输所述第一镜像流量,所述远程直接内存访问流量发送队列、所述远程直接内存访问流量接收队列以及所述镜像流量接收队列共用所述远程直接内存访问完成队列。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种用于网络流量抓包分析的方法的流程示意图;
图2为本申请实施例提供的第一种实施方式的用于网络流量抓包分析的***的示意图;
图3为本申请实施例提供的第二种实施方式的用于网络流量抓包分析的***的示意图;
图4为本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
下面将结合附图对本申请实施例作进一步地详细描述。
应当理解的是,在本申请的描述中,“至少一个”指一个或一个以上,“多个”指两个或两个以上。另外,“第一”、“第二”等词汇,除非另有说明,否则仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
图1为本申请实施例提供的一种用于网络流量抓包分析的方法的流程示意图。如图1所示,方法包括以下步骤。
步骤S110:通过报文转发处理引擎,接收远程直接内存访问上下行流量以及判断所述远程直接内存访问上下行流量是否符合匹配规则,其中,与所述远程直接内存访问上下行流量相关联的存储操作通过第一应用来执行,所述匹配规则至少基于不同于所述第一应用的第二应用的解包解析能力且指示至少一个网络接口。
步骤S120:当所述远程直接内存访问上下行流量符合所述匹配规则时,通过所述报文转发处理引擎,传输所述远程直接内存访问上下行流量到远程直接内存访问协议处理引擎,然后,通过所述远程直接内存访问协议处理引擎,上送与所述远程直接内存访问上下行流量对应的第一镜像流量到所述第二应用。
步骤S130:通过所述第二应用,对所述第一镜像流量进行解包解析从而执行与所述远程直接内存访问上下行流量相关联的网络流量抓包分析。
网络节点、数据中心、服务器等需要经常性的对网络流量进行抓包分析,从而为定位网络问题和实施网络监测提供依据。网络流量一般是报文数据包或者其它形式的网络数据,因此需要对抓包得到的网络数据包进行解包解析,例如对报文数据包进行解包解析。考虑到各种通信标准、网络协议、安全协议,还有各种报文包长度、数据传输机制等,网络流量抓包分析需要应对复杂多变的网络环境及网络流量组成。随着高速数字通信技术的发展以及数据传输规模的增加,广泛的应用远程直接内存访问技术来提升数据传输性能。具体地,在远程直接内存访问网络中,利用远程直接内存访问技术,不需要中央处理器的干预,通过网卡参与直接将数据从一个***快速传输到另一个远程主机的计算机存储区。因此,在基于远程直接内存访问技术的应用场景,例如远程直接内存访问网络上的网络节点、主机等,通过远程直接内存访问网络接收的网络流量不经过***内核,而是直接从远程直接内存访问设备例如远程直接内存访问网卡传输到主机侧的存储器中。相比于通过远程直接内存访问网络接收的网络流量,通过非远程直接内存访问网络接收的网络流量,例如通过传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP)网络接收的网络流量,这些网络数据经过***内核的多个层次的搬移和数据拷贝,因此需要耗费中央处理器的处理功能也带来操作***操作外部存储器的复制以及内存空间切换的开销。本申请实施例提供的一种用于网络流量抓包分析的方法及***,不仅可以应对复杂多变的网络环境及网络流量组成,而且可以充分利用远程直接内存访问技术在提升数据传输性能方面的优势,下面结合图1进一步详细说明。
参阅图1,远程直接内存访问上下行流量指的是,在基于远程直接内存访问技术的应用场景,例如远程直接内存访问网络上的网络节点、主机等,基于远程直接内存访问协议和利用远程直接内存访问硬件进行数据传输所产生的网络流量。其中,远程直接内存访问上下行流量,根据网络流量的流向也就是根据报文发送或者报文接收,可以是远程直接内存访问上行流量或者远程直接内存访问下行流量。远程直接内存访问上行流量是主机接收的网络流量,例如主机从远程直接内存访问网络接收到的报文数据包。远程直接内存访问下行流量是主机发起的要发送出去的网络流量,例如主机发起的要通过远程直接内存访问网络发送出去的报文数据包。报文转发处理引擎是与主机连接的远程直接内存访问硬件例如远程直接内存访问网卡上的模块,用于进行网络报文数据包的收发。远程直接内存访问协议处理引擎也是远程直接内存访问硬件上的模块,用于实现远程直接内存访问,例如将网络数据直接传输到主机的存储器或者从主机的存储器直接读取网络数据从而绕过主机的内核及操作***。第一应用是用于执行与所述远程直接内存访问上下行流量相关联的存储操作,第一应用可以是使用远程直接内存访问传输功能的常规业务应用程序,例如高性能通信业务软件、存储业务软件等。第二应用不同于第一应用,所述匹配规则至少基于第二应用的解包解析能力。这里,第二应用可以基于任意合适的开发工具来开发设计,例如采用开源的网络抓包工具应用程序和开源函数库等,只要第二应用能提供与匹配规则对应的解包解析能力。第二应用的解包解析能力,可以理解为对报文数据包进行解包解析的能力。在一些实施例中,第二应用可以支持对具有一定范围内的通信标准、网络协议、安全协议之间组合的网络报文数据包进行解包解析。匹配规则由第二应用下发给报文转发处理引擎,并且由第二应用进行管理。报文转发处理引擎接收到远程直接内存访问上下行流量后,基于匹配规则判断所接收的远程直接内存访问上下行流量是否符合匹配规则。这里,匹配规则指示了至少一个网络接口,因此,可以通过匹配规则所指示的至少一个网络接口来限定报文转发处理引擎进行后续处理的范围。例如,可以通过匹配规则来限定,只有在特定时间通过特定接口接收到的远程直接内存访问上下行流量符合匹配规则。如此,可以利用不同的网络接口之间的隔离特性有效地区分需要进行抓包分析的网络流量。在一些实施例中,网络接口的资源是有限的,可能分配一些网络接口用于基于远程直接内存访问的数据传输,而分配另一些网络接口用于不基于远程直接内存访问的数据传输例如通过传输控制协议/网际协议网络接收的网络流量,这样可以通过匹配规则所指示的网络接口限定只有通过被分配给远程直接内存访问数据传输的网络接口的网络流量符合匹配规则。在另一些实施例中,取决于具体的网络流量抓包分析需求,可能只需要对被分配给远程直接内存访问数据传输的网络接口中的一部分进行网络流量抓包分析,例如需要对通过特定的网络接口(例如,接入了特定的远程直接内存访问网络或者对接了特定的网络链路)的网路流量进行抓包分析,这样的网络流量抓包分析需求也可以通过匹配规则所指示的网络接口来实现。匹配规则至少基于第二应用的解包解析能力,上面提到,第二应用的解包解析能力代表了对一定范围内的通信标准、网络协议、安全协议之间组合的网络报文数据包进行解包解析的能力。因此,匹配规则可以限定,只有能被第二应用解包解析的报文数据包符合匹配规则。如此,可以利用第二应用管理匹配规则,利用匹配规则来制定灵活的网络流量抓包分析策略,例如可以指定时间段内接收的满足特定要求如特定报文包长度或者来自特定网络地址的报文数据包,并且,匹配规则至少基于第二应用的解包解析能力,这样确保了符合匹配规则的网络报文数据包必然可以被第二应用解包解析。
继续参阅图1,通过第一应用来执行与所述远程直接内存访问上下行流量相关联的存储操作,以及,当所述远程直接内存访问上下行流量符合所述匹配规则时,通过不同于第一应用的第二应用来执行与所述远程直接内存访问上下行流量相关联的网络流量抓包分析;如此,可以通过第一应用来满足常规的远程直接内存访问数据传输需求,通过另行提供的第二应用来单独提供针对远程直接内存访问上下行流量的解包解析功能,有利于适配各种用于远程直接内存访问数据传输的软硬件结构。进一步地,利用匹配规则所指示的网络接口以及该匹配规则至少基于第二应用的解包解析能力,在确保了符合匹配规则的远程直接内存访问上下行流量能够被第二应用解包解析的前提下,可以制定灵活的网络流量抓包分析策略,而且可以利用不同的网络接口之间的隔离特性有效地区分需要进行抓包分析的网络流量。进一步地,通过远程直接内存访问协议处理引擎上送与符合匹配规则的远程直接内存访问上下行流量对应的第一镜像流量到第二应用,然后通过第二应用对第一镜像流量进行解包解析从而执行与所述远程直接内存访问上下行流量相关联的网络流量抓包分析,如此,不干预原本的针对远程直接内存访问上下行流量的处理流程,通过生成第一镜像流量以及处理该第一镜像流量,实现了等效的网络流量抓包分析效果,而且依赖远程直接内存访问协议处理引擎来上送第一镜像流量,有利于推广应用到既有的用于远程直接内存访问数据传输的软硬件结构。总之,图1所示的用于网络流量抓包分析的方法,无需依赖额外的设备和接口,可以制定灵活的网络流量抓包分析策略且高效地区分需要进行抓包分析的网络流量,可以应对复杂多变的网络环境及网络流量组成,不干预原本的针对远程直接内存访问上下行流量的处理流程,可以适配各种既有的用于远程直接内存访问数据传输的软硬件结构,而且充分利用远程直接内存访问技术在提升数据传输性能方面的优势,绕过***内核及节省了数据拷贝的开销,有助于提升抓包分析性能和提升***效率。
在一种可能的实施方式中,用户态远程直接内存访问队列包括远程直接内存访问流量发送队列、远程直接内存访问流量接收队列、镜像流量接收队列和远程直接内存访问完成队列,其中,所述远程直接内存访问协议处理引擎利用所述远程直接内存访问流量发送队列和所述远程直接内存访问流量接收队列与所述第一应用之间传输所述远程直接内存访问上下行流量,所述远程直接内存访问协议处理引擎利用所述镜像流量接收队列向所述第二应用传输所述第一镜像流量,所述远程直接内存访问流量发送队列、所述远程直接内存访问流量接收队列以及所述镜像流量接收队列共用所述远程直接内存访问完成队列。这里,用户态远程直接内存访问队列指的是,在用于远程直接内存访问数据传输的软硬件结构中,用于软件与远程直接内存访问硬件进行交互的队列。例如,用户态远程直接内存访问队列可以用于使用远程直接内存访问传输功能的常规业务应用程序与远程直接内存访问网卡中的远程直接内存访问协议处理引擎交互。其中,远程直接内存访问流量发送队列针对的是下行流量,也就是为了发起消息传输,例如可以通过第一应用调用远程直接内存访问用户态数据库中的特定接口来提交工作请求到远程直接内存访问流量发送队列从而发起消息传输。远程直接内存访问流量接收队列针对的是上行流量,也就是为了处理远端发送过来的消息,例如可以通过第一应用调用远程直接内存访问用户态数据库中的特定接口来提交工作请求到远程直接内存访问流量接收队列从而接收消息。镜像流量接收队列是特殊类型的接收队列,专门用于接收镜像流量,包括与所述远程直接内存访问上下行流量对应的第一镜像流量。应当理解的是,镜像流量接收队列仍然属于用户态远程直接内存访问队列,因此是利用了用于远程直接内存访问数据传输的软硬件结构中既有的队列资源。对于原本的针对远程直接内存访问上下行流量的处理流程,所述远程直接内存访问协议处理引擎利用所述远程直接内存访问流量发送队列和所述远程直接内存访问流量接收队列与所述第一应用之间传输所述远程直接内存访问上下行流量,如此,实现了通过远程直接内存访问流量发送队列来实现从第一应用传输远程直接内存访问上下行流量中的远程直接内存访问下行流量到远程直接内存访问协议处理引擎,以及,实现了通过远程直接内存访问流量接收队列来实现从远程直接内存访问协议处理引擎传输远程直接内存访问上下行流量中的远程直接内存访问上行流量到第一应用,这样有助于第一应用执行与所述远程直接内存访问上下行流量相关联的存储操作。对于远程直接内存访问上下行流量的网络流量抓包分析,通过镜像流量接收队列来实现从远程直接内存访问协议处理引擎传输第一镜像流量到第二应用,例如可以通过第二应用提交工作请求到镜像流量接收队列从而接收第一镜像流量,这样有助于第二应用对第一镜像流量进行解包解析从而执行与远程直接内存访问上下行流量相关联的网络流量抓包分析。因此,利用专门提供的镜像流量接收队列,可以利用既有的用于远程直接内存访问数据传输的软硬件结构,不干预原本的针对远程直接内存访问上下行流量的处理流程,并且无需依赖额外的设备和接口。进一步地,因为所述远程直接内存访问完成队列是共用的,因此所述远程直接内存访问上下行流量的传输完成和所述第一镜像流量的传输完成均可以通过由远程直接内存访问协议处理引擎来添加完成队列条目到远程直接内存访问完成队列,从而实现消息传输完成的提示记录。这样应用层可以轮询远程直接内存访问完成队列,查看是否有添加的完成队列条目,从而实现了控制层面的交互。另外,每个完成队列条目可以包括提交请求识别信息,例如64位的提交请求识别码,这样可以对应上远程直接内存访问流量发送队列或者远程直接内存访问流量接收队列中的工作请求,也可以对应上镜像流量接收队列中的工作请求。
在一种可能的实施方式中,所述远程直接内存访问上下行流量是远程直接内存访问上行流量或者远程直接内存访问下行流量,所述方法还包括:当所述远程直接内存访问上行流量不符合所述匹配规则时,通过所述报文转发处理引擎,传输所述远程直接内存访问上行流量到网络协议处理引擎,然后,通过所述网络协议处理引擎,传输所述远程直接内存访问上行流量到***内核协议处理层;通过所述***内核协议处理层,对所述远程直接内存访问上行流量进行解包解析得到解包解析结果,然后,通过所述第二应用,对所述解包解析结果执行与所述远程直接内存访问上行流量相关联的网络流量抓包分析。匹配规则至少基于第二应用的解包解析能力,这样确保了符合匹配规则的网络报文数据包必然可以被第二应用解包解析。因此,针对不符合匹配规则的远程直接内存访问上行流量,可以调用***内核协议处理层,利用***内核协议处理层的解包解析能力,获取相应的解包解析结果,这样就能克服第二应用的解包解析能力不足的问题。如此,可以利用匹配规则,使得符合匹配规则的远程直接内存访问上行流量通过远程直接内存访问协议处理引擎上送到第二应用进行解包解析,以及使得不符合匹配规则的远程直接内存访问上行流量先通过***内核协议处理层处理再由第二应用执行网络流量抓包分析,从而提升***整体效率。这里,网络协议处理引擎指的是用于处理通过非远程直接内存访问网络接收的网络流量,例如通过传输控制协议/网际协议网络接收的网络流量。网络协议处理引擎可以是传输控制协议/网际协议处理引擎。
在一些实施例中,所述***内核协议处理层包括网络协议栈、网络设备层和网络驱动,所述网络协议处理引擎利用应用于非远程直接内存访问网络的网络队列向所述***内核协议处理层传输所述远程直接内存访问上行流量。如此,可以利用匹配规则,使得符合匹配规则的远程直接内存访问上行流量通过远程直接内存访问协议处理引擎上送到第二应用进行解包解析,以及使得不符合匹配规则的远程直接内存访问上行流量先通过***内核协议处理层处理再由第二应用执行网络流量抓包分析,从而提升***整体效率。
在一些实施例中,所述报文转发处理引擎、所述远程直接内存访问协议处理引擎以及所述网络协议处理引擎均部署在远程直接内存访问网卡,所述***内核协议处理层部署在主机***的内核空间,所述第一应用和所述第二应用均部署在所述主机***的用户空间,所述远程直接内存访问网卡通过快捷***组件互连接口连接所述主机***。如此,充分利用远程直接内存访问技术在提升数据传输性能方面的优势,绕过***内核及节省了数据拷贝的开销,有助于提升抓包分析性能和提升***效率。而且,可以利用匹配规则,使得符合匹配规则的远程直接内存访问上行流量通过远程直接内存访问协议处理引擎上送到第二应用进行解包解析,以及使得不符合匹配规则的远程直接内存访问上行流量先通过***内核协议处理层处理再由第二应用执行网络流量抓包分析,从而提升***整体效率。
在一些实施例中,当所述远程直接内存访问下行流量不符合所述匹配规则时,通过所述报文转发处理引擎,传输所述远程直接内存访问下行流量到所述网络协议处理引擎,然后,通过所述网络协议处理引擎,传输所述远程直接内存访问下行流量到所述***内核协议处理层用于解包解析,以及,通过所述第二应用执行与所述远程直接内存访问下行流量相关联的网络流量抓包分析,或者,通过更新所述第二应用,然后,基于更新后的第二应用的解包解析能力来更新所述匹配规则得到更新后的匹配规则,从而使得所述远程直接内存访问下行流量符合所述更新后的匹配规则,以及,通过所述更新后的第二应用执行与所述远程直接内存访问下行流量相关联的网络流量抓包分析。匹配规则至少基于第二应用的解包解析能力,这样确保了符合匹配规则的网络报文数据包必然可以被第二应用解包解析。因此,针对不符合匹配规则的远程直接内存访问下行流量,因为是从主机发起的消息,可以选择调用***内核协议处理层来处理或者更新第二应用及相应匹配规则,从而提供更高的灵活性。
在一种可能的实施方式中,所述方法还包括:通过报文转发处理引擎,接收非远程直接内存访问上行流量以及判断所述非远程直接内存访问上行流量是否符合所述匹配规则;当所述非远程直接内存访问上行流量符合所述匹配规则时,通过所述报文转发处理引擎,传输所述非远程直接内存访问上行流量到远程直接内存访问协议处理引擎,然后,通过所述远程直接内存访问协议处理引擎,上送与所述非远程直接内存访问上行流量对应的第二镜像流量到所述第二应用;通过所述第二应用,对所述第二镜像流量进行解包解析从而执行与所述非远程直接内存访问上行流量相关联的网络流量抓包分析。如上所述,通过第一应用来执行与所述远程直接内存访问上下行流量相关联的存储操作,以及,当所述远程直接内存访问上下行流量符合所述匹配规则时,通过不同于第一应用的第二应用来执行与所述远程直接内存访问上下行流量相关联的网络流量抓包分析。如此,可以通过第一应用来满足常规的远程直接内存访问数据传输需求,通过另行提供的第二应用来单独提供针对远程直接内存访问上下行流量的解包解析功能,有利于适配各种用于远程直接内存访问数据传输的软硬件结构。这里,进一步地,考虑到有时候需要对非远程直接内存访问上行流量进行网络流量抓包分析,因此可以将需要抓包分析的非远程直接内存访问上行流量看作远程直接内存访问上行流量,进而生成对应的第二镜像流量,并且通过远程直接内存访问协议处理引擎上送第二镜像流量,这样绕过***内核及节省了数据拷贝的开销,有助于提升抓包分析性能和提升***效率。
在一些实施例中,所述远程直接内存访问协议处理引擎利用所述镜像流量接收队列向所述第二应用传输所述第二镜像流量,所述远程直接内存访问协议处理引擎响应于所述第一镜像流量的传输完成或者所述第二镜像流量的传输完成添加完成队列条目到所述远程直接内存访问完成队列。对于远程直接内存访问上下行流量的网络流量抓包分析,通过镜像流量接收队列来实现从远程直接内存访问协议处理引擎传输第一镜像流量到第二应用,例如可以通过第二应用提交工作请求到镜像流量接收队列从而接收第一镜像流量,这样有助于第二应用对第一镜像流量进行解包解析从而执行与远程直接内存访问上下行流量相关联的网络流量抓包分析。类似地,可以将需要抓包分析的非远程直接内存访问上行流量看作远程直接内存访问上行流量,因此可以用处理第一镜像流量的方式来处理第二镜像流量,也就是通过第二应用提交工作请求到镜像流量接收队列从而接收第二镜像流量,这样有助于第二应用对第二镜像流量进行解包解析从而执行与所述非远程直接内存访问上行流量相关联的网络流量抓包分析。
在一种可能的实施方式中,所述远程直接内存访问流量发送队列和所述远程直接内存访问流量接收队列属于同一队列对,并且,所述第一应用通过提交发送队列工作请求到所述远程直接内存访问流量发送队列来管理所述远程直接内存访问流量发送队列以及通过提交接收队列工作请求到所述远程直接内存访问流量接收队列来管理所述远程直接内存访问流量接收队列,所述第二应用通过提交镜像流量接收队列工作请求到所述镜像流量接收队列来管理所述镜像流量接收队列。如此,利用专门提供的镜像流量接收队列,可以利用既有的用于远程直接内存访问数据传输的软硬件结构,不干预原本的针对远程直接内存访问上下行流量的处理流程,并且无需依赖额外的设备和接口。
在一种可能的实施方式中,所述远程直接内存访问上下行流量符合所述匹配规则,包括:所述匹配规则所指示的所述至少一个网络接口包括用于收发所述远程直接内存访问上下行流量的网络接口。如此,可以利用第二应用管理匹配规则,利用匹配规则来制定灵活的网络流量抓包分析策略。
在一种可能的实施方式中,所述第二应用的解包解析能力包括所述第二应用所支持的至少一个通信标准和至少一个网络协议,其中,所述远程直接内存访问上下行流量符合所述匹配规则,包括:所述第二应用所支持的所述至少一个通信标准包括与所述远程直接内存访问上下行流量相关联的通信标准,并且,所述第二应用所支持的所述至少一个网络协议包括与所述远程直接内存访问上下行流量相关联的网络协议。如此,可以利用第二应用管理匹配规则,利用匹配规则来制定灵活的网络流量抓包分析策略。
图2为本申请实施例提供的第一种实施方式的用于网络流量抓包分析的***的示意图。如图2所示,所述***包括:报文转发处理引擎244、远程直接内存访问协议处理引擎242、第一应用202、第二应用204。其中,报文转发处理引擎244,用于接收远程直接内存访问上下行流量230以及判断所述远程直接内存访问上下行流量230是否符合匹配规则。与所述远程直接内存访问上下行流量230相关联的存储操作通过第一应用202来执行。所述匹配规则至少基于不同于所述第一应用202的第二应用204的解包解析能力且指示至少一个网络接口。当所述远程直接内存访问上下行流量230符合所述匹配规则时,所述报文转发处理引擎244传输所述远程直接内存访问上下行流量230到所述远程直接内存访问协议处理引擎242,然后,所述远程直接内存访问协议处理引擎242上送与所述远程直接内存访问上下行流量230对应的第一镜像流量(图2中用镜像流量232表示)到第二应用204。所述第二应用204,用于对所述第一镜像流量(图2中用镜像流量232表示)进行解包解析从而执行与所述远程直接内存访问上下行流量230相关联的网络流量抓包分析。
继续参阅图2,用户态远程直接内存访问队列210包括远程直接内存访问流量发送队列212、远程直接内存访问流量接收队列214、镜像流量接收队列218和远程直接内存访问完成队列216。其中,所述远程直接内存访问协议处理引擎242利用所述远程直接内存访问流量发送队列212和所述远程直接内存访问流量接收队列214与所述第一应用202之间传输所述远程直接内存访问上下行流量230。所述远程直接内存访问协议处理引擎242利用所述镜像流量接收队列218向所述第二应用204传输所述第一镜像流量(图2中用镜像流量232表示)。所述远程直接内存访问流量发送队列212、所述远程直接内存访问流量接收队列214以及所述镜像流量接收队列218共用所述远程直接内存访问完成队列216。所述远程直接内存访问流量发送队列212和所述远程直接内存访问流量接收队列214属于同一队列对,并且,所述第一应用202通过提交发送队列工作请求220到所述远程直接内存访问流量发送队列212来管理所述远程直接内存访问流量发送队列212以及通过提交接收队列工作请求222到所述远程直接内存访问流量接收队列214来管理所述远程直接内存访问流量接收队列214。所述第二应用204通过提交镜像流量接收队列工作请求224到所述镜像流量接收队列218来管理所述镜像流量接收队列218。
图2所示的第二种实施方式的用于网络流量抓包分析的***,无需依赖额外的设备和接口,可以制定灵活的网络流量抓包分析策略且高效地区分需要进行抓包分析的网络流量,可以应对复杂多变的网络环境及网络流量组成,不干预原本的针对远程直接内存访问上下行流量的处理流程,可以适配各种既有的用于远程直接内存访问数据传输的软硬件结构,而且充分利用远程直接内存访问技术在提升数据传输性能方面的优势,绕过***内核及节省了数据拷贝的开销,有助于提升抓包分析性能和提升***效率。
图3为本申请实施例提供的第二种实施方式的用于网络流量抓包分析的***的示意图。如图3所示,所述***包括:报文转发处理引擎244、远程直接内存访问协议处理引擎242、第一应用202、第二应用204。其中,报文转发处理引擎244,用于接收远程直接内存访问上下行流量230以及判断所述远程直接内存访问上下行流量230是否符合匹配规则。与所述远程直接内存访问上下行流量230相关联的存储操作通过第一应用202来执行。所述匹配规则至少基于不同于所述第一应用202的第二应用204的解包解析能力且指示至少一个网络接口。当所述远程直接内存访问上下行流量230符合所述匹配规则时,所述报文转发处理引擎244传输所述远程直接内存访问上下行流量230到所述远程直接内存访问协议处理引擎242,然后,所述远程直接内存访问协议处理引擎242上送与所述远程直接内存访问上下行流量230对应的第一镜像流量(图3中用镜像流量232表示)到第二应用204。所述第二应用204,用于对所述第一镜像流量进行解包解析从而执行与所述远程直接内存访问上下行流量230相关联的网络流量抓包分析。
继续参阅图3,用户态远程直接内存访问队列210包括远程直接内存访问流量发送队列212、远程直接内存访问流量接收队列214、镜像流量接收队列218和远程直接内存访问完成队列216。其中,所述远程直接内存访问协议处理引擎242利用所述远程直接内存访问流量发送队列212和所述远程直接内存访问流量接收队列214与所述第一应用202之间传输所述远程直接内存访问上下行流量230。所述远程直接内存访问协议处理引擎242利用所述镜像流量接收队列218向所述第二应用204传输所述第一镜像流量(图3中用镜像流量232表示)。所述远程直接内存访问流量发送队列212、所述远程直接内存访问流量接收队列214以及所述镜像流量接收队列218共用所述远程直接内存访问完成队列216。所述远程直接内存访问流量发送队列212和所述远程直接内存访问流量接收队列214属于同一队列对,并且,所述第一应用202通过提交发送队列工作请求220到所述远程直接内存访问流量发送队列212来管理所述远程直接内存访问流量发送队列212以及通过提交接收队列工作请求222到所述远程直接内存访问流量接收队列214来管理所述远程直接内存访问流量接收队列214。所述第二应用204通过提交镜像流量接收队列工作请求224到所述镜像流量接收队列218来管理所述镜像流量接收队列218。
图3所示的第二种实施方式的用于网络流量抓包分析的***,无需依赖额外的设备和接口,可以制定灵活的网络流量抓包分析策略且高效地区分需要进行抓包分析的网络流量,可以应对复杂多变的网络环境及网络流量组成,不干预原本的针对远程直接内存访问上下行流量的处理流程,可以适配各种既有的用于远程直接内存访问数据传输的软硬件结构,而且充分利用远程直接内存访问技术在提升数据传输性能方面的优势,绕过***内核及节省了数据拷贝的开销,有助于提升抓包分析性能和提升***效率。
继续参阅图3,图3所示的第二种实施方式的用于网络流量抓包分析的***,还可以针对非远程直接内存访问上行流量进行网络流量抓包分析。具体地,通过报文转发处理引擎244,接收非远程直接内存访问上行流量以及判断所述非远程直接内存访问上行流量是否符合所述匹配规则;当所述非远程直接内存访问上行流量符合所述匹配规则时,通过所述报文转发处理引擎244,传输所述非远程直接内存访问上行流量到远程直接内存访问协议处理引擎242,然后,通过所述远程直接内存访问协议处理引擎242,上送与所述非远程直接内存访问上行流量对应的第二镜像流量(图3中用镜像流量232表示)到所述第二应用204;通过所述第二应用204,对所述第二镜像流量(图3中用镜像流量232表示)进行解包解析从而执行与所述非远程直接内存访问上行流量相关联的网络流量抓包分析。所述远程直接内存访问协议处理引擎242利用所述镜像流量接收队列218向所述第二应用204传输所述第二镜像流量(图3中用镜像流量232表示),所述远程直接内存访问协议处理引擎响应于所述第一镜像流量的传输完成或者所述第二镜像流量的传输完成添加完成队列条目234到所述远程直接内存访问完成队列216。所述报文转发处理引擎244、所述远程直接内存访问协议处理引擎242以及网络协议处理引擎246均部署在远程直接内存访问网卡240,所述***内核协议处理层260部署在主机***的内核空间,所述第一应用202和所述第二应用204均部署在所述主机***的用户空间,所述远程直接内存访问网卡240通过快捷***组件互连接口连接所述主机***。应当理解的是,针对远程直接内存访问上下行流量230,所述远程直接内存访问协议处理引擎242传输第一镜像流量到第二应用204;针对非远程直接内存访问上行流量,所述远程直接内存访问协议处理引擎242传输第二镜像流量到第二应用204。图3中用镜像流量232统一的表示由所述远程直接内存访问协议处理引擎242传输到第二应用204的第一镜像流量和/或第二镜像流量。
继续参阅图3,针对不符合匹配规则的上行流量236,例如不符合匹配规则的远程直接内存访问上行流量,可以调用***内核协议处理层260进行处理。所述***内核协议处理层260包括网络协议栈262、网络设备层264和网络驱动266。所述网络协议处理引擎246利用应用于非远程直接内存访问网络的网络队列向所述***内核协议处理层260传输不符合匹配规则的上行流量236。如此,可以利用匹配规则,使得符合匹配规则的远程直接内存访问上行流量通过远程直接内存访问协议处理引擎242上送到第二应用204进行解包解析,以及使得不符合匹配规则的远程直接内存访问上行流量(图3中用不符合匹配规则的上行流量236表示)先通过***内核协议处理层260处理再由第二应用204执行网络流量抓包分析,从而提升***整体效率。
图4是本申请实施例提供的一种计算设备的结构示意图,该计算设备400包括:一个或者多个处理器410、通信接口420以及存储器430。所述处理器410、通信接口420以及存储器430通过总线440相互连接。可选地,该计算设备400还可以包括输入/输出接口450,输入/输出接口450连接有输入/输出设备,用于接收用户设置的参数等。该计算设备400能够用于实现上述的本申请实施例中设备实施例或者***实施例的部分或者全部功能;处理器410还能够用于实现上述的本申请实施例中方法实施例的部分或者全部操作步骤。例如,该计算设备400执行各种操作的具体实现可参照上述实施例中的具体细节,如处理器410用于执行上述方法实施例中部分或者全部步骤或者上述方法实施例中的部分或者全部操作。再例如,本申请实施例中,计算设备400可用于实现上述装置实施例中一个或者多个部件的部分或者全部功能,此外通信接口420具体可用于为了实现这些装置、部件的功能所必须的通讯功能等,以及处理器410具体可用于为了实现这些装置、部件的功能所必须的处理功能等。
应当理解的是,图4的计算设备400可以包括一个或者多个处理器410,并且多个处理器410可以按照并行化连接方式、串行化连接方式、串并行连接方式或者任意连接方式来协同提供处理能力,或者多个处理器410可以构成处理器序列或者处理器阵列,或者多个处理器410之间可以分成主处理器和辅助处理器,或者多个处理器410之间可以具有不同的架构如采用异构计算架构。另外,图4所示的计算设备400,相关的结构性描述及功能性描述是示例性且非限制性的。在一些示例性实施例中,计算设备400可以包括比图4所示的更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。
处理器410可以有多种具体实现形式,例如处理器410可以包括中央处理器(central processing unit,CPU)、图形处理器(graphic processing unit,GPU)、神经网络处理器(neural-network processing unit,NPU)、张量处理器(tensor processingunit,TPU)或数据处理器(data processing unit,DPU)等一种或多种的组合,本申请实施例不做具体限定。处理器410还可以是单核处理器或多核处理器。处理器410可以由CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integratedcircuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器410也可以单独采用内置处理逻辑的逻辑器件来实现,例如FPGA或数字信号处理器(digital signal processor,DSP)等。通信接口420可以为有线接口或无线接口,用于与其他模块或设备进行通信,有线接口可以是以太接口、局域互联网络(local interconnect network,LIN)等,无线接口可以是蜂窝网络接口或使用无线局域网接口等。
存储器430可以是非易失性存储器,例如,只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。存储器430也可以是易失性存储器,易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。存储器430也可用于存储程序代码和数据,以便于处理器410调用存储器430中存储的程序代码执行上述方法实施例中的部分或者全部操作步骤,或者执行上述设备实施例中的相应功能。此外,计算设备400可能包含相比于图4展示的更多或者更少的组件,或者有不同的组件配置方式。
总线440可以是快捷***部件互连标准(peripheral component interconnectexpress,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。总线440可以分为地址总线、数据总线、控制总线等。总线440除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例提供的方法和设备是基于同一发明构思的,由于方法及设备解决问题的原理相似,因此方法与设备的实施例、实施方式、示例或实现方式可以相互参见,其中重复之处不再赘述。本申请实施例还提供一种***,该***包括多个计算设备,每个计算设备的结构可以参照上述所描述的计算设备的结构。该***可实现的功能或者操作可以参照上述方法实施例中的具体实现步骤和/或上述装置实施例中所描述的具体功能,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,当所述计算机指令在计算机设备(如一个或者多个处理器)上运行时可以实现上述方法实施例中的方法步骤。所述计算机可读存储介质的处理器在执行上述方法步骤的具体实现可参照上述方法实施例中所描述的具体操作和/或上述装置实施例中所描述的具体功能,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。本申请实施例可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(如软盘、硬盘、磁带)、光介质、或者半导体介质。半导体介质可以是固态硬盘,也可以是随机存取存储器,闪存,只读存储器,可擦可编程只读存储器,电可擦可编程只读存储器,寄存器或任何其他形式的合适存储介质。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述。可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并或删减;本申请实施例***中的模块可以根据实际需要进行划分、合并或删减。如果本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种用于网络流量抓包分析的方法,其特征在于,所述方法包括:
通过报文转发处理引擎,接收远程直接内存访问上下行流量以及判断所述远程直接内存访问上下行流量是否符合匹配规则,其中,与所述远程直接内存访问上下行流量相关联的存储操作通过第一应用来执行,所述匹配规则至少基于不同于所述第一应用的第二应用的解包解析能力且指示至少一个网络接口;
当所述远程直接内存访问上下行流量符合所述匹配规则时,通过所述报文转发处理引擎,传输所述远程直接内存访问上下行流量到远程直接内存访问协议处理引擎,然后,通过所述远程直接内存访问协议处理引擎,上送与所述远程直接内存访问上下行流量对应的第一镜像流量到所述第二应用;
通过所述第二应用,对所述第一镜像流量进行解包解析从而执行与所述远程直接内存访问上下行流量相关联的网络流量抓包分析。
2.根据权利要求1所述的方法,其特征在于,用户态远程直接内存访问队列包括远程直接内存访问流量发送队列、远程直接内存访问流量接收队列、镜像流量接收队列和远程直接内存访问完成队列,其中,所述远程直接内存访问协议处理引擎利用所述远程直接内存访问流量发送队列和所述远程直接内存访问流量接收队列与所述第一应用之间传输所述远程直接内存访问上下行流量,所述远程直接内存访问协议处理引擎利用所述镜像流量接收队列向所述第二应用传输所述第一镜像流量,所述远程直接内存访问流量发送队列、所述远程直接内存访问流量接收队列以及所述镜像流量接收队列共用所述远程直接内存访问完成队列。
3.根据权利要求1所述的方法,其特征在于,所述远程直接内存访问上下行流量是远程直接内存访问上行流量或者远程直接内存访问下行流量,所述方法还包括:
当所述远程直接内存访问上行流量不符合所述匹配规则时,通过所述报文转发处理引擎,传输所述远程直接内存访问上行流量到网络协议处理引擎,然后,通过所述网络协议处理引擎,传输所述远程直接内存访问上行流量到***内核协议处理层;
通过所述***内核协议处理层,对所述远程直接内存访问上行流量进行解包解析得到解包解析结果,然后,通过所述第二应用,对所述解包解析结果执行与所述远程直接内存访问上行流量相关联的网络流量抓包分析。
4.根据权利要求3所述的方法,其特征在于,所述***内核协议处理层包括网络协议栈、网络设备层和网络驱动,所述网络协议处理引擎利用应用于非远程直接内存访问网络的网络队列向所述***内核协议处理层传输所述远程直接内存访问上行流量。
5.根据权利要求3所述的方法,其特征在于,所述报文转发处理引擎、所述远程直接内存访问协议处理引擎以及所述网络协议处理引擎均部署在远程直接内存访问网卡,所述***内核协议处理层部署在主机***的内核空间,所述第一应用和所述第二应用均部署在所述主机***的用户空间,所述远程直接内存访问网卡通过快捷***组件互连接口连接所述主机***。
6.根据权利要求3所述的方法,其特征在于,当所述远程直接内存访问下行流量不符合所述匹配规则时,
通过所述报文转发处理引擎,传输所述远程直接内存访问下行流量到所述网络协议处理引擎,然后,通过所述网络协议处理引擎,传输所述远程直接内存访问下行流量到所述***内核协议处理层用于解包解析,以及,通过所述第二应用执行与所述远程直接内存访问下行流量相关联的网络流量抓包分析,
或者,
通过更新所述第二应用,然后,基于更新后的第二应用的解包解析能力来更新所述匹配规则得到更新后的匹配规则,从而使得所述远程直接内存访问下行流量符合所述更新后的匹配规则,以及,通过所述更新后的第二应用执行与所述远程直接内存访问下行流量相关联的网络流量抓包分析。
7.根据权利要求2所述的方法,其特征在于,所述方法还包括:
通过报文转发处理引擎,接收非远程直接内存访问上行流量以及判断所述非远程直接内存访问上行流量是否符合所述匹配规则;
当所述非远程直接内存访问上行流量符合所述匹配规则时,通过所述报文转发处理引擎,传输所述非远程直接内存访问上行流量到远程直接内存访问协议处理引擎,然后,通过所述远程直接内存访问协议处理引擎,上送与所述非远程直接内存访问上行流量对应的第二镜像流量到所述第二应用;
通过所述第二应用,对所述第二镜像流量进行解包解析从而执行与所述非远程直接内存访问上行流量相关联的网络流量抓包分析。
8.根据权利要求7所述的方法,其特征在于,所述远程直接内存访问协议处理引擎利用所述镜像流量接收队列向所述第二应用传输所述第二镜像流量,所述远程直接内存访问协议处理引擎响应于所述第一镜像流量的传输完成或者所述第二镜像流量的传输完成添加完成队列条目到所述远程直接内存访问完成队列。
9.根据权利要求2所述的方法,其特征在于,所述远程直接内存访问流量发送队列和所述远程直接内存访问流量接收队列属于同一队列对,并且,所述第一应用通过提交发送队列工作请求到所述远程直接内存访问流量发送队列来管理所述远程直接内存访问流量发送队列以及通过提交接收队列工作请求到所述远程直接内存访问流量接收队列来管理所述远程直接内存访问流量接收队列,所述第二应用通过提交镜像流量接收队列工作请求到所述镜像流量接收队列来管理所述镜像流量接收队列。
10.根据权利要求1所述的方法,其特征在于,所述远程直接内存访问上下行流量符合所述匹配规则,包括:所述匹配规则所指示的所述至少一个网络接口包括用于收发所述远程直接内存访问上下行流量的网络接口。
11.根据权利要求1所述的方法,其特征在于,所述第二应用的解包解析能力包括所述第二应用所支持的至少一个通信标准和至少一个网络协议,其中,所述远程直接内存访问上下行流量符合所述匹配规则,包括:所述第二应用所支持的所述至少一个通信标准包括与所述远程直接内存访问上下行流量相关联的通信标准,并且,所述第二应用所支持的所述至少一个网络协议包括与所述远程直接内存访问上下行流量相关联的网络协议。
12.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据权利要求1至11中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据权利要求1至11中任一项所述的方法。
14.一种用于网络流量抓包分析的***,其特征在于,所述***包括:
报文转发处理引擎,用于接收远程直接内存访问上下行流量以及判断所述远程直接内存访问上下行流量是否符合匹配规则,其中,与所述远程直接内存访问上下行流量相关联的存储操作通过第一应用来执行,所述匹配规则至少基于不同于所述第一应用的第二应用的解包解析能力且指示至少一个网络接口;
远程直接内存访问协议处理引擎,其中,当所述远程直接内存访问上下行流量符合所述匹配规则时,所述报文转发处理引擎传输所述远程直接内存访问上下行流量到所述远程直接内存访问协议处理引擎,然后,所述远程直接内存访问协议处理引擎上送与所述远程直接内存访问上下行流量对应的第一镜像流量到第二应用;
所述第二应用,用于对所述第一镜像流量进行解包解析从而执行与所述远程直接内存访问上下行流量相关联的网络流量抓包分析。
15.根据权利要求14所述的***,其特征在于,用户态远程直接内存访问队列包括远程直接内存访问流量发送队列、远程直接内存访问流量接收队列、镜像流量接收队列和远程直接内存访问完成队列,其中,所述远程直接内存访问协议处理引擎利用所述远程直接内存访问流量发送队列和所述远程直接内存访问流量接收队列与所述第一应用之间传输所述远程直接内存访问上下行流量,所述远程直接内存访问协议处理引擎利用所述镜像流量接收队列向所述第二应用传输所述第一镜像流量,所述远程直接内存访问流量发送队列、所述远程直接内存访问流量接收队列以及所述镜像流量接收队列共用所述远程直接内存访问完成队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410016891.3A CN117527654B (zh) | 2024-01-05 | 2024-01-05 | 一种用于网络流量抓包分析的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410016891.3A CN117527654B (zh) | 2024-01-05 | 2024-01-05 | 一种用于网络流量抓包分析的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117527654A CN117527654A (zh) | 2024-02-06 |
CN117527654B true CN117527654B (zh) | 2024-04-09 |
Family
ID=89753538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410016891.3A Active CN117527654B (zh) | 2024-01-05 | 2024-01-05 | 一种用于网络流量抓包分析的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117527654B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106953774A (zh) * | 2016-01-07 | 2017-07-14 | 无锡聚云科技有限公司 | 一种基于用户自定义的网络抓包*** |
CN110222503A (zh) * | 2019-04-26 | 2019-09-10 | 西安交大捷普网络科技有限公司 | 一种大数据流负载下的数据库审计方法、***与设备 |
CN113708990A (zh) * | 2021-08-06 | 2021-11-26 | 上海龙旗科技股份有限公司 | 一种用于数据包的抓包及解包的方法及设备 |
CN115934623A (zh) * | 2023-02-09 | 2023-04-07 | 珠海星云智联科技有限公司 | 一种基于远程直接内存访问的数据处理方法、设备及介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10331613B2 (en) * | 2015-10-30 | 2019-06-25 | Netapp, Inc. | Methods for enabling direct memory access (DMA) capable devices for remote DMA (RDMA) usage and devices therof |
US10523540B2 (en) * | 2017-03-29 | 2019-12-31 | Ca, Inc. | Display method of exchanging messages among users in a group |
-
2024
- 2024-01-05 CN CN202410016891.3A patent/CN117527654B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106953774A (zh) * | 2016-01-07 | 2017-07-14 | 无锡聚云科技有限公司 | 一种基于用户自定义的网络抓包*** |
CN110222503A (zh) * | 2019-04-26 | 2019-09-10 | 西安交大捷普网络科技有限公司 | 一种大数据流负载下的数据库审计方法、***与设备 |
CN113708990A (zh) * | 2021-08-06 | 2021-11-26 | 上海龙旗科技股份有限公司 | 一种用于数据包的抓包及解包的方法及设备 |
CN115934623A (zh) * | 2023-02-09 | 2023-04-07 | 珠海星云智联科技有限公司 | 一种基于远程直接内存访问的数据处理方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117527654A (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115134245B (zh) | 网络装置、方法、计算机化的***和机器可读存储介质 | |
EP3837604B1 (en) | In situ triggered function as a service within a service mesh | |
US8676917B2 (en) | Administering an epoch initiated for remote memory access | |
US8325633B2 (en) | Remote direct memory access | |
US11922304B2 (en) | Remote artificial intelligence (AI) acceleration system | |
US8266630B2 (en) | High-performance XML processing in a common event infrastructure | |
CN109992405A (zh) | 一种处理数据报文的方法和网卡 | |
CN114153778A (zh) | 跨网络桥接 | |
US20050091334A1 (en) | System and method for high performance message passing | |
CN112787999B (zh) | 跨链调用方法、装置、***与计算机可读存储介质 | |
CN115858103B (zh) | 用于开放堆栈架构虚拟机热迁移的方法、设备及介质 | |
CN115934623B (zh) | 一种基于远程直接内存访问的数据处理方法、设备及介质 | |
CN115562887A (zh) | 基于数据组包的核间数据通信方法、***、设备及介质 | |
CN117573602B (zh) | 用于远程直接内存访问报文发送的方法及计算机设备 | |
CN115202573A (zh) | 数据存储***以及方法 | |
CN116049085A (zh) | 一种数据处理***及方法 | |
Eran et al. | Flexdriver: A network driver for your accelerator | |
CN117527654B (zh) | 一种用于网络流量抓包分析的方法及*** | |
CN113157445B (zh) | 基于哈希运算和索引值比对的双向报文对称rss处理方法及*** | |
CN114595080A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN116340246B (zh) | 用于直接内存访问读取操作的数据预读方法及介质 | |
Yamamoto et al. | Tinet+ tecs: Component-based tcp/ip protocol stack for embedded systems | |
KR20190041954A (ko) | 멀티 커널 시스템의 입출력 처리 방법 및 장치 | |
US11537457B2 (en) | Low latency remoting to accelerators | |
CN115604198B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |