CN114928661A - 会话保持方法和装置 - Google Patents
会话保持方法和装置 Download PDFInfo
- Publication number
- CN114928661A CN114928661A CN202210608587.9A CN202210608587A CN114928661A CN 114928661 A CN114928661 A CN 114928661A CN 202210608587 A CN202210608587 A CN 202210608587A CN 114928661 A CN114928661 A CN 114928661A
- Authority
- CN
- China
- Prior art keywords
- data packet
- session
- udp
- service
- string
- 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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开涉及一种会话保持方法和装置,该方法包括:预置包括可唯一标识UDP业务的业务字节串和会话保持时间的会话保持策略;接收客户端发送的包括数据包字节串的UDP数据包;解析客户端发送的UDP数据包并提取UDP数据中的数据包字节串;当提取到的数据包字符串首次命中会话保持策略时,基于业务字节串将UDP数据包向业务字符串所对应的真实服务器发送;生成并保存包括业务字节串、会话保持时间和真实服务器的会话保持记录;当判断在会话保持时间内接收到的新UDP数据包所包括的数据包字节串在会话保持记录中存在与其相同的业务字节串时,将新UDP数据包向相同的业务字节串所在的会话保持记录中的真实服务器发送。
Description
技术领域
本公开涉及网络通信技术领域,具体而言,涉及一种会话保持方法和装置。
背景技术
企业网络服务可通过大型开放平台提供用户统一的访问虚拟服务入口,并在后台设置多台服务器以提供不同的服务,如WEB、SYSLOG、RADIUS或企业自开发的某些服务等。针对某个特定业务企业APP会发送特殊的UDP报文,其中UDP报文的数据部分会包括根据用户ID等信息生成的一个可唯一标识用户的字节字段,在该字段后紧跟需要传输的消息,并且需要多次的交互才会完成一次业务。由于后台存在多个服务器,使得某个用户的一次业务中的报文去往了不同的服务器,导致服务器处理业务需要进行额外的配置实现接收信息共享等,会严重增加服务器的负担。
使用源IP会话保持策略可以解决此问题,具体而言,对于特定用户访问服务器时会发送特殊的UDP报文,通过部署在企业网络中的负载均衡设备发送到服务器。由于负载均衡设置了基于源IP的会话保持,后续相同的源IP的请求将始终负载到同一服务器上。
但当多个客户通过代理或地址转换的方式来访问服务器时,由于都分配到同一台服务器上,会导致服务器之间的负载严重失衡。另外当客户机数量很少,但每个客户机均产生多个不同的业务访问时,这些访问需要通过负载均衡器分配到多个服务器上,这时基于客户端源IP的会话保持方法也会导致负载均衡失效。
因此,需要一种使得同一UDP业务能始终负载到同一服务器且可避免负载均衡失效的会话保持方法和装置。
发明内容
有鉴于此,本公开提供一种会话保持方法和装置。根据本公开的一方面,提出一种会话保持方法,包括:预置会话保持策略,所述会话保持策略包括可唯一标识UDP业务的业务字节串和会话保持时间;接收客户端发送的UDP数据包,所述UDP数据包包括可标识所述UDP数据包所属于的UDP业务的数据包字节串;基于UDP协议解析客户端发送的UDP数据包,对解析所述UDP数据包后获得的UDP数据按照预先协商的拆分策略提取所述UDP数据中的所述数据包字节串;当提取到的所述数据包字符串首次命中所述会话保持策略时,即当首次判断所述数据包字符串与所述会话保持策略中的所述业务字节串相同时,基于所述业务字节串将所述UDP数据包向所述业务字符串所对应的真实服务器发送;生成并保存与会话保持记录,所述会话保持记录包括所述业务字节串、所述会话保持时间和所述真实服务器;当判断在所述会话保持时间内接收到的新UDP数据包所包括的数据包字节串在所述会话保持记录中存在与其相同的业务字节串时,将所述新UDP数据包向所述相同的业务字节串所在的会话保持记录中的真实服务器发送。
根据本公开的会话保持方法,其还包括:当提取到的所述数据包字符串未命中所述会话保持策略时,即当判断不存在与所述数据包字符串相同的业务字节串所对应会话保持策略时,直接将所述UDP数据包向基于负载均衡策略所分配到的真实服务器发送。
根据本公开的会话保持方法,其中,所述UDP数据包中的数据包字节串位于所述UDP数据包中UDP数据的末尾。
根据本公开的会话保持方法,其还包括:在提取所述UDP数据中的所述数据包字节串后,将所述数据包字节串保存在内存中及在判断所述数据包字节串是否命中会话保持策略后释放内存以及当判断接收到的所述UDP数据包属于超长分片报文时,则采用循环读取与释放的方式实现存储以及基于循环读取与释放的方式实现数据包字节串是否命中会话保持策略的判断。
根据本公开的会话保持方法,其还包括:当判断接收到的所述UDP数据属于超长分片报文时,则重组IP分片报文以获取完成数据。
根据本公开的一方面,提出一种会话保持装置,该装置包括:会话保持策略预置组件,用于预置会话保持策略,所述会话保持策略包括可唯一标识UDP业务的业务字节串和会话保持时间;UDP数据包接收组件,用于接收客户端发送的UDP数据包,所述UDP数据包包括可标识所述UDP数据包所属于的UDP业务的数据包字节串;解析及数据包字节串获取组件,用于基于UDP协议解析客户端发送的UDP数据包,对解析所述UDP数据包后获得的UDP数据按照预先协商的拆分策略提取所述UDP数据中的所述数据包字节串;基于会话保持策略被命中的负载均衡组件,用于当提取到的所述数据包字符串首次命中所述会话保持策略时,即当首次判断所述数据包字符串与所述会话保持策略中的所述业务字节串相同时,基于所述业务字节串将所述UDP数据包向所述业务字符串所对应的真实服务器发送,以及会话保持记录生成组件,用于在所述会话保持策略被命中后同时生成并保存会话保持记录,所述会话保持记录包括所述业务字节串、所述会话保持时间和所述真实服务器;基于会话保持记录的负载均衡组件,当判断在所述会话保持时间内接收到的新UDP数据包所包括的数据包字节串在所述会话保持记录中存在与其相同的业务字节串时,将所述新UDP数据包向所述相同的业务字节串所在的会话保持记录中的真实服务器发送。
根据本公开的会话保持装置,其还包括:基于会话保持策略未被命中的负载均衡组件,用于当提取到的所述数据包字符串未命中所述会话保持策略时,即当判断不存在与所述数据包字符串相同的业务字节串所对应会话保持策略时,直接将所述UDP数据包向基于负载均衡策略所分配到的真实服务器发送。
根据本公开的会话保持装置,其中,所述UDP数据包中的数据包字节串位于所述UDP数据包中UDP数据的末尾。
根据本公开的会话保持装置,其还包括:存储与回收组件,用于在所述UDP数据中的所述数据包字节串后,将所述数据包字节串保存在内存中及在判断所述数据包字节串是否命中会话保持策略后释放内存以及当判断接收到的所述UDP数据包属于超长分片报文时,则采用循环读取与释放的方式实现存储以及基于循环读取与释放的方式实现数据包字节串是否命中会话保持策略的判断。
根据本公开的会话保持装置,其还包括:报文重组组件,用于当判断接收到的所述UDP数据属于超长分片报文时,则重组IP分片报文以获取完成数据。
综上,采用本公开的会话保持方法和装置,通过基于自定义的16进制字节生成的会话保持表实现了会话保持。具体而言,在客户端发送的UDP消息到达负载均衡设备后进行会话保持策略的匹配,设备依据UDP报文中是否存在预配置的自定义字节将接收到的UDP消息负载到后台的某个服务器上;与此同时生成一个会话保持表,以当客户端连续发送来自用户前端设备上的请求,只要报文中携带的字节匹配上会话保持表,则始终将业务分配到同一服务器。由此实现一种更加灵活的基于UDP的会话保持方法,巧妙的解决了当不同客户端使用同一公网IP或者经过NAT处理后的源地址会话保持失效问题,可以保证同一UDP的业务能始终负载到同一服务器进行处理,提升了服务器处理业务的能力,提高了客户端的业务体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
通过参照附图详细描述其示例实施例,本申请的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示的是UDP数据报文的组成结构示意图。
图2所示的是根据本公开实施例的会话保持方法的流程示意图。
图3所示的是根据本公开另一实施例的会话保持方法的流程示意图。
图4所示的根据本公开实施例的会话保持方法装置的原理示意图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、***、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本公开所必须的,因此不能用于限制本公开的保护范围。
UDP(User Datagram Protocol,用户数据报协议)是OSI(Open SystemInterconnection,开放式***互联参考模型)中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。会话保持:会话保持是指在负载均衡器上的一种机制,可以识别客户端与服务器之间交互过程的关连性,在作负载均衡的同时还保证一系列相关连的访问请求都会分配到一台机器上。简要表述就是:在一次会话过程中发起的多个请求都会落到同一台机器上。源IP会话保持:源IP会话保持也被称为基于源地址的会话保持,是指负载均衡器在作负载均衡时,根据访问请求的源地址作为判断关联会话的依据。对来自同一IP地址的所有访问请求在作负载均衡时都会被分配到一台服务器上去。负载均衡:LoadBalance一种有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术。虚拟服务:virtual Service一种隐藏后端真实设备服务的面向用户提供的服务
图1所示的是UDP数据报文的组成结构示意图。
如图1所示,UDP数据报文包括UDP报头和UDP数据两部分。其中UDP报头由4个16位长(2字节)的字段组成,分别表示该报文的源端口、目的端口、报文长度和校验和。UDP报文常用16进制流传输。
根据本公开实施例提出一种基于UDP自定义字节串的会话保持方法。负载均衡设备收到客户端发送的UDP消息后,拆分数据之后匹配预配置的会话保持策略,设备生成相关的会话保持表,最后将消息发送到后端的服务器上。
图2所示的是根据本公开实施例的会话保持方法的流程示意图。
如图2所示,在步骤S202中,预置会话保持策略,所述会话保持策略包括可唯一标识UDP业务的业务字节串和会话保持时间。
更具体的,首先在负载均衡器上依次做如下的配置:配置真实服务器A、真实服务器B,所述真实服务器1和所述真实服务器2承担不同类型的服务;配置真实服务组,引用前一步骤中的两台真实服务器,可配置负载均衡调度算法为轮询调度算法;配置虚拟服务的IP和端口,模式为四层,协议选择UDP协议,配置缺省时的服务组为前一步骤中的真实服务组;然后在所述负载均衡器上配置一条会话保持策略。所述会话保持策略如下:
名称:UDP会话保持
业务字节串:33001122
会话保持时间:60(单位:S)
其中,该业务字节串为自定义的字节串,其可唯一标识某项UDP业务;最后虚拟服务引用上一步骤中配置的会话保持策略,启用虚拟服务。
在步骤S204中,接收客户端发送的UDP数据包,所述UDP数据包包括可标识所述UDP数据包所属于的UDP业务的数据包字节串。
更具体的,在开启虚拟服务后,若客户端输入的十六进制数据如下:
01 00 5e cd ab aa ff cc dd ee ff 11 22 33 00 11 22。
上述一串字符数据以消息报文的形式,到达负载均衡设备。
在步骤S206中,基于UDP协议解析客户端发送的UDP数据包,对解析所述UDP数据包后获得的UDP数据按照预先协商的拆分策略提取所述UDP数据中的所述数据包字节串。
更具体的,负载均衡设备在接收到客户端发送的UDP数据后,依据UDP字节拆分策略,对来自客户端的UDP数据进行拆分后得到“01 00 5e cd ab aa ff cc dd ee ff 11 2233 00 11 22”,获取其中的数据包字节串:33001122。
在步骤S208中,当提取到的所述数据包字符串首次命中所述会话保持策略时,即当首次判断所述数据包字符串与所述会话保持策略中的所述业务字节串相同时,基于所述业务字节串将所述UDP数据包向所述业务字符串所对应的真实服务器发送。
更具体的,负载均衡设备根据获取到的33001122数据包字节串查找是否在会话保持表中已存在一项包括33001122字节串的会话保持记录,如果确定存在,则将该UDP数据报文发送到对应的服务器上。本例中由于报文初次进入设备,并无对应的会话保持表。此时判断该UDP数据报文中的数据包字节串33001122是否命中了虚拟服务的自定义字节的会话保持策略。由于虚拟服务已经在步骤S202中预置了一个业务字节串为33110022的会话保持策略,故该UDP数据包中的33001122与配置的业务字节串相符。之后,基于33110022的业务字节串将该UDP数据包负载均衡到真实服务器A上。
在步骤S210中,生成并保存与会话保持记录,所述会话保持记录包括所述业务字节串、所述会话保持时间和所述真实服务器。具体而言,根据本公开实施例的会话保持方法提供一种会话保持表生成机制,其中,当UDP数据报文中的字节与预先配置的会话保持策略中的自定义字节串相符时,提取该字节作为保持属性,生成一条记录自定义字节、保持时间、目标服务器和策略名称的会话保持表记录。
更具体的,由于上述UDP数据包中的33001122与配置的业务字节串相符并且基于33110022的业务字节串已将该UDP数据包负载均衡到真实服务器A上,此时生成一个会话保持表记录,所述会话保持记录的保持属性为自定义字节“33001122”,保持时间为60s,保持服务器为真实服务器A。
在步骤S212中,当判断后续连续接收到的新UDP数据包所包括的数据包字节串在所述会话保持记录中存在与其相同的业务字节串时,将所述新UDP数据包向所述相同的业务字节串所在的会话保持记录中的真实服务器发送。具体而言,根据本公开实施例的会话保持方法提供一种会话保持表转发机制,其中,新建会话可依据已有会话保持表实现UDP报文的转发,即当负载均衡设备已存在会话保持表且UDP报文中存在字节与所述会话保持表中保持属性的字节相等时,查看所述会话保持表的目标服务器,从而将UDP报文转发至该服务器。
更具体的,在负载均衡设备将该UDP数据包发送至真实服务器A后,此后在会话保持时间内所有接收到带“33001122”的UDP数据报文均发送到真实服务器A进行处理。
根据本公开实施例的会话保持方法,客户端发送的UDP消息到达负载均衡设备后,匹配了会话保持策略,设备依据UDP报文中是否存在预配置的自定义字节,负载到后台的某个服务器上。于此同时生成一个会话保持表,客户端连续发送来自用户前端设备上的请求,只要报文中携带的字节匹配上会话保持表,始终将业务分配到同一服务器。由此实现一种更加灵活基于UDP的会话保持方法。
根据本公开实施例的会话保持方法,其还包括:当提取到的所述数据包字符串未命中所述会话保持策略时,即当判断不存在与所述数据包字符串相同的业务字节串所对应会话保持策略时,直接将所述UDP数据包向基于负载均衡策略所分配到的真实服务器发送。
更具体的,若负载均衡设备按照UDP数据拆分策略对所接收到的UDP数据进行拆分获取到了数据包字节串“33001123”,所述数据包字节串未能与虚拟服务所定义的会话保持策略的业务字节串相匹配,即虚拟服务未预制过一条业务字节串为33001123的会话保持策略,则所述UDP数据基于负载均衡策略被负载到真实服务器B上。后续若接收到字节串为33001123的新UDP数据包,则所述新UDP数据包基于负载均衡策略可能被负载到真实服务器A也可能被负载到真实服务器B。
根据本公开实施例的会话保持方法,其中,所述UDP数据包中的数据包字节串位于所述UDP数据包中UDP数据的末尾。
更具体的,根据本公开实施例的会话保持方法,在协商的拆分策略中,将数据包字节串33001122置于了16进制UDP数据包的末尾8位。
根据本公开实施例的会话保持方法,其还包括:在提取所述UDP数据中的所述数据包字节串后,将所述数据包字节串保存在内存中及在判断所述数据包字节串是否命中会话保持策略后释放内存以及当判断接收到的所述UDP数据包属于超长分片报文时,则采用循环读取与释放的方式实现存储以及基于循环读取与释放的方式实现数据包字节串是否命中会话保持策略的判断。
根据本公开实施例的会话保持方法,其还包括:当判断接收到的所述UDP数据属于超长分片报文时,则重组IP分片报文以获取完成数据。
具体而言,根据本公开实施例的会话保持方法提出的存储机制,其中,通过UDP数据拆分,取出UDP报文中的数据包字节串字段,将此数据存到内存中,判断所述数据包字节串是否匹配创建的会话保持策略,之后释放内存。而对于超长分片的报文,可以采用循环读取和释放的方式实现存储与比较以及需要先重组IP分片报文从而取得完整数据等。
图3所示的是根据本公开另一实施例的会话保持方法的流程示意图。此一实施例与前述实施例的不同在于,在获取到数据包字节串后首先在会话保持表中进行查询,若查询到则直接根据会话保持记录中所保存的真实服务器进行负载分配;若未查询到,则到预置的会话保持策略中进行匹配查询,如果查询到,则添加到会话保持表中,然后再次从会话保持列表处开始进行后续的处理;如果未查询到则属于未预置会话保持策略的UDP数据包,则按照一定的负载均衡策略进行负载分配。
如图3所示,在步骤S302中,客户端发送UDP数据包。
在步骤S304中,负载均衡设备接收UDP数据包。
在步骤S306中,对UDP数据进行拆分以获取数据包字节串。
在步骤S308中,判断是否存在与所述数据包字节串相匹配的记录。
在步骤S308中判断是否存在与所述数据包字节串相匹配的记录的结果为“否”时进入步骤S310。在步骤S310中,判断是否存在与所述数据包字节串相匹配的策略。在步骤S310中判断是否存在与所述数据包字节串相匹配的策略的结果为“是”时进入步骤S312。在步骤S312中,生成会话保持表。
在步骤S308中判断是否存在与所述数据包字节串相匹配的记录的结果为“否”以及在步骤S310中判断是否存在与所述数据包字节串相匹配的策略的结果为“是”时进入步骤S314。在步骤S314中,添加会话保持记录。
在步骤S308中判断是否存在与所述数据包字节串相匹配的记录的结果为“否”以及在步骤S310中判断是否存在与所述数据包字节串相匹配的策略的结果为“否”时进入步骤S316。在步骤S316中,进行负载均衡处理。
在步骤S308中判断是否存在与所述数据包字节串相匹配的记录的结果为“是”时进入步骤S316。在步骤S316中,进行负载均衡处理。
在步骤S318中,判断是否负载到真实服务器A。
在步骤S318中判断是否负载到真实服务器A的结果为“是”时进入步骤S320。在步骤S320中,负载到真实服务器A。
在步骤S318中判断是否负载到真实服务器A的结果为“否”时进入步骤S322。在步骤S322中,负载到真实服务器B。
图4所示的根据本公开实施例的会话保持方法装置的原理示意图,如图4所示,该装置包括:会话保持策略预置组件402、UDP数据包接收组件404、解析及数据包字节串获取组件406、基于会话保持策略被命中的负载均衡组件408、会话保持记录生成组件410、基于会话保持记录的负载均衡组件412、基于会话保持策略未被命中的负载均衡组件414、存储与回收组件416、报文重组组件418。
其中,会话保持策略预置组件402,用于预置会话保持策略,所述会话保持策略包括可唯一标识UDP业务的业务字节串和会话保持时间;UDP数据包接收组件404,用于接收客户端发送的UDP数据包,所述UDP数据包包括可标识所述UDP数据包所属于的UDP业务的数据包字节串;解析及数据包字节串获取组件406,用于基于UDP协议解析客户端发送的UDP数据包,对解析所述UDP数据包后获得的UDP数据按照预先协商的拆分策略提取所述UDP数据中的所述数据包字节串;基于会话保持策略被命中的负载均衡组件408,用于当提取到的所述数据包字符串首次命中所述会话保持策略时,即当首次判断所述数据包字符串与所述会话保持策略中的所述业务字节串相同时,基于所述业务字节串将所述UDP数据包向所述业务字符串所对应的真实服务器发送;会话保持记录生成组件410,用于在所述会话保持策略被命中后同时生成并保存会话保持记录,所述会话保持记录包括所述业务字节串、所述会话保持时间和所述真实服务器;基于会话保持记录的负载均衡组件412,当判断在所述会话保持时间内接收到的新UDP数据包所包括的数据包字节串在所述会话保持记录中存在与其相同的业务字节串时,将所述新UDP数据包向所述相同的业务字节串所在的会话保持记录中的真实服务器发送。
根据本公开实施例的会话保持装置,其还包括:基于会话保持策略未被命中的负载均衡组件414,用于当提取到的所述数据包字符串未命中所述会话保持策略时,即当判断不存在与所述数据包字符串相同的业务字节串所对应会话保持策略时,直接将所述UDP数据包向基于负载均衡策略所分配到的真实服务器发送。
根据本公开实施例的会话保持装置,其中,所述UDP数据包中的数据包字节串位于所述UDP数据包中UDP数据的末尾。
根据本公开实施例的会话保持装置,其还包括:存储与回收组件416,用于在所述UDP数据中的所述数据包字节串后,将所述数据包字节串保存在内存中及在判断所述数据包字节串是否命中会话保持策略后释放内存以及当判断接收到的所述UDP数据包属于超长分片报文时,则采用循环读取与释放的方式实现存储以及基于循环读取与释放的方式实现数据包字节串是否命中会话保持策略的判断。
根据本公开实施例的会话保持装置,其还包括:报文重组组件418,用于当判断接收到的所述UDP数据属于超长分片报文时,则重组IP分片报文以获取完成数据。
综上,采用本公开的会话保持方法和装置,通过基于自定义的16进制字节生成的会话保持表实现了会话保持。具体而言,在客户端发送的UDP消息到达负载均衡设备后进行会话保持策略的匹配,设备依据UDP报文中是否存在预配置的自定义字节将接收到的UDP消息负载到后台的某个服务器上;与此同时生成一个会话保持表,以当客户端连续发送来自用户前端设备上的请求,只要报文中携带的字节匹配上会话保持表,则始终将业务分配到同一服务器。由此实现一种更加灵活的基于UDP的会话保持方法,巧妙的解决了当不同客户端使用同一公网IP或者经过NAT处理后的源地址会话保持失效问题,可以保证同一UDP的业务能始终负载到同一服务器进行处理,提升了服务器处理业务的能力,提高了客户端的业务体验。
总体而言,本公开主要是面对在于当多个客户是通过代理或地址转换的方式来访问服务器时,由于都分配到同一台服务器上,会导致服务器之间的负载严重失衡;以及在客户机数量很少,但每个客户机都会产生多个不同的业务访问,对这些访问也要求通过负载均衡器分配到多个服务器上,这时基于客户端源地址的会话保持方法也会导致负载均衡失效。为此,本公开提出一种基于udp自定义字节的会话保持的方法,巧妙的解决了当不同客户端使用同一公网IP或者经过NAT处理后的源地址会话保持失效问题,保证同一udp的业务能始终负载到同一服务器进行处理,提升了服务器处理业务的能力,提高了客户端的业务体验。具体而言,负载均衡设备收到客户端发送的UDP消息后,拆分数据之后匹配预配置的会话保持策略,设备生成相关的会话保持表,最后将消息发送到后端的服务器上。会话保持表生成机制,当报文中的字节与预先配置的自定义字节会话保持策略相符时,提取该字节作为保持属性,生成一条记录自定义字节,保持时间,目标服务器,策略名称的会话保持表记录。报文拆分、存储与转发机制,通过UDP数据拆分,取出报文中的字段,将此数据存到内存中,判断字节是否匹配创建的会话保持策略,之后释放内存。对于超长分片的报文,可以采用循环读取和释放的方式实现存储与比较,还需要先重组IP分片报文,取得完整数据等。新建会话依据已有会话保持表转发机制,当负载均衡设备已存在会话保持表,UDP报文中存在字节与保持表中保持属性的字节相等时,查看会话保持表的目标服务器,从而将UDP报文转发至该服务器。UDP数据报文如图1所示,每个UDP报文分为UDP报头和UDP数据两部分。报头由4个16位长(2字节)的字段组成,分别表示该报文的源端口、目的端口、报文长度和校验和。UDP报文常用16进制流传输。
所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本申请实施例的方法。
以上具体地示出和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (10)
1.一种会话保持方法,包括:
预置会话保持策略,所述会话保持策略包括可唯一标识UDP业务的业务字节串和会话保持时间;
接收客户端发送的UDP数据包,所述UDP数据包包括可标识所述UDP数据包所属于的UDP业务的数据包字节串;
基于UDP协议解析客户端发送的UDP数据包,对解析所述UDP数据包后获得的UDP数据按照预先协商的拆分策略提取所述UDP数据中的所述数据包字节串;
当提取到的所述数据包字符串首次命中所述会话保持策略时,即当首次判断所述数据包字符串与所述会话保持策略中的所述业务字节串相同时,基于所述业务字节串将所述UDP数据包向所述业务字符串所对应的真实服务器发送;
生成并保存与会话保持记录,所述会话保持记录包括所述业务字节串、所述会话保持时间和所述真实服务器;
当判断在所述会话保持时间内接收到的新UDP数据包所包括的数据包字节串在所述会话保持记录中存在与其相同的业务字节串时,将所述新UDP数据包向所述相同的业务字节串所在的会话保持记录中的真实服务器发送。
2.根据权利要求1所述的会话保持方法,其还包括:
当提取到的所述数据包字符串未命中所述会话保持策略时,即当判断不存在与所述数据包字符串相同的业务字节串所对应会话保持策略时,直接将所述UDP数据包向基于负载均衡策略所分配到的真实服务器发送。
3.根据权利要求1所述的会话保持方法,其中,
所述UDP数据包中的数据包字节串位于所述UDP数据包中UDP数据的末尾。
4.根据权利要求1所述的会话保持方法,其还包括:在提取所述UDP数据中的所述数据包字节串后,
将所述数据包字节串保存在内存中及在判断所述数据包字节串是否命中会话保持策略后释放内存以及
当判断接收到的所述UDP数据包属于超长分片报文时,则采用循环读取与释放的方式实现存储以及基于循环读取与释放的方式实现数据包字节串是否命中会话保持策略的判断。
5.根据权利要求1所述的会话保持方法,其还包括:
当判断接收到的所述UDP数据属于超长分片报文时,则重组IP分片报文以获取完成数据。
6.一种会话保持装置,包括:
会话保持策略预置组件,用于预置会话保持策略,所述会话保持策略包括可唯一标识UDP业务的业务字节串和会话保持时间;
UDP数据包接收组件,用于接收客户端发送的UDP数据包,所述UDP数据包包括可标识所述UDP数据包所属于的UDP业务的数据包字节串;
解析及数据包字节串获取组件,用于基于UDP协议解析客户端发送的UDP数据包,对解析所述UDP数据包后获得的UDP数据按照预先协商的拆分策略提取所述UDP数据中的所述数据包字节串;
基于会话保持策略被命中的负载均衡组件,用于当提取到的所述数据包字符串首次命中所述会话保持策略时,即当首次判断所述数据包字符串与所述会话保持策略中的所述业务字节串相同时,基于所述业务字节串将所述UDP数据包向所述业务字符串所对应的真实服务器发送,以及
会话保持记录生成组件,用于在所述会话保持策略被命中后同时生成并保存会话保持记录,所述会话保持记录包括所述业务字节串、所述会话保持时间和所述真实服务器;
基于会话保持记录的负载均衡组件,当判断在所述会话保持时间内接收到的新UDP数据包所包括的数据包字节串在所述会话保持记录中存在与其相同的业务字节串时,将所述新UDP数据包向所述相同的业务字节串所在的会话保持记录中的真实服务器发送。
7.根据权利要求6所述的会话保持装置,其还包括:
基于会话保持策略未被命中的负载均衡组件,用于当提取到的所述数据包字符串未命中所述会话保持策略时,即当判断不存在与所述数据包字符串相同的业务字节串所对应会话保持策略时,直接将所述UDP数据包向基于负载均衡策略所分配到的真实服务器发送。
8.根据权利要求6所述的会话保持装置,其中,
所述UDP数据包中的数据包字节串位于所述UDP数据包中UDP数据的末尾。
9.根据权利要求6所述的会话保持装置,其还包括:
存储与回收组件,用于在所述UDP数据中的所述数据包字节串后,
将所述数据包字节串保存在内存中及在判断所述数据包字节串是否命中会话保持策略后释放内存以及
当判断接收到的所述UDP数据包属于超长分片报文时,则采用循环读取与释放的方式实现存储以及基于循环读取与释放的方式实现数据包字节串是否命中会话保持策略的判断。
10.根据权利要求6所述的会话保持装置,其还包括:
报文重组组件,用于当判断接收到的所述UDP数据属于超长分片报文时,则重组IP分片报文以获取完成数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210608587.9A CN114928661A (zh) | 2022-05-31 | 2022-05-31 | 会话保持方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210608587.9A CN114928661A (zh) | 2022-05-31 | 2022-05-31 | 会话保持方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114928661A true CN114928661A (zh) | 2022-08-19 |
Family
ID=82811999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210608587.9A Pending CN114928661A (zh) | 2022-05-31 | 2022-05-31 | 会话保持方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114928661A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1321935A (zh) * | 2000-05-01 | 2001-11-14 | 国际商业机器公司 | 控制客户机与服务器群之间通信的方法及网络服务器设备 |
CN103548307A (zh) * | 2010-12-30 | 2014-01-29 | 皮尔爱普有限公司 | 通过计算机网络传输数据的方法和*** |
CN104348826A (zh) * | 2013-07-26 | 2015-02-11 | 中兴通讯股份有限公司 | 会话管理方法、应用功能实体、策略服务器和协议转换器 |
CN105100957A (zh) * | 2014-05-09 | 2015-11-25 | 浙江智晓信息科技有限公司 | 基于sip负载均衡实现高清视频多链路传输的方法 |
CN106790150A (zh) * | 2016-12-28 | 2017-05-31 | 北京信安世纪科技有限公司 | 一种会话保持方法和装置 |
CN108322524A (zh) * | 2018-01-22 | 2018-07-24 | 杭州迪普科技股份有限公司 | 一种负载均衡设备会话保持测试方法及装置 |
CN109743357A (zh) * | 2018-12-13 | 2019-05-10 | 杭州迪普科技股份有限公司 | 一种业务访问连续性的实现方法及装置 |
CN110035039A (zh) * | 2018-01-12 | 2019-07-19 | 华为技术有限公司 | 一种会话保持的方法和设备 |
CN110166570A (zh) * | 2019-06-04 | 2019-08-23 | 杭州迪普科技股份有限公司 | 业务会话管理方法、装置、电子设备 |
CN110535976A (zh) * | 2019-09-27 | 2019-12-03 | 杭州迪普科技股份有限公司 | 一种会话保持方法和装置 |
CN113206877A (zh) * | 2021-04-29 | 2021-08-03 | 工银科技有限公司 | 一种会话保持方法及装置 |
-
2022
- 2022-05-31 CN CN202210608587.9A patent/CN114928661A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1321935A (zh) * | 2000-05-01 | 2001-11-14 | 国际商业机器公司 | 控制客户机与服务器群之间通信的方法及网络服务器设备 |
CN103548307A (zh) * | 2010-12-30 | 2014-01-29 | 皮尔爱普有限公司 | 通过计算机网络传输数据的方法和*** |
CN104348826A (zh) * | 2013-07-26 | 2015-02-11 | 中兴通讯股份有限公司 | 会话管理方法、应用功能实体、策略服务器和协议转换器 |
CN105100957A (zh) * | 2014-05-09 | 2015-11-25 | 浙江智晓信息科技有限公司 | 基于sip负载均衡实现高清视频多链路传输的方法 |
CN106790150A (zh) * | 2016-12-28 | 2017-05-31 | 北京信安世纪科技有限公司 | 一种会话保持方法和装置 |
CN110035039A (zh) * | 2018-01-12 | 2019-07-19 | 华为技术有限公司 | 一种会话保持的方法和设备 |
CN108322524A (zh) * | 2018-01-22 | 2018-07-24 | 杭州迪普科技股份有限公司 | 一种负载均衡设备会话保持测试方法及装置 |
CN109743357A (zh) * | 2018-12-13 | 2019-05-10 | 杭州迪普科技股份有限公司 | 一种业务访问连续性的实现方法及装置 |
CN110166570A (zh) * | 2019-06-04 | 2019-08-23 | 杭州迪普科技股份有限公司 | 业务会话管理方法、装置、电子设备 |
CN110535976A (zh) * | 2019-09-27 | 2019-12-03 | 杭州迪普科技股份有限公司 | 一种会话保持方法和装置 |
CN113206877A (zh) * | 2021-04-29 | 2021-08-03 | 工银科技有限公司 | 一种会话保持方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107948324A (zh) | 请求传输***、方法、装置及存储介质 | |
CN108200158B (zh) | 请求传输***、方法、装置及存储介质 | |
US8949952B2 (en) | Multi-stack subscriber sign on | |
WO2021164261A1 (zh) | 云网络设备的测试方法、存储介质和计算机设备 | |
RU2642833C2 (ru) | Способ и устройство для обеспечения медиаресурса | |
CN112583618B (zh) | 为业务提供网络服务的方法、装置和计算设备 | |
CN102710504A (zh) | 应用识别方法和装置 | |
CN114828140B (zh) | 业务流量报文转发方法及装置、存储介质及电子设备 | |
US11347488B2 (en) | Compiling domain-specific language code to generate executable code targeting an appropriate type of processor of a network device | |
CN114650281B (zh) | 基于复杂网络的文件下载方法、装置、设备及存储介质 | |
US7515585B2 (en) | Data communication optimization | |
CN110545230B (zh) | 用于转发vxlan报文的方法和装置 | |
CN113691589A (zh) | 报文传输方法、装置及*** | |
CN114389792A (zh) | 一种web日志nat前后关联方法及*** | |
US7975273B2 (en) | Fuzzing system and method of distributed computing environment (DCE) remote procedure call (RPC) | |
CN114710560A (zh) | 数据处理方法、***及代理设备、终端设备 | |
CN112769863B (zh) | 一种业务请求报文数据的处理方法、装置、电子设备及可读存储介质 | |
US20230171194A1 (en) | Customized tuple definition for hashing at a network appliance routing service | |
CN114928661A (zh) | 会话保持方法和装置 | |
WO2013159591A1 (zh) | 一种区分无线终端的方法及装置 | |
CN115225606A (zh) | 一种容器云平台的跨网络协议的域名访问方法和*** | |
CN114827239A (zh) | 基于8583协议的双向会话保持方法和装置 | |
JP2022007690A (ja) | ネットワークサービスシステム、ネットワーク管理方法およびコンピュータプログラム | |
CN113676471A (zh) | 基于容器云平台的跨节点通信方法、***、介质和电子设备 | |
CN115037793B (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 |