一种智能网卡的数据传输方法和装置与流程

未命名 10-19 阅读:99 评论:0
1.本公开涉及数据传输
技术领域
:,尤其涉及一种智能网卡的数据传输方法和装置。
背景技术
::2.智能网卡与物理服务器配合进行数据传输时,会对数据包长度超过mtu的udp协议的数据包进行分片、重组等处理。但是,随着应用程序的流量越来越大,智能网卡在进行多分片重组时受限于自身的硬件条件,常常会出现卡顿、阻滞的现象,吞吐性能较差。3.为了满足大流量的应用需求,常常会采取限制请求方的发包长度、或者升级智能网卡及其支持设备的方式,以防止分片的产生、均衡应用流量,避免智能网卡的卡顿、阻滞等现象,提升流量的吞吐性能。4.然而,一方面,发包长度受限使得应用程序的流量受压,无法保障用户流畅的使用体验;另一方面,升级网络设备的方式使得设备的升级成本和依赖成本激增,导致数据传输成本过高,实用性低下。技术实现要素:5.有鉴于此,本公开实施例提供一种智能网卡的数据传输方法和装置,能够解决应用程序流量受压无法保障用户流畅的使用体验、升级设备成本过高导致数据传输成本激增的问题。6.为实现上述目的,根据本公开的一方面,提供了一种智能网卡的数据传输方法,所述智能网卡包括分片重组开关,所述数据传输方法包括:7.检测所述数据传输请求的传输流量,根据所述传输流量设置所述分片重组开关的启闭状态;8.接收多个数据传输请求;其中,所述数据传输请求包括数据包;9.对所述数据包进行逐层解析,提取各个所述数据包中的ip头部;10.根据所述ip头部,判断所述数据包是否存在ip分片,在所述ip分片存在且所述分片重组开关关闭的情况下,将所述数据包向与所述智能网卡配合的物理服务器透传,使得所述物理服务器对所述数据包进行分片重组。11.根据本公开的另一方面,提供了一种智能网卡的数据传输装置,所述智能网卡包括分片重组开关,包括:12.启闭模块,用于检测所述数据传输请求的传输流量,根据所述传输流量设置所述分片重组开关的启闭状态;13.接收模块,用于接收多个数据传输请求;其中,所述数据传输请求包括数据包;14.解析模块,用于对所述数据包进行逐层解析,提取各个所述数据包中的ip头部;15.传输模块,用于根据所述ip头部,判断所述数据包是否存在ip分片,在所述ip分片存在且所述分片重组开关关闭的情况下,将所述数据包向与所述智能网卡配合的物理服务器透传,使得所述物理服务器对所述数据包进行分片重组。16.根据本公开的再一方面,提供了一种电子设备,包括:17.处理器;以及18.存储程序的存储器,19.其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行所述智能网卡的数据传输方法。20.根据本公开实施例的还一个方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行所述智能网卡的数据传输方法。21.本技术实施例中提供的一个或多个技术方案,使用现有的智能网卡和物理服务器,通过在智能网卡中增设虚拟交换机软件的透传设置,对符合预设条件的分片数据包直接透传给物理服务器进行重组,可以实现充分满足应用程序在udp大流量场景下的用户需求,保证流畅的用户使用体验,而且无需额外升级智能网卡及其支持设备等网络设备,进而避免了依赖升级成本,可以提升智能网卡的吞吐性能,提高数据传输效率的技术效果。附图说明22.在下面结合附图对于示例性实施例的描述中,本公开的更多细节、特征和优点被公开,在附图中:23.图1示出了根据本公开示例性实施例的智能网卡的数据传输方法的流程图;24.图2示出了根据本公开示例性再一实施例的分片重组开关的启闭方法的流程图;25.图3示出了根据本公开示例性实施例的数据包的元数据的提取方法的流程图;26.图4示出了根据本公开示例性实施例的ip分片的确定方法的流程图;27.图5示出了根据本公开示例性实施例的ip分片的重组方法的流程图;28.图6示出了根据本公开示例性实施例的重组数据包的传输方法的流程图;29.图7示出了根据本公开示例性实施例的智能网卡的数据传输装置的示意性框图;30.图8示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。具体实施方式31.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。32.应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。33.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。34.需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。35.本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。36.智能网卡:smartnetworkinterfacecard,是一种灵活可编程的网卡,与物理服务器配合使用,具备独立的操作系统。37.udp:userdatagramprotocol,即用户数据报协议,为软件提供了一种无需建立连接就可以发送封装的ip数据包的方法。38.mtu:maximumtransmissionunit,即最大传输单元,是指接收方单次接收的数据包或者数据帧的最大数据服务单元,也称最大载荷,一般以byte(字节)记。39.ip分片:在互联网传输协议的多个分层中,数据链路层会通过mtu限制传输的数据包大小,当数据包的大小超过mtu时,对数据包进行分片处理。40.ip分片重组:属于同一个数据包的各个ip分片到达目的地之前,需要被重组复原为原始的数据包。41.acl:accesscontrollists,即指访问控制列表,是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许接口通过或者丢弃。42.智能网卡在配合物理服务器进行数据传输的过程中,常见的传输协议包括udp,由于udp的传输请求方和接收方无法事先约定传输数据分段的大小,故而当数据包超过智能网卡的mtu时,请求方会在ip层对udp大包(即数据包大小超过mtu的udp数据包)进行分片处理;再由接收方的智能网卡对ip分片进行重组复原,以保证数据包的完整性。然而,由于智能网卡本身的硬件配置较弱,面对udp大包的分片重组场景,吞吐性能较差、流量瓶颈明细,难以满足udp大流量场景下的应用需求。现有的解决方法是由应用程序将udp大包发送改成udp小包发送、避免ip分片,或者将包括智能网卡的全部网络设备(包括网关等)进行升级以支持udp大包的整体发送。前者使得应用侧数据收发受限,服务用户的数据访问量锐减,流量瓶颈明显,降低用户侧的使用体验;后者升级依赖的其它设备成本过高,且并非支持设备都能支撑升级,导致udp大包收发失败率过高,应用交互崩溃。43.通过本公开的智能网卡的数据传输方法,基于当前的智能网卡和物理服务器,采用在智能网卡的虚拟交换机软件中设置分片重组开关,适应实时的应用流量启闭分片重组开关,流量过大的情况下透传至物理服务器进行重组的技术手段,可以保证在现有物理环境和设备不变的情况下,避免设备升级,进而降低数据传输成本,满足大量ip分片重组的应用交互需求,提高数据吞吐性能,提升udp传输能力和用户使用体验,进而提升数据传输效率。44.同样地,udp大包会在发送数据传输请求的请求方的协议栈进行ip分片,每个分片的大小和分片的数量由udp大包和智能网卡的mtu决定,本公开的智能网卡的数据传输方法适用于接收方的智能网卡,使得请求方的应用程序无需做出任何改变,在仍然保持现有的应用访问场景的情况下,通过分片重组开关控制数据传输请求的重组方式,提升数据传输效率。45.以下参照附图描述本公开的方案。46.图1示出了根据本公开示例性实施例的智能网卡的数据传输方法的流程图,如图1所示,本公开的智能网卡的数据传输方法包括如下步骤:47.在本公开实施例中,本公开的智能网卡的数据传输方法由智能网卡执行,智能网卡设置有分片重组开关,用以根据数据传输流量启闭,从而控制udp大包的ip分片的重组方式。48.进一步地,智能网卡上运行了具备cpu的独立操作系统,能够将原本运行于物理服务器的内核网络协议栈中的ip分片重组、安全过滤等功能卸载至独立操作系统实现,降低数据包收发的路径消耗,提高数据传输性能。其中,网络虚拟化用到的虚拟交换机等软件等皆运行于独立操作系统内。49.更进一步地,智能网卡具备串口等硬件接口以及独立的ip地址,通过驱动的方式与物理服务器互联,虚拟交换机软件可以是openvswitch,openvswitch使用vxlan网络架构。50.步骤s101,检测所述智能网卡的传输流量,根据所述传输流量设置所述分片重组开关的启闭状态。51.在本公开实施例中,智能网卡的传输流量的单位为字节/秒(即byte/s),表示每秒接收到的应用程序发送的数据包大小,根据智能网卡单位时间内接收到的数据包大小,可以实时计算的智能网卡的传输流量,以判断是否关闭分片重组开关,从而缓解智能网卡的传输压力,保障用户使用体验。需要说明的是,流量阈值可以根据实际需要进行选择性设置,比如,流量阈值为9kmtu。52.在本公开一个实施例中,根据所述传输流量设置所述分片重组开关的启闭状态,包括:53.在检测到智能网卡的传输流量大于等于流量阈值的情况下,关闭分片重组开关;在检测到智能网卡的传输流量小于流量阈值的情况下,开启分片重组开关。54.在本公开实施例中,通过在智能网卡的虚拟交换机软件的显式设置中增加分片重组开关,以实现分片重组开关的启闭。在分片重组开关开启的情况下,由智能网卡对属于同一分片标记的多个ip分片进行重组;在分片重组开关关闭的情况下,智能网卡将数据传输请求透传给物理服务器,由物理服务器对属于同一分片标记的多个ip分片进行重组。55.进一步地,在虚拟交换机软件的显式设置中,通过设置网络协议参数和透传参数的属性值,确定分片重组开关的启闭。其中,网络协议参数和透传参数的属性值为布尔变量,也即,网络协议和透传参数的的属性值为true或者false。虚拟交换机软件的显式设置包括多个网络协议参数,在将多个网络协议参数的属性值皆设置为false并且透传参数的属性值设置为true的情况下,确定关闭分片重组开关,否则,确定开启分片重组开关。56.更进一步地,在虚拟交换机软件为openvswitch的情况下,openvswitch的网络协议参数包括ipfset_v4和ipfset_v6,网络协议参数的路径包括openvswitch\\ipfset_v4和openvswitch\\ipfset_v6;透传参数为pass-udp,透传参数的路径包括openvswitch\\pass-udp。通过优化openvswitch代码层的显示设置,增加网络协议参数和透传参数相关的配置文件,可以灵活控制分片重组开关的启闭,以适应实时的应用流量需求,提升用户体验,避免成本消耗的同时提高数据传输效率。57.在本公开另一个实施例中,或者,根据所述传输流量设置所述分片重组开关的启闭状态,包括:58.在检测到智能网卡的传输流量大于等于流量阈值的情况下,也可以将虚拟交换机软件的分片重组开关设置为常闭,常闭时间可以根据实际需要进行选择性设置。也即,比如,在智能网卡所服务的访问数据较为固定的情况下,设置智能网卡的分片重组开关的常态且持久化的常闭配置,不再随着传输流量的变化实时调整,以保证智能网卡和物理服务器的数据传输的稳定性和性能的持久化。59.在本公开再一个实施例中,或者,不同于简单的传输流量检测确定分片重组开关的启闭状态,虚拟交换机软件可以设置多个分片重组开关,各个分片重组开关分别与各个来源应用相对应,根据所述传输流量设置所述分片重组开关的启闭状态,包括:60.如图2所示,本公开再一实施例的分片重组开关的启闭方法包括如下步骤:61.步骤s201,获取各个来源应用在预设历史时期的历史数据传输请求。62.在本公开实施例中,统计各个来源应用在预设历史时期的历史数据传输请求,历史数据传输请求包括历史数据包。需要说明的是,预设历史时期可以根据需要进行选择性设置,仅需能表征来源应用的历史传输流量即可。63.步骤s202,针对各个所述来源应用,对所述智能网卡的历史传输流量进行分析,查找所述历史传输流量大于等于所述流量阈值的来源应用。64.在本公开实施例中,根据历史数据传输请求的历史数据包,针对各个来源应用,分别计算智能网卡的历史传输流量,将历史传输流量和流量阈值进行对比。65.步骤s203,将大于等于所述流量阈值的来源应用对应的应用标识作为目标关闭标识,关闭与所述目标关闭标识对应的分片重组开关。66.在本公开实施例中,将历史传输流量大于等于流量阈值的来源应用对应的分片重组开关关闭、历史传输流量小于流量阈值的来源应用对应的分片重组开关开启。也即,在历史传输流量大于等于流量阈值的情况下,将大于等于流量阈值的来源应用对应的应用标识作为目标关闭标识,关闭与目标关闭标识相同的应用标识对应的来源应用的分片重组开关,相应地,开启与目标关闭标识不同的应用标识对应的来源应用的分片重组开关。67.在本公开实施例中,通过本公开另一实施例的分片重组开关的启闭方法,相较于图1所述的智能网卡的数据传输方法的实时调整,可以自适应更改分片重组开关的设置方式,为每一个应用程序设置一个分片重组开关,以调整每一个应用程序的分片重组方式,进一步地提高数据传输效率和用户使用各个应用程序的满意度。68.步骤s102,接收多个数据传输请求;其中,所述数据传输请求包括数据包。69.在本公开实施例中,一个数据传输请求为一个数据包,数据传输请求来自各种各样的应用程序,因此,数据传输请求的数据包包括与数据传输请求的来源应用对应的应用标识。70.进一步地,本公开的智能网卡的数据传输方法可以由智能网卡的虚拟交换机软件执行。71.步骤s103,对所述数据包进行逐层解析,提取各个所述数据包中的ip头部。72.在本公开实施例中,应用程序的数据传输请求的数据包经过源ip地址的物理服务器分片处理,发送给智能网卡,智能网卡接收到数据传输请求后,逐层解析数据传输请求的数据包,以得到数据包中的各层信息。73.在本公开实施例中,如图3所示,本公开的数据包的元数据的提取方法包括如下步骤:74.在本公开实施例中,智能网卡的虚拟交换机软件采用vxlan(virtualextensiblelocalareanetwork,虚拟扩展本地局域网)技术,其本质是一种隧道技术,用于在源网络设备与目的网络设备之间的ip网络上建立逻辑隧道,将报文经过特定的封装后进行转发。75.步骤s301,对所述数据传输请求的数据包进行解析。76.在本公开实施例中,数据包的元数据的提取过程是数据报文的封装过程的逆过程,封装过程中,应用层发出的数据报文分别经过交换层、传输协议层、网络层、数据链路层的层层封装,得到封装后的数据包,数据包传输至智能网卡时发起数据传输请求。77.步骤s302,剥离所述数据包的最外层的mac地址,得到中间解析包。78.在本公开实施例中,最外层为数据链路层,mac地址为目的服务器的物理地址,根据mac地址,可以确定物理服务器的位置,从而在透传时,直接将数据传输请求发送给物理服务器,使得物理服务器进行重组、安全过滤等操作。79.进一步地,数据包剥离数据链路层后得到中间解析包。80.步骤s303,分离出所述中间解析包中的虚拟标识。81.在本公开实施例中,中间解析包为vxlan解析包,虚拟标识为vxlan标识。82.进一步地,中间解析包分离vxlan层后得到ip包。83.步骤s304,从分离后的ip包中提取网络层的ip头部;其中,所述ip头部包括所述分片标记和上层协议。84.在本公开实施例中,请求方在封装时,网络层根据mku判断传输协议层封装的udp数据包是udp大包还是udp小包,在udp数据包为udp大包的情况下,对udp大包分割为多个分片,为每个分片添加ip头部,得到多个ip包。85.在本公开实施例中,ip的ip头部包括ip协议版本(version)、上层协议(protocol)、分片标记(flags)、分片偏移(fragmentoffset)、源ip地址(sourceipaddress,即源主机的ip地址)、目的ip地址(destinationipaddress,即目的主机的ip地址)。86.进一步地,上层协议即传输协议层所使用的传输协议,常见的包括tcp、udp等;目的主机的ip地址即数据传输请求的接收方的ip地址。87.步骤s305,根据所述上层协议,对提取后的剩余解析包进行分析,抽取传输协议层中的传输协议头部。88.在本公开实施例中,传输协议头部包括源端口(srcport)、目的端口(desport)。89.在本公开实施例中,通过本公开的数据包的元数据的提取方法,对数据包进行逐层解析,直至得到需要的ip头部的分片标记,从而进行后续的透传判断,以在传输流量过大的情况下将udp大包发送给物理服务器重组,缓解智能网卡的传输压力,提升应用响应速度,保障良好的用户体验,提高数据传输效率、降低数据传输成本。90.步骤s104,根据所述ip头部,判断所述数据包是否存在ip分片,在所述ip分片存在且所述分片重组开关关闭的情况下,将所述数据包向与所述智能网卡配合的物理服务器透传,使得所述物理服务器对所述数据包进行分片重组。91.在本公开实施例中,利用ip头部的上层协议、或者上层协议和分片标记的属性值,确定数据包是否存在ip分片,以结合分片重组开关的启闭状态,选择透传给物理服务器进行分片重组还是由智能网卡进行分片重组。92.进一步地,根据虚拟交换机软件的网络协议参数和透传参数的设置,判断分片重组开关的启闭状态,在多个网络协议参数的属性值皆设置为false并且透传参数的属性值设置为true的情况下,确定分片重组开关关闭,否则,确定分片重组开关开启。93.更进一步地,在网络协议参数ipfset_v4和ipfset_v6的属性值皆设置为false并且透传参数pass-udp的属性值设置为true的情况下,确定分片重组开关关闭,否则,确定分片重组开关开启。94.在本公开实施例中,如图4所示,本公开的ip分片的确定方法包括如下步骤:95.在本公开实施例中,默认udp数据包的ip头部必然存在分片标记的数据项。96.步骤s401,判断所述ip头部是否存在分片标记,如果是,转至步骤s402;如果否,转至步骤s403。97.步骤s402,判断所述分片标记的属性值是否为空,如果是,转至步骤s403;如果否,转至步骤s404。98.在本公开实施例中,在ip头部存在分片标记的情况下,继续对分片标记的属性值进行判断。99.步骤s403,确定所述数据包不存在ip分片。100.在本公开实施例中,常用的传输协议包括tcp/udp,tcp(transmissioncontrolprotocol,即传输控制协议)是一种面向连接的、可靠的、基于字节流的运输层通信协议。在网络传输中,使用tcp的数据传输具备mss(maximumsegmentsize,即最大报文段长度)自主协商机制,也即,tcp的数据传输各方自主协商mss大小,确定每次能够传输的最大报文段长度,从而后续在进行数据传输时,发送方发出的数据包大小在mss范围内,不会产生ip分片。因此,由于发送的tcp的数据包不会产生ip分片,也就不存在分片标记,故而接收的tcp数据包自然也不存在ip分片。101.进一步地,udp没有类似tcp的mss机制,对于udp小包来说并无影响,直接进行安全过滤即可,但是udp大包由于超过mtu,需要依赖ip分片和重组方可执行安全过滤,保证数据传输安全。因此,udp小包无需分片,其分片标记的属性值为空,相应地,数据包自然也不存在ip分片。102.步骤s404,确定所述数据包存在ip分片。103.在本公开实施例中,由于udp大包需要分片和重组,因此,udp大包存在ip分片,其分片标记的属性值不为空,用以标识属于同一数据包的各个ip分片。104.在本公开实施例中,通过本公开的分片标记的确定方法,可以根据ip头部的上层协议和分片标记的属性值确定ip头部是否存在分片标记,从而进行后续的透传判断,以提高智能网卡的吞吐性能,提升数据传输效率。105.在本公开实施例中,或者,还可以通过ip头部的上层协议和分片标记的属性值确定ip头部是否存在分片标记,也即:106.获取所述ip头部的上层协议,判断所述上层协议的属性值是否是tcp;107.在所述上层协议的属性值是tcp的情况下,确定所述ip头部不存在ip分片;108.或者,在所述上层协议的属性值不是tcp的情况下,根据所述分片标记的属性值,确定所述ip头部是否存在ip分片;其中,所述分片标记的属性值非空表示所述数据包存在ip分片。109.需要说明的是,如果默认udp数据包中的udp大包场景由于需要分片存在分片标记的数据项、udp小包场景由于无需分片不存在分片标记的数据项,则直接根据ip头部是否存在分片标记进行判断即可,也即,在本公开另一实施例中,或者,在判断时,在提取的ip头部存在分片标记的情况下,确定数据包存在ip分片;在提取的ip头部不存在分片标记的情况下,确定数据包不存在ip分片。110.在本公开实施例中,在数据包存在ip分片且分片重组开关关闭的情况下,由物理服务器对透传的数据传输请求进行分片重组;在数据包存在ip分片且分片重组开关开启的情况下,由智能网卡对数据传输请求进行分片重组,如图5所示,本公开的ip分片的重组的方法包括如下步骤:111.在本公开实施例中,本公开的ip分片的重组的方法由智能网卡或者物理服务器执行。112.步骤s501,确定解析得到的所述ip包为对应的所述ip分片。113.在本公开实施例中,无论是分片重组开关开启、智能网卡执行分片重组,还是分片重组开关关闭、物理服务器执行分片重组,智能网卡和物理服务器皆需对数据包进行解析,得到各个ip包,以确定ip即为ip分片执行分片重组。114.步骤s502,统计属于同一分片标记的多个所述ip分片。115.步骤s503,按照所述ip头部的分片偏移的属性值从小到大的顺序,对多个所述ip分片进行重组,得到重组数据包。116.在本公开实施例中,封装时由于只有udp大包才需要进行分片处理,故而重组数据包为udp大包。117.在本公开实施例中,通过本公开的ip分片的重组的方法,先根据分片标记确定属于同一分片组的ip分片,再将属于同一分片组的多个ip分片进行重组,以得到对应原始数据的重组数据包,获得完整的访问内容,能够应对不同的应用需求,满足用户的访问体验。118.在本公开实施例中,无论是智能网卡的重组数据包,还是物理服务器的重组数据包,皆需进行安全过滤,保证数据传输的安全性,以实现网络策略隔离管控的目的,满足网络安全策略的需求。如图6所示,本公开的重组数据包的传输方法包括如下步骤:119.在本公开实施例中,本公开的重组数据包的传输方法由智能网卡或者物理服务器执行。120.步骤s601,提取所述重组数据包的ip头部的源ip地址和目的ip地址。121.在本公开实施例中,还可以获取传输协议层的源端口和目的端口、源ip地址和目的ip地址的优先级标识等。122.步骤s602,查找本地会话表,判断所述源ip地址是否存在历史会话,如果是,转至步骤s603;如果否,转至步骤s604。123.在本公开实施例中,会话表(sessiontable)中存储了多个历史会话的会话信息,包括会话的请求方标识、接收方标识、会话发起时间、会话结束时间等,用以判断源ip地址是否进行过历史会话,从而确定源ip地址是否可信,以直接转发重组数据包或者对重组数据包进行安全过滤。其中,请求方标识和接收方标识可以是ip地址。124.步骤s603,搜索到达目的ip地址的路由条目,按照所述路由条目转发所述重组数据包。125.在本公开实施例中,路由表中存储了多条路由条目,用以根据目的ip地址搜索从源ip地址到达目的ip地址的一条或者多条路由条目,以将重组数据包转发至目的地。126.步骤s604,根据预设的acl策略,对所述重组数据包进行过滤,判断所述重组数据包的过滤结果是否为数据安全,如果是,转至步骤s603;如果否,转至步骤s605。127.在本公开实施例中,acl策略包括白名单策略、优先级策略、边缘策略等,不同的策略对应不同的acl语句,以对数据进行acl安全过滤。acl策略可以通过流表的形式使用,流表是针对特定流的策略表项的集合,负责数据包的查找和转发。128.步骤s6041,利用地址白名单对所述源ip地址进行匹配,判断所述源ip地址是否属于所述地址白名单,如果是,转至步骤s6042;如果否,转至步骤s6043。129.在本公开实施例中,白名单策略包括地址白名单、端口白名单、协议白名单等,用以根据实际场景对源ip地址、目的ip地址、源端口、目的端口、传输协议、网络协议等进行匹配过滤,保证数据传输的安全性。130.步骤s6042,确定所述重组数据包的过滤结果为数据安全。131.在本公开实施例中,在源ip地址属于地址白名单、或者源ip地址的优先级标识存在、或者源ip地址遵守边缘策略的情况下,确定所述重组数据包的过滤结果为数据安全。132.步骤s6043,查找所述源ip地址的优先级标识,判断所述源ip地址的优先级标识是否存在,如果是,转至步骤s6042;如果否,转至步骤s6044。133.在本公开实施例中,在源ip地址不属于地址白名单的情况下,继续利用优先级策略对源ip地址的优先级进行判断。优先级策略包括地址优先级、端口优先级、协议优先级等,用以根据实际场景对源ip地址、目的ip地址、源端口、目的端口、传输协议、网络协议等进行优先级判断,保证数据传输安全。134.进一步地,ip头部存在优先级标识即表示符合地址优先级、不存在优先级标识即表示不符合地址优先级。135.步骤s6044,判断所述源ip地址是否遵守边缘策略,如果是,转至步骤s6042;如果否,转至步骤s6045。136.在本公开实施例中,在所述源ip地址的优先级标识不存在的情况下,继续利用边缘策略对源ip地址的优先级进行判断。边缘策略囊括了兜底条款的判断语句,比如,源ip地址的各个字段的取值范围是否符合要求等。137.步骤s6045,确定所述重组数据包的过滤结果为数据风险。138.在本公开实施例中,在源ip地址未遵守边缘策略的情况下,确定重组数据包的过滤结果为数据风险。139.步骤s605,拒绝数据传输请求。140.在本公开实施例中,在重组数据包的过滤结果为数据风险的情况下,确定拒绝数据传输请求。141.需要说明的是,以上的acl策略中仅是将源ip地址作为过滤示例,实际传输过程中可以根据需要对各种数据包头部或者数据包包体的信息进行安全过滤,根据实际传输需求进行选择性设置即可。142.在本公开实施例中,通过本公开的重组数据包的传输方法,先通过会话表确定是否存在历史会话,存在直接匹配路由条目,不存在则进行acl过滤,根据重组数据包的各层信息,对重组数据包进行acl检查,达成网络策略隔离管控的目的,控制访问源和被访问目标之间的互访连通性,保障数据传输的安全性和可靠性。143.在本公开实施例中,在ip分片不存在的情况下,无需对分片重组开关的启闭状态进行判断,直接由智能网卡对数据传输请求的数据包的数据体进行传输。类似于图6所示的重组数据包的传输方法,提取数据传输请求的数据包的ip头部的源ip地址和目的ip地址等信息、查找本地会话表、存在历史会话的情况下直接搜索路由条目进行转发、不存在历史会话的情况下根据acl策略进行安全过滤、得到过滤结果以匹配路由条目或者拒绝数据传输请求。144.在本公开实施例中,在ip分片存在且分片重组开关开启的情况下,表示智能网卡的传输流量未超过流量阈值,智能网卡可以对数据传输请求进行处理,满足udp大包的流量场景需求,直接由智能网卡对数据传输请求的数据包的数据体进行传输。145.在本公开实施例中,通过本公开的智能网卡的数据传输方法,保证了udp大包、大流量场景下的智能网卡的数据传输能力,智能网卡将大流量场景下的udp大包透传给物理服务器,由物理服务器实现分片重组和安全过滤;智能网卡将未触发ip分片的udp小包和tcp数据包进行安全过滤;智能网卡将非大流量场景下的udp大包进行分片重组和安全过滤,在满足应用侧流量需求的同时达到网络策略隔离管控的目的,保证智能网卡的高吞吐量需求,防止吞吐瓶颈。146.图7是根据本公开实施例的智能网卡的数据传输装置的主要模块的示意图,如图7所示,本公开的智能网卡的数据传输装置700包括:147.启闭模块701,用于检测所述数据传输请求的传输流量,根据所述传输流量设置所述分片重组开关的启闭状态。148.接收模块702,用于接收多个数据传输请求;其中,所述数据传输请求包括数据包。149.解析模块703,用于对所述数据包进行逐层解析,提取各个所述数据包中的ip头部。150.传输模块704,用于根据所述ip头部,判断所述数据包是否存在ip分片,在所述ip分片存在且所述分片重组开关关闭的情况下,将所述数据包向与所述智能网卡配合的物理服务器透传,使得所述物理服务器对所述数据包进行分片重组。151.本公开示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本公开实施例的方法。152.本公开示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。153.本公开示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。154.参考图8,现将描述可以作为本公开的服务器或客户端的电子设备800的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。155.如图8所示,电子设备800包括计算单元801,其可以根据存储在只读存储器(rom)802中的计算机程序或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序,来执行各种适当的动作和处理。在ram803中,还可存储设备800操作所需的各种程序和数据。计算单元801、rom802以及ram803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。156.电子设备800中的多个部件连接至i/o接口805,包括:输入单元806、输出单元807、存储单元808以及通信单元809。输入单元806可以是能向电子设备800输入信息的任何类型的设备,输入单元806可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元807可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元804可以包括但不限于磁盘、光盘。通信单元809允许电子设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙tm设备、wifi设备、wima8设备、蜂窝通信设备和/或类似物。157.计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理。例如,在一些实施例中,图1至图6的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom802和/或通信单元809而被载入和/或安装到电子设备800上。在一些实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行图1至图6的方法。158.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。159.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。160.如本公开使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。161.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。162.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。163.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。当前第1页12当前第1页12
技术特征:
1.一种智能网卡的数据传输方法,其特征在于,所述智能网卡包括分片重组开关,所述数据传输方法包括:检测所述智能网卡的传输流量,根据所述传输流量设置所述分片重组开关的启闭状态;接收多个数据传输请求;其中,所述数据传输请求包括数据包;对所述数据包进行逐层解析,提取各个所述数据包中的ip头部;根据所述ip头部,判断所述数据包是否存在ip分片,在所述ip分片存在且所述分片重组开关关闭的情况下,将所述数据包向与所述智能网卡配合的物理服务器透传,使得所述物理服务器对所述数据包进行分片重组。2.如权利要求1所述的数据传输方法,其特征在于,所述分片重组开关是通过增加所述智能网卡的显式设置实现的;所述关闭所述分片重组开关,包括:将所述智能网卡的网络协议参数的属性值设置为false,并且,将所述智能网卡的透传参数的属性值设置为true;其中,所述网络协议参数和所述透传参数的属性值为布尔变量。3.如权利要求2所述的数据传输方法,其特征在于,所述网络协议参数包括ipfset_v4和ipfset_v6,所述透传参数为pass-udp。4.如权利要求1所述的数据传输方法,其特征在于,在所述ip分片存在但所述分片重组开关开启的情况下,还包括:对所述数据包进行分片重组。5.如权利要求1或4所述的数据传输方法,其特征在于,所述数据传输请求的数据包还包括来源应用的应用标识,所述智能网卡包括多个分片重组开关,各个分片重组开关分别与各个来源应用相对应;所述根据所述传输流量设置所述分片重组开关的启闭状态,包括:获取各个所述来源应用在预设历史时期的历史数据传输请求;针对各个所述来源应用,对所述智能网卡的历史传输流量进行分析,查找所述历史传输流量大于等于所述流量阈值的来源应用;将大于等于所述流量阈值的来源应用对应的应用标识作为目标关闭标识,关闭与所述目标关闭标识对应的分片重组开关。6.如权利要求1所述的数据传输方法,其特征在于,所述对所述数据包进行逐层解析,提取各个所述数据包中的ip头部,包括:对所述数据传输请求的数据包进行解析,剥离所述数据包的最外层的mac地址,得到中间解析包;分离出所述中间解析包中的虚拟标识;从分离后的ip数据包中提取网络层的所述ip头部。7.如权利要求6所述的数据传输方法,其特征在于,所述根据所述ip头部,判断所述数据包是否存在ip分片,包括:获取所述ip头部的上层协议,判断所述上层协议的属性值是否是tcp;在所述上层协议的属性值不是tcp的情况下,根据所述分片标记的属性值,确定所述ip头部是否存在ip分片;其中,所述分片标记的属性值非空表示所述数据包存在ip分片。8.如权利要求1所述的数据传输方法,其特征在于,还包括:提取所述重组数据包的ip头部的源ip地址和目的ip地址;
利用地址白名单对所述源ip地址进行匹配,在所述源ip地址不属于所述地址白名单的情况下,查找所述源ip地址的优先级标识;在所述源ip地址的优先级标识存在的情况下,确定所述重组数据包的过滤结果为数据安全,搜索到达所述目的ip地址的路由条目,按照所述路由条目转发所述重组数据包。9.一种智能网卡的数据传输装置,其特征在于,所述智能网卡包括分片重组开关,所述数据传输装置包括:启闭模块,用于检测所述智能网卡的传输流量,根据所述传输流量设置所述分片重组开关的启闭状态;接收模块,用于接收多个数据传输请求;其中,所述数据传输请求包括数据包;解析模块,用于对所述数据包进行逐层解析,提取各个所述数据包中的ip头部;传输模块,用于根据所述ip头部,判断所述数据包是否存在ip分片,在所述ip分片存在且所述分片重组开关关闭的情况下,将所述数据包向与所述智能网卡配合的物理服务器透传,使得所述物理服务器对所述数据包进行分片重组。10.一种电子设备,包括:处理器;以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1-8中任一项所述的智能网卡的数据传输方法。11.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-8中任一项所述的智能网卡的数据传输方法。

技术总结
本公开提供一种智能网卡的数据传输方法和装置,涉及数据传输技术领域。智能网卡包括分片重组开关,该方法的具体实施方式包括:检测数据传输请求的传输流量,根据所述传输流量设置所述分片重组开关的启闭状态;接收多个数据传输请求;其中,数据传输请求包括数据包;对数据包进行逐层解析,提取各个数据包中的IP头部;根据IP头部,判断数据包是否存在IP分片,在IP分片存在且分片重组开关关闭的情况下,将数据包向与智能网卡配合的物理服务器透传,使得物理服务器对数据包进行分片重组。该实施方式能够满足应用程序在UDP大流量场景下的用户需求,保证流畅的用户使用体验,避免依赖升级成本,提升智能网卡的吞吐性能,提高数据传输效率。率。率。


技术研发人员:陈伟 苏阳 杜侃 陈存利
受保护的技术使用者:度小满科技(北京)有限公司
技术研发日:2023.07.11
技术公布日:2023/10/15
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