买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种会话保持方法和装置_杭州迪普科技股份有限公司_201811618507.8 

申请/专利权人:杭州迪普科技股份有限公司

申请日:2018-12-28

公开(公告)日:2021-04-27

公开(公告)号:CN109474705B

主分类号:H04L29/08(20060101)

分类号:H04L29/08(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.04.27#授权;2019.04.09#实质审查的生效;2019.03.15#公开

摘要:本申请提供一种会话保持方法及装置,用于负载均衡设备,其方法包括:获取客户端第一报文和服务器第二报文的共同特征;记录共同特征在第一报文中的位置信息;当接收到第三报文后,如果根据位置信息判断出第三报文匹配共同特征,则代表第三报文与第一报文属于同一会话,将第三报文发送给该服务器,从而实现会话保持。本方案通过单纯的报文特征对比即可识别出属于同一会话的报文,无需存会话,不会影响系统运行速度,也无需cookie,避免了安全隐患。同时还实现了报文的自动+主动的对比和特征抽取,无需提前通过人工配置指示出哪里是特征,从而减少了页面配置操作,即使不会查看报文的用户依然可以在负载均衡下实现会话保持,提升了用户体验。

主权项:1.一种会话保持方法,其特征在于,所述方法用于负载均衡设备;所述方法包括:获取第一报文和第二报文,其中所述第一报文为客户端发给服务器的报文,所述第二报文为所述服务器发给所述客户端的报文;通过字符对比获取所述第一报文和所述第二报文的共同特征;记录所述共同特征在所述第一报文中的位置信息;当接收到第三报文后,根据所述位置信息判断所述第三报文是否匹配所述共同特征;如果所述第三报文匹配所述共同特征,则将所述第三报文发送给所述服务器;所述通过字符对比获取所述第一报文和所述第二报文的共同特征,包括:通过对比获取所述第一报文和所述第二报文中的相同字符串以作为所述共同特征;按照预设算法计算所述相同字符串的属性值;所述根据所述位置信息判断所述第三报文是否匹配所述共同特征,包括:计算所述第三报文中与所述位置信息对应的字符串的属性值;根据所述属性值是否与所述共同特征的属性值相匹配确定所述第三报文是否匹配所述共同特征。

全文数据:一种会话保持方法和装置技术领域本申请涉及网络通信技术领域,特别涉及一种会话保持方法和装置。背景技术在网络技术飞速发展的今天,服务器集群技术也在迅速发展。为了提高服务器的性能和负载能力,服务器负载均衡设备被广泛应用于各大服务器集群中,通过内置调度算法将访问流量均衡地分配至后端服务器。会话session保持是指在负载均衡设备上有一种机制,在作负载均衡的同时,还要识别客户端与服务器之间交互过程的关联性,保证同一用户相关联的访问请求会被分配到同一台服务器上,实现会话的连贯性,以避免出现用户需要反复登录等问题。例如,一个客户与服务器经常经过好几次的交互过程才能完成一笔交易或者是一个请求的完成。由于这几次交互过程是密切相关的,服务器在进行这些交互过程的某一个交互步骤时,往往需要了解上一次交互过程的处理结果,或者上几步的交互过程结果,服务器进行下一步操作时就要求所有这些相关的交互过程都由一台服务器完成,而不能被负载均衡器分散到不同的服务器上在现有技术中,可以有多种办法实现会话保持,例如:存会话的会话保持,又分数据库存放、文件系统存放和Memcached存放,这种方式通过后台服务器共享session的方式,在实现负载均衡的同时实现会话保持;基于cookie的会话保持,客户端第一次进入负载均衡器根据算法选择一台服务器,负载均衡器将向后台服务器插入cookie,并通过报文回到客户端,当客户端再次访问时将带有上次的cookie进入,后台读取cookie数值从而分配到之前同一台服务器。然而,存会话的会话保持方法会影响系统运行速度,而基于cookie的会话保持方法则会存在安全隐患问题。发明内容有鉴于此,本申请提供一种会话保持方法和装置,以避免影响系统运行速度及避免出现安全隐患。具体地,本申请是通过如下技术方案实现的:一种会话保持方法,所述方法用于负载均衡设备;所述方法包括:获取第一报文和第二报文,其中所述第一报文为客户端发给服务器的报文,所述第二报文为所述服务器发给所述客户端的报文;获取所述第一报文和所述第二报文的共同特征;记录所述共同特征在所述第一报文中的位置信息;当接收到第三报文后,根据所述位置信息判断所述第三报文是否匹配所述共同特征;如果所述第三报文匹配所述共同特征,则将所述第三报文发送给所述服务器。一种会话保持装置,所述装置用于负载均衡设备;所述装置包括:报文接收单元,用于获取第一报文和第二报文,其中所述第一报文为客户端发给服务器的报文,所述第二报文为所述服务器发给所述客户端的报文;特征获取单元,用于获取所述第一报文和所述第二报文的共同特征;位置记录单元,用于记录所述共同特征在所述第一报文中的位置信息;特征匹配单元,用于当所述报文接收单元接收到第三报文后,根据所述位置信息判断所述第三报文是否匹配所述共同特征;如果所述第三报文匹配所述共同特征,则将所述第三报文发送给所述服务器。由以上本申请提供的技术方案可见,在本方案中,先获取客户端发给服务器的第一报文和服务器发给所述客户端的第二报文,然后获取所述第一报文和所述第二报文的共同特征,并记录所述共同特征在所述第一报文中的位置信息,这样当接收到第三报文后,便可根据所述位置信息判断所述第三报文是否匹配所述共同特征,如果匹配了所述共同特征,则代表第三报文与第一报文属于同一会话,应将所述第三报文发送给同一服务器,从而实现会话保持。本方案通过单纯的报文特征对比即可识别出属于同一会话的报文,无需存会话,不会影响系统运行速度,也无需cookie,避免了安全隐患。同时,在本方案中实现了报文的自动+主动的对比和特征抽取,无需提前通过人工配置指示出哪里是特征,从而减少了页面配置操作,即使不会查看报文的用户依然可以在负载均衡下实现会话保持,提升了用户体验。附图说明图1为本申请示出的一种会话保持方法的流程图;图2为本申请示出的应用场景示意图;图3为本申请示出的客户端报文与服务器报文的示意图;图4为本申请示出的会话保持成功的示意图;图5为本申请示出的一种会话保持方法的流程图;图6为本申请示出的获取共同特征的流程图;图7为本申请示出的字符串对比示意图;图8为本申请示出的获取共同特征的流程图;图9为本申请示出的一种会话保持装置的示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。请参见图1,图1为本申请示出的一种会话保持方法的流程图。该方法可以应用于负载均衡设备或称为负载均衡器。该方法可以包括如下步骤:步骤S101,获取第一报文和第二报文,其中所述第一报文为客户端发给服务器的报文,所述第二报文为所述服务器发给所述客户端的报文。下面以图2所示的应用场景为例对本发明方案加以介绍,当然图2所示的应用场景仅为示例性的,在实际应用中,也可以适用于其它应用场景。在图2中,201为多个客户端中的一个,202为负载均衡器,203为多台服务器中的一台。负载均衡器202通过内置调度算法将各客户端访问流量均衡地分配至各服务器,在作负载均衡的同时,还要识别客户端与服务器之间交互过程的关联性,保证同一客户端如客户端201相关联的访问请求会被分配到同一台服务器如服务器203上,以实现会话的连贯性,避免出现业务中断等问题。作为示例,在本实施例或本发明其他某些实施例中,获取第一报文和第二报文,具体可以包括:获取完成三次握手后的所述客户端与所述服务器之间的请求报文和应答报文作为所述第一报文和所述第二报文。换句话说,当客户端第一次被负载均衡器用算法分给一台服务器并完成三次握手后,负载均衡器可获取服务器报文与客户端报文以进行对比。作为示例可参见图3所示,在图3中,客户端201发送给服务器203的请求报文以及服务器203回复的应答报文均经过负载均衡器202中转,即客户端201发送报文,负载均衡器202将客户端报文发给一台服务器203,服务器203回报文,故负载均衡器202可得到这两报文的报文内容,用以对比客户端报文与服务器端报文的特征。当然在本发明其他实施例中,所获取的第一报文和第二报文也可以是客户端和服务器在其他时候相互发送的报文,只要是包含有共同特征即可,对此本发明实施例并不进行限制。步骤S102,获取所述第一报文和所述第二报文的共同特征。共同特征即相同的地方,负载均衡器得到第一报文和第二报文的报文内容后可通过对比找到二者的共同特征。对于如何发现两个报文的共同特征,本实施例并不进行限制,本领域技术人员可以根据不同需求\不同场景而自行选择、设计,可以在此处使用的这些选择和设计都没有背离本发明的精神和保护范围。作为示例可参见表1所示:表1Host:10.30.6.88\r\nConnection:keep-alive\r\nUser-Agent:Mozilla5.0………以表1所示报文中头部名称为“Host”的内容为例,“Host”的“:”后的内容为“10.30.6.88”,负载均衡器可以将“10.30.6.88”与另一报文如“2.6.122.100”这样的内容对比,判断二者是否有共同特征。步骤S103,记录所述共同特征在所述第一报文中的位置信息。位置信息即该共同特征在第一报文中出现的位置,根据位置信息可截取出该共同特征。作为示例,位置信息可以包括共同特征在报文中的起止位置,或者包括起始位置+长度,又或者包括起始位置+结尾字符,等等,对此本发明实施例并不进行限制,本领域技术人员可以根据不同需求\不同场景而自行选择、设计。步骤S104,当接收到第三报文后,根据所述位置信息判断所述第三报文是否匹配所述共同特征。当客户端发来第三报文时,负载均衡器可按之前记录的位置信息从第三报文中截取出部分内容,然后判断该部分内容是否与之前记录的共同特征一致。步骤S105,如果所述第三报文匹配所述共同特征,则将所述第三报文发送给所述服务器。如果匹配所述共同特征,则代表第三报文属于该共同特征所对应的会话,应发送给同一服务器,以实现会话的保持。作为示例可参见图4所示,在图4中某时刻客户端201发送报文,负载均衡器根据报文特征对比确定服务器进行会话保持,从而使会话保持成功。而如果不匹配所述共同特征,则说明该服务器宕机,或者由于长时间未访问导致该共同特征对应的表项老化因超时\过期而被删除,需重新分配服务器。另外在本实施例或本发明其他某些实施例中,可参见图5所示步骤S501,如果所述第三报文匹配所述共同特征,则更新所述共同特征对应的表项的老化时间。根据共同特征生成的表项存在老化时间,客户端在老化时间内访问服务器则更新老化时间进行会话保持;反之,如果在老化时间内客户端未再访问服务器;则再次访问时,负载均衡器会重新依照负载均衡算法匹配服务器。在本发明实施例中,先获取客户端发给服务器的第一报文和服务器发给所述客户端的第二报文,然后获取所述第一报文和所述第二报文的共同特征,并记录所述共同特征在所述第一报文中的位置信息,这样当接收到第三报文后,便可根据所述位置信息判断所述第三报文是否匹配所述共同特征,如果匹配了所述共同特征,则代表第三报文与第一报文属于同一会话,应将所述第三报文发送给同一服务器,从而实现会话保持。本方案通过单纯的报文特征对比即可识别出属于同一会话的报文,无需存会话,不会影响系统运行速度,也无需cookie,避免了安全隐患。同时,在本方案中实现了报文的自动+主动的对比和特征抽取,无需提前通过人工配置指示出哪里是特征,从而减少了页面配置操作,即使不会查看报文的用户依然可以在负载均衡下实现会话保持,提升了用户体验。下面再进一步对共同特征加以说明:请参见图6,图6为本申请示出的获取共同特征的流程图,获取所述第一报文和所述第二报文的共同特征,可以包括:步骤S601,通过对比获取所述第一报文和所述第二报文中的相同字符串以作为所述共同特征。作为示例可参见图7所示,图7为本申请示出的字符串对比示意图,假设第一报文的内容为“10.30.6.88”,第二报文的内容为“2.6.122.100”,则通过字符对比,可以找到二者所含的相同的字符串“.6.”。步骤S602,按照预设算法计算所述相同字符串的属性值。对于预设算法的具体内容本实施例并不进行限制,本领域技术人员可以根据不同需求\不同场景而自行选择、设计,可以在此处使用的这些选择和设计都没有背离本发明的精神和保护范围。作为示例,按照预设算法计算所述相同字符串的属性值,可以包括:使用哈希Hash算法计算所述相同字符串的哈希值作为所述属性值。通过计算字符串哈希值可提高字符串对比的速度。相应的,根据所述位置信息判断所述第三报文是否匹配所述共同特征,可以包括:计算所述第三报文中与所述位置信息对应的字符串的属性值;根据所述属性值是否与所述共同特征的属性值相匹配确定所述第三报文是否匹配所述共同特征。例如,假设报文内容中的“10”为关键字,位置信息指示出作为共同特征的字符串的起点是从关键字右侧第一个字符开始偏移1个位置偏移量1开始、结束字符为“.88”,那么便可以根据此位置信息从第三报文中截取出一个字符串,然后根据该字符串的哈希值判断是否匹配。另外,也可以采用另外一种方式得到所述第一报文和所述第二报文的共同特征:即提前通过人工配置指示出哪里是特征。例如可参见表1,“:”之前如“Host”、“Connection”、“User-Agent”为头部名称,以“Host”为例,“Host”的“:”后的内容“10.30.6.88”,如果指示出关键字为“10”,偏移量为“1”,结束字符为“.88”,则可截出字符串“30.6”,将“30.6”通过Hash算法计算得出属性值。然而,发明人在实现本发明的过程中发现,上述这种方式需要人工进行页面配置操作,效率较低,用户体验不佳,而且有的用户不会查看报文,也就不会进行配置,无法实现会话保持。此外参见图8所示,在本实施例或本发明其他某些实施例中,按照预设算法计算所述相同字符串的属性值之后,所述方法还包括:步骤S801,如果计算得到的所述属性值与已记录的其他共同特征的属性值相冲突,则按照预设调整规则重新计算所述属性值。例如,找到作为共同特征的字符串后计算哈希值,发现该哈希值已存在,则可以按照预设调整规则重新计算哈希值,例如缩短字符串长度,调整偏移量,对此本实施例并不进行限制。在本发明实施例中,先获取客户端发给服务器的第一报文和服务器发给所述客户端的第二报文,然后获取所述第一报文和所述第二报文的共同特征,并记录所述共同特征在所述第一报文中的位置信息,这样当接收到第三报文后,便可根据所述位置信息判断所述第三报文是否匹配所述共同特征,如果匹配了所述共同特征,则代表第三报文与第一报文属于同一会话,应将所述第三报文发送给同一服务器,从而实现会话保持。本方案通过单纯的报文特征对比即可识别出属于同一会话的报文,无需存会话,不会影响系统运行速度,也无需cookie,避免了安全隐患。同时,在本方案中实现了报文的自动+主动的对比和特征抽取,无需提前通过人工配置指示出哪里是特征,从而减少了页面配置操作,即使不会查看报文的用户依然可以在负载均衡下实现会话保持,提升了用户体验。请参见图9,图9为本申请示出的一种会话保持装置的示意图,该装置可以用于负载均衡设备;该装置包括:报文接收单元901,用于获取第一报文和第二报文,其中所述第一报文为客户端发给服务器的报文,所述第二报文为所述服务器发给所述客户端的报文。作为示例,在本实施例或本发明其他某些实施例中,所述报文接收单元,具体可以用于:获取完成三次握手后的所述客户端与所述服务器之间的请求报文和应答报文作为所述第一报文和所述第二报文。特征获取单元902,用于获取所述第一报文和所述第二报文的共同特征。共同特征即相同的地方,负载均衡器得到第一报文和第二报文的报文内容后可通过对比找到二者的共同特征。位置记录单元903,用于记录所述共同特征在所述第一报文中的位置信息。位置信息即该共同特征在第一报文中出现的位置,根据位置信息可截取出该共同特征。作为示例,位置信息可以包括共同特征在报文中的起止位置,或者包括起始位置+长度,又或者包括起始位置+结尾字符,等等,对此本发明实施例并不进行限制,本领域技术人员可以根据不同需求\不同场景而自行选择、设计。特征匹配单元904,用于当所述报文接收单元接收到第三报文后,根据所述位置信息判断所述第三报文是否匹配所述共同特征;如果所述第三报文匹配所述共同特征,则将所述第三报文发送给所述服务器。作为示例,在本实施例或本发明其他某些实施例中:所述特征获取单元,具体可以包括:字符串对比子单元,用于通过对比获取所述第一报文和所述第二报文中的相同字符串以作为所述共同特征;计算子单元,用于按照预设算法计算所述相同字符串的属性值;所述特征匹配单元在根据所述位置信息判断所述第三报文是否匹配所述共同特征时,具体可以用于:计算所述第三报文中与所述位置信息对应的字符串的属性值;根据所述属性值是否与所述共同特征的属性值相匹配确定所述第三报文是否匹配所述共同特征。作为示例,在本实施例或本发明其他某些实施例中,所述计算子单元具体可以用于:使用哈希算法计算所述相同字符串的哈希值作为所述属性值。作为示例,在本实施例或本发明其他某些实施例中,所述计算子单元还可以用于:如果计算得到的所述属性值与已记录的其他共同特征的属性值相冲突,则按照预设调整规则重新计算所述属性值。作为示例,在本实施例或本发明其他某些实施例中,所述特征匹配单元还可以用于:如果所述第三报文匹配所述共同特征,则更新所述共同特征对应表项的老化时间。在本发明实施例中,先获取客户端发给服务器的第一报文和服务器发给所述客户端的第二报文,然后获取所述第一报文和所述第二报文的共同特征,并记录所述共同特征在所述第一报文中的位置信息,这样当接收到第三报文后,便可根据所述位置信息判断所述第三报文是否匹配所述共同特征,如果匹配了所述共同特征,则代表第三报文与第一报文属于同一会话,应将所述第三报文发送给同一服务器,从而实现会话保持。本方案通过单纯的报文特征对比即可识别出属于同一会话的报文,无需存会话,不会影响系统运行速度,也无需cookie,避免了安全隐患。同时,在本方案中实现了报文的自动+主动的对比和特征抽取,无需提前通过人工配置指示出哪里是特征,从而减少了页面配置操作,即使不会查看报文的用户依然可以在负载均衡下实现会话保持,提升了用户体验。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

权利要求:1.一种会话保持方法,其特征在于,所述方法用于负载均衡设备;所述方法包括:获取第一报文和第二报文,其中所述第一报文为客户端发给服务器的报文,所述第二报文为所述服务器发给所述客户端的报文;获取所述第一报文和所述第二报文的共同特征;记录所述共同特征在所述第一报文中的位置信息;当接收到第三报文后,根据所述位置信息判断所述第三报文是否匹配所述共同特征;如果所述第三报文匹配所述共同特征,则将所述第三报文发送给所述服务器。2.根据权利要求1所述的方法,其特征在于:获取所述第一报文和所述第二报文的共同特征,包括:通过对比获取所述第一报文和所述第二报文中的相同字符串以作为所述共同特征;按照预设算法计算所述相同字符串的属性值;根据所述位置信息判断所述第三报文是否匹配所述共同特征,包括:计算所述第三报文中与所述位置信息对应的字符串的属性值;根据所述属性值是否与所述共同特征的属性值相匹配确定所述第三报文是否匹配所述共同特征。3.根据权利要求2所述的方法,其特征在于,按照预设算法计算所述相同字符串的属性值,包括:使用哈希算法计算所述相同字符串的哈希值作为所述属性值。4.根据权利要求2所述的方法,其特征在于,按照预设算法计算所述相同字符串的属性值之后,所述方法还包括:如果计算得到的所述属性值与已记录的其他共同特征的属性值相冲突,则按照预设调整规则重新计算所述属性值。5.根据权利要求1所述的方法,其特征在于,获取第一报文和第二报文,包括:获取完成三次握手后的所述客户端与所述服务器之间的请求报文和应答报文作为所述第一报文和所述第二报文。6.根据权利要求1所述的方法,其特征在于,根据所述位置信息判断所述第三报文是否匹配所述共同特征之后,所述方法还包括:如果所述第三报文匹配所述共同特征,则更新所述共同特征对应表项的老化时间。7.一种会话保持装置,其特征在于,所述装置用于负载均衡设备;所述装置包括:报文接收单元,用于获取第一报文和第二报文,其中所述第一报文为客户端发给服务器的报文,所述第二报文为所述服务器发给所述客户端的报文;特征获取单元,用于获取所述第一报文和所述第二报文的共同特征;位置记录单元,用于记录所述共同特征在所述第一报文中的位置信息;特征匹配单元,用于当所述报文接收单元接收到第三报文后,根据所述位置信息判断所述第三报文是否匹配所述共同特征;如果所述第三报文匹配所述共同特征,则将所述第三报文发送给所述服务器。8.根据权利要求7所述的装置,其特征在于:所述特征获取单元,包括:字符串对比子单元,用于通过对比获取所述第一报文和所述第二报文中的相同字符串以作为所述共同特征;计算子单元,用于按照预设算法计算所述相同字符串的属性值;所述特征匹配单元在根据所述位置信息判断所述第三报文是否匹配所述共同特征时,具体用于:计算所述第三报文中与所述位置信息对应的字符串的属性值;根据所述属性值是否与所述共同特征的属性值相匹配确定所述第三报文是否匹配所述共同特征。9.根据权利要求8所述的装置,其特征在于,所述计算子单元具体用于:使用哈希算法计算所述相同字符串的哈希值作为所述属性值。10.根据权利要求8所述的装置,其特征在于,所述计算子单元还用于:如果计算得到的所述属性值与已记录的其他共同特征的属性值相冲突,则按照预设调整规则重新计算所述属性值。11.根据权利要求7所述的装置,其特征在于,所述报文接收单元,具体用于:获取完成三次握手后的所述客户端与所述服务器之间的请求报文和应答报文作为所述第一报文和所述第二报文。12.根据权利要求7所述的装置,其特征在于,所述特征匹配单元还用于:如果所述第三报文匹配所述共同特征,则更新所述共同特征对应表项的老化时间。

百度查询: 杭州迪普科技股份有限公司 一种会话保持方法和装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。