一种数据传输方法及装置制造方法及图纸

技术编号:13873262 阅读:51 留言:0更新日期:2016-10-21 09:51
本发明专利技术的实施例提供一种数据传输方法及装置,涉及通信技术领域,解决了在多核应用场景中,多个CPU的资源利用率较低的问题。该方案包括:接收在第一TCP连接上传输的第一TCP报文;在本地存储的连接信息表中查找与第一TCP连接对应的第一CPU的标识和第一地址信息,连接信息表中包括第一TCP连接和第一CPU的标识的对应关系,以及第一TCP连接和第一地址信息的对应关系;将第一TCP报文中的数据存储在第一地址信息指示的存储位置中;根据第一CPU的标识向第一CPU发起第一中断请求,触发第一CPU根据第一地址信息从内存中获取第一TCP报文中的数据。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及一种数据传输方法及装置
技术介绍
TOE(Transmission Control Protocol Offload Engine,传输控制协议卸载引擎,简称TCP卸载引擎)用于将CPU上关于TCP/IP的部分处理任务转移到专门的单元上进行。以集成有TOE的网卡为例,参考图1,通过采用配有TOE的TOE网卡,包括TCP层和IP层在内的四层处理任务都可以从主机CPU转移到该TOE网卡,大大减轻了主机CPU的处理负担。在包含多个CPU的多核系统中,例如Soc(system on chip,片上系统)或设有多个CPU的服务器中,如图2所示,通常TOE挂载在发送端或接收端的系统总线上,分别与存储器和多个CPU进行通信。在这种应用场景下,需要发送端与接收端之间建立TCP连接进行数据传输,此时,发送端与接收端内的TOE单元通过中断的方式触发CPU进行相关应用的数据处理,而这个中断通常是绑定在某一个CPU上进行的,当传输的数据非常多时,中断所绑定的CPU的资源占用率就非常高,导致整个多核应用场景的数据性能都受制于单个CPU。为解决上述问题,以发送端请求建立一条TCP连接为例,在发送端的TOE与接收端经过三次握手建立TCP连接后,发送端的TOE上报中断给绑定的CPU1,以使得CPU1在该TCP连接上发送数据,由于执行各种数据传输的TCP连接的中断均绑定在CPU1上,当CPU1的占用率达到阈值后,CPU1通过预置的任务调度算法,将CPU1内的部分数据传输进程迁移到其他CPU上,完成CPU1的负载均衡,然而,CPU1使用任务调度算法仍然需要消耗额外的CPU1的资源,而且,在CPU1的占用率未达到阈值前,只能使用CPU1处理所有TCP连接的中断请求,无法
充分利用多核系统中其他CPU的资源,降低了多核系统中CPU的资源利用率。
技术实现思路
本专利技术的实施例提供一种数据传输方法及装置,解决了在多核应用场景中,由于在各种数据传输的连接上传输数据均需与统一的CPU绑定进行中断操作,而导致CPU的资源利用率降低的问题。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,本专利技术的实施例提供一种数据传输方法,包括:传输控制协议卸载引擎TOE接收在第一传输控制协议TCP连接上传输的第一TCP报文;所述TOE在本地存储的连接信息表中查找与所述第一TCP连接对应的第一CPU的标识和第一地址信息,所述连接信息表中包括所述第一TCP连接和第一CPU的标识的对应关系,以及所述第一TCP连接和所述第一地址信息的对应关系,其中,所述第一CPU的标识用于指示处理所述第一TCP连接上传输的报文数据的CPU,所述第一地址信息为第一CPU预先确定的用于指示通过所述第一TCP连接传输的报文数据在内存中的存储位置;所述TOE将所述第一TCP报文中的数据存储在所述第一地址信息指示的存储位置中;所述TOE根据所述第一CPU的标识向所述第一CPU发起第一中断请求,触发所述第一CPU根据所述第一地址信息从所述内存中获取所述第一TCP报文中的数据。结合第一方面,在第一方面的第一种可能的实现方式中,在所述TOE获取第一TCP连接上的第一TCP报文之前,还包括:所述TOE向控制设备发送第二中断请求,触发所述控制设备确定与所述第一TCP连接对应的所述第一CPU的标识;所述TOE获取所述第一CPU的标识,并将所述第一CPU的标识与所述第一TCP的连接关系存储至所述连接信息表中,以建立所述第一TCP连接与所述第一CPU的对应关系。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在所述TOE向控制设备发送第二中断请求之后,还包括:所述TOE将建立所述第一TCP连接所需的配置信息发送至所述控制设备,所述配置信息用于指示所述第一TCP连接的优先等级;其中,触发所述控制设备确定与所述第一TCP连接对应的所述第一CPU的标识,包括:触发所述控制设备根据所述配置信息确定所述第一TCP连接的优先等级,以便于所述控制设备根据所述第一TCP连接的优先等级确定与所述第一TCP连接对应的所述第一CPU的标识。结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,在所述TOE向控制设备发送第二中断请求,触发所述控制设备确定与所述第一TCP连接所绑定的所述第一CPU的标识之后,还包括:所述TOE接收所述第一CPU发送的所述第一地址信息;所述TOE将所述第一地址信息和所述第一TCP连接的对应关系存储至所述连接信息表中,以建立所述第一地址信息与所述第一TCP连接的对应关系。结合第一方面以及第一方面的第第一至三种可能的实现方式中的任一种可能的实现方式,在第一方面的第四种可能的实现方式中,当所述TOE需要在所述第一TCP连接上发送第二TCP报文时,所述方法还包括:所述TOE接收所述第一CPU发送的第二地址信息,所述第二地址信息用于指示待发送数据在所述内存中的存储位置;所述TOE根据所述第二地址信息从所述内存中获取所述待发送数据;所述TOE将所述待发送数据封装成所述第二TCP报文;所述TOE在所述第一TCP连接上发送所述第二TCP报文。第二方面,本专利技术的实施例提供一种数据传输方法,包括:在控制设备接收到传输控制协议卸载引擎TOE发送的第二中断请求之后,所述控制设备则从N个CPU中确定一个CPU为第一CPU,所述第一CPU用于处理第一传输控制协议TCP连接上传输的数据,N≥1;所述控制设备向所述第一CPU发送指示信息,所述指示信息用于指
所述内存中获取所述第一TCP报文中的数据。结合第三方面,在第三方面的第一种可能的实现方式中,所述中断触发单元,还用于向控制设备发送第二中断请求,触发所述控制设备确定与所述第一TCP连接对应的所述第一CPU的标识;所述接收单元,还用于获取所述第一CPU的标识;所述存储单元,还用于将所述第一CPU的标识与所述第一TCP的连接关系存储至所述连接信息表中,以建立所述第一TCP连接与所述第一CPU的对应关系。结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述TOE还包括发送单元,其中,所述发送单元,用于将建立所述第一TCP连接所需的配置信息发送至所述控制设备,所述配置信息用于指示所述第一TCP连接的优先等级;所述中断触发单元,具体用于向控制设备发送第二中断请求,触发所述控制设备根据所述配置信息确定所述第一TCP连接的优先等级,以便于所述控制设备根据所述第一TCP连接的优先等级确定与所述第一TCP连接对应的所述第一CPU的标识。结合第三方面的第一种可能的实现方式,在第三方面的第三种可能的实现方式中,所述接收单元,还用于接收所述第一CPU发送的所述第一地址信息;所述存储单元,还用于将所述接收单元中的所述第一地址信息和所述第一TCP连接的对应关系存储至所述连接信息表中,以建立所述第一地址信息与所述第一TCP连接的对应关系。结合第三方面以及第三方面的第一至第三种可能的实现方式中的任一种可能的实现方式,在第三方面的第四种可能的实现方式中,所述TOE还包括封装单元,其中,所述接收单元,还用于接收所述第一CPU发送的第二地址信息,所述第二地址信息用于指示待发送数据在所述本文档来自技高网
...

