一种转发报文的方法及装置与流程

文档序号:14216622阅读:213来源:国知局
本申请涉及通信
技术领域
,特别涉及一种转发报文的方法及装置。
背景技术
:规模较大的局域网的网关对外一般会有多条出口链路,比如说,高校局域网的网关与外网之间可以存在移动链路、联通链路和教育网链路;或者,负载均衡环境下,多台服务器组成的服务器集合通过网关设备对外提供服务,网关设备与外网可以存在多条出口链路。参见图1,为本申请示出的一种网络架构图,如图1所示,局域网内多台服务器组成一个服务器集合向外网提供服务,局域网的网关设备与外网之间存在3条出口链路。当网关设备从任一链路接收到请求报文,会将该请求报文转发至局域网内的任一服务器处理,并在获得服务器返回的应答报文后转发该应答报文。如果上述3条出口链路对于网关设备与外网中的任一设备为等价链路,则网关设备在转发应答报文(或者转发上述请求报文所属会话的反向报文)时,可能随机选择一条链路。当转发应答报文的链路与接收请求报文的链路不同时,可能因转发应答报文的链路上的安全设备的安全策略,造成网络延时过大或者链路不通的情况。技术实现要素:有鉴于此,本申请提供一种报文转发的方法及装置,用以解决转发应答报文与接收请求报文的链路不同,造成的网络延时或链路不通的问题。具体地,本申请是通过如下技术方案实现的:一种转发报文的方法,应用于网关设备,包括:接收第一报文,根据所述第一报文的五元组查找预设的会话表,确定是否存在对应的会话表项;如果不存在对应的会话表项,根据所述第一报文的五元组新建会话表项;其中,所述会话表项包括所述第一报文所属会话的五元组和快速转发信息的映射关系,所述快速转发信息包括出接口和下一跳mac;确定所述第一报文的入接口是否为指定的若干个对应等价链路的接口之一,如果是,在所述会话表项中记录所述第一报文的反向报文的快速转发信息,以使后续根据所述快速转发信息转发所述第一报文的反向报文;其中,所述反向报文的快速转发信息中的出接口和下一跳mac分别为所述第一报文的入接口和所述第一报文的源mac。在所述转发报文的方法中,所述方法还包括:根据所述第一报文的目的ip查找预设的路由表,确定对应的路由表项;其中,所述路由表项包括目的ip、出接口和下一跳的映射关系;基于所述路由表项转发所述第一报文,并基于所述路由表项中的出接口和下一跳更新所述会话表项中所述第一报文的快速转发信息。在所述转发报文的方法中,所述方法还包括:如果存在对应的会话表项,根据所述会话表项中的快速转发信息转发所述第一报文。在所述转发报文的方法中,所述快速转发信息中包括状态字段,所述状态字段中可填入可用标识或不可用标识,用以表征所述快速转发信息是否可用;所述方法还包括:如果存在对应的会话表项,确定所述会话表项中的快速转发信息是否可用;当所述会话表项中的快速转发信息可用时,根据所述会话表项中的快速转发信息转发所述第一报文;当所述会话表项中的快速转发信息不可用时,基于预设的路由表转发所述第一报文,并更新所述状态字段。在所述转发报文的方法中,所述会话表项还包括路径保持字段,所述路径保持字段在所述第一报文为多通道会话的控制通道报文时填入路径保持标识;所述方法还包括:接收到第二报文;其中,所述第二报文为多通道会话的数据通道报文;根据所述第二报文的三元组查找预设的多通道会话表,确定对应的五元组;其中,所述多通道会话表包括多通道会话的控制通道报文的五元组和数据通道报文的三元组的映射关系,所述三元组包括目的ip、协议号和目的端口;根据查找到的五元组查找所述会话表,确定对应的会话表项中是否携带所述路径保持标识;如果是,基于所述第二报文的目的ip查找所述会话表项中对应的快速转发信息,并将查找到的所述快速转发信息加入到基于所述第二报文的五元组新建的会话表项中。一种转发报文的装置,应用于网关设备,包括:接收单元,用于接收第一报文,根据所述第一报文的五元组查找预设的会话表,确定是否存在对应的会话表项;新建单元,用于如果不存在对应的会话表项,根据所述第一报文的五元组新建会话表项;其中,所述会话表项包括所述第一报文所属会话的五元组和快速转发信息的映射关系,所述快速转发信息包括出接口和下一跳mac;确定单元,用于确定所述第一报文的入接口是否为指定的若干个对应等价链路的接口之一,如果是,在所述会话表项中记录所述第一报文的反向报文的快速转发信息,以使后续根据所述快速转发信息转发所述第一报文的反向报文;其中,所述反向报文的快速转发信息中的出接口和下一跳mac分别为所述第一报文的入接口和所述第一报文的源mac。在所述转发报文的装置中,所述确定单元,进一步用于:根据所述第一报文的目的ip查找预设的路由表,确定对应的路由表项;其中,所述路由表项包括目的ip、出接口和下一跳的映射关系;基于所述路由表项转发所述第一报文,并基于所述路由表项中的出接口和下一跳更新所述会话表项中所述第一报文的快速转发信息。在所述转发报文的装置中,所述装置还包括:转发单元,用于如果存在对应的会话表项,根据所述会话表项中的快速转发信息转发所述第一报文。在所述转发报文的装置中,所述快速转发信息中包括状态字段,所述状态字段中可填入可用标识或不可用标识,用以表征所述快速转发信息是否可用;所述装置还包括:所述确定单元,进一步用于如果存在对应的会话表项,确定所述会话表项中的快速转发信息是否可用;所述转发单元,进一步用于当所述会话表项中的快速转发信息可用时,根据所述会话表项中的快速转发信息转发所述第一报文;所述确定单元,进一步用于当所述会话表项中的快速转发信息不可用时,基于预设的路由表转发所述第一报文,并更新所述状态字段。在所述转发报文的装置中,所述会话表项还包括路径保持字段,所述路径保持字段在所述第一报文为多通道会话的控制通道报文时填入路径保持标识;所述装置还包括:所述接收单元,进一步用于接收到第二报文;其中,所述第二报文为多通道会话的数据通道报文;查找单元,用于根据所述第二报文的三元组查找预设的多通道会话表,确定对应的五元组;其中,所述多通道会话表包括多通道会话的控制通道报文的五元组和数据通道报文的三元组的映射关系,所述三元组包括目的ip、协议号和目的端口;所述确定单元,进一步用于根据查找到的五元组查找所述会话表,确定对应的会话表项中是否携带所述路径保持标识;所述查找单元,进一步用于如果是,基于所述第二报文的目的ip查找所述会话表项中对应的快速转发信息,并将查找到的所述快速转发信息加入到基于所述第二报文的五元组新建的会话表项中。在本申请实施例中,网关设备基于接收到的第一报文新建会话表项后,确定所述第一报文的入接口是否为指定的若干个对应等价链路的接口之一,如果是,则可以将所述第一报文的入接口和所述第一报文的源mac更新至所述第一报文的反向报文的快速转发信息中;网关设备后续接收到所述第一报文的反向报文后,可以通过所述会话表项中的快速转发信息直接转发所述反向报文,使得转发所述反向报文的链路与接收所述第一报文的链路相同,避免了网络延时过大或链路不通的情况。附图说明图1是本申请示出的一种网络架构图;图2是本申请示出的一种报文转发的方法的流程图;图3是本申请示出的一种报文转发的装置的实施例框图;图4是本申请示出的一种报文转发的装置的硬件结构图。具体实施方式为了使本
技术领域
的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。参见图2,为本申请示出的一种转发报文的方法的流程图,所述方法应用于网关设备,包括以下步骤:步骤201:接收第一报文,根据所述第一报文的五元组查找预设的会话表,确定是否存在对应的会话表项。其中,上述会话表在网关设备尚未处理报文时为空,当网关设备开始处理报文后,开始向上述会话表添加报文所属会话的会话表项,上述会话表项包括五元组和快速转发信息的映射关系。上述快速转发信息可以包括出接口和下一跳mac。如下表1所示,为本申请示出的一种会话表,该会话表中存在一条会话表项,其中包括会话两个方向的报文的五元组和快速转发信息:源ip目的ip协议号源端口目的端口出接口下一跳macip1ip2协议1端口1端口2接口1mac1ip2ip1协议1端口2端口1接口2mac2表1上述第一报文是泛指接收到的任一报文,其只是为便于描述进行的命名,并不限定本申请。一方面,如果存在对应的会话表项,则说明网关设备此前已经处理过上述第一报文所属会话的报文,可以直接根据会话表项中与所述第一报文的五元组对应的快速转发信息转发所述第一报文。另一方面,网关设备此前尚未处理过上述第一报文所属会话的报文。另外,在实际应用中,可以通过套接字缓存(socketbuffer)或其它存储结构保存上述第一报文的五元组、入接口等信息,以便于后续使用。步骤202:如果不存在对应的会话表项,根据所述第一报文的五元组新建会话表项;其中,所述会话表项包括所述第一报文所属会话的五元组和快速转发信息的映射关系,所述快速转发信息包括出接口和下一跳mac。如下表2所示,为本申请示出的一种会话表,该会话表中的会话表项为基于上述第一报文建立的会话表项:源ip目的ip协议号源端口目的端口出接口下一跳macip3ip4协议1端口3端口4ip4ip3协议1端口4端口3表2其中,源ip为ip3的五元组为上述第一报文的五元组,源ip为ip4的五元组为上述第一报文的反向报文的五元组。需要指出的是,新建的会话表项中的快速转发信息为空,网关设备会在后续处理报文的过程中加入快速转发信息。步骤203:确定所述第一报文的入接口是否为指定的若干个对应等价链路的接口之一,如果是,在所述会话表项中记录所述第一报文的反向报文的快速转发信息,以使后续根据所述快速转发信息转发所述第一报文的反向报文;其中,所述反向报文的快速转发信息中的出接口和下一跳mac分别为所述第一报文的入接口和所述第一报文的源mac。网关设备可以确定上述第一报文的入接口是否为指定的若干对应等价链路的接口之一。以图1为例,网关设备的3条出口链路对于外网中的任一设备可能为等价链路,此时,网关设备上与这3条出口链路对应的接口即为指定的接口。网关设备确定第一报文的入接口是否为指定的接口,从而确定上述第一报文的应答报文是否应选择通过接收上述第一报文的链路转发。在实际应用中,网关设备上可以预配置指定的接口,以便于后续通过比较报文的入接口与上述指定的接口,确定需要路径保持的会话。其中,路径保持指的是同一会话的两个方向的报文采用一条路径来转发和接收。一方面,如果上述第一报文的入接口不是指定的对应等价链路的接口之一,则上述第一报文所属的会话无需路径保持,网关设备可以基于现有相关技术转发上述第一报文。另一方面,如果上述第一报文的入接口是指定的对应等价链路的接口之一,则上述第一报文所述的会话需要路径保持。在这种情况下,网关设备可以在基于上述第一报文建立的会话表项中记录上述第一报文的反向报文的快速转发信息。具体地,网关设备可以将上述第一报文的入接口填入上述快速转发信息中的出接口,将上述第一报文的源mac填入上述快速转发信息中的下一跳mac。如下表3所示,为表2的会话表项中已填入上述反向报文的快速转发信息的会话表:源ip目的ip协议号源端口目的端口出接口下一跳macip3ip4协议1端口3端口4ip4ip3协议1端口4端口3接口1mac1表3后续网关设备接收到上述第一报文的反向报文,根据上述反向报文的五元组查找会话表后,可以直接根据对应的快速转发信息转发上述反向报文。通过该措施,网关设备可以实现在存在等价链路的情况下,选择与接收上述第一报文相同的链路发送上述反向报文,从而避免反向报文的网络延时过大或链路不通的情况。另外,网关设备可以根据上述第一报文的目的ip查找预设的路由表,确定对应的路由表项。其中,上述路由表项包括目的ip、出接口和下一跳的映射关系。网关设备可以基于上述路由表项转发上述第一报文,并基于上述路由表项中的出接口和下一跳更新上述会话表项中上述第一报文的快速转发信息。当然,在实际应用中,网关设备可能具有包过滤或安全防护等功能,在这种情况下,网关设备在转发上述第一报文前,还需要通过其它业务流程来处理上述第一报文,并在多个业务流程处理完成后转发上述第一报文。本申请对上述业务流程不做具体限定。如下表4所示,为表3的会话表项中已填入上述第一报文的快速转发信息的会话表:源ip目的ip协议号源端口目的端口出接口下一跳macip3ip4协议1端口3端口4接口2mac2ip4ip3协议1端口4端口3接口1mac1表4通过该措施,网关设备后续接收到与上述第一报文属于同一会话且同一方向的报文后,可以直接基于上述快速转发信息直接转发,提高了转发报文的速度。在实际应用中,一些协议的会话在未达到完全状态时,网关设备无法利用上述会话的会话表项中的快速转发信息。比如:tcp(transmissioncontrolprotocol,传输控制协议)协议的会话中,在通信双方完成三次握手前,网关设备还需要根据通信双方交互的报文更新会话状态,此时网关设备无法使用快速转发信息。针对这种情况,在示出的一种实施方式中,上述快速转发信息中包括状态字段,上述状态字段中可填入可用标识或不可用标识,用以表征上述快速转发信息是否可用。如下表5所示,为本申请示出的表2增加状态字段的会话表:源ip目的ip协议号源端口目的端口出接口下一跳mac状态字段ip3ip4协议1端口3端口4接口2mac2不可用ip4ip3协议1端口4端口3接口1mac1不可用表5在这种实施方式中,网关设备基于上述第一报文的五元组在上述会话表中查找到对应的会话表项后,首先需要确定上述会话表项中的快速转发信息是否可用。一方面,如果上述会话表项中的快速转发信息可用,则网关设备可以根据上述会话表项中的快速转发信息转发上述第一报文;另一方面,如果上述会话表项中的快速转发信息不可用,则网关设备可以基于上述路由表转发上述第一报文,具体可参照现有相关技术。此外,网关设备可以在转发上述第一报文后,更新上述状态字段。具体地,网关设备可以根据会话状态确定后续上述快速转发信息是否可用,并在可用的情况下,将状态字段更新为可用标识。通过该措施,网关设备可以基于会话状态更新上述快速转发信息,从而在后续利用快速转发信息转发报文。需要指出的是,上述会话状态可以是一个宽泛的概念。比如,udp(userdatagramprotocol,用户数据报协议)协议的会话虽然没有公认的会话状态,但是udp协议的会话的正向报文发送后,网关设备在首次处理该会话的反向报文时,无法使用快速转发信息。必须在处理过上述反向报文,后续才可以使用快速转发信息。在这种情况下,可以把网关设备处理会话的正向报文、反向报文的几个阶段作为会话状态。在本申请实施例中,网关设备在处理多通道协议的会话时,若满足路径保持条件,则除了要使用接收控制通道报文的链路发送控制通道报文的反向报文以外,还可能需要用相同的链路发送多通道协议的数据通道报文。在这种情况下,上述会话表项中还包括路径保持字段,上述路径保持字段在上述第一报文为多通道会话的控制通道报文时填入路径保持标识。因此,会话表中所有满足路径保持条件的控制通道报文的会话表项均携带路径保持标识。网关设备接收到第二报文;其中,上述第二报文为多通道会话的数据通道报文。网关设备可以基于上述第二报文的三元组查找预设的多通道会话表。其中,上述多通道会话表包括控制通道报文的五元组和数据通道的三元组的映射关系,上述三元组包括目的ip、协议号和目的端口。需要指出的是,上述多通道会话表中的映射关系是在多通道会话的控制通道报文协商过程中建立的,协商完成后即可确定数据通道报文的发起方,从而确定目的ip,此外,还会协商出目的端口。具体的建立过程可以参照现有相关技术,本申请不再赘述。参见图1,若协商完成后,数据通道报文的发起方为局域网内的设备,则网关设备将数据通道报文发送至外网时,需选择接收控制通道报文的链路,从而实现路径保持。而如果数据通道报文的发起方不是局域网内的设备,网关设备通过任一链路接收到数据通道报文时,说明该链路对于上述数据通道报文所属会话的报文不会造成延时过大或不通,因此,网关设备后续仍可通过该链路发送上述数据通道报文的反向报文。在这种情况下,网关设备处理多通道数据通道报文的方式与处理普通报文的方式相同。可见,网关设备只需在数据通道报文的发起方为局域网内的设备时,在本地的多通道会话表中记录控制通道会话的五元组和数据通道三元组的映射关系。网关设备基于上述第二报文的三元组查找到对应的多通道会话表项,可以确定上述第二报文是多通道会话的数据通道报文,进一步根据查找到的多通道会话表项中的五元组查找会话表。需要指出的是,网关设备接收到报文后,基于报文的三元组查找上述多通道会话表,并在无法查找到对应的多通道会话表项后,可以将报文按照普通报文的方式处理。由于网关设备此前处理过该上述第二报文所属会话的控制通道报文,会话表中存在记录,网关设备可以查找到对应于上述五元组的会话表项,并确定该会话表项中是否携带路径保持标识。一方面,如果会话表项中未携带路径保持标识,则无需利用接收控制通道报文的链路来发送上述第二报文,直接通过路由表转发上述第二报文即可。另一方面,如果会话表项中携带路径保持标识,则需要利用接收控制通道报文的链路发送上述第二报文。网关设备可以基于上述第二报文的目的ip查找上述会话表项中对应的快速转发信息,并将查找到的上述快速转发信息加入到基于上述第二报文的五元组新建的会话表项中。如下表6所示,为本申请示出的一种会话表,该表中第一报文为多通道会话的控制通道报文:表6参见表6所示,会话表的前面两条记录为多通道会话的控制通道报文的会话表项,第3条为多通道会话的数据通道报文的会话表项。其中,数据通道报文的会话表项的快速转发信息与控制通道报文中目的ip等同的流量的快速转发信息相同。通过该措施,网关设备可以通过与接收控制通道报文相同的链路转发上述数据通道报文,避免网络延时过大或者链路不同的情况。综上所述,在本申请技术方案中,网关设备接收到第一报文后,可以基于上述第一报文的五元组新建会话表项,并判断上述第一报文是否为指定的若干个对应等价链路的接口之一,如果是,则可以确定上述第一报文所属的会话的两个方向的报文需要以同一条路径来转发和接收;因此,网关设备可以将上述第一报文的源mac和入接口填入所属会话的反向报文的快速转发信息中,从而在后续接收到上述第一报文的反向报文时,可以通过上述快速转发信息转发上述反向报文,使得发送上述反向报文和接收上述第一报文的链路相同,避免了网络延时过大或者链路不通的情况。与前述转发报文的方法的实施例相对应,本申请还提供了转发报文的装置的实施例。参见图3,为本申请示出的一种转发报文的装置的实施例框图:如图3所示,该转发报文的装置30,包括:接收单元310,用于接收第一报文,根据所述第一报文的五元组查找预设的会话表,确定是否存在对应的会话表项。新建单元320,用于如果不存在对应的会话表项,根据所述第一报文的五元组新建会话表项;其中,所述会话表项包括所述第一报文所属会话的五元组和快速转发信息的映射关系,所述快速转发信息包括出接口和下一跳mac。确定单元330,用于确定所述第一报文的入接口是否为指定的若干个对应等价链路的接口之一,如果是,在所述会话表项中记录所述第一报文的反向报文的快速转发信息,以使后续根据所述快速转发信息转发所述第一报文的反向报文;其中,所述反向报文的快速转发信息中的出接口和下一跳mac分别为所述第一报文的入接口和所述第一报文的源mac。在本例中,所述确定单元330,进一步用于:根据所述第一报文的目的ip查找预设的路由表,确定对应的路由表项;其中,所述路由表项包括目的ip、出接口和下一跳的映射关系;基于所述路由表项转发所述第一报文,并基于所述路由表项中的出接口和下一跳更新所述会话表项中所述第一报文的快速转发信息。在本例中,所述装置还包括:转发单元340(图中未示出),用于如果存在对应的会话表项,根据所述会话表项中的快速转发信息转发所述第一报文。在本例中,所述快速转发信息中包括状态字段,所述状态字段中可填入可用标识或不可用标识,用以表征所述快速转发信息是否可用;所述装置还包括:所述确定单元330,进一步用于如果存在对应的会话表项,确定所述会话表项中的快速转发信息是否可用。所述转发单元340(图中未示出),进一步用于当所述会话表项中的快速转发信息可用时,根据所述会话表项中的快速转发信息转发所述第一报文。所述确定单元330,进一步用于当所述会话表项中的快速转发信息不可用时,基于预设的路由表转发所述第一报文,并更新所述状态字段。在本例中,所述会话表项还包括路径保持字段,所述路径保持字段在所述第一报文为多通道会话的控制通道报文时填入路径保持标识;所述装置还包括:所述接收单元310,进一步用于接收到第二报文;其中,所述第二报文为多通道会话的数据通道报文。查找单元350(图中未示出),用于根据所述第二报文的三元组查找预设的多通道会话表,确定对应的五元组;其中,所述多通道会话表包括多通道会话的控制通道报文的五元组和数据通道报文的三元组的映射关系,所述三元组包括目的ip、协议号和目的端口。所述确定单元330,进一步用于根据查找到的五元组查找所述会话表,确定对应的会话表项中是否携带所述路径保持标识。所述查找单元350(图中未示出),进一步用于如果是,基于所述第二报文的目的ip查找所述会话表项中对应的快速转发信息,并将查找到的所述快速转发信息加入到基于所述第二报文的五元组新建的会话表项中。本申请转发报文的装置的实施例可以应用在网关设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在网关设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请转发报文的装置所在网关设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的网关设备通常根据该转发报文的装置的实际功能,还可以包括其他硬件,对此不再赘述。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1