CN110300081B - 一种数据传输的方法和设备 - Google Patents
一种数据传输的方法和设备 Download PDFInfo
- Publication number
- CN110300081B CN110300081B CN201810236085.1A CN201810236085A CN110300081B CN 110300081 B CN110300081 B CN 110300081B CN 201810236085 A CN201810236085 A CN 201810236085A CN 110300081 B CN110300081 B CN 110300081B
- Authority
- CN
- China
- Prior art keywords
- data packet
- packet
- protocol
- data
- module
- 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
Images
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/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 Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据传输的方法和设备,用以解决现有技术中网卡的加速方案无法适用于5G无线网络的问题。本发明实施例网卡中的FPGA模块,首先根据数据包支持的协议类型进行分类,然后依据相应的协议类型对数据包进行处理、IP层数据流分类合并、UDP层数据包分片重组。由于本发明实施例中采用了FPGA模块对网络传输中不同协议类型的数据包进行处理或加速分片重组,无需通用服务器CPU实现网络协议功能,因此可以降低对服务器CPU的处理资源需求,减少了服务器网络传输协议处理时延,大幅提升了服务器处理性能,可以满足5G无线业务的设备需求。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种数据传输的方法和设备。
背景技术
5G无线网络技术的研究是目前通信领域的热点,而3GPP(3rd GenerationPartnership Project,第三代移动通信标准化组织)定义的5G网络性能指标(移动用户体验速率1Gbps量级,1百万连接数/平方公里、业务面时延小于1ms) 对现有无线通信技术提出了巨大挑战。
5G无线网络将是一个基于C-RAN(Radio Access Network,无线接入网) 架构的云化网络,网元接口仍采用以太网传输,前传承载采用了WDM (Wavelength DivisionMultiplexing,波分复用)、OTN(OpticalTransportNetwork,光传送网)光网络,中传承载和回传承载采用OTN+IPRAN(IP Radio Access Network,基于IP的无线接入网)的传输方案。为了满足大容量和低时延业务的承载需求,无线设备和传输网络均需引入25GE、50GE甚至100GE等高速接口技术。由于接口速率的大幅提升和网络时延的严格要求,进行网络加速是保证网络质量的重要手段之一。
现有技术在IT网络中,网络传输协议(如TCP/IP(Internet Protocol,网络协议)等)的数据包处理是由CPU(Central Processing Unit,中央处理器) 内部的芯片完成,数据中心主要的网络加速方式是通过服务器的CPU实现的,但是5G无线网络业务面采用的是UDP/IP(User Datagram Protocol,用户数据报协议)传输协议,与IT网络传输协议的存在差异性,如果还由服务器的CPU 实现网络加速会增加服务器CPU的资源负担,加大服务器CPU对网络传输协议的数据包的处理时间,从而降低了服务设备的性能。因此,现有技术中网卡的加速方案无法适用于5G无线网络。
发明内容
本发明提供一种数据传输的方法和设备,用以解决现有技术中网卡的加速方案无法适用于5G无线网络的问题。
本发明实施例提供一种网卡数据传输的方法,该方法包括:
在接收方向上,网卡中的FPGA(Field-Programmable Gate Array,可编程逻辑)模块将通过外部接口接收到的数据包经过物理层和MAC(Medium Access Control,媒体接入控制)层处理后,依据协议类型进行IP协议流分类,协议处理或组包加速,并将需要服务设备处理的数据包转发给服务设备;
在发送方向上,所述FPGA模块将接收到的服务设备发送的数据流转换成数据包,并根据数据包支持的协议进行加速分片、IP层数据流合并、MAC层和物理层处理,并通过外部接口发送。
本发明实施例提供一种网卡,该网卡包括:FPGA模块、外部接口模块和内部接口模块,其中,所述FPGA模块执行下列过程:
在接收方向上,将通过外部接口模块将接收到的数据包经过物理层和 MAC层处理后,依据协议类型进行IP协议流分类,协议处理或组包加速,并将需要服务设备处理的数据包通过内部接口模块转发给服务设备;
在发送方向上,通过内部接口模块将接收到的服务设备发送的数据流转换成数据包,并根据数据包支持的协议类型进行加速分片、IP层数据流合并、 MAC层和物理层处理,并通过外部接口模块发送。
本发明实施例还提供FPGA模块,所述FPGA模块位于网卡中,该FPGA 模块包括:
接收模块,用于通过外部接口接收到的数据包经过物理层和MAC层处理后,依据协议类型进行IP协议流分类、协议处理或组包加速,并将需要服务设备处理的数据包转发给服务设备;
发送模块,用于将接收到的服务设备发送的数据流转换成数据包,并根据数据包支持的协议类型进行加速分片、IP层数据流合并、MAC层和物理层处理,并通过外部接口发送。
本发明实施例网卡中的FPGA模块,首先根据数据包支持的协议类型进行分类,然后依据相应的协议类型对数据包进行处理、IP层数据流分类合并、 UDP层数据包分片重组。由于本发明实施例中采用了FPGA模块对网络传输中不同协议类型的数据包进行处理或加速分片重组,无需通用服务器CPU实现网络协议功能,因此可以降低对服务器CPU的处理资源需求,减少了服务器网络传输协议处理时延,大幅提升了服务器处理性能,可以满足5G无线业务的设备需求。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种网卡原理图;
图2为本发明实施例网卡中的FPGA模块进行数据传输的示意图;
图3为本发明实施例UDP/IP加速功能进行数据传输的示意图;
图4为本发明实施例在接收方向传输数据的方法的流程图;
图5为本发明实施例在发送方向传输数据的方法的流程图;
图6为本发明实施例网卡的结构示意图;
图7为本发明实施例FPGA模块结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例在接收方向上,网卡中的FPGA模块通过外部接口接收到的数据包经过物理层和MAC层处理后,依据协议类型进行IP协议流分类,协议处理或组包加速,并将需要服务设备处理的数据包转发给服务设备;
本发明实施例在发送方向上,所述FPGA模块将接收到的服务设备发送的数据流转换成数据包,并根据数据包支持的协议类型进行加速分片、IP层数据流合并、MAC层和物理层处理,并通过外部接口发送。
本发明实施例网卡中的FPGA模块,首先根据数据包支持的协议类型进行分类,然后依据相应的协议类型对数据包进行处理、IP层数据流分类合并、 UDP层数据包分片重组。由于本发明实施例中采用了FPGA模块对网络传输中不同协议类型的数据包进行处理或加速分片重组,无需通用服务器CPU实现网络协议功能,因此可以降低对服务器CPU的处理资源需求,减少了服务器网络传输协议处理时延,大幅提升了服务器处理性能,可以满足5G无线业务的设备需求。
如图1所示,本发明实施例提供一种网卡原理图,所述网卡原理图由可编程逻辑模块(FPGA)、内存模块(DDR4(Double Data Rate,双倍速率同步动态随机存储器))、时钟模块(Clock)、电源模块和外部接口模块和内部接口模块构成,其中所述外部接口模块可以为光接口模块,所述内部接口模块可以为 PCIe(peripheral component interconnectexpress,高速串行计算机扩展总线标准) 接口模块。
其中,所述FPGA模块用于对数据进行处理,在本发明实施例中可以采用硬件资源丰富、加速性能优异和开发工具友好的UltraScale+硬件平台,任何能够实现FPGA模块功能的硬件平台均使用于本发明实施例。
所述内存模块,用于为FPGA模块提供数据队列缓存和流表存储等功能,在本发明实施例中可以采用DDR4内存技术,从而确保数据包的转发时延为最优状态,其它内存技术同样适用于本发明实施例。
所述时钟模块,用于为FPGA模块对数据的处理及DDR芯片等提供工作时钟。
所述电源模块,用于为网卡提供工作电源。
所述光接口模块的光口接口为以太网接口,用于提供网卡的网络接口。其中,在本发明实施例中所述光接口模块的参数可以为25G或50G或100G等。
所述PCIe接口模块,用于提供网卡与服务设备的互联通道。其中,在本发明实施例中可以采用PCIe Gen3.0x8标准,其它能够实现本发明实施例数据传输的方法的标准同样适用于本发明实施例。
这里需要说明的是:由于所述每个厂商的实现方式不同,网卡的原理图结构方式也有所不同,因此,图1只是为了更好的说明本发明实施例中的方案,但本发明实施例并不对网卡原理图具体的结构方式进行限定。
如图2所示,基于网卡的原理图,本发明实施例提供一种网卡中的FPGA 模块进行数据传输的示意图,所述FPGA模块进行数据传输的示意图包括: MAC+PHY层、RX BUFFER(MAC层数据包接收缓冲队列)、Tx BUFFER (MAC层数据包发送缓冲队列)、Header Checker(提取头部校验和)、 Tx-cheksum(发送数据添加校验和)、UDP/IP加速功能、Rx Data FIFO(接收数据FIFO)、Tx Data FIFO(发送数据FIFO)、Tx Packet FIFO(发送数据包 FIFO)、以及PCIe连接器。
下面结合图2对本发明实施例网卡中的FPGA模块进行数据传输的方法进行详细描述。
一、在接收方向上,网卡中的FPGA模块将通过外部接口接收到的数据包经过物理层和MAC层处理后,依据协议类型进行IP协议流分类,根据不同的协议类型进行处理或组包加速,将需要服务设备处理的数据包转发给服务设备。
其中,所述依据协议类型进行IP协议流分类指的是:对经过物理层和MAC 层处理后的MAC层数据,分析帧协议类型。对于属于IP类的数据包,依据IP 头所封装的上层协议类型进行流分类。IP头中包含的上层协议类型包括下列协议中部分或全部:
ARP(Address Resolution Protocol,地址分辨协议)协议、ICMP(InternetControl Message Protocol,因特网控制报文协议)协议类型、TCP(Transmission ControlProtocol,传输控制协议)协议类型和UDP协议类型。
若所述IP数据包支持的协议类型为TCP,则所述IP层数据流分流后为TCP 数据包,所述IP数据包支持的协议类型为UDP协议类型,则所述IP层数据流分流后为UDP数据包。
在实施中,网卡中的FPGA模块通过外部接口(即图1中的光接口)接收需要处理的数据包。
相应的,所述FPGA模块中的MAC+PHY层检测接收到的MAC层消息中的数据包与本地的MAC地址是否匹配,若地址匹配,则将接收到的MAC数据包缓存至RX BUFFER中,否则舍弃所述接收到的数据包。
其中,所述MAC+PHY层,用于实现以太网接口数据的链路层和物理层功能:所述数据链路层功能,用于提供寻址、数据差错检查、传送控制、向外提供标准的数据接口等功能;所述物理层功能,定义了数据传送与接收时所需要的光信号、线路状态、时钟基准、数据编码和电路等,用于向数据链路层设备提供标准接口。
所述RX BUFFER,用于匹配数据链路层数据包的传递速率和处理速率,平滑和消除数据流处理引起的波动,减少对后续IP层数据处理的中断频率,提升网卡处理性能。
相应的,所述FPGA模块中的Header Checker提取缓存至RX BUFFER中的MAC数据包的校验和进行校验,若通过校验,则将接收到的数据包发送至 UDP/IP加速功能,否则舍弃所述接收到的数据包。
其中,所述Header Checker,用于在线路接收方向提取MAC层数据包校验和。
如图3所示,所述UDP/IP加速功能接收到数据包后,所述FPGA模块接收到数据包后分析MAC帧协议类型,判断是否是IP数据包。
若是IP数据包,则Output IP包处理及转发模块依据协议类型进行IP协议流分类,并根据不同的协议类型进行处理或组包加速,将需要服务设备处理的数据包发送给服务设备。
其中,所述Output IP包处理及转发模块接收到数据包后还可以实现MAC 帧分析、IP校验和检测、IP帧分析等功能。
1、若接收到的IP数据包支持的协议类型为ICMP协议类型,所述Output IP包处理及转发模块将IP流分类后得到的ICMP数据包转发至ICMP协议模块,结合ARP协议共同实现ping功能。
其中,所述ping功能,用于在服务器与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息,在本发明实施例中可以采用ICMP协议。
2、若接收到的IP数据包支持的协议类型为TCP协议类型,所述Output IP 包处理及转发模块将IP流分类后得到的TCP数据包缓存至Rx Data FIFO。
所述Rx Data FIFO通过内部接口(如图1所示的PCIe接口)将所述缓存的TCP数据包发送给服务设备。
其中,所述Rx Data FIFO根据TCP数据的缓存顺序,依次通过外部接口发送给服务设备。
例如,Rx Data FIFO先缓存TCP数据A,后缓存TCP数据B,则所述Rx Data FIFO先将TCP数据A发送给服务设备,后将TCP数据B发送给服务设备。
3、若接收到的IP数据包支持的协议类型为UDP协议类型,所述Output IP 包处理及转发模块通过判断UDP端口是否为DHCP解析数据包,若所述数据包为DHCP数据包,则将所述数据包转发至DHCP协议模块。
若所述数据包不是DHCP数据包,则将所述UDP数据包转发至UOE模块进行加速分片。
相应的,所述UOE(UDP offload engine UDP,加速引擎)模块将加速分片后的UDP数据包缓存至Rx Data FIFO,服务设备通过外部接口从Rx Data FIFO获取加速分片后的UDP数据包。
其中,所述加速分片后的UDP数据包的大小为64k,所述Rx Data FIFO 根据UDP数据包的缓存顺序,依次通过发送给服务设备,所述服务设备可以为CPU等处理器。
若所述FPGA模块接收到数据包不是IP数据包,则FPGA模块判断是否为ARP解析数据包,若是ARP解析数据包,则所述FPGA模块将所述数据包转发至ARP协议模块,否则所述FPGA模块将MAC数据包缓存至Rx Data FIFO据包缓存至Rx Data FIFO,并通过内部接口模块将所述缓存的MAC数据包发送给服务设备。
二、在发送方向上,所述FPGA模块将接收到的服务设备发送的数据流转换成数据包,并根据数据包支持的协议类型进行分类,根据不同类型的协议对数据包进行加速分片、IP层数据流合并、进行MAC层和物理层处理,并通过外部接口发送。
具体为:所述FPGA模块中的Tx Data FIFO缓存服务设备发送的数据流,并根据数据流的缓存顺序,依次将所述数据流发送至FPGA模块中的Tx Data FIFO。
相应的,所述FPGA模块中的Tx Packet FIFO将接收到的服务设备发送的数据流转换成数据包,并根据数据包支持的协议类型进行分类,根据分类后的结果将缓存的数据包发送至所述FPGA模块中的UDP/IP加速功能。
其中,所述Tx Packet FIFO根据收到的服务设备发送的数据流的缓存顺序,依次将数据流转换成数据包。
参见图3所示,所述UDP/IP加速功能接收到数据包后,对不同类型的协议对数据包进行加速分片和IP层数据流合并。
1、若接收到数据包支持的协议类型为UDP协议类型,则将所述UDP数据包发送至UOE模块进行加速分片。
其中,所述UOE模块进行加速分片一种可行的实施方式为:将UDP数据包按MTU(Maximum Transmission Unit,最大传输单元)分片,并在每个分片增加IP头。
相应的,所述UOE模块将加速分片后的UDP数据包发送至所述Output IP 包处理及转发模块,所述Output IP包处理及转发模块对所述加速分片后的UDP 数据包进行IP层数据流合并。
其中,所述Output IP包处理及转发模块接收到数据包后还可以实现IP校验和计算、查ARP表生成MAC帧等功能。
相应的,所述Output IP包处理及转发模块将生成后的MAC帧发送至所述 FPGA模块中的Tx-cheksum。
其中,所述Tx-cheksum用于对所述MAC帧添加校验和,并将所述MAC 层数据包缓存至Tx BUFFER模块。
MAC+PHY层处理模块对缓存至Tx BUFFER模块中的MAC层数据包进行物理层处理并通过外部接口发送至网络。
2、若接收到数据包支持的协议类型为TCP协议类型,则将所述TCP数据包转发至Output IP包处理及转发模块进行IP层数据流合并。
其中,所述Output IP包处理及转发模块接收到数据包后还可以实现IP校验和计算、查ARP表生成MAC帧等功能。
相应的,所述Output IP包处理及转发模块将生成后的MAC帧发送至所述 FPGA模块中的Tx-cheksum。
其中,所述Tx-cheksum用于对所述MAC帧添加校验和,并将所述MAC 层数据包缓存至Tx BUFFER模块。
MAC+PHY层处理模块对缓存至Tx BUFFER模块中的MAC层数据包进行物理层处理并通过外部接口发送至网络侧。
其中,所述TX BUFFER,用于匹配数据链路层数据包的传递速率和处理速率,平滑和消除数据流处理引起的波动,减少对后续IP层数据处理的中断频率,提升网卡处理性能。
所述MAC+PHY层,用于实现以太网接口数据的链路层和物理层功能:所述数据链路层功能,用于提供寻址、数据差错检查、传送控制、向外提供标准的数据接口等功能;所述物理层功能,定义了数据传送与接收时所需要的光信号、线路状态、时钟基准、数据编码和电路等,用于向数据链路层设备提供标准接口。
为了使本发明实施例在数据传输时为最优状态,所述Rx Data FIFO的容量大小可以为64K、Tx Data FIFO的容量大小可以为64K、Tx Packet FIFO的容量大小可以为2K,但是所述Rx Data FIFO、Tx Data FIFO和Tx Packet FIFO 的容量大小可以由本领域人员根据实际需要自行设定,本发明实施例对此不作限定。
这里需要说明的是:图2中还包括PCIe I/F接口和CPU I/F接口,其中,所述PCIeI/F接口用于提供服务设备获取网络数据的业务通道;所述CPU I/F 接口,用于用户通过所述CPU I/F接口根据实际工作环境配置网卡中执行各个功能需要的参数,例如本发明实施例中为了保证数据传输时为最优状态,将 Tx Data FIFO的容量大小配置为64K。
图3中还包括DHCP server(Dynamic Host Configuration Protocol server,动态主机配置协议服务),用于网卡接入网络时,获取动态分配的网络地址。
其中,图2中所示的各个模块的功能以及各个模块的数量是为了更好的说明本发明实施例的方案,由于FPGA模块具有ASIC(Application Specific Integrated Circuit,专用集成电路)芯片数据包转发的高性能和软件的可编程性,因此FPGA模块的各个模块的功能以及各个模块的数量可以由本领域人员根据实际需要自行编程实现,比如将Tx DataFIFO和Tx Data FIFO编程为同一个模块,实现缓存服务设备发送的数据流和将数据流转换为数据包的功能,本发明实施例对此并不做进行限定。
当采用上述网卡进行数据传输的时候,首先需要人为组建网卡数据传输的环境,即需要进行组建局域网和将设备初始化。基于此,本发明实施例提供一种组建网卡数据传输的环境的可实施方式。
准备两台支持PCIe Gen3.0x8全高半长插槽,已安装linux操作***(OS) 的通用服务器、1台DHCP服务器和1台交换机;将网卡安装在2台通用服务器对应插槽,并通过交换机将两台通用服务器和DHCP服务器互联,组建小型局域网;设备上电后***软件正常加载,在通用服务器启动正常后安装网卡驱动程序,OS(Operating System;操作***)发现网卡并显示网卡工作正常;通过网卡集成的DHCP客户端动态获取网络端口IP地址,配置两台服务器网络服务。
针对上述网卡在接收方向和发送传输数据的方法本发明实施例提供一种完整的流程图。
如图4所示,本发明实施例提供一种网卡在接收方向传输数据的方法的流程图:
步骤400、网卡中的FPGA模块通过外部接口(即图3中的100G光接口) 接收到发送的数据包;
步骤401、所述FPGA模块中的MAC+PHY层检测接收到的MAC层消息中的数据包与本地的MAC地址是否匹配,若地址匹配,则执行步骤403,否则步骤413;
步骤402、所述FPGA模块将MAC数据包缓存至RX BUFFER中;
步骤403、所述FPGA模块提取缓存至RX BUFFER中的MAC数据包的校验和进行校验,若通过校验,则执行步骤404,否则步骤414;
步骤404、所述FPGA模块接收到数据包后分析MAC帧协议类型,判断是否是IP数据包,若是,则执行步骤405,否则步骤409;
步骤405、所述FPGA模块接收到数据包后依据协议类型进行IP协议流分类,若接收到数据包支持的协议类型为ICMP协议类型,执行步骤406,若接收到数据包支持的协议类型为TCP协议类型,执行步骤407,若接收到数据包支持的协议类型为UDP协议类型,则执行步骤411;
步骤406、所述FPGA模块将IP协议流分类后得到的ICMP数据包转发至 ICMP协议模块,结合ARP协议共同实现ping功能;
步骤407、所述FPGA模块将IP协议流分类后得到的TCP数据包缓存至 Rx DataFIFO据包缓存至Rx Data FIFO;
步骤408、所述FPGA模块通过将所述缓存的TCP数据包发送给服务设备;
步骤409、所述FPGA模块判断是否为ARP解析数据包,若所述数据包为 ARP解析数据包,则执行步骤410,否则执行步骤415;
步骤410、所述FPGA模块将所述数据包转发至ARP协议模块;
步骤411、所述FPGA模块将所述UDP数据包转发至UOE模块进行加速重组;
步骤412、所述FPGA模块将加速重组的UDP数据包缓存至Rx Data FIFO;
步骤413、服务设备通过内部接口模块从Rx Data FIFO获取加速重组后的 UDP数据包;
步骤414、所述FPGA模块舍弃所述接收到的数据包;
步骤415、所述FPGA模块将MAC数据包缓存至Rx Data FIFO据包缓存至Rx DataFIFO;
步骤416、所述FPGA模块通过内部接口模块将所述缓存的MAC数据包发送给服务设备。
如图5所示,本发明实施例提供一种网卡在发送方向传输数据的方法的流程图:
步骤500、FPGA模块缓存服务设备发送的数据流,并根据数据流的缓存顺序,依次将所述数据流发送至FPGA模块中的Tx Data FIFO;
步骤501、所述FPGA模块将接收到的服务设备发送的数据流转换成数据包,并根据数据包支持的协议类型进行分类,根据分类后的转发将缓存的数据包;
步骤502、所述FPGA模块接收到数据包后,根据不同类型的协议对数据包进行加速分片和IP层数据流合并或对数据包进行IP层数据流合并,若接收到数据包支持的协议类型为UDP协议类型,则执行步骤503,若接收到数据包支持的协议类型为TCP协议类型,则执行步骤508;
步骤503、所述FPGA模块将所述UDP数据包发送至UOE模块进行加速分片;
步骤504、所述FPGA模块将加速分片后的UDP数据包点进行IP包重组;
步骤505、所述FPGA模块将重组后IP包进行MAC帧封装,封装后的 MAC帧发送至所述FPGA模块中的Tx-cheksum;
步骤506、所述FPGA模块对MAC数据包添加校验和,并将所述MAC 数据包缓存至TXBUFFER模块;
步骤507、所述FPGA模块对缓存的MAC数据包进行MAC物理层处理并通过外部接口发送到网络;
步骤508、所述FPGA模块将所述TCP数据包进行IP包重组;
步骤509、所述FPGA模块将重组后的IP包进行MAC层封装,封装后的 MAC数据发送至Tx-cheksum;
步骤510、所述FPGA模块对MAC数据包添加校验和,并将所述MAC 数据包缓存至TXBUFFER;
步骤511、所述FPGA模块对缓存至TX BUFFER中的MAC数据包进行物理层处理并通过外部接口发送至外部网络。
这里需要说明的是:上述中的MAC层数据或MAC层数据包属于数据链路层,该层的数据全部是以帧的形式存在,因此MAC层数据或MAC层数据包还可以称为MAC帧;
IP数据包还可以称为IP数据报文、TCP数据包还可以称为TCP数据报文、UDP数据包还可以称为UDP数据报文、ICMP数据包还可以称为ICMP数据报文、DHCP数据包还可以称为DHCP数据报文。
如图6所示,一种网卡,该网卡包括:FPGA模块600、外部接口模块601 和内部接口模块602,其中,所述FPGA模块执行下列过程:
在接收方向上,将通过外部接口模块601将接收到的数据包经过物理层和 MAC层处理后,依据协议类型进行IP协议流分类、协议处理或组包加速,并将需要服务设备处理的数据包通过内部接口模块602转发给服务设备;发送方向上,通过内部接口模块602将接收到的服务设备发送的数据流转换成数据包,并根据数据包支持的协议类型进行加速分片、IP层数据流合并、MAC层和物理层处理,并通过外部接口模块601发送。
可选的,所述协议类型包括ARP地址解析类型、ICMP协议类型、TCP 协议类型和UDP协议类型中部分或全部。
可选的,所述FPGA模块600具体用于:
若所述数据包的协议类型为UDP协议类型,则对所述数据包进行组包加速。
可选的,所述FPGA模块600具体用于:
所述若所述数据包的协议类型为UDP协议类型,对所述数据包进行加速分片。
可选的,所述FPGA模块600还用于:
在通过外部接口接收到的数据包经过物理层和MAC层处理后,依据协议类型进行层协议流分类之前,对所述数据包提取校验和进行验证。
可选的,所述FPGA模块600还用于:
在进行IP层数据流合并后,MAC层和物理层处理之前,对所述数据包添加校验和。
如图7所示,本发明实施例提供一种FPGA模块,所述FPGA模块位于网卡中,该FPGA模块包括:
接收模块700,用于通过外部接口接收到的数据包经过物理层和MAC层处理后,依据协议类型进行IP协议流分类、协议处理或组包加速,并将需要服务设备处理的数据包转发给服务设备;
发送模块701,用于将接收到的服务设备发送的数据流转换成数据包,并根据数据包支持的协议类型进行加速分片、IP层数据流合并、MAC层和物理层处理,并通过外部接口发送。
可选的,所述协议类型包括ARP地址解析类型、ICMP协议类型、TCP 协议类型和UDP协议类型中部分或全部。
可选的,所述接收模块700还用于:
若所述数据包的协议类型为UDP协议类型,则对所述数据包进行组包加速。
可选的,所述接收模块700还用于:
若所述数据包的协议类型为UDP协议类型,对数据包进行加速分片。
可选的,所述接收模块700还用于:
在将通过外部接口接收到的数据包经过物理层和MAC层处理后,依据协议类型进行IP流分类之前,所述数据包提取校验和进行验证。
可选的,所述发送模块701还用于:
在进行IP层数据流合并后,进行MAC层和物理层处理之前,对所述数据包添加校验和。
本发明实施例还提供一种计算设备可读存储介质,包括程序代码,当所述程序代码在计算设备上运行时,所述程序代码用于使所述计算设备执行网卡数据传输方法的步骤。
以上参照示出根据本申请实施例的方法、装置(***)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行***来使用或结合指令执行***而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行***、装置或设备使用,或结合指令执行***、装置或设备使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (7)
1.一种数据传输的方法,其特征在于,该方法包括:
在接收方向上,网卡中的可编程逻辑FPGA模块将通过外部接口接收到的数据包经过物理层和媒体访问控制层MAC层处理后,依据协议类型进行网际协议IP层协议流分类,协议处理或组包加速,并将需要服务设备处理的数据包转发给服务设备;
在发送方向上,所述FPGA模块将接收到的服务设备发送的数据流转换成数据包,并根据数据包支持的协议类型进行加速分片、IP层数据流合并、MAC层和物理层处理,并通过外部接口发送;
其中,所述依据协议类型进行IP层协议流分类,协议处理或组包加速,包括:
若处理后的数据包为因特网控制消息协议ICMP数据包,则将所述ICMP数据包转发至ICMP协议模块,结合地址解析协议ARP共同实现ping功能;若所述接收到的数据包为传输控制协议TCP数据包,则缓存所述TCP数据包;若所述接收到的数据包为UDP数据包,则对所述UDP数据包进行组包加速后,缓存组包加速后的数据包;
所述根据数据包支持的协议类型进行加速分片、IP层数据流合并、MAC层和物理层处理,包括:
若转换后的数据包为UDP数据包,则将所述UDP数据包进行加速分片后进行IP包重组;将重组后的IP包进行MAC层处理和物理层处理;若转换后的数据包为TCP数据包,则将所述TCP数据包进行IP包重组后,进行MAC层处理和物理层处理。
2.如权利要求1所述的方法,其特征在于,所述FPGA模块将通过外部接口接收到的数据包经过物理层和MAC层处理后,依据协议类型进行IP层协议流分类之前,还包括:
所述FPGA模块对所述数据包提取校验和进行验证。
3.如权利要求1所述的方法,其特征在于,所述FPGA模块进行IP层数据流合并后,MAC层和物理层处理之前,还包括:
所述FPGA模块对所述数据包添加校验和。
4.一种网卡,其特征在于,该网卡包括:FPGA模块、外部接口模块和内部接口模块,其中,所述FPGA模块执行下列过程:
在接收方向上,通过外部接口模块将接收到的数据包经过物理层和MAC层处理后,依据协议类型进行网际协议IP协议流分类、协议处理或组包加速,并将需要服务设备处理的数据包通过内部接口模块转发给服务设备;
在发送方向上,通过内部接口模块接收到的服务设备发送的数据流转换成数据包,并根据数据包支持的协议类型进行加速分片、IP层数据流合并、MAC层和物理层处理,并通过外部接口模块发送;
其中,所述FPGA模块具体用于:
若处理后的数据包为因特网控制消息协议ICMP数据包,则将所述ICMP数据包转发至ICMP协议模块,结合地址解析协议ARP共同实现ping功能;若所述接收到的数据包为传输控制协议TCP数据包,则缓存所述TCP数据包;若所述接收到的数据包为UDP数据包,则对所述UDP数据包进行组包加速后,缓存组包加速后的数据包;
若转换后的数据包为UDP数据包,则将所述UDP数据包进行加速分片后进行IP包重组;将重组后的IP包进行MAC层处理和物理层处理;若转换后的数据包为TCP数据包,则将所述TCP数据包进行IP包重组后,进行MAC层处理和物理层处理。
5.如权利要求4所述的网卡,其特征在于,所述FPGA模块还用于:
在通过外部接口模块将接收到的数据包经过物理层和MAC层处理后,依据协议类型进行IP流分类之前,对所述数据包提取校验和进行验证。
6.如权利要求4所述的网卡,其特征在于,所述FPGA模块还用于:
在进行IP层数据流合并后,MAC层和物理层处理之前,对所述数据包添加校验和。
7.一种FPGA模块,所述FPGA模块位于网卡中,其特征在于,该FPGA模块包括:
接收模块,用于通过外部接口接收到的数据包经过物理层和MAC层处理后,依据协议类型进行网际协议IP协议流分类、协议处理或组包加速,并将需要服务设备处理的数据包转发给服务设备;
发送模块,用于接收到的服务设备发送的数据流转换成数据包,并根据数据包支持的协议类型进行加速分片、IP层数据流合并、MAC层和物理层处理,并通过外部接口发送;
所述接收模块具体用于:
若处理后的数据包为因特网控制消息协议ICMP数据包,则将所述ICMP数据包转发至ICMP协议模块,结合地址解析协议ARP共同实现ping功能;若所述接收到的数据包为传输控制协议TCP数据包,则缓存所述TCP数据包;若所述接收到的数据包为UDP数据包,则对所述UDP数据包进行组包加速后,缓存组包加速后的数据包;
所述发送模块具体用于:
若转换后的数据包为UDP数据包,则将所述UDP数据包进行加速分片后进行IP包重组;将重组后的IP包进行MAC层处理和物理层处理;若转换后的数据包为TCP数据包,则将所述TCP数据包进行IP包重组后,进行MAC层处理和物理层处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810236085.1A CN110300081B (zh) | 2018-03-21 | 2018-03-21 | 一种数据传输的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810236085.1A CN110300081B (zh) | 2018-03-21 | 2018-03-21 | 一种数据传输的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110300081A CN110300081A (zh) | 2019-10-01 |
CN110300081B true CN110300081B (zh) | 2021-04-16 |
Family
ID=68025370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810236085.1A Active CN110300081B (zh) | 2018-03-21 | 2018-03-21 | 一种数据传输的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110300081B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110753095B (zh) * | 2019-10-09 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种网卡的数据处理方法、设备以及存储介质 |
CN111654431A (zh) * | 2020-05-20 | 2020-09-11 | 江苏思行达信息技术有限公司 | 一种物联网智能网关 |
CN112422448A (zh) * | 2020-08-21 | 2021-02-26 | 苏州浪潮智能科技有限公司 | Fpga加速卡网络数据传输方法及相关组件 |
CN112055015B (zh) * | 2020-09-02 | 2023-06-06 | 许继集团有限公司 | 一种电力保护装置站控层网络数据处理方法 |
CN112702313B (zh) * | 2020-12-01 | 2022-11-01 | 深圳市紫光同创电子有限公司 | 高速udp数据发送***及方法 |
CN113691554A (zh) * | 2021-09-01 | 2021-11-23 | 深圳市大洲智创科技有限公司 | 一种提升网络设备数据转发性能的方法 |
CN116193000B (zh) * | 2023-04-25 | 2023-06-23 | 湖北微源卓越科技有限公司 | 一种基于fpga的智能组包快速转发***及转发方法 |
CN116743883B (zh) * | 2023-08-15 | 2023-11-03 | 中移(苏州)软件技术有限公司 | 一种智能网卡、数据处理***及其工作方法 |
CN117749912B (zh) * | 2024-02-19 | 2024-05-10 | 浙江双元科技股份有限公司 | 一种基于fpga模块的数据传输控制方法及*** |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101540764B (zh) * | 2009-04-27 | 2013-02-06 | 曙光信息产业(北京)有限公司 | 一种基于fpga的面向虚拟机的数据传输和路由方法 |
CN101620551B (zh) * | 2009-05-07 | 2013-03-06 | 曙光信息产业(北京)有限公司 | 一种面向多虚拟机应用的网卡中断控制方法 |
CN101599966B (zh) * | 2009-05-11 | 2012-01-18 | 曙光信息产业(北京)有限公司 | 一种多虚拟机应用的数据过滤方法 |
CN101599294B (zh) * | 2009-05-11 | 2012-01-25 | 曙光信息产业(北京)有限公司 | 一种基于fpga的多虚拟队列数据存储的方法 |
CN101719873A (zh) * | 2009-12-11 | 2010-06-02 | 曙光信息产业(北京)有限公司 | 千兆虚拟网卡 |
CN102904729B (zh) * | 2012-10-26 | 2018-05-01 | 曙光信息产业(北京)有限公司 | 根据协议、端口分流支持多应用的智能加速网卡 |
CN103001827B (zh) * | 2012-11-30 | 2015-09-23 | 无锡众志和达数据计算股份有限公司 | 基于万兆网卡的以太网包检验和fpga硬件校验方法 |
CN103558812B (zh) * | 2013-08-29 | 2015-12-09 | 清华大学 | 基于fpga和arm的mvb网络四类设备网卡 |
CN103701776A (zh) * | 2013-12-09 | 2014-04-02 | 无锡市同威科技有限公司 | 基于fpga的网络数据卡及数据传输方法 |
CN105791252A (zh) * | 2014-12-26 | 2016-07-20 | 航天信息股份有限公司 | 基于fpga的udp协议ip核 |
CN105516191B (zh) * | 2016-01-13 | 2019-08-20 | 成都市智讯联创科技有限责任公司 | 基于fpga实现的万兆网tcp协议卸载引擎toe的*** |
-
2018
- 2018-03-21 CN CN201810236085.1A patent/CN110300081B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110300081A (zh) | 2019-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110300081B (zh) | 一种数据传输的方法和设备 | |
US20200358886A1 (en) | Data Transmission Method, Apparatus, And System | |
US9876842B2 (en) | Offload operations for overlay networks | |
US8989180B2 (en) | RoCE packet sequence acceleration | |
CN107426246B (zh) | 基于FPGA的万兆以太网和RapidIO协议间高速数据交换*** | |
US20180102978A1 (en) | Data transmission method and apparatus in optoelectronic hybrid network | |
US9154586B2 (en) | Method for parsing network packets having future defined tags | |
US8180856B2 (en) | Testing a network | |
US8848713B2 (en) | Data routing acceleration | |
WO2019204311A1 (en) | Technologies for out-of-order network packet management and selective data flow splitting | |
US10980043B2 (en) | Data transmission method and device, and base station | |
CN111404817B (zh) | 一种提升网络通信设备分片数据包转发性能的方法及*** | |
US9130957B2 (en) | Data communication apparatus and method | |
CN114489840A (zh) | 基于fpga的tcp/ip硬件卸载***及其实现方法 | |
CN116633873A (zh) | 硬件卸载虚拟交换机装置和相关设备及报文转发方法 | |
CN116303171A (zh) | 一种服务器之间的数据交互方法、装置、电子设备及介质 | |
US8583822B2 (en) | Method and system for minimum frame size support for a communication protocol encapsulated over Ethernet | |
CN109873763A (zh) | 一种通信方法及设备 | |
TWI808035B (zh) | 一種高效傳輸的乙太網設備 | |
CN105323160B (zh) | 报文收发方法及装置、通道单元及通信设备 | |
CN114008998B (zh) | 基于通信节点的解析深度的数据包处理方法和装置 | |
US20230412501A1 (en) | Data processing method and apparatus, and chip | |
Batmaz et al. | UDP/IP Protocol Stack with PCIe Interface on FPGA | |
CN117221417A (zh) | 一种tcp/ip协议卸载引擎装置 | |
CN116916382A (zh) | 一种无连接的sctp协议栈实现方法及*** |
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 |