一种tcp数据传输方法、tcp卸载引擎及系统的制作方法
【专利摘要】本发明的实施例提供一种传输控制协议TCP数据传输方法、TCP卸载引擎及系统,涉及通信领域,能够减少TCP卸载引擎和CPU之间的数据搬移,同时减少CPU对数据的解析工作,从而达到降低CPU处理TCP/IP数据的资源以及减少传输延迟的效果。该方法包括:TCP卸载引擎接收远程设备发送的TCP数据;对所述TCP数据进行TCP卸载;识别所述TCP卸载后的数据,并根据识别结果将所述TCP卸载后的数据发送至CPU或所述CPU下发的存储位置信息对应的存储设备。本发明实施例应用于TCP数据传输。
【专利说明】—种TCP数据传输方法、TCP卸载引擎及系统
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种传输控制协议TCP数据传输方法、TCP卸载引擎及系统。
【背景技术】
[0002]传输控制协议和网际协议协议(TransmissionControl ProtocoI/InternetProtocol,简称TCP/IP)是因特网中最基本的通信协议。但传统的TCP/IP技术在处理网络数据传输时,需要占用大量的中央处理器(Central Processing Unit,简称CPU)资源。这是因为对TCP数据的处理,大多是通过软件处理方式,即由运行于处理器之上的TCP/IP协议栈进行处理,软件处理方式主要包括三方面:协议处理、中断处理和数据复制,给系统带来了庞大的开销。
[0003]近年来,视频流量的增长占网络流量增长的主要部分,另外,网络存储的应用范围越来越广,这两类网络应用对带宽、响应时间的要求越来越高。但是由于这两类网络应用大多采用TCP传输,因此对TCP数据的处理成为一个主要的瓶颈。这两类网络应用还有一个特点,即CPU没有必要对其传输的所有数据进行处理,例如对于文件内容、视频编码格式、视频内容等TCP数据,而传统的方法需要将所有的TCP数据交由CPU进行处理,增加了存储复制的开销,同时增加了 CPU对传送的数据进行处理带来的额外负担。
[0004]为了满足网络流量和网络通信速度的飞速增长,一种将TCP数据的处理移到硬件上实现的技术应运而生,即TCP卸载引擎(TCP offload engine,简称TOE)技术。
[0005]TOE技术旨在减轻CPU处理TCP/IP的消耗,为此,将处理TCP/IP过程中比较繁琐的工作交由TOE处理,例如TCP建链断链、乱序重组等TCP应答和状态管理。现有的TOE设计采用了零复制套接字的技术,在接收过程中,TOE收到的数据从TOE缓存直接通过DMA (Direct Memory Access直接内存访问)到用户缓存空间;发送过程中,待发数据从用户缓存空间直接通过DMA到TOE缓存,TOE负责将数据打包成TCP报文发送。零复制套接字技术避免了数据在用户缓存空间和协议栈之间的搬移,减少对CPU的占用。但是,在发送数据和接收数据时,TOE还是会将所有数据都通过TOE的内存与用户缓存空间进行传输,仍然会占用较大的CPU开销以及可能存在较大的传输延时。且对于接收的数据,CPU需要对全部数据进行解析后才能提取出必须CPU处理的数据,然后交给应用程序或协议栈处理,增加了 CPU的处理开销。
【发明内容】
[0006]本发明的实施例提供一种传输控制协议TCP数据传输方法、TCP卸载引擎及系统,能够减少TCP卸载引擎和CPU之间的数据搬移,同时减少CPU对数据的解析工作,从而达到降低CPU处理TCP/IP数据的资源以及减少传输延迟的效果。
[0007]为达到上述目的,本发明的实施例采用如下技术方案:
[0008]第一方面,提供一种传输控制协议TCP数据传输方法,包括:[0009]TCP卸载引擎接收远程设备发送的传输控制协议TCP数据;
[0010]对所述TCP数据进行TCP卸载;
[0011]识别所述TCP卸载后的数据,并根据识别结果将所述TCP卸载后的数据发送至CPU或所述CPU下发的存储位置信息对应的存储设备。
[0012]在第一方面的一种可能实现方式中,所述识别所述TCP卸载后的数据,并根据识别结果将所述TCP卸载后的数据发送至CPU或所述CPU下发的存储位置信息对应的存储设备包括:
[0013]识别所述TCP卸载后的数据;
[0014]根据识别结果将所述TCP卸载后的数据中的信令数据或关键数据发送至CPU,其中所述关键数据为除所述信令数据和所述内容数据外其他需要CPU处理的数据;
[0015]根据识别结果将所述TCP卸载后的数据中的内容数据发送至所述CPU下发的存储位置信息对应的存储设备。
[0016]第二方面,提供一种传输控制协议TCP数据传输方法,包括:
[0017]获取CPU指示的数据;
[0018]将所述数据进行TCP封装并发送至远程设备。
[0019]在第二方面的第一种可能实现方式中,所述获取CPU指示的数据包括:接收CPU发送的存储位置信息;读取所述存储位置信息指定的存储空间中的内容数据;
[0020]相应地,所述将所述数据进行TCP封装并发送至远程设备包括:将所述内容数据进行TCP封装并发送至远程设备。
[0021]在第二方面的第二种可能实现方式中,所述获取CPU指示的数据包括:接收CPU发送的信令净荷数据;
[0022]相应地,所述将所述数据进行TCP封装并发送至远程设备包括:将所述信令净荷数据进行TCP封装并发送至远程设备。
[0023]第三方面,提供一种传输控制协议TCP卸载引擎,包括状态管理单元,解析单元和发送单元;其中:
[0024]所述状态管理单元,用于接收远程设备的TCP数据,对所述TCP数据进行TCP卸载;
[0025]解析单元,用于识别所述TCP卸载后的数据,并根据识别结果将所述TCP卸载后的数据发送至CPU下发的存储位置信息对应的存储设备或通过所述状态管理单元发送至所述 CPU ;
[0026]所述状态管理单元,还用于获取CPU指示的数据并将所述数据进行TCP封装;
[0027]所述发送单元,用于接收所述状态管理单元TCP封装后的数据并发送至远程设备。
[0028]在第三方面的第一种可能实现方式中,所述解析单元,具体用于识别所述TCP卸载后的数据,根据识别结果将所述TCP卸载后的数据中的内容数据发送至所述CPU下发的存储位置信息对应的存储设备或通过所述状态管理单元将所述TCP卸载后的数据中的信令数据或所述关键数据发送至CPU,其中所述关键数据为除所述信令数据和所述内容数据外其他需要CPU处理的数据。
[0029]根据第三方面或第三方面的第一种可能实现方式,在第三方面的第二种可能实现方式中,所述状态管理单元,具体用于接收CPU发送的所述存储位置信息并发送至所述发送单元;接收所述发送单元发送的内容数据,并对所述内容数据进行TCP封装并通过所述发送单元发送至远程设备;所述发送单元,具体用于接收所述状态管理单元发送的所述存储位置信息,读取所述存储位置信息指定的存储空间中的内容数据并将所述内容数据发送至所述状态管理单元。
[0030]根据第三方面的任一种可能实现方式,在第三方面的第三种可能实现方式中,所述状态管理单元,具体用于接收CPU发送的信令净荷数据,并将所述信令净荷数据进行TCP封装;
[0031]所述发送单元,具体用于接收所述状态管理单元发送的所述TCP封装后的信令净荷数据并发送至远程设备。
[0032]第四方面,提供一种数据传输系统,包括本地设备和远程设备,
[0033]所述本地设备包括通过数据总线连接的CPU,上述任一所述传输控制协议TCP卸载引擎及存储设备。
[0034]本发明实施例提供的一种传输控制协议TCP数据传输方法、TCP卸载引擎及系统,通过TCP卸载引擎对不同类型的数据分别处理,减少TCP卸载引擎和CPU之间的数据搬移,同时减少CPU对数据的解析工作,从而达到降低CPU处理TCP数据占用的资源以及减少传输延迟的效果。
【专利附图】
【附图说明】
[0035]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0036]图1为本发明实施例提供的一种传输控制协议TCP数据传输方法流程示意图;
[0037]图2为本发明实施例提供的另一种传输控制协议TCP数据传输方法流程示意图;
[0038]图3为本发明实施例提供的又一种传输控制协议TCP数据传输方法流程示意图;
[0039]图4为本发明实施例提供的再一种传输控制协议TCP数据传输方法流程示意图;
[0040]图5为本发明实施例提供的一种传输控制协议TCP卸载引擎结构示意图;
[0041]图6为本发明实施例提供的一种数据传输系统结构示意图;
[0042]图7为本发明实施例提供的另一种数据传输系统结构示意图;
[0043]图8为本发明实施例提供的一种传输控制协议TCP数据传输方法应用流程示意图;
[0044]图9为本发明实施例提供的另一种传输控制协议TCP数据传输方法应用流程示意图。
【具体实施方式】
[0045]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046]本发明实施例提供一种传输控制协议TCP数据传输方法,如图1所示,所述方法包括:
[0047]10UTCP卸载引擎接收远程设备发送的TCP数据。
[0048]当然所述远程设备包括:服务器,终端设备等。
[0049]102、TCP卸载引擎对所述TCP数据进行TCP卸载。
[0050]所述TCP卸载为数据传输过程中的协议处理,包括计算校验和用于维护TCP可靠性传输的重传、乱序报文重组等。
[0051]103、TCP卸载引擎识别所述TCP卸载后的数据,并根据识别结果将所述TCP卸载后的数据发送至CPU或所述CPU下发的存储位置信息对应的存储设备。
[0052]示例性的,通过TCP卸载引擎卸载后的数据可以分成信令数据、关键数据和内容数据,其中关键数据为除信令数据和内容数据外其他需要CPU处理的数据,这里可以为运用于数据传输和TCP卸载引擎上的业务软件必须获取并处理的数据,例如flash视频(flash video,简称fIv)元数据,其中flash指多媒体(macromedia)公司推出的交互式矢量图和网络动画的标准。
[0053]进一步可选的,步骤103包括:TCP卸载引擎识别TCP卸载后的数据,根据识别结果将TCP卸载后的数据中的信令数据或关键数据发送至CPU,其中关键数据为除信令数据和内容数据外其他需要CPU处理的数据;将TCP卸载后的数据中的内容数据发送至CPU下发的存储位置信息对应的存储设备。
[0054]本发明实施例提供的传输控制协议TCP数据传输方法,TCP卸载引擎直接将接收到的报文数据进行TCP卸载分类,将分类后的数据中需要由CPU处理的信令数据和关键数据交由CPU处理,减少TCP卸载引擎和CPU之间的数据搬移,同时减少CPU对数据的解析工作,少了 CPU对数据的处理步骤和频率,从而达到降低CPU处理TCP/IP数据占用的资源以及降低传输延迟的效果。
[0055]本发明实施例提供另一种传输控制协议TCP数据传输方法,如图2所示,所述方法包括:
[0056]201、TCP卸载引擎获取CPU指示的数据。
[0057]202、TCP卸载引擎将所述数据进行TCP封装并发送至远程设备。
[0058]同样的所述远程设备包括:服务器,终端设备等。
[0059]本发明实施例提供传输控制协议TCP数据传输方法,TCP卸载弓I擎根据CPU发送指示对数据进行处理,减少了 CPU对数据的处理步骤,从而达到降低CPU处理TCP/IP数据占用的资源以及降低传输延迟的效果。
[0060]201中所述CPU指示的数据可以是内容数据,也可以是信令净荷数据。
[0061]在图2所示的传输控制协议TCP数据传输方法基础上,可选的,参照图3所示,所述方法具体包括:
[0062]301、TCP卸载引擎接收CPU发送的存储位置信息。
[0063]302、TCP卸载引擎读取所述存储位置信息指定的存储空间中的内容数据。
[0064]303、TCP卸载引擎将所述内容数据进行TCP封装并发送至远程设备。
[0065]在图2所示的传输控制协议TCP数据传输方法基础上,可选的,参照图4所示,所述方法具体包括:
[0066]401、TCP卸载引擎接收CPU发送的信令净荷数据;
[0067]402、TCP卸载引擎将所述信令净荷数据进行TCP封装并发送至远程设备。
[0068]所述TCP卸载引擎通过对CPU发送的不同类型的数据进行不同的方式处理并发送,减少TCP卸载引擎和CPU之间的数据搬移,同时减少CPU对数据的解析工作,从而达到降低CPU处理TCP/IP数据占用的资源以及降低传输延迟的效果。
[0069]本发明实施例提供一种传输控制协议TCP卸载引擎,如图5所示,包括状态管理单元51、解析单元52和发送单元53,其中:
[0070]所述状态管理单元51,用于接收远程设备的TCP数据,对所述TCP数据进行TCP卸载;
[0071 ] 所述解析单元52,用于识别所述TCP卸载后的数据,并根据识别结果将所述TCP卸载后的数据发送至CPU下发的存储位置信息对应的存储设备或通过状态管理单元51发送至所述CPU ;
[0072]所述状态管理单元51,还用于获取CPU指示的数据并将所述数据进行TCP封装;
[0073]所述发送单元53,用于接收所述TCP封装后的数据并发送至远程设备。
[0074]可选的,所述解析单元52,具体用于识别所述TCP卸载后的数据,根据识别结果将TCP卸载后的数据中的内容数据发送至CPU下发的存储位置信息对应的存储设备或通过所述状态管理单元51将TCP卸载后的数据中的信令数据或关键数据发送至CPU,其中关键数据为除信令数据和内容数据外其他需要CPU处理的数据。
[0075]所述关键数据可以为运用于数据传输和TCP卸载引擎上的业务软件必须获取并处理的数据,例如flv元数据。
[0076]所述TCP卸载引擎识别TCP卸载后的数据,将需要由CPU处理的信令数据和关键数据交由CPU处理,减少TCP卸载引擎和CPU之间的数据搬移,同时减少CPU对数据的解析工作,从而达到降低CPU处理TCP/IP数据占用的资源以及降低传输延迟的效果。
[0077]此外,可选的所述状态管理单元51,具体用于接收CPU发送的所述存储位置信息并发送至所述发送单元53 ;接收所述发送单元53发送的内容数据,并对所述内容数据进行TCP封装并通过所述发送单元53发送至远程设备;所述发送单元53,具体用于接收所述状态管理单元发送的所述存储位置信息,读取所述存储位置信息指定的存储空间中的内容数据并将所述内容数据发送至所述状态管理单元51。
[0078]这里由TCP卸载引擎根据CPU下发的位置信息数据将存储设备中的内容数据发送至远程设备,避免了因CPU直接参与对内容数据的处理而产生的内容数据在TCP卸载引擎和CPU之间的搬移,从而达到降低CPU处理TCP/IP数据占用的资源以及降低传输延迟的效
果O
[0079]可选的,所述状态管理单元51,具体还用于接收CPU发送的信令净荷数据,并将信令净荷数据进行TCP封装;
[0080]所述发送单元53,具体还用于将TCP封装后的内容数据发送至远程设备。
[0081]由所述TCP卸载引擎将CPU发送的信令净荷数据进行封装,减少了 CPU处理TCP/IP数据的步骤,从而达到降低CPU处理TCP/IP数据的资源以及减少传输延迟的效果。
[0082]本发明实施例提供的一种数据传输系统,参照图6所示,所述系统包括网络连接的本地设备I和远程设备2,所述本地设备I包括通过数据总线连接的CPU61、如本发明图5所示的TCP卸载引擎62及存储设备63。
[0083]其中,所述TCP卸载引擎62用于接收远程设备I发送的传输控制协议TCP数据;对所述TCP数据进行TCP卸载;识别所述TCP卸载后的数据,并根据识别结果将所述TCP卸载后的数据发送至CPU61或所述CPU61下发的存储位置信息对应的存储设备63。
[0084]所述TCP卸载引擎62具体用于识别所述TCP卸载后的数据;根据识别结果将所述卸载后的TCP数据中的信令数据或关键数据发送至CPU61,其中所述关键数据为除所述信令数据和所述内容数据外其他需要CPU处理的数据;根据识别结果将所述卸载后的数据中的内容数据发送至所述CPU61下发的存储位置信息对应的存储设备63。
[0085]本发明实施例提供的数据传输系统,通过所述TCP卸载引擎识别TCP卸载后的数据,将需要由CPU处理的信令数据和关键数据交由CPU处理,减少TCP卸载引擎和CPU之间的数据搬移,同时减少CPU对数据的解析工作,从而达到降低CPU处理TCP/IP数据占用的资源以及降低传输延迟的效果。
[0086]此外,TCP卸载引擎62还用于获取CPU指示的数据;将所述数据进行TCP封装并发送至远程设备2。
[0087]其中,所述TCP卸载引擎62具体用于接收CPU61发送的存储位置信息数据;读取所述存储位置信息数据指定的存储空间中的内容数据;将所述内容数据进行TCP封装并发送至远程设备2。
[0088]由所述TCP卸载引擎根据CPU下发的位置信息数据将存储设备中的内容数据发送至远程设备,避免了因CPU直接参与对内容数据的处理而产生的内容数据在TCP卸载引擎和CPU之间的搬移,从而达到降低CPU处理TCP/IP数据占用的资源以及降低传输延迟的效
果O
[0089]所述TCP卸载引擎62具体还用于接收CPU61发送的信令净荷数据;将所述信令净荷数据进行TCP封装并发送至远程设备2。
[0090]由所述TCP卸载引擎将CPU发送的信令净荷数据进行封装,减少了 CPU处理TCP/IP数据的步骤,从而达到降低CPU处理TCP/IP数据的资源以及减少传输延迟的效果。
[0091]在图6所示系统基础上,本发明的实施例还提供另一种数据传输系统,参照图7所示,所述系统包括网络连接的本地设备I和远程设备2,所述本地设备I包括通过数据总线连接的CPU71、TCP卸载引擎72及存储设备73,
[0092]如图7所示,所述CPU71包括,TOE驱动单元711、应用程序单元712和SOCKET单元713 ;所述TCP卸载引擎72包括,状态管理单元721、解析单元722和发送单元723 ;所述存储设备73,包括存储控制器731和存储器732 ;
[0093]CPU71通过TOE驱动单元711与TCP卸载引擎72连接,所述TOE驱动单元711包括对TOE的操作控制软件,CPU71通过TOE驱动单元711建立与TOE的连接向TOE发出控制指令,这里CPU71通过TOE驱动单元711直接与TOE的状态管理单元进行数据交互,CPU端的应用程序单元712通过套接字方式(其中套接字方式采用如图7所示的SOCKET单元713实现)调用TOE驱动,进而实现CPU与TOE之间的数据交互,其中TCP卸载引擎72的工作方法可以参考图7对应的实施例这里不再赘述。
[0094]本发明实施例提供的数据传输系统,通过TCP卸载引擎对不同类型的数据分别处理,减少TCP卸载引擎和CPU之间的数据搬移,同时减少CPU对数据的解析工作,从而达到降低CPU处理TCP数据占用的资源以及减少传输延迟的效果。
[0095]示例性的,如图8所示,采用本发明实施例提供的TCP数据传输方法、TCP卸载引擎及系统对超文本传送协议(Hypertext Transport Protocol,简称HTTP)视频摄入存储过程的CPU与TCP卸载引擎及远程设备的数据交互可以采用以下流程:
[0096]80KCPU向TCP卸载引擎下发建立TCP链接命令,命令内容包括远程设备的IP地址、TCP端口及本地IP地址、TCP端口 ;
[0097]802、远程设备与TCP卸载引擎完成三次握手。
[0098]所述三次握手包括:
[0099]第一次握手:建立连接时,TCP卸载引擎发送SYN(Synchronize SequenceNumbers,同步序列编号)包到远程设备,其中包括TCP卸载引擎的SYN,并进入SYN发送状态,等待远程设备确认;
[0100]第二次握手:远程设备收到所述SYN包,必须确认TCP卸载引擎的SYN,同时所述远程设备发送一个SYN确认包,其中包括远程设备的SYN和确认信息,确认信息为:TCP卸载引擎的SYN+1,此时所述远程设备进入SYN回复状态;第三次握手:TCP卸载引擎收到所述远程设备的SYN确认包,向所述远程设备发送确认包,所述确认包发送完毕,TCP卸载引擎和所述远程设备进入连接成功状态,完成三次握手。
[0101]803、TCP卸载引擎向CPU上报连接成功命令。
[0102]804、CPU下发会话层或表示层或应用层信令净荷,TCP卸载引擎将所述信令净荷封装成信令报文发送至远程设备。
[0103]所述步骤804为采用上述实施例中401和402,首先,TCP卸载引擎接收CPU发送的会话层或表示层或应用层信令净荷,其次、TCP卸载引擎将所述信令净荷进行TCP封装,封装成信令报文并发送至远程设备,所述信令净荷可以为会话层HTTP获取信令,HTTP获取信令是HTTP协议中用于向特定的资源发起请求的一种方法。
[0104]805、远程设备在接收到TCP卸载引擎发送的会话层或表示层或应用层信令报文后,向TCP卸载引擎发送信令报文响应;TCP卸载引擎对信令报文响应卸载生成信令净荷响应并发送至CPU。
[0105]这里采用上述实施例中如图1所示的方法,首先,TCP卸载引擎接收远程设备发送的会话层或表示层或应用层信令报文响应(当然这里的信令报文响应为HTTP响应),TCP卸载引擎对所述信令报文响应进行TCP卸载得到信令净荷响应;其次、TCP卸载引擎将卸载后的数据进行分类识别,这里识别的结果只有信令数据即所述信令净荷响应,TCP卸载引擎将所述信令净荷响应发送至CPU。
[0106]806,CPU接收到信令报文净荷,解析并处理信令报文净荷后,向TCP卸载引擎下发内容数据存储位置信息。
[0107]807、远程设备将TCP数据报文发送至TCP卸载引擎,TCP卸载引擎完成应答、并对所述TCP数据报文进行乱序重排等TCP卸载处理,并对卸载后的数据进行分类识别。
[0108]所述TCP数据报文主要为内容数据报文,当然内容数据报文经TCP卸载后得到对应的内容数据,这里内容数据可以为媒体数据;同时所述TCP数据报文也包括和内容数据相关的关键数据报文,当然关键数据报文经TCP卸载后得到对应的关键数据,例如当媒体数据为flv视频格式时,关键数据为flv元数据,当媒体数据为无损音频压缩编码(FreeLossless Audio Codec,简称FLAC)格式时,关键数据为FLAC元数据。
[0109]808、TCP卸载引擎将识别的内容数据发送至CPU指定的存储设备的存储空间。
[0110]所述存储设备可以为内存、硬盘等;
[0111]所述步骤807和808的处理过程可以采用上述实施例中如图1所述的方法进行处理,这里TCP卸载引擎完成应答后(这里的应答一般为确认信息),根据上述实施例提供的方法,首先TCP卸载引擎接收远程设备发送的数据报文卸载,其次、TCP卸载引擎将卸载后的数据进行分类识别,这里识别的结果包括内容数据、关键数据,最后TCP卸载引擎将内容数据(当然参照807,这里的内容数据可以为媒体数据即摄入的视频数据)发送到步骤806中CPU发送的内容数据存储位置信息对应的存储设备进行存储;并将关键数据发送到CPU。
[0112]809、远程设备在发送完TCP数据报文后,TCP卸载引擎发起与远程设备四次握手断开连接。
[0113]由于TCP连接是全双工的,因此远程设备与TCP卸载引擎断开连接时每个方向都必须单独关闭数据流的发送,这个原则是当一方完成它的数据发送任务后就发送一个结束信息来终止这个方向的连接。当一方收到一个结束信息只意味着这一方不能接收数据,但仍能发送数据。因此首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。因此四次握手过程如下:
[0114]第一次握手:TCP卸载引擎发送一个结束信息至远程设备,用来关闭TCP卸载引擎到远程设备的数据传送。第二次握手:远程设备收到这个结束信息,回复一个确认信息。第三次握手:远程设备关闭与TCP卸载引擎的连接,发送一个结束信息给TCP卸载引擎。第四次握手:TCP卸载引擎回复一个确认信息给远程设备。
[0115]810、TCP卸载引擎向CPU上报断开连接信息。
[0116]在以上过程中通过TCP卸载引擎对传输的不同类型的数据分别处理,减少TCP卸载引擎和CPU之间的数据搬移,同时减少CPU对数据的解析工作,从而达到降低CPU处理TCP/IP数据占用的资源以及减少传输延迟的效果。
[0117]具体的,TCP卸载弓I擎在对HTTP视频摄入存储过程中,直接根据CPU下发的内容数据的位置信息将远程设备发送的内容数据进行存储,而内容数据不必再通过CPU的处理,减少TCP卸载引擎和CPU之间的数据搬移;此外在与远程设备的报文交互过程中,直接对收到的报文进行卸载和识别,减少了 CPU对数据的解析工作,从而达到降低CPU处理TCP/IP数据占用的资源以及减少传输延迟的效果。
[0118]示例性的,如图9所示,采用本发明实施例提供的TCP数据传输方法、TCP卸载引擎及系统对HTTP视频流化过程的CPU与TCP卸载引擎及远程设备的数据交互可以采用以下流程:
[0119]90KCPU向TCP卸载引擎下发建立TCP监听端口命令,命令内容包括本地IP地址和TCP端口 ;
[0120]902、远程设备与TCP卸载引擎完成三次握手。
[0121]所述三次握手过程可以参考802,在此不再赘述。
[0122]903、TCP卸载引擎向CPU上报连接成功命令。
[0123]904、远程设备发送会话层或表示层或应用层信令报文,TCP卸载引擎将所述信令报文进行TCP卸载和分类识别,将识别的信令净荷上传至CPU ;
[0124]该步骤为采用上述实施例中如图1所示的方法,首先,TCP卸载引擎接收远程设备发送的会话层或表示层或应用层信令报文,当然这里的信令报文为可以为会话层HTTP获取信令,其次,TCP卸载引擎将所述信令报文进行TCP卸载,卸载成信令净荷并发送至CPU,当然这里的信令报文为HTTP获取报文。
[0125]905、CPU在接收到TCP卸载引擎发送的所述信令净荷后,向TCP卸载引擎发送信令净荷响应。
[0126]906、TCP卸载引擎对所述信令净荷响应进行TCP封装,并发送至远程设备。
[0127]这里以上步骤905和906可以采用上述实施例中如图3所示的方法,首先,TCP卸载引擎接收CPU发送的信令净荷响应(当然这里的信令净荷响应为HTTP响应),TCP卸载引擎对所述信令净荷响应进行TCP封装得到信令报文响应;其次、TCP卸载引擎将封装后的所述信令报文响应发送至远程设备。
[0128]907、CPU向TCP卸载引擎下发读取内容数据的位置信息。
[0129]908、TCP卸载引擎通过所述CPU下发的位置信息,读取所述位置信息指示的存储设备中包含的内容数据。
[0130]909,TCP卸载引擎将所述读取的内容数据进行TCP封装成内容数据报文并发送至远程设备。
[0131]当然在视频流化的过程中这里的内容数据主要为媒体流数据,内容数据报文主要为媒体数据报文。
[0132]以上步骤907、908和909的处理过程可以采用上述实施例中如图3所述的方法进行处理,TCP卸载引擎接收到CPU发送的存储位置信息后,首先根据存储位置信息读取对应的存储设备中的内容数据,其次,TCP卸载引擎将读取的数据进行TCP封装,并将封装后的内容数据发送至远程设备。
[0133]进一步的,远程设备在接收到报文形式的数据包以后回复确认信息响应。
[0134]910、TCP卸载引擎在发送完数据后与远程设备进行四次握手断开连接。
[0135]其中四次握手的过程可以参考步骤809,这里不再赘述。
[0136]911、TCP卸载引擎向CPU上报断开连接信息。
[0137]在以上过程中通过TCP卸载引擎对传输的不同类型的数据分别处理,减少TCP卸载引擎和CPU之间的数据搬移,同时减少CPU对数据的解析工作,从而达到降低CPU处理TCP/IP数据占用的资源以及减少传输延迟的效果。
[0138]具体的,TCP卸载引擎在对HTTP视频摄入存储过程中,直接根据CPU下发的内容数据的位置信息将内容数据封装并发送,而不必再将内容数据在通过CPU的处理,减少TCP卸载引擎和CPU之间的数据搬移;此外在与远程设备的报文交互过程中直接对收到的报文进行卸载和识别,减少了 CPU对数据的解析工作,从而达到降低CPU处理TCP/IP数据占用的资源以及减少传输延迟的效果。
[0139]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。[0140]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【权利要求】
1.一种传输控制协议TCP数据传输方法,其特征在于,包括: TCP卸载引擎接收远程设备发送的TCP数据; 对所述TCP数据进行TCP卸载; 识别所述TCP卸载后的数据,并根据识别结果将所述TCP卸载后的数据发送至CPU或所述CPU下发的存储位置信息对应的存储设备。
2.根据权利要求1所述方法,其特征在于,所述识别所述TCP卸载后的数据,并根据识别结果将所述TCP卸载后的数据发送至CPU或所述CPU下发的存储位置信息对应的存储设备包括: 识别所述TCP卸载后的数据; 根据识别结果将所述TCP卸载后的数据中的信令数据或关键数据发送至CPU,其中所述关键数据为除所述信令数据和所述内容数据外其他需要CPU处理的数据; 根据识别结果将所述TCP卸载后的数据中的内容数据发送至所述CPU下发的存储位置信息对应的存储设备。
3.一种传输控制协议TCP数据传输方法,其特征在于,包括: 获取CPU指示的数据; 将所述数据进行TCP封装并发送至远程设备。
4.根据权利要求3所述的方法,其特征在于, 所述获取CPU指示的数据包括:接收CPU发送的存储位置信息;读取所述存储位置信息指定的存储空间中的内容数据; 相应地,所述将所述数据进行TCP封装并发送至远程设备包括:将所述内容数据进行TCP封装并发送至远程设备。
5.根据权利要求3所述的方法,其特征在于,所述获取CPU指示的数据包括:接收CPU发送的信令净荷数据; 相应地,所述将所述数据进行TCP封装并发送至远程设备包括:将所述信令净荷数据进行TCP封装并发送至远程设备。
6.一种传输控制协议TCP卸载引擎,其特征在于,包括状态管理单元,解析单元和发送单元;其中: 所述状态管理单元,用于接收远程设备的TCP数据,对所述TCP数据进行TCP卸载; 解析单元,用于识别所述TCP卸载后的数据,并根据识别结果将所述TCP卸载后的数据发送至CPU下发的存储位置信息对应的存储设备或通过所述状态管理单元发送至所述CPU ; 所述状态管理单元,还用于获取CPU指示的数据并将所述数据进行TCP封装; 所述发送单元,用于接收所述状态管理单元TCP封装后的数据并发送至远程设备。
7.根据权利要求6所述的TCP卸载引擎,其特征在于, 所述解析单元,具体用于识别所述TCP卸载后的数据,根据识别结果将所述TCP卸载后的数据中的内容数据发送至所述CPU下发的存储位置信息对应的存储设备或通过所述状态管理单元将所述TCP卸载后的数据中的信令数据或所述关键数据发送至CPU,其中所述关键数据为除所述信令数据和所述内容数据外其他需要CPU处理的数据。
8.根据权利要求6或7所述的TCP卸载引擎,其特征在于,所述状态管理单元,具体用于接收CPU发送的所述存储位置信息并发送至所述发送单元;接收所述发送单元发送的内容数据,并对所述内容数据进行TCP封装并通过所述发送单元发送至远程设备;所述发送单元,具体用于接收所述状态管理单元发送的所述存储位置信息,读取所述存储位置信息指定的存储空间中的内容数据并将所述内容数据发送至所述状态管理单元。
9.根据权利要求6至8任一项所述的TCP卸载引擎,其特征在于, 所述状态管理单元,具体用于接收CPU发送的信令净荷数据,并将所述信令净荷数据进行TCP封装; 所述发送单元,具体用于接收所述状态管理单元发送的所述TCP封装后的信令净荷数据并发送至远程设备。
10.一种数据传输系统,其特征在于,包括本地设备和远程设备, 所述本地设备包括通过数据总线连接的CPU,如权利要求6至9任一项所述的传输控制协议TCP卸载引擎及存储设备 。
【文档编号】H04L29/06GK103546424SQ201210237465
【公开日】2014年1月29日 申请日期:2012年7月10日 优先权日:2012年7月10日
【发明者】罗海, 胡新宇, 魏启坤, 张亮 申请人:华为技术有限公司