CN110109852B - 硬件实现tcp_ip协议的方法 - Google Patents

硬件实现tcp_ip协议的方法 Download PDF

Info

Publication number
CN110109852B
CN110109852B CN201910268141.4A CN201910268141A CN110109852B CN 110109852 B CN110109852 B CN 110109852B CN 201910268141 A CN201910268141 A CN 201910268141A CN 110109852 B CN110109852 B CN 110109852B
Authority
CN
China
Prior art keywords
engine
tcp
data
address
protocol
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
CN201910268141.4A
Other languages
English (en)
Other versions
CN110109852A (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.)
CETC 32 Research Institute
Original Assignee
CETC 32 Research Institute
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 CETC 32 Research Institute filed Critical CETC 32 Research Institute
Priority to CN201910268141.4A priority Critical patent/CN110109852B/zh
Publication of CN110109852A publication Critical patent/CN110109852A/zh
Application granted granted Critical
Publication of CN110109852B publication Critical patent/CN110109852B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/255Maintenance or indexing of mapping tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种硬件实现TCP_IP协议的***及方法,包括嵌入式CPU核、配置寄存器、引擎模块、DDR3接口控制器以及MAC控制器,嵌入式CPU核用于建立与维护TCP/UDP连接及控制引擎模块;配置寄存器用于提供ToE网卡信息;TCP_UDP引擎用于将数据搬移到网卡的DDR存储器空间;IP引擎用于处理IP层事务;ICMP引擎用于生成、解析接收到的控制消息包;ARP引擎用于将IP地址转换成MAC地址;RARP引擎用于MAC地址到IP地址的映射;DDR3接口控制器外接DDR存储器;MAC控制器用于发送和接收以太网帧。本发明通过嵌入式CPU核执行软件的方式来创建连接,能够实现创建任意数量的连接。

Description

