CN105516191B - 基于fpga实现的万兆网tcp协议卸载引擎toe的系统 - Google Patents
基于fpga实现的万兆网tcp协议卸载引擎toe的系统 Download PDFInfo
- Publication number
- CN105516191B CN105516191B CN201610022115.XA CN201610022115A CN105516191B CN 105516191 B CN105516191 B CN 105516191B CN 201610022115 A CN201610022115 A CN 201610022115A CN 105516191 B CN105516191 B CN 105516191B
- Authority
- CN
- China
- Prior art keywords
- fpga
- module
- protocol
- network
- interface
- 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
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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- 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/12—Protocol engines
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于FPGA实现的万兆网TCP协议卸载引擎TOE的系统。本发明包括用于实现TCP/IP协议栈及万兆网MAC层的FPGA,与FPGA相连的万兆网PHY芯片,与FPGA相连并用于充当万兆网传输介质的10G光收发模块,以及与FPGA相连用于数据缓存的DDR外部存储器。本发明创新性地采用FPGA实现TCP/IP协议栈,通过硬件的方式来替代了传统处理器加操作系统实现的软TCP/IP协议栈。本发明既有效提高了TCP/IP协议栈的处理速度,又实现了万兆网络传输的平稳均衡性,最主要实现了计算机应用与网络协议的分离。
Description
技术领域
本发明涉及万兆网高性能TCP/IP协议栈领域,具体涉及一种基于FPGA实现的万兆网TCP协议卸载引擎TOE的系统。
背景技术
随着网络技术,尤其是光纤技术的快速发展,光纤通信网络等高速通信网络正迅速成为主要的网络传输手段,网络带宽也不断提升。网络应用的性能需求表现为高吞吐率、低延迟、高带宽、低主机开销和低存储开销等特点。根据Thumb定律,传输1bit数据大约需要1Hertz的CPU性能,因此随着千兆以太网和万兆以太网的出现,CPU资源的消耗越来越大。此外,由于大多数操作系统均为非实时操作系统,采用CPU作为协议栈的主要处理平台,其调度及缓存的时延也随着网络带宽的提升而逐渐成为低延迟要求的专用网络中越来越不可忍受的问题。为此,研究人员提出了TCP协议卸载引擎TOE技术,即将TCP协议栈的处理转移到硬件实现,从而有效加速网络协议处理速度,释放CPU资源,降低处理时延。
TOE技术的基本思想是分担CPU对网络协议的处理,将协议处理过程放到高速网卡或者专用网络处理卡等硬件上完成,其中包括TCP、IP、UDP、ARP、ICMP等子协议的处理。将原来通过CPU软件方式处理的TCP/IP协议放在硬件上处理,能够将应用和网络协议分离处理,从而使以太网环境中应用服务器的CPU资源利用率大大提高,显著地改善服务器性能。
目前国内外实现TOE技术主要还是采用嵌入式方式。嵌入式TOE采用专用电路实现,结构上接近于计算机,具备处理器、固件、存储器、数据传输总线、实时操作系统以及PHY/MAC接口。主机CPU上的TCP/IP协议栈处理改由嵌入式TOE实时操作系统的内部协议栈执行。这种方案不仅能支持TCP/IP协议栈的卸载,对实时操作系统支持的其他类型协议栈的卸载同样有效。嵌入式TOE方案具有很大灵活性,固件可以方便地运用ROM芯片进行升级,从而通过固件的简单更新就可以增加新功能来适应特殊的处理环境。但因为同样是通过处理器机制实现,CPU方案的缺陷在这种方案中仍然存在,其所带来的性能提升相对有限。当面临大规模高速数据应用的多个套接字连接要求时,突然攀升的大量数据传输要求会急剧加大对处理器资源的消耗,同时这个方式在多个应用端口并发处理时,其处理器的调度时延使得延迟的不可控性极大地加剧,并迅速降低网络性能,增加网络丢数的可能性。因此这类技术大多用于对网络性能提升有要求但要求不高的场合。
采用FPGA为主实现TOE技术在国内外也有相关报道,主要集中在两个方面:一种是百兆网或千兆网的TCP/UDP协议实现,但该实现不仅在速度上无法满足万兆传输需求,而且仅能实现1个或2个网络连接,因而在高速应用上大大受限;另一种是实现MAC层上的单万兆连接,但这种连接需要依赖接收方网卡的混杂模式支持,不仅最高速度受限,而且通用性差。
发明内容
本发明的目的是为了改善上述问题,提供一种基于FPGA实现的万兆网TCP协议卸载引擎TOE的系统。
为了实现上述目的,本发明采用的技术方案如下:
基于FPGA实现的万兆网TCP协议卸载引擎TOE的系统,包括用于实现TCP/IP协议栈及万兆网MAC层的FPGA,与FPGA相连的万兆网PHY芯片,与FPGA相连并用于充当万兆网传输介质的10G光收发模块,以及与FPGA相连用于数据缓存的DDR外部存储器。
进一步地,还包括与FPGA相连用于与计算机互联的PCIE高速总线接口,以及与FPGA相连用于与设备互联的FMC接口或/和CPCI接口。
再进一步地,所述FPGA包括TCP协议发送模块、UDP协议发送模块、IP协议发送模块、TCP协议接收模块、UDP协议接收模块、IP协议接收模块、ICMP协议模块、ARP协议模块、PCIE接口发送模块、PCIE接口接收模块、FMC接口发送模块、FMC接口接收模块、套接字数据收发应用模块。
更进一步地,所述光收发模块上还连接有用于接入万兆网的10G光收发接口。
本发明与现有技术相比,具有以下优点及有益效果:
本发明采用FPGA并行处理机制,可以最大限度的解决网络延迟的动态平衡,最高效地并行处理多个套件字业务和相应的网络数据收发服务器。
本发明用于常规计算机中,可以彻底将CPU从网络数据业务中脱离出来,极大改善了CPU在大数据量网络业务应用中的高负荷现状;同时,本发明提供没有处理器资源但却存在高速数据网络收发需求的相关产品直接接入网络应用的可能,从而节省相关产品通过其它手段中转到万兆网络的开支费用。
附图说明
图1为本发明的结构框图。
图2为本发明的逻辑组成框图。
具体实施方式
下面结合实施例对本发明作进一步说明,本发明的实施方式包括但不限于下列实施例。
实施例
如图1所示,基于FPGA实现的万兆网TCP协议卸载引擎TOE的系统,包括用于实现TCP/IP协议栈及万兆网MAC层的FPGA,与FPGA相连的万兆网PHY芯片,与FPGA相连并用于充当万兆网传输介质的10G光收发模块,以及与FPGA相连用于数据缓存的DDR外部存储器。还包括与FPGA相连并用于与计算机互联的PCIE高速总线接口,以及与FPGA相连并用于与设备互联的FMC接口、CPCI接口等等;所述光收发模块上还连接有用于接入万兆网的10G光收发接口,作为一种优选,可选用XAUI接口。
本发明的FPGA可实现传输层UDP协议、传输层TCP协议、网络层IPv4协议、网络层ARP协议、网络层ICMP协议、万兆网数据链路层功能。TCP协议实现功能主要包括连接管理功能、确认应答功能、超时重发功能、发送窗口滑动功能、流量控制功能。
如图2所示,本实施例的FPGA包括TCP协议发送模块、UDP协议发送模块、IP协议发送模块、TCP协议接收模块、UDP协议接收模块、IP协议接收模块、ICMP协议模块、ARP协议模块、PCIE接口发送模块、PCIE接口接收模块、FMC接口发送模块、FMC接口接收模块、套接字数据收发应用模块、CPCI接口发送模块、CPCI接口接收模块。具体的连接方式可见图2所示。
值得说明的是,本发明创新性地采用FPGA实现TCP/IP协议栈,通过硬件的方式来替代了传统处理器加操作系统实现的软TCP/IP协议栈。本发明既有效提高了TCP/IP协议栈的处理速度,又实现了万兆网络传输的平稳均衡性,最主要实现了计算机应用与网络协议的分离。本发明可作为计算机的协处理模块,替代传统计算机处理器需要完成的网络协议功能,极大地释放处理器在网络协议处理上的高消耗;该模块还可作为网络接入模块独立配备在相关产品上,使得没有处理器资源的硬件产品也能以标准万兆网络终端的身份进入到以太网环境中,正常的进行万兆网络业务的交互。
本发明的实现方式如下:
当网络连接建立时,上层系统通过向套接字数据收发应用模块下发建立网络连接请求,而自动激活ARP地址解析、TCP建联等一系列与远端网络设备建立连接的操作。
网络连接释放时,上层系统通过向套接字数据收发应用模块下发断开网络连接请求,而自动激活TCP断联等一系列与远端网络设备断开连接的操作。
网络数据发送时,套接字数据收发应用模块通过PCIE接口接收来自于计算机的源发送数据,或者通过FMC、CPCI接口接收来自于设备的源发送数据;经TCP协议发送模块或UDP协议发送模块进行协议封装,构建成TCP帧或UDP帧;然后经IP协议发送模块进行协议封装,构建成IP帧;再由万兆网MAC发送模块进行协议封装,构建成以太网帧;最后通过XAUI接口将以太网帧上传到外部万兆网络环境当中。
网络数据接收时,首先通过XAUI接口接收外部万兆网络环境送达到本地的以太网帧;经万兆网MAC接收模块进行协议解析和重组,还原出IP帧;然后经IP协议接收模块进行协议解析、去重和重组,还原出TCP帧或UDP帧;再由TCP协议接收模块或UDP协议接收模块进行协议解析,还原出原始数据;最后将接收的原始数据通过PCIE接口传递给计算机,或者通过FMC、CPCI接口传递给设备。
按照上述实施例,便可很好地实现本发明。值得说明的是,基于上述结构设计的前提下,为解决同样的技术问题,即使在本发明上做出的一些无实质性的改动或润色,所采用的技术方案的实质仍然与本发明一样,故其也应当在本发明的保护范围内。
Claims (4)
1.一种基于FPGA实现的万兆网TCP协议卸载引擎TOE的系统,其特征在于,包括用于实现TCP/IP协议栈及万兆网MAC层的FPGA,与FPGA相连的万兆网PHY芯片,与FPGA相连并用于充当万兆网传输介质的10G光收发模块,以及与FPGA相连用于数据缓存的DDR外部存储器;
当网络连接建立时,上层系统通过向套接字数据收发应用模块下发建立网络连接请求,而自动激活ARP地址解析、TCP建联等一系列与远端网络设备建立连接的操作;
网络连接释放时,上层系统通过向套接字数据收发应用模块下发断开网络连接请求,而自动激活TCP断联等一系列与远端网络设备断开连接的操作;
网络数据发送时,套接字数据收发应用模块通过PCIE接口接收来自于计算机的源发送数据,或者通过FMC、CPCI接口接收来自于设备的源发送数据;经TCP协议发送模块或UDP协议发送模块进行协议封装,构建成TCP帧或UDP帧;然后经IP协议发送模块进行协议封装,构建成IP帧;再由万兆网MAC发送模块进行协议封装,构建成以太网帧;最后通过XAUI接口将以太网帧上传到外部万兆网络环境当中,使得没有处理器资源的硬件产品也能以标准万兆网络终端的身份进入到以太网环境中,正常的进行万兆网络业务的交互;
网络数据接收时,首先通过XAUI接口接收外部万兆网络环境送达到本地的以太网帧;经万兆网MAC接收模块进行协议解析和重组,还原出IP帧;然后经IP协议接收模块进行协议解析、去重和重组,还原出TCP帧或UDP帧;再由TCP协议接收模块或UDP协议接收模块进行协议解析,还原出原始数据;最后将接收的原始数据通过PCIE接口传递给计算机,或者通过FMC、CPCI接口传递给设备。
2.根据权利要求1所述的基于FPGA实现的万兆网TCP协议卸载引擎TOE的系统,其特征在于,还包括与FPGA相连用于与计算机互联的PCIE高速总线接口,以及与FPGA相连用于与设备互联的FMC接口或/和CPCI接口。
3.根据权利要求1或2所述的基于FPGA实现的万兆网TCP协议卸载引擎TOE的系统,其特征在于,所述FPGA包括TCP协议发送模块、UDP协议发送模块、IP协议发送模块、TCP协议接收模块、UDP协议接收模块、IP协议接收模块、ICMP协议模块、ARP协议模块、PCIE接口发送模块、PCIE接口接收模块、FMC接口发送模块、FMC接口接收模块、套接字数据收发应用模块。
4.根据权利要求1或2所述的基于FPGA实现的万兆网TCP协议卸载引擎TOE的系统,其特征在于,所述光收发模块上还连接有用于接入万兆网的10G光收发接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610022115.XA CN105516191B (zh) | 2016-01-13 | 2016-01-13 | 基于fpga实现的万兆网tcp协议卸载引擎toe的系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610022115.XA CN105516191B (zh) | 2016-01-13 | 2016-01-13 | 基于fpga实现的万兆网tcp协议卸载引擎toe的系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105516191A CN105516191A (zh) | 2016-04-20 |
CN105516191B true CN105516191B (zh) | 2019-08-20 |
Family
ID=55723827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610022115.XA Active CN105516191B (zh) | 2016-01-13 | 2016-01-13 | 基于fpga实现的万兆网tcp协议卸载引擎toe的系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105516191B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106941488B (zh) * | 2017-03-09 | 2019-11-29 | 西安电子科技大学 | 基于fpga的多层协议数据包封装装置及方法 |
CN107566300A (zh) * | 2017-07-25 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种基于Multi‑Host架构的网络交换设备 |
US10686731B2 (en) | 2017-12-19 | 2020-06-16 | Xilinx, Inc. | Network interface device |
US10686872B2 (en) | 2017-12-19 | 2020-06-16 | Xilinx, Inc. | Network interface device |
CN110300081B (zh) * | 2018-03-21 | 2021-04-16 | 大唐移动通信设备有限公司 | 一种数据传输的方法和设备 |
CN109347818A (zh) * | 2018-10-12 | 2019-02-15 | 华东师范大学 | 一种协议可重构万兆通信的文件传输系统 |
CN110061999A (zh) * | 2019-04-28 | 2019-07-26 | 华东师范大学 | 一种基于zynq的网络数据安全分析辅助设备 |
CN110177087B (zh) * | 2019-05-05 | 2021-06-01 | 方一信息科技(上海)有限公司 | 一种基于TOE网卡的Target端协议硬件解析方法 |
CN110460912A (zh) * | 2019-07-23 | 2019-11-15 | 天津市英贝特航天科技有限公司 | 基于fmc标准接口的万兆以太网模块 |
CN110417780B (zh) * | 2019-07-30 | 2021-09-07 | 哈尔滨工业大学 | 定制化数据传输协议的多通道高速数据接口转化模块 |
CN111163121A (zh) * | 2019-11-19 | 2020-05-15 | 核芯互联科技(青岛)有限公司 | 一种超低延时高性能的网络协议栈处理方法及系统 |
CN111327603B (zh) * | 2020-01-21 | 2021-04-20 | 中科驭数(北京)科技有限公司 | 数据传输方法、装置和系统 |
CN112073436B (zh) * | 2020-09-28 | 2022-04-22 | 山东产研集成电路产业研究院有限公司 | 一种降低toe中接收通道传输延迟量的方法 |
CN113141281B (zh) * | 2021-04-23 | 2022-07-08 | 山东英信计算机技术有限公司 | 一种fpga加速器、网络参数测量系统、方法及介质 |
CN113179327B (zh) * | 2021-05-14 | 2023-06-02 | 中兴通讯股份有限公司 | 基于大容量内存的高并发协议栈卸载方法、设备、介质 |
CN114489840A (zh) * | 2022-01-14 | 2022-05-13 | 南京邮电大学 | 基于fpga的tcp/ip硬件卸载系统及其实现方法 |
CN114238187B (zh) * | 2022-02-24 | 2022-04-29 | 苏州浪潮智能科技有限公司 | 一种基于fpga的全栈网卡任务处理系统 |
CN114827300B (zh) * | 2022-03-20 | 2023-09-01 | 西安电子科技大学 | 硬件保障的数据可靠传输系统、控制方法、设备及终端 |
CN115460085A (zh) * | 2022-08-20 | 2022-12-09 | 西安翔腾微电子科技有限公司 | 一种以太网协议加速电路及方法 |
CN116996592B (zh) * | 2023-09-27 | 2023-12-22 | 网络通信与安全紫金山实验室 | 网卡、数据发送处理方法和数据接收处理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1520112A (zh) * | 2002-12-31 | 2004-08-11 | ض� | 网络协议卸载引擎 |
CN101841545A (zh) * | 2010-05-14 | 2010-09-22 | 中国科学院计算技术研究所 | 一种tcp流重组拼包方法和装置 |
US8549345B1 (en) * | 2003-10-31 | 2013-10-01 | Oracle America, Inc. | Methods and apparatus for recovering from a failed network interface card |
CN104601484A (zh) * | 2015-01-20 | 2015-05-06 | 电子科技大学 | 一种tcp卸载引擎的发送单元 |
CN205283599U (zh) * | 2016-01-13 | 2016-06-01 | 成都市智讯联创科技有限责任公司 | 基于fpga实现的万兆网tcp协议卸载引擎toe的系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100161838A1 (en) * | 2008-12-24 | 2010-06-24 | Daniel David A | Host bus adapter with network protocol auto-detection and selection capability |
-
2016
- 2016-01-13 CN CN201610022115.XA patent/CN105516191B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1520112A (zh) * | 2002-12-31 | 2004-08-11 | ض� | 网络协议卸载引擎 |
US8549345B1 (en) * | 2003-10-31 | 2013-10-01 | Oracle America, Inc. | Methods and apparatus for recovering from a failed network interface card |
CN101841545A (zh) * | 2010-05-14 | 2010-09-22 | 中国科学院计算技术研究所 | 一种tcp流重组拼包方法和装置 |
CN104601484A (zh) * | 2015-01-20 | 2015-05-06 | 电子科技大学 | 一种tcp卸载引擎的发送单元 |
CN205283599U (zh) * | 2016-01-13 | 2016-06-01 | 成都市智讯联创科技有限责任公司 | 基于fpga实现的万兆网tcp协议卸载引擎toe的系统 |
Non-Patent Citations (1)
Title |
---|
A 10 GbE TCP/IP Hardware Stack as part of a Protocol Acceleration Platform;U Langenbach等;《2013 IEEE Third International Conference on Consumer Electronics》;20130911;P378第二栏第一段-P379第一栏第二-四段,图2 |
Also Published As
Publication number | Publication date |
---|---|
CN105516191A (zh) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105516191B (zh) | 基于fpga实现的万兆网tcp协议卸载引擎toe的系统 | |
US20220066976A1 (en) | PCI Express to PCI Express based low latency interconnect scheme for clustering systems | |
US8949472B2 (en) | Data affinity based scheme for mapping connections to CPUs in I/O adapter | |
CN101902504A (zh) | 航空电子全双工交换式以太网网卡及其集成化方法 | |
US20140129741A1 (en) | Pci-express device serving multiple hosts | |
US20240283756A1 (en) | Reliable transport offloaded to network devices | |
RU2011140978A (ru) | Способ и устройство маршрутизации ввода-вывода и карта | |
US10609125B2 (en) | Method and system for transmitting communication data | |
CN102185833B (zh) | 一种基于fpga的fc i/o并行处理方法 | |
CN103441937A (zh) | 组播数据的发送方法和接收方法 | |
CN104572574A (zh) | 基于千兆以太网视觉协议的以太网控制器ip核及方法 | |
CN103618667A (zh) | 信息传送方法、接入网关和系统 | |
CN201639589U (zh) | 基于arm的嵌入式双冗余网卡 | |
CN106844263B (zh) | 一种基于可配置的多处理器计算机系统及实现方法 | |
CN105099776A (zh) | 云服务器的管理系统 | |
CN114050998A (zh) | 实现远程直接内存访问的方法、装置、电子设备及介质 | |
CN114445260A (zh) | 基于fpga的分布式gpu通信的方法及装置 | |
Wu et al. | Design and implementation of tcp/ip offload engine system over gigabit ethernet | |
CN117041147B (zh) | 智能网卡设备、主机设备和方法及系统 | |
CN117914808A (zh) | 一种数据传输系统、方法及交换机 | |
CN110098989A (zh) | 一种基于canfd总线的多路can仿真系统及测试方法 | |
CN205283599U (zh) | 基于fpga实现的万兆网tcp协议卸载引擎toe的系统 | |
CN101312412B (zh) | 一种基于嵌入式的以太网传输系统 | |
Su et al. | Technology trends in large-scale high-efficiency network computing | |
Zang et al. | PROP: Using PCIe-based RDMA to accelerate rack-scale communications in data centers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |