CN116743883A - 一种智能网卡、数据处理系统及其工作方法 - Google Patents
一种智能网卡、数据处理系统及其工作方法 Download PDFInfo
- Publication number
- CN116743883A CN116743883A CN202311022961.8A CN202311022961A CN116743883A CN 116743883 A CN116743883 A CN 116743883A CN 202311022961 A CN202311022961 A CN 202311022961A CN 116743883 A CN116743883 A CN 116743883A
- Authority
- CN
- China
- Prior art keywords
- data
- interface
- packet
- module
- data packet
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 195
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000006243 chemical reaction Methods 0.000 claims description 35
- 230000003287 optical effect Effects 0.000 claims description 19
- 238000003672 processing method Methods 0.000 claims description 15
- 230000002093 peripheral effect Effects 0.000 claims description 9
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000009286 beneficial effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- 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/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
- H04L12/40013—Details regarding a bus controller
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
- H04L12/40032—Details regarding a bus interface enhancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40169—Flexible bus arrangements
- H04L12/40176—Flexible bus arrangements involving redundancy
-
- 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/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- 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
本申请提供一种智能网卡、数据处理系统及其工作方法,应用于云计算技术领域,该智能网卡包括现场可编程门阵列FPGA、外部接口、系统级芯片SOC和第一网口,其中,FPGA、外部接口和系统级芯片SOC分别与服务器主机连接,FPGA与外部接口连接,外部接口与SOC连接,SOC与第一网口连接;FPGA包括接口协议处理模块和业务处理模块。该智能网卡的FPGA内部的接口协议处理模块和业务处理模块彼此隔离,两者通过并行总线连接,接口协议处理模块将从外部接口接收的数据统一交给业务处理模块进行处理,在外部接口升级的情况下,也不影响业务处理模块对数据的高效处理,从而有利于在满足云计算功能需求的同时,维护系统的稳定性。
Description
技术领域
本申请涉及云计算技术领域,尤其涉及一种智能网卡、数据处理系统及其工作方法。
背景技术
云计算快速增长的数据处理带宽对于中央处理器(Central Processing Unit,CPU)的消耗越来越重,急需可以协助CPU进行底层数据处理的设备,用以释放CPU的能力,同时提升系统整体性能。现有的技术架构无法满足云计算的功能需求,并维护系统的稳定性。
发明内容
本申请实施例提供一种智能网卡、数据处理系统及其工作方法,以解决现有的技术架构无法满足云计算的功能需求,并维护系统的稳定性。
为了解决上述技术问题,本申请是这样实现的:
第一方面,本申请实施例提供了一种智能网卡,该智能网卡包括: 现场可编程门阵列FPGA、外部接口、系统级芯片SOC和第一网口,其中,所述FPGA、所述外部接口和所述系统级芯片SOC分别与服务器主机连接,所述FPGA与所述外部接口连接,所述外部接口与所述SOC连接,所述SOC与所述第一网口连接;
所述FPGA包括接口协议处理模块和业务处理模块,其中,所述接口协议处理模块与所述外部接口连接,所述业务处理模块通过并行总线与所述接口协议处理模块连接,所述接口协议处理模块用于接收所述外部接口发送的数据,并对所述外部接口发送的数据进行协议转换处理,所述业务处理模块用于接收所述接口协议处理模块发送的协议转换处理后的数据并进行处理。
可选地,所述接口协议处理模块包括外部接口处理网际协议IP、接口协议转换模块和分类模块,所述外部接口处理IP与所述接口协议转换模块连接,所述接口协议转换模块与所述分类模块连接,所述分类模块通过所述并行总线与所述业务处理模块连接;
其中,所述外部接口处理IP用于接收所述外部接口发送的数据,并将所述数据发送给所述接口协议转换模块,所述接口协议转换模块用于对接收到的所述数据进行串并转换处理,并将转换后的数据发送给所述分类模块,所述分类模块用于将所述转换后的数据进行分类,并将分类后的数据通过所述并行总线发送给所述业务处理模块。
可选地,所述外部接口包括小型可热插拔光模块SFP光口、高速串行计算机扩展总线标准PCIE总线接口、高速缓存芯片组、闪存Flash或带电可擦可编程只读存储器EEPROM低速存储器接口;
所述外部接口处理IP包括PCIE或直接存储器访问DMA IP、高速网络接口IP、高速存储器IP、串行外设接口SPI或集成电路总线IIC接口IP;
其中,所述PCIE或DMA IP用于接收所述PCIE总线接口发送的数据,所述高速网络接口IP用于接收所述SFP光口发送的数据,所述高速存储器IP用于接收所述高速缓存芯片组发送的数据,所述SPI或IIC接口IP用于接收所述Flash或 EEPROM低速存储器接口发送的数据。
可选地,所述业务处理模块包括接口调度分包组包模块、数据包处理模块、包缓存模块和状态统计限速管理模块,所述接口调度分包组包模块通过所述并行总线与所述分类模块连接,所述数据包处理模块与所述接口调度分包组包模块连接,所述包缓存模块与所述数据包处理模块连接,所述状态统计限速管理模块与所述数据包处理模块连接;
其中,所述接口调度分包组包模块用于按照第一预设优先级规则和预设包大小值,将第一数据包发送至所述数据包处理模块,所述数据包处理模块用于对接收到的所述第一数据包进行处理,所述包缓存模块用于对所述第一数据包中的第一报文进行存储,所述状态统计限速管理模块用于根据第一数据包的类别、所述第一数据包中的第一包头信息和与所述第一数据包对应的基于流表匹配的匹配结果进行限速管理。
第二方面,本申请实施例还提供一种数据处理系统,该数据处理系统包括如上所述的智能网卡。
第三方面,本申请实施例还提供一种数据处理方法,应用于如上所述的智能网卡,该方法包括:
获取第一数据包;
基于第一预设优先级规则,对所述第一数据包进行数据处理,得到第二数据包;
将所述第二数据包通过并行总线发送给接口协议处理模块。
可选地,所述获取第一数据包,包括:
获取待处理数据包;
在所述待处理数据包的包大小值大于预设包大小值的情况下,对所述待处理数据包进行切割处理,得到包大小值小于所述预设包大小值的至少两个所述第一数据包。
可选地,所述基于第一预设优先级规则,对所述第一数据包进行数据处理,得到第二数据包,包括:
基于所述第一预设优先级规则,对所述第一数据包进行解析,得到所述第一数据包的第一包头和所述第一数据包的第一报文;
基于流表匹配对所述第一包头进行修改,得到第二包头;
根据所述第二包头,对所述第一报文进行加密或者解密,得到第二报文;
根据所述第二包头和所述第二报文,得到第二数据包。
可选地,所述基于流表匹配对所述第一包头进行修改,得到第二包头,包括:
根据所述流表匹配的匹配结果,确定所述第一数据包的类别;
根据所述第一数据包的类别,确定所述第一数据包的优先级;
基于所述第一数据包的优先级将所述第一包头按照所述匹配结果进行修改,得到第二包头。
可选地,所述根据所述流表匹配的匹配结果,确定所述第一数据包的类别之后,所述方法还包括:
向状态统计限速管理模块发送所述第一数据包的类别、所述第一包头信息和所述流表匹配的匹配结果,所述状态统计限速管理模块用于根据所述第一数据包类别、所述第一包头信息和所述流表匹配的匹配结果进行限速管理。
本申请实施例的智能网卡包括现场可编程门阵列FPGA、外部接口、系统级芯片SOC和第一网口,其中,FPGA、外部接口和系统级芯片SOC分别与服务器主机连接,FPGA与外部接口连接,外部接口与SOC连接,SOC与第一网口连接;FPGA包括接口协议处理模块和业务处理模块,其中,接口协议处理模块与外部接口连接,业务处理模块通过并行总线与接口协议处理模块连接,接口协议处理模块用于接收所述外部接口发送的数据,并对外部接口发送的数据进行协议转换处理,业务处理模块用于接收接口协议处理模块发送的协议转换处理后的数据并进行处理。该智能网卡的FPGA内部的接口协议处理模块和业务处理模块彼此隔离,两者通过并行总线连接,接口协议处理模块将从外部接口接收的数据统一交给业务处理模块进行处理,在外部接口升级的情况下,也不影响业务处理模块对数据的高效处理,从而有利于在满足云计算功能需求的同时,维护系统的稳定性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的智能网卡的结构图;
图2是本申请实施例提供的FPGA功能模块图;
图3是本申请实施例提供的接口协议处理模块的结构图;
图4是本申请实施例提供的业务处理模块的结构图;
图5是本申请实施例提供的数据处理方法的流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种智能网卡。参见图1,图1是本申请实施例提供的智能网卡的结构图,如图1所示,该智能网卡包括:现场可编程门阵列FPGA、外部接口、系统级芯片SOC和第一网口,其中,所述FPGA、所述外部接口和所述系统级芯片SOC分别与服务器主机连接,所述FPGA与所述外部接口连接,所述外部接口与所述SOC连接,所述SOC与所述第一网口连接;
所述FPGA包括接口协议处理模块和业务处理模块,其中,所述接口协议处理模块与所述外部接口连接,所述业务处理模块通过并行总线与所述接口协议处理模块连接,所述接口协议处理模块用于接收所述外部接口发送的数据,并对所述外部接口发送的数据进行协议转换处理,所述业务处理模块用于接收所述接口协议处理模块发送的协议转换处理后的数据并进行处理。
在本申请实施例中的智能网卡中,现场可编程门阵列(Field Programmable GateArray,FPGA)有与服务器主机中的操作系统(Baseboard Management Controller,BMC)连接的接口,可以是与集成电路总线(Inter-Integrated Circuit,IIC)、同步串行通信协议(Serial Peripheral Interface ,SPI)或通用异步收发器(Universal AsynchronousReceiver Transmitter,UART)等常用数据协议适配的接口,这些接口可以用来读取FPGA运行中的状态参数或配置相关功能,例如通过读取FPGA温度信息用以控制智能网卡散热风扇转速,或读取FPGA外设小型可热插拔光收发一体模块(Small Form-factor Pluggsable,SFP)光口温度协议等其他参数信息,或读取配置网卡(Media Access Control,MAC)媒体访问控制地址等参数。
需要说明的是,外部接口可以为图1中的SFP光口、高速串行计算机扩展总线标准(Peripheral Component Interconnect Express, PCIE)总线接口、高速缓存芯片组、闪存Flash或带电可擦可编程只读存储器(Electrically Erasable Programmable Read-OnlyMemory,EEPROM)低速存储器接口中的至少一项。
SOC连接一个或多个第一网口,第一网口可以用于实现如下功能,例如可以是实现系统管理员对智能网卡的配置和监控,或者是可以用于读取FPGA内部相关状态信息,或者是可以配置FPGA内部相关参数,或者还可以实现对FPGA进行版本升级。SOC也连接了与FPGA连接的Flash/EEPROM,Flash/EEPROM通过控制外围电路切换至SOC进行读写,以此实现SOC对FPGA固件版本的升级,SOC还可以从Flash/EEPROM中读写与自身相关的配置参数及FPGA的配置参数。SOC也有与服务器BMC连接的接口,例如可以是与IIC、SPI或者UART等常用数据协议适配的接口,这些接口可以连接SOC后实现远程管理,远程管理的内容包括SOC系统烧录、升级或者配置等操作。
此外,与BMC连接的第二网口还能够用于实现对智能网卡的远程配置和管理,对于大规模云计算集群的配置非常方便。FPGA通过外部接口还能够同其他机器互相访问的本地计算机host连接。
参见图2,图2是FPGA的功能模块图,FPGA内部包括接口协议处理模块和业务处理模块,其中,接口协议处理模块主要负责物理层、链路层、协议层等网卡工作控制平面的功能,用于与外部接口适配和对数据的协议转换处理。业务处理模块主要负责数据平面的处理等应用功能,如数据解析、分包组包、数据包修改、加密解密、规则匹配等业务相关功能。接口协议处理模块和业务处理模块彼此隔离,通过FPGA内部的多个并行总线连接,可以提高开发重用性及降低开发复杂性,提高系统性能和稳定性。
接口协议处理模块将从外部接口接收的数据统一交给业务处理模块进行处理,在外部接口升级的情况下,也不影响业务处理模块对数据的高效处理,从而有利于在满足云计算功能需求的同时,维护系统的稳定性。
可选地,所述接口协议处理模块包括外部接口处理网际协议IP、接口协议转换模块和分类模块,所述外部接口处理IP与所述接口协议转换模块连接,所述接口协议转换模块与所述分类模块连接,所述分类模块通过所述并行总线与所述业务处理模块连接;
其中,所述外部接口处理IP用于接收所述外部接口发送的数据,并将所述数据发送给所述接口协议转换模块,所述接口协议转换模块用于对接收到的所述数据进行串并转换处理,并将转换后的数据发送给所述分类模块,所述分类模块用于将所述转换后的数据进行分类,并将分类后的数据通过所述并行总线发送给所述业务处理模块。
在本申请实施例的智能网卡中,参见图3,图3为接口协议处理模块的结构图,接口协议处理模块包括外部接口处理网际协议(Internet Protocol,IP)、接口协议转换模块和分类模块。需要说明的是,外部接口处理IP即包括图3中的PCIE或直接存储器访问(DirectMemory Access,DMA)IP、高速网络接口IP、高速存储器IP、串行外设接口SPI或集成电路总线IIC接口IP。
外部接口处理IP用于接收外部接口发送的数据,并将数据发送给接口协议转换模块,接口协议转换模块用于对接收到的数据进行串并转换处理,还可以进行数据位宽转换及通信协议转换,用于适配业务处理模块所需要的接口协议。所有数据进行协议转换之后会分类为数据内容层面的数据和数据控制层面的数据,示例性地,一个视频流的数据可以分类为视频内容层面的数据和对视频发送速度等控制层面的数据,数据内容层面的数据通过数据面通道进行传输,数据控制层面的数据通过控制面通道进行传输,然后所有数据再通过并行总线发送给业务处理模块。
本申请实施例中,FPGA中包括独立的接口协议处理模块,更有利于外部接口升级,且不影响FPGA的内部业务处理逻辑。独立的接口协议转换模块直接将不同高速接口统一为业务处理需求接口,即使外部接口升级也不影响FPGA的业务处理功能。另外,分离的数据面通道与控制面通道也有利于业务处理模块配置及处理不同类型的数据。
可选地,所述外部接口包括小型可热插拔光模块SFP光口、高速串行计算机扩展总线标准总线接口PCIE、高速缓存芯片组、闪存Flash或带电可擦可编程只读存储器EEPROM低速存储器接口;
所述外部接口处理IP包括PCIE或直接存储器访问DMA IP、高速网络接口IP、高速存储器IP、串行外设接口SPI或集成电路总线IIC接口IP;
其中,所述PCIE或DMA IP用于接收所述PCIE总线接口发送的数据,所述高速网络接口IP用于接收所述SFP光口发送的数据,所述高速存储器IP用于接收所述高速缓存芯片组发送的数据,所述SPI或IIC接口IP用于接收所述Flash或 EEPROM低速存储器接口发送的数据。
在本申请实施例的智能网卡中,参见图1和图3,与FPGA连接的外部接口包括SFP光口、PCIE总线接口、高速缓存芯片组、Flash或EEPROM低速存储器接口。2个或更多个的SFP光口通过光口芯片管脚与FPGA连接,SFP光口可以是25G或100G等规格。多个SFP可以应用于的冷备份或者热备份,或通过不同模式的纽带进行绑定,以实现性能的扩展及提升系统可靠性。2个或更多个PCIE总线接口,一端连接服务器CPU总线,一端连接智能网卡SOC,PCIE总线接口协议可以是PCIE3.0或4.0或5.0等协议,PCIE总线接口可以为x4/x8/16等规格。多个PCIE可以作为未来性能扩展或应用于冷、热备份以保证系统可靠性。高速缓存芯片组可以是高速缓存芯片组(Double Data Rate)DDR3、DDR4、DDR5或(High Bandwidth Memory)HBM2。多组高速缓存芯片组可以作为性能扩展使用。Flash或EEPROM低速存储器接口,用于存储FPGA运行所需固件,或存储运行过程中配置参数,或存储运行过程中间数据等。
外部接口处理IP包括PCIE或DMAIP、高速网络接口IP、高速存储器IP、串行外设接口SPI或集成电路总线IIC接口IP。PCIE或者DMA IP用于对PCIE相关功能的数据收发进行处理。高速网络接口IP用于对SFP光口相关功能的数据收发进行处理。高速存储器IP用于对高速缓存芯片组数据读写相关功能的高速接口数据进行处理。SPI或者IIC接口模块用于对Flash和BMC通信相关的低速接口数据进行处理。
本申请实施例的智能网卡中外部接口与外部接口处理IP对应连接,有利于外部接口处理IP快速接收数据。
可选地,所述业务处理模块包括接口调度分包组包模块、数据包处理模块、包缓存模块和状态统计限速管理模块,所述接口调度分包组包模块通过所述并行总线与所述分类模块连接,所述数据包处理模块与所述接口调度分包组包模块连接,所述包缓存模块与所述数据包处理模块连接,所述状态统计限速管理模块与所述数据包处理模块连接;
其中,所述接口调度分包组包模块用于按照第一预设优先级规则和预设包大小值,将第一数据包发送至所述数据包处理模块,所述数据包处理模块用于对接收到的所述第一数据包进行处理,所述包缓存模块用于对所述第一数据包中的第一报文进行存储,所述状态统计限速管理模块用于根据第一数据包的类别、所述第一数据包中的第一包头信息和与所述第一数据包对应的基于流表匹配的匹配结果进行限速管理。
在本申请实施例的智能网卡中,参见图4,图4为业务处理模块的结构图。当数据包流入业务处理模块后,首先进入接口调度分包组包模块,此模块负责将多个PCIE及SFP光口输入的数据包按照一定的优先级规则进行调度,并对输入过大的数据包按照相关配置包大小值进行切割处理,得到第一数据包。
数据包处理模块对接收到的第一数据包进行处理,需要说明的是数据包处理模块即包括图4中的2数据包解析、3流表匹配、4数据包分类、5拥塞管理、6出口调度,以及7包头修改、报文加密或者解密等子模块。数据包处理模块首先对第一数据包进行解析,将第一数据包中的第一包头和第一报文进行分离。然后对第一包头信息进行解析,得到相应通信协议内所有相关信息,例如TCP协议内MAC地址/IP地址等信息。第一报文信息存储到包缓存模块,第一包头信息继续进行接下来的操作。(Ternary Content Addressable Memory,TCAM)三重内容可寻址内存模块对第一包头信息进行筛选过滤,然后再进行流表匹配,得到相应的匹配结果。
然后再根据匹配结果对第一数据包进行分类,例如得到存储数据包或者网络数据包。将第一数据包的类型、匹配结果和第一包头信息发送给状态统计限速管理模块进行处理。然后再基于第一数据包的类型确定第一数据包的优先级,根据第一数据包的优先级进行之后的处理。将第一包头按照匹配结果进行修改,并从包缓存模块中取出第一报文信息进行加密或者解密操作,得到第二数据包。接口调度分包组包模块接收第二数据包通过并行总线流出智能网卡。
需要说明的是,以上提到的业务处理模块中的所有模块均可以通过复制并行处理以提高性能,例如对数据处理模块进行复制,可以使得数据处理的速度翻倍,类似单线程与多线程处理,其他模块同理。如果模块复制后需要增加相应的外部接口或者芯片组的,则在图1的智能网卡结构图中增加所需要的接口或者芯片组,以实现相应的功能扩充。
本申请实施例中的数据处理模块可以快速的处理数据,同时不同模块可以进行复制有利于进一步提升数据处理的速度。
本申请又一实施例提供的一种数据处理系统,包括如上所述的智能网卡,本实施例的数据处理系统基于前述的智能网卡实现,因此该数据处理系统的具体实施方式可见前文中的智能网卡的实施例部分这里不再赘述。
本申请又一实施例提供的一种数据处理方法,应用于如上所述的智能网卡,参见图5,该数据处理方法包括如下步骤:
步骤501、获取第一数据包;
步骤502、基于第一预设优先级规则,对所述第一数据包进行数据处理,得到第二数据包;
步骤503、将所述第二数据包通过并行总线发送给接口协议处理模块。
在本申请实施例的数据处理方法中,首先从接口调度分包组包模块中获取第一数据包,然后基于第一预设优先级规则对第一数据包进行数据处理,包括对第一数据包的解析、第一数据包中第一包头的修改和第一数据包中第一报文的存储等,在进行处理之后得到第二数据包,然后再将得到的第二数据包通过FPGA内部的并行总线发送给接口协议处理模块。本申请实施例的数据处理方法有利于快速地对数据进行处理。
可选地,所述获取第一数据包,包括:
获取待处理数据包;
在所述待处理数据包的包大小值大于预设包大小值的情况下,对所述待处理数据包进行切割处理,得到包大小值小于所述预设包大小值的至少两个所述第一数据包。
在本申请实施例的数据处理方法中,首先从外部接口获取待处理的数据包。在待处理数据包较大的情况下,按照预设包大小值对待处理数据包进行切割处理,得到包大小值小于与预设包大小值的至少两个第一数据包。本申请实施例的数据处理方法将过大的待处理数据包进行切割处理,有利于根据系统的配置对数据包进行进一步的处理。
可选地,所述基于第一预设优先级规则,对所述第一数据包进行数据处理,得到第二数据包,包括:
基于所述第一预设优先级规则,对所述第一数据包进行解析,得到所述第一数据包的第一包头和所述第一数据包的第一报文;
基于流表匹配对所述第一包头进行修改,得到第二包头;
根据所述第二包头,对所述第一报文进行加密或者解密,得到第二报文;
根据所述第二包头和所述第二报文,得到第二数据包。
在本申请实施例的数据处理方法中,第一预设优先级规则主要通过接口的端口号确定。根据第一预设优先级规则,确定对第一数据包的处理顺序,然后对第一数据包开始处理。首先,对第一数据包进行解析,得到第一数据包的第一包头和第一数据包的第一报文。需要说明的是,在网络通信协议OpenFlow体系中,数据都是以流为单位进行处理的。流表是针对特定流的策略表项的集合,一个流表项包括匹配域、优先级、处理指令等。在处理指令中就包括指示交换机在收到匹配的数据包时,对包头进行修改。首先根据匹配域找到匹配到的第一数据包,然后根据处理指示对第一包头进行修改,得到第二包头。然后根据第二包头进行查找,查找这种类型的包头需要进行的操作,从而对第一报文进行加密或者解密,得到第二报文。再将第二包头和第二报文组合为第二数据包。
本申请实施例的数据处理方法基于第一预设优先级规则,对第一数据包进行数据处理,从而有利于提高数据处理的速度。
可选地,所述基于流表匹配对所述第一包头进行修改,得到第二包头,包括:
根据所述流表匹配的匹配结果,确定所述第一数据包的类别;
根据所述第一数据包的类别,确定所述第一数据包的优先级;
基于所述第一数据包的优先级将所述第一包头按照所述匹配结果进行修改,得到第二包头。
在本申请实施例的数据处理方法中,流表项中又很多个匹配项,涵盖了链路层、网络层和传输层的大部分标识,根据流表匹配的结果,确定第一数据包的类型。再根据第一数据包的类型,确定第一数据包的优先级,即处理顺序,之后再根据第一数据包的处理顺序将第一包头进行修改。本申请实施例通过第一数据包的类型确定第一数据包的优先级,从而对第一包头进行修改,从而有利于提高数据处理的速度。
可选地,所述根据所述流表匹配的匹配结果,确定所述第一数据包的类别之后,所述方法还包括:
向状态统计限速管理模块发送所述第一数据包的类别、所述第一包头信息和所述流表匹配的匹配结果,所述状态统计限速管理模块用于根据所述第一数据包类别、所述第一包头信息和所述流表匹配的匹配结果进行限速管理。
在本申请实施例的数据处理方法中,将第一数据包的类别、第一数据包中的第一包头信息和与第一数据包对应的进行流表匹配的匹配结果全部发送给状态统计限速管理模块,状态统计限速管理模块再根据这些信息进行限速管理。本申请实施例的数据处理方法通过状态统计限速管理模块对业务处理模块的数据处理过程进行监控,根据获取到的相关信息有利于及时进行系统管理。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (10)
1.一种智能网卡,其特征在于,所述智能网卡包括:现场可编程门阵列FPGA、外部接口、系统级芯片SOC和第一网口,其中,所述FPGA、所述外部接口和所述系统级芯片SOC分别与服务器主机连接,所述FPGA与所述外部接口连接,所述外部接口与所述SOC连接,所述SOC与所述第一网口连接;
所述FPGA包括接口协议处理模块和业务处理模块,其中,所述接口协议处理模块与所述外部接口连接,所述业务处理模块通过并行总线与所述接口协议处理模块连接,所述接口协议处理模块用于接收所述外部接口发送的数据,并对所述外部接口发送的数据进行协议转换处理,所述业务处理模块用于接收所述接口协议处理模块发送的协议转换处理后的数据并进行处理。
2.根据权利要求1所述的智能网卡,其特征在于,所述接口协议处理模块包括外部接口处理网际协议IP、接口协议转换模块和分类模块,所述外部接口处理IP与所述接口协议转换模块连接,所述接口协议转换模块与所述分类模块连接,所述分类模块通过所述并行总线与所述业务处理模块连接;
其中,所述外部接口处理IP用于接收所述外部接口发送的数据,并将所述数据发送给所述接口协议转换模块,所述接口协议转换模块用于对接收到的所述数据进行串并转换处理,并将转换后的数据发送给所述分类模块,所述分类模块用于将所述转换后的数据进行分类,并将分类后的数据通过所述并行总线发送给所述业务处理模块。
3.根据权利要求2所述的智能网卡,其特征在于,所述外部接口包括小型可热插拔光模块SFP光口、高速串行计算机扩展总线标准PCIE总线接口、高速缓存芯片组、闪存Flash或带电可擦可编程只读存储器EEPROM低速存储器接口;
所述外部接口处理IP包括PCIE或直接存储器访问DMA IP、高速网络接口IP、高速存储器IP、串行外设接口SPI或集成电路总线IIC接口IP;
其中,所述PCIE或DMA IP用于接收所述PCIE总线接口发送的数据,所述高速网络接口IP用于接收所述SFP光口发送的数据,所述高速存储器IP用于接收所述高速缓存芯片组发送的数据,所述SPI或IIC接口IP用于接收所述Flash或 EEPROM低速存储器接口发送的数据。
4.根据权利要求2所述的智能网卡,其特征在于,所述业务处理模块包括接口调度分包组包模块、数据包处理模块、包缓存模块和状态统计限速管理模块,所述接口调度分包组包模块通过所述并行总线与所述分类模块连接,所述数据包处理模块与所述接口调度分包组包模块连接,所述包缓存模块与所述数据包处理模块连接,所述状态统计限速管理模块与所述数据包处理模块连接;
其中,所述接口调度分包组包模块用于按照第一预设优先级规则和预设包大小值,将第一数据包发送至所述数据包处理模块,所述数据包处理模块用于对接收到的所述第一数据包进行处理,所述包缓存模块用于对所述第一数据包中的第一报文进行存储,所述状态统计限速管理模块用于根据第一数据包的类别、所述第一数据包中的第一包头信息和与所述第一数据包对应的基于流表匹配的匹配结果进行限速管理。
5.一种数据处理系统,其特征在于,所述数据处理系统包括如权利要求1-4中任一项所述的智能网卡。
6.一种数据处理方法,其特征在于,应用于权利要求1-4中任一项所述的智能网卡,所述方法包括:
获取第一数据包;
基于第一预设优先级规则,对所述第一数据包进行数据处理,得到第二数据包;
将所述第二数据包通过并行总线发送给接口协议处理模块。
7.根据权利要求6所述的数据处理方法,其特征在于,所述获取第一数据包,包括:
获取待处理数据包;
在所述待处理数据包的包大小值大于预设包大小值的情况下,对所述待处理数据包进行切割处理,得到包大小值小于所述预设包大小值的至少两个所述第一数据包。
8.根据权利要求6所述的数据处理方法,其特征在于,所述基于第一预设优先级规则,对所述第一数据包进行数据处理,得到第二数据包,包括:
基于所述第一预设优先级规则,对所述第一数据包进行解析,得到所述第一数据包的第一包头和所述第一数据包的第一报文;
基于流表匹配对所述第一包头进行修改,得到第二包头;
根据所述第二包头,对所述第一报文进行加密或者解密,得到第二报文;
根据所述第二包头和所述第二报文,得到第二数据包。
9.根据权利要求8所述的数据处理方法,其特征在于,所述基于流表匹配对所述第一包头进行修改,得到第二包头,包括:
根据所述流表匹配的匹配结果,确定所述第一数据包的类别;
根据所述第一数据包的类别,确定所述第一数据包的优先级;
基于所述第一数据包的优先级将所述第一包头按照所述匹配结果进行修改,得到第二包头。
10.根据权利要求9所述的数据处理方法,其特征在于,所述根据所述流表匹配的匹配结果,确定所述第一数据包的类别之后,所述方法还包括:
向状态统计限速管理模块发送所述第一数据包的类别、所述第一包头信息和所述流表匹配的匹配结果,所述状态统计限速管理模块用于根据所述第一数据包类别、所述第一包头信息和所述流表匹配的匹配结果进行限速管理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311022961.8A CN116743883B (zh) | 2023-08-15 | 2023-08-15 | 一种智能网卡、数据处理系统及其工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311022961.8A CN116743883B (zh) | 2023-08-15 | 2023-08-15 | 一种智能网卡、数据处理系统及其工作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116743883A true CN116743883A (zh) | 2023-09-12 |
CN116743883B CN116743883B (zh) | 2023-11-03 |
Family
ID=87902981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311022961.8A Active CN116743883B (zh) | 2023-08-15 | 2023-08-15 | 一种智能网卡、数据处理系统及其工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116743883B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117749739A (zh) * | 2024-02-18 | 2024-03-22 | 北京火山引擎科技有限公司 | 数据发送方法、数据接收方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090037627A1 (en) * | 2007-07-31 | 2009-02-05 | Broadcom Corporation | Flash memory with millimeter wave host interface and method for use therewith |
CN101719873A (zh) * | 2009-12-11 | 2010-06-02 | 曙光信息产业(北京)有限公司 | 千兆虚拟网卡 |
CN110300081A (zh) * | 2018-03-21 | 2019-10-01 | 大唐移动通信设备有限公司 | 一种数据传输的方法和设备 |
CN111338991A (zh) * | 2020-02-20 | 2020-06-26 | 中国科学院自动化研究所 | 基于eMMC阵列的多模态存储系统 |
CN112783818A (zh) * | 2020-12-30 | 2021-05-11 | 加弘科技咨询(上海)有限公司 | 一种多核嵌入式系统的在线升级方法及系统 |
CN113609045A (zh) * | 2021-06-29 | 2021-11-05 | 苏州浪潮智能科技有限公司 | 一种通用性强的智能网卡bmc通信结构及方法 |
CN115543872A (zh) * | 2021-06-29 | 2022-12-30 | 腾讯科技(深圳)有限公司 | 一种设备管理方法、装置及计算机存储介质 |
-
2023
- 2023-08-15 CN CN202311022961.8A patent/CN116743883B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090037627A1 (en) * | 2007-07-31 | 2009-02-05 | Broadcom Corporation | Flash memory with millimeter wave host interface and method for use therewith |
CN101719873A (zh) * | 2009-12-11 | 2010-06-02 | 曙光信息产业(北京)有限公司 | 千兆虚拟网卡 |
CN110300081A (zh) * | 2018-03-21 | 2019-10-01 | 大唐移动通信设备有限公司 | 一种数据传输的方法和设备 |
CN111338991A (zh) * | 2020-02-20 | 2020-06-26 | 中国科学院自动化研究所 | 基于eMMC阵列的多模态存储系统 |
CN112783818A (zh) * | 2020-12-30 | 2021-05-11 | 加弘科技咨询(上海)有限公司 | 一种多核嵌入式系统的在线升级方法及系统 |
CN113609045A (zh) * | 2021-06-29 | 2021-11-05 | 苏州浪潮智能科技有限公司 | 一种通用性强的智能网卡bmc通信结构及方法 |
CN115543872A (zh) * | 2021-06-29 | 2022-12-30 | 腾讯科技(深圳)有限公司 | 一种设备管理方法、装置及计算机存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117749739A (zh) * | 2024-02-18 | 2024-03-22 | 北京火山引擎科技有限公司 | 数据发送方法、数据接收方法、装置、设备及存储介质 |
CN117749739B (zh) * | 2024-02-18 | 2024-06-04 | 北京火山引擎科技有限公司 | 数据发送方法、数据接收方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116743883B (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9407577B2 (en) | Communication control system, switch node and communication control method | |
US7937447B1 (en) | Communication between computer systems over an input/output (I/O) bus | |
EP3812905A2 (en) | Extending berkeley packet filter semantics for hardware offloads | |
US7609718B2 (en) | Packet data service over hyper transport link(s) | |
US8358655B2 (en) | Computer system and network interface supporting class of service queues | |
US8150981B2 (en) | Flexible and extensible receive side scaling | |
CN109033004B (zh) | 一种基于Aurora总线的双机内存数据共享系统 | |
US20030185220A1 (en) | Dynamically loading parsing capabilities | |
CN116743883B (zh) | 一种智能网卡、数据处理系统及其工作方法 | |
US20190238452A1 (en) | System and method for low-latency network data switching | |
US9678912B2 (en) | Pass-through converged network adaptor (CNA) using existing ethernet switching device | |
EP2717520B1 (en) | Communication path control system, and communication path control method | |
US20060259656A1 (en) | Simulating multiple virtual channels in switched fabric networks | |
US9479464B1 (en) | Computer system and network interface with hardware based packet filtering and classification | |
WO2015058699A1 (en) | Data forwarding | |
CN108848006B (zh) | 一种端口状态的监测方法与装置 | |
KR20120120354A (ko) | 원격 제어 시스템, 원격 제어 방법 및 원격 제어용 프로그램을 기록한 기록 매체 | |
EP2683120B1 (en) | Network system, packet processing method, and storage medium | |
KR20170133236A (ko) | PCIe 장치들에서의 고속 입출력을 위한 스토리지 시스템, 방법 및 장치 | |
KR100871731B1 (ko) | 네트워크 인터페이스 카드 및 그 카드에서 수행되는 트래픽 분할 처리 방법, 상기 네트워크 인터페이스 카드를 포함하는 다중처리 시스템 | |
US20030118020A1 (en) | Method and apparatus for classification of packet data prior to storage in processor buffer memory | |
JP2003050788A (ja) | 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法 | |
CN109522256A (zh) | 一种串口通信方法、网络设备、控制设备及存储介质 | |
KR101466937B1 (ko) | 스마트탭 장치 및 스마트 탭 장치에서의 네트워크 패킷 처리 방법 | |
US20230188377A1 (en) | Communication relay device, communication control method, and non-transitory computer readable storage medium |
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 |