CN115460213A - 一种业务处理方法、装置、电子设备及计算机可读介质 - Google Patents
一种业务处理方法、装置、电子设备及计算机可读介质 Download PDFInfo
- Publication number
- CN115460213A CN115460213A CN202211041649.9A CN202211041649A CN115460213A CN 115460213 A CN115460213 A CN 115460213A CN 202211041649 A CN202211041649 A CN 202211041649A CN 115460213 A CN115460213 A CN 115460213A
- Authority
- CN
- China
- Prior art keywords
- session
- processed
- unloading
- fast
- forwarding address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/148—Migration or transfer of sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了业务处理方法、装置、电子设备及计算机可读介质,涉及负载均衡技术领域,该方法包括:获取待处理会话和待处理会话对应的目标转发地址;将目标转发地址与预设会话表项进行匹配,响应于匹配失败,获取目标转发地址对应的属性标识,响应于属性标识对应新建数据流,获取会话快表全局水位信息;根据会话快表全局水位信息确定卸载到会话快表中的待处理会话的会话数量;基于会话数量确定卸载类型,基于卸载类型将待处理会话卸载至会话快表中,进而将卸载至会话快表中的会话转发至与对应的目标转发地址对应的服务器。最大化利用存储和性能资源,实现高速转发、大表项周转、转发低时延。
Description
技术领域
本申请涉及负载均衡技术领域,尤其涉及一种业务处理方法、装置、电子设备及计算机可读介质。
背景技术
当前比较流行的四层负载均衡器是基于LVS调度器来实现的,通过X86服务器集群来进行部署,以实现流量负载均衡的功能。终端互联网用户从外部访问公司的负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据预设的算法决定将该请求发送给后端的某台Web服务器。
在实现本申请过程中,发明人发现现有技术中至少存在如下问题:
负载均衡器实现的转发逻辑,存在时延,转发速度慢。
发明内容
有鉴于此,本申请实施例提供一种业务处理方法、装置、电子设备及计算机可读介质,能够解决现有的负载均衡器实现的转发逻辑,存在时延,转发速度慢的问题。
为实现上述目的,根据本申请实施例的一个方面,提供了一种业务处理方法,包括:
获取待处理会话和待处理会话对应的目标转发地址;
将目标转发地址与预设会话表项进行匹配,响应于匹配失败,获取目标转发地址对应的属性标识,响应于属性标识对应新建数据流,获取会话快表全局水位信息;
根据会话快表全局水位信息确定卸载到会话快表中的待处理会话的会话数量;
基于会话数量确定卸载类型,基于卸载类型将待处理会话中与会话数量对应的会话卸载至会话快表中,进而将卸载至会话快表中的会话转发至与对应的目标转发地址对应的服务器。
可选地,在响应于属性标识对应新建数据流之后,业务处理方法还包括:
新建一个会话节点;以及
基于卸载类型将待处理会话卸载至会话快表中,包括:
通过新建的会话节点,将与卸载类型对应的待处理会话卸载至会话快表中。
可选地,基于卸载类型将待处理会话卸载至会话快表中,包括:
确定待处理会话对应的流量;
将待处理会话中大于预设流量阈值的流量对应的会话确定为目标会话;
基于卸载类型将与会话数量对应的目标会话卸载至会话快表中。
可选地,在获取目标转发地址对应的属性标识之前,业务处理方法包括:
将目标转发地址与预设会话快表进行匹配,响应于不存在匹配的会话快表表项,确定会话快表匹配失败,进而调用预设会话慢表以与目标转发地址进行匹配,响应于不存在匹配的会话慢表表项,确定匹配失败。
可选地,业务处理方法还包括:
响应于匹配成功,获取匹配到的表项中的键值对;
基于键值对修改待处理会话对应的报文,进而将修改后的报文转发。
可选地,在基于卸载类型将待处理会话卸载至会话快表中之后,业务处理方法还包括:
响应于卸载类型为全卸载,对会话快表的定时器设置超时老化时间,以在超时老化时间到达时执行对相应会话的删除操作。
可选地,在基于卸载类型将待处理会话卸载至会话快表中之后,方法还包括:
响应于卸载类型为半卸载,调用会话快表以定时发送心跳报文,以重置会话慢表表项的定时器,以使会话慢表中剩余的待处理会话存活。
可选地,业务处理方法还包括:
响应于接收到会话超时报文,执行相应的会话删除操作。
另外,本申请还提供了一种业务处理装置,包括:
接收单元,被配置成获取待处理会话和待处理会话对应的目标转发地址;
匹配单元,被配置成将目标转发地址与预设会话表项进行匹配,响应于匹配失败,获取目标转发地址对应的属性标识,响应于属性标识对应新建数据流,获取会话快表全局水位信息;
会话数量确定单元,被配置成根据会话快表全局水位信息确定卸载到会话快表中的待处理会话的会话数量;
会话转发单元,被配置成基于会话数量确定卸载类型,基于卸载类型将待处理会话卸载至会话快表中,进而将卸载至会话快表中的会话转发至与对应的目标转发地址对应的服务器。
可选地,装置还包括新建单元,被配置成:
新建一个会话节点;以及
会话转发单元进一步被配置成:
通过新建的会话节点,将与卸载类型对应的待处理会话卸载至会话快表中。
可选地,会话转发单元进一步被配置成:
确定待处理会话对应的流量;
将待处理会话中大于预设流量阈值的流量对应的会话确定为目标会话;
基于卸载类型将与会话数量对应的目标会话卸载至会话快表中。
可选地,匹配单元进一步被配置成:
将目标转发地址与预设会话快表进行匹配,响应于不存在匹配的会话快表表项,确定会话快表匹配失败,进而调用预设会话慢表以与目标转发地址进行匹配,响应于不存在匹配的会话慢表表项,确定匹配失败。
可选地,业务处理装置还包括报文修改单元,被配置成:
响应于匹配成功,获取匹配到的表项中的键值对;
基于键值对修改待处理会话对应的报文,进而将修改后的报文转发。
可选地,业务处理装置还包括会话删除单元,被配置成:
响应于卸载类型为全卸载,对会话快表的定时器设置超时老化时间,以在超时老化时间到达时执行对相应会话的删除操作。
可选地,业务处理装置还包括定时器重置单元,被配置成:
响应于卸载类型为半卸载,调用会话快表以定时发送心跳报文,以重置会话慢表表项的定时器,以使会话慢表中剩余的待处理会话存活。
可选地,业务处理装置还包括会话删除单元,被配置成:
响应于接收到会话超时报文,执行相应的会话删除操作。
另外,本申请还提供了一种业务处理电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述的业务处理方法。
另外,本申请还提供了一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现如上述的业务处理方法。
上述发明中的一个实施例具有如下优点或有益效果:本申请通过获取待处理会话和待处理会话对应的目标转发地址;将目标转发地址与预设会话表项进行匹配,响应于匹配失败,获取目标转发地址对应的属性标识,响应于属性标识对应新建数据流,获取会话快表全局水位信息;根据会话快表全局水位信息确定卸载到会话快表中的待处理会话的会话数量;基于会话数量确定卸载类型,基于卸载类型将待处理会话卸载至会话快表中,进而将卸载至会话快表中的会话转发至与对应的目标转发地址对应的服务器。通过在会话表项匹配失败后,根据会话快表全局水位信息确定需要卸载到会话快表的会话数量,然后根据该会话数量确定卸载类型,根据卸载类型执行相应的会话卸载及会话转发。最大化利用存储和性能资源,实现高速转发、大表项周转、转发低时延。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本申请,不构成对本申请的不当限定。其中:
图1是根据本申请第一实施例的业务处理方法的主要流程的示意图;
图2是根据本申请第二实施例的业务处理方法的主要流程的示意图;
图3是根据本申请实施例的业务处理方法的业务逻辑拓扑示意图;
图4是根据本申请实施例的业务处理方法的部署网络拓扑示意图;
图5是根据本申请实施例的业务处理方法的可编程交换机处理流程图;
图6是根据本申请实施例的业务处理装置的主要单元的示意图;
图7是本申请实施例可以应用于其中的示例性系统架构图;
图8是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
图1是根据本申请第一实施例的业务处理方法的主要流程的示意图,如图1所示,业务处理方法包括:
步骤S101,获取待处理会话和待处理会话对应的目标转发地址。
本申请实施例所应用到的业务逻辑拓扑图如图3所示,其中,三个处理部分分别为P4侧、ARM侧和X86侧:P4侧为ASIC转发芯片侧,X86侧为intel-CPU系统,ARM侧为arm-CPU系统侧,三部分功能不同;X86侧调用API给P4侧芯片下发表项,和ARM侧进行报文交互。
P4侧用于会话快表的匹配转发,也是整个数据包处理的中转站;主要为一组session table用于匹配报文五元组(报文五元组包括:源IP,目标IP,源端口,目标端口,协议号),做快速转发路径;会话表个数与X86部分处理会话增删的cpu个数相等,保证并行下发能力;每个会话(sesssion)表项设定老化时间,超时未刷新则通知X86部分进行会话表项删除;未匹配的会话通过hash发往ARM扣卡指定网口,ARM处理完的报文从100G端口接收,并按照相同的hash发出。本申请实施例的会话快表就是存放在高速缓冲存储器的部分页表。作为页表的缓存,它的作用与页表相似,但是提高了访问速率。采用会话快表可以加速查找并提高指令执行速度。
ARM侧处理慢转发路径,接收网口报文并进行标准的DPVS处理流程,完成三次握手会话建立,所有报文DPVS处理完均再由接收网口发回;当会话建立后,根据流速及其他规则,选取大流量会话(例如大于某一阈值流量的会话,本申请实施例对该阈值不做具体限定),通过专用网口发送给X86部分,用于下发P4表项。
X86侧处理会话管理,通过专用网口接收ARM部分发来的会话添加通知,并根据自身cpu_id下发至P4芯片对应的session-table中;当P4芯片的会话表项超时时,接收超时通知,并下发对应的会话表项删除。
本实施例中,业务处理方法的执行主体(例如,可以是挂载有P4设备和ARM的服务器,在服务器中P4设备和ARM实现各自的功能)可以通过有线连接或无线连接的方式,从ARM侧的会话慢表中获取待处理会话。具体地,本申请实施例以转发会话数据为例,执行主体可以从会话慢表中获取待处理会话,待处理会话可以是待转发的会话。会话(session)是通信双方从开始通信到通信结束期间的一个上下文(context)。这个上下文是一段位于服务器端的内存:记录了本次连接的客户端机器、通过哪个应用程序、哪个用户登录等信息。“会话”可以理解为一个信息交互的过程,如客户端与服务器建立链接后数据传输的过程。这个过程从建立连接开始,到断开连接结束,期间可能涉及某一方多次信息的传递。
在业务处理请求中携带有待处理会话需要转发的地址也就是待处理会话对应的目标转发地址,即目标IP地址。目标转发地址与会话表项进行匹配,将会话表项中匹配到的值确定为要修改报文的内容。会话表项中存储键值对key-value,其中key即为要与目标IP地址匹配的内容,value即为匹配到的与key对应的要修改的报文的内容(即在key匹配后,根据匹配的key对应的value来修改报文中相应的IP和端口)。
步骤S102,将目标转发地址与预设会话表项进行匹配,响应于匹配失败,获取目标转发地址对应的属性标识,响应于属性标识对应新建数据流,获取会话快表全局水位信息。
具体地,在获取目标转发地址对应的属性标识之前,业务处理方法包括:将目标转发地址与预设会话快表进行匹配,响应于不存在匹配的会话快表表项,确定会话快表匹配失败,进而调用预设会话慢表以与目标转发地址进行匹配,响应于不存在匹配的会话慢表表项,确定匹配失败。
本申请实施例中,表项内容为key+value,匹配的是key(报文的目标IP),匹配后的动作是value,value是对报文的修改。报文(message)是网络中交换与传输的会话数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。具体地,表项为:key+value,key就是要匹配的内容(目标IP),value的字段值(要更换的源IP、目标IP和源端口、目标端口)就是要修改的报文的内容。执行主体在得到匹配到的value的字段值后,可以将报文中的源IP、目标IP和源端口、目标端口修改为匹配到的value的字段值中的源IP、目标IP和源端口、目标端口,以得到修改后的报文并转发出去。修改报文原则是只修改IP和端口地址,其他用户数据不动。
本申请实施例中,如果没有匹配上会话快表,则将数据包转发至ARM侧,ARM部分由DPVS(DPVS是一个基于DPDK的高性能四层负载均衡器(Layer-4load balancer))接管两个100G业务网口,DPVS来解析数据包,执行主体可以用目标转发地址匹配内部维护的会话慢表,如果存在匹配表项,则根据匹配到表项的action内容(即匹配到的键值对中的value值),进行修改报文后转发给P4侧,P4侧收到报文后直接转发出去。如果ARM侧没有匹配上会话慢表,则继续判断是否为新建流,即是否已经完成三次握手会话建立;如果不是新建流,则将该报文直接丢弃,不作转发,此时说明会话已经老化掉了。
具体地,业务处理方法还包括:响应于匹配成功,获取匹配到的表项中的键值对;基于键值对修改待处理会话对应的报文,进而将修改后的报文转发。
当执行主体确定目标转发地址与表项中的某一个键值对匹配时,可以获取表项中与该目标转发地址相对应的键值对。示例的,该键值对例如可以是:目标转发地址-ABCD,其中,A、B分别为匹配到的源IP、目标IP,C、D分别为匹配到的源端口、目标端口。
示例的,待处理会话的数据包先进入P4的会话快表匹配,如果存在匹配表项,则根据匹配到表项的键值对中的action内容(也就是键值对中的value值),进行修改报文后直接转发出去,会话快表的转发为硬件转发,可达到线速转发的目的。
将目标转发地址与预设会话表项进行匹配,响应于匹配失败,获取目标转发地址对应的属性标识,响应于属性标识对应新建数据流,获取会话快表全局水位信息。属性标识用于表征是否是新建数据流,若是则获取会话快表的全局水位信息,以确定需要将多少会话数据卸载至会话快表中,以使整体达到一个高效率转发的水平。
步骤S103,根据会话快表全局水位信息确定卸载到会话快表中的待处理会话的会话数量。
全局水位信息,示例的,可以是快表使用率百分比,例如<80%low、<90%middle、<99%high、>99%max;每一个快表使用率有对应的会话卸载数量阈值。在不超过快表使用率对应的会话卸载数量阈值的前提下,确定需要卸载到P4侧的会话快表中的大流量会话的数量,以此来达到反馈调节作用,使整体达到一个高效率转发的水平。
步骤S104,基于会话数量确定卸载类型,基于卸载类型将待处理会话卸载至会话快表中,进而将卸载至会话快表中的会话转发至与对应的目标转发地址对应的服务器。
具体地,执行主体可以判断待处理会话对应的流量是否为持续流量,进而基于会话数量和待处理会话对应的流量是否为持续流量来确定卸载类型。
卸载类型包括全卸载和半卸载。全卸载的含义为只维护会话快表(会话快表存在于硬件中),不执行与会话慢表的同步过程,不发送心跳报文,会话快表的定时器超时设置时间较长,如90秒,会话快表中的会话待到超时会自然老化。半卸载的含义为会执行会话快表与会话慢表(会话慢表存在于内存中)的同步过程,会话快表的定时器超时设置时间较短,如3-5秒,会话快表会定时发送心跳报文以重置会话慢表表项的定时器,以确保在会话快表超时失效后,会话慢表还可以作为兜底继续处理后续的会话报文。卸载类型可以由如图5所示的ARM侧的算法判定得到,具体地,ARM侧获取CPU统计信息,该统计信息包括会话流量值、是否为持续流量,其中,持续流量指的是在预设时间段内不间断的会话流量。根据统计信息中的会话流量值和是否为持续流量确定卸载类型。具体地,半卸载适用于大流量、持续流量的场景。全卸载适用于除了大流量、持续流量之外的场景。大流量指的是会话流量值超出一定阈值的流量。
具体地,基于卸载类型将待处理会话卸载至会话快表中,包括::确定待处理会话对应的流量;将待处理会话中大于预设流量阈值的流量对应的会话(也就是大流量会话)确定为目标会话;基于卸载类型(全卸载或半卸载)将与会话数量对应的目标会话卸载至会话快表中。
待处理会话对应的流量,例如,可以是通信双方单位时间内传输的数据包的数量。
具体地,在基于卸载类型将待处理会话卸载至会话快表中之后,业务处理方法还包括:响应于卸载类型为全卸载,对会话快表的定时器设置超时老化时间,以在超时老化时间到达时执行对相应会话的删除操作。
其中,对于full-offload全卸载模式和half-offload半卸载模式,全卸载模式:会话慢表的表项下发后无需后续维护,等待自然超时老化即可,后续该连接报文将全由会话快表处理,会话快表的定时器超时设置较长,如90秒。
具体地,在基于卸载类型将待处理会话卸载至会话快表中之后,业务处理方法还包括:响应于卸载类型为半卸载,调用会话快表以定时发送心跳报文,以重置会话慢表表项的定时器,以使会话慢表中剩余的待处理会话存活。
半卸载模式:会话慢表的表项下发后,会话快表会定时发送心跳触发会话慢表表项的定时器重置,会话快表的定时器超时设置较短,如3-5秒,确保会话快表失效后,会话慢表还可以继续处理后续的报文。
具体地,业务处理方法还包括:响应于接收到会话超时报文,执行相应的会话删除操作。
无论是全卸载还是半卸载模式,X86侧均处理对应快表会话定时器老化,接收到表项超时通知后,会执行对应的会话表项删除操作。
本实施例通过获取待处理会话和待处理会话对应的目标转发地址;将目标转发地址与预设会话表项进行匹配,响应于匹配失败,获取目标转发地址对应的属性标识,响应于属性标识对应新建数据流,获取会话快表全局水位信息;根据会话快表全局水位信息确定卸载到会话快表中的待处理会话的会话数量;基于会话数量确定卸载类型,基于卸载类型将待处理会话卸载至会话快表中,进而将卸载至会话快表中的会话转发至与对应的目标转发地址对应的服务器。通过在会话表项匹配失败后,根据会话快表全局水位信息确定需要卸载到会话快表的会话数量,然后根据该会话数量确定卸载类型,根据卸载类型执行相应的会话卸载及会话转发。最大化利用存储和性能资源,实现高速转发、大表项周转、转发低时延。
图2是根据本申请第二实施例的业务处理方法的主要流程示意图,如图2所示,业务处理方法包括:
步骤S201,获取待处理会话和待处理会话对应的目标转发地址。
目标转发地址即要将待处理会话最终转发到的目标节点所对应的IP地址。
步骤S202,将目标转发地址与预设会话表项进行匹配,响应于匹配失败,获取目标转发地址对应的属性标识,响应于属性标识对应新建数据流,新建一个会话节点;以及基于卸载类型将待处理会话卸载至会话快表中,包括:通过新建的会话节点,将与卸载类型对应的待处理会话卸载至会话快表中。
如果判断是新建流,则继续执行DPVS的处理流程,新建一个会话节点,根据配置的策略选取一个后端真实的服务器,然后通过新建的会话节点将该报文转发给P4侧,也就是通过新建的会话节点将与卸载类型对应的待处理会话卸载至P4侧的会话快表中,P4侧收到报文后直接转发出去。其中,DPVS是一个基于DPDK的高性能四层负载均衡器(Layer-4loadbalancer)。
步骤S203,获取会话快表全局水位信息。
会话快表全局水位信息可以为会话快表使用率,例如<80%low(水位低)、<90%middle(水位中)、<99%high(水位高)、>99%max(水位最高)。可以理解的是,会话快表全局水位信息对应的水位越高,则可以再容纳的会话数据越少。通过获取会话快表全局水位信息可以准确地确定出需要将多少个大流量会话卸载到P4侧的会话快表中(卸载类型),以此来达到反馈调节作用,使整体达到一个高效率转发的水平
步骤S204,根据会话快表全局水位信息确定卸载到会话快表中的待处理会话的会话数量。
步骤S205,基于会话数量确定卸载类型,基于卸载类型将待处理会话卸载至会话快表中,进而将卸载至会话快表中的会话转发至与对应的目标转发地址对应的服务器。
本申请实施例通过在会话表项匹配失败后,根据会话快表全局水位信息确定需要卸载到会话快表的会话数量,然后根据该会话数量确定卸载类型,根据卸载类型执行相应的会话卸载及会话转发。最大化利用存储和性能资源,实现高速转发、大表项周转、转发低时延。
图4是根据本申请第四实施例的业务处理方法的部署网络拓扑示意图。如图4所示,用户访问网络时,通过洋葱路由器(The Onion Router,TOR)访问一个地址时,所经过的节点在TOR节点群中随机挑选。工作模式为DR直接路由模式,通过bgp发布VIP路由,将流量引到P4可编程交换机中,处理完成后,通过负载均衡将流量分发到后端的真实服务器上,而真实服务器响应后的处理结果基于RS流量控制直接返回给客户端用户。洋葱路由器是一个类似于P2P原理的代理服务器,所有安装了洋葱路由的用户既是代理服务器的使用者也是代理服务器的提供者。洋葱路由器是一个工具集,各类组织和个人可以用它来增强自己在互联网上的安全性。洋葱路由器能够匿名化你的Web浏览与发布、即时通讯、IRC、SSH和其他使用TCP协议的应用。洋葱路由器同时提供了一个平台,软件开发人员能够在上面构建具有内建匿名性、安全性与隐私保护特性的新的应用程序。
图5是根据本申请实施例的业务处理方法的可编程交换机处理流程图。如图5所示,P4设备处理流程描述如下:
数据包先与P4的会话快表进行匹配,如果存在匹配表项,则根据匹配到表项的action内容,进行修改报文后直接转发出去,会话快表的转发为硬件转发,可达到线速转发的目的。
如果没有匹配上会话快表,则将数据包转发至ARM侧,ARM部分由DPVS(DPVS是一个基于DPDK的高性能四层负载均衡器(Layer-4load balancer))接管两个100G业务网口,DPVS来解析数据包,匹配内部维护的会话慢表,如果存在匹配表项,则根据匹配到表项的action内容,进行修改报文后转发给P4侧,P4侧收到报文后直接转发出去。会话(Session)是通信双方从开始通信到通信结束期间的一个上下文(context)。这个上下文是一段位于服务器端的内存:记录了本次连接的客户端机器、通过哪个应用程序、哪个用户登录等信息。“会话”可以理解为一个信息交互的过程,如客户端与服务器建立链接后数据传输的过程。这个过程从建立连接开始,到断开连接结束,期间可能涉及某一方多次信息的传递。
如果ARM侧没有匹配上会话慢表,则判断是否为新建流,即是否已经完成三次握手会话建立;如果不是新建流,则将该报文直接丢弃,不作转发,此时说明会话已经老化掉了。
如果判断是新建流,则继续执行DPVS的处理流程,新建一个会话节点,根据配置的策略选取一个后端真实的服务器,然后将该报文转发给P4侧,P4侧收到报文后直接转发出去。
ARM侧创建会话节点后,会根据算法判定,将部分大流量会话卸载到P4侧的会话快表中,减轻ARM侧负载压力。同时会根据X86侧同步过来的Session_Info报文,进行同步判定,根据Session_Info报文中会话快表全局水位信息,比如:快表使用率百分比:<80%low、<90%middle、<99%high、>99%max;由此可以确定需要将多少个大流量会话卸载到P4侧的会话快表中(卸载类型),以此来达到反馈调节作用,使整体达到一个高效率转发的水平。
大流量会话卸载至快表的过程,是通过获取会话及卸载类型,将会话信息封装到Session_Add报文中,通过25G的Session交互专用物理通道,转发给X86侧,X86侧通过网口收到该报文后,获取报文中的会话信息,通过P4控制面的API接口写入到会话快表。
Session_Add报文中支持两种卸载类型:full-offload全卸载和half-offload半卸载,全卸载模式会话慢表的表项下发后无需后续维护,等待自然超时老化即可,后续该连接报文将全由会话快表处理,会话快表的定时器超时设置较长,如90秒。半卸载模式会话慢表的表项下发后,会话快表会定时发送心跳触发会话慢表表项的定时器重置,会话快表的定时器超时设置较短,如3-5秒,确保会话快表失效后,会话慢表还可以继续处理后续的报文。
X86侧在表项为半卸载模式下,会话快表表项会定时(20-30秒之间)触发会话的心跳报文,封装Session_Hold报文转发给ARM侧,ARM侧DPVS收到Session_Hold报文后,会触发会话慢表中的定时器重置,实现会话保活的功能。
无论是全卸载还是半卸载模式,X86侧均处理对应快表会话定时器老化,接收到表项超时通知后,会执行对应的会话表项删除操作。
本申请实施例通过P4可编程交换机实现流量负载均衡,提供大带宽以及线速转发能力。基于ARM扩展卡方案,对P4可编程交换机上的X86模块、ARM模块、P4模块均最大化利用存储和性能资源,实现高速转发、大表项周转、快慢路径等特性。
通过P4可编程交换机可实现2.4T的最大带宽转发能力,是单台x86服务器带宽上限的30倍,实际部署中,可大大降低部署集群的规模,同时也降低了成本。对于边缘cdn机房流量不大,部署两台P4可编程交换机即可,两台之间做主备切换使用,这种部署对于设备的管理和维护都很便捷,提升了运维人员的工作效率。由于P4可编程交换机侧由硬件进行转发,因此对于P4侧维护的会话快表转发来说,流量是可以做到线速转发。
本申请实施例中,P4:与协议无关的数据包处理编程语言。LVS:即Linux虚拟服务器,开源的四层流量负载均衡项目。DPDK:数据面开发套件,用于快速数据包处理的函数库和驱动集合;可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。DPVS:一个基于DPDK+LVS的开源高性能四层负载均衡器。快表:在这里P4侧快表是指的硬件转发,能达到线速转发的效率,区别于ARM侧的会话慢表,ARM侧的会话表是软件维护的,转发有时延;P4:P4是一种语言,在这里指的是P4可编程交换机,P4侧代表硬件转发这一部分;Session_Hold:一种报文标识,X86侧转发给ARM侧的报文,目的是把会话慢表中的会话保留下去,保证会话别提前老化掉;Session_Info:一种报文标识,X86侧转发给ARM侧的报文,目的是告诉ARM侧当前会话快表使用率;Session_Add:一种报文标识,ARM侧发送给X86侧的报文,目的是把会话信息(五元组)封装到这种报文中,让X86获取到会话信息然后通过API接口下发到P4侧的会话快表中。图3中在ARM侧获取的会话心跳信息具体是指代这个会话的标识,会话表中有很多的会话,需要标识具体是哪一个会话,这个标识是五元组信息(源IP,目标IP,源端口,目的端口,协议号)。表项匹配:表项为:key和value,key就是要匹配的内容(目标IP),value的字段值(要更换的源IP、目标IP和源端口、目标端口)就是要修改的报文的内容;修改报文原则是只修改IP和端口地址,其他用户数据不动。
本申请实施例基于可编程交换机实现,管理、session交互、业务转发物理通道隔离,避免互相影响;ARM解决了标准白盒设备CPU性能较弱,无法处理大量流量转发的问题,可以使X86 cpu更集中于配置和会话的管控;方案整体对X86、ARM、P4均最大化利用存储和性能资源,实现高速转发、大表项周转、快慢路径等特性。
图6是根据本申请实施例的业务处理装置的主要单元的示意图。如图6所示,业务处理装置600包括接收单元601、匹配单元602、会话数量确定单元603和会话转发单元604。
接收单元601,被配置成获取待处理会话和待处理会话对应的目标转发地址;
匹配单元602,被配置成将目标转发地址与预设会话表项进行匹配,响应于匹配失败,获取目标转发地址对应的属性标识,响应于属性标识对应新建数据流,获取会话快表全局水位信息;
会话数量确定单元603,被配置成根据会话快表全局水位信息确定卸载到会话快表中的待处理会话的会话数量;
会话转发单元604,被配置成基于会话数量确定卸载类型,基于卸载类型将待处理会话卸载至会话快表中,进而将卸载至会话快表中的会话转发至与对应的目标转发地址对应的服务器。
在一些实施例中,装置还包括图6中未示出的新建单元,被配置成:新建一个会话节点;以及会话转发单元进一步被配置成:通过新建的会话节点,将与卸载类型对应的待处理会话卸载至会话快表中。
在一些实施例中,会话转发单元604进一步被配置成:确定待处理会话对应的流量;将待处理会话中大于预设流量阈值的流量对应的会话确定为目标会话;基于卸载类型将与会话数量对应的目标会话卸载至会话快表中。
在一些实施例中,匹配单元602进一步被配置成:将目标转发地址与预设会话快表进行匹配,响应于不存在匹配的会话快表表项,确定会话快表匹配失败,进而调用预设会话慢表以与目标转发地址进行匹配,响应于不存在匹配的会话慢表表项,确定匹配失败。
在一些实施例中,业务处理装置还包括图6中未示出的报文修改单元,被配置成:响应于匹配成功,获取匹配到的表项中的键值对;基于键值对修改待处理会话对应的报文,进而将修改后的报文转发。
在一些实施例中,业务处理装置还包括图6中未示出的会话删除单元,被配置成:响应于卸载类型为全卸载,对会话快表的定时器设置超时老化时间,以在超时老化时间到达时执行对相应会话的删除操作。
在一些实施例中,业务处理装置还包括图6中未示出的定时器重置单元,被配置成:响应于卸载类型为半卸载,调用会话快表以定时发送心跳报文,以重置会话慢表表项的定时器,以使会话慢表中剩余的待处理会话存活。
在一些实施例中,业务处理装置还包括图6中未示出的会话删除单元,被配置成:响应于接收到会话超时报文,执行相应的会话删除操作。
需要说明的是,在本申请业务处理方法和业务处理装置在具体实施内容上具有相应关系,故重复内容不再说明。
图7示出了可以应用本申请实施例的业务处理方法或业务处理装置的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备701、702、703可以是具有业务处理屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所提交的业务处理请求提供支持的后台管理服务器(仅为示例)。后台管理服务器可以获取待处理会话和待处理会话对应的目标转发地址;将目标转发地址与预设会话表项进行匹配,响应于匹配失败,获取目标转发地址对应的属性标识,响应于属性标识对应新建数据流,获取会话快表全局水位信息;根据会话快表全局水位信息确定卸载到会话快表中的待处理会话的会话数量;基于会话数量确定卸载类型,基于卸载类型将待处理会话卸载至会话快表中,进而将卸载至会话快表中的会话转发至与对应的目标转发地址对应的服务器。通过在会话表项匹配失败后,根据会话快表全局水位信息确定需要卸载到会话快表的会话数量,然后根据该会话数量确定卸载类型,根据卸载类型执行相应的会话卸载及会话转发。最大化利用存储和性能资源,实现高速转发、大表项周转、转发低时延。
需要说明的是,本申请实施例所提供的业务处理方法一般由服务器705执行,相应地,业务处理装置一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本申请实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM803中,还存储有计算机系统800操作所需的各种程序和数据。CPU801、ROM802以及RAM803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶征信授权查询处理器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本申请公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元、匹配单元、会话数量确定单元和会话转发单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备获取待处理会话和待处理会话对应的目标转发地址;将目标转发地址与预设会话表项进行匹配,响应于匹配失败,获取目标转发地址对应的属性标识,响应于属性标识对应新建数据流,获取会话快表全局水位信息;根据会话快表全局水位信息确定卸载到会话快表中的待处理会话的会话数量;基于会话数量确定卸载类型,基于卸载类型将待处理会话卸载至会话快表中,进而将卸载至会话快表中的会话转发至与对应的目标转发地址对应的服务器。
根据本申请实施例的技术方案,通过在会话表项匹配失败后,根据会话快表全局水位信息确定需要卸载到会话快表的会话数量,然后根据该会话数量确定卸载类型,根据卸载类型执行相应的会话卸载及会话转发。最大化利用存储和性能资源,实现高速转发、大表项周转、转发低时延。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (12)
1.一种负载均衡方法,其特征在于,包括:
获取待处理会话和所述待处理会话对应的目标转发地址;
将所述目标转发地址与预设会话表项进行匹配,响应于匹配失败,获取所述目标转发地址对应的属性标识,响应于所述属性标识对应新建数据流,获取会话快表全局水位信息;
根据所述会话快表全局水位信息确定卸载到会话快表中的待处理会话的会话数量;
基于所述会话数量确定卸载类型,基于所述卸载类型将所述待处理会话卸载至会话快表中,进而将卸载至会话快表中的会话转发至与对应的目标转发地址对应的服务器。
2.根据权利要求1所述的方法,其特征在于,在所述响应于所述属性标识对应新建数据流之后,所述方法还包括:
新建一个会话节点;以及
所述基于所述卸载类型将所述待处理会话卸载至会话快表中,包括:
通过新建的所述会话节点,将与所述卸载类型对应的待处理会话卸载至会话快表中。
3.根据权利要求1所述的方法,其特征在于,所述基于所述卸载类型将所述待处理会话卸载至会话快表中,包括:
确定所述待处理会话对应的流量;
将所述待处理会话中大于预设流量阈值的流量对应的会话确定为目标会话;
基于所述卸载类型将与所述会话数量对应的目标会话卸载至会话快表中。
4.根据权利要求1所述的方法,其特征在于,在所述获取所述目标转发地址对应的属性标识之前,所述方法包括:
将所述目标转发地址与预设会话快表进行匹配,响应于不存在匹配的会话快表表项,确定会话快表匹配失败,进而调用预设会话慢表以与所述目标转发地址进行匹配,响应于不存在匹配的会话慢表表项,确定匹配失败。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于匹配成功,获取匹配到的表项中的键值对;
基于所述键值对修改所述待处理会话对应的报文,进而将修改后的报文转发。
6.根据权利要求1所述的方法,其特征在于,在所述基于所述卸载类型将所述待处理会话卸载至会话快表中之后,所述方法还包括:
响应于所述卸载类型为全卸载,对所述会话快表的定时器设置超时老化时间,以在所述超时老化时间到达时执行对相应会话的删除操作。
7.根据权利要求1所述的方法,其特征在于,在所述基于所述卸载类型将所述待处理会话卸载至会话快表中之后,所述方法还包括:
响应于所述卸载类型为半卸载,调用会话快表以定时发送心跳报文,以重置会话慢表表项的定时器,以使所述会话慢表中剩余的待处理会话存活。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于接收到会话超时报文,执行相应的会话删除操作。
9.一种业务处理装置,其特征在于,包括:
接收单元,被配置成获取待处理会话和所述待处理会话对应的目标转发地址;
匹配单元,被配置成将所述目标转发地址与预设会话表项进行匹配,响应于匹配失败,获取所述目标转发地址对应的属性标识,响应于所述属性标识对应新建数据流,获取会话快表全局水位信息;
会话数量确定单元,被配置成根据所述会话快表全局水位信息确定卸载到会话快表中的待处理会话的会话数量;
会话转发单元,被配置成基于所述会话数量确定卸载类型,基于所述卸载类型将所述待处理会话卸载至会话快表中,进而将卸载至会话快表中的会话转发至与对应的目标转发地址对应的服务器。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括新建单元,被配置成:
新建一个会话节点;以及
所述会话转发单元进一步被配置成:
通过新建的所述会话节点,将与所述卸载类型对应的待处理会话卸载至会话快表中。
11.一种业务处理电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211041649.9A CN115460213A (zh) | 2022-08-29 | 2022-08-29 | 一种业务处理方法、装置、电子设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211041649.9A CN115460213A (zh) | 2022-08-29 | 2022-08-29 | 一种业务处理方法、装置、电子设备及计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115460213A true CN115460213A (zh) | 2022-12-09 |
Family
ID=84300401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211041649.9A Pending CN115460213A (zh) | 2022-08-29 | 2022-08-29 | 一种业务处理方法、装置、电子设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115460213A (zh) |
-
2022
- 2022-08-29 CN CN202211041649.9A patent/CN115460213A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10694005B2 (en) | Hardware-based packet forwarding for the transport layer | |
Nguyen et al. | Decentralized and revised content-centric networking-based service deployment and discovery platform in mobile edge computing for IoT devices | |
US11463511B2 (en) | Model-based load balancing for network data plane | |
US20220206908A1 (en) | Techniques for replicating state information for high availability | |
US10375193B2 (en) | Source IP address transparency systems and methods | |
US11088948B1 (en) | Correlating network flows in a routing service for full-proxy network appliances | |
US10148565B2 (en) | OPENFLOW communication method and system, controller, and service gateway | |
WO2021047515A1 (zh) | 一种服务路由方法及装置 | |
US10033645B2 (en) | Programmable data plane hardware load balancing system | |
US11310149B1 (en) | Routing bidirectional flows in a stateless routing service | |
US20220086262A1 (en) | Network packet processing method and apparatus and network server | |
US10178033B2 (en) | System and method for efficient traffic shaping and quota enforcement in a cluster environment | |
US11394636B1 (en) | Network connection path obfuscation using global access points | |
US12010195B2 (en) | Efficient flow management utilizing control packets | |
CN112787913B (zh) | 智能网卡组件、物理机、云服务系统以及报文发送方法 | |
CN106797384B (zh) | 以不同的协议将请求路由到集群中的相同端点 | |
CN110545230A (zh) | 用于转发vxlan报文的方法和装置 | |
CN105100101A (zh) | 一种基于ssl会话的方法、装置及系统 | |
US20230171194A1 (en) | Customized tuple definition for hashing at a network appliance routing service | |
WO2023186109A1 (zh) | 节点访问方法以及数据传输系统 | |
KR20210016802A (ko) | 소프트웨어 정의 네트워킹 환경에서 서버-클라이언트 기반의 네트워크 서비스를 위한 플로우 테이블을 최적화하는 방법 및 이를 위한 sdn 스위치 | |
WO2022089169A1 (zh) | 计算路由信息发送方法、装置、设备及存储介质 | |
CN115460213A (zh) | 一种业务处理方法、装置、电子设备及计算机可读介质 | |
US12010012B2 (en) | Application-aware BGP path selection and forwarding | |
WO2023056873A1 (zh) | 数据请求方法、通信装置和通信系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |