一种报文处理方法、装置、物理机及存储介质与流程

未命名 10-09 阅读:134 评论:0


1.本技术涉及网络通信技术领域,特别是涉及一种报文处理方法、装置、物理机及存储介质。


背景技术:

2.目前业务平台一般基于lvs(linux virtual server,linux虚拟服务器)等虚拟服务器集群系统对外提供业务。其中,上述虚拟服务器集群系统中包括负载均衡器和多台物理机,当客户端向虚拟服务器集群系统请求业务时,负载均衡器接收客户端发送的针对上述业务请求的请求报文,并基于负载均衡算法分配响应该请求报文的物理机,物理机响应负载均衡器为其分配的请求报文。上述虚拟服务器集群系统存在多种工作模式,其中,nat(network address translation,网络地址转换)模式是一种应用比较广泛的工作模式。
3.在nat模式下,负载均衡器接收到客户端针对业务请求的请求报文后,向一台物理机转发上述请求报文,当物理机针对请求报文生成响应报文后向负载均衡器发送该响应报文,然后由负载均衡器将响应报文转发给客户端,从而为客户端提供其所请求的业务。
4.由上述过程可以看出,负载均衡器既需要向物理机转发请求报文,又需要向客户端转发响应报文,这样,在请求业务的请求报文较多的情况下,易导致负载均衡器需要转发的报文较多,进而使得负载均衡器成为上述虚拟服务器集群系统的性能瓶颈,报文处理效率低。


技术实现要素:

