在云服务器上进行卸载的方法、控制装置、存储介质与流程

文档序号:23174274发布日期:2020-12-04 14:05阅读:157来源:国知局
本发明涉及在云服务器上进行卸载的方法、控制装置,云服务器,存储介质,以及系统。
背景技术
::在云计算的环境下,用户对于网络的需求越来越复杂。越来越多的功能都卸载到了硬件上。比如隧道加封装解封装,qos限速等功能。进一步针对通过防火墙功能和nat技术提供了软硬件结合的卸载方案。有硬件转发功能的网卡设备,网卡收到一条新的流的首报文后软件模块做有状态防火墙,nat(网络地址转换)规则查询,将查询结果明细写入硬件的转发缓存,这样后续同样的流在网卡硬件上根据缓存规则直接转发。针对这一方式,目前业界大多都是利用一张完整的基于流的五元组大表去实现流的转发。当命中这张标后就进行转发,没命中就发送给上层应用做鉴权和地址转换,然后下发规则转发。这张完整的五元组大表是固定不变的。这一方式比较适合私有的用户协议栈,并不能很好的与通用netfilter相互结合,而且单表的转发模式不能满足于软件做连接追踪的模式。技术实现要素:为了解决上述问题,本发明提供了一种在云服务器上进行卸载的方法,包括:分配步骤,根据接收到的数据包的隧道信息,在所述云服务器中为所述数据包分配空间区域,所述数据包还包括五元组信息;匹配步骤,判断所述云服务器中的连接追踪表中是否存在与所述数据包匹配的已有数据包;转换步骤,在所述匹配步骤中的判断结果是不存在时,将所述数据包上传到所述云服务器中的协议栈,所述协议栈对所述数据包进行网络地址转换,得到转换地址;存储步骤,将所述五元组信息、所述空间区域、所述转换地址与所述数据包相关联地存储在所述连接追踪表中;卸载步骤,在所述匹配步骤中的判断结果是存在时,根据所述已有数据包的转换地址,对所述数据包进行卸载。其中,所述连接追踪表中存储有地址不同的多个数据包各自相关联的所述五元组信息、所述空间区域、所述转换地址,所述地址不同的多个数据包是所述五元组信息和/或所述空间区域不同的多个数据包。其中,在所述匹配步骤中,判断所述连接追踪表中是否存在与所述数据包的所述五元组信息和所述空间区域都相同的所述已有数据包。其中,所述连接追踪表被实时更新。进一步,本发明还提供了一种在云服务器上进行卸载的控制装置,包括:分配单元,根据接收到的数据包的隧道信息,在所述云服务器中为所述数据包分配空间区域,所述数据包还包括五元组信息;匹配单元,判断所述云服务器中的连接追踪表中是否存在与所述数据包匹配的已有数据包;转换单元,在所述匹配单元中的判断结果是不存在时,将所述数据包上传到所述云服务器中的协议栈,所述协议栈对所述数据包进行网络地址转换,得到转换地址;存储单元,将所述五元组信息、所述空间区域、所述转换地址与所述数据包相关联地存储在所述连接追踪表中;卸载单元,在所述匹配单元中的判断结果是存在时,根据所述已有数据包的转换地址,对所述数据包进行卸载。其中,所述连接追踪表中存储有地址不同的多个数据包各自相关联的所述五元组信息、所述空间区域、所述转换地址,所述地址不同的多个数据包是所述五元组信息和/或所述空间区域不同的多个数据包。其中,在所述匹配单元中,判断所述连接追踪表中是否存在与所述数据包的所述五元组信息和所述空间区域都相同的所述已有数据包。其中,所述连接追踪表被实时更新。本发明还提供了一种云服务器,所述云服务器包括一个或多个硬件网卡,所述一个或多个硬件网卡中的每个硬件网卡包括如上所述的控制装置。本发明还提供了一种计算机可读的存储介质,所述存储介质具有存储在其中的指令,当所述指令被执行时,使得所述计算机执行在云服务器上进行卸载的方法,所述指令包括:分配指令,根据接收到的数据包的隧道信息,在所述云服务器中为所述数据包分配空间区域,所述数据包还包括五元组信息;匹配指令,判断所述云服务器中的连接追踪表中是否存在与所述数据包匹配的已有数据包;转换指令,在所述匹配指令中的判断结果是不存在时,将所述数据包上传到所述云服务器中的协议栈,所述协议栈对所述数据包进行网络地址转换,得到转换地址;存储指令,将所述五元组信息、所述空间区域、所述转换地址与所述数据包相关联地存储在所述连接追踪表中;卸载指令,在所述匹配指令中的判断结果是存在时,根据所述已有数据包的转换地址,对所述数据包进行卸载。本发明还提供了一种系统,包括:存储器,用于存储由系统的一个或多个处理器执行的指令,以及处理器,是所述系统的处理器之一,用于执行如上所述的在云服务器上进行卸载的方法。本发明中,设置有连接追踪表,如此,在接收到数据包时,当判断出连接追踪表中已经存在地址相同的已有数据包时,直接根据连接追踪表中存储的已有数据包的转换地址对该数据包进行卸载,而无需对当前接收到的数据包重复进行网络地址转换。因此,可以提高卸载效率。附图说明图1示出了根据本发明实施例的在云服务器上进行卸载的系统的框图;图2示出了包含根据本发明实施例的云服务器的示意图;图3示出了根据本发明实施例的在云服务器上进行卸载的控制装置的结构图;图4示出了根据本发明实施例的在云服务器上进行卸载的方法的流程图。具体实施方式以下由特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其他优点及功效。虽然本发明的描述将结合较佳实施例一起介绍,但这并不代表此发明的特征仅限于该实施方式。恰恰相反,结合实施方式作发明介绍的目的是为了覆盖基于本发明的权利要求而有可能延伸出的其它选择或改造。为了提供对本发明的深度了解,以下描述中将包含许多具体的细节。本发明也可以不使用这些细节实施。此外,为了避免混乱或模糊本发明的重点,有些具体细节将在描述中被省略。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。应注意的是,在本说明书中,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。术语“第一”、“第二”等仅用于区分描述,不表示任何顺序,不能理解为指示或暗示相对重要性。为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。本发明所提供的实施方式可以在移动终端、计算机终端、或者类似的运算装置(如ecu(electroniccontrolunit,电子控制单元))、系统中执行。以运行在系统为例,图1是根据本发明实施例的在云服务器上进行卸载的系统的硬件结构框图。如图1所示,系统100可以包括一个或多个(图中仅示出一个)处理器101(处理器101可以包括但不限于中央处理器cpu、图像处理器gpu、数字信号处理器dsp、微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于与用户交互的输入输出接口102、用于存储数据的存储器103、以及用于通信功能的传输装置104。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,系统100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。输入输出接口102可以连接一个或多个显示器、触控屏等,用于显示从系统100传送的数据,还可以连接键盘、触控笔、触控板和/或鼠标等,用于输入诸如,选择、创建、编辑等的用户指令。存储器103可用于存储应用软件的软件程序以及模块,例如与本发明实施方式中的在云服务器上进行卸载的方法对应的程序指令/模块,处理器101通过运行存储在存储器103内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的在云服务器上进行卸载的方法。存储器103可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器103可进一步包括相对于处理器101远程设置的存储器,这些远程存储器可以通过网络连接至系统100。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输装置104用于经由一个网络接收或者发送数据。上述的网络具体实例可包括系统100的通信供应商提供的互联网。在上述运行环境下,本发明提供了在云服务器上进行卸载的方法的流程图。图2示出了包含根据本发明实施例的云服务器200的示意图。如图2所示,云服务器200包括硬件网卡201、虚拟网卡203、与虚拟网卡202相对应的隧道204,其中,硬件网卡201包括控制装置202。本实施例中,为了便于说明,图2中仅显示了一个硬件网卡204,一个虚拟网卡203,与虚拟网卡203相对应的一个隧道204,但是它们的数量可以是任意个,而不受限制。本实施例中,云服务器200使用的操作系统是linux系统。图3示出了包含根据本发明实施例的控制装置202的结构图。如图3所示,控制装置202包括分配单元2021,匹配单元2022,转换单元2023,存储单元2024以及卸载单元2025。图4示出了根据本发明实施例的在云服务器上进行卸载的方法的流程图。下面结合图2-图4对本发明的实施例进行详细说明。在步骤s41,分配单元2021根据接收到的数据包的隧道信息,在云服务器200中为数据包分配空间区域。在云服务器200上,通过授权而划分出多个空间区域,用于实现多个租户在同一个服务器上的数据分隔。数据包还包括五元组信息,五元组信息包括ip地址,源端口,目的ip地址,目的端口,和传输层协议。该数据包例如是经由隧道204传输的,因此隧道信息就是隧道204的标识符,即,隧道id。在步骤s42,匹配单元2022判断云服务器200中的连接追踪表中是否存在与该数据包匹配的已有数据包。连接追踪表存储在云服务器200中的存储器(图未示)中,稍后将详细描述连接追踪表。具体的,在步骤s42中,匹配单元2022判断连接追踪表中是否存在与该数据包的五元组信息和空间区域都相同的已有数据包。初始情况下,连接追踪表没有存储任何信息,因此步骤s42的判断结果是不存在(否),接着进入步骤s43。在步骤s43,转换单元2023将数据包上传到云服务器200中的协议栈205,协议栈205对数据包进行网络地址转换,得到转换地址。协议栈205是云服务器中200已经存储配置好的一系列网络协议的堆叠,协议栈205根据五元组信息对该数据包进行鉴权,并在鉴权成功后,对该数据包进行网络地址转换(nat),从而生成转换地址。协议栈205将生成的转换地址下发给转换单元2023。在步骤s44,存储单元2024将五元组信息、空间区域、转换地址与该数据包相关联地存储在连接追踪表中。本实施例中,例如,连接追踪表如下表1所示。表1数据包五元组信息空间区域转换地址连接状态aq1z1ip1已连接bq1z2ip2已连接cq2z1ip3已连接dq3z1无未连接如上所述,在接收到数据包a后,将五元组信息q1,空间区域z1,转换地址ip1与数据包a相关联地存储在表1中。此时,表示数据包a的卸载连接已建立。如表1所示,连接追踪表还包括连接状态,针对数据包a的连接状态是“已连接”。在接收到后续的数据包b,c,d后,按照上述流程,将数据包b,c,d各自相关联的五元组信息、空间区域、转换地址存储在连接追踪表。如表1所示,连接追踪表中存储了地址不同的多个数据包a,b,c,d各自相关联的五元组信息、空间区域、转换地址。地址不同的多个数据包是五元组信息和/或空间区域不同的多个数据包。本实施例中,数据包a,b,c,d是地址不同的数据包。另外,例如,接收到数据包d之后,在步骤s43中,转换单元2023将数据包d上传给协议栈205。协议栈205根据数据包d的五元组信息对其进行鉴权,在鉴权不成功后,不对数据包d进行网络地址转换(nat)。因此,如表1所示,数据包d的转换地址是“无”。此时,表示数据包d的卸载连接未建立。如表1所示,针对数据包d的连接状态是“未连接”。在本实施例中,当接收到例如数据包e时,如上所述,在步骤s41中,例如得到数据包e的空间区域z2以及五元组信息q1。在步骤s42,判断表1中是否存在与数据包e的五元组信息q1和空间区域z2都相同的已有数据包。如表1所示,可以判断出存在已有数据包b。即,数据包e与数据包b是地址相同的数据包。本实施例中,地址相同的数据包是指五元组信息和空间区域都相同的数据包。接着,进入步骤s45,卸载单元2025根据已有数据包b的转换地址ip2,对数据包e进行卸载。本实施例中,对数据包e进行卸载是指将数据包e从硬件网卡201卸载到云服务器200之外的计算设备(图未示)。这里,例如,表1中所示的数据包a例如是数据流a的首报文,数据包b例如是数据流b的首报文,数据包c例如是数据流c的首报文,数据包d例如是数据流d的首报文。也就是说,连接追踪表中存储的使每条数据流的首报文。另外,如表1所示,数据包a的连接状态是“已连接”,表示数据流a的卸载连接未建立,因此可以对该数据流a的后续数据包直接进行卸载。数据包d的连接状态是“未连接”,表示数据流d的卸载连接未建立,因此不能对该数据流d的后续数据包进行卸载。本实施例中,地址相同的数据包属于同一个流。例如,数据包b和数据包e属于同一个流。本发明中,根据上述方法,设置有连接追踪表,如此,在接收到数据包时,当判断出连接追踪表中已经存在地址相同的已有数据包时,直接根据连接追踪表中存储的已有数据包的转换地址对该数据包进行卸载,而无需对当前接收到的数据包重复进行网络地址转换。因此,可以提高卸载效率。进一步,本实施例中,连接追踪表可以被实时更新,以进一步提高卸载效率。例如,当开始接收又一条新数据流时,可以按照上述方法将这条新数据流的首报文的五元组信息、空间区域、转换地址添加(存储)到连接追踪表中。另外,当接收到的数据包(例如数据包f)是数据流b的尾部报文时,在按照上述方法将数据包f进行卸载之后,可以从连接追踪表中删除数据包b的五元组信息、空间区域、转换地址,从而可以节省存储空间。进一步,可以设置时间阈值,当存储时间经过该时间阈值时,从连接追踪表中删除对应数据包的五元组信息、空间区域、转换地址,从而可以进一步节省存储空间。本发明的方法能灵活的适配当前通用linux内核连接追踪的软件模式,为openvswitch,nftable等firewall软件使用,并且能很好的支持隧道和多租户。本发明中还提供一种计算机可读的存储介质,存储介质具有存储在其中的指令,当指令被执行时,使得计算机执行在云服务器上进行卸载的方法,指令包括:分配指令,根据接收到的数据包的隧道信息,在所述云服务器中为所述数据包分配空间区域,所述数据包还包括五元组信息;匹配指令,判断所述云服务器中的连接追踪表中是否存在与所述数据包匹配的已有数据包;转换指令,在所述匹配指令中的判断结果是不存在时,将所述数据包上传到所述云服务器中的协议栈,所述协议栈对所述数据包进行网络地址转换,得到转换地址;存储指令,将所述五元组信息、所述空间区域、所述转换地址与所述数据包相关联地存储在所述连接追踪表中;卸载指令,在所述匹配指令中的判断结果是存在时,根据所述已有数据包的转换地址,对所述数据包进行卸载。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的终端设备来实现。在列举了若干终端设备的单元权利要求中,这些终端设备中的若干个可以是通过同一个硬件项来具体体现。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1