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

文档序号:14253006阅读:147来源:国知局
报文转发方法和装置与流程

本公开涉及通信技术领域,尤其涉及一种报文转发方法和装置。



背景技术:

非统一内存架构(英文:non-uniformmemoryarchitecture,简称:numa)架构包括多个numa节点(node),每个numa节点中包含一组中央处理器(英文:centralprocessingunit,简称:cpu)、内存资源以及网络适配器(英文:networkinterfacecard,简称:nic)等。cpu对内存资源的访问速度要远高对于非内存的访问速度,因为访问非内存需要跨越qpi总线。

目前,在numa架构下,numa节点收到一条数据流的第一个报文后,会根据该报文的目的ip地址查找转发表,确定一个最佳出接口;然后通过最佳出接口转发该报文,并创建快速转发表项,以便接收到该数据流的后续报文的numa节点可以直接通过匹配快速转发表中相应的快速转发表项进行转发。

但是,在上述这种报文转发方式中,在最佳出接口不是接收到该数据流的报文的numa节点上的接口时,需要跨numa节点转发报文,严重影响报文转发性能。



技术实现要素:

有鉴于此,本公开提出了一种报文转发方法和装置。

根据本公开的一方面,提供了一种报文转发方法,所述方法应用于非统一内存架构numa节点,所述方法包括:

在接收到第一报文时,查找快速转发表中是否存在与所述第一报文匹配的第一快速转发表项;

若是,在所述第一快速转发表项对应的第一虚拟下一跳vn表项中的出接口为物理出接口时,从所述第一vn表项中选取所述numa节点对应的物理出接口,所述第一vn表项包括多个等价的物理出接口及其对应的numa节点;

通过所选取的物理出接口转发所述第一报文。

根据本公开的另一方面,提供了一种报文转发装置,所述装置应用于非统一内存架构numa节点,所述装置包括:

查找模块,用于在接收到第一报文时,查找快速转发表中是否存在与所述第一报文匹配的第一快速转发表项;

选取模块,用于在所述查找模块查找的结果为是,且在所述第一快速转发表项对应的第一虚拟下一跳vn表项中的出接口为物理出接口时,从所述第一vn表项中选取所述numa节点对应的物理出接口,所述第一vn表项包括多个等价的物理出接口及其对应的numa节点;

第一转发模块,用于通过所述选取模块所选取的物理出接口转发所述第一报文。

在本公开中,依据快速转发表项对应的vn表项,选取收到与快速转发表项匹配的报文的numa节点对应的物理出接口来转发该报文,可以保证不同numa节点将接收到的同一数据流的报文通过各自numa节点上的物理出接口转发,以及不同numa节点将需要汇聚到同一隧道的报文通过各自numa节点上的物理出接口转发,避免了跨numa节点转发,进而提高了报文转发性能。

根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。

图1示出根据本公开一实施例的报文转发方法的流程图。

图2示出根据本公开一实施例的numa节点转发报文的报文流向示意图。

图3示出根据本公开一实施例的依据vn表项选取出接口的选取走向示意图。

图4示出根据本公开一实施例的报文转发装置的结构框图。

图5示出根据本公开一实施例的报文转发装置的另一结构框图。

图6是根据一示例性实施例示出的一种用于报文转发装置的框图。

具体实施方式

以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。

图1示出根据本公开一实施例的报文转发方法的流程图。如图1所示,该报文转发方法应用于numa节点,该方法包括:

步骤101、在接收到第一报文时,查找快速转发表(ipfast-forwarding,ipfs)中是否存在与所述第一报文匹配的快速转发表项;

步骤102、若是,在所述第一快速转发表项对应的第一虚拟下一跳(virtualnexthop,vn)表项中的出接口为物理出接口时,从所述第一vn表项中选取所述numa节点对应的物理出接口,所述第一述vn表项包括多个等价的物理出接口及其对应的numa节点。

步骤103、通过所选取的物理出接口转发所述第一报文。

上述步骤101~步骤103是numa节点在接收到某条数据流的非首个报文且不需要进行隧道封装后转发的情形下的处理流程,可以保证不同numa节点在接收到该条数据流的后续报文时均可通过各自本地物理接口转发出去。

在一种可能的实现方式中,该方法还包括:在查找出快速转发表中不存在与所述第一报文匹配的快速转发表项,且根据转发表(forwardinginfobase,fib)确定出所述第一报文的出接口为物理出接口时,根据所述转发表转发所述第一报文,并创建第二快速转发表项及其对应的第二vn表项。此流程是numa节点在接收到该条数据流的首个报文且不需要进行隧道封装后转发时的处理流程。在此流程中,numa节点如何根据转发表转发所述第一报文为现有技术,在此不再详述。

在第二快速转发表项中记录第二vn表项指针,第二vn表项包括多个等价的物理出接口(例如以接口标识的方式体现)及其对应的numa节点(例如以节点标识的方式体现)。这样,就可以在vn表项中记录形成多重等价路径(equal-costmultipath,ecmp)的每个出接口及其对应的numa节点的信息,进而实现快速转发表支持等价路由转发。

在一种可能的实现方式中,该方法还包括:在查找出快速转发表中存在与所述第一报文匹配的第一快速转发表项时,如果所述第一快速转发表项对应的第一vn表项中的出接口为第一隧道,对所述第一报文进行所述第一隧道对应的协议封装,得到第二报文;从所述快速转发表中与所述第二报文匹配的第三快速转发表项对应的第三vn表项中选取所述numa节点对应的物理出接口;通过所选取的物理出接口转发所述第二报文。此流程是numa节点在接收到该条数据流的非首个报文且需要进行隧道封装后转发的情形下的处理流程。在此流程中,第三vn表项仍然包括多个等价的物理出接口及其对应的numa节点。此流程可以保证不同numa节点在接收到相同数据流或者不同数据流的后续报文时均可通过各自本地物理接口转发出去。

在一种可能的实现方式中,该方法还包括:在查找出所述快速转发表中不存在与所述第一报文匹配的第一快速转发表项,且根据转发表确定出所述第一报文的出接口为第二隧道时,对所述第一报文进行所述第二隧道对应的协议封装,得到第三报文,并创建第四快速转发表项及其对应的第四vn表项;根据所述转发表转发所述第三报文,并创建第五快速转发表项及其对应的第五vn表项。此流程是numa节点在接收到该条数据流的首个报文且需要进行隧道封装后转发的情形下的处理流程。在此流程中,第四vn表项包括所述第二隧道,第五vn表项仍然包括多个等价的物理出接口及其对应的numa节点,对于numa节点如何根据转发表转发所述第三报文为现有技术,在此不再详述。

下面结合具体例子对报文转发方法进行详细说明:

以报文不需要进行隧道封装后转发为例:

假设一个numa节点通过接口1接收到一条数据流的一个非首个报文(报文a),查找快速转发表中是否存在与报文a匹配的快速转发表项,由于该数据流的首个报文已根据转发表转发出去(具体转发过程为现有技术,在此不再详述),已存在该数据流的快速转发表项,所以查找结果为存在;之后,在查找出与报文a匹配的快速转发表项对应的vn表项中的出接口为物理接口时,从快速转发表中与报文a匹配的快速转发表项对应的vn表项中选取该numa节点对应的物理出接口(接口b),依据对应vn表项中接口b的邻接信息,将报文a通过接口b转发出去。

假设另一个numa节点通过接口2接收到该条数据流的另一个非首个报文(报文b),查找快速转发表中是否存在与报文b匹配的快速转发表项,由于该数据流的首个报文已根据转发表转发出去(具体转发过程为现有技术,在此不再详述),已存在该数据流的快速转发表项,所以查找结果为存在;之后,在查找出与报文b匹配的快速转发表项对应的vn表项中的出接口为物理接口时,从快速转发表中与报文b匹配的快速转发表项对应的vn表项中选取该另一个numa节点对应的物理出接口(接口c),依据对应vn表项中接口c的邻接信息,将报文b通过接口c转发出去。

以报文需要进行隧道封装后转发为例:

如图2和图3所示,假设numa节点(numa0)通过接口nic1a接收到一条数据流的一个非首个报文(报文1),查找快速转发表中是否存在与报文1匹配的快速转发表项,由于该数据流的首个报文已根据转发表转发出去(具体转发过程为现有技术,在此不再详述),已存在该数据流的快速转发表项,所以查找结果为存在;之后,在查找出与报文1匹配的快速转发表项对应的vn表项中的出接口为第一隧道时,对报文1进行第一隧道对应的协议封装,得到报文3;最后,从快速转发表中与报文3匹配的快速转发表项对应的vn表项中选取numa0对应的出接口(接口nic1b),依据对应vn表项中接口nic1b的邻接信息1,将报文3通过接口nic1b转发出去。

