一种报文处理方法和装置与流程

文档序号:16513586发布日期:2019-01-05 09:29阅读:141来源:国知局
一种报文处理方法和装置与流程

本发明涉及通信技术领域,特别是涉及一种报文处理方法和装置。



背景技术:

随着网络技术的快速发展,用户可以使用终端登录服务器,进而可以访问服务器中的网络资源。例如,终端可以向安全套接层虚拟专用网络(英文:securesocketlayervirtualprivatenetwork,简称:sslvpn)的网关设备发送请求报文,网关设备则可以接收到该请求报文,并将该请求报文发送至服务器。服务器可以向网关设备发送该请求报文对应的响应报文。网关设备则可以接收到该响应报文,并将该响应报文发送至终端,完成终端与服务器的通信。

为了提高网络业务的稳定性,现有技术中通常基于堆叠设备实现报文的转发处理。堆叠设备通常包括多个子设备,每一子设备可以接收终端发送的请求报文,并将请求报文转发至服务器,同时,该子设备生成请求报文对应的会话表项。当该子设备接收到服务器发送的响应报文时,可以根据会话表项将响应报文转发至终端。

基于sslvpn的网络业务,需要由同一子设备转发请求报文和该请求报文对应的响应报文。然而,由于多个子设备共用堆叠设备的网际协议(英文:internetprotocol,简称:ip)地址,有可能会出现第一子设备转发某请求报文后,第二子设备接收到该请求报文对应的响应报文,此时,第二子设备会查找不到该响应报文对应的会话表项,然后会丢弃该响应报文,导致网络业务中断。



技术实现要素:

本发明实施例的目的在于提供一种报文处理方法和装置,可以避免网络业务中断。具体技术方案如下:

第一方面,提供了一种报文处理方法,所述方法应用于堆叠设备中的第一子设备,所述方法包括:

接收第一服务器针对第一请求报文发送的第一响应报文,所述第一响应报文中包括协议类型标识、第一服务器标识和所述堆叠设备中用于向所述第一服务器转发所述第一请求报文的第一端口的端口号;

在预设会话表项中,查询与所述协议类型标识、所述第一服务器标识和所述第一端口的端口号均对应匹配的第一设备标识;

如果所述第一设备标识与所述第一子设备的设备标识不相同,则将所述第一响应报文发送至具有所述第一设备标识的第二子设备,以使所述第二子设备对所述第一响应报文进行转发处理。

可选的,所述方法还包括:

如果所述第一设备标识与所述第一子设备的设备标识相同,则根据所述预设会话表项,确定发送所述第一请求报文的目标终端的地址信息,以及所述堆叠设备中用于接收终端发送所述第一请求报文的第二端口的端口号;

根据所述目标终端的地址信息,通过所述第二端口将所述第一响应报文发送至所述目标终端。

可选的,所述方法还包括:

接收终端发送的第二请求报文,所述第二请求报文包括协议类型标识和第二服务器的地址;

根据所述协议类型标识,确定用于转发所述第二请求报文的第三端口的端口号;

根据所述第二服务器的地址,通过所述第三端口,向所述第二服务器发送所述第二请求报文;

在所述预设会话表项中添加会话表项,所述会话表项包括请求报文包括的协议类型标识、发送请求报文的端口号、发送请求报文的子设备的设备标识和接收请求报文的服务器的服务器标识;

将添加的所述会话表项发送至所述堆叠设备中的其他子设备。

可选的,在所述接收终端发送的第二请求报文之后,所述方法还包括:

判断所述第二请求报文中是否包含预设代理标识;

如果所述第二请求报文中包含所述预设代理标识,则根据所述协议类型标识,确定用于转发所述第二请求报文的第三端口的端口号。

可选的,所述方法还包括:

设置所述会话表项的老化时长;

如果在所述老化时长内,未接收到与所述第二请求报文对应的响应报文,则将所述会话表项从所述预设会话表项中删除。

第二方面,提供了一种报文处理装置,所述装置应用于堆叠设备中的第一子设备,所述装置包括:

接收模块,用于接收第一服务器针对第一请求报文发送的第一响应报文,所述第一响应报文中包括协议类型标识、第一服务器标识和所述堆叠设备中用于向所述第一服务器转发所述第一请求报文的第一端口的端口号;

查询模块,用于在预设会话表项中,查询与所述协议类型标识、所述第一服务器标识和所述第一端口的端口号均对应匹配的第一设备标识;

发送模块,用于如果所述第一设备标识与所述第一子设备的设备标识不相同,则将所述第一响应报文发送至具有所述第一设备标识的第二子设备,以使所述第二子设备对所述第一响应报文进行转发处理。

可选的,所述装置还包括:

第一处理模块,用于如果所述第一设备标识与所述第一子设备的设备标识相同,则根据所述预设会话表项,确定发送所述第一请求报文的目标终端的地址信息,以及所述堆叠设备中用于接收终端发送所述第一请求报文的第二端口的端口号;

根据所述目标终端的地址信息,通过所述第二端口将所述第一响应报文发送至所述目标终端。

可选的,所述装置还包括:

第二处理模块,用于接收终端发送的第二请求报文,所述第二请求报文包括协议类型标识和第二服务器的地址;

根据所述协议类型标识,确定用于转发所述第二请求报文的第三端口的端口号;

根据所述第二服务器的地址,通过所述第三端口,向所述第二服务器发送所述第二请求报文;

在所述预设会话表项中添加会话表项,所述会话表项包括请求报文包括的协议类型标识、发送请求报文的端口号、发送请求报文的子设备的设备标识和接收请求报文的服务器的服务器标识;

将添加的所述会话表项发送至所述堆叠设备中的其他子设备。

可选的,所述第二处理模块,还用于判断所述第二请求报文中是否包含预设代理标识;

如果所述第二请求报文中包含所述预设代理标识,则根据所述协议类型标识,确定用于转发所述第二请求报文的第三端口的端口号。

可选的,所述装置还包括:

第三处理模块,用于设置所述会话表项的老化时长;

如果在所述老化时长内,未接收到与所述第二请求报文对应的响应报文,则将所述会话表项从所述预设会话表项中删除。

第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现第一方面所述的方法步骤。

第四方面,提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现第一方面所述的方法步骤。

第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法步骤。

本发明实施例提供的一种报文处理方法和装置,应用于堆叠设备中的第一子设备,接收第一服务器针对第一请求报文发送的第一响应报文,第一响应报文中包括协议类型标识、第一服务器标识和堆叠设备中用于向第一服务器转发第一请求报文的第一端口的端口号,在预设会话表项中,查询与协议类型标识、第一服务器标识和第一端口的端口号均对应匹配的第一设备标识,如果第一设备标识与第一子设备的设备标识不相同,则将第一响应报文发送至具有第一设备标识的第二子设备,以使第二子设备对第一响应报文进行转发处理。

基于上述处理,即使接收响应报文的子设备,与接收该响应报文对应的请求报文的子设备不是同一子设备,也可以完成该响应报文的转发处理,进而可以避免网络业务中断。

当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种组网架构的框架图;

图2为本发明实施例提供的一种报文处理方法的流程图;

图3为本发明实施例提供的一种报文处理方法的示例的流程图;

图4为本发明实施例提供的一种报文处理装置的结构图;

图5为本发明实施例提供的一种电子设备的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种报文处理方法和装置,可以应用于堆叠设备中的第一子设备,该堆叠设备可以包括多个子设备,第一子设备可以为堆叠设备中的任一子设备。参见图1,图1为本发明实施例提供的一种组网架构的框架图,为一种可能的应用场景。该组网包括:堆叠设备、终端、服务器。其中,堆叠设备包含第一子设备和第二子设备,第一子设备和第二子设备之间设置有通信链路,用于第一子设备与第二子设备之间进行报文传输。

堆叠设备可以将终端发送的请求报文转发至服务器,也可以将服务器发送的响应报文转发至终端。第一子设备和第二子设备共用堆叠设备的ip地址和堆叠设备的端口(该端口为逻辑端口)。终端向堆叠设备的端口发送请求报文时,第一子设备和第二子设备都有可能通过各自的物理端口接收到请求报文,服务器向堆叠设备的端口发送响应报文时,第一子设备和第二子设备也都有可能通过各自的物理端口接收到响应报文。

具体的,如果第一子设备接收到第一服务器针对第一请求报文发送的响应报文(即第一响应报文)时,第一子设备可以获取第一响应报文的报文信息,报文信息可以包括协议类型标识(可以称为第一协议类型标识)、服务器标识(即第一服务器标识)和堆叠设备中用于向第一服务器转发第一请求报文的第一端口的端口号,然后,第一子设备在预设会话表项中,查询与第一协议类型标识、第一服务器标识和第一端口的端口号均对应匹配的设备标识(即第一设备标识)。如果第一设备标识与第一子设备的设备标识(可以称为第二设备标识)不相同,第一子设备则将第一响应报文发送至具有第一设备标识的子设备(即第二子设备)。预设会话表项可以是第一子设备在转发请求报文时生成的,也可以是第二子设备转发请求报文时生成,并发送至第一子设备的。

基于上述处理,第一子设备可以确定出转发第一请求报文的第二子设备,并将第一响应报文发送至第二子设备,以使第二子设备转发第一响应报文,进而完成第一响应报文的转发处理,可以避免业务中断。

参见图2,图2为本发明实施例提供的一种报文处理方法的流程图,该方法可以应用于堆叠设备中的子设备,例如,可以应用于图1中的第一子设备,该方法可以包括以下步骤。

s201:接收第一服务器针对第一请求报文发送的第一响应报文。

其中,第一响应报文中包括第一协议类型标识、第一服务器标识和堆叠设备中用于向第一服务器转发第一请求报文的第一端口的端口号。第一协议类型标识用于表示第一响应报文的协议类型。协议类型可以为用户数据报协议(英文:userdatagramprotocol,简称:udp),也可以为传输控制协议(英文:transmissioncontrolprotocol,简称:tcp)。响应报文中的协议类型标识可以携带在响应报文中的协议字段中,例如,协议字段为6,则表示协议类型为tcp,协议字段为17,则表示协议类型为udp。另外,由于服务器通过同一服务器端口只能发送相同的协议类型的响应报文,因此,协议类型标识还可以为服务器的端口的端口号。

服务器标识用于标识发送响应报文的服务器,例如,服务器标识可以为服务器的ip地址,也可以为服务器的硬件设备标识。

在发明实施例中,当接收到终端发送的第一请求报文后,堆叠设备中的子设备(可以为第一子设备或者第二子设备)可以为转发第一请求报文分配堆叠设备的端口(即第一端口),并通过第一端口将第一请求报文发送至第一请求报文的目的地址对应的服务器(即第一服务器)。第一服务器接收到第一请求报文后,可以向堆叠设备的第一端口发送第一请求报文对应的响应报文(即第一响应报文)。如果第一子设备接收到第一响应报文,第一子设备可以解析第一响应报文,得到第一协议类型标识、第一服务器标识和第一端口的端口号,以便进行后续处理。

例如,第一子设备可以解析第一响应报文的介质访问控制(英文:mediaaccesscontrol,简称:mac)层,将源端口号(即服务器端口号),作为第一协议类型标识,将源地址(即服务器的ip地址),作为第一服务器标识,另外,还可以得到目的端口号(即第一端口的端口号)。

另外,终端发送的请求报文中也包括协议类型标识(可以称为第二协议类型标识),第二协议类型标识用于表示请求报文的协议类型,例如,第二协议类型标识可以为请求报文中的协议字段,也可以为服务器中用于接收请求报文的端口的端口号。

子设备可以根据第二协议类型标识,为转发该请求报文分配堆叠设备的端口,该端口为逻辑端口,同一逻辑端口可以对应不同子设备的物理端口。具体的,针对同一协议类型的两个请求报文,子设备需要分配堆叠设备的不同端口;针对不同协议类型的两个请求报文,子设备则可以分配堆叠设备的相同端口。然后,子设备可以通过分配的堆叠设备的端口,将请求报文发送至请求报文的目的地址对应的服务器。