硬件实现TCP_IP协议的方法
技术领域
本发明涉及计算机总线接口领域,具体地,涉及一种硬件实现TCP_IP协议的系方法。
背景技术
以太网接口是计算机的主要接口之一,用于计算机连接局域网或互联网。计算机通过以太网传输数据时,使用的传输协议是TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议)协议。TCP/IP协议一般通过软件方式实现,执行TCP/IP协议软件需占用主机CPU(Central Processing Unit,中央处理器)的大量计算资源。有一种说法,1位网络数据传输需消耗CPU 1Hz的处理能力。当计算机的网络传输速率从100Mbps提高到1Gbps,甚至10Gbps时,CPU的大量计算能力将耗费在网络数据的传输处理上。为了减轻主机CPU的负载,业界提出了ToE(TCP offload Engine,TCP协议卸载引擎)技术,即用硬件来全部或部分实现TCP/IP协议功能。
传统的网卡实现TCP/IP网络层次结构中的数据链路层功能,新型的ToE网卡实现TCP/IP网络层级结构中传输层、网络层和数据链路等的全部功能。关于ToE网卡的实现,已经有一些技术方案,例如“基于FPGA实现的万兆网TCP协议卸载引擎TOE的***(专利申请号:201620032397.7)”,“TCP/IP卸载引擎中的多通道处理方法(专利申请号:201611110885.6)”,“半卸载方法、设计及***(专利申请号:201310260360.0)”等。从这些专利申请书的公开资料分析,这些ToE实现方案都存在一些不足,例如支持的连接数有限,或部分实现ToE功能,导致主机操作***的TCP/IP协议栈并未完全卸载。
具体的,对于对比文件1:基于FPGA实现的万兆网TCP协议栈卸载引擎TOE的***,该方案按照TCP/IP协议栈建立连接和传输数据的过程,将整个过程的处理都用硬件逻辑的方式实现。该方案的缺点是每个时刻只能建立一个连接,不支持多个连接的并行处理。在不需要多个连接的应用场合,这种方案是有效的。
对于对比文件2:TCP/IP卸载引擎中的多通道处理方法,该方案在一个连接的基础上,通过在TCP包的首部增加通道号的方式,来支持多个通道。每个通道是一个虚拟连接,其目的是为了增加连接的数量。但该方案会修改TCP包的标准格式,仅在特定的场合有效。
本地计算机与远程服务器通过网络通信时,本地计算机每启动一个网络通信进程,就需要创建一个连接,例如在本地计算机上打开5个网站的网页,就会启动5个iexplore进程,每个进程都需要创建TCP连接。直到本地计算机关闭一个网站的ie浏览器程序,则相应的TCP连接断开。因此支持多个并行的连接,在实际应用中,还是非常需要。
本发明将提出一种ToE网卡的实现方案,可以完全卸载主机操作***的TCP/IP协议栈,同时可以支持任意数量的连接,适用于开发千兆或万兆的网卡设备。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种硬件实现TCP_IP协议的***及方法。
根据本发明提供的一种硬件实现TCP_IP协议的***,包括嵌入式CPU核、配置寄存器、TCP_UDP引擎、IP引擎、ICMP引擎、ARP引擎、RARP引擎、DDR3接口控制器以及MAC控制器,其中:
嵌入式CPU核用于建立与维护TCP/UDP连接,以及控制TCP_UDP引擎、IP引擎、ICMP引擎、ARP引擎、RARP引擎;
配置寄存器用于提供ToE网卡的基本配置/控制/状态信息;
TCP_UDP引擎用于将主机CPU准备发送的数据搬移到ToE网卡的DDR存储器空间;
IP引擎用于处理IP层事务;
ICMP引擎用于生成控制消息包,以节解析接收到的控制消息包;
ARP引擎用于将IP地址转换成MAC地址;
RARP引擎用于MAC地址到IP地址的映射;
DDR3接口控制器外接DDR存储器;
MAC控制器用于发送和接收以太网帧。
优选地,所述以太网帧包括1518字节,其中:
以太网首部设有14字节;
IP首部设有20字节;
TCP首部设有20字节;
应用数据设有1460字节;
以太网尾部设有4字节。
优选地,所述外接DDR存储器为容量512MB或以上的DDR存储器。
优选地,所述MAC控制器为千兆/万兆MAC控制器。
本发明还提供一种硬件实现TCP_IP协议的方法,包括如下步骤:
数据搬移步骤:主机应用层程序发送数据时,嵌入式CPU核根据ToE网卡命令初始化TCP_UDP引擎内部的DMA,DMA将发送数据从主机内存搬移到ToE网卡的DDR内存,并按以太网帧的数据结构完成将发送数据填充到以太网帧中;
分类步骤:在接收到以太网帧数据时,MAC控制器对以太网帧分类,根据分类结果分别发送给ARP引擎、ICMP引擎、IP引擎或TCP_UDP引擎,各引擎分别解析以太网帧数据;
存储分配步骤:网卡初始化时,嵌入式CPU核在DDR存储器中划分一块存储区域,存储描述符信息;
描述附表寻址步骤:基于Hash函数寻址描述符;
连接建立步骤:嵌入式CPU内核建立TCP或UDP连接,每建立一个连接,在连接描述符表中分配一个表项;
以太帧发送步骤:填充完以太网帧数据结构后,以太网帧结构的状态变成Ready,MAC控制器自动将状态为Ready的以太网帧发送出去。
优选地,存储分配步骤包括:在DDR存储器中分配8 x 2K个描述符的空间,描述符按2048个Set,每个Set内8个描述符的方式组织。
优选地,描述附表寻址步骤包括:根据<源端口号、源IP地址、目的端口号、目的IP地址>进行Hash计算,生成11位的访问描述符的Set号,根据<源端口号、源IP地址、目的端口号、目的IP地址>与Set内的8个描述符比较,寻址描述符;若8个描述符都不命中,则查询二级描述符表。
与现有技术相比,本发明具有如下的有益效果:
1、本发明通过嵌入式CPU核执行软件的方式来创建连接,每个连接用一个连接描述符来描述这个连接的状态信息和属性信息,连接描述符暂存在ToE网卡的DDR存储器中,只要ToE网卡的DDR存储器容量足够大,就可以创建任意数量的连接。
2、本发明的连接描述符按Hash索引的方式寻址,方便对连接描述符的访问。
3、本发明采用固定的数据结构体存储在DDR存储器中,减少数据在不同协议层处理时的数据搬移开销,便利了硬件管理数据。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的ToE网卡控制器组成结构框图;
图2为本发明的以太网帧数据结构图;
图3为本发明的连接描述符的示意图;
图4为本发明的连接描述符表的组织结构图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
图1展示了本发明的ToE网卡的组成结构框图。实现ToE功能的主要工作方法具体如下:
实现TCP卸载引擎的方法包括两部分:ToE网卡硬件部分和ToE网卡驱动软件部分。其中ToE网卡的驱动程序提供传统TCP/IP协议的API(Application ProgrammingInterface)接口,操作***或应用程序对TCP/IP协议的访问将由ToE网卡的驱动程序转换后,访问ToE网卡硬件部分;ToE网卡的硬件部分包括:嵌入式CPU核、配置寄存器、TCP_UDP引擎、IP引擎、ICMP(Internet Control Message Protocol,网际控制报文协议)引擎、ARP(Address Resolution Protocol,地址解析协议)引擎、RARP(Reverse AddressResolution Protocol,反向地址解析协议)引擎、DDR3接口控制器以及千兆/万兆MAC控制器,其中:嵌入式CPU核负责TCP/UDP连接的建立与维护,以及对TCP_UDP引擎等模块的控制;配置寄存器作为网卡设备的PCI配置空间寄存器,提供网卡的基本配置/控制/状态信息;TCP_UDP引擎负责将主机CPU准备发送的数据搬移到ToE网卡的DDR存储器空间,并按以太网帧格式将数据分成以太网帧;已经从接收到的以太网帧提取数据,传输到主机CPU的DDR存储器空间;此外,TCP_UDP引擎还负责填充以太网帧中与TCP/UDP相关的信息,例如源端口号、目的端口号、序列号等;IP引擎负责处理与IP层相关的事务,例如填充发送以太网帧中IP层相关的IP头信息,计算校验和,从接收的以太网帧提取IP头信息,执行校验计算等;ICMP引擎负责生成控制消息包,以节解析接收到的控制消息包;ARP引擎负责将IP地址转换成MAC地址。在ARP引擎内部有一个地址转换表,缓存最近的IP地址和MAC地址映射表项,如果查询地址转换表未命中,则自动生成ARP以太网帧,广播到局域网,并解析接收到的ARP帧;RARP引擎负责MAC地址到IP地址的映射;DDR3接口控制器负责外接大容量(512MB或以上)的DDR存储器,DDR存储器缓存发送和接收到的以太网帧,以及缓存CPU内核程序和各种描述符表;千兆/万兆MAC控制器负责发送和接收以太网帧。
本发明的关键点是TCP/UDP数据包、IP包、以太网帧的组织。ToE网卡以以太网帧作为数据收发管理的基本单位,图2展示了一个以太网帧的数据结构。以太网帧的数据结构是固定大小的,TCP_UDP引擎根据、IP引擎、MAC控制器、嵌入式CPU核等分别填写以太网帧中相应部分的内容,或者对接收的以太网帧解析相应部分的内容;以固定的以太网帧数据结构作为收发数据的管理单位是为了减少数据在不同协议层处理时的数据搬移开销,以及硬件管理数据的便利;
主机应用层程序发送数据时,嵌入式CPU核根据ToE网卡命令初始化TCP_UDP引擎内部的DMA,DMA负责将发送数据从主机内存搬移到ToE网卡的DDR内存,并按以太网帧的数据结构完成将发送数据填充到以太网帧中;
在接收到以太网帧数据时,MAC控制器首先对以太网帧分类,根据分类结果分别发送给ARP引擎、ICMP引擎、IP引擎或TCP_UDP引擎,各引擎分别解析以太网帧数据。如果是TCP_UDP数据包,则以中断方式报告主CPU,由主CPU调用ToE网卡的驱动程序函数,然后由驱动程序函数控制嵌入式CPU核,再由嵌入式CPU核配置TCP_UDP中的DMA,将以太网帧中的数据提取出来,传输到主机的***内存中;
嵌入式CPU内核负责建立TCP或UDP连接。每个连接用一个连接描述符表示,连接描述符的格式见图3所示。在网卡初始化时,嵌入式CPU核在DDR存储器中划分一块存储区域,存储描述符信息。DDR存储器中的描述符按8 x 2K数组的方式组织,见图4所示。
嵌入式CPU内核在初始化时,在DDR存储器中分配8 x 2K个描述符的空间,描述符按2048个Set,每个Set内8个描述符的方式组织。寻址描述符时,根据<源端口号、源IP地址、目的端口号、目的IP地址>进行Hash计算,生成11位的访问描述符的Set号,然后根据<源端口号、源IP地址、目的端口号、目的IP地址>与Set内的8个描述符比较,从而寻址描述符;若8个描述符都不命中,则查询二级描述符表。
第一级连接描述符表有8 x 2K个项,且可以有第二级、第三级连接描述符表,因此可以支持任意数量的连接数;
TCP/UDP连接由嵌入式CPU核负责建立,每建立一个连接,在连接描述符表中分配一个表项。连接建立好之后,TCP_UDP引擎将根据描述符表的内容申请分配以太网帧数据结构存储器空间,并在主机***内存和网卡DDR存储器之间搬移数据;
以太网帧数据结构的内容填充好之后,帧数据结构的状态变成Ready。只要有状态为Ready的以太网帧,MAC控制器将自动将该以太网帧发送出去。
以上发明内容,可采用现场可编程门阵列FPGA来实现,也可以开发专用的ToE网卡控制器芯片来实现。同时根据需要,可基于FPGA或ToE网卡控制器芯片开发PCIe网卡板,也可以将FPGA或ToE网卡控制器芯片放置在目标***应用板上(如***主板)。
根据本发明的技术方案,可以设计通用的ToE网卡。在FPGA或专用芯片实现ToE网卡功能时,需要提供配套的ToE网卡驱动程序。
申请人已经成功开发了基于FPGA的PCIe 4x接口ToE网卡,可以支持16K个TCP/UDP连接。经过测试,在千兆局域网环境中,针对大文件(4GB)的传输,传输速率可达100MB/s。
本发明中,由于嵌入式CPU核的计算性能有限,因此TCP/IP数据包发送和接收过程中的一些处理,例如TCP/UDP数据包分成帧、IP头的CRC校验、ARP协议、ICMP协议等,采用定制逻辑实现,作为硬件加速处理模块。为了方便这些加速处理模块识别和处理发送或接收的数据,本方案要求数据按TCP/IP协议定义的标准格式组织,以固定的数据结构体存储在DDR存储器中。由于网络传输以太网帧的最大长度为1518字节,因此本方案是以最大帧长度1518字节为结构体,作为发送和接收数据的缓存载体。也就是说,发送和接收数据的数据结构(数据缓存体,或数据Buf)固定为1518字节,其中的有效字节数量通过头部的长度字段决定。应用程序发送和接收数据时,在***内存中分配一块空间缓存发送或接收的数据。***内存与ToE网卡的DDR内存之间的数据搬移通过ToE网卡内嵌的DMA完成。DMA除了负责数据搬移之外,还负责将数据分成数据Buf结构体。这是本发明的特点。
本发明通过定制硬件加速模块和优化收发数据的组织结构,提升ToE网卡收发数据的性能。
本发明的重点关注在于数据结构体的定义和组织,通过优化数据结构体的组织,从而提升ToE网卡发送数据的性能。目前未看到现有技术公开这一方面。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (6)

