CN111277600A - 数据传输方法及装置 - Google Patents
数据传输方法及装置 Download PDFInfo
- Publication number
- CN111277600A CN111277600A CN202010072692.6A CN202010072692A CN111277600A CN 111277600 A CN111277600 A CN 111277600A CN 202010072692 A CN202010072692 A CN 202010072692A CN 111277600 A CN111277600 A CN 111277600A
- Authority
- CN
- China
- Prior art keywords
- data packet
- data
- final
- initial
- link
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据传输方法及装置,其中,该方法包括:响应于接收到包含目标地址信息和数据存储信息的数据包发送请求,根据当前链路信息判断与目标地址的链路是否已经建立;响应于判断结果为链路未建立,执行与目标地址的链路建立操作;响应于判断结果为链路已建立,根据目标地址信息生成至少包括初始TCP校验和的初始数据包包头、以及根据数据存储信息获取待发送数据;根据预定传输规则将初始数据包包头和待发送数据发送至预设发送模块,同时基于校验和生成规则根据初始数据包包头和待发送数据生成最终TCP校验和;根据最终TCP校验和、初始数据包包头和待发送数据生成最终数据包并将最终数据包通过超万兆级光收发单元发送至目标地址。
Description
技术领域
本发明涉及通信领域,具体涉及一种数据传输方法及装置。
背景技术
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)协议作为重要的Internet(网络)协议,一直以来都处于网络通信的基础地位。目前,网络传输带宽迅速增加,由于传统的TCP/IP网卡依赖CPU(中央处理器,centralprocessing unit)对数据包进行编码、解析等一系列操作,导致高带宽下网络传输对CPU的负载产生巨大压力。此外,由于CPU性能的限制,也对进一步提升网络带宽形成了瓶颈。
因此,TOE(TCP Offload Engine,TCP卸载引擎),也叫TCP减负引擎技术应运而生,其主要思想是使用网卡上集成专用处理器来转移并处理TCP数据包对主CPU请求的任务。TOE技术的实现方式是通过采用TOE芯片的专用网卡,将TCP协议栈的处理转移到硬件实现,由TOE网卡承担主CPU处理TCP数据的绝大部分任务,减轻了CPU的负荷,通常采用了TOE网卡要比采用传统网卡的计算机,CPU的负荷能够降低10倍以上,最终实现释放CPU资源,同时降低网络延时。
目前,专用的TOE网卡解决方案比较少,在能够找到的TOE解决方案中,最高能支持到10Ghz的网络传输速率。该解决方案的缺点是无法动态支持多个IP,即,每次向一个新的IP对应的主机发送数据,需要本机主动提起申请与对应的新IP建立链接关系,否则数据就会始终不能发出。
发明内容
有鉴于此,本发明提供一种数据传输方法及装置,以解决上述提及的至少一个问题。
根据本发明的第一方面,提供一种数据传输方法,所述方法应用于传输控制协议卸载引擎TOE中,所述方法包括:响应于接收到包含目标地址信息和数据存储信息的数据包发送请求,根据当前链路信息判断与目标地址的链路是否已经建立;响应于判断结果为链路未建立,执行与所述目标地址的链路建立操作;响应于判断结果为链路已建立,根据所述目标地址信息生成初始数据包包头、以及根据所述数据存储信息获取待发送数据,其中,所述初始数据包包头至少包括:初始传输控制协议TCP校验和;根据预定传输规则将所述初始数据包包头和所述待发送数据发送至预设发送模块,同时基于校验和生成规则根据所述初始数据包包头和待发送数据生成最终TCP校验和;根据所述最终TCP校验和、所述初始数据包包头和待发送数据生成最终数据包并将所述最终数据包通过超万兆级光收发单元发送至所述目标地址。
根据本发明的第二方面,提供一种基于TOE的数据传输装置,所述装置包括:判断单元,用于响应于接收到包含目标地址信息和数据存储信息的数据包发送请求,根据当前链路信息判断与目标地址的链路是否已经建立;链路建立单元,用于响应于判断结果为链路未建立,执行与所述目标地址的链路建立操作;初始包头生成单元,用于响应于判断结果为链路已建立,根据所述目标地址信息生成初始数据包包头,其中,所述初始数据包包头至少包括:初始TCP校验和;数据获取单元,用于根据所述数据存储信息获取待发送数据;初始数据发送单元,用于根据预定传输规则将所述初始数据包包头和所述待发送数据发送至预设发送模块;最终TCP校验和生成单元,用于基于校验和生成规则根据所述初始数据包包头和待发送数据生成最终TCP校验和;最终数据包生成单元,用于根据所述最终TCP校验和、所述初始数据包包头和待发送数据生成最终数据包;超万兆级光收发单元,用于将所述最终数据包发送至所述目标地址。
根据本发明的第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据传输方法的步骤。
根据本发明的第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述数据传输方法的步骤。
由上述技术方案可知,当接收到数据包发送请求时,首先判断链路是否已经建立,当链路未建立时,先执行与目标地址的链路建立操作;当链路建立完成时,根据数据包发送请求生成初始数据包包头并获取待发送数据,之后将初始数据包包头和待发送数据发送至预设的发送模块,同时根据初始数据包包头和待发送数据生成最终的准确的TCP校验和,并基于最终TCP校验和、初始数据包包头和待发送数据生成最终数据包、之后通过超万兆级光收发单元发送至目标地址,如此,可以克服现有技术中的需要本机主动提起申请与目的IP建立链接关系的问题,通过本发明实施例,可以响应于数据发送请求,在判断链路未建立时自动进行链路的建立,进而通过建立的链路发送数据。
本发明的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本发明的实践而获知。本发明的目的和其它优点可以通过在书面说明及其权利要求书以及附图中具体指出的结构实现到并获得。
本领域技术人员将会理解的是,能够用本发明实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本发明能够实现的上述和其他目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是IP数据包的结构示意图;
图2是TCP数据包的结构示意图;
图3是根据本发明实施例的数据传输方法的流程图;
图4是根据本发明实施例的数据传输装置的结构框图;
图5是根据本发明实施例的链路建立单元42的结构框图;
图6是根据本发明实施例的初始包头生成单元43的结构框图;
图7是根据本发明实施例的最终数据包生成单元47的结构框图;
图8是根据本发明实施例的基于TOE网卡的数据传输系统的示例架构图;
图9是根据本发明实施例的握手包生成示意图;
图10是根据本发明实施例的数据包生成示意图;
图11是根据本发明实施例的基于TOE网卡的数据传输系统的工作流程图;
图12是根据本发明实施例的电子设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在此,还需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
由于目前的TOE解决方案无法动态支持多个IP,导致了每次向一个新的IP对应的主机发送数据,需要本机主动提起申请与对应的新IP建立链接关系,否则数据就会始终无法发出,基于此,本发明实施例提供一种新的基于TOE的数据传输方案,该方案可以在主机向一个新的IP发起数据包发送请求时,由TOE网卡自动得发起与对应链接的三次握手操作,建立网络链接。
需要说明的是,本发明实施例涉及到的握手包和数据包都是基于TCP/IP协议的。其中,握手包是指,如果本机要向另外一台终端传输数据包、但是还没有建立网络链接(在网卡中,没有另外一台终端相应的IP和PORT(端口号)记录),则需要先发送握手包,通过三次握手协议建立网络链接。数据包是指正常发送的包含需要传输的数据的TCP/IP包。图1是IP数据包的结构示意图,图2是TCP数据包的结构示意图,TCP包是IP包的一个子类,TCP包的内容位于IP包中的“用户数据”部分。以下结合附图来详细描述本发明实施例。
图3是根据本发明实施例的数据传输方法的流程图,如图3所示,该方法包括:
步骤301,响应于接收到包含目标地址信息和数据存储信息的数据包发送请求,根据当前链路信息判断与目标地址的链路是否已经建立。
步骤302,响应于判断结果为链路未建立,执行与所述目标地址的链路建立操作。
具体而言,可以基于握手包生成规则根据所述目标地址信息(例如,IP地址和端口号信息)生成握手包;之后将所述握手包发送至目标地址,执行三次握手操作,以建立与目标地址的链路。
在一个实施例中,根据目标地址信息可以计算IP校验和、封装IP包头、填充TCP包头,并由此生成握手包,将握手包发送至目标地址,在握手包发送时,本发明实施例可以同时进行多个链接的建立过程。
步骤303,响应于判断结果为链路已建立,根据所述目标地址信息生成初始数据包包头、以及根据所述数据存储信息获取待发送数据,其中,所述初始数据包包头至少包括:初始TCP校验和。
具体地,可以基于数据包生成规则根据目标地址信息生成初始数据包包头;之后将初始数据包包头缓存至内部存储器,例如,内置的FIFO(First Input First Output,先进先出)存储器。
在一个实施例中,初始数据包包头可以具体包括:IP校验和、封装IP包头、填充TCP包头序列号信息、填充TCP包头应答号信息、填充TCP包头窗口信息。
上述待发送数据可以存储在外部DDR(Double Data Rate,双倍速率)存储器中,这里的数据存储信息具体为DDR中的数据存储地址。
步骤304,根据预定传输规则(例如,预定带宽,每时钟周期64字节)将所述初始数据包包头和所述待发送数据发送至预设发送模块,同时基于校验和生成规则根据所述初始数据包包头和待发送数据生成最终TCP校验和。
在实际操作中,校验和生成规则可以是,例如,根据TCP/IP数据包的TCP包头部分和实际数据(即,上述待发送数据)、通过每16bit取反再叠加来生成最终TCP校验和,因而,初始TCP校验和并不正确,根据初始数据包包头和待发送数据生成的最终TCP校验和才正确。
通过发送数据的同时计算TCP校验和,可以减少内部计算TCP校验和的延时,实现数据的高效发送,提高网络通信带宽。
步骤305,根据所述最终TCP校验和、所述初始数据包包头和待发送数据生成最终数据包并将所述最终数据包通过超万兆级光收发单元发送至所述目标地址。
具体地,将最终TCP校验和替换初始TCP校验和,从而生成正确的数据包包头,并结合待发送数据生成最终数据包。
由以上描述可知,当接收到数据包发送请求时,首先判断链路是否已经建立,当链路未建立时,先执行与目标地址的链路建立操作;当链路建立完成时,根据数据包发送请求生成初始数据包包头并获取待发送数据,之后将初始数据包包头和待发送数据发送至预设的发送模块,同时根据初始数据包包头和待发送数据生成最终的准确的TCP校验和,并基于最终TCP校验和、初始数据包包头和待发送数据生成最终数据包、之后通过超万兆级光收发单元发送至目标地址,如此,可以克服现有技术中的需要本机主动提起申请与目的IP建立链接关系的问题,通过本发明实施例,可以响应于数据发送请求,在判断链路未建立时自动进行链路的建立,进而通过建立的链路发送数据。
基于相似的发明构思,本发明实施例还提供一种基于TOE的数据传输装置,优选地,该装置用于实现上述方法实施例中的流程。
图4是该数据传输装置的结构框图,如图4所示,该装置包括:判断单元41、链路建立单元42、初始包头生成单元43、数据获取单元44、初始数据发送单元45、最终TCP校验和生成单元46、最终数据包生成单元47以及超万兆级光收发单元48,其中:
判断单元41,用于响应于接收到包含目标地址信息和数据存储信息的数据包发送请求,根据当前链路信息判断与目标地址的链路是否已经建立;
链路建立单元42,用于响应于判断结果为链路未建立,执行与所述目标地址的链路建立操作;
初始包头生成单元43,用于响应于判断结果为链路已建立,根据所述目标地址信息生成初始数据包包头,其中,所述初始数据包包头至少包括:初始TCP校验和;
数据获取单元44,用于根据所述数据存储信息获取待发送数据;
初始数据发送单元45,用于根据预定传输规则将所述初始数据包包头和所述待发送数据发送至预设发送模块;
最终TCP校验和生成单元46,用于基于校验和生成规则根据所述初始数据包包头和待发送数据生成最终TCP校验和;
最终数据包生成单元47,用于根据所述最终TCP校验和、所述初始数据包包头和待发送数据生成最终数据包;
超万兆级光收发单元48,用于将所述最终数据包发送至所述目标地址。
由以上描述可知,当接收到数据包发送请求时,判断单元41判断链路是否已经建立,当链路未建立时,链路建立单元42执行与目标地址的链路建立操作;当链路建立完成时,初始包头生成单元43根据数据包发送请求生成初始数据包包头以及数据获取单元44获取待发送数据,之后初始数据发送单元45将初始数据包包头和待发送数据发送至预设的发送模块,同时最终TCP校验和生成单元46根据初始数据包包头和待发送数据生成最终的准确的TCP校验和,随后最终数据包生成单元47基于最终TCP校验和、初始数据包包头和待发送数据生成最终数据包、并通过超万兆级光收发单元48发送至目标地址,如此,可以克服现有技术中的需要本机主动提起申请与目的IP建立链接关系的问题,通过本发明实施例,可以响应于数据发送请求,在判断链路未建立时自动进行链路的建立,进而通过建立的链路发送数据。
具体地,如图5所示,上述链路建立单元42具体包括:握手包生成模块421和握手包发送模块422,其中:
握手包生成模块421,用于基于握手包生成规则根据所述目标地址信息生成握手包;
握手包发送模块422,用于将所述握手包发送至所述目标地址,以建立与所述目标地址的链路。
图6是初始包头生成单元43的具体结构框图,如图6所示,初始包头生成单元43包括:初始包头生成模块431和内部存储器432,其中:
初始包头生成模块431,用于基于数据包生成规则根据所述目标地址信息生成所述初始数据包包头;
内部存储器432,用于缓存所述初始数据包包头。
具体而言,如图7所示,最终数据包生成单元47包括:最终包头生成模块471、最终数据包生成模块472,其中:
最终包头生成模块471,用于根据所述初始数据包包头和所述最终TCP校验和生成最终数据包包头,其中,所述初始TCP校验和被替换为所述最终TCP校验和;
最终数据包生成模块472,用于根据所述最终数据包包头和所述待发送数据生成所述最终数据包。
上述各单元、各模块的具体执行过程,可以参见上述方法实施例中的描述,此处不再赘述。
在实际操作中,上述各单元、各模块可以组合设置、也可以单一设置,本发明不限于此。
为了更好地理解本发明实施例,以下结合图8所示的基于TOE网卡的数据传输系统架构来详细描述本发明实施例。
如图8所示,数据传输系统包括:链路状态判断单元81、TCP/IP编码模块82、DDR控制器83、DDR存储器84、mac_tx模块(或称为发送模块)85以及40G光收发模块86。其中,图中的各链路分别表示:
链路a表示:TCP/IP包请求信号,包括:请求编码握手包和请求编码数据包;
链路b表示:待发送TCP/IP包的IP和PORT;
链路c表示:待发送TCP/IP数据包的数据在DDR中储存的地址和数据长度;
链路d表示:从DDR读取数据;
链路e表示:待发送TCP/IP数据包的数据传输;
链路f表示:由TCP/IP编码模块打包好的TCP/IP包转发,端口位宽为64bit;
链路g表示:发送TCP/IP包至40G光收发模块。
以下详细描述该系统的数据传输流程。
该系统在每次发送数据前,即,生成数据发送请求时,首先通过链路状态判断单元81判断对应目标IP的链路状态,若链路状态判断单元81检测到链接没有建立,则智能选择进入握手包发送流程,待链接建立成功后再进入数据包发送流程;若链路状态判断单元81检测到链接建立,则智能选择进入数据包发送流程。
图9是握手包生成示意图,如图9所示,通过设置链接建立硬件模块(图中未示出),计算IP校验和、封装IP包头、填充TCP包头、握手包发送四级流水,来实现高效的握手包发送。
在一个实施例中,在握手包发送时,该系统可以同时流水多个链接的建立过程。
图10是数据包生成示意图,如图10所示,通过设置编码硬件模块(图中未示出),计算IP校验和、封装IP包头、填充TCP包头序列号信息、填充TCP包头应答号信息、填充TCP包头窗口信息五级流水线生成TCP/IP数据包包头,之后与DDR控制器配合,依次以64字节的形式输出TCP数据包(此时数据包的TCP校验和信息不正确)至发送模块(即,mac_tx模块),在传输的同时计算TCP校验和,最后用TCP校验和覆盖发送模块中接收到的原不正确的TCP校验和,由此可以减少内部计算TCP校验和的延时,实现数据的高效发送,提高网络通信带宽。
图11是根据本发明实施例的基于TOE网卡的数据传输系统的工作流程图,如图11所示:
在初始化待发送数据包时,根据链路状态判断单元81来判断待发送数据包中的目标IP与本机的链接状态,该链路状态判断单元中存储了与本机已建立链接的链路对应IP和端口信息。当判断结果为未连接时,如图11-①,先进行与目标IP的握手建立链接操作,待链接建立后自动发送待发送数据,在具体的握手建立链接操作中,链路状态判断单元81发送请求信号给TCP/IP编码模块82,请求该模块执行握手包流水发送操作,TCP/IP编码模块82会针对对应的IP和PORT(端口),依次执行计算IP校验和、封装IP包头、填充TCP包头,此时TOE网卡已生成一个完整的TCP/IP握手包,该握手包经由与TCP/IP编码模块互联的mac_tx模块发送,该握手包发送也可以作为握手包发送流水线的一级,与TCP/IP编码模块中专用于握手包打包操作的计算IP校验和、封装IP包头、填充TCP包头三级共同组成四级握手包发送流水线,由于是流水线结构,因而本系统也支持与多个目标IP同时进行握手链接操作。
若判断结果为目标IP与本机的链接状态为已连接,如图11-②,则发送请求信号给TCP/IP编码模块82,请求该模块执行数据包流水发送操作,同时发送请求至DDR控制器83从DDR存储器84中读取该数据包待发送的数据。在TCP/IP编码模块82中,为实现数据包发送操作,先计算IP校验和、封装IP包头、填充TCP包头序列号、填充TCP包头应答号、填充TCP包头窗口信息,该操作是通过一个五级流水线实现的,之后TCP/IP编码模块82生成一个包含IP包头和TCP包头的不完整TCP/IP数据包(此时TCP校验和不正确),该模块会暂时将该数据包缓存于模块内置的FIFO中,等待DDR控制器83将数据输入TCP/IP编码模块82,如图11-③(从DDR中取出的待发送数据到达TCP/IP编码模块),TCP/IP编码模块82在收到数据后,取出该数据、同时从FIFO中取出包含IP包头信息和TCP包头信息的不完整TCP/IP数据包,根据先FIFO缓存TCP/IP数据包头、之后数据的顺序,以每时钟周期64字节的带宽向mac_tx模块输出待发送的TCP/IP数据包,在此过程中,每周期叠加每16bit的反码和以最终求的该TCP/IP数据包的TCP校验和。也就是说,在TCP/IP编码模块82将整个数据包传输给mac_tx模块后,才能够计算出正确的TCP校验和,在此之后,TCP/IP编码模块将该校验和传输给mac_tx模块覆盖之前TCP/IP数据包包头中不正确的TCP校验和,至此得到完整正确的TCP/IP数据包,并由mac_tx模块发送给40G光收发模块,以完成最终的发送。
由以上描述可知,在发送TCP数据包时,可以先不计算校验和,在将打包好的TCP数据包传输至发送模块(mac_tx模块)的同时计算校验和,最终将该校验和发送至发送模块(mac_tx模块)覆盖掉原先的不正确校验和。在实际操作中,还可以在mac_tx接收数据的同时计算正确的TCP校验和。
需要说明的是,在本发明实施例中,TCP握手包流水线和TCP数据包流水线是分离的,系统可以分别处理不同请求。
图12是根据本发明实施例的电子设备的示意图。图12所示的电子设备为通用数据处理装置,其包括通用的计算机硬件结构,其至少包括处理器1201和存储器1202。处理器1201和存储器1202通过总线1203连接。存储器1202适于存储处理器1201可执行的一条或多条指令或程序。该一条或多条指令或程序被处理器1201执行以实现上述数据传输方法中的步骤。
上述处理器1201可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器1201通过执行存储器1202所存储的命令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其他装置的控制。总线1203将上述多个组件连接在一起,同时将上述组件连接到显示控制器1204和显示装置以及输入/输出(I/O)装置1205。输入/输出(I/O)装置1205可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出(I/O)装置1205通过输入/输出(I/O)控制器1206与系统相连。
其中,存储器1202可以存储软件组件,例如操作系统、通信模块、交互模块以及应用程序。以上所述的每个模块和应用程序都对应于完成一个或多个功能和在发明实施例中描述的方法的一组可执行程序指令。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现上述数据传输方法的步骤。
综上所述,本发明实施例提出的基于专用TOE网卡的数据信息智能管理系统,通过硬件级别流水线的方式,使得TOE网卡能够支持到40Ghz的传输速率,并且能够在主机向一个新的IP发起数据包发送给请求时,由TOE网卡自动发起与对应链接的三次握手操作,建立网络链接,之后基于建立的网络链接进行发送数据,克服了现有技术中的需要本机主动提起申请与目的IP建立链接关系的问题,并且,本发明实施例在发送数据的同时计算TCP校验和,可以减少内部计算TCP校验和的延时,实现了数据的高效发送,提高了网络通信带宽。
以上参照附图描述了本发明的优选实施方式。这些实施方式的许多特征和优点根据该详细的说明书是清楚的,因此权利要求旨在覆盖这些实施方式的落入其真实精神和范围内的所有这些特征和优点。此外,由于本领域的技术人员容易想到很多修改和改变,因此不是要将本发明的实施方式限于所例示和描述的精确结构和操作,而是可以涵盖落入其范围内的所有合适修改和等同物。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据传输方法,所述方法应用于传输控制协议卸载引擎TOE中,其特征在于,所述方法包括:
响应于接收到包含目标地址信息和数据存储信息的数据包发送请求,根据当前链路信息判断与目标地址的链路是否已经建立;
响应于判断结果为链路未建立,执行与所述目标地址的链路建立操作;
响应于判断结果为链路已建立,根据所述目标地址信息生成初始数据包包头、以及根据所述数据存储信息获取待发送数据,其中,所述初始数据包包头至少包括:初始传输控制协议TCP校验和;
根据预定传输规则将所述初始数据包包头和所述待发送数据发送至预设发送模块,同时基于校验和生成规则根据所述初始数据包包头和待发送数据生成最终TCP校验和;
根据所述最终TCP校验和、所述初始数据包包头和待发送数据生成最终数据包并将所述最终数据包通过超万兆级光收发单元发送至所述目标地址。
2.根据权利要求1所述的方法,其特征在于,执行与所述目标地址的链路建立操作包括:
基于握手包生成规则根据所述目标地址信息生成握手包;
将所述握手包发送至所述目标地址,以建立与所述目标地址的链路。
3.根据权利要求1所述的方法,其特征在于,根据所述目标地址信息生成初始数据包包头包括:
基于数据包生成规则根据所述目标地址信息生成所述初始数据包包头;
将所述初始数据包包头缓存至内部存储器。
4.根据权利要求1所述的方法,其特征在于,根据所述最终TCP校验和、所述初始数据包包头和待发送数据生成最终数据包包括:
根据所述初始数据包包头和所述最终TCP校验和生成最终数据包包头,其中,所述初始TCP校验和被替换为所述最终TCP校验和;
根据所述最终数据包包头和所述待发送数据生成所述最终数据包。
5.一种基于TOE的数据传输装置,其特征在于,所述装置包括:
判断单元,用于响应于接收到包含目标地址信息和数据存储信息的数据包发送请求,根据当前链路信息判断与目标地址的链路是否已经建立;
链路建立单元,用于响应于判断结果为链路未建立,执行与所述目标地址的链路建立操作;
初始包头生成单元,用于响应于判断结果为链路已建立,根据所述目标地址信息生成初始数据包包头,其中,所述初始数据包包头至少包括:初始TCP校验和;
数据获取单元,用于根据所述数据存储信息获取待发送数据;
初始数据发送单元,用于根据预定传输规则将所述初始数据包包头和所述待发送数据发送至预设发送模块;
最终TCP校验和生成单元,用于基于校验和生成规则根据所述初始数据包包头和待发送数据生成最终TCP校验和;
最终数据包生成单元,用于根据所述最终TCP校验和、所述初始数据包包头和待发送数据生成最终数据包;
超万兆级光收发单元,用于将所述最终数据包发送至所述目标地址。
6.根据权利要求5所述的装置,其特征在于,所述链路建立单元包括:
握手包生成模块,用于基于握手包生成规则根据所述目标地址信息生成握手包;
握手包发送模块,用于将所述握手包发送至所述目标地址,以建立与所述目标地址的链路。
7.根据权利要求5所述的装置,其特征在于,所述初始包头生成单元包括:
初始包头生成模块,用于基于数据包生成规则根据所述目标地址信息生成所述初始数据包包头;
内部存储器,用于缓存所述初始数据包包头。
8.根据权利要求5所述的装置,其特征在于,所述最终数据包生成单元包括:
最终包头生成模块,用于根据所述初始数据包包头和所述最终TCP校验和生成最终数据包包头,其中,所述初始TCP校验和被替换为所述最终TCP校验和;
最终数据包生成模块,用于根据所述最终数据包包头和所述待发送数据生成所述最终数据包。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至4中任一项所述数据传输方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至4中任一项所述数据传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010072692.6A CN111277600B (zh) | 2020-01-21 | 2020-01-21 | 数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010072692.6A CN111277600B (zh) | 2020-01-21 | 2020-01-21 | 数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111277600A true CN111277600A (zh) | 2020-06-12 |
CN111277600B CN111277600B (zh) | 2021-07-30 |
Family
ID=70999147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010072692.6A Active CN111277600B (zh) | 2020-01-21 | 2020-01-21 | 数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111277600B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112422550A (zh) * | 2020-11-16 | 2021-02-26 | 成都卓元科技有限公司 | 一种基于视频传输板卡的网络安全传输系统 |
CN113422792A (zh) * | 2021-02-05 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 数据传输方法、装置、电子设备及计算机存储介质 |
CN115865848A (zh) * | 2022-12-09 | 2023-03-28 | 无锡芯光互连技术研究院有限公司 | 一种光数据包交换方法、装置及存储介质 |
CN116866055A (zh) * | 2023-07-26 | 2023-10-10 | 中科驭数(北京)科技有限公司 | 数据泛洪攻击的防御方法、装置、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103368772A (zh) * | 2013-06-26 | 2013-10-23 | 华为技术有限公司 | 半卸载方法、设备及系统 |
CN103414714A (zh) * | 2013-08-07 | 2013-11-27 | 华为数字技术(苏州)有限公司 | 一种报文处理方法、装置和设备 |
CN103546424A (zh) * | 2012-07-10 | 2014-01-29 | 华为技术有限公司 | 一种tcp数据传输方法、tcp卸载引擎及系统 |
US20150365335A1 (en) * | 2012-12-31 | 2015-12-17 | Emulex Corporation | Adaptive Receive Path Learning To Facilitate Combining TCP Offloading And Network Device Teaming |
CN106034084A (zh) * | 2015-03-16 | 2016-10-19 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN106657136A (zh) * | 2017-01-13 | 2017-05-10 | 北京元心科技有限公司 | 终端设备、隐匿信道通信方法及其装置 |
US10320918B1 (en) * | 2014-12-17 | 2019-06-11 | Xilinx, Inc. | Data-flow architecture for a TCP offload engine |
CN110177087A (zh) * | 2019-05-05 | 2019-08-27 | 方一信息科技(上海)有限公司 | 一种基于TOE网卡的Target端协议硬件解析方法 |
-
2020
- 2020-01-21 CN CN202010072692.6A patent/CN111277600B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103546424A (zh) * | 2012-07-10 | 2014-01-29 | 华为技术有限公司 | 一种tcp数据传输方法、tcp卸载引擎及系统 |
US20150365335A1 (en) * | 2012-12-31 | 2015-12-17 | Emulex Corporation | Adaptive Receive Path Learning To Facilitate Combining TCP Offloading And Network Device Teaming |
CN103368772A (zh) * | 2013-06-26 | 2013-10-23 | 华为技术有限公司 | 半卸载方法、设备及系统 |
CN103414714A (zh) * | 2013-08-07 | 2013-11-27 | 华为数字技术(苏州)有限公司 | 一种报文处理方法、装置和设备 |
US10320918B1 (en) * | 2014-12-17 | 2019-06-11 | Xilinx, Inc. | Data-flow architecture for a TCP offload engine |
CN106034084A (zh) * | 2015-03-16 | 2016-10-19 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN106657136A (zh) * | 2017-01-13 | 2017-05-10 | 北京元心科技有限公司 | 终端设备、隐匿信道通信方法及其装置 |
CN110177087A (zh) * | 2019-05-05 | 2019-08-27 | 方一信息科技(上海)有限公司 | 一种基于TOE网卡的Target端协议硬件解析方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112422550A (zh) * | 2020-11-16 | 2021-02-26 | 成都卓元科技有限公司 | 一种基于视频传输板卡的网络安全传输系统 |
CN113422792A (zh) * | 2021-02-05 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 数据传输方法、装置、电子设备及计算机存储介质 |
CN115865848A (zh) * | 2022-12-09 | 2023-03-28 | 无锡芯光互连技术研究院有限公司 | 一种光数据包交换方法、装置及存储介质 |
CN116866055A (zh) * | 2023-07-26 | 2023-10-10 | 中科驭数(北京)科技有限公司 | 数据泛洪攻击的防御方法、装置、设备及介质 |
CN116866055B (zh) * | 2023-07-26 | 2024-02-27 | 中科驭数(北京)科技有限公司 | 数据泛洪攻击的防御方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111277600B (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111277600B (zh) | 数据传输方法及装置 | |
US10868767B2 (en) | Data transmission method and apparatus in optoelectronic hybrid network | |
CN111327603B (zh) | 数据传输方法、装置和系统 | |
CN108028833B (zh) | 一种nas数据访问的方法、系统及相关设备 | |
CN110177087B (zh) | 一种基于TOE网卡的Target端协议硬件解析方法 | |
US7428690B2 (en) | Packet communication apparatus | |
US8804504B1 (en) | System and method for reducing CPU load in processing PPP packets on a SSL-VPN tunneling device | |
US20180157562A1 (en) | Virtual machine-based data transmission method, apparatus and system | |
CN112039722B (zh) | 一种mqtt协议仿真方法及仿真设备 | |
CN110138809A (zh) | 一种面向以太网控制器接收链路的tcp报文拼接系统和方法 | |
CN104954497A (zh) | 一种云存储系统中数据传输方法和系统 | |
JP2008541605A (ja) | 埋め込み型システムのための高速データ処理・通信方法及び装置 | |
CN113347017B (zh) | 一种网络通信的方法、装置、网络节点设备及混合网络 | |
EP4213030A1 (en) | Method and device for data processing | |
Nguyen et al. | Reducing data copies between gpus and nics | |
CN115604070A (zh) | 基于mctp协议的消息传输方法、装置、设备及介质 | |
CN113556403B (zh) | 一种用于分布式训练的通信方法及系统 | |
CN112667359B (zh) | 数据透传方法、电子设备及存储介质 | |
US8904062B2 (en) | Network control model driver | |
WO2023082609A1 (zh) | 一种数据处理方法以及相关设备 | |
CN109831395B (zh) | 一种嵌入式设备与主机间底层网络数据传输系统及方法 | |
KR100649643B1 (ko) | Tcp/ip 가속장치 | |
CN114095129B (zh) | 一种移动端游戏网络传输的通信方法及系统 | |
CN113542412B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
JPWO2021236436A5 (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 |