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

文档序号:12553787阅读:190来源:国知局
一种报文转发的方法和装置与流程

本申请涉及网络通信技术领域,特别涉及一种报文转发的方法和装置。



背景技术:

路由器是工作在OSI参考模型第三层(网络层)的报文转发设备,通常有多个接口用于网络互连,通过转发报文实现网络之间的通信。

在网络中,对于IP报文,从源端(可以是服务器、主机、或者路由器等网络节点)开始,根据IP报文的网络层目的地址(IP地址)以及路由表决定转发信息,即出接口与下一跳地址等信息,并根据该转发信息将报文转发到下一个路由器,由最后一个路由器将报文发送给目的端,从而完成报文的路由过程。其中,路由器运行专门的路由协议来生成、维护路由表,当网络拓扑变化时,路由表也会相应更新。



技术实现要素:

有鉴于此,本申请提供一种报文转发的方法和装置,应用于路由器,用于提高实时性业务报文转发的时效性。

具体地,本申请是通过如下技术方案实现的:

一种报文转发的方法,应用于路由器,包括:

获取用户预配置的对应于目标业务的若干IP地址;其中,所述目标业务为实时性业务;

查找FIB表获取对应于预配置的各IP地址的转发信息,并将各IP地址与查找到的转发信息分别进行绑定;

当接收到对应于所述目标业务的业务报文时,查找该业务报文的目的地址是否命中预配置的所述若干IP地址;如果该业务报文的目的地址命中预配置的所述若干IP地址中的任一IP地址时,基于与该IP地址绑定的转发信息转发该业务报文。

一种报文转发的装置,应用于路由器,包括:

获取单元,用于获取用户预配置的对应于目标业务的若干IP地址;其中,所述目标业务为实时性业务;

查找单元,用于查找FIB表获取对应于预配置的各IP地址的转发信息,并将各IP地址与查找到的转发信息分别进行绑定;

转发单元,用于当接收到对应于所述目标业务的业务报文时,查找该业务报文的目的地址是否命中预配置的所述若干IP地址;如果该业务报文的目的地址命中预配置的所述若干IP地址中的任一IP地址时,基于与该IP地址绑定的转发信息转发该业务报文。

由于路由器为预配置的若干IP地址提前学习到了与所述若干IP地址分别对应的转发信息,并将转发信息与对应的IP地址进行了绑定,因此当路由器接收到实时性业务的报文时,通过查找该绑定关系,就可以快速转发该报文,从而提升了报文转发的时效性。

附图说明

图1为本申请一示例性实施例示出的一种报文转发的方法流程图;

图2为本申请一示例性实施例示出的一种缓存表项组织成二叉树的示意图;

图3为本申请一种报文转发的装置所在路由器的一种硬件结构图;

图4为本申请一示例性实施例示出的一种报文转发的装置。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

相关技术中,当路由器接收到报文时,首先可以根据该报文的目的IP地址查找缓存器中的路由缓存,其中,所述路由缓存包含若干个缓存表项,所述缓存表项为基于报文的目的IP地址生成的具有生命时长的转发信息。在将该报文的目的IP地址与路由缓存中缓存表项进行匹配的过程中,判断所述路由缓存中是否存在匹配成功的缓存表项,如果所述路由缓存中存在匹配成功的缓存表项,则提取出该缓存表项对应的转发信息,并基于该转发信息将该报文进行转发。

如果所述路由缓存中不存在与该报文的目的IP地址相匹配的缓存表项,在这样的情况下,可以根据该报文的目的IP地址查找FIB(Forward Information Base,转发信息库),将所述目的IP地址与FIB中的IP路由表进行匹配,当匹配成功时,提取出对应的转发信息,然后可以基于该转发信息以及IP地址创建路由缓存表项,接着根据该转发信息将报文进行转发。如果所述目的IP地址与FIB中的IP路由表匹配不成功,则可以将报文进行丢弃。

然而,相关技术中存在以下问题。