1.一种硬件实现TCP_IP协议的方法,其特征在于,所述硬件实现TCP_IP协议的方法是基于硬件实现TCP_IP协议的***实现的,所述硬件实现TCP_IP协议的方法包括如下步骤:
数据搬移步骤:主机应用层程序发送数据时,嵌入式CPU核根据ToE网卡命令初始化TCP_UDP引擎内部的DMA,DMA将发送数据从主机内存搬移到ToE网卡的DDR内存,并按以太网帧的数据结构完成将发送数据填充到以太网帧中;
分类步骤:在接收到以太网帧数据时,MAC控制器对以太网帧分类,根据分类结果分别发送给ARP引擎、ICMP引擎、IP引擎或TCP_UDP引擎,各引擎分别解析以太网帧数据;
存储分配步骤:网卡初始化时,嵌入式CPU核在DDR存储器中划分一块存储区域,存储描述符信息;
描述附表寻址步骤:基于Hash函数寻址描述符;
连接建立步骤:嵌入式CPU内核建立TCP或UDP连接,每建立一个连接,在连接描述符表中分配一个表项;
以太帧发送步骤:填充完以太网帧数据结构后,以太网帧结构的状态变成Ready,MAC控制器自动将状态为Ready的以太网帧发送出去;
硬件实现TCP_IP协议的***,包括嵌入式CPU核、配置寄存器、TCP_UDP引擎、IP引擎、ICMP引擎、ARP引擎、RARP引擎、DDR3接口控制器以及MAC控制器,其中:
嵌入式CPU核用于建立与维护TCP/UDP连接,以及控制TCP_UDP引擎、IP引擎、ICMP引擎、ARP引擎、RARP引擎;
配置寄存器用于提供ToE网卡的基本配置/控制/状态信息;
TCP_UDP引擎用于将主机CPU准备发送的数据搬移到ToE网卡的DDR存储器空间;
IP引擎用于处理IP层事务;
ICMP引擎用于生成控制消息包,以及解析接收到的控制消息包;
ARP引擎用于将IP地址转换成MAC地址;
RARP引擎用于MAC地址到IP地址的映射;
DDR3接口控制器外接DDR存储器;
MAC控制器用于发送和接收以太网帧。
2.根据权利要求1所述的一种硬件实现TCP_IP协议的方法,其特征在于,存储分配步骤包括:在DDR存储器中分配8 x 2K个描述符的空间,描述符按2048个Set,每个Set内8个描述符的方式组织。
3.根据权利要求1所述的一种硬件实现TCP_IP协议的方法,其特征在于,描述附表寻址步骤包括:根据<源端口号、源IP地址、目的端口号、目的IP地址>进行Hash计算,生成11位的访问描述符的Set号,根据<源端口号、源IP地址、目的端口号、目的IP地址>与Set内的8个描述符比较,寻址描述符;若8个描述符都不命中,则查询二级描述符表。
4.根据权利要求1所述的硬件实现TCP_IP协议的方法,其特征在于,所述以太网帧包括1518字节,其中:
以太网首部设有14字节;
IP首部设有20字节;
TCP首部设有20字节;
应用数据设有1460字节;
以太网尾部设有4字节。
5.根据权利要求1所述的硬件实现TCP_IP协议的方法,其特征在于,所述外接DDR存储器为容量512MB或以上的DDR存储器。
6.根据权利要求1所述的硬件实现TCP_IP协议的方法,其特征在于,所述MAC控制器为千兆/万兆MAC控制器。
CN201910268141.4A 2019-04-03 2019-04-03 硬件实现tcp_ip协议的方法 Active CN110109852B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910268141.4A CN110109852B (zh) 2019-04-03 2019-04-03 硬件实现tcp_ip协议的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910268141.4A CN110109852B (zh) 2019-04-03 2019-04-03 硬件实现tcp_ip协议的方法

Publications (2)

Publication Number Publication Date
CN110109852A CN110109852A (zh) 2019-08-09
CN110109852B true CN110109852B (zh) 2020-11-24

Family

ID=67485073

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910268141.4A Active CN110109852B (zh) 2019-04-03 2019-04-03 硬件实现tcp_ip协议的方法

Country Status (1)

Country Link
CN (1) CN110109852B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111831306B (zh) * 2020-03-26 2021-07-20 成都万创科技股份有限公司 一种基于网卡NVM的串号和ProjectName读写方法
CN112073435B (zh) * 2020-09-28 2022-11-04 山东产研集成电路产业研究院有限公司 一种降低toe中发送通道传输延迟量的方法
CN112073436B (zh) * 2020-09-28 2022-04-22 山东产研集成电路产业研究院有限公司 一种降低toe中接收通道传输延迟量的方法
CN112348522A (zh) * 2020-10-26 2021-02-09 东方证券股份有限公司 一种基于fpga规则表达式的风控检测***
CN113904882B (zh) * 2021-09-24 2023-08-18 广东汇天航空航天科技有限公司 一种多mcu单元的通信控制***及通信控制方法
CN114048164B (zh) * 2022-01-14 2022-04-12 湖北芯擎科技有限公司 芯片互联方法、***、设备及可读存储介质
CN114415985A (zh) * 2022-03-31 2022-04-29 苏州浪潮智能科技有限公司 一种基于数控分离架构的存储数据处理单元
CN115473861B (zh) * 2022-08-18 2023-11-03 珠海高凌信息科技股份有限公司 基于通信与计算分离的高性能处理***和方法、存储介质
CN115442267B (zh) * 2022-08-20 2023-11-10 西安翔腾微电子科技有限公司 一种基于arinc664协议的icmp方法
CN116996592B (zh) * 2023-09-27 2023-12-22 网络通信与安全紫金山实验室 网卡、数据发送处理方法和数据接收处理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1520112A (zh) * 2002-12-31 2004-08-11 ض� 网络协议卸载引擎
CN100363922C (zh) * 2002-08-30 2008-01-23 美国博通公司 用于独立于带宽延迟产品的tcp/ip卸载的***和方法
CN101119238A (zh) * 2006-07-31 2008-02-06 深圳达实智能股份有限公司 基于以太网的楼宇控制器
CN103916336A (zh) * 2012-12-28 2014-07-09 北京中电华大电子设计有限责任公司 一种用fpga实现的以太网驱动器
CN106789708A (zh) * 2016-12-06 2017-05-31 中国电子科技集团公司第三十二研究所 Tcp/ip卸载引擎中的多通道处理方法
CN107547417A (zh) * 2016-06-29 2018-01-05 中兴通讯股份有限公司 一种报文处理方法、装置及基站

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719873A (zh) * 2009-12-11 2010-06-02 曙光信息产业(北京)有限公司 千兆虚拟网卡

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100363922C (zh) * 2002-08-30 2008-01-23 美国博通公司 用于独立于带宽延迟产品的tcp/ip卸载的***和方法
CN1520112A (zh) * 2002-12-31 2004-08-11 ض� 网络协议卸载引擎
CN101119238A (zh) * 2006-07-31 2008-02-06 深圳达实智能股份有限公司 基于以太网的楼宇控制器
CN103916336A (zh) * 2012-12-28 2014-07-09 北京中电华大电子设计有限责任公司 一种用fpga实现的以太网驱动器
CN107547417A (zh) * 2016-06-29 2018-01-05 中兴通讯股份有限公司 一种报文处理方法、装置及基站
CN106789708A (zh) * 2016-12-06 2017-05-31 中国电子科技集团公司第三十二研究所 Tcp/ip卸载引擎中的多通道处理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
32位嵌入式的CPU微体系结构设计;马鹏;《计算机工程》;20081210;全文 *
一种TCP/IP卸载结构的设计与实现;陈续喜;《中国优秀硕士论文全文数据库信息科技辑》;20100115;说明书第1页至第17页,第49页倒数第2段 *

