CN111327603A - 数据传输方法、装置和系统 - Google Patents
数据传输方法、装置和系统 Download PDFInfo
- Publication number
- CN111327603A CN111327603A CN202010072699.8A CN202010072699A CN111327603A CN 111327603 A CN111327603 A CN 111327603A CN 202010072699 A CN202010072699 A CN 202010072699A CN 111327603 A CN111327603 A CN 111327603A
- Authority
- CN
- China
- Prior art keywords
- data
- sent
- information
- module
- unit
- 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
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/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
- H04B—TRANSMISSION
- H04B10/00—Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
- H04B10/50—Transmitters
- H04B10/516—Details of coding or modulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1812—Hybrid protocols; Hybrid automatic repeat request [HARQ]
- H04L1/1816—Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of the same, encoded, message
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据传输方法、装置和系统,该装置集成在FPGA上,该装置包括:协议栈逻辑控制单元、收发控制逻辑单元、数据交互控制单元以及用于接收/发送数据的超万兆级光收发单元,协议栈逻辑控制单元用于获取待发送数据,并根据TCP/IP协议对待发送数据进行编码后通过超万兆级光收发单元发送,以及对通过超万兆级光收发单元接收的待接收数据根据TCP/IP协议解码后发送至收发控制逻辑单元;收发控制逻辑单元,用于接收来自CPU的待发送数据信息、并对其进行合法性验证,当合法时,将待发送数据信息发送至协议栈逻辑控制单元,以及根据验证来自协议栈逻辑控制单元的解码后的待接收数据的合法性,当数据合法时,将解码后的待接收数据存储至外部存储器。
Description
技术领域
本发明涉及通信领域,具体涉及一种数据传输方法、装置和系统。
背景技术
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)协议作为重要的Internet(网络)协议,一直以来都处于网络通信的基础地位。传统的由普通网卡组成的系统中,对TCP/IP协议的解析都由CPU(中央处理器,centralprocessing unit)完成,对服务器的CPU资源要求很高。具体而言,网络应用程序在收发数据时,经常是同一数据要复制多份,在这种情况下,由于不断在网络接口缓冲区和应用程序内存之间进行数据的交换,这些额外负担极大地降低了主CPU的处理效率,增加了应用计算的平均等待时间。按照CPU对网络数据流的处理比率进行分析,大概CPU每处理1比特网络数据,就将消耗1Hz的处理性能,也就是说需要20GHz的CPU处理能力满负荷运行,才能满足10G比特以太网数据流的处理要求。随着主流通信带宽的不断提升,而CPU的算力长期停留在2GHz-5GHz级别,传统的网卡已不能够适用于当前网络通信的巨大需求。
TOE(TCP Offload Engine),即TCP卸载引擎,也叫TCP减负引擎,它旨在使用网卡上集成专用处理器来转移并处理TCP数据包对主CPU请求的任务。TOE技术的实现方式是通过采用TOE芯片的专用网卡,将TCP协议栈的处理转移到硬件实现,由TOE网卡承担主CPU处理TCP数据的绝大部分任务,减轻了CPU的负荷,通常采用了TOE网卡要比采用传统网卡的计算机,CPU的负荷能够降低10倍以上,最终释放CPU资源,同时降低网络延时。TOE包括全卸载和部分卸载两种方式,全卸载方式下,TOE网卡完成TCP协议的全部功能,而不需要CPU的参与;部分卸载方式下,TOE网卡处理TCP协议的数据传输,定时器管理和错误与拥塞控制等过程,主机处理连接管理部分。
然而,目前主流的TOE解决方案中,最高只能支持到10Ghz的网络传输速率,已无法满足有些高要求数据传输的应用场景。
目前亟待需要一种能够满足超万兆级数据传输需求的TOE解决方案。
发明内容
有鉴于此,本发明提供一种数据传输方法、装置和系统,以解决上述提及的至少一个问题。
根据本发明的第一方面,提供一种数据传输装置,所述数据传输装置集成在现场可编程门阵列(FPGA)上,所述装置包括:协议栈逻辑控制单元、收发控制逻辑单元、数据交互控制单元以及超万兆级光收发单元,其中,所述协议栈逻辑控制单元,用于根据来自所述收发控制逻辑单元的待发送数据信息从外部存储器获取待发送数据,并根据传输控制协议/网际协议TCP/IP协议对所述待发送数据进行编码后通过所述超万兆级光收发单元发送编码后的数据,以及对通过所述超万兆级光收发单元接收的待接收数据根据所述TCP/IP协议解码后发送至所述收发控制逻辑单元,其中,所述待发送数据信息包括:目标IP地址和目标端口号、数据存储信息;所述收发控制逻辑单元,用于接收来自中央处理器CPU的所述待发送数据信息、并根据预先存储的IP记录信息验证所述待发送数据信息的合法性,当所述待发送数据信息合法时,将所述待发送数据信息发送至所述协议栈逻辑控制单元,以及根据所述IP记录信息验证来自所述协议栈逻辑控制单元的解码后的待接收数据的合法性,当数据合法时,将所述解码后的待接收数据存储至所述外部存储器;所述数据交互控制单元,用于所述收发控制逻辑单元与所述CPU之间的通信;所述超万兆级光收发单元,用于发送/接收数据。
根据本发明的第二方面,提供一种数据传输系统,所述系统包括:CPU、外部存储器、以及上述的数据传输装置。
根据本发明的第三方面,提供一种数据传输方法,所述方法包括:接收待发送数据信息,并根据所述待发送数据信息获取存储于外部存储器的待发送数据,其中,所述待发送数据信息包括:目标IP地址和目标端口号、数据存储信息;根据TCP/IP协议对所述待发送数据进行编码、并将编码后的数据经由超万兆级光收发单元发送至目标终端;获取经由所述超万兆级光收发单元接收的待接收数据;根据TCP/IP协议对所述待接收数据进行解码、并将根据预先存储的IP记录信息对解码后的待接收数据在合法性验证成功后存储到外部存储器。
根据本发明的第四方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述数据传输方法的步骤。
根据本发明的第五方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述数据传输方法的步骤。
由上述技术方案可知,通过设置超万兆级光收发单元来发送和接收数据,并通过协议栈逻辑控制单元对来自CPU的经由数据交互控制单元转发到收发控制逻辑单元的发送数据进行基于TCP/IP协议编码后发送,以及通过超万兆级光收发单元接收并经过协议栈逻辑控制单元解码后发送至收发控制逻辑单元,之后CPU经由数据交互控制单元获取数据,以此来实现数据传输,可以满足超万兆级数据传输的需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的数据传输系统的结构框图;
图2是根据本发明实施例的数据传输装置3的结构框图;
图3是根据本发明实施例的协议栈逻辑控制单元31的结构框图;
图4是根据本发明实施例的收发控制逻辑单元32的结构框图;
图5是根据本发明实施例的数据传输系统的示例性结构框图;
图6是IP数据包的结构示意图;
图7是TCP数据包的结构示意图;
图8是根据本发明实施例的数据传输方法的流程图;
图9是根据本发明实施例的电子设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,主流的TOE解决方案中,最高能支持到10Ghz的网络传输速率,为了更好地提升TOE网卡的性能,使其满足超万兆级数据传输需求,本发明实施例提出一种基于FPGA(Field-Programmable Gate Array,即现场可编程门阵列)的全卸载式TOE硬件解决方案,该方案能够支持到40Ghz的传输速率。以下结合附图来详细描述本发明实施例。
图1是根据本发明实施例的数据传输系统的结构框图,如图1所示,该系统包括:CPU 1、外部存储器2、数据传输装置3,其中,CPU 1经由数据传输装置3基于TCP/IP协议与其他终端通信,外部存储器2用于存储数据。数据传输装置3优选地集成于FPGA上。以下详细描述数据传输装置3。
图2是根据本发明实施例的数据传输装置3的结构框图,如图2所示,该数据传输装置3包括:协议栈逻辑控制单元31、收发控制逻辑单元32、数据交互控制单元33以及超万兆级光收发单元34,其中:
协议栈逻辑控制单元31,用于根据来自收发控制逻辑单元的待发送数据信息从外部存储器获取待发送数据,并根据TCP/IP协议对待发送数据进行编码后通过超万兆级光收发单元发送编码后的数据,以及对通过超万兆级光收发单元接收的待接收数据根据TCP/IP协议解码后发送至收发控制逻辑单元,其中,待发送数据信息包括:目标IP地址和目标端口号、数据存储信息;
收发控制逻辑单元32,用于接收来自CPU的待发送数据信息、并根据预先存储的IP记录信息验证待发送数据信息的合法性,当待发送数据信息合法时,将待发送数据信息发送至协议栈逻辑控制单元,以及根据IP记录信息验证来自协议栈逻辑控制单元的解码后的待接收数据的合法性,当数据合法时,将解码后的待接收数据存储至外部存储器;
数据交互控制单元33,用于收发控制逻辑单元与CPU之间的通信;
超万兆级光收发单元34,用于发送/接收数据,该数据可以是超万兆级数据。
通过设置超万兆级光收发单元来发送和接收数据,并通过协议栈逻辑控制单元对来自CPU的经由数据交互控制单元转发到收发控制逻辑单元的发送数据进行基于TCP/IP协议编码后发送,以及通过超万兆级光收发单元接收数据并经过协议栈逻辑控制单元对接收的数据解码后发送至收发控制逻辑单元,之后CPU经由数据交互控制单元获取数据,以此来实现数据传输,本发明实施例可以满足超万兆级数据传输的需求。
以下详细描述协议栈逻辑控制单元31和收发控制逻辑单元32。
具体而言,如图3所示,协议栈逻辑控制单元31包括:MAC(Media Access Control,媒体介入控制层)接收模块311、解码模块312、数据传输控制模块313、编码模块314、MAC发送模块315,其中:
MAC接收模块311,用于接收来自超万兆级光收发单元的待接收数据;
解码模块312,用于对待接收数据进行解码操作,解码操作包括:解析数据类型、提取数据IP信息、以及计算数据在外部存储器中的存储地址;
数据传输控制模块313,用于接收待发送数据信息、并根据待发送数据信息从外部存储器中获取待发送数据以及判断该待发送数据的数据类型;
编码模块314,用于对来自数据传输控制模块的待发送数据、根据其数据类型进行编码操作;
MAC发送模块315,用于将经过编码操作的待发送数据发送至超万兆级光收发单元。
如图4所示,收发控制逻辑单元32具体包括:数据发送模块321、IP信息记录模块322以及数据接收模块323,其中:
数据发送模块321,用于将来自CPU的、经由数据交互控制单元转发的、合法的待发送数据信息发送至上述数据传输控制模块;
IP信息记录模块322,用于存储IP记录信息、并根据IP记录信息验证数据的合法性,该IP记录信息包括:IP地址和相应的端口号;
数据接收模块323,用于接收来自解码模块解码后的、合法的待接收数据,并将该待接收数据存储至外部存储器。
为了更好地理解本发明实施例,以下结合图5所示的示例性数据传输系统来详细描述本发明实施例。
在该实施例中,数据传输装置可以是集成于FPGA芯片的全卸载式TOE,该全卸载式TOE主要包括:TCP/IP协议栈逻辑单元51、收发逻辑控制单元52和PC(Personal Computer,个人计算机)交互逻辑控制单元53,40G光收发模块511位于TCP/IP协议栈逻辑单元中。优选地,TCP/IP协议栈逻辑单元51可以具有上述协议栈逻辑控制单元31的功能,收发逻辑控制单元52可以具有上述收发控制逻辑单元32的功能,PC交互逻辑控制单元53可以具有上述数据交互控制单元33的功能。
如图5所示,该系统还包括:与该FPGA芯片相连的用于数据存储的DDR外部存储器54、以及与PC交互逻辑控制单元连接的PC 55。这里的DDR外部存储器为DDRSDRAM(DoubleData Rate Synchronous Dynamic Random Access Memory,双倍数据率同步动态随机存取存储器)。
以下详细描述TCP/IP协议栈逻辑单元51和收发逻辑控制单元52。
如图5所示,TCP/IP协议栈逻辑单元51包括:MAC发送模块512、MAC接收模块513、TCP/IP编码模块514、TCP/IP解码模块515、TCP/IP包传输控制模块516、多链接控制模块517、心跳功能控制模块518、重传功能控制模块519、Ping(数据包探测)功能控制模块520,其中,TCP/IP协议栈逻辑单元51包含两个MAC发送模块512和两个TCP/IP编码模块514,因而可以采用乒乓操作以充分利用40G光收发模块的带宽。
以下分别详细描述各模块。
MAC发送模块512,优选地具有上述MAC发送模块315的功能。具体而言,MAC发送模块512分别与40G光收发模块和TCP/IP编码模块连接,依靠其内置的FIFO(First InputFirst Output,先进先出)完成跨时钟域的数据发送操作。
MAC接收模块513,优选地具有上述MAC接收模块311的功能。具体而言,MAC接收模块513分别与40G光收发模块和TCP/IP解码模块连接,依靠其内置的FIFO完成跨时钟域的数据接收操作。
TCP/IP解码模块514,优选地具有具有上述解码模块312的功能。具体而言,TCP/IP解码模块514可以用于:解析TCP/IP包的类型、提取TCP/IP数据包的IP信息、判断心跳包包头正确性、判断Ping包包头正确性、判断ARP(Address Resolution Protocol,地址解析协议)包包头正确性并进行ARP信息的储存、判断握手包的正确性、判断数据包的正确性并进行数据校验,将数据包转化成512位的数据流以供后续收发逻辑控制单元处理,以及计算出数据对应在DDR中的储存地址。
TCP/IP编码模块515,优选地具有上述编码模块314的功能。具体而言,TCP/IP编码模块515可以从TCP/IP包传输控制模块516中获取数据,并按照TCP/IP包传输控制模块发送的指令将其打包成数据包/握手包/ARP包。
TCP/IP包传输控制模块516,优选地具有上述数据传输控制模块313的功能。具体而言,TCP/IP包传输控制模块516分别与TCP/IP解码模块、Ping功能控制模块、重传功能控制模块、心跳功能控制模块、收发逻辑控制单元中的数据发送控制模块以及存储控制模块连接,该TCP/IP包传输控制模块516根据不同模块发送过来的信号以及数据,判断应发送的TCP/IP包种类,并将表示需要发送的TCP/IP包种类的指令以及对应的数据发送给TCP/IP编码模块515进行进一步的打包。
多链接控制模块517,分别与TCP/IP解码模块和TCP/IP编码模块连接,该模块主要控制并保持与多个目标IP的正确链接。
心跳功能控制模518,分别与TCP/IP解码模块和TCP/IP包传输控制模块连接,该模块从TCP/IP解码模块中获取到经由MAC接收模块接收到的心跳包信息,并将心跳响应/申请发送至TCP/IP包传输控制模块。
重传功能控制模块519,该重传控制控制模块可用于缓存待发送数据,并响应于触发重传操作,将缓存的待发送数据发送至TCP/IP包传输控制模块进行数据重新发送操作。具体而言,该重传控制控制模块519分别与TCP/IP解码模块和TCP/IP包传输控制模块连接,其功能可以包括:Seq序列号及Ack应答号管理,窗口数据信息备份以及重传指令的控制。
Ping功能控制模块520,用于接收来自收发逻辑控制单元的Ping请求数据并转发至TCP/IP包传输控制模块,以及接收来自MAC接收模块的经过解码的Ping响应数据,其中,Ping请求数据包括:Ping请求指令、目标IP地址和目标端口号。具体而言,Ping功能控制模块520分别与TCP/IP包传输控制模块、TCP/IP解码模块和收发逻辑控制单元中的数据发送控制模块连接,该模块从TCP/IP解码模块中获得接收到的Ping包信息(例如,Ping响应),从数据发送控制模块获得本终端产生的Ping请求(包括Ping指令以及对应的目标IP地址),然后将Ping响应/Ping请求发送给TCP/IP包传输控制模块。
继续参见图5,收发逻辑控制单元52包括:数据发送控制模块521、数据接收控制模块522、IP记录表模块523、存储控制模块524以及数组FIFO(该FIFO在图中未显示),其中,收发逻辑控制单元52包含两个存储控制模块524,分别用于控制接收的数据存入DDR以及从DDR中读取数据。以下分别详细描述各模块。
数据发送控制模块521,优选地具有上述数据发送模块321的功能。
具体而言,数据发送控制模块521分别与IP记录表模块、存储控制模块、PC交互逻辑控制单元和TCP/IP协议栈逻辑单元连接,其功能主要包括:根据PC交互逻辑控制单元传输的更新IP记录表指令通知IP记录表模块更新其内部的IP记录表,根据PC交互逻辑控制单元传输过来的发送数据包指令计算出待发送数据在DDR中的位置及数据长度、并将其发送至TCP/IP协议栈逻辑单元,以及接收从IP记录表模块发送来的ARP请求并将该请求发送至TCP/IP协议栈逻辑单元。
数据接收控制模块522,优选地具有上述数据接收模块323的功能。
具体而言,数据接收控制模块522分别与IP记录表模块、存储控制模块、PC交互逻辑控制单元和TCP/IP协议栈逻辑单元连接,其功能主要包括:接收TCP/IP协议栈逻辑单元中的TCP/IP解码模块解析出的TCP/IP数据包中的IP地址和端口号(PORT)、数据存储地址及数据长度信息,之后将IP地址、PORT信息发送至IP记录表模块中进行校验,若合法则将对应数据缓存至内置的FIFO内,等待PC交互逻辑控制单元读取;此外,该数据接收控制模块还支持Seq(序列)数据的重排功能。
IP记录表模块523,优选地具有上述IP信息记录模块322的功能。
具体而言,IP记录表模块523分别与数据发送控制模块和数据接收控制模块连接,其功能主要包括:维护IP地址和对应的端口号表,用于记录与本终端建立链接的对端的IP地址和端口号,终端每次发送数据包都需要校验IP地址和端口号信息,校验结果为合法后才能发送;以及终端接收到的TCP/IP数据包的IP地址和PORT信息需要通过该模块校验,合法后才能被PC接收。
存储控制模块524,分别与TCP/IP协议栈逻辑单元中的TCP/IP解码模块和TCP/IP包传输控制模块连接,并通过avalon总线(一种协议较为简单的片内总线)与DDR连接,其功能是将其他模块中读写DDR的信号转换成DDR兼容的avalon总线信号。
上述PC交互逻辑控制单元53通过PCIE(peripheral component interconnectexpress,一种高速串行计算机扩展总线,可称为PCI-Express)与PC进行通信,其功能包括:将PC传输来的更新IP记录表指令、发送数据包指令进行解析并发送到收发逻辑控制单元中的数据发送控制模块;以及接收数据接收控制模块中的来自TCP/IP协议栈逻辑单元的TCP/IP数据包的地址及数据长度信息,并依此从DDR中读出数据利用PCIE传输至PC。
由以上描述可知,上述TCP/IP协议栈逻辑单元51完成了TCP/IP协议中数据包的打包/解包、Ping功能、心跳功能、重传功能、IP组播功能、阻塞控制功能、流控制功能和多链接功能;收发逻辑控制单元52完成了IP记录表的维护、以及IP地址、PORT信息的合法性校验功能,完成了对发送和接收的TCP/IP数据包数据在DDR中存储地址的解析;以及PC交互逻辑控制单元实现PC和本实施例其余模块的交互。
为了进一步理解本发明实施例,以下基于图5所示的系统,给出如下具体实施例。
实施例一:当网络连接建立时,PC通过PCIE向PC交互逻辑控制单元发送更新IP记录表的指令,发送的指令包含:目标终端的IP地址和端口号,每更新一个IP地址和端口号,IP记录表模块通知数据发送控制模块生成ARP信号,经TCP/IP协议栈逻辑控制单元中的TCP/IP包传输控制模块到达TCP/IP编码模块中生成ARP请求包、并由MAC发送模块通过40G光收发模块向目标IP地址发出;在接收ARP响应包时,MAC接收模块从40G光收发模块接收到ARP响应包并交由TCP/IP解码模块解析,解析出的ARP信息经TCP/IP包传输控制模块发送回数据接收控制模块并通知IP记录表,至此完成一次ARP操作。重复三次上述操作即可完成网络连接的建立。
实施例二:当发送TCP/IP数据包时,PC将发送的数据在DDR中的地址和数据包的长度(以字节为单位)、目的IP地址和端口号发送至PC交互逻辑控制单元,PC交互逻辑控制单元将这些信息发送至数据发送控制模块,数据发送控制模块将其中的IP地址和端口号交由IP记录表模块判断该IP地址和端口号是否合法,若合法,数据发送控制模块将发送数据的信息发送至TCP/IP协议栈逻辑控制单元中的TCP/IP包传输控制模块,之后TCP/IP包传输控制模块根据其中的DDR数据地址和数据包长度信息从DDR中读取对应的数据,并交由TCP/IP编码模块进行编码打包,随后经由MAC发送模块通过40G光收发模块发出,至此完成一次完整的TCP/IP数据包发送操作。
实施例三:当接收TCP/IP数据包时,MAC接收模块从40G光收发模块中接收TCP/IP包并交由TCP/IP解码模块解析并进行包头校验以及数据正确性校验,若校验通过,则计算出待存储本数据的DDR地址,之后将数据发送至收发逻辑控制单元的存储控制模块,将数据存入DDR中;同时,将DDR地址、数据包长度,发送方IP地址和端口号发送至收发逻辑控制单元的数据接收控制模块,接收控制模块将IP地址和端口号发送至IP记录表模块进行校验,若合法,则将上述信息缓存入FIFO,等待PC经PC交互逻辑控制单元发送接收指令之后,将信息发送至PC,然后PC按照其中的DDR地址和数据包长度从DDR中读取数据,至此完成一次完整的TCP/IP数据包接收操作。
实施例四:当本终端发送Ping请求(包括目的IP地址和端口号)时,PC将Ping请求指令经PC交互逻辑控制单元发送至数据发送控制模块,数据发送控制模块将目的IP地址和端口号交由IP记录表模块进行校验,若校验通过,则将Ping请求指令和相应的目的IP地址、端口号信息发送至Ping功能控制模块,由Ping功能控制模块发送Ping请求至TCP/IP包传输控制模块,经TCP/IP包传输控制模块传输至TCP/IP编码模块打包成Ping包后经由MAC发送模块通过40G光收发模块发出,完成一次完整的Ping请求操作;当本终端接收Ping响应时,MAC接收模块将经由40G光收发模块接收到的TCP/IP包发送给TCP/IP解码模块解码为Ping包,完成Ping包包头校验后将Ping信息传输至Ping功能控制模块,继续进行下一次的Ping请求操作,同时也将Ping包中的信息发送至数据接收控制模块,经过IP记录表模块对IP地址和端口号进行校验,若合法,则通过PC交互逻辑控制单元发送至PC,完成一次完整的ping响应接收操作。
实施例五:重传功能的实现主要依赖于重传功能控制模块,重传功能控制模块缓存待发送的TCP/IP数据包,监视接收到的TCP/IP数据包,并根据其Ack确认号以及其内置的计时器来判断是否需要超时重传或者快速重传。在触发超时重传或者快速重传功能时,取出缓存中的数据,交由TCP/IP包传输控制模块进行重传包的传输和发送;若多次重传操作后仍未得到相应的响应,则重传功能控制模块会输出相应的错误标志信号以切断对应的链接。
需要说明的是,本发明实施例中涉及到的TCP/IP数据包,可以是图6、图7所示的数据结构,其中,图6是IP数据包的结构示意图,图7是TCP数据包的结构示意图,TCP包是IP包的一个子类,TCP包的内容位于IP包中的“用户数据”部分。
在实际操作中,上述各单元、各模块可以组合设置、也可以单一设置,本发明不限于此。
基于相似的发明构思,本发明还提供一种数据传输方法,优选地,该方法可应用于上述的数据传输装置。
图8是根据本发明实施例的数据传输方法的流程图,如图8所示,该方法包括:
步骤801,接收待发送数据信息,并根据所述待发送数据信息获取存储于外部存储器的待发送数据,其中,所述待发送数据信息包括:目标IP地址和目标端口号、数据存储信息。
在具体实施过程中,在接收待发送数据信息之前,还可以根据所述IP记录信息对所述待发送数据信息进行合法性验证。
步骤802,根据TCP/IP协议对所述待发送数据进行编码、并将编码后的数据经由超万兆级光收发单元发送至目标终端。
在实际操作中,还可以缓存所述待发送数据;当触发重传操作时,可以获取缓存的待发送数据并进行数据重新发送操作。
步骤803,获取经由所述超万兆级光收发单元接收的待接收数据。
步骤804,根据TCP/IP协议对所述待接收数据进行解码、并将根据预先存储的IP记录信息对解码后的待接收数据在合法性验证成功后存储到外部存储器。
本发明实施例通过根据待发送数据信息获取存储于外部存储器的待发送数据,并根据TCP/IP协议对该待发送数据进行编码后由超万兆级光收发单元发送至目标终端,以及通过对超万兆级光收发单元接收的待接收数据基于TCP/IP协议进行解码、合法性验证后存储到外部存储器,从而可以实现超万兆级数据的传输。
上述各步骤的具体实现流程可以参见上述装置实施例中的描述,此处不再赘述。
图9是根据本发明实施例的电子设备的示意图。图9所示的电子设备为通用数据处理装置,其包括通用的计算机硬件结构,其至少包括处理器901和存储器902。处理器901和存储器902通过总线903连接。存储器902适于存储处理器901可执行的一条或多条指令或程序。该一条或多条指令或程序被处理器901执行以实现上述数据传输方法中的步骤。
上述处理器901可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器901通过执行存储器902所存储的命令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其他装置的控制。总线903将上述多个组件连接在一起,同时将上述组件连接到显示控制器904和显示装置以及输入/输出(I/O)装置905。输入/输出(I/O)装置905可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出(I/O)装置905通过输入/输出(I/O)控制器906与系统相连。
其中,存储器902可以存储软件组件,例如操作系统、通信模块、交互模块以及应用程序。以上所述的每个模块和应用程序都对应于完成一个或多个功能和在发明实施例中描述的方法的一组可执行程序指令。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现上述数据传输方法的步骤。
综上所述,本发明实施例提出的基于FPGA的全卸载式TOE硬件解决方案能够支持到40Ghz的传输速率,相比于现有技术,本发明实施例使用硬件加速电路,转移CPU的运算负担到专用的计算硬件上,从而可以解决CPU占用率高且运算效率低的问题,并且,本发明实施例在数据传输过程中,通信延时更低,支持的通信带宽更大,同时支持全部TCP/IP功能。
以上参照附图描述了本发明的优选实施方式。这些实施方式的许多特征和优点根据该详细的说明书是清楚的,因此权利要求旨在覆盖这些实施方式的落入其真实精神和范围内的所有这些特征和优点。此外,由于本领域的技术人员容易想到很多修改和改变,因此不是要将本发明的实施方式限于所例示和描述的精确结构和操作,而是可以涵盖落入其范围内的所有合适修改和等同物。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种数据传输装置,其特征在于,所述数据传输装置集成在现场可编程门阵列FPGA上,所述装置包括:协议栈逻辑控制单元、收发控制逻辑单元、数据交互控制单元以及超万兆级光收发单元,其中,
所述协议栈逻辑控制单元,用于根据来自所述收发控制逻辑单元的待发送数据信息从外部存储器获取待发送数据,并根据传输控制协议/网际协议TCP/IP协议对所述待发送数据进行编码后通过所述超万兆级光收发单元发送编码后的数据,以及对通过所述超万兆级光收发单元接收的待接收数据根据所述TCP/IP协议解码后发送至所述收发控制逻辑单元,其中,所述待发送数据信息包括:目标IP地址和目标端口号、数据存储信息;
所述收发控制逻辑单元,用于接收来自中央处理器CPU的所述待发送数据信息、并根据预先存储的IP记录信息验证所述待发送数据信息的合法性,当所述待发送数据信息合法时,将所述待发送数据信息发送至所述协议栈逻辑控制单元,以及根据所述IP记录信息验证来自所述协议栈逻辑控制单元的解码后的待接收数据的合法性,当数据合法时,将所述解码后的待接收数据存储至所述外部存储器;
所述数据交互控制单元,用于所述收发控制逻辑单元与所述CPU之间的通信;
所述超万兆级光收发单元,用于发送/接收数据。
2.根据权利要求1所述的装置,其特征在于,所述协议栈逻辑控制单元包括:
MAC接收模块,用于接收来自所述超万兆级光收发单元的待接收数据;
解码模块,用于对所述待接收数据进行解码操作,所述解码操作包括:解析数据类型、提取数据IP信息、以及计算数据在所述外部存储器中的存储地址;
数据传输控制模块,用于接收所述待发送数据信息、并根据所述待发送数据信息从所述外部存储器中获取所述待发送数据以及判断该待发送数据的数据类型;
编码模块,用于对来自所述数据传输控制模块的待发送数据、根据其数据类型进行编码操作;
MAC发送模块,用于将经过编码操作的待发送数据发送至所述超万兆级光收发单元。
3.根据权利要求2所述的装置,其特征在于,所述协议栈逻辑控制单元还包括如下至少之一:
数据包探测Ping控制模块,用于接收来自所述收发控制逻辑单元的Ping请求数据并转发至所述数据传输控制模块,以及接收来自所述MAC接收模块的经过解码的Ping响应数据,其中,所述Ping请求数据包括:Ping请求指令、目标IP地址和目标端口号;
重传控制模块,用于缓存所述数据传输控制模块获取的待发送数据,并响应于触发重传操作,将缓存的待发送数据发送至所述数据传输控制模块进行数据重新发送操作;
心跳控制模块,用于获取来自所述MAC接收模块的经过解码的心跳包数据,并将所述心跳包数据发送至所述数据传输控制模块;
多链接控制模块,用于控制与目标IP地址之间的链接。
4.根据权利要求2所述的装置,其特征在于,所述收发控制逻辑单元包括:
数据发送模块,用于将来自所述CPU的、经由所述数据交互控制单元转发的、合法的待发送数据信息发送至所述数据传输控制模块;
IP信息记录模块,用于存储IP记录信息、并根据所述IP记录信息验证数据的合法性,所述IP记录信息包括:IP地址和相应的端口号;
数据接收模块,用于接收来自所述解码模块解码后的、合法的待接收数据,并将该待接收数据存储至所述外部存储器。
5.根据权利要求1所述的装置,其特征在于,所述交互逻辑控制单元通过高速串行计算机扩展总线PCIE与所述CPU连接。
6.一种数据传输系统,其特征在于,所述系统包括:CPU、外部存储器、以及如权利要求1-5中任一项所述的数据传输装置。
7.一种数据传输方法,其特征在于,所述方法包括:
接收待发送数据信息,并根据所述待发送数据信息获取存储于外部存储器的待发送数据,其中,所述待发送数据信息包括:目标IP地址和目标端口号、数据存储信息;
根据TCP/IP协议对所述待发送数据进行编码、并将编码后的数据经由超万兆级光收发单元发送至目标终端;
获取经由所述超万兆级光收发单元接收的待接收数据;
根据TCP/IP协议对所述待接收数据进行解码、并将根据预先存储的IP记录信息对解码后的待接收数据在合法性验证成功后存储到外部存储器。
8.根据权利要求7所述的方法,其特征在于,在接收待发送数据信息之前,所述方法还包括:
根据所述IP记录信息对所述待发送数据信息进行合法性验证。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
缓存所述待发送数据;
响应于触发重传操作,获取缓存的待发送数据并进行数据重新发送操作。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求7至9中任一项所述数据传输方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求7至9中任一项所述数据传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010072699.8A CN111327603B (zh) | 2020-01-21 | 2020-01-21 | 数据传输方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010072699.8A CN111327603B (zh) | 2020-01-21 | 2020-01-21 | 数据传输方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111327603A true CN111327603A (zh) | 2020-06-23 |
CN111327603B CN111327603B (zh) | 2021-04-20 |
Family
ID=71172528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010072699.8A Active CN111327603B (zh) | 2020-01-21 | 2020-01-21 | 数据传输方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111327603B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111541784A (zh) * | 2020-07-08 | 2020-08-14 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链一体机的交易处理方法及装置 |
CN112383313A (zh) * | 2020-10-10 | 2021-02-19 | 中科驭数(北京)科技有限公司 | 一种并行数据解码装置及方法 |
CN112953967A (zh) * | 2021-03-30 | 2021-06-11 | 扬州万方电子技术有限责任公司 | 网络协议卸载装置和数据传输系统 |
CN113179327A (zh) * | 2021-05-14 | 2021-07-27 | 中兴通讯股份有限公司 | 基于大容量内存的高并发协议栈卸载方法、设备、介质 |
US11336660B2 (en) | 2020-07-08 | 2022-05-17 | Alipay (Hangzhou) Information Technology Co., Ltd. | Methods and apparatuses for identifying replay transaction based on blockchain integrated station |
US11463553B2 (en) | 2020-07-08 | 2022-10-04 | Alipay (Hangzhou) Information Technology Co., Ltd. | Methods and apparatuses for identifying to-be-filtered transaction based on blockchain integrated station |
WO2022257587A1 (zh) * | 2021-06-08 | 2022-12-15 | 中兴通讯股份有限公司 | 数据处理方法、toe硬件及计算机可读存储介质 |
US11665234B2 (en) | 2020-07-08 | 2023-05-30 | Alipay (Hangzhou) Information Technology Co., Ltd. | Methods and apparatuses for synchronizing data based on blockchain integrated station |
US11783339B2 (en) | 2020-07-08 | 2023-10-10 | Alipay (Hangzhou) Information Technology Co., Ltd. | Methods and apparatuses for transferring transaction based on blockchain integrated station |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140143121A1 (en) * | 2012-02-23 | 2014-05-22 | Rexante Systems, Inc. | System and Method for Programming a Trading System |
CN105471852A (zh) * | 2015-11-18 | 2016-04-06 | 武汉精测电子技术股份有限公司 | 一种udp高速数据收发系统及方法 |
CN105516191A (zh) * | 2016-01-13 | 2016-04-20 | 成都市智讯联创科技有限责任公司 | 基于fpga实现的万兆网tcp协议卸载引擎toe的系统 |
CN110177087A (zh) * | 2019-05-05 | 2019-08-27 | 方一信息科技(上海)有限公司 | 一种基于TOE网卡的Target端协议硬件解析方法 |
-
2020
- 2020-01-21 CN CN202010072699.8A patent/CN111327603B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140143121A1 (en) * | 2012-02-23 | 2014-05-22 | Rexante Systems, Inc. | System and Method for Programming a Trading System |
CN105471852A (zh) * | 2015-11-18 | 2016-04-06 | 武汉精测电子技术股份有限公司 | 一种udp高速数据收发系统及方法 |
CN105516191A (zh) * | 2016-01-13 | 2016-04-20 | 成都市智讯联创科技有限责任公司 | 基于fpga实现的万兆网tcp协议卸载引擎toe的系统 |
CN110177087A (zh) * | 2019-05-05 | 2019-08-27 | 方一信息科技(上海)有限公司 | 一种基于TOE网卡的Target端协议硬件解析方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111541784A (zh) * | 2020-07-08 | 2020-08-14 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链一体机的交易处理方法及装置 |
CN111541784B (zh) * | 2020-07-08 | 2021-07-20 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链一体机的交易处理方法及装置 |
US11336660B2 (en) | 2020-07-08 | 2022-05-17 | Alipay (Hangzhou) Information Technology Co., Ltd. | Methods and apparatuses for identifying replay transaction based on blockchain integrated station |
US11444783B2 (en) | 2020-07-08 | 2022-09-13 | Alipay (Hangzhou) Information Technology Co., Ltd. | Methods and apparatuses for processing transactions based on blockchain integrated station |
US11463553B2 (en) | 2020-07-08 | 2022-10-04 | Alipay (Hangzhou) Information Technology Co., Ltd. | Methods and apparatuses for identifying to-be-filtered transaction based on blockchain integrated station |
US11665234B2 (en) | 2020-07-08 | 2023-05-30 | Alipay (Hangzhou) Information Technology Co., Ltd. | Methods and apparatuses for synchronizing data based on blockchain integrated station |
US11783339B2 (en) | 2020-07-08 | 2023-10-10 | Alipay (Hangzhou) Information Technology Co., Ltd. | Methods and apparatuses for transferring transaction based on blockchain integrated station |
CN112383313A (zh) * | 2020-10-10 | 2021-02-19 | 中科驭数(北京)科技有限公司 | 一种并行数据解码装置及方法 |
CN112383313B (zh) * | 2020-10-10 | 2023-08-04 | 中科驭数(北京)科技有限公司 | 一种并行数据解码装置及方法 |
CN112953967A (zh) * | 2021-03-30 | 2021-06-11 | 扬州万方电子技术有限责任公司 | 网络协议卸载装置和数据传输系统 |
CN113179327A (zh) * | 2021-05-14 | 2021-07-27 | 中兴通讯股份有限公司 | 基于大容量内存的高并发协议栈卸载方法、设备、介质 |
WO2022257587A1 (zh) * | 2021-06-08 | 2022-12-15 | 中兴通讯股份有限公司 | 数据处理方法、toe硬件及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111327603B (zh) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111327603B (zh) | 数据传输方法、装置和系统 | |
CN106664290B (zh) | 一种光电混合网络的数据传输方法及装置 | |
CN113728596A (zh) | 在网络接口控制器(nic)中促进对幂等操作进行高效管理的系统和方法 | |
US7783769B2 (en) | Accelerated TCP (Transport Control Protocol) stack processing | |
US11023412B2 (en) | RDMA data sending and receiving methods, electronic device, and readable storage medium | |
US8595401B2 (en) | Input output bridging | |
CN114244780B (zh) | 一种数据传输方法、数据传输装置和相关设备 | |
WO2023000670A1 (zh) | 数据写入方法、数据读取方法、装置、设备、系统及介质 | |
CN115499505B (zh) | Usb网卡和通信方法 | |
US20220321491A1 (en) | Microservice data path and control path processing | |
CN111277600B (zh) | 数据传输方法及装置 | |
CN114138707B (zh) | 一种基于fpga的数据传输系统 | |
CN114422617B (zh) | 一种报文处理方法、系统及计算机可读存储介质 | |
WO2021134418A1 (zh) | 一种数据校验方法及装置 | |
WO2023121785A1 (en) | Packet format adjustment technologies | |
US8886699B2 (en) | Offloading the processing of signals | |
US11620250B2 (en) | Systems and methods for data transfer over a shared interface | |
CN115202573A (zh) | 数据存储系统以及方法 | |
US20070242697A1 (en) | Method and apparatus for processing data at physical layer | |
CN110830386B (zh) | 报文保序的方法、装置和系统 | |
WO2017046582A1 (en) | Tcp/ip offload system | |
US20220124046A1 (en) | System for storage of received messages | |
US11636061B2 (en) | On-demand packetization for a chip-to-chip interface | |
US20240111587A1 (en) | Circuitry to perform partial decompression operations | |
Wang et al. | An Optimized RDMA QP Communication Mechanism for Hyperscale AI Infrastructure |
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 |