s202:在预设会话表项中,查询与协议类型标识、第一服务器标识和第一端口的端口号均对应匹配的第一设备标识。

其中,预设会话表项可以包括协议类型标识、服务器标识、堆叠设备中用于转发请求报文的端口的端口号和设备标识的对应关系。设备标识可以为子设备的序列号或其他标识。

在发明实施例中,当获取第一协议类型标识、第一服务器标识和第一端口的端口号后,第一子设备可以在预设会话表现中进行查询,得到与第一协议类型标识、第一服务器标识和第一端口的端口号均对应匹配的设备标识(即第一设备标识),也即第一子设备确定出对第一请求报文进行转发处理的子设备。

s203:如果第一设备标识与第一子设备的设备标识不相同,则将第一响应报文发送至具有第一设备标识的第二子设备,以使第二子设备对第一响应报文进行转发处理。

在发明实施例中,在确定出第一设备标识后,第一子设备可以判断第一设备标识与自身的设备标识(即第二设备标识)是否相同。当第一子设备判定第一设备标识与第二设备标识不相同时,即第一子设备确定出自身不是对第一请求报文进行转发处理的子设备,此时,第一子设备可以将第一响应报文发送至具有第一设备标识的子设备(即第二子设备),即第一子设备将第一响应报文发送至对第一请求报文进行转发处理的子设备,以使第一响应报文和对应的第一请求报文在同一子设备上进行转发处理。第二子设备接收到第一响应报文后,可以对第一响应报文进行转发处理。具体的,第二子设备可以根据转发第一请求报文时生成的会话表项,对第一响应报文进行转发处理,该转发处理方法为现有技术,在此不再赘述。

基于上述处理,即使接收响应报文的子设备,与接收该响应报文对应的请求报文的子设备不是同一子设备,也可以完成响应报文的转发处理,进而可以避免业务中断。

可选的,第一子设备也可以直接对第一响应报文进行转发处理。具体的,该方法还可以包括以下处理步骤。

步骤一,如果第一设备标识与第一子设备的设备标识相同,则根据预设会话表项,确定发送第一请求报文的目标终端的地址信息,以及堆叠设备中用于接收终端发送第一请求报文的第二端口的端口号。

其中,预设会话表项中还可以包括终端的地址信息、堆叠设备中用于接收请求报文的端口的端口号。终端的地址信息用于标识发送请求报文的终端,例如,终端的地址信息可以包括终端的ip地址和终端发送请求报文的端口的端口号。

在发明实施例中,当第一子设备判定第一设备标识与第二设备标识相同时,即第一子设备确定出自身是对第一请求报文进行转发处理的子设备,此时,第一子设备可以根据预设会话表项,获取发送第一请求报文的终端(即目标终端)的地址信息,以及堆叠设备中用于接收第一请求报文的端口(即第二端口)的端口号。

具体的,第一子设备可以在预设会话表项中,获取与第一协议类型标识、第一服务器标识和第一端口的端口号均对应匹配的目标终端的ip地址、目标终端的端口的端口号,以及第二端口的端口号。

步骤二,根据目标终端的地址信息,通过第二端口将第一响应报文发送至目标终端。

在发明实施例中,在获取目标终端的地址信息和第二端口的端口号后,第一子设备也即确定了发送第一请求报文的终端和堆叠设备用于接收第一请求报文的第二端口,然后,第一子设备可以通过第二端口将第一响应报文发送至目标终端。

例如,在获取目标终端的ip地址、目标终端的端口的端口号和第二端口的端口号后,第一子设备可以将目标终端的ip地址作为第一响应报文的目的地址,将目标终端的端口的端口号作为第一响应报文的目的端口号,将堆叠设备的ip地址作为第一响应报文的源地址,将第二端口的端口号作为第一响应报文的源端口号,通过第二端口将第一响应报文发送至目标终端。