由于缓存表项有生命时长,当缓存表项长时间没有被使用,直到生命时长被耗尽,在这样的情况下,所述缓存表项会自动老化掉,然后从路由缓存中释放存储空间给其余缓存表项进行缓存。当该老化掉的缓存表项对应的报文再次需要进行转发时,由于此时路由缓存中没有该报文的缓存表项,因此需要重新在FIB中查找对应的转发信息,重新创建与该报文中的目的IP地址对应的缓存表项,然而,在FIB中的路由量比较大的情况下,在FIB中查找对应的转发信息这一过程需要花费一定的时间。因此对于那些需要实时性比较高的报文,在FIB中查找转发信息并创建缓存表项这一过程,会降低设备对这些报文的转发效率。

为了解决相关技术中的问题,本申请提供了一种报文转发的方法,应用于路由器,通过获取用户预配置的对应于目标业务的若干IP地址;其中,所述目标业务为实时性业务;查找FIB表获取对应于预配置的各IP地址的转发信息,并将各IP地址与查找到的转发信息分别进行绑定;当接收到对应于所述目标业务的业务报文时,查找该业务报文的目的地址是否命中预配置的所述若干IP地址;如果该业务报文的目的地址命中预配置的所述若干IP地址中的任一IP地址时,基于与该IP地址绑定的转发信息转发该业务报文。

由于路由器为预配置的若干IP地址提前学习到了与所述若干IP地址分别对应的转发信息,并将转发信息与对应的IP地址进行了绑定,因此当路由器接收到实时性业务的报文时,通过查找该绑定关系,就可以快速转发该报文,从而提升了报文转发的时效性。

请参见图1,图1为本申请一示例性实施例示出的一种报文转发的方法流程图,应用于路由器,具体执行以下步骤:

步骤101:获取用户预配置的对应于目标业务的若干IP地址;其中,所述目标业务为实时性业务;

步骤102:查找FIB表获取对应于预配置的各IP地址的转发信息,并将各IP地址与查找到的转发信息分别进行绑定;

步骤103:当接收到对应于所述目标业务的业务报文时,查找该业务报文的目的地址是否命中预配置的所述若干IP地址;如果该业务报文的目的地址命中预配置的所述若干IP地址中的任一IP地址时,基于与该IP地址绑定的转发信息转发该业务报文。

上述FIB表中包含对应于各IP地址的转发信息,所述转发信息包括下一跳,出接口等。其中FIB表中的信息随着路由表中的路由表项的变化而变化,当路由表中的路由表项发生变化,FIB表会进行表项的更新。

在本申请示出的实施方式中,用户可以根据实时性业务,获取对应于该实时性业务的若干IP地址。然后可以从FIB表中查找对应于获取到的若干IP地址的转发信息。根据若干IP地址以及对应于若干IP地址的转发信息,将IP地址与对应的转发信息进行绑定,生成IP地址与对应的转发信息的缓存表项。然后将该缓存表项缓存于内存中。

当路由器接收到业务报文时,路由器可以获取该业务报文的目的IP地址。路由器获取到该业务报文的目的IP地址后,可以根据该目的IP地址,遍历内存中的缓存表项,查找缓存表项中的IP地址与该目的IP地址相同的缓存表项。如果查找到对应的缓存表项,那么获取该缓存表项中对应于该目的IP地址的转发信息。路由获取到对应的转发信息后,可以基于该转发信息将该业务报文转发出去。

如果内存中没有查找到对应的缓存表项,那么路由器可以根据该业务报文的目的IP地址,在FIB表中查找对应于该目的IP地址的转发信息。如果查找不到对应于该目的IP地址的转发信息,则将该业务报文进行丢弃。

如果查找到对应于该目的IP地址的转发信息,则基于该转发信息将该业务报文通过对应的出接口转发出去。该业务报文转发出去后,路由器可以将该目的IP地址与查找到的对应于该目的IP地址的转发信息进行绑定,生成对应的缓存表项,然后将该缓存表项缓存于内存中,以使路由器接收到相同目的IP地址的业务报文时,可以直接获取到对应的转发信息,然后基于该转发信息将接收到的业务报文转发出去。

