本技术涉及通信,尤其涉及一种报文处理方法、网络设备以及分布式系统。
背景技术:
1、软件定义广域网(software-defined networking in a wide area network,sd-wan)场景中单一链路和设备无法提供高可靠和高可用的广域连接,因此需要分布式系统来提升可靠性,例如在单个站点部署多个网络设备实现多链路的可靠连接。
2、网络设备可以对报文进行优化处理,面向连接的协议通信中要求同一连接下的多个报文经由同一网络设备进行处理,例如传输控制协议(transmission controlprotocol,tcp)优化要求tcp数据报文和对应的确认字符(acknowledge character,ack)响应必须同时经过部署网络设备,才能实现正确的代理。
3、在分布式系统中,为实现正确的优化处理,需要配置全局一致的负载分担参数,参数配置复杂且易于出错。
技术实现思路
1、本技术提供了一种报文处理方法、网络设备以及分布式系统,用于在分布式系统中实现面向连接的协议优化的同时,避免复杂的参数配置。
2、本技术的第一方面提供了一种报文处理方法,包括:第一网络设备获取第一报文;若确定所述第一报文不在本地处理,则所述第一网络设备通过在所述第一报文中添加第一负载均衡信息得到第二报文;所述第一网络设备向所述第二网络设备转发所述第二报文。
3、本技术实施例提供的报文处理方法,可以在分布式系统中实现对报文的优化处理,一个站点中的网络设备可以确定报文是否在本地处理,对于不在本地处理的报文,可以通过在报文中添加负载均衡信息后转发给同站点的其他网络设备,可以理解的是,该负载均衡信息可以指示该报文经由网络设备负载均衡后转发。在分布式系统中,对报文进行处理需要多站点网络设备协同配置路由参数,存在网络设备配置复杂的问题,而本技术提供的报文处理方法基于第一报文不在本地处理在第一报文中添加第一负载均衡信息,并向第二网络设备转发,由此可以保障同一连接下的所有报文均经过同一网络设备,此外,通过数据面的第一负载均衡信息可以避免控制面复杂的网络配置。
4、在第一方面的一种可能的实现方式中,在所述第一网络设备通过在所述第一报文中添加第一负载均衡信息得到第二报文之前,所述方法还包括:所述第一网络设备根据所述第一报文的连接信息确定所述第一报文不在本地处理。
5、本技术实施例提供的报文处理方法,考虑到同一连接会话下的多个报文的连接信息具有关联,第一网络设备可以基于第一报文的连接信息确定第一报文是否在本地处理,从而保障同一连接下的所有报文均经过同一网络设备。第一网络设备可以实现面向连接的协议优化,例如tcp优化或quic协议优化等。
6、在第一方面的一种可能的实现方式中,所述第一报文的连接信息包括以下一项或多项:第一报文的源网际互连协议ip地址、源端口号、目的ip地址和目的端口号。
7、本技术实施例提供的报文处理方法,连接信息包括第一报文的源网际互连协议ip地址、源端口号、目的ip地址和目的端口号中的一项或多项。该方案在实现过程中可以基于实际场景需要灵活选择用于确定第一报文是否在本地处理的连接信息。
8、在第一方面的一种可能的实现方式中,所述第一网络设备根据所述第一报文的连接信息确定所述第一报文不在本地处理,包括:所述第一网络设备将所述第一报文的连接信息输入第一负载分担算法,基于计算结果确定所述第一报文是否在本地处理。
9、本技术实施例提供的报文处理方法,基于所在的连接会话下的所有报文的连接信息的关联性,通过第一负载分担算法确定分布式系统中用于对第一报文进行处理的网络设备,可以保障该连接会话下的所有报文均经过同一网络设备,从而可以实现面向连接的协议优化。
10、在第一方面的一种可能的实现方式中,所述第一网络设备根据所述第一报文的连接信息确定所述第一报文不在本地处理,包括:所述第一网络设备根据所述第一报文的连接信息查询流表,所述流表包括经所述第一网络设备协议优化处理的报文的源地址和目标地址的信息;若所述第一报文的连接信息未命中流表,所述第一网络设备将所述第一报文的连接信息输入第一负载分担算法,基于计算结果确定所述第一报文是否在本地处理。
11、本技术实施例提供的报文处理方法,在一种可能的实现方式中,第一网络设备存储流表,流表包括经所述第一网络设备协议优化处理的报文的源地址和目标地址的信息,在获取第一报文之后,第一网络设备可以基于第一报文的连接信息查询流表,若第一报文的连接信息命中流表,说明第一报文所在的连接会话的以往报文由第一网络设备处理,因此,第一报文也由第一网络设备进行处理,例如进行面向连接的协议优化。若第一报文的连接信息未命中流表,则可以由第一网络设备进一步判断是否在本地进行处理。
12、在一种可能的实现方式中,该第一报文非首包,同一连接会话下的其他报文已由该第一站点的其他网络设备处理,那么第一报文也需要转发至其他网络设备进行处理;在另一种可能的实现方式中,该第一报文为首包,需要第一网络设备基于第一报文的连接信息进行负载分担,进而确定是本地进行处理,还是转发其他网络设备进行处理。
13、在第一方面的一种可能的实现方式中,所述第一负载分担算法包括哈希算法。
14、本技术实施例提供的报文处理方法,第一负载分担算法为哈希算法。在一种可能的实现方式中,第一站点包括两个网络设备,则网络设备可以基于源ip地址、源端口号、目的ip地址和目的端口号中的一个或多个进行哈希计算,若获取第一计算结果,由第一网络设备进行处理,若获取第二计算结果,则由第二网络设备进行处理。在一种可能的实现方式中,分布式系统中的第一站点可能包括两个以上的网络设备,网络设备可以通过连接信息进行多次哈希计算实现多个网络设备之间的负载分担,具体计算方法此处不做限定。
15、在第一方面的一种可能的实现方式中,所述第一负载均衡信息包括经所述第一负载分担算法处理的信息。
16、本技术实施例提供的报文处理方法,该第一负载均衡信息包括经所述第一负载分担算法处理的信息,也就是说,第二网络设备可以根据第二报文携带的第一负载均衡信息确定该第一报文已经由第一站点的网络设备进行负载分担,在一种可能的实现方式中,第一站点仅包括第一网络设备和第二网络设备,若发往第二网络设备的第二报文中携带第一负载均衡信息,第二网络设备可以据此确定该第二报文由本地处理。
17、在第一方面的一种可能的实现方式中,所述第一报文携带第一报文状态信息,在所述第一网络设备通过在所述第一报文中添加第一负载均衡信息得到第二报文之前,所述方法还包括:若所述第一报文携带的报文状态信息包括经第一负载分担算法处理两次的信息,或经协议优化处理的信息,则所述第一网络设备将所述第一报文送出所述第一站点。
18、本技术实施例提供的报文处理方法,第一报文可以携带报文状态信息,若第一报文携带的报文状态信息包括已经第一负载分担算法处理两次的信息,或已经协议优化处理的信息,则第一网络设备可以直接将一报文送出第一站点。
19、在一种可能的实现方式中,在第一报文被送出第一站点之前,删除第一报文中携带的报文状态信息。
20、在第一方面的一种可能的实现方式中,所述方法还包括:若确定所述第一报文在本地处理,则所述第一网络设备对所述第一报文进行协议优化处理;若所述第一网络设备根据第二负载分担算法确定所述第一报文的出口不在本地,则所述第一网络设备通过在所述第一报文中添加第二负载均衡信息得到第三报文;所述第一网络设备向所述第二网络设备转发所述第三报文。
21、本技术实施例提供的报文处理方法,若确定所述第一报文在本地处理,则所述第一网络设备对所述第一报文进行协议优化处理,此外,第一网络设备还可以根据第二负载分担算法确定第一报文的出口是否在本地,若不在本地,则第一网络设备通过在所述第一报文中添加第二负载均衡信息,并向第二网络设备转发该第三报文,也就是说,由第二网络设备将该第三报文送出站点。
22、在该实现方式中,网络设备对报文的协议优化处理,与基于负载均衡的报文传输策略分离,也就是说,第一报文可能由第一网络设备进行协议优化处理,而由第二网络设备进行发送;或者,第一报文由第二网络设备进行协议优化处理,而由第一网络设备进行发送。
23、在第一方面的一种可能的实现方式中,所述第二负载分担算法包括逐包的负载分担算法。
24、本技术实施例提供的报文处理方法,第二负载分担算法可以是任意一种现有的负载分担算法,例如逐包的负载分担算法。此外也可以是基于不同粒度的其他负载分担算法,具体此处不做限定。
25、在第一方面的一种可能的实现方式中,所述第二负载均衡信息包括:经协议优化处理的信息和经所述第二负载分担算法处理的信息。
26、本技术实施例提供的报文处理方法,第二负载均衡信息为经协议优化处理的信息和经所述第二负载分担算法处理的信息,可以用于指示该第三报文出口不在第一网络设备,若第一站点仅有第一网络设备和第二网络设备,则第二网络设备可以基于第二负载均衡信息直接将第三报文送出第一站点。
27、在第一方面的一种可能的实现方式中,所述第一报文携带第一报文状态信息,所述方法还包括:若所述第一报文携带的报文状态信息包括经协议优化处理的信息,或经所述第二负载分担算法处理的信息,则所述第一网络设备将所述第一报文送出所述第一站点。
28、本技术实施例提供的报文处理方法,若第一报文携带已经协议优化处理的信息,或已经所述第二负载分担算法处理的信息,说明该第一报文是由第一站点其他网络设备处理过的或经负载均衡过的报文,第一网络设备可以直接将第一报文送出第一站点。
29、本技术的第二方面提供了一种第一网络设备,其特征在于,应用于分布式系统,所述分布式系统中的第一站点包括所述第一网络设备和第二网络设备,所述第一网络设备包括:获取单元,用于获取第一报文;处理单元,用于若确定所述第一报文不在本地处理,则通过在所述第一报文中添加第一负载均衡信息得到第二报文;发送单元,用于向所述第二网络设备转发所述第二报文。
30、在第二方面的一种可能的实现方式中,所述第一网络设备还包括:确定单元,用于在所述第一网络设备通过在所述第一报文中添加第一负载均衡信息得到第二报文之前,根据所述第一报文的连接信息确定所述第一报文不在本地处理。在第二方面的一种可能的实现方式中,所述第一报文的连接信息包括以下一项或多项:第一报文的源网际互连协议ip地址、源端口号、目的ip地址和目的端口号。
31、在第二方面的一种可能的实现方式中,所述确定单元,具体用于:将所述第一报文的连接信息输入第一负载分担算法,基于计算结果确定所述第一报文是否在本地处理。
32、在第二方面的一种可能的实现方式中,所述确定单元,具体用于:根据所述第一报文的连接信息查询流表,所述流表包括经所述第一网络设备协议优化处理的报文的源地址和目标地址的信息;若所述第一报文的连接信息未命中流表,将所述第一报文的连接信息输入第一负载分担算法,基于计算结果确定所述第一报文是否在本地处理。
33、在第二方面的一种可能的实现方式中,所述第一负载分担算法包括哈希算法。
34、在第二方面的一种可能的实现方式中,所述第一负载均衡信息包括经所述第一负载分担算法处理的信息。
35、在第二方面的一种可能的实现方式中,所述第一报文携带第一报文状态信息,所述发送单元,还用于:若所述第一报文携带的报文状态信息包括经第一负载分担算法处理两次的信息,或经协议优化处理的信息,则将所述第一报文送出所述第一站点。
36、在第二方面的一种可能的实现方式中,所述处理单元,还用于:若确定所述第一报文在本地处理,则对所述第一报文进行协议优化处理;若所述第一网络设备根据第二负载分担算法确定所述第一报文的出口不在本地,则通过在所述第一报文中添加第二负载均衡信息得到第三报文;所述发送单元还用于,向所述第二网络设备转发所述第三报文。
37、在第二方面的一种可能的实现方式中,所述第二负载分担算法包括逐包的负载分担算法。
38、在第二方面的一种可能的实现方式中,所述第二负载均衡信息包括:经协议优化处理的信息和经所述第二负载分担算法处理的信息。
39、在第二方面的一种可能的实现方式中,所述第一报文携带第一报文状态信息,所述发送单元还用于:若所述第一报文携带的报文状态信息包括经协议优化处理的信息,或经所述第二负载分担算法处理的信息,则将所述第一报文送出所述第一站点。
40、本技术第三方面提供了一种第一网络设备,包括:存储器,所述存储器中存储有计算机可读指令;与所述存储器相连的处理器,所述计算机可读指令被所述处理器执行时,使得所述第一网络设备实现如上述第一方面以及各种可能的实现方式中任一项所述的方法。
41、本技术第四方面提供了计算机程序产品,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如上述第一方面以及各种可能的实现方式中任一项所述的方法。
42、本技术第五方面提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行如上述第一方面以及各种可能的实现方式中任一项所述的方法。
43、本技术第六方面提供了一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行上述任一方面任意可能的实现方式中的方法。可选地,该芯片该包括存储器,该存储器与该处理器通过电路或电线与存储器连接。进一步可选地,该芯片还包括通信接口,处理器与该通信接口连接。通信接口用于接收需要处理的数据和/或信息,处理器从该通信接口获取该数据和/或信息,并对该数据和/或信息进行处理,并通过该通信接口输出处理结果。该通信接口可以是输入输出接口。
44、本技术第七方面提供了一种分布式通信系统,所述分布式通信系统包括第一站点,所述第一站点包括第一网络设备和第二网络设备,其特征在于,所述第一网络设备用于执行如上述第一方面以及各种可能的实现方式中任一项所述的方法。
45、其中,第二方面、第三方面、第四方面、第五方面、第六方面或第七方面以及其中任一种实现方式所带来的技术效果可参见第一方面中相应实现方式所带来的技术效果,此处不再赘述。
1.一种报文处理方法,其特征在于,应用于分布式系统,所述分布式系统中的第一站点包括第一网络设备和第二网络设备,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在所述第一网络设备通过在所述第一报文中添加第一负载均衡信息得到第二报文之前,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述第一报文的连接信息包括以下一项或多项:第一报文的源网际互连协议ip地址、源端口号、目的ip地址和目的端口号。
4.根据权利要求2或3所述的方法,其特征在于,所述第一网络设备根据所述第一报文的连接信息确定所述第一报文不在本地处理,包括:
5.根据权利要求2或3所述的方法,其特征在于,所述第一网络设备根据所述第一报文的连接信息确定所述第一报文不在本地处理,包括:
6.根据权利要求4或5所述的方法,其特征在于,所述第一负载分担算法包括哈希算法。
7.根据权利要求4至6中任一项所述的方法,其特征在于,所述第一负载均衡信息包括经所述第一负载分担算法处理的信息。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述第一报文携带第一报文状态信息,在所述第一网络设备通过在所述第一报文中添加第一负载均衡信息得到第二报文之前,所述方法还包括:
9.根据权利要求1至7中任一项所述的方法,其特征在于,所述方法还包括:
10.根据权利要求9所述的方法,其特征在于,所述第二负载分担算法包括逐包的负载分担算法。
11.根据权利要求9或10所述的方法,其特征在于,所述第二负载均衡信息包括:
12.根据权利要求9至11中任一项所述的方法,其特征在于,所述第一报文携带第一报文状态信息,所述方法还包括:
13.一种第一网络设备,其特征在于,包括:
14.一种芯片,其特征在于,所述芯片包括处理器,所述处理器用于读取并执行存储器中存储的计算机程序,以执行如权利要求1至12中任一项所述的方法。
15.一种分布式通信系统,所述分布式通信系统包括第一站点,所述第一站点包括第一网络设备和第二网络设备,其特征在于,所述第一网络设备用于执行如权利要求1至12中任一项所述的方法。