可选的,第一子设备还可以生成请求报文对应的会话表项时,并将会话表项备份到堆叠设备中的其他子设备,该方法还可以包括以下处理步骤。

步骤一,接收终端发送的第二请求报文。

其中,第二请求报文包括协议类型标识(可以称为第三协议类型标识)和第二服务器的地址,服务器的地址可以为服务器的ip地址。第三协议类型标识用于表示第二请求报文的协议类型,例如,第三协议类型标识可以为第二请求报文中的协议字段,也可以为第二服务器中用于接收第二请求报文的端口的端口号。

在发明实施例中,第一子设备可以接收终端发送的请求报文(即第二请求报文),然后,第一子设备可以解析第二请求报文,获取第三协议类型标识和第二请求报文的目的地址对应的服务器(即第二服务器)的地址。

具体的,第一子设备解析第二请求报文,可以得到第二服务器中用于接收第二请求报文的端口的端口号和第二服务器的ip地址。

步骤二,根据协议类型标识,确定用于转发第二请求报文的第三端口的端口号。

在发明实施例中,第一子设备可以根据第三协议类型标识,为转发第二请求报文分配堆叠设备的端口(即第三端口)。具体的,根据前述实施例的介绍,针对同一协议类型的两个请求报文,子设备需要分配不同的端口。在确定第三端口时,第一子设备可以从预设会话表项中,获取当前为携带有第三协议类型标识的请求报文已分配的端口,然后,第一子设备可以确定堆叠设备中除已分配的端口以外的可分配端口,并在可分配端口中出确定第三端口。

步骤三,根据第二服务器的地址,通过第三端口,向第二服务器发送第二请求报文。

在发明实施例中,在确定出第三端口后,第一子设备可以通过第三端口,向第二服务器发送第二请求报文。例如,第一子设备可以将第二服务器的ip地址作为第二请求报文的目的地址,将第二服务器接收第二请求报文的端口的端口号,作为第二请求报文的目的端口号,将堆叠设备的ip地址作为第二请求报文的源地址,将第三端口的端口号作为第二请求报文的源端口号,通过第三端口将第二请求报文发送至第二服务器。

步骤四,在预设会话表项中添加会话表项。

其中,添加的会话表项包括请求报文包括的协议类型标识、发送请求报文的端口号、发送请求报文的子设备的设备标识和接收请求报文的服务器的服务器标识。

在发明实施例中,在转发第二请求报文时,第一子设备还可以生成第二请求报文对应的会话表项。具体的,第一子设备可以在预设会话表项中添加第二服务器接收第二请求报文的端口的端口号、第三端口的端口号、第一子设备的设备标识和第二服务器的ip地址的对应关系。

另外,添加的会话表项中还可以包括发送第二请求报文的终端的ip地址、终端发送第二请求报文的端口的端口号、堆叠设备中用于接收第二请求报文的端口的端口号和堆叠设备的ip地址。第一子设备可以根据上述标识对第二请求报文对应的响应报文(可以称为第二响应报文)进行转发处理。

例如,某一请求报文的会话表项可以参见表(1)。

表(1)

其中,source1-ip(即终端的ip地址)表示发送该请求报文的终端的ip地址,source1-port(即终端端口号)表示终端发送该请求报文的端口的端口号,dest1-port(即下游端口的端口号)表示堆叠设备中用于接收该请求报文的端口的端口号,dest1-ip(即堆叠设备的ip地址)表示堆叠设备的ip地址,slot_id(即子设备的设备标识)表示转发该请求报文的子设备的设备标识,source2-port(即上游端口的端口号)表示堆叠设备中用于转发该请求报文的端口的端口号,dest2-ip(即服务器的ip地址)表示接收该请求报文的服务器的ip地址,dest2-port(即服务器端口号)表示服务器接收该请求报文的端口的端口号。表(1)中前五项(即source1-ip、source1-port、dest1-port、dest1-ip和slot_id)表示堆叠设备与终端之间的会话表项,即下游会话的会话表项,表(1)中后五项(即dest1-ip、slot_id、source2-port、dest2-ip和dest2-port)表示堆叠设备与服务器之间的会话表项,即上游会话的会话表项。

步骤五,将添加的会话表项发送至堆叠设备中的其他子设备。

在发明实施例中,第一子设备还可以将第二请求报文对应的会话表项,发送至堆叠设备中的其他子设备,以使其他子设备在接收到第二响应报文时,可以查询对应的会话表项,将第二响应报文发送至第一子设备,进而使第一子设备根据第二请求报文对应的会话表项,完成第二响应报文的转发处理。

可选的,第一子设备可以根据终端的接入方式,对终端发送的请求报文进行处理。具体的,第一子设备在接收终端发送的第二请求报文后,该方法还可以包括以下步骤。

判断第二请求报文中是否包含预设代理标识;如果第二请求报文中包含预设代理标识,根据协议类型标识,确定用于转发第二请求报文的第三端口的端口号。

其中,预设代理标识用于表示终端的接入方式。例如,在sslvpn接入方式中,终端发送的请求报文的统一资源定位符(英文:uniformresourcelocator,简称:url)中可以携带有_proxy(代理)标识。

终端向服务器发送的请求的格式可以为超文本传输协议(英文:hypertexttransferprotocol,简称:http)或超文本传输协议的安全版(英文:hypertexttransferprotocoloversecuresocketlayer,简称:https)。

http格式的url如:http://1.1.1.1:1111/_proxy2/80/http/2.2.2.2/,其中,1.1.1.1表示堆叠设备的ip地址,1111表示堆叠设备中用于接收请求报文的端口的端口号,2.2.2.2表示接收请求报文的服务器的ip地址,80表示服务器接收请求报文的端口的端口号。https格式的url如:https://3.3.3.3:3333/_proxy2/443/https/4.4.4.4/,其中,3.3.3.3表示堆叠设备的ip地址,3333表示堆叠设备中用于接收请求报文的端口的端口号,4.4.4.4表示接收请求报文的服务器的ip地址,443表示服务器接收请求报文的端口的端口号。

在发明实施例中,第一子设备接收到第二请求报文后,可以解析第二请求报文,判断第二请求报文中是否包含预设代理标识。当第一子设备判定第二请求报文中包含预设代理标识时,第一子设备可以根据协议类型标识,确定用于转发第二请求报文的第三端口的端口号,并对第二请求报文进行转发处理。

另外,当第一子设备判定第二请求报文中不包含预设代理标识时,第一子设备可以根据现有技术中的报文转发方法,对第二请求报文进行处理。

可选的,为了合理分配堆叠设备的端口,第一子设备还可以设置会话表项的老化时长。具体的,该方法还可以包括以下处理步骤。

设置会话表项的老化时长;如果在老化时长内,未接收到与第二请求报文对应的响应报文,则将会话表项从预设会话表项中删除。

其中,老化时长可以由技术人员根据经验进行设置。

在发明实施例中,第一子设备在生成第二请求报文对应的会话表项时,还可以设置该会话表项的老化时长。如果在该老化时长内,第一子设备未接收到第二响应报文,第一子设备则将该会话表项从预设会话表项中删除。

具体的,在将第二请求报文发送至第二服务器时,第一子设备可以开始计时。如果在计时时长达到会话表项中的老化时长时,第一子设备仍未接收到第二响应报文,第一子设备可以将第二请求报文对应的会话表项从预设会话表项中删除。相应的,堆叠设备可以回收第三端口,堆叠设备可以将第三端口用于转发接收到的其他请求报文。

参见图3,图3为本发明实施例提供的一种报文处理方法的示例的流程图,本实施例以应用于堆叠设备中的第一子设备为例进行说明,堆叠设备还可以包括其他子设备,该方法可以包括以下步骤。

s301:当接收到终端发送的包含有预设代理标识的请求报文时,将该请求报文发送至该请求报文的目的地址对应的服务器。

s302:在预设会话表项中,添加该请求报文对应的会话表项,并将该请求报文对应的会话表项发送至堆叠设备中的其他子设备。

