基于UDP引擎的数据传输方法、装置、设备及介质制造方法及图纸

技术编号:38829629 阅读:22 留言:0更新日期:2023-09-15 20:09
本发明专利技术涉及计算机技术领域,提供一种基于UDP引擎的数据传输方法、装置、设备及介质,能够基于目标网卡的目标网卡类型在预先构建的网络库中查询目标子网络库,进而能够基于不同类型目标网卡预先构建的网络库提供统一接口,屏蔽了底层网卡差异,并采用旁路内核协议栈技术,基于当前数据流向,并利用UDP引擎及目标子网络库在目标应用程序与目标网卡间进行数据传输,进而能够结合旁路内核协议栈技术及UDP引擎实现目标应用程序与目标网间的数据传输,由于旁路内核协议栈技术无需占用内核协议中的时延开销,因此在基于UDP引擎保证数据可靠传输的同时还能保证数据传输过程中具有较低的时延。的时延。的时延。

【技术实现步骤摘要】
基于UDP引擎的数据传输方法、装置、设备及介质


[0001]本专利技术涉及计算机
,尤其涉及一种基于UDP引擎的数据传输方法、装置、设备及介质。

技术介绍

[0002]UDP(User Data Protocol,用户数据报协议)/TCP(Transport Control Protocol,传输控制协议)是网络开发中最常见的通讯协议。TCP能够提供可靠传输,在需要保证数据可靠的网络通信场景下应用广泛,但是由于TCP协议内部实现的复杂性,导致TCP的传输时延相较于UDP更大,因此,在一些要求低时延的场景下TCP并没有优势,开发者更推崇使用UDP,然而UDP属于不可靠传输,无法保证消息的可靠性。
[0003]因此,亟需一种既能保证可靠性传输,又能保证比TCP更低时延的数据传输方案。

技术实现思路

[0004]鉴于以上内容,有必要提供一种基于UDP引擎的数据传输方法、装置、设备及介质,旨在解决数据传输过程中无法同时保证低时延、高可靠性的问题。
[0005]一种基于UDP引擎的数据传输方法,所述基于UDP引擎的数据传输方法包括:获取预先构建的UDP引擎及网络库;其中,所述网络库中包括多个子网络库;确定目标网卡的目标网卡类型;根据所述目标网卡类型在所述网络库中进行查询,得到目标子网络库;检测当前数据流向;采用旁路内核协议栈技术,基于所述当前数据流向,并利用所述UDP引擎及所述目标子网络库在目标应用程序与所述目标网卡间进行数据传输。
[0006]根据本专利技术优选实施例:所述UDP引擎包括用于开发的统一的接口;所述UDP引擎模拟TCP协议的部分功能;所述部分功能包括:连接过程的三次握手和两次挥手、基于内存队列实现的发送滑动窗口机制、根据TCP/IP协议规定的MTU实现的报文拆分和重组、基于在分片报文中添加字段实现的报文乱序重排机制、ACK确认机制、报文丢失重传机制、通过双向心跳报文确保连接状态的机制。
[0007]根据本专利技术优选实施例,所述根据所述目标网卡类型在所述网络库中进行查询,得到目标子网络库包括:当所述目标网卡类型为Solarflare网卡时,从所述网络库中获取与所述Solarflare网卡对应的efvi网络库作为所述目标子网络库;或者当所述目标网卡类型为Mellanox网卡时,从所述网络库中获取与所述Mellanox网卡对应的libverbs网络库作为所述目标子网络库;或者当所述目标网卡类型为支持DPDK的网卡时,从所述网络库中获取与所述支持DPDK的网卡对应的DPDK网络库作为所述目标子网络库。
[0008]根据本专利技术优选实施例,所述方法还包括:当所述目标网卡类型为除所述Solarflare网卡、所述Mellanox网卡及所述支持DPDK的网卡外的其他无法支持所述旁路内核协议栈技术的网卡时,采用TCP/IP内核协议栈在所述目标应用程序与所述目标网卡间进行数据传输。
[0009]根据本专利技术优选实施例,所述采用旁路内核协议栈技术,基于所述当前数据流向,并利用所述UDP引擎及所述目标子网络库在目标应用程序与所述目标网卡间进行数据传输包括:当所述当前数据流向为由所述目标网卡向所述目标应用程序传输数据时,通过所述目标子网络库从所述目标网卡接收第一帧数据,通过所述目标子网络库将所述第一帧数据传输至所述UDP引擎,由所述UDP引擎对所述第一帧数据进行协议解析得到第一数据包,并由所述UDP引擎将所述第一数据包递交至所述目标应用程序;当所述当前数据流向为由所述目标应用程序向所述目标网卡传输数据时,通过所述UDP引擎从所述目标应用程序接收第二数据包,通过所述UDP引擎为所述第二数据包填充TCP/IP协议头部结构,以对所述第二数据包进行封装得到第二帧数据,由所述UDP引擎将所述第二帧数据传输至所述目标子网络库,并由所述目标子网络库将所述第二帧数据递交至所述目标网卡。
[0010]根据本专利技术优选实施例,所述UDP引擎采用数据面和控制面分离的方式;所述方法还包括:当在两个UDP引擎间建立连接时,在所述两个UDP引擎间创建数据层网络传输通道及控制层网络传输通道;其中,所述数据层网络传输通道用于传输应用程序发送的数据;其中,所述控制层网络传输通道用于传输所述两个UDP引擎中每个UDP引擎内部的控制报文。
[0011]根据本专利技术优选实施例,所述UDP引擎采用双线程进行报文处理;所述方法还包括:当处理网卡接收的数据面帧数据时,启用所述双线程中的第一线程对所述数据面帧数据进行分片、报文重组及排序;当处理网卡接收的控制面消息时,启用所述双线程中的第二线程以分段任务处理所述控制面消息,并执行三次握手、两次挥手、心跳保活、报文确认和重传。
[0012]一种基于UDP引擎的数据传输装置,所述基于UDP引擎的数据传输装置包括:获取单元,用于获取预先构建的UDP引擎及网络库;其中,所述网络库中包括多个子网络库;确定单元,用于确定目标网卡的目标网卡类型;查询单元,用于根据所述目标网卡类型在所述网络库中进行查询,得到目标子网络库;检测单元,用于检测当前数据流向;传输单元,用于采用旁路内核协议栈技术,基于所述当前数据流向,并利用所述UDP引擎及所述目标子网络库在目标应用程序与所述目标网卡间进行数据传输。
[0013]一种计算机设备,所述计算机设备包括:
存储器,存储至少一个指令;及处理器,执行所述存储器中存储的指令以实现所述基于UDP引擎的数据传输方法。
[0014]一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现所述基于UDP引擎的数据传输方法。
[0015]由以上技术方案可以看出,本专利技术能够基于目标网卡的目标网卡类型在预先构建的网络库中查询目标子网络库,屏蔽了底层网卡差异,并采用旁路内核协议栈技术,基于当前数据流向,并利用UDP引擎及目标子网络库在目标应用程序与目标网卡间进行数据传输,由于旁路内核协议栈技术无需占用内核协议中的时延开销,因此在基于UDP引擎保证数据可靠传输的同时还能保证数据传输过程中具有较低的时延。
附图说明
[0016]图1是本专利技术基于UDP引擎的数据传输方法的较佳实施例的流程图。
[0017]图2是本专利技术基于UDP引擎的数据传输数据流示意图。
[0018]图3是本专利技术基于UDP引擎的数据传输装置的较佳实施例的功能模块图。
[0019]图4是本专利技术实现基于UDP引擎的数据传输方法的较佳实施例的计算机设备的结构示意图。
具体实施方式
[0020]为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本专利技术进行详细描述。
[0021]如图1所示,是本专利技术基于UDP引擎的数据传输方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
[0022]所述基于UDP引擎的数据传输方法应用于一个或者多个计算机设备中,所述计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于UDP引擎的数据传输方法,其特征在于,所述基于UDP引擎的数据传输方法包括:获取预先构建的UDP引擎及网络库;其中,所述网络库中包括多个子网络库;确定目标网卡的目标网卡类型;根据所述目标网卡类型在所述网络库中进行查询,得到目标子网络库;检测当前数据流向;采用旁路内核协议栈技术,基于所述当前数据流向,并利用所述UDP引擎及所述目标子网络库在目标应用程序与所述目标网卡间进行数据传输。2.如权利要求1所述的基于UDP引擎的数据传输方法,其特征在于:所述UDP引擎包括用于开发的统一的接口;所述UDP引擎模拟TCP协议的部分功能;所述部分功能包括:连接过程的三次握手和两次挥手、基于内存队列实现的发送滑动窗口机制、根据TCP/IP协议规定的MTU实现的报文拆分和重组、基于在分片报文中添加字段实现的报文乱序重排机制、ACK确认机制、报文丢失重传机制、通过双向心跳报文确保连接状态的机制。3.如权利要求1所述的基于UDP引擎的数据传输方法,其特征在于,所述根据所述目标网卡类型在所述网络库中进行查询,得到目标子网络库包括:当所述目标网卡类型为Solarflare网卡时,从所述网络库中获取与所述Solarflare网卡对应的efvi网络库作为所述目标子网络库;或者当所述目标网卡类型为Mellanox网卡时,从所述网络库中获取与所述Mellanox网卡对应的libverbs网络库作为所述目标子网络库;或者当所述目标网卡类型为支持DPDK的网卡时,从所述网络库中获取与所述支持DPDK的网卡对应的DPDK网络库作为所述目标子网络库。4.如权利要求3所述的基于UDP引擎的数据传输方法,其特征在于,所述方法还包括:当所述目标网卡类型为除所述Solarflare网卡、所述Mellanox网卡及所述支持DPDK的网卡外的其他无法支持所述旁路内核协议栈技术的网卡时,采用TCP/IP内核协议栈在所述目标应用程序与所述目标网卡间进行数据传输。5.如权利要求1所述的基于UDP引擎的数据传输方法,其特征在于,所述采用旁路内核协议栈技术,基于所述当前数据流向,并利用所述UDP引擎及所述目标子网络库在目标应用程序与所述目标网卡间进行数据传输包括:当所述当前数据流向为由所述目标网卡向所述目标应用程序传输数据时,通过所述目标子网络库从所述目标网卡接收第一帧数据,通过所述目标子网络库将所述第一帧数据传输至所述UDP引擎,由所述UDP引擎...

【专利技术属性】
技术研发人员:牛亮亮赵楠林泽南张卫
申请(专利权)人:深圳华锐分布式技术股份有限公司
类型:发明
国别省市:

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

1