CN114785737A - 报文处理方法、网关设备、服务器及存储介质 - Google Patents
报文处理方法、网关设备、服务器及存储介质 Download PDFInfo
- Publication number
- CN114785737A CN114785737A CN202210376479.3A CN202210376479A CN114785737A CN 114785737 A CN114785737 A CN 114785737A CN 202210376479 A CN202210376479 A CN 202210376479A CN 114785737 A CN114785737 A CN 114785737A
- Authority
- CN
- China
- Prior art keywords
- message
- server
- address
- packet
- hash table
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000003860 storage Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims description 39
- 238000004590 computer program Methods 0.000 claims description 19
- 238000005538 encapsulation Methods 0.000 claims description 16
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000008859 change Effects 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 10
- 238000012423 maintenance Methods 0.000 description 8
- 108050000123 Inactive phospholipase C-like protein 1 Proteins 0.000 description 7
- 102100022929 Nuclear receptor coactivator 6 Human genes 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000013519 translation Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000036541 health Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- RYAUSSKQMZRMAI-YESZJQIVSA-N (S)-fenpropimorph Chemical compound C([C@@H](C)CC=1C=CC(=CC=1)C(C)(C)C)N1C[C@H](C)O[C@H](C)C1 RYAUSSKQMZRMAI-YESZJQIVSA-N 0.000 description 1
- 102100033763 Transducin-like enhancer protein 4 Human genes 0.000 description 1
- 206010047289 Ventricular extrasystoles Diseases 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005129 volume perturbation calorimetry Methods 0.000 description 1
Images
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种报文处理方法、网关设备、服务器及存储介质。网关设备接收到报文后,可确定报文在一致性哈希表中对应的哈希索引。基于哈希索引,可在一致性哈希表中,确定与该哈希索引对应的当前服务器并确定一致性哈希表上一次更新之前与该哈希索引对应的历史服务器。根据历史服务器的地址,可在报文中添加重定向信息,得到新的报文,并转发该新的报文。报文的接收端可基于重定向信息对该报文进行重定向,进而使得该报文的实际接收端为该报文在一致性哈希表更新之前对应的历史服务器。从而,同一会话的不同报文可转发至同一服务器,有利于在无状态的负载均衡中,降低服务器节点变动对连接一致性的影响。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种报文处理方法、网关设备、服务器及存储介质。
背景技术
在一些大流量的通信场景中,可基于硬件的网关设备实现无状态的负载均衡。硬件的网关设备没有足够的内存资源,因此无法实现会话级别的负载均衡。网关设备接收到报文时,可不考虑报文所属的会话,直接基于一致性哈希算法将报文转发至对应服务器。但是,当一致性哈希算法的哈希表更新时,同一会话的不同报文可能会被转发到不同的服务器上,从而导致会话的连接一致性被破坏。因此,有待提出一种解决方案。
发明内容
本申请的多个方面提供一种报文处理方法、网关设备、服务器及存储介质,用以在实现无状态负载均衡时,降低服务器节点变动对连接一致性的影响。
本申请实施例提供一种边缘云的报文处理方法,适用于边缘网关,包括:接收待转发的第一报文;确定所述第一报文在一致性哈希表中对应的哈希索引;在所述一致性哈希表中,确定与所述哈希索引对应的当前服务器,作为第一服务器;以及,确定所述一致性哈希表上一次更新之前与所述哈希索引对应的历史服务器,作为第二服务器;根据所述第一服务器的地址信息对所述第一报文进行地址转换,并根据所述第二服务器的地址信息,在所述第一报文中添加重定向信息,得到第二报文;所述重定向信息用于对所述第二报文进行重定向;转发所述第二报文。
本申请实施例提供一种报文处理方法,包括:接收待转发的第一报文;确定所述第一报文在一致性哈希表中对应的第一哈希索引;在所述一致性哈希表中,确定与所述第一哈希索引对应的当前服务器,作为第一服务器;以及,确定所述一致性哈希表上一次更新之前与所述第一哈希索引对应的历史服务器,作为第二服务器;根据所述第一服务器的地址信息对所述第一报文进行地址转换,并根据所述第二服务器的地址信息,在所述第一报文中添加重定向信息,得到第二报文;所述重定向信息用于对所述第二报文进行重定向;转发所述第二报文。
本申请实施例提供一种报文处理方法,包括:接收网关设备发送的报文,所述报文携带第一服务器的地址作为目的地址;对所述报文进行解析,得到所述报文中的重定向信息;所述重定向信息根据第二服务器的地址生成,所述第二服务器为所述报文的哈希索引在一致性哈希表上一次更新之前对应的历史服务器;根据所述重定向信息,对所述报文进行重定向。
本申请实施例还提供一种网关设备,包括:存储器和处理器;所述存储器用于存储一条或多条计算机指令;所述处理器用于执行所述一条或多条计算机指令以用于:执行本申请实施例提供的方法中的步骤。
本申请实施例还提供一种服务器,包括:存储器和处理器;所述存储器用于存储一条或多条计算机指令;所述处理器用于执行所述一条或多条计算机指令以用于:执行本申请实施例提供的方法中的步骤。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被处理器执行时能够实现本申请实施例提供的方法中的步骤。
本申请实施例提供的报文处理方法中,网关设备接收到待转发的报文后,可确定报文在一致性哈希表中对应的哈希索引。基于哈希索引,可在一致性哈希表中,确定与该哈希索引对应的当前服务器并确定一致性哈希表上一次更新之前与该哈希索引对应的历史服务器。根据历史服务器的地址,可在报文中添加重定向信息,得到新的报文,并转发该新的报文。在这种实施方式中,报文的接收端可基于重定向信息对该报文进行重定向,进而使得该报文的实际接收端为该报文在一致性哈希表更新之前对应的历史服务器。从而,同一会话的不同报文可转发至同一服务器,有利于在基于硬件的网关设备实现无状态负载均衡时,降低服务器节点变动对连接一致性的影响。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请一示例性实施例提供的报文处理系统的架构示意图;
图1b为本申请一示例性实施例提供的边缘云场景中的报文处理系统的架构示意图;
图2为本申请一示例性实施例提供的私有IP选项的格式示意图;
图3为本申请一示例性实施例提供的物理机的报文处理方法的流程示意图;
图4为本申请一示例性实施例提供的虚拟交换机的报文处理方法的流程示意图;
图5为本申请一示例性实施例提供的触发一致性哈希表更新的事件的示意图;
图6为本申请一示例性实施例提供的报文处理方法在网关设备侧执行时的流程示意图;
图7为本申请一示例性实施例提供的报文处理方法在服务器侧执行时的流程示意图;
图8为本申请一示例性实施例提供的网关设备的结构示意图;
图9为本申请一示例性实施例提供的服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
在一些大流量的通信场景中,可基于硬件的负载均衡器实现无状态的负载均衡。硬件的负载均衡器没有足够的内存资源,因此无法实现会话级别的负载均衡。负载均衡器接收到报文时,可不考虑报文所属的会话,直接基于一致性哈希算法将报文转发至对应服务器。但是,当一致性哈希算法的哈希表更新时,同一会话的不同报文可能会被转发到不同的服务器上,从而导致会话的连接一致性被破坏。
针对上述技术问题,本申请提供了一种解决方案,以下将结合附图进行具体说明。
图1a为本申请一示例性实施例提供的报文处理系统的架构示意图,如图1a所示,报文处理系统包括:客户端10、网关设备20以及服务器30。
其中,客户端10为流量的发起方,网关设备20为流量的转发方,服务器30为流量的接收方。其中,服务器30可以实现为常规服务器或者云服务器,本实施例不做限制。客户端10可通过公网与网关设备20连接。网关设备20可通过VxLAN(Virtual Extensible LocalArea Network,虚拟扩展局域网)隧道与服务器30连接。
客户端10、网关设备20以及服务器30组成了如图1a所示的三角模式,即负载均衡的Tunnel(隧道)-NAT(Network Address Translation,网络地址转换)工作模式。在这种三角模式中,客户端发出的流量可经过网关设备20决策后转发至不同的服务器,从服务器返回至客户端的回程流量不经过网关设备。
其中,Tunnel-NAT工作模式是指,网关设备可根据报文对应的隧道(即Tunnel)目的地址对报文进行封装。同时,网关设备可根据一致性哈希算法得到的报文的目的地址,对报文中的原目的地址进行转换(即对报文进行NAT)。在这种三角模式中,转发出的报文携带着目的地址,服务器发送回程报文时,可再次进行网络地址转换,即:将报文中携带的目的地址还原为原目的地址。从而,回程报文可直接转发给发送该报文的客户端,而无需经过网关设备进行NAT还原。
其中,网关设备20是基于专用硬件实现负载均衡的设备。在一些实施例中,网关设备可实现为边缘智能网关(Edge Smart Gateway,ESG)。网关设备20中存储有网络的一致性哈希表,以使得网关设备20可基于一致性哈希算法进行报文转发。一致性哈希表是一个环形结构的数据表,又可称为一致性哈希环。网关设备20可根据报文的五元组(源IP、源端口、目的IP、目的端口、协议号)信息进行哈希计算,或者可根据五元组信息以及VNI(VXLANNetwork Identifier,VXLAN网络标识符)进行哈希计算,得到报文的哈希索引。当网关设备使用Tunnel-NAT模式对流量进行分流时,可根据报文的哈希索引对一致性哈希表进行查询,得到存储在一致性哈希表中的后端服务器的IP地址以及端口。网关设备20可采用查询到的地址以及端口替换原始报文中的目的地址和目的端口。若后端服务器位于虚拟网络(overlay网络)中,则网关设备可根据查询到的后端服务器的IP地址和VNI(VXLAN NetworkIdentifier,VXLAN网络标识符),查询VMNC(Virtual Machine Network Computer虚拟机与网络计算机)对照表,确定后端服务器所处的隧道目的地址,并根据该隧道目的地址对报文进行封装并将封装后的报文转发至后端服务器所在的网络计算机NC(又称物理机)。
其中,当网络中的节点(包括物理机以及虚拟机)发生变化时,一致性哈希表将会发生变化,同一哈希索引可能对应不同的后端服务器。为确保一致性哈希表变化后,同一会话的不同报文可被转发到同一节点上,网关设备20可在接收到的报文中添加重定向信息,该重定向信息包含一致性哈希表更新之前哈希索引对应的服务器的信息。
以下将以网关设备20接收的任一报文为例进行示例性说明。为便于描述和区分,以下将网关设备20接收的任一报文描述为第一报文,将网关设备20根据该第一报文转发出的报文描述为第二报文。
网关设备20接收待转发的第一报文后,可确定第一报文在一致性哈希表中对应的第一哈希索引。确定哈希索引后,可在一致性哈希表中,确定与第一哈希索引对应的当前服务器,作为第一服务器。其中,当前服务器是指一致性哈希表上一次更新之后,与当前与哈希索引对应的服务器。网关设备20还可确定一致性哈希表上一次更新之前与第一哈希索引对应的历史服务器,作为第二服务器。其中,上一次更新,是指距离当前时刻最近一次的更新。
其中,网关设备20可保存有一致性哈希表上一次更新之前与每一哈希索引对应的历史服务器,每一哈希索引对应的历史服务器,可保存在一致性哈希表中,也可保存在其他数据表中,本实施例不做限制。
进而,确定第一报文对应的第一哈希索引后,网关设备20可根据报文对应的第一哈希索引,确定与第一哈希索引对应的当前服务器,作为第一服务器,并确定一致性哈希表上一次更新之前与第一哈希索引对应的历史服务器,作为第二服务器。
其中,确定第一服务器之后,网关设备20可采用第一服务器的地址更新第一报文中的目的服务器的地址,以对第一报文进行网络地址转换。
确定第二服务器之后,网关设备20可根据第二服务器的地址,在第一报文中添加重定向信息,得到第二报文。其中,重定向信息,用于重新确定报文的目的地址。根据第二服务器的地址,在第一报文中添加重定向信息,可使得报文的接收端在解析报文后,判断是否将报文转发至该第二服务器。
网关设备20确定第二报文后,可转发第二报文。若第一服务器为物理机,则该第二报文可直接转发给第一服务器;若该服务器为虚拟网络中的虚拟机,则第二报文可转发给第一服务器所在的物理机。第二报文的接收端(即第一服务器或者第一服务器所在的物理机)可至少根据第二报文中的重定向信息对第二报文进行重定向。
服务器30接收网关设备20发送的第二报文后,可对第二报文进行解析,得到第二报文中的重定向信息,并可根据重定向信息,对第二报文进行重定向。其中,第一服务器位于不同的类型的网络(例如物理网络或者虚拟网络)中时,服务器30对第二报文进行重定向的方式不同,具体将在后续实施例进行介绍,此处不赘述。
在本实施例中,网关设备接收到待转发的报文后,可确定报文在一致性哈希表中对应的哈希索引。基于哈希索引,可在一致性哈希表中,确定与该哈希索引对应的当前服务器并确定一致性哈希表上一次更新之前与该哈希索引对应的历史服务器。根据历史服务器的地址,可在报文中添加重定向信息,得到新的报文,并转发该新的报文。在这种实施方式中,报文的接收端可基于重定向信息对该报文进行重定向,进而使得该报文的实际接收端为该报文在一致性哈希表更新之前对应的历史服务器。从而,同一会话的不同报文可转发至同一服务器,有利于在基于硬件的网关设备实现无状态负载均衡时,降低服务器节点变动对连接一致性的影响。
在一些示例性的实施例中,网关设备20可对一致性哈希表进行改进,使得该一致性哈希表中,任一哈希索引的哈希桶中存储有该哈希索引当前对应的服务器的信息,以及一致性哈希表上一次更新之前该哈希索引对应的服务器的信息。在网络中的服务器每次得到更新时,可对网络的一致性哈希表进行更新。
以下将以一致性哈希表中的任一哈希索引为例进行示例性说明。为与前述实施例的哈希索引进行区分,本实施例中,将哈希桶得到更新的哈希索引描述为第二哈希索引。在一致性哈希表更新之前,第二哈希索引与第三服务器对应。
可选地,响应一致性哈希表的更新操作,网关设备20可获取一致性哈希表更新后第二哈希索引对应的第四服务器的地址。在对一致性哈希表进行更新时,可将第四服务器的地址,存储在第二哈希索引对应的哈希桶中,以及将第三服务器作为一致性哈希表上一次更新之前与第二哈希索引对应的历史服务器,并将所述第三服务器的地址存储在第二哈希索引对应的哈希桶中。
以下将结合具体例子,对改进后的一致性哈希表进行举例说明。
假设,当前一致性哈希表的长度为4,并且网络中只有一个后端服务器,该后端服务器的IP地址为A。初始状态下,一致性哈希表存储的当前后端服务器的IP地址(即Realserver IP,RIP)和一致性哈希表更新前的后端服务器的IP地址(Previous real serverIP,PRIP)均为A,如下表1所示:
表1
哈希索引 | RIP | PRIP |
0 | A | A |
1 | A | A |
2 | A | A |
3 | A | A |
若网络中新增一台后端服务器,该后端服务器的IP地址为B,那么一致性哈希表中的内容会随之更新。根据哈希表生成算法,RIP列修改为哈希桶位置对应的当前RS服务器地址B,PRIP列修改为一致性哈希表上一次更新之前该哈希桶位置所对应的后端服务器IP地址A,如以下表2所示:
表2
哈希索引 | RIP | PRIP |
0 | A | A |
1 | B | A |
2 | B | A |
3 | B | A |
若网络中再次新增了一台后端服务器,该后端服务器的IP地址为C,那么一致性哈希表中的内容可更新为表3所示:
表3
哈希索引 | RIP | PRIP |
0 | A | A |
1 | B | A |
2 | B | A |
3 | C | B |
当网络中删除一台后端服务器时,一致性哈希表的内容也随之更新。例如,当网络中删除IP地址为C的后端服务器时,一致性哈希表中的内容可更新为表4所示:
表4
基于上述改进的哈希表,网关设备20可根据报文对应的哈希索引,确定与该哈希索引对应的当前服务器,并确定一致性哈希表上一次更新之前与该哈希索引对应的历史服务器。例如,若表4是一致性哈希表上一次更新后的结果,若第一哈希索引为3,则可从表4中确定当前服务器为地址B对应的服务器,历史服务器为地址C对应的服务器。
基于这种实施方式,可在一致性哈希表中记录一致性哈希表变动前后不同哈希索引对应的服务器,从而,可保存相同会话的报文的历史目的端,从而可在一致性哈希表变动后,将相同会话的不同报文转发至相同的目的端,降低连接一致性被破坏的风险,提升网络服务质量。
在一些示例性的实施例中,网关设备20根据第二服务器的地址信息,在第一报文中添加重定向信息时,可第一报文中添加私有IP选项,得到第二报文。其中,私有IP选项携带第二服务器的地址信息以及私有IP标识。其中,私有IP标识用于对私有IP选项进行识别。该地址信息可包括第二服务器的IP地址以及端口。
图2对私有IP选项的一种可选格式进行了示意,如图2所示,私有IP选项中,OP_CODE字段用存储私有IP标识,以便于报文接收端识别该私有IP选项;OP_LEN字段用于存储私有IP选项的长度;PRPORT用于存储一致性哈希表变动前该报文对应的服务器的端口,长度可以为16bit;PRIP用于存储一致性哈希表变动前该报文对应的服务器的IP地址,长度可以为32bit。
相应地,对于第二报文的接收端,即服务器30而言,对第二报文进行解析,得到报文中的重定向信息时,可识别报文中的私有IP标识;根据私有IP标识,确定报文中添加的私有IP选项,并从私有IP选项中,确定第二服务器的地址信息。
基于这种添加私有IP选项的方式,网关设备20可在转发出的报文中携带重定向信息,以便于报文的接收端对报文进行重定向,降低出现连接一致性问题的风险。
在一些可选的实施例中,将第一服务器作为目的端转发第二报文之前,还可对第二报文添加VxLAN(Virtual Extensible Local Area Network,虚拟扩展局域网)封装。
可选地,网关设备20根据第一服务器的地址以及第一服务器所属的虚拟专用网络的标识,确定第一服务器的隧道目的地址,并根据第一服务器的对应的隧道目的地址,添加VxLAN封装。网关设备20可将封装后的第二报文发送至第一服务器所在的物理机,以使物理机将第一服务器作为目的端转发第二报文。
在一些场景中,第一服务器和第二服务器所在的网络为虚拟网络(overlay),第一服务器和第二服务器为虚拟网络中的虚拟机VM(Virtual Machine),如图1a所示的服务器S0以及服务器S1。在这种场景中,第一服务器所属的虚拟专用网络的标识,可以是第一服务器所属的VPC(virtual private cloud,虚拟私有云)的ID(即VPCID),例如可以是VNI(VXLAN Network Identifier,VXLAN网络标识符)。其中,VNI用于代表虚拟机的租户,具有不同VNI的虚拟机之间无法相互通信,VNI的值通常为正整数。在虚拟网络的场景下,根据VM的IP地址以及VNI,即可确定VM所在的物理机的IP地址(即隧道目的地址)。
在虚拟网络的场景下,根据虚拟机的IP地址以及VNI查询VMNC表,即可确定虚拟机的隧道目的地址。
其中,VM的IP地址、VNI以及物理机的IP地址(NC IP)的对应关系,可存放在VMNC对照表中,如以下表5所示:
表5
VNI | VM IP | NC IP |
1000 | X1000 | Y1000 |
1001 | X1001 | Y1001 |
-1 | X1002 | Y1002 |
在对第二报文进行封装时,根据第一服务器的IP地址以及第一服务器的VNI,查询VMNC,即可确定第一服务器所在的物理机的隧道目的地址。例如,图1a所示的服务器S0的VNI为1000,VM IP为X1000,则可查询上述表5确定服务器S0所在的物理机的NC IP为Y1000。
在另一些场景中,第一服务器和第二服务器所在的网络为物理网络(underlay),第一服务器和第二服务器为物理网络中的物理机,如图1a所示的服务器S2以及服务器S3。在这种场景中,可选地,可设置第一服务器以及第二服务器的VNI为特定值,例如为-1(如表5所示),以便于区分。在物理网络的场景下,根据物理机的IP地址以及VNI=-1这一条件查询VMNC表,即可确定物理机的隧道目的地址。该隧道目的地址用于对报文进行封装,可称为虚拟VxLAN隧道。
其中,物理机的VM IP和NC IP可以相同,也可以不同。
例如,图1a所示的服务器S2的VNI为-1,VM IP为X1002,则可查询上述表5确定服务器S2所在的物理机的NC IP为Y1002。基于查询到的第一服务器的隧道目的地址,可对第二报文添加VxLAN封装。对第二报文添加VxLAN封装后,可使得第二报文以VxLAN的形式被转发。
在上述实施方式中,一方面,可基于VxLAN报文隔离不同VPC的网络报文,VNI的数量可以为2N-1个,N为正整数,可支持海量租户的隔离。另一方面,可屏蔽私有IP选项对商业交换机的影响,避免由于组网环境中的商业交换机不识别未知IP选项从而导致性能损失。
在一些示例性的实施例中,如图1a所示,第一服务器和第二服务器位于虚拟网络中,服务器30为物理机,第一服务器和第二服务器为服务器30中的虚拟机。在这种实施方式中,如图1a所示,服务器30上运行有边缘虚拟交换机(Edge Virtual Switch,EVS)。
服务器30接收到第二报文后,可由EVS根据第二报文中的重定向信息,对第二报文进行重定向。如图3所示,EVS可判断服务器30本地是否存在与报文对应的会话。若存在与第二报文对应的会话,则EVS可判断是否检查报文中的私有IP选项。若报文中包含私有IP标识,则EVS可从报文中检查出私有IP选项,并获取私有IP选项中的重定向信息。
获取重定向信息后,EVS可判断重定向信息中的第二服务器的地址与第一服务器的地址(即第二报文携带的目的地址)是否一致。若第二服务器的地址与第一服务器的地址一致,则EVS可将报文转发至第一服务器。若第二服务器的地址与第一服务器的地址不一致,则EVS可将报文转发至第二服务器。将报文转发至第二服务器之前,EVS可将第二报文中包含的第一服务器的地址替换为第二服务器的地址,以将第二服务器更换为第二报文的目的端。
可选地,如图3所示,若服务器本地不存在与第二报文对应的会话,则EVS可创建第二报文对应的会话,并判断第二报文是否为TCP(Transmission Control Protocol,传输控制协议)报文。若第二报文不为TCP报文,则可直接根据报文的目的端对该报文进行转发。若第二报文为TCP报文,则EVS可判断第二报文是否为TCP三次握手首包报文(即SYN报文)。若第二报文为TCP三次握手首包报文,则可设置会话重定向标识为假(False)。EVS可不检查私有IP选项,并直接将第二报文转发给第一服务器。
若第二报文不为TCP三次握手首包报文,则可设置会话重定向标识为真(True)。EVS可在会话重定向标识为真的情况下,继续检查私有IP选项。检查私有IP选项时,EVS可获取私有IP选项中的重定向信息,并判断重定向信息中的第二服务器的地址与第一服务器的地址是否一致。若第二服务器的地址与第一服务器的地址不一致,则EVS可将第二报文转发至第二服务器。
在另一些示例性的实施例中,如图1a所示,第一服务器和第二服务器为物理网络中的物理机,如图1a所示的服务器S2以及服务器S3。在这种实施方式中,如图4所示,服务器30在根据重定向信息,对第二报文进行重定向时,可判断第二报文是否为VxLAN报文且VNI满足设定条件,该设定条件可以为:VNI=-1。若第二报文为VxLAN报文且VNI满足设定条件,则判断第二报文是否为TCP报文。若第二报文为TCP报文,则服务器30可判断第二报文是否为TCP三次握手首包报文。若第二报文不为TCP三次握手首包报文,则服务器30可判断本地是否存在与第二报文对应的会话。若存在与第二报文对应的会话,则服务器30可对第二报文进行VxLAN解封装,并基于内核协议栈处理解封装后的报文。
若本地不存在与第二报文对应的会话,则服务器30可判断私有IP选项中的第二服务器的地址与第一服务器的地址(即第二报文携带的目的地址)是否一致。若第二服务器的地址与第一服务器的地址一致,则丢弃该报文。若第二服务器的地址与第一服务器的地址不一致,则服务器30可执行报文重定向操作,将第二报文转发至第二服务器。
基于上述实施方式,服务器30接收到报文后,可基于重定向信息对该报文进行重定向,进而使得同一会话的不同报文可转发至同一服务器,降低了服务器节点变动对会话的连接一致性的影响。
本申请上述各实施例可应用在网络的健康检查场景或者运维场景。
如图5所示,在健康检查场景中,外部事件(例如用户事件)可触发网络的健康检查操作。健康检查时,若探测到一个或者多个后端服务器停止服务,需要将后端服务器从网络中删除,此时网络的硬件表项更新,导致一致性哈希表得到更新。网关设备可基于前述实施例,执行新的报文转发策略。在健康检查场景中,一致性哈希表变动后,新的报文转发策略可立即生效,以尽快感知到存在异常的服务器。
在运维场景中,可根据运维需求对后端服务器进行运维上线或运维下线(即运维增删)。这种情况下,运维侧可将运维增删的硬件表项发送至网关设备。网关设备可设置一致性表的更新定时器,该更新定时器,用于控制一致性哈希表的更新频率。网关设备可缓存硬件表项,并在定时器超时后,对网络的硬件表项进行更新,从而使得网关设备维护的一致性哈希表得到更新。在这种实施方式中,运维增删方案确定后,网关设备的新的负载均衡优化策略可延迟生效,以降低在短时间内对同一哈希桶进行频繁修改导致重定向失效的风险。
本申请上述以及下述各实施例提供的报文转发处理系统可应用在边缘云计算中场景。
其中,边缘云计算,简称边缘云,是基于云计算技术的核心和边缘计算能力,构建在边缘基础设施之上的云计算平台。边缘云,是形成于边缘位置的计算、网络、存储、安全等能力全面的弹性云平台,并与中心云和物联网终端形成“云边端三体协同”的端到端的技术构架,如图1b所示。
基于边缘云,可将网络转发、存储、计算,智能化数据分析等工作放在边缘处理,降低响应时延,减轻云端压力、降低带宽成本,并能提供全网调度、算力分发等云服务。
边缘网络是边缘云的关键能力体现。在产业界,边缘网络通常包括边缘云接入网络、边缘云内部网络、边缘云互联网络。其中,边缘云接入网络是指从用户系统到边缘云平台所经过的网络基础设施;边缘云内部网络是指边缘云平台内部的网络基础设施;边缘云互联网络是指从边缘云平台到中心云平台、其他边缘云平台及各类云数据中心所经过的网络基础设施。
如图1b所示,边缘云内部网络的基础设施可包括:分布式数据中心(Data Center,DC)、运营商通信网络的边缘基础设施、边缘网关(例如ESG)等设备及其对应的网络环境。如图1b所示,边缘云中的数据中心DC可与中心云中的大型互联网数据中心(Internet DataCenter,IDC)进行数据协同,并可通过边缘网关或者运营商的边缘基础设施与终端设备进行通信交互。
在边缘云内部网络中,ESG可基于硬件的可编程芯片,执行本申请上述以及下述各实施例提供的可由网关设备执行的报文处理方法,以实现基于硬件的无状态负载均衡。
例如,在边缘云的视图计算场景中,客户端可通过边缘云提供的边缘网络,将视频流推给边缘云中的视图计算服务器。对于边缘云节点的入口来说,上行流量较大,常规的软件网关无法满足该需求。边缘网关可将上行流量卸载到(offload)硬件的P4(ProgrammingProtocol-Independent Packet Processors,独立于编程协议的数据包处理器)芯片上,以基于硬件的网关设备实现大流量场景下的无状态负载均衡。以下将对ESG基于可编程芯片进行无状态负载均衡的处理过程进行示例性说明。
ESG可接收待转发的第一报文。其中,该第一报文可以是终端,例如企业终端、家庭终端、物联网终端等发送的。ESG维护有一致性哈希表,并可确定第一报文在一致性哈希表中对应的哈希索引。在该一致性哈希表中,ESG可确定与该哈希索引对应的当前服务器,作为第一服务器;以及,确定一致性哈希表上一次更新之前与该哈希索引对应的历史服务器,作为第二服务器。ESG可根据第一服务器的地址信息对第一报文进行地址转换,并根据第二服务器的地址信息,在第一报文中添加重定向信息,得到第二报文。其中,该重定向信息用于对第二报文进行重定向。生成第二报文后,ESG可转发该第二报文。
在这种实施方式中,边缘云中的第一服务器或者第一服务器所在的物理机接收到第二报文后,可基于重定向信息对该报文进行重定向,进而使得该报文的实际接收端为该报文在一致性哈希表更新之前对应的第二服务器。从而,同一会话的不同报文可转发至同一服务器,有利于在基于边缘网关设备实现无状态负载均衡时,降低服务器节点变动对连接一致性的影响。
除前述实施例提供的报文处理系统之外,本申请实施例还提供一种报文处理方法。
图6为本申请一示例性实施例提供的报文处理方法的流程示意图,如图6所示,该方法在网关设备侧执行时,主要包括:
步骤601、接收待转发的第一报文。
步骤602、确定所述第一报文在一致性哈希表中对应的第一哈希索引。
步骤603、在所述一致性哈希表中,确定与所述第一哈希索引对应的当前服务器,作为第一服务器;以及,确定所述一致性哈希表上一次更新之前与所述第一哈希索引对应的历史服务器,作为第二服务器。
步骤604、根据所述第一服务器的地址信息对所述第一报文进行地址转换,并根据所述第二服务器的地址信息,在所述第一报文中添加重定向信息,得到第二报文;所述重定向信息用于对所述第二报文进行重定向。
步骤605、转发所述第二报文。
在一些示例性的实施例中,所述一致性哈希表包括:第二哈希索引,所述第二哈希索引与第三服务器对应;所述方法还包括:响应所述一致性哈希表的更新事件,获取所述第二哈希索引在所述一致性哈希表更新后对应的第四服务器的地址;将所述第四服务器的地址,存储在所述第二哈希索引对应的哈希桶中;以及,将所述第三服务器作为所述第二哈希索引对应的历史服务器,并将所述第三服务器的地址存储在所述第二哈希索引对应的哈希桶中。
在一些示例性的实施例中,根据所述第二服务器的地址信息,在所述第一报文中添加重定向信息,得到第二报文的一种方式,可包括:在所述第一报文中添加私有IP选项,得到所述第二报文;其中,所述私有IP选项携带所述第二服务器的地址信息以及私有IP标识;所述私有IP标识用于对所述私有IP选项进行识别。
在一些示例性的实施例中,转发所述第二报文之前,还包括:对所述第二报文添加VxLAN封装。
在一些示例性的实施例中,对所述第二报文添加VxLAN封装的一种方式,可包括:若所述第一服务器为虚拟网络中的虚拟机,则根据所述第一服务器的地址以及所述第一服务器所属的虚拟专用网络的标识,确定所述第一服务器的隧道目的地址;根据所述第一服务器的对应的隧道目的地址,对所述第二报文添加VxLAN封装。
在本实施例中,网关设备接收到待转发的报文后,可确定报文在一致性哈希表中对应的哈希索引。基于哈希索引,可在一致性哈希表中,确定与该哈希索引对应的当前服务器并确定一致性哈希表上一次更新之前与该哈希索引对应的历史服务器。根据历史服务器的地址,可在报文中添加重定向信息,得到新的报文,并转发该新的报文。在这种实施方式中,报文的接收端可基于重定向信息对该报文进行重定向,进而使得该报文的实际接收端为该报文在一致性哈希表更新之前对应的历史服务器。从而,同一会话的不同报文可转发至同一服务器,有利于在基于硬件的网关设备实现无状态负载均衡时,降低服务器节点变动对连接一致性的影响。
图7为本申请另一示例性实施例提供的报文处理方法的流程示意图,如图7所示,该方法在服务器侧执行时,主要包括:
步骤701、接收网关设备发送的报文,所述报文携带第一服务器的地址作为目的地址。
步骤701、对所述报文进行解析,得到所述报文中的重定向信息;所述重定向信息根据第二服务器的地址生成,所述第二服务器为所述报文的哈希索引在一致性哈希表上一次更新之前对应的历史服务器;所述第一服务器为所述一致性哈希表中,与所述报文的哈希索引对应的当前服务器。
步骤701、根据所述重定向信息,对所述报文进行重定向。
在一些示例性的实施例中,对所述报文进行解析,得到所述报文中的重定向信息的一种方式,可包括:识别所述报文中的私有IP标识;根据所述私有IP标识,确定所述报文中添加的私有IP选项;从所述私有IP选项中,确定所述第二服务器的地址信息。
在一些示例性的实施例中,所述第一服务器以及所述第二服务器为物理网络中的物理机;根据所述重定向信息,对所述报文进行重定向的一种方式,可包括:若所述报文携带VxLAN封装,则判断所述报文是否为TCP报文;若所述报文为TCP报文,则判断所述报文是否为TCP三次握手首包报文;若所述报文不为TCP三次握手首包报文,则判断本地是否存在与所述报文对应的会话;若本地不存在与所述报文对应的会话,则判断所述第二服务器的地址与所述第一服务器的地址是否一致;若所述第二服务器的地址与所述第一服务器的地址不一致,则将所述报文转发至所述第二服务器。
在一些示例性的实施例中,所述第一服务器以及所述第二服务器为虚拟网络中的虚拟机;根据所述重定向信息,对所述报文进行重定向的一种方式,可包括:判断本地是否存在与所述报文对应的会话;若存在与所述报文对应的会话且所述会话的重定向标识为真,则判断所述第二服务器的地址与所述第一服务器的地址是否一致;若所述第二服务器的地址与所述第一服务器的地址不一致,则将所述报文转发至所述第二服务器。
在一些示例性的实施例中,还包括:若所述服务器本地不存在与所述报文对应的会话,则创建所述报文对应的会话,并判断所述报文是否为TCP报文;若所述报文为TCP报文,则判断所述报文是否为TCP三次握手首包报文;若所述报文为TCP三次握手首包报文,则确定所述会话的重定向标识为假,并将所述报文转发至所述第一服务器。
在本实施例中,服务器接收到报文后,可基于重定向信息对该报文进行重定向,进而使得该报文的实际接收端为该报文在一致性哈希表更新之前对应的历史服务器。从而,同一会话的不同报文可转发至同一服务器,有利于在基于硬件的网关设备实现无状态负载均衡时,降低服务器节点变动对连接一致性的影响。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤601至步骤604的执行主体可以为设备A;又比如,步骤601和602的执行主体可以为设备A,步骤603的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并发执行,操作的序号如601、602等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并发执行。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的商品或者系统中还存在另外的相同要素。
图8示意了本申请一示例性实施例提供的服务器的结构示意图,该服务器适用于前述实施例提供的报文处理方法。如图8所示,该服务器包括:存储器801以及处理器802。
存储器801,用于存储计算机程序,并可被配置为存储其它各种数据以支持在服务器上的操作。这些数据的示例包括用于在服务器上操作的任何应用程序或方法的指令。
其中,存储器801可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器802,与存储器801耦合,用于执行存储器801中的计算机程序,以用于:接收待转发的第一报文;确定所述第一报文在一致性哈希表中对应的第一哈希索引;在所述一致性哈希表中,确定与所述第一哈希索引对应的当前服务器,作为第一服务器;以及,确定所述一致性哈希表上一次更新之前与所述第一哈希索引对应的历史服务器,作为第二服务器;根据所述第一服务器的地址信息对所述第一报文进行地址转换,并根据所述第二服务器的地址信息,在所述第一报文中添加重定向信息,得到第二报文;所述重定向信息用于对所述第二报文进行重定向;转发所述第二报文。
可选地,所述一致性哈希表包括:第二哈希索引,所述第二哈希索引与第三服务器对应;处理器802还用于:响应所述一致性哈希表的更新事件,获取所述第二哈希索引在所述一致性哈希表更新后对应的第四服务器的地址;将所述第四服务器的地址,存储在所述第二哈希索引对应的哈希桶中;以及,将所述第三服务器作为所述第二哈希索引对应的历史服务器,并将所述第三服务器的地址存储在所述第二哈希索引对应的哈希桶中。
可选地,处理器802在根据所述第二服务器的地址信息,在所述第一报文中添加重定向信息,得到第二报文时,具体用于:在所述第一报文中添加私有IP选项,得到所述第二报文;其中,所述私有IP选项携带所述第二服务器的地址信息以及私有IP标识;所述私有IP标识用于对所述私有IP选项进行识别。
可选地,处理器802在转发所述第二报文之前,还用于:对所述第二报文添加VxLAN封装。
可选地,处理器802在对所述第二报文添加VxLAN封装时,具体用于:若所述第一服务器为虚拟网络中的虚拟机,则根据所述第一服务器的地址以及所述第一服务器所属的虚拟专用网络的标识,确定所述第一服务器的隧道目的地址;根据所述第一服务器的对应的隧道目的地址,对所述第二报文添加VxLAN封装。
进一步,如图8所示,该服务器还包括:通信组件803、音频组件804、电源组件805等其它组件。图8中仅示意性给出部分组件,并不意味着服务器只包括图8所示组件。
本实施例中,网关设备接收到待转发的报文后,可确定报文在一致性哈希表中对应的哈希索引。基于哈希索引,可在一致性哈希表中,确定与该哈希索引对应的当前服务器并确定一致性哈希表上一次更新之前与该哈希索引对应的历史服务器。根据历史服务器的地址,可在报文中添加重定向信息,得到新的报文,并转发该新的报文。在这种实施方式中,报文的接收端可基于重定向信息对该报文进行重定向,进而使得该报文的实际接收端为该报文在一致性哈希表更新之前对应的历史服务器。从而,同一会话的不同报文可转发至同一服务器,有利于在基于硬件的网关设备实现无状态负载均衡时,降低服务器节点变动对连接一致性的影响。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由网关设备执行的各步骤。
图9示意了本申请一示例性实施例提供的服务器的结构示意图,该服务器适用于前述实施例提供的报文处理方法。如图9所示,该服务器包括:存储器901以及处理器902。
存储器901,用于存储计算机程序,并可被配置为存储其它各种数据以支持在服务器上的操作。这些数据的示例包括用于在服务器上操作的任何应用程序或方法的指令。
其中,存储器901可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器902,与存储器901耦合,用于执行存储器901中的计算机程序,以用于:接收网关设备发送的报文,所述报文携带第一服务器的地址作为目的地址;对所述报文进行解析,得到所述报文中的重定向信息;所述重定向信息根据第二服务器的地址生成,所述第二服务器为所述报文的哈希索引在一致性哈希表上一次更新之前对应的历史服务器;所述第一服务器为所述一致性哈希表中,与所述报文的哈希索引对应的当前服务器;根据所述重定向信息,对所述报文进行重定向。
可选地,处理器902在对所述报文进行解析,得到所述报文中的重定向信息时,具体用于:识别所述报文中的私有IP标识;根据所述私有IP标识,确定所述报文中添加的私有IP选项;从所述私有IP选项中,确定所述第二服务器的地址信息。
可选地,所述第一服务器以及所述第二服务器为物理网络中的物理机;处理器902在根据所述重定向信息,对所述报文进行重定向时,具体用于:若所述报文携带VxLAN封装,则判断所述报文是否为TCP报文;若所述报文为TCP报文,则判断所述报文是否为TCP三次握手首包报文;若所述报文不为TCP三次握手首包报文,则判断本地是否存在与所述报文对应的会话;若本地不存在与所述报文对应的会话,则判断所述第二服务器的地址与所述第一服务器的地址是否一致;若所述第二服务器的地址与所述第一服务器的地址不一致,则将所述报文转发至所述第二服务器。
可选地,所述第一服务器以及所述第二服务器为虚拟网络中的虚拟机;处理器902在根据所述重定向信息,对所述报文进行重定向时,具体用于:判断本地是否存在与所述报文对应的会话;若存在与所述报文对应的会话且所述会话的重定向标识为真,则判断所述第二服务器的地址与所述第一服务器的地址是否一致;若所述第二服务器的地址与所述第一服务器的地址不一致,则将所述报文转发至所述第二服务器。
可选地,处理器902还用于:若所述服务器本地不存在与所述报文对应的会话,则创建所述报文对应的会话,并判断所述报文是否为TCP报文;若所述报文为TCP报文,则判断所述报文是否为TCP三次握手首包报文;若所述报文为TCP三次握手首包报文,则确定所述会话的重定向标识为假,并将所述报文转发至所述第一服务器。
进一步,如图9所示,该服务器还包括:通信组件903、电源组件904等其它组件。图9中仅示意性给出部分组件,并不意味着服务器只包括图9所示组件。
本实施例中,服务器接收到报文后,可基于重定向信息对该报文进行重定向,进而使得该报文的实际接收端为该报文在一致性哈希表更新之前对应的历史服务器。从而,同一会话的不同报文可转发至同一服务器,有利于在基于硬件的网关设备实现无状态负载均衡时,降低服务器节点变动对连接一致性的影响。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由服务器执行的各步骤。
在图8以及图9中,通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G或5G,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播任务管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件可基于近场通信(NFC)技术、射频识别(RFID)技术、红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术和其他技术来实现。
在图8以及图9中,电源组件用于为电源组件所在设备的各种组件提供电力。电源组件可以包括电源任务管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (14)
1.一种边缘云的报文处理方法,适用于边缘网关,其特征在于,包括:
接收待转发的第一报文;
确定所述第一报文在一致性哈希表中对应的哈希索引;
在所述一致性哈希表中,确定与所述哈希索引对应的当前服务器,作为第一服务器;以及,确定所述一致性哈希表上一次更新之前与所述哈希索引对应的历史服务器,作为第二服务器;
根据所述第一服务器的地址信息对所述第一报文进行地址转换,并根据所述第二服务器的地址信息,在所述第一报文中添加重定向信息,得到第二报文;所述重定向信息用于对所述第二报文进行重定向;
转发所述第二报文。
2.一种报文处理方法,其特征在于,包括:
接收待转发的第一报文;
确定所述第一报文在一致性哈希表中对应的第一哈希索引;
在所述一致性哈希表中,确定与所述第一哈希索引对应的当前服务器,作为第一服务器;以及,确定所述一致性哈希表上一次更新之前与所述第一哈希索引对应的历史服务器,作为第二服务器;
根据所述第一服务器的地址信息对所述第一报文进行地址转换,并根据所述第二服务器的地址信息,在所述第一报文中添加重定向信息,得到第二报文;所述重定向信息用于对所述第二报文进行重定向;
转发所述第二报文。
3.根据权利要求2所述的方法,其特征在于,所述一致性哈希表包括:第二哈希索引,所述第二哈希索引与第三服务器对应;所述方法还包括:
响应所述一致性哈希表的更新事件,获取所述第二哈希索引在所述一致性哈希表更新后对应的第四服务器的地址;
将所述第四服务器的地址,存储在所述第二哈希索引对应的哈希桶中;以及,将所述第三服务器作为所述第二哈希索引对应的历史服务器,并将所述第三服务器的地址存储在所述第二哈希索引对应的哈希桶中。
4.根据权利要求2所述的方法,其特征在于,在所述第一报文中添加重定向信息,得到第二报文,包括:
在所述第一报文中添加私有IP选项,得到所述第二报文;其中,所述私有IP选项携带所述第二服务器的地址信息以及私有IP标识;所述私有IP标识用于对所述私有IP选项进行识别。
5.根据权利要求2-4任一项所述的方法,其特征在于,转发所述第二报文之前,还包括:对所述第二报文添加VxLAN封装。
6.根据权利要求5所述的方法,其特征在于,对所述第二报文添加VxLAN封装,包括:
若所述第一服务器为虚拟网络中的虚拟机,则根据所述第一服务器的地址以及所述第一服务器所属的虚拟专用网络的标识,确定所述第一服务器的隧道目的地址;
根据所述第一服务器的对应的隧道目的地址,对所述第二报文添加VxLAN封装。
7.一种报文处理方法,其特征在于,包括:
接收网关设备发送的报文,所述报文携带第一服务器的地址作为目的地址;
对所述报文进行解析,得到所述报文中的重定向信息;所述重定向信息根据第二服务器的地址生成,所述第二服务器为所述报文的哈希索引在一致性哈希表上一次更新之前对应的历史服务器;所述第一服务器为所述一致性哈希表中,与所述报文的哈希索引对应的当前服务器;
根据所述重定向信息,对所述报文进行重定向。
8.根据权利要求7所述的方法,其特征在于,对所述报文进行解析,得到所述报文中的重定向信息,包括:
识别所述报文中的私有IP标识;
根据所述私有IP标识,确定所述报文中添加的私有IP选项;
从所述私有IP选项中,确定所述第二服务器的地址信息。
9.根据权利要求7所述的方法,其特征在于,所述第一服务器以及所述第二服务器为物理网络中的物理机;根据所述重定向信息,对所述报文进行重定向,包括:
若所述报文携带VxLAN封装,则判断所述报文是否为TCP报文;
若所述报文为TCP报文,则判断所述报文是否为TCP三次握手首包报文;
若所述报文不为TCP三次握手首包报文,则判断本地是否存在与所述报文对应的会话;
若本地不存在与所述报文对应的会话,则判断所述第二服务器的地址与所述第一服务器的地址是否一致;
若所述第二服务器的地址与所述第一服务器的地址不一致,则将所述报文转发至所述第二服务器。
10.根据权利要求7所述的方法,其特征在于,所述第一服务器以及所述第二服务器为虚拟网络中的虚拟机;根据所述重定向信息,对所述报文进行重定向,包括:
判断本地是否存在与所述报文对应的会话;
若存在与所述报文对应的会话且所述会话的重定向标识为真,则判断所述第二服务器的地址与所述第一服务器的地址是否一致;
若所述第二服务器的地址与所述第一服务器的地址不一致,则将所述报文转发至所述第二服务器。
11.根据权利要求10所述的方法,其特征在于,还包括:
若所述服务器本地不存在与所述报文对应的会话,则创建所述报文对应的会话,并判断所述报文是否为TCP报文;
若所述报文为TCP报文,则判断所述报文是否为TCP三次握手首包报文;
若所述报文为TCP三次握手首包报文,则确定所述会话的重定向标识为假,并将所述报文转发至所述第一服务器。
12.一种网关设备,其特征在于,包括:存储器和处理器;
所述存储器用于存储一条或多条计算机指令;
所述处理器用于执行所述一条或多条计算机指令以用于:执行权利要求1-6任一项所述的方法中的步骤。
13.一种服务器,其特征在于,包括:存储器和处理器;
所述存储器用于存储一条或多条计算机指令;
所述处理器用于执行所述一条或多条计算机指令以用于:执行权利要求7-11任一项所述的方法中的步骤。
14.一种存储有计算机程序的计算机可读存储介质,其特征在于,计算机程序被处理器执行时能够实现权利要求1-6任一项或者7-11任一项所述的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210376479.3A CN114785737A (zh) | 2022-04-11 | 2022-04-11 | 报文处理方法、网关设备、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210376479.3A CN114785737A (zh) | 2022-04-11 | 2022-04-11 | 报文处理方法、网关设备、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114785737A true CN114785737A (zh) | 2022-07-22 |
Family
ID=82429516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210376479.3A Pending CN114785737A (zh) | 2022-04-11 | 2022-04-11 | 报文处理方法、网关设备、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114785737A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117914783A (zh) * | 2024-03-20 | 2024-04-19 | 鹏城实验室 | 流量数据的实时处理方法、装置、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090003205A1 (en) * | 2007-06-29 | 2009-01-01 | Fujitsu Limited | Method and apparatus for load distribution control of packet transmission |
WO2011143652A2 (en) * | 2010-05-14 | 2011-11-17 | Extreme Networks, Inc. | Methods, systems, and computer readable media for stateless load balancing of network traffic flows |
US20150222528A1 (en) * | 2014-01-31 | 2015-08-06 | Edgecast Networks, Inc. | Adapting network control messaging for anycast reliant platforms |
CN106713499A (zh) * | 2017-01-23 | 2017-05-24 | 天地融科技股份有限公司 | 一种负载均衡方法、设备及系统 |
CN107070983A (zh) * | 2017-01-23 | 2017-08-18 | 天地融科技股份有限公司 | 一种基于地址转发的负载均衡方法、设备和系统 |
CN107360096A (zh) * | 2017-08-14 | 2017-11-17 | 北京优帆科技有限公司 | 一种vxlan报文的转发方法及系统 |
CN109936635A (zh) * | 2019-03-12 | 2019-06-25 | 北京百度网讯科技有限公司 | 负载均衡方法和装置 |
CN111130936A (zh) * | 2019-12-24 | 2020-05-08 | 杭州迪普科技股份有限公司 | 一种负载均衡算法的测试方法及装置 |
WO2021184551A1 (zh) * | 2020-03-18 | 2021-09-23 | 平安科技(深圳)有限公司 | 基于多个网络的通信方法、装置、电子设备及存储介质 |
-
2022
- 2022-04-11 CN CN202210376479.3A patent/CN114785737A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090003205A1 (en) * | 2007-06-29 | 2009-01-01 | Fujitsu Limited | Method and apparatus for load distribution control of packet transmission |
WO2011143652A2 (en) * | 2010-05-14 | 2011-11-17 | Extreme Networks, Inc. | Methods, systems, and computer readable media for stateless load balancing of network traffic flows |
US20150222528A1 (en) * | 2014-01-31 | 2015-08-06 | Edgecast Networks, Inc. | Adapting network control messaging for anycast reliant platforms |
CN106713499A (zh) * | 2017-01-23 | 2017-05-24 | 天地融科技股份有限公司 | 一种负载均衡方法、设备及系统 |
CN107070983A (zh) * | 2017-01-23 | 2017-08-18 | 天地融科技股份有限公司 | 一种基于地址转发的负载均衡方法、设备和系统 |
CN107360096A (zh) * | 2017-08-14 | 2017-11-17 | 北京优帆科技有限公司 | 一种vxlan报文的转发方法及系统 |
CN109936635A (zh) * | 2019-03-12 | 2019-06-25 | 北京百度网讯科技有限公司 | 负载均衡方法和装置 |
CN111130936A (zh) * | 2019-12-24 | 2020-05-08 | 杭州迪普科技股份有限公司 | 一种负载均衡算法的测试方法及装置 |
WO2021184551A1 (zh) * | 2020-03-18 | 2021-09-23 | 平安科技(深圳)有限公司 | 基于多个网络的通信方法、装置、电子设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
HIROYUKI KURITA ET AL.: "Load Balancing of Requests with Keys Whose Frequencies Exhibit a Big-Head and Long-Tail Distribution", 《2012 9TH ASIA-PACIFIC SYMPOSIUM ON INFORMATION AND TELECOMMUNICATION TECHNOLOGIES (APSITT)》 * |
于波 等: "实时通信集群负载均衡策略研究与应用", 《计算机系统应用》 * |
李亚非: "高并发WEB服务器集群负载均衡器的设计与实现", 《中国优秀硕士学位论文全文数据库》 信息科技辑 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117914783A (zh) * | 2024-03-20 | 2024-04-19 | 鹏城实验室 | 流量数据的实时处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11576114B2 (en) | Data packet processing method, network traffic management method, apparatus, and system | |
US9596318B2 (en) | Dynamic network device processing using external components | |
US20240022650A1 (en) | Computing power application traffic forwarding method and apparatus | |
US11356410B2 (en) | Packet transmission method and device, and computer readable storage medium | |
CN111193773B (zh) | 负载均衡方法、装置、设备及存储介质 | |
CN108063714B (zh) | 一种网络请求的处理方法及装置 | |
KR101938623B1 (ko) | 오픈 플로우 통신 방법, 시스템, 제어기 및 서비스 게이트웨이 | |
CN113596191A (zh) | 一种数据处理方法、网元设备以及可读存储介质 | |
US10693785B2 (en) | Method and system for forwarding data, virtual load balancer, and readable storage medium | |
CN113810512A (zh) | 物联网终端接入系统、方法、装置及存储介质 | |
CN109474713B (zh) | 报文转发方法和装置 | |
CN112788060A (zh) | 数据包传输方法和装置、存储介质和电子设备 | |
CN113765816A (zh) | 一种基于服务网格的流量控制方法、系统、设备及介质 | |
CN113891358B (zh) | 云网络的负载均衡方法、设备及存储介质 | |
CN112437127A (zh) | 报文处理方法、装置以及负载均衡器和服务器 | |
CN114785737A (zh) | 报文处理方法、网关设备、服务器及存储介质 | |
CN113692753A (zh) | 网络装置和在网络装置中实现的搜索边缘服务的方法 | |
CN112968965A (zh) | Nfv网络节点的元数据服务方法、服务器及存储介质 | |
CN112187584A (zh) | 路径故障探测方法、系统、服务器及存储介质 | |
CN114980359B (zh) | 数据转发方法、装置、设备、系统及存储介质 | |
CN112565086A (zh) | 分布式网络系统、报文转发方法、设备及存储介质 | |
KR101538667B1 (ko) | 네트워크 시스템 및 네트워크 제어 방법 | |
CN111835576B (zh) | 基于dpvs的后端服务器健康检测方法和服务器 | |
CN108234241B (zh) | 一种通道检测方法及接入设备 | |
CN115460213A (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 |