其中,预设会话表项包括终端的ip地址、终端端口号、下游端口的端口号、堆叠设备的ip地址、子设备的设备标识、上游端口的端口号、服务器的ip地址和服务器端口号的对应关系。

s303:当接收到服务器发送的响应报文时,获取该响应报文中的第一服务器端口号、第一服务器的ip地址和堆叠设备中用于转发该响应报文对应的请求报文的第一上游端口的端口号。

s304:在预设会话表项中,查询与第一服务器端口号、第一服务器的ip地址和第一上游端口的端口号均对应匹配的第一设备标识。

s305:判断第一设备标识与第一子设备的设备标识是否相同,如果第一设备标识与第一子设备的设备标识相同,执行s306,如果第一设备标识与第一子设备的设备标识不相同,执行s307。

s306:根据预设会话表项中与第一服务器端口号、第一服务器的ip地址和第一上游端口的端口号对应的终端的ip地址、终端端口号、下游端口的端口号和堆叠设备的ip地址,将该响应报文发送至对应的终端。

s307:将该响应报文发送至具有第一设备标识的第二子设备,以使第二子设备对该响应报文进行转发处理。

由以上可见,基于本发明实施例的报文处理方法,接收第一服务器针对第一请求报文发送的第一响应报文,第一响应报文中包括协议类型标识、第一服务器标识和堆叠设备中用于向第一服务器转发第一请求报文的第一端口的端口号,在预设会话表项中,查询与协议类型标识、第一服务器标识和第一端口的端口号均对应匹配的第一设备标识,如果第一设备标识与第一子设备的设备标识不相同,则将第一响应报文发送至具有第一设备标识的第二子设备,以使第二子设备对第一响应报文进行转发处理。基于上述处理,即使接收响应报文的子设备,与接收该响应报文对应的请求报文的子设备不是同一子设备,也可以完成该响应报文的转发处理,进而可以避免网络业务中断。

与图2的方法实施例相对应,参见图4,图4为本发明实施例提供的一种报文处理装置的结构图,所述装置应用于堆叠设备中的第一子设备,所述装置包括:

接收模块401,用于接收第一服务器针对第一请求报文发送的第一响应报文,所述第一响应报文中包括协议类型标识、第一服务器标识和所述堆叠设备中用于向所述第一服务器转发所述第一请求报文的第一端口的端口号;

查询模块402,用于在预设会话表项中,查询与所述协议类型标识、所述第一服务器标识和所述第一端口的端口号均对应匹配的第一设备标识;

发送模块403,用于如果所述第一设备标识与所述第一子设备的设备标识不相同,则将所述第一响应报文发送至具有所述第一设备标识的第二子设备,以使所述第二子设备对所述第一响应报文进行转发处理。

可选的,所述装置还包括:

第一处理模块,用于如果所述第一设备标识与所述第一子设备的设备标识相同,则根据所述预设会话表项,确定发送所述第一请求报文的目标终端的地址信息,以及所述堆叠设备中用于接收终端发送所述第一请求报文的第二端口的端口号;

根据所述目标终端的地址信息,通过所述第二端口将所述第一响应报文发送至所述目标终端。

可选的,所述装置还包括:

第二处理模块,用于接收终端发送的第二请求报文,所述第二请求报文包括协议类型标识和第二服务器的地址;

根据所述协议类型标识,确定用于转发所述第二请求报文的第三端口的端口号;

根据所述第二服务器的地址,通过所述第三端口,向所述第二服务器发送所述第二请求报文;

在所述预设会话表项中添加会话表项,所述会话表项包括请求报文包括的协议类型标识、发送请求报文的端口号、发送请求报文的子设备的设备标识和接收请求报文的服务器的服务器标识;

将添加的所述会话表项发送至所述堆叠设备中的其他子设备。

可选的,所述第二处理模块,还用于判断所述第二请求报文中是否包含预设代理标识;

如果所述第二请求报文中包含所述预设代理标识,则根据所述协议类型标识,确定用于转发所述第二请求报文的第三端口的端口号。