【技术保护点】
一种数据传输方法,其特征在于,包括:传输控制协议卸载引擎TOE接收在第一传输控制协议TCP连接上传输的第一TCP报文;所述TOE在本地存储的连接信息表中查找与所述第一TCP连接对应的第一CPU的标识和第一地址信息,所述连接信息表中包括所述第一TCP连接和第一CPU的标识的对应关系,以及所述第一TCP连接和所述第一地址信息的对应关系,其中,所述第一CPU的标识用于指示处理所述第一TCP连接上传输的报文数据的CPU,所述第一地址信息为第一CPU预先确定的用于指示通过所述第一TCP连接传输的报文数据在内存中的存储位置;所述TOE将所述第一TCP报文中的数据存储在所述第一地址信息指示的存储位置中;所述TOE根据所述第一CPU的标识向所述第一CPU发起第一中断请求,触发所述第一CPU根据所述第一地址信息从所述内存中获取所述第一TCP报文中的数据。

【技术特征摘要】
1.一种数据传输方法,其特征在于,包括:传输控制协议卸载引擎TOE接收在第一传输控制协议TCP连接上传输的第一TCP报文;所述TOE在本地存储的连接信息表中查找与所述第一TCP连接对应的第一CPU的标识和第一地址信息,所述连接信息表中包括所述第一TCP连接和第一CPU的标识的对应关系,以及所述第一TCP连接和所述第一地址信息的对应关系,其中,所述第一CPU的标识用于指示处理所述第一TCP连接上传输的报文数据的CPU,所述第一地址信息为第一CPU预先确定的用于指示通过所述第一TCP连接传输的报文数据在内存中的存储位置;所述TOE将所述第一TCP报文中的数据存储在所述第一地址信息指示的存储位置中;所述TOE根据所述第一CPU的标识向所述第一CPU发起第一中断请求,触发所述第一CPU根据所述第一地址信息从所述内存中获取所述第一TCP报文中的数据。2.根据权利要求1所述的方法,其特征在于,在所述TOE获取第一TCP连接上的第一TCP报文之前,还包括:所述TOE向控制设备发送第二中断请求,触发所述控制设备确定与所述第一TCP连接对应的所述第一CPU的标识;所述TOE获取所述第一CPU的标识,并将所述第一CPU的标识与所述第一TCP的连接关系存储至所述连接信息表中,以建立所述第一TCP连接与所述第一CPU的对应关系。3.根据权利要求2所述的方法,其特征在于,在所述TOE向控制设备发送第二中断请求之后,还包括:所述TOE将建立所述第一TCP连接所需的配置信息发送至所述控制设备,所述配置信息用于指示所述第一TCP连接的优先等级;其中,触发所述控制设备确定与所述第一TCP连接对应的所述第一CPU的标识,包括:触发所述控制设备根据所述配置信息确定所述第一TCP连接的优先等级,以便于所述控制设备根据所述第一TCP连接的优先等级确定与所述第一TCP连接对应的所述第一CPU的标识。4.根据权利要求2所述的方法,其特征在于,在所述TOE向控制设备发送第二中断请求,触发所述控制设备确定与所述第一TCP连接所绑定的所述第一CPU的标识之后,还包括:所述TOE接收所述第一CPU发送的所述第一地址信息;所述TOE将所述第一地址信息和所述第一TCP连接的对应关系存储至所述连接信息表中,以建立所述第一地址信息与所述第一TCP连接的对应关系。5.根据权利要求1至4中任一种所述的方法,其特征在于,当所述TOE需要在所述第一TCP连接上发送第二TCP报文时,所述方法还包括:所述TOE接收所述第一CPU发送的第二地址信息,所述第二地址信息用于指示待发送数据在所述内存中的存储位置;所述TOE根据所述第二地址信息从所述内存中获取所述待发送数据;所述TOE将所述待发送数据封装成所述第二TCP报文;所述TOE在所述第一TCP连接上发送所述第二TCP报文。6.一种数据传输方法,其特征在于,包括:在控制设备接收到传输控制协议卸载引擎TOE发送的第二中断请求之后,所述控制设备则从N个CPU中确定一个CPU为第一CPU,所述第一CPU用于处理第一传输控制协议TCP连接上传输的数据,N≥1;所述控制设备向所述第一CPU发送指示信息,所述指示信息用于指示所述第一CPU处理在所述第一TCP连接上传输的数据。7.根据权利要求6所述的方法,其特征在于,所述控制设备则从N个CPU中确定一个CPU为第一CPU,包括:所述控制设备获取所述N个CPU的负载值;所述控制设备根据所述N个CPU的负载值,将负载值最小的CPU作为所述第一CPU。8.根据权利要求6所述的方法,其特征在于,在所述控制设备则从N个CPU中确定一个CPU为第一CPU之前,还包括:所述控制设备接收所述TOE发送的配置信息,所述配置信息用于指示所述第一TCP连接的优先等级;其中,所述控制设备则从N个CPU中确定一个CPU为第一CPU,包括:所述控制设备根据所述配置信息确定所述第一TCP连接的优先等级;所述控制设备获取所述N个CPU的负载值;若第一T...

【专利技术属性】
技术研发人员:祝磊张振兴李东皤
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1