5.本技术实施例的目的在于提供一种报文处理方法、装置、物理机及存储介质,以提高报文处理效率。具体技术方案如下:第一方面,本技术实施例提供了一种报文处理方法,应用于虚拟服务器集群系统中的物理机,所述方法包括:接收负载均衡器发送的请求报文,其中,所述请求报文中包括:请求业务的客户端的ip地址和端口号;响应所述请求报文,并生成响应报文,其中,所述响应报文的源ip地址为所述物理机的ip地址、源端口号为所述物理机的端口号、目的ip地址为所述客户端的ip地址、目的端口号为所述客户端的端口号;按照内核发包路径发送所述响应报文;在发送所述响应报文的过程中,若所述响应报文到达所述内核发包路径的预设挂载点,将所述响应报文的源ip地址改写为所述负载均衡器的虚拟ip地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文;发送所述目标响应报文。
6.可选的,所述预设挂载点挂载有信息改写钩子函数;所述若所述响应报文到达所述内核发包路径的预设挂载点,将所述响应报文的源
ip地址改写为所述负载均衡器的虚拟ip地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文,包括:若所述信息改写钩子函数被调用,通过所述信息改写钩子函数,将所述响应报文的源ip地址改写为所述负载均衡器的虚拟ip地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文。
7.可选的,所述预设挂载点为tc egress。
8.可选的,所述物理机上运行有用于发送报文的发包程序,所述发送所述目标响应报文,包括:调用所述发包程序发送所述目标响应报文。
9.可选的,所述将所述响应报文的源ip地址改写为所述负载均衡器的虚拟ip地址、源端口号改写为所述负载均衡器的虚拟端口号,包括:判断预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系中是否存在目标地址端口对,其中,所述地址端口对包括:ip地址和端口号,所述目标地址端口对包括:所述响应报文的源ip地址和源端口号;如果存在,从所述对应关系中查找所述目标地址端口对对应的负载均衡器的地址端口对;将所述响应报文的源ip地址改写为查找到的地址端口对中的ip地址、源端口号改写为查找到的地址端口对中的端口号。
10.可选的,所述对应关系采用key-value数据结构进行存储,其中,key-value中的key值包括:物理机的ip地址和端口号,value值包括:负载均衡器的虚拟ip地址和虚拟端口号。
11.可选的,在所述接收负载均衡器发送的请求报文之前,所述方法还包括:在所述物理机上运行的发包程序接收到所述负载均衡器发送的创建通知后,通过所述发包程序调用ebpf api接口创建所述对应关系。
12.可选的,所述方法还包括:在所述物理机上运行的发包程序接收到所述负载均衡器发送的删除通知时,通过所述发包程序调用ebpf api接口,删除所述对应关系,其中,所述删除通知是所述负载均衡器在接收到针对所述物理机的下线指令时发送的。
13.第二方面,本技术实施例提供了一种报文处理装置,应用于虚拟服务器集群系统中的物理机,所述装置包括:接收模块,用于接收负载均衡器发送的请求报文,其中,所述请求报文中包括:请求业务的客户端的ip地址和端口号;响应模块,用于响应所述请求报文,并生成响应报文,其中,所述响应报文的源ip地址为所述物理机的ip地址、源端口号为所述物理机的端口号、目的ip地址为所述客户端的ip地址、目的端口号为所述客户端的端口号;第一发送模块,用于按照内核发包路径发送所述响应报文;改写模块,用于在发送所述响应报文的过程中,若所述响应报文到达所述内核发包路径的预设挂载点,将所述响应报文的源ip地址改写为所述负载均衡器的虚拟ip地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文;
第二发送模块,用于发送所述目标响应报文。
14.可选的,所述预设挂载点挂载有信息改写钩子函数;所述改写模块,具体用于在所述信息改写钩子函数被调用时,通过所述信息改写钩子函数,将所述响应报文的源ip地址改写为所述负载均衡器的虚拟ip地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文。
15.可选的,所述预设挂载点为tc egress。
16.可选的,所述物理机上运行有用于发送报文的发包程序;所述第二发送模块,具体用于调用所述发包程序发送所述目标响应报文。
17.可选的,所述改写模块,包括:判断单元,用于判断预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系中是否存在目标地址端口对,其中,所述地址端口对包括:ip地址和端口号,所述目标地址端口对包括:所述响应报文的源ip地址和源端口号;地址端口对查找单元,用于在预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系中存在目标地址端口对时,从所述对应关系中查找所述目标地址端口对对应的负载均衡器的地址端口对;改写单元,用于将所述响应报文的源ip地址改写为查找到的地址端口对中的ip地址、源端口号改写为查找到的地址端口对中的端口号。
18.可选的,所述对应关系采用key-value数据结构进行存储,其中,key-value中的key值包括:物理机的ip地址和端口号,value值包括:负载均衡器的虚拟ip地址和虚拟端口号。
19.可选的,所述装置还包括:对应关系创建模块,用于在接收负载均衡器发送的请求报文之前,在所述物理机上运行的发包程序接收到所述负载均衡器发送的创建通知后,通过所述发包程序调用ebpf api接口创建所述对应关系。
20.可选的,所述装置还包括:对应关系删除模块,用于在所述物理机上运行的发包程序接收到所述负载均衡器发送的删除通知时,通过所述发包程序调用ebpf api接口,删除所述对应关系,其中,所述删除通知是所述负载均衡器在接收到针对所述物理机的下线指令时发送的。
21.第三方面,本技术实施例提供了一种物理机,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的方法。
22.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的方法。
23.本技术实施例有益效果:本技术实施例提供的方案中,虚拟服务器集群系统中的物理机可以接收负载均衡器发送的请求报文,其中,请求报文中包括:请求业务的客户端的ip地址和端口号;响应请求报文,并生成响应报文,其中,响应报文的源ip地址为物理机的ip地址、源端口号为物理
机的端口号、目的ip地址为客户端的ip地址、目的端口号为客户端的端口号;按照内核发包路径发送响应报文;在发送响应报文的过程中,若响应报文到达内核发包路径的预设挂载点,将响应报文的源ip地址改写为负载均衡器的虚拟ip地址、源端口号改写为负载均衡器的虚拟端口号,得到目标响应报文;发送目标响应报文。由于物理机对请求报文进行响应并生成响应报文后,可以在响应报文到达内核发包路径的预设挂载点时,将响应报文的源ip地址和源端口号分别改写为负载均衡器的虚拟ip地址和虚拟端口号得到目标响应报文,然后直接向客户端发送目标响应报文,所以响应报文不会经过负载均衡器,减少了负载均衡器需要转发的报文,解决了负载均衡器容易成为虚拟服务器集群系统的性能瓶颈的问题,从而提高了报文处理效率。
24.当然,实施本技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
25.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
26.图1为本技术实施例所提供的一种报文处理方法的流程图;图2为工作模式为nat模式的虚拟服务器集群系统的工作流程的示意图;图3为基于图1所示实施例的虚拟服务器集群系统的工作流程的示意图;图4为基于图1所示实施例的一种报文改写方式的流程图;图5为本技术实施例所提供的一种报文处理装置的结构示意图;图6为本技术实施例所提供的一种物理机的结构示意图。
具体实施方式
27.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员基于本技术所获得的所有其他实施例,都属于本技术保护的范围。
28.为了提高报文处理效率,本技术实施例提供了一种报文处理方法、装置、物理机、计算机可读存储介质和计算机程序产品,下面首先对本技术实施例所提供的一种报文处理方法进行介绍。
29.本技术实施例所提供的一种报文处理方法可以应用于虚拟服务器集群系统中的物理机,为了描述清楚,以下称为物理机。
30.如图1所示,一种报文处理方法,所述方法包括:s101,接收负载均衡器发送的请求报文;其中,所述请求报文中包括:请求业务的客户端的ip地址和端口号;s102,响应所述请求报文,并生成响应报文;其中,所述响应报文的源ip地址为所述物理机的ip地址、源端口号为所述物理机
的端口号、目的ip地址为所述客户端的ip地址、目的端口号为所述客户端的端口号;s103,按照内核发包路径发送所述响应报文;s104,在发送所述响应报文的过程中,若所述响应报文到达所述内核发包路径的预设挂载点,将所述响应报文的源ip地址改写为所述负载均衡器的虚拟ip地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文;s105,发送所述目标响应报文。
31.本技术实施例提供的方案中,由于物理机对请求报文进行响应并生成响应报文后,可以在响应报文到达内核发包路径的预设挂载点时,将响应报文的源ip地址和源端口号分别改写为负载均衡器的虚拟ip地址和虚拟端口号得到目标响应报文,然后直接向客户端发送目标响应报文,所以响应报文不会经过负载均衡器,减少了负载均衡器需要转发的报文,解决了负载均衡器容易成为虚拟服务器集群系统的性能瓶颈的问题,从而提高了报文处理效率。
32.当客户端向虚拟服务器集群系统请求业务时,客户端可以向该虚拟服务器集群系统发送针对上述业务请求的请求报文,虚拟服务器集群系统中的负载均衡器可以用于接收客户端所发送的请求报文,并基于负载均衡算法确定用于响应该请求报文的物理机,进而将请求报文转发至该物理机进行处理,此时,物理机即可接收到负载均衡器发送的请求报文,即执行上述步骤s101。
33.上述请求报文中可以包括请求业务的客户端的ip地址和端口号,例如,该请求报文的源ip地址为客户端的ip地址、源端口号为客户端的端口号,进一步的,该请求报文的目的ip地址可以为负载均衡器的虚拟ip地址、源端口号为负载均衡器的虚拟端口号。
34.其中,虚拟服务器集群系统中的负载均衡器是用于分析传入请求并将其转移到相关物理机的设备或进程,其可以是网络中的物理设备,也可以是运行在专用硬件上的虚拟化实例,在此不做具体限定。
35.物理机在接收到请求报文后,可以基于自身所对应的处理资源和存储资源等,对该请求报文进行响应,并生成响应报文,即执行上述步骤s102。其中,该响应报文的源ip地址为物理机的ip地址、源端口号为物理机的端口号、目的ip地址为客户端的ip地址、目的端口号为客户端的端口号。
36.在一种实施方式中,因为建立连接的两端,即客户端和物理机,会生产socket(套接字),其中,socket记录了源ip地址、目的ip地址、源端口号和目的端口号等连接信息,所以物理机上的应用程序在对请求报文进行响应得到响应数据后,该响应数据经过物理机的内核时,socket中所记录的源ip地址、目的ip地址、源端口号和目的端口号会封装到该响应数据上,从而得到响应报文。
37.物理机在生成响应报文后,可以按照内核发包路径发送该响应报文,即执行上述步骤s103。在此过程中,因为响应报文的源ip地址为物理机的ip地址、源端口号为物理机的端口号,而虚拟服务器集群系统在对外提供业务时,对外暴露的只有负载均衡器所对应的虚拟ip地址和虚拟端口号,并不会对外暴露虚拟服务器集群系统中的各个物理机的ip地址和端口号,所以物理机在向客户端发送响应报文之前,需要先将响应报文中的源ip地址和源端口号进行改写,以避免暴露物理机的ip地址和端口号。
38.因此,可以在物理机的内核发包路径上的预设挂载点处,设置报文改写函数,这样
物理机在按照内核发包路径发送响应报文中,如果响应报文到达内核发包路径的预设挂载点时,就可以触发对应的报文改写函数,将响应报文的源ip地址改写为负载均衡器的虚拟ip地址、源端口号改写为负载均衡器的虚拟端口号,得到目标响应报文,即执行上述步骤s104。其中,进行改写操作后所得到的目标响应报文的源ip地址为负载均衡器的虚拟ip地址、源端口号为负载均衡器的虚拟端口号、目的ip地址为客户端的ip地址、目的端口号为客户端的端口号。
39.物理机在执行完上述步骤s104后,因为目标响应报文的目的ip地址仍为客户端的ip地址、目的端口号为客户端的端口号,并没有发生改变,所以物理机发送目标响应报文时,可以基于该目标响应报文中的目的ip地址和目的端口号,向客户端发送目标响应报文,从而为客户端提供其所请求的业务。并且因为目标响应报文的源ip地址为负载均衡器的虚拟ip地址、源端口号为负载均衡器的虚拟端口号,所以物理机向客户端发送目标响应报文并不会暴露虚拟服务器集群系统中的物理机的ip地址和端口号。因此,物理机在得到目标响应报文后,可以执行步骤s105,发送该目标响应报文。
40.本技术实施例提供的方案中,由于物理机对请求报文进行响应并生成响应报文后,可以在响应报文到达内核发包路径的预设挂载点时,将响应报文的源ip地址和源端口号分别改写为负载均衡器的虚拟ip地址和虚拟端口号得到目标响应报文,然后直接向客户端发送目标响应报文,所以响应报文不会经过负载均衡器,减少了负载均衡器需要转发的报文,解决了负载均衡器容易成为虚拟服务器集群系统的性能瓶颈的问题,从而提高了报文处理效率。
41.作为本技术实施例的一种实施方式,上述虚拟服务器集群系统的工作模式为nat模式。
42.当虚拟服务器集群系统的工作模式为nat模式时,虚拟服务器集群系统的工作流程如图2所示,当客户端210向虚拟服务器集群系统220请求业务时,可以针对该业务请求向虚拟服务器集群系统220发送请求报文,因为虚拟服务器集群系统220对外暴露的ip地址和端口号为负载均衡器2201的ip地址和端口号,所以请求报文的源ip地址为客户端210的ip地址、源端口号为客户端210的端口号、目的ip地址为负载均衡器2201的虚拟ip地址、源端口号为负载均衡器2201的虚拟端口号,相应的,客户端210向虚拟服务器集群系统220发送请求报文,接收到该请求报文的为虚拟服务器集群系统220中的负载均衡器2201。
43.负载均衡器2201在接收到客户端210发送的请求报文后,可以根据调度算法从虚拟服务器集群系统220所包括的各个物理机2202中确定用于处理该请求报文的物理机,假设用于处理该请求报文的物理机为物理机1,那么负载均衡器2201可以将请求报文的目的ip地址由负载均衡器2201的虚拟ip地址改写为物理机1的ip地址,将请求报文的目的端口号由负载均衡器2201的虚拟端口号改写成物理机1的端口号,然后负载均衡器2201可以将改写后的请求报文转发给物理机1。
44.物理机1在接收到请求报文后,可以针对该请求报文生成响应报文。因为在nat模式下,物理机2202的下一跳设备均被设置为了负载均衡器2201,所以物理机1在生成响应报文后,可以向负载均衡器2201发送该响应报文,其中,响应报文的源ip地址为物理机1的ip地址、源端口号为物理机1的端口号、目的ip地址为客户端210的ip地址、目的端口号为客户端210的端口号。
45.负载均衡器2201在接收到响应报文后,因为响应报文的源ip地址为物理机1的ip地址、源端口号为物理机1的端口号,所以如果直接将该响应报文转发给客户端210的话,一方面会向客户端210暴露物理机1的ip地址和端口号,另一方面客户端210可能也会因为请求报文的目的ip地址和目的端口号与响应报文的ip地址和端口号不一致,而无法将该响应报文识别为与请求报文对应的响应内容,从而出现错误。因此,负载均衡器2201在接收到响应报文后,可以根据在进行请求报文的改写时所记录的连接会话,将该响应报文的源ip地址改写为负载均衡器2201的虚拟ip地址、源端口号改写为负载均衡器2201的虚拟端口号,然后将改写后的响应报文转发给客户端210,从而为客户端提供其所请求的业务。
46.由上述过程可以看出,负载均衡器既需要向物理机转发请求报文,又需要向客户端转发响应报文,这样,在请求业务的请求报文较多的情况下,易导致负载均衡器需要转发的报文较多,进而使得负载均衡器成为上述虚拟服务器集群系统的性能瓶颈,报文处理效率低。
47.而本技术实施例所提供的方案是在nat模式的基础上,对响应报文的发送方式进行改进,改进后的虚拟服务器集群系统的工作流程可以如图3所示,其中,客户端210向虚拟服务器集群系统220发送请求报文,以及负载均衡器2201对请求报文进行改写,并将改写后的请求报文转发给物理机1的过程与上述nat模式下虚拟服务器集群系统220的工作流程中客户端210向虚拟服务器集群系统220发送请求报文,以及负载均衡器2201对请求报文进行改写,并将改写后的请求报文转发给物理机1的过程基本类似,二者的区别仅在于负载均衡器2201在进行请求报文的改写时不需要记录连接会话,因此,在此不再赘述。
48.物理机1在接收到请求报文后,可以针对该请求报文生成响应报文并按照内核发包路径发送该响应报文,其中,响应报文的源ip地址为物理机1的ip地址、源端口号为物理机1的端口号、目的ip地址为客户端210的ip地址、目的端口号为客户端210的端口号。
49.当响应报文到达内核发包路径的预设挂载点时,物理机1可以将响应报文的源ip地址改写为负载均衡器2201的虚拟ip地址、源端口号改写为负载均衡器2201的虚拟端口号,得到目标响应报文。因为目标响应报文的源ip地址为负载均衡器的虚拟ip地址、源端口号为负载均衡器的虚拟端口号,所以物理机向客户端发送目标响应报文并不会暴露虚拟服务器集群系统中的物理机的ip地址和端口号。因此,物理机在得到目标响应报文后,可以直接发送向客户端210该目标响应报文。
50.本技术实施例提供的方案中,对工作模式为nat模式的虚拟服务器集群系统的物理机发送响应报文的方式进行了改进,物理机对请求报文进行响应并生成响应报文后,可以在响应报文到达内核发包路径的预设挂载点时,将响应报文的源ip地址和源端口号分别改写为负载均衡器的虚拟ip地址和虚拟端口号得到目标响应报文,然后直接向客户端发送目标响应报文,所以响应报文不会经过负载均衡器,减少了负载均衡器需要转发的报文,解决了负载均衡器容易成为虚拟服务器集群系统的性能瓶颈的问题,从而提高了报文处理效率。
51.并且相较于现有的tun(tunneling,隧道)模式和dr(direct routing,直接路由)模式来说,虽然当虚拟服务器集群系统的工作模式为tun模式或dr模式时,响应报文也是无需经过负载均衡器的,可以解决负载均衡器容易成为虚拟服务器集群系统的性能瓶颈的问题,从而提高了报文处理效率。但是对于tun模式来说,该模式要求所有的物理机都必须支
持“ip tunneling”协议或者“ip encapsulation”协议,并且因为需要进行报文封装,所以传输协议中携带的有效数据部分会被所封装的头部占用。而本技术实施例提供的方案中,因为不需要物理机支持“ip tunneling”协议或者“ip encapsulation”协议,所以对物理机没有要求,并且因为不需要报文封装,所以传输协议中携带的有效数据部分也不会被所封装的头部占用。
52.对于dr模式来说,该模式要求物理机与负载均衡器必须在一个二层网络中,限制了网络的拓扑扩展性,而本技术实施例提供的方案中,不需要物理机与负载均衡器在一个二层网络中,只要三层可达就可以,即物理机与负载均衡器能够通过ip地址进行通信就可以,对网络的拓扑扩展性没有限制。
53.作为本技术实施例的一种实施方式,上述预设挂载点可以挂载有信息改写钩子函数;上述若所述响应报文到达所述内核发包路径的预设挂载点,将所述响应报文的源ip地址改写为所述负载均衡器的虚拟ip地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文,可以包括:若所述信息改写钩子函数被调用,通过所述信息改写钩子函数,将所述响应报文的源ip地址改写为所述负载均衡器的虚拟ip地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文。
54.可以在物理机的内核发包路径上的预设挂载点处挂载信息改写钩子函数,这样当预设挂载点处具有事件发生时,信息改写钩子函数将被调用,相应的,在信息改写钩子函数被调用时,可以通过信息改写钩子函数,将响应报文的源ip地址改写为负载均衡器的虚拟ip地址、源端口号改写为负载均衡器的虚拟端口号,得到目标响应报文。
55.在一种实施方式中,上述预设挂载点可以为tc egress,物理机可以基于ebpf(extended berkeley packet filter)来确定tc egress所挂载的信息改写钩子函数是否被调用,具体而言,tc egress可以设置有hook点,例如:动态内核态探针,ebpf可以通过在tc egress设置的hook点监听内核中的特定事件,即“响应报文到达tc egress”事件,如果该特定事件发生则可以执行用户定义的处理,即调用信息改写钩子函数,通过信息改写钩子函数,将响应报文的源ip地址改写为负载均衡器的虚拟ip地址、源端口号改写为负载均衡器的虚拟端口号,得到目标响应报文。
56.本技术实施例所提供的方案中,可以在物理机的内核发包路径上的预设挂载点处挂载信息改写钩子函数,这样,物理机在按照内核发包路径发送响应报文到达该预设挂载点时,可以通过调用该信息改写钩子函数的方式,将响应报文的源ip地址改写为负载均衡器的虚拟ip地址、源端口号改写为负载均衡器的虚拟端口号,从而避免暴露物理机的ip地址和端口号,保证从虚拟服务器集群系统发出的响应报文的源ip地址和源端口号的一致性。
57.作为本技术实施例的一种实施方式,上述物理机上可以运行有用于发送报文的发包程序,上述发送所述目标响应报文,可以包括:调用所述发包程序发送所述目标响应报文。
58.由于本技术实施例提供的方案中,物理机并没有将响应报文转发给负载均衡器,由负载均衡器将响应报文转发给客户端,而是由该物理机自身向客户端发送响应报文,所
以可以预先在物理机上运行用于发送报文的发包程序。这样,当物理机对响应报文进行改写操作得到目标响应报文后,可以调用该发包程序发送目标响应报文。
59.在一种实施方式中,上述发包程序可以为webserver程序,因为webserver程序可以用于处理来自客户端的http请求报文,将请求报文与服务器上的资源匹配生成响应报文,并向客户端发送响应报文,所以当物理机上运行有webserver程序后,物理机在对客户端业务请求进行响应生成响应报文,并对响应报文进行改写得到目标响应报文后,可以通过webserver程序向客户端发送响应报文的功能,向客户端发送该目标响应报文,从而为客户端提供其所请求的业务。
60.本技术实施例所提供的方案中,物理机上可以运行有用于发送报文的发包程序,这样,物理机在对客户端业务请求进行响应生成响应报文,并对响应报文进行改写得到目标响应报文后,可以通过调用该发包程序的方式,向客户端发送目标响应报文,以为客户端提供其所请求的业务。
61.作为本技术实施例的一种实施方式,如图4所示,上述将所述响应报文的源ip地址改写为所述负载均衡器的虚拟ip地址、源端口号改写为所述负载均衡器的虚拟端口号,可以包括:s401,判断预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系中是否存在目标地址端口对;上述对应关系中存储的是虚拟服务器集群系统中的负载均衡器的ip地址与各个物理机的ip地址之间的对应关系,以及负载均衡器的端口号与各个物理机的端口号的对应关系,其中,因为一个设备的ip地址和端口号是对应的,所以可以先将一个设备的ip地址和端口号生成包括ip地址和端口号地址的端口对,然后再建立各个设备的地址端口对之间的对应关系,即建立物理机的地址端口对与负载均衡器的地址端口对的对应关系。
62.在此情况下,物理机在将响应报文的源ip地址改写为负载均衡器的虚拟ip地址、源端口号改写为负载均衡器的虚拟端口号时,可以先判断物理机中预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系中是否存在目标地址端口对。也就是说,物理机在进行改写操作时,可以先判断预先存储的对应关系中,是否存在响应报文的源ip地址和源端口号,即判断是否能够基于该对应关系,对响应报文的源ip地址和源端口号进行改写,如果是,则可以执行步骤s402。
63.如果否,则可以将响应报文发送至负载均衡器,由负载均衡器将响应报文转发给客户端,或输出提示信息等。
64.s402,从所述对应关系中查找所述目标地址端口对对应的负载均衡器的地址端口对;如果物理机中预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系中存在目标地址端口对,则说明基于该对应关系,物理机能够对响应报文的源ip地址和源端口号进行改写,因此,物理机可以从该对应关系中,查看目标地址端口对对应的负载均衡器的地址端口对。
65.s403,将所述响应报文的源ip地址改写为查找到的地址端口对中的ip地址、源端口号改写为查找到的地址端口对中的端口号。
66.物理机在查找到目标地址端口对对应的负载均衡器的地址端口对后,即查找到物
理机所处的虚拟服务器集群系统中的负载均衡器的地址端口对后,可以将响应报文的源ip地址改写为查找到的地址端口对中的ip地址、源端口号改写为查找到的地址端口对中的端口号,即将响应报文的源ip地址改写为负载均衡器的ip地址、源端口号改写为负载均衡器的端口号。
67.本技术实施例提供的方案中,物理机在对响应报文的源ip地址和源端口号进行改写时,可以先基于预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系,判断是否能够执行改写操作,如果能够执行改写操作,则基于对应关系中的负载均衡器的地址端口对对响应报文的源ip地址和源端口号进行改写,如果不能够执行改写操作,则可以将响应报文发送至负载均衡器,由负载均衡器将响应报文转发给客户端,或输出提示信息等,从而保证为客户端提供其所请求的业务的成功率。
68.作为本技术实施例的一种实施方式,上述对应关系可以采用key-value数据结构进行存储,其中,key-value中的key值包括:物理机的ip地址和端口号,value值包括:负载均衡器的虚拟ip地址和虚拟端口号。
69.可以先将虚拟服务器集群系统中的物理机的ip地址和端口号对应的字符串作为key值,将负载均衡器的ip地址和端口号对应的字符串作为value值,上述key值即为物理机的地址端口对,上述value值即为负载均衡器的地址端口对。其中,key值和value值也可以采用自定义函数或列表等方式生成,在此不做具体限定。
70.在得到虚拟服务器集群系统中的各个物理机对应的各个key值以及负载均衡器对应的value值后,可以根据各个物理机对应的各个key值以及负载均衡器对应的value值建立key-value数据结构,其中,该key-value数据结构中的各个物理机对应的各个key值均对应负载均衡器对应的value值。
71.相应的,在上述对应关系采用key-value数据结构进行存储的情况下,在判断预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系中是否存在目标地址端口对时,可以先按照与创建上述key-value数据结构时相同的key值生成方式,根据响应报文的源ip地址和源端口号,生成待匹配key值,然后判断上述key-value数据结构中是否存在该待匹配key值,从而判断预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系中是否存在目标地址端口对。
72.在从对应关系中,查找目标地址端口对对应的负载均衡器的地址端口对时,可以是确定key-value中与待匹配key值对应的value值,将该value值作为目标地址端口对对应的负载均衡器的地址端口对。
73.本技术实施例提供的方案中,物理机可以采用key-value数据结构来存储物理机的地址端口对与负载均衡器的地址端口对的对应关系,这样物理机在判断预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系中是否存在目标地址端口对,以及从对应关系中查找目标地址端口对对应的负载均衡器的地址端口对时,可以实现快速查询。
74.作为本技术实施例的一种实施方式,在上述接收负载均衡器发送的请求报文之前,所述方法还包括:在所述物理机上运行的发包程序接收到所述负载均衡器发送的创建通知后,通过所述发包程序调用ebpf api接口创建所述对应关系。
75.物理机在确定该物理机上运行的发包程序接收到负载均衡器发送的创建通知后,可以确定需要创建负载均衡器的地址端口对与物理机的地址端口对之间的对应关系,此时,物理机可以通过发包程序调用ebpf api接口来创建上述对应关系。
76.在一种实施方式中,负载均衡器所发送的创建通知中可以包括负载均衡器的虚拟ip地址和虚拟端口号,这样,发包程序在接收到创建通知后,可以根据该创建通知中所包括的负载均衡器的虚拟ip地址和虚拟端口号以及物理机的ip地址和端口号,通过发包程序调用ebpf api接口,在物理机上创建物理机的地址端口对与负载均衡器的地址端口对的对应关系。
77.在另一种实施方式中,因为负载均衡器接收到客户端发送的请求报文后,需要将该请求报文转发至物理机,所以负载均衡器也是需要创建物理机的地址端口对与负载均衡器的地址端口对的对应关系的,例如,负载均衡器可以通过ipvsadm工具配置物理机的地址端口对与负载均衡器的地址端口对的对应关系。因此,负载均衡器所发送的创建通知中可以包括上述对应关系,这样,发包程序在接收到创建通知后,可以根据该创建通知中所包括的对应关系,通过发包程序调用ebpf api接口,在物理机上创建物理机的地址端口对与负载均衡器的地址端口对的对应关系。
78.其中,负载均衡器向物理机上运行的发包程序发送创建通知,可以是在创建虚拟服务器集群系统时发送的,也可以是在现有的虚拟服务器集群系统上对响应报文的发送方式进行改进时发送的,还可以是在有新的物理机加入虚拟服务器集群系统时发送的,在此不做具体限定。
79.本技术实施例提供的方案中,物理机在与其对应的发包程序接收到负载均衡器发送的创建通知后,即在该物理机上运行的发包程序接收到负载均衡器发送的创建通知后,可以通过发包程序调用ebpf api接口创建物理机的地址端口对与负载均衡器的地址端口对的对应关系,从而使得该物理机可以根据该对应关系对响应报文的源ip地址和源端口号进行改写,从而避免暴露物理机的ip地址和端口号,保证从虚拟服务器集群系统发出的响应报文的源ip地址和源端口号的一致性。
80.作为本技术实施例的一种实施方式,上述方法还可以包括:在所述物理机上运行的发包程序接收到所述负载均衡器发送的删除通知时,通过所述发包程序调用ebpf api接口,删除所述对应关系。
81.因为针对物理机的下线指令所表征的是需要将物理机从虚拟服务器集群系统中下线,不需要该物理机再接收负载均衡器发送的请求报文,也不需要该物理机再向客户端发送响应报文,所以物理机中不需要再存储用于对响应报文进行改写的物理机的地址端口对与负载均衡器的地址端口对的对应关系。
82.因此,当负载均衡器接收到针对物理机的下线指令时,可以向物理机上运行的发包程序发送删除通知,以指示物理机删除上述对应关系,具体而言,物理机在确定该物理机上运行的发包程序接收到负载均衡器发送的删除通知后,可以通过发包程序调用ebpf api接口来删除上述对应关系。
83.其中,负载均衡器所接收到下线指令可以是客户端所发送的,也可以是技术人员通过其他的设备向负载均衡器所发送的,例如,技术人员在物理机出现错误或损坏时,需要将物理机从虚拟服务器集群系统中摘除时,可以通过与负载均衡器所连接的终端设备向负
载均衡器发送针对该物理机的下线指令。
84.本技术实施例提供的方案中,物理机在与其对应的发包程序接收到负载均衡器发送的删除通知后,即在该物理机上运行的发包程序接收到负载均衡器发送的删除通知后,可以通过发包程序调用ebpf api接口删除物理机的地址端口对与负载均衡器的地址端口对的对应关系,从而节省物理机的存储空间。并且也避免了在该物理机在其他的虚拟服务器集群系统中重新上线时,物理机在之前的虚拟服务器集群系统中所存储的对应关系,对当前虚拟服务器集群系统产生影响的问题。
85.相应于上述报文处理方法,本技术实施例还提供了一种应用于虚拟服务器集群系统中的物理机的报文处理装置,下面对本技术实施例所提供的报文处理装置进行介绍。
86.如图5所示,一种报文处理装置,所述装置包括:接收模块510,用于接收负载均衡器发送的请求报文,其中,所述请求报文中包括:请求业务的客户端的ip地址和端口号;响应模块520,用于响应所述请求报文,并生成响应报文,其中,所述响应报文的源ip地址为所述物理机的ip地址、源端口号为所述物理机的端口号、目的ip地址为所述客户端的ip地址、目的端口号为所述客户端的端口号;第一发送模块530,用于按照内核发包路径发送所述响应报文;改写模块540,用于在发送所述响应报文的过程中,若所述响应报文到达所述内核发包路径的预设挂载点,将所述响应报文的源ip地址改写为所述负载均衡器的虚拟ip地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文;第二发送模块550,用于发送所述目标响应报文。
87.本技术实施例提供的方案中,由于物理机对请求报文进行响应并生成响应报文后,可以在响应报文到达内核发包路径的预设挂载点时,将响应报文的源ip地址和源端口号分别改写为负载均衡器的虚拟ip地址和虚拟端口号得到目标响应报文,然后直接向客户端发送目标响应报文,所以响应报文不会经过负载均衡器,减少了负载均衡器需要转发的报文,解决了负载均衡器容易成为虚拟服务器集群系统的性能瓶颈的问题,从而提高了报文处理效率。
88.作为本技术实施例的一种实施方式,上述预设挂载点可以挂载有信息改写钩子函数;所述改写模块540,具体用于在所述信息改写钩子函数被调用时,通过所述信息改写钩子函数,将所述响应报文的源ip地址改写为所述负载均衡器的虚拟ip地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文。
89.作为本技术实施例的一种实施方式,上述预设挂载点可以为tc egress。
90.作为本技术实施例的一种实施方式,上述物理机上可以运行有用于发送报文的发包程序;上述第二发送模块550,可以具体用于调用所述发包程序发送所述目标响应报文。
91.作为本技术实施例的一种实施方式,上述改写模块540,可以包括:判断单元,用于判断预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系中是否存在目标地址端口对,其中,所述地址端口对包括:ip地址和端口号,所述目标地址端口对包括:所述响应报文的源ip地址和源端口号;
地址端口对查找单元,用于在预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系中存在目标地址端口对时,从所述对应关系中查找所述目标地址端口对对应的负载均衡器的地址端口对;改写单元,用于将所述响应报文的源ip地址改写为查找到的地址端口对中的ip地址、源端口号改写为查找到的地址端口对中的端口号。
92.作为本技术实施例的一种实施方式,上述对应关系可以采用key-value数据结构进行存储,其中,key-value中的key值包括:物理机的ip地址和端口号,value值包括:负载均衡器的虚拟ip地址和虚拟端口号。
93.作为本技术实施例的一种实施方式,上述装置还可以包括:对应关系创建模块,用于在接收负载均衡器发送的请求报文之前,在所述物理机上运行的发包程序接收到所述负载均衡器发送的创建通知后,通过所述发包程序调用ebpf api接口创建所述对应关系。
94.作为本技术实施例的一种实施方式,上述装置还可以包括:对应关系删除模块,用于在所述物理机上运行的发包程序接收到所述负载均衡器发送的删除通知时,通过所述发包程序调用ebpf api接口,删除所述对应关系,其中,所述删除通知是所述负载均衡器在接收到针对所述物理机的下线指令时发送的。
95.本技术实施例还提供了一种物理机,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,存储器603,用于存放计算机程序;处理器601,用于执行存储器603上所存放的程序时,实现上述任一实施例所述的报文处理方法。
96.本技术实施例提供的方案中,由于物理机对请求报文进行响应并生成响应报文后,可以在响应报文到达内核发包路径的预设挂载点时,将响应报文的源ip地址和源端口号分别改写为负载均衡器的虚拟ip地址和虚拟端口号得到目标响应报文,然后直接向客户端发送目标响应报文,所以响应报文不会经过负载均衡器,减少了负载均衡器需要转发的报文,解决了负载均衡器容易成为虚拟服务器集群系统的性能瓶颈的问题,从而提高了报文处理效率。
97.上述物理机提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
98.通信接口用于上述物理机与其他设备之间的通信。
99.存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
100.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现
场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
101.在本技术提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的报文处理方法。
102.在本技术提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一实施例所述的报文处理方法。
103.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者固态硬盘(solid state disk,ssd)等。
104.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
105.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、物理机、计算机可读存储介质和计算机程序产品而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
106.以上所述仅为本技术的较佳实施例,并非用于限定本技术的保护范围。凡在本技术的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本技术的保护范围内。

技术特征:
1.一种报文处理方法,其特征在于,应用于虚拟服务器集群系统中的物理机,所述方法包括:接收负载均衡器发送的请求报文,其中,所述请求报文中包括:请求业务的客户端的ip地址和端口号;响应所述请求报文,并生成响应报文,其中,所述响应报文的源ip地址为所述物理机的ip地址、源端口号为所述物理机的端口号、目的ip地址为所述客户端的ip地址、目的端口号为所述客户端的端口号;按照内核发包路径发送所述响应报文;在发送所述响应报文的过程中,若所述响应报文到达所述内核发包路径的预设挂载点,将所述响应报文的源ip地址改写为所述负载均衡器的虚拟ip地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文;发送所述目标响应报文。2.根据权利要求1所述的方法,其特征在于,所述预设挂载点挂载有信息改写钩子函数;所述若所述响应报文到达所述内核发包路径的预设挂载点,将所述响应报文的源ip地址改写为所述负载均衡器的虚拟ip地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文,包括:若所述信息改写钩子函数被调用,通过所述信息改写钩子函数,将所述响应报文的源ip地址改写为所述负载均衡器的虚拟ip地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文。3.根据权利要求2所述的方法,其特征在于,所述预设挂载点为tc egress。4.根据权利要求1-3中任一项所述的方法,其特征在于,所述物理机上运行有用于发送报文的发包程序,所述发送所述目标响应报文,包括:调用所述发包程序发送所述目标响应报文。5.根据权利要求1-3中任一项所述的方法,其特征在于,所述将所述响应报文的源ip地址改写为所述负载均衡器的虚拟ip地址、源端口号改写为所述负载均衡器的虚拟端口号,包括:判断预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系中是否存在目标地址端口对,其中,所述地址端口对包括:ip地址和端口号,所述目标地址端口对包括:所述响应报文的源ip地址和源端口号;如果存在,从所述对应关系中查找所述目标地址端口对对应的负载均衡器的地址端口对;将所述响应报文的源ip地址改写为查找到的地址端口对中的ip地址、源端口号改写为查找到的地址端口对中的端口号。6.根据权利要求5所述的方法,其特征在于,所述对应关系采用key-value数据结构进行存储,其中,key-value中的key值包括:物理机的ip地址和端口号,value值包括:负载均衡器的虚拟ip地址和虚拟端口号。7.根据权利要求5所述的方法,其特征在于,在所述接收负载均衡器发送的请求报文之前,所述方法还包括:
在所述物理机上运行的发包程序接收到所述负载均衡器发送的创建通知后,通过所述发包程序调用ebpf api接口创建所述对应关系。8.根据权利要求5所述的方法,其特征在于,所述方法还包括:在所述物理机上运行的发包程序接收到所述负载均衡器发送的删除通知时,通过所述发包程序调用ebpf api接口,删除所述对应关系,其中,所述删除通知是所述负载均衡器在接收到针对所述物理机的下线指令时发送的。9.一种报文处理装置,其特征在于,应用于虚拟服务器集群系统中的物理机,所述装置包括:接收模块,用于接收负载均衡器发送的请求报文,其中,所述请求报文中包括:请求业务的客户端的ip地址和端口号;响应模块,用于响应所述请求报文,并生成响应报文,其中,所述响应报文的源ip地址为所述物理机的ip地址、源端口号为所述物理机的端口号、目的ip地址为所述客户端的ip地址、目的端口号为所述客户端的端口号;第一发送模块,用于按照内核发包路径发送所述响应报文;改写模块,用于在发送所述响应报文的过程中,若所述响应报文到达所述内核发包路径的预设挂载点,将所述响应报文的源ip地址改写为所述负载均衡器的虚拟ip地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文;第二发送模块,用于发送所述目标响应报文。10.根据权利要求9所述的装置,其特征在于,所述预设挂载点挂载有信息改写钩子函数;所述改写模块,具体用于在所述信息改写钩子函数被调用时,通过所述信息改写钩子函数,将所述响应报文的源ip地址改写为所述负载均衡器的虚拟ip地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文。11.根据权利要求10所述的装置,其特征在于,所述预设挂载点为tc egress。12.根据权利要求9-11中任一项所述的装置,其特征在于,所述物理机上运行有用于发送报文的发包程序;所述第二发送模块,具体用于调用所述发包程序发送所述目标响应报文。13.根据权利要求9-11中任一项所述的装置,其特征在于,所述改写模块,包括:判断单元,用于判断预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系中是否存在目标地址端口对,其中,所述地址端口对包括:ip地址和端口号,所述目标地址端口对包括:所述响应报文的源ip地址和源端口号;地址端口对查找单元,用于在预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系中存在目标地址端口对时,从所述对应关系中查找所述目标地址端口对对应的负载均衡器的地址端口对;改写单元,用于将所述响应报文的源ip地址改写为查找到的地址端口对中的ip地址、源端口号改写为查找到的地址端口对中的端口号。14.根据权利要求13所述的装置,其特征在于,所述对应关系采用key-value数据结构进行存储,其中,key-value中的key值包括:物理机的ip地址和端口号,value值包括:负载均衡器的虚拟ip地址和虚拟端口号。
15.根据权利要求13所述的装置,其特征在于,所述装置还包括:对应关系创建模块,用于在接收负载均衡器发送的请求报文之前,在所述物理机上运行的发包程序接收到所述负载均衡器发送的创建通知后,通过所述发包程序调用ebpf api接口创建所述对应关系。16.根据权利要求13所述的装置,其特征在于,所述装置还包括:对应关系删除模块,用于在所述物理机上运行的发包程序接收到所述负载均衡器发送的删除通知时,通过所述发包程序调用ebpf api接口,删除所述对应关系,其中,所述删除通知是所述负载均衡器在接收到针对所述物理机的下线指令时发送的。17.一种物理机,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现权利要求1-8任一所述的方法。18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一所述的方法。

技术总结
本申请实施例提供了一种报文处理方法、装置、物理机及存储介质,所述方法包括:接收负载均衡器发送的请求报文;响应请求报文,并生成响应报文;在发送响应报文的过程中,若响应报文到达内核发包路径的预设挂载点,将响应报文的源IP地址改写为负载均衡器的虚拟IP地址、源端口号改写为负载均衡器的虚拟端口号,得到目标响应报文;发送目标响应报文。由于物理机可以将响应报文的源IP地址和源端口分别改写为负载均衡器的虚拟IP地址和虚拟端口号得到目标响应报文,然后直接向客户端发送目标响应报文,无需经过负载均衡器的转发,所以减少了负载均衡器转发的报文的数量,解决了负载均衡器容易成为性能瓶颈的问题,从而提高了报文处理效率。效率。效率。


技术研发人员:田文杰 郑王力 赵维五 王宪良 李文龙
受保护的技术使用者:中航金网(北京)电子商务有限公司
技术研发日:2023.09.01
技术公布日:2023/10/7
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