Also Published As

Publication number Publication date
CN110109852A (zh) 2019-08-09

Similar Documents

Publication Publication Date Title
CN110109852B (zh) 硬件实现tcp_ip协议的方法
US7370174B2 (en) Method, system, and program for addressing pages of memory by an I/O device
US8504795B2 (en) Method, system, and program for utilizing a virtualized data structure table
CN100414908C (zh) 一种支持虚拟接口的存储网络适配器
US6611883B1 (en) Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system
CN101304373B (zh) 一种实现局域网内高效传输大块数据的方法及***
CN106598752B (zh) 远程零拷贝方法
US20050144402A1 (en) Method, system, and program for managing virtual memory
WO2002041157A2 (en) Method and apparatus for converting address information between pci bus protocol and a message passing queue-oriented bus protocol
US9584628B2 (en) Zero-copy data transmission system
CN101150488A (zh) 一种零拷贝网络报文接收方法
WO2015027806A1 (zh) 一种内存数据的读写处理方法和装置
US11010165B2 (en) Buffer allocation with memory-based configuration
US20060004941A1 (en) Method, system, and program for accessesing a virtualized data structure table in cache
CN115396527B (zh) 一种基于fpga的pcie和srio协议转换***及方法
CN111314480A (zh) 负载自适应跨平台文件传输协议及其分布式服务实现方法
CN116069711A (zh) 直接内存访问控制器、异构设备、内存访问方法及介质
CN115103036A (zh) 一种高效的tcp/ip数据报处理方法及***
CN114244915A (zh) 一种支持多种协议的数据传输方法、装置及存储介质
US11093405B1 (en) Shared mid-level data cache
US8131864B2 (en) Methods and systems for communicating with storage systems using slim IP stacks
CN116489177A (zh) 一种基于块存储的io访问方法、装置、电子设备及介质
CN114327262B (zh) 一种用于智能网卡的维护端口映射的方法和装置
US7532644B1 (en) Method and system for associating multiple payload buffers with multidata message
CN105874757A (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