可选的,所述装置还包括:

第三处理模块,用于设置所述会话表项的老化时长;

如果在所述老化时长内,未接收到与所述第二请求报文对应的响应报文,则将所述会话表项从所述预设会话表项中删除。

由以上可见,基于本发明实施例的报文处理装置,接收第一服务器针对第一请求报文发送的第一响应报文,第一响应报文中包括协议类型标识、第一服务器标识和堆叠设备中用于向第一服务器转发第一请求报文的第一端口的端口号,在预设会话表项中,查询与协议类型标识、第一服务器标识和第一端口的端口号均对应匹配的第一设备标识,如果第一设备标识与第一子设备的设备标识不相同,则将第一响应报文发送至具有第一设备标识的第二子设备,以使第二子设备对第一响应报文进行转发处理。基于上述处理,即使接收响应报文的子设备,与接收该响应报文对应的请求报文的子设备不是同一子设备,也可以完成该响应报文的转发处理,进而可以避免网络业务中断。

本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,

存储器503,用于存放计算机程序;

处理器501,用于执行存储器503上所存放的程序时,以使该电子设备执行报文处理方法的步骤,该方法包括:

接收第一服务器针对第一请求报文发送的第一响应报文,所述第一响应报文中包括协议类型标识、第一服务器标识和所述堆叠设备中用于向所述第一服务器转发所述第一请求报文的第一端口的端口号;

在预设会话表项中,查询与所述协议类型标识、所述第一服务器标识和所述第一端口的端口号均对应匹配的第一设备标识;

如果所述第一设备标识与所述第一子设备的设备标识不相同,则将所述第一响应报文发送至具有所述第一设备标识的第二子设备,以使所述第二子设备对所述第一响应报文进行转发处理。

可选的,所述处理器501执行计算机程序还包括执行下述指令:

如果所述第一设备标识与所述第一子设备的设备标识相同,则根据所述预设会话表项,确定发送所述第一请求报文的目标终端的地址信息,以及所述堆叠设备中用于接收终端发送所述第一请求报文的第二端口的端口号;

根据所述目标终端的地址信息,通过所述第二端口将所述第一响应报文发送至所述目标终端。

可选的,所述处理器501执行计算机程序还包括执行下述指令:

接收终端发送的第二请求报文,所述第二请求报文包括协议类型标识和第二服务器的地址;

根据所述协议类型标识,确定用于转发所述第二请求报文的第三端口的端口号;

根据所述第二服务器的地址,通过所述第三端口,向所述第二服务器发送所述第二请求报文;

在所述预设会话表项中添加会话表项,所述会话表项包括请求报文包括的协议类型标识、发送请求报文的端口号、发送请求报文的子设备的设备标识和接收请求报文的服务器的服务器标识;

将添加的所述会话表项发送至所述堆叠设备中的其他子设备。

可选的,所述处理器501执行计算机程序还包括执行下述指令:

判断所述第二请求报文中是否包含预设代理标识;

如果所述第二请求报文中包含所述预设代理标识,则根据所述协议类型标识,确定用于转发所述第二请求报文的第三端口的端口号。

可选的,所述处理器501执行计算机程序还包括执行下述指令:

设置所述会话表项的老化时长;

如果在所述老化时长内,未接收到与所述第二请求报文对应的响应报文,则将所述会话表项从所述预设会话表项中删除。

上述电子设备提到的通信总线可以是外设部件互连标准(英文:peripheralcomponentinterconnect,简称:pci)总线或扩展工业标准结构(英文:extendedindustrystandardarchitecture,简称:eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(英文:randomaccessmemory,简称:ram),也可以包括非易失性存储器(英文:non-volatilememory,简称:nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(英文:centralprocessingunit,简称:cpu)、网络处理器(英文:networkprocessor,简称:np)等;还可以是数字信号处理器(英文:digitalsignalprocessing,简称:dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,简称:asic)、现场可编程门阵列(英文:field-programmablegatearray,简称:fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一报文处理方法的步骤。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一报文处理方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、机器可读存储介质,以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1