通过这种方式,当路由器接收到实时性业务的报文时,路由器可以通过获取缓存表项中IP地址与转发消息的绑定关系,然后将该实时性业务的报文转发出去,从而可以提高转发实时性业务的报文的时效性。

当网络拓扑发生变化时,路由器可以重新进行路由学习,然后更新路由表中的路由表项。由于FIB表中的表项是基于路由表而生成的,当路由表中的路由表项发生变化时,路由器可以重新进行学习,更新FIB表中的表项。

在这样的情况下,与预配置的IP地址绑定的转发信息与更新后的FIB表中记录的对应的转发信息可能已经不一样了。如果路由器接收到的业务报文的目的IP地址命中某一条缓存表项,该缓存表项中的转发信息与更新后的FIB表中记录的对应的转发信息也不一样,那么此时仍然按照缓存表项中的转发信息将接收到业务报文进行转发,那么会出现错误转发的情况。

在示出的一种实施方式中,当网络拓扑发生变化,路由器重新进行了路由学习,更新了路由表中的路由表项,并基于更新后的路由表项,更新FIB表中的转发信息。然后路由器可以基于更新后的所述FIB表中的转发信息针对为预配置的各IP地址绑定的转发信息进行更新。

在本申请示出的一种实施方式中,当路由表中任一路由表项发生更新时,路由器可以遍历内存中的缓存表项,然后获取缓存表项中的IP地址以及与该IP地址绑定的转发信息。路由器获取到IP地址以及与该IP地址绑定的转发信息后,路由器可以基于该IP地址在更新后的FIB表中获取与该IP地址对应的转发信息。然后,路由器可以判断获取到的转发信息与该IP地址绑定的转发信息是否一样。

如果获取到的转发信息与该IP地址绑定的转发信息不一样,那么路由器可以根据获取到的转发信息更新与该IP地址绑定的转发信息。如果获取到的转发信息与该IP地址绑定的转发信息相同,那么保持与该IP地址绑定的转发信息。

上述示出的实施方式对于预配置的IP地址的数量比较小的情况比较适用,当然该实施方式也可以用于预配置的IP地址的数量比较大的情况。为了提高预配置的IP地址的数量比较大的情况,本申请提供了另一种比较适用于预配置的IP地址的数量比较大的实施方式。

请参见图2,图2为本申请一示例性实施例示出的一种缓存表项组织成二叉树的示意图。

在本申请示出的另一种实施方式中,用户可以预先基于若干IP地址中隶属同一个子网的IP地址的缓存表项,组织在以该子网为父节点的二叉树中,如图2所示。

当路由表中任一路由表项发生更新时,路由器可以基于该发生更新的路由表项的IP地址,在二叉树上查找与该IP地址所属子网对应的父节点。该父节点包含的子树中包含了若干缓存表项。

当路由器查找到与该IP地址所属子网对应的父节点后,路由器可以遍历该父节点所在的子树中的各缓存表项。路由器读取到缓存表项后,可以从该缓存表项中获取IP地址以及与该IP地址绑定的转发信息。路由器获取到与该IP地址绑定的转发信息后,从更新后的FIB表获取与该IP地址对应的转发信息。然后路由器可以判断与该IP地址绑定的转发信息与获取到的转发信息是否相同。

如果与该IP地址绑定的转发信息与获取到的转发信息不相同,在这样的情况下,路由器可以根据获取到的转发信息更新与该IP地址绑定的转发信息。如果与该IP地址绑定的转发信息与获取到的转发信息相同,在这样的情况下,与该IP地址绑定的转发信息不需要更新,路由器可以继续读取下一个缓存表项,直到遍历完该节点中所有的缓存表项。

上述示出的实施方式中,路由器只需要遍历与发生变化的路由表项相关的缓存表项,因此可以减少路由器遍历的缓存表项的数量,从而可以提高路由器的工作效率。

在示出的一种实施方式中,与预配置的IP地址对应的转发信息进行更新后,路由器可以将接收到的业务报文基于目的IP地址与更新后的缓存表项进行匹配。当接收到业务报文的目的IP地址命中任一缓存表项,那么路由器可以将该业务报文基于更新后的转发信息转发该业务报文。

由以上本申请提供的技术方案可见,通过获取用户预配置的对应于目标业务的若干IP地址;其中,所述目标业务为实时性业务;查找FIB表获取对应于预配置的各IP地址的转发信息,并将各IP地址与查找到的转发信息分别进行绑定;当接收到对应于所述目标业务的业务报文时,查找该业务报文的目的地址是否命中预配置的所述若干IP地址;如果该业务报文的目的地址命中预配置的所述若干IP地址中的任一IP地址时,基于与该IP地址绑定的转发信息转发该业务报文。

一方面,由于路由器为预配置的若干IP地址提前学习到了与所述若干IP地址分别对应的转发信息,并将转发信息与对应的IP地址进行了绑定,因此当路由器接收到实时性业务的报文时,通过查找该绑定关系,就可以快速转发该报文,从而提升了报文转发的时效性。

另一方面,当路由表中的任一路由表项发生变化时,路由器重新进行路由学习,更新路由表项并基于更新后的路由表项更新FIB表中的转发信息。然后将与预配置的IP地址对应的转发信息基于更新后的FIB表中的转发信息进行更新。因此当路由器接收到的实时性业务报文的目的IP地址命中更新后的缓存表项时,该实时性业务报文可以基于正确的转发信息进行正确转发。

与前述一种报文转发的方法的实施例相对应,本申请还提供了一种报文转发的装置的实施例。

本申请一种报文转发的装置的实施例可以应用在路由器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在路由器的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本申请一种报文转发的装置所在路由器的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的路由器通常根据该报文转发的实际功能,还可以包括其他硬件,对此不再赘述。

请参考图4,图4为本申请一示例性实施例示出的一种报文转发的装置,应用于路由器,所述装置包括:获取单元410,查找单元420,转发单元430。

其中,获取单元410,用于获取用户预配置的对应于目标业务的若干IP地址;其中,所述目标业务为实时性业务;

查找单元420,用于查找FIB表获取对应于预配置的各IP地址的转发信息,并将各IP地址与查找到的转发信息分别进行绑定;

转发单元430,用于当接收到对应于所述目标业务的业务报文时,查找该业务报文的目的地址是否命中预配置的所述若干IP地址;如果该业务报文的目的地址命中预配置的所述若干IP地址中的任一IP地址时,基于与该IP地址绑定的转发信息转发该业务报文。

在本申请示出的实施例中,所述装置还包括:

更新单元,用于当网络拓扑发生变化,重新进行路由表项学习并对FIB表进行更新;基于更新后的所述FIB表中的转发信息针对为预配置的各IP地址绑定的转发信息进行更新。

在示出的一种实施方式中,所述更新单元具体用于:

当路由表中任一路由表项发生更新时,遍历查找为预配置的各IP地址绑定的转发信息;

基于更新后的所述FIB表中的转发信息,判断所述绑定的转发信息是否发生变化;如果所述绑定的转发信息发生变化,基于更新后的所述FIB表中的转发信息,更新所述绑定的转发信息。

在另一种实施方式中,所述装置还包括:

组织单元,用于将预配置的所述若干IP地址中,隶属于同一子网的IP地址以及绑定的转发信息,组织在以所属子网为父节点的二叉树中。

其中,所述更新单元具体用于:

当路由表中任一路由表项发生更新时,基于该路由表项的IP地址,在二叉树上查找与该IP地址所属子网对应的二叉树父节点;

遍历查找到的父节点所在的子树中的每一个预配置的IP地址,基于更新后的FIB表,重新查找与各IP地址对应的转发信息;

判断重新查找到的与各IP地址对应的转发信息是否更新,如果所述转发信息发生更新,基于所述转发信息更新二叉树中与该IP地址绑定的转发信息。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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