假设numa1通过接口nic2a接收到另一条数据流的非首个报文(报文2),查找快速转发表中是否存在与报文2匹配的快速转发表项,由于该数据流的首个报文已根据转发表转发出去,已存在该数据流的快速转发表项,所以查找结果为存在;之后,在查找出与报文2匹配的快速转发表项对应的vn表项中的出接口也为第一隧道时,对报文2进行第一隧道对应的协议封装,得到报文3;最后,从快速转发表中与报文3匹配的快速转发表项对应的vn表项中选取numa1对应的出接口(接口nic2b),依据对应vn表项中接口nic2b的邻接信息2,将报文3通过接口nic2b转发出去。

当然,报文1和报文2也可以是同一数据流的报文。

可见,在本实施例的报文转发方法中,依据快速转发表项对应的vn表项,选取收到与快速转发表项匹配的报文的numa节点对应的物理出接口来转发该报文,可以保证不同numa节点将接收到的同一数据流的报文通过各自numa节点上的物理出接口转发,以及不同numa节点将需要汇聚到同一隧道的报文通过各自numa节点上的物理出接口转发,避免了跨numa节点的转发,进而提高报文转发性能。

图4示出根据本公开一实施例的报文转发装置的结构框图。如图4所示,该应用于numa节点,所述装置包括:

查找模块41,用于在接收到第一报文时,查找快速转发表中是否存在与所述第一报文匹配的第一快速转发表项;

选取模块43,用于在所述查找模块41查找出快速转发表中存在与所述第一报文匹配的第一快速转发表项,且在所述第一快速转发表项对应的第一虚拟下一跳vn表项中的出接口为物理出接口时,从所述第一vn表项中选取所述numa节点对应的物理出接口,所述第一vn表项包括多个等价的物理出接口及其对应的numa节点;

第一转发模块45,用于通过所选取的物理出接口转发所述报文。

在一种可能的实现方式中,如图5所示,所述装置还包括:

第二转发模块47,用于在所述查找模块41查找出快速转发表中不存在与所述第一报文匹配的快速转发表项,且根据转发表确定出所述第一报文的出接口为物理出接口时,根据所述转发表转发所述第一报文,并创建第二快速转发表项及其对应的第二vn表项,所述第二vn表项包括多个等价的物理出接口及其对应的numa节点。

在一种可能的实现方式中,所述装置还包括:

封装模块49,用于在所述查找模块41查找出快速转发表中存在与所述第一报文匹配的快速转发表项时,如果所述第一快速转发表项对应的第一vn表项中的出接口为第一隧道,对所述第一报文进行所述第一隧道对应的协议封装,得到第二报文;

所述选取模块43,还用于从所述快速转发表中与所述第二报文匹配的第三快速转发表项对应的第三vn表项中选取所述numa节点对应的物理出接口,所述第三vn表项包括多个等价的物理出接口及其对应的numa节点;

所述第一转发模块45,还用于通过所述选取模块所选取的物理出接口转发所述第二报文。

在一种可能的实现方式中,所述装置还包括:

第三转发模块51,用于在所述查找模块41查找出所述快速转发表中不存在与所述第一报文匹配的第一快速转发表项,且根据转发表确定出所述第一报文的出接口为第二隧道时,对所述第一报文进行所述第二隧道对应的协议封装,得到第三报文,并创建第四快速转发表项及其对应的第四vn表项,所述第四vn表项包括所述第二隧道;根据所述转发表转发所述第三报文,并创建第五快速转发表项及其对应的第五vn表项,所述第五vn表项包括多个等价的物理出接口及其对应的numa节点第三转发模块。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图6是根据一示例性实施例示出的一种用于报文转发装置的框图。参照图6,该装置600可包括处理器601、存储有机器可执行指令的机器可读存储介质602。处理器601与机器可读存储介质602可经由系统总线603通信。并且,处理器601通过读取机器可读存储介质602中与报文转发逻辑对应的机器可执行指令以执行上文所述的报文转发方法。

本文中提到的机器可读存储介质602可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

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