CN105049359A - 用于分布式路由表查找的技术 - Google Patents

用于分布式路由表查找的技术 Download PDF

Info

Publication number
CN105049359A
CN105049359A CN201510136802.XA CN201510136802A CN105049359A CN 105049359 A CN105049359 A CN 105049359A CN 201510136802 A CN201510136802 A CN 201510136802A CN 105049359 A CN105049359 A CN 105049359A
Authority
CN
China
Prior art keywords
computing node
network packet
distribution router
address
destination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510136802.XA
Other languages
English (en)
Other versions
CN105049359B (zh
Inventor
S·戈布瑞尔
R·王
C·麦西奥科
T-Y·泰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN105049359A publication Critical patent/CN105049359A/zh
Application granted granted Critical
Publication of CN105049359B publication Critical patent/CN105049359B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/021Ensuring consistency of routing table updates, e.g. by using epoch numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application

Abstract

用于经由分布式路由器的分布式表查找的技术包括入口计算节点、中间计算节点以及出口计算节点。该分布式路由器的每个计算节点包括用于存储从该分布式路由器的路由表获得的不同网络路由条目集合的转发表。该入口计算节点基于包括在所接收到的网络分组中的目的地地址生成散列密钥。该散列密钥标识该分布式路由器的存储包括与该目的地地址相对应的网络路由条目的转发表的中间计算节点。该入口计算节点将所接收到的网络分组转发到该中间计算节点以便路由。该中间计算节点接收所转发的网络分组、确定该网络分组的目的地地址以及确定该出口计算节点以便从该分布式路由器传输该网络分组。

Description

用于分布式路由表查找的技术
背景
现代计算设备正在变成个人、商务以及社交用途的非常普遍的工具。这样,许多现代计算设备能够连接到各种数据网络,包括互联网和公司内联网,以便通过这种网络检索并接收数据通信。经常,连接到一个网络的计算设备需要与在不同网络上连接的计算设备通信。
路由器是在两个或更多个网络之间转发数据通信的设备。为了这样做,路由器通常包括用于确定传入网络分组所应当转发到的具体网络的路由表。传统的核心路由器是被配置成用于支持全部在线速运行的上百个外部端口以及具有上百万个条目的路由表的专用硬件设备。然而,这种核心路由器经常是昂贵的并且通常要求使用专有硬件组件。另外,与其他类型的路由器(诸如例如基于软件的路由器)相比,基于硬件的路由器经常包括更少的功能并且更难以配置和更新。
软件路由器或路由器集群是被配置成用于一起操作以便在两个或更多个网络或其他端点之间路由网络分组的一组互连计算节点(例如,现成服务器、桌上计算机等等)。为了以这种方式操作,软件路由器的每个计算节点通常必须保持整个路由表的副本。这样,随着连接到软件路由器的网络数量增长,路由表的数量也随之增长。结果是,路由表变得更大,执行路由表查找需要越多时间和计算资源(例如,存储器、存储设备、处理循环等等)。
附图简要描述
通过举例而非通过限制在附图中示出在此描述的概念。为了说明简单和清晰,图中所示元素无需按比例绘制。当认为合适时,已经在附图中重复参照标号以便表明相应的或类似的元素。
图1是用于经由包括多个计算节点的分布式路由器的分布式路由表查找的系统的至少一个实施例的简化框图;
图2是图1的系统的分布式路由器的计算节点的至少一个实施例的简化框图;
图3是图1的系统的分布式路由器的计算节点的环境的至少一个实施例的简化框图;
图4是图1的系统的分布式路由器的入口计算节点确定中间计算节点所使用的流过滤器表的说明性实施例;
图5是图1的系统的分布式路由器的入口计算节点可执行的用于分布式路由表查找的方法的至少一个实施例的简化流程图;
图6是图1的系统的分布式路由器的中间计算节点可执行的用于分布式路由表查找的方法的至少一个实施例的简化流程图;
图7是经由分布式路由器的入口计算节点的所接收到的网络分组的直接路由的系统的说明性实施例;以及
图8是图7的系统的分布式路由器的入口计算节点可执行的用于所接收到的网络分组的直接路由的方法的至少一个实施例的简化流程图。
附图详细描述
尽管本公开的概念可受到各种修改和替代形式,已经通过举例在附图中示出并且将在此详细地描述其特定实施例。然而,应当理解的是不旨在将本公开的概念限制为所公开的具体形式,而是相反,本发明涵盖与本公开和所附权利要求书一致的所有修改、等效方案和替代方案。
在说明书中对“一个实施例”、“实施例”、“说明性实施例”等等的引用表明所描述的实施例可包括具体的特征、结构或特性,但是每个实施例可无需包括该具体的特征、结构或特性。而且,这种短语无需指代相同的实施例。而且,当结合实施例描述具体的特征、结构或特性时,认为其在本领域普通技术人员结合显式地或未显式地描述的其他实施例实施这种特征、结构或特性的知识范围内。此外,应当认识到列表中包括的“A、B和C中的至少一个”形式的项目可意味着(A);(B);(C);(A和B);(A和C);(B和C);或者(A、B和C)。类似地,以“A、B、或C中的至少一个”的形式列出的项目可指(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。
在某些情况下,可在硬件、固件、软件、或其任何组合中实现所公开的实施例。所公开的实施例还可被实现为由一个或多个瞬态或非瞬态机器可读(例如计算机可读)存储介质携带或存储在其上的指令,这些指令可由一个或多个处理器读取并执行。机器可读存储介质可被实施为任何用于存储或传输机器可读形式的信息的存储设备、机构、或其他物理结构(例如,易失性或非易失性存储器、介质盘、或其他介质设备)。
在附图中,可用特定安排和/或排序示出某些结构或方法特征。然而,应当认识到可不要求这种特定安排和/或排序。而是,在某些实施例中,可用与说明性附图中示出的不同的方式和/或顺序安排这种特征。此外,具体附图中包括结构或方法特征不意味着暗示在所有实施例中要求这种特征以及在某些实施例中可不包括这种特征或者这种特征可与其他特征组合。
现在参照图1和图2,在说明性实施例中,用于经由分布式路由器102(例如,集群路由器)的多个计算节点110的分布式路由表查找的系统100。每个计算节点110可通信地耦合到任何数量的不同网络和/或子网。这样,任何计算节点110可接收源自一个网络的网络分组,并且可基于分布式路由器102的路由表将网络分组转发到不同的网络。在某些实施例中,在该多个计算节点110之间划分根据分布式路由器102的路由表来路由网络分组的责任。也就是,分布式路由器102的每个计算节点110可负责查找分布式路由器102的全局路由表222的网络路由条目的不同部分(见图2)。
在说明性实施例中,分布式路由器102包括“入口(ingress)”计算节点112、“反弹(bounce)”或“中间(intermediate)”计算节点114以及“出口(egress)”计算节点116。当然,在某些实施例中,系统100的分布式路由器102还可包括一个或多个其他计算节点110(例如,计算节点118)。在使用时,分布式路由器102的入口计算节点112从位于分布式路由器102外部的源计算设备(例如,网络交换机、网络路由器、发源计算设备等等)接收网络分组104。应当认识到在图1中说明性地示出的任何其他计算节点110可以替代地从源计算设备接收网络分组104。这样,接收网络分组的具体计算节点110可被指定为“入口”计算节点112并且在以下描述中被如此称呼。
当接收到网络分组104时,入口计算节点112确定负责确定将所接收到的网络分组104路由到哪儿的反弹计算节点114。也就是,入口计算节点112确定其他计算节点110中的哪一个应当执行针对具体分组的路由表查找。为了这样做,在某些实施例中,入口计算节点112基于所接收到的网络分组104的目的地互联网协议(IP)地址生成散列密钥。在某些实施例中,该散列密钥可被实现为目的地IP地址的二进制表示的两个最低有效位(例如,“00”、“01”、“10”或“11”)。将所生成的散列密钥与一个或多个流过滤器224相比较(见图2),该流过滤器包括从在分布式路由器102的路由表222中维护的网络路由条目的二进制表示的两个最低有效位生成的相应索引散列密钥(例如,“00”、“01”、“10”或“11”)。每个索引散列密钥与分布式路由器102的不同计算节点110(例如,反弹节点)相对应。这样,入口计算节点112确定具体的反弹计算节点114,基于该反弹计算节点,计算节点110与同从目的地IP地址生成的散列密钥匹配的索引散列密钥相关联。入口计算节点112然后将所接收到的网络分组104转发到所确定的反弹计算节点114而不执行路由表查找。应当认识到,在说明性实施例中,尽管入口计算节点112基于所接收到的网络分组104的目的地IP地址生成散列密钥,入口计算节点112可基于来自所接收到的网络分组104的任何其他类型的信息和/或信息组合生成该散列密钥。例如,在其他实施例中,由入口计算节点112生成的散列密钥可被实现为所接收到的网络分组104的5元组(目的地IP地址、目的地端口号、源IP地址、源端口号以及协议)的全部或一部分。
当接收到网络分组104时,反弹计算节点114基于目的地IP地址确定将网络分组104路由到哪儿。为了这样做,反弹计算节点114从存储在反弹计算节点114的高速缓存存储器216中的转发表218查找相应的网络路由条目(见图2)。如以下更详细讨论的,反弹计算节点114的转发表218包括从分布式路由器102的路由表222获得的网络路由条目集合(例如,子集、部分等等)。在反弹计算节点114的转发表218中维护的网络路由条目集合不同于存储在其他计算节点110的转发表218内的其他网络路由条目集合(例如,子集、部分等等)。反弹计算节点114确定负责网络分组104从分布式路由器102的离开的具体出口计算节点116。出口计算节点116然后将网络分组104传输出分布式路由器102。应当认识到,仅在负责路由表222的不同部分的反弹计算节点114上执行昂贵的查找操作,可保留各个计算节点110(或者分布式路由器102整体)的资源(例如,存储器、存储设备、处理循环等等)和/或可减少等待时间。也就是,通过不在分布式路由器102中接收网络分组104的每个计算节点110(例如,入口计算节点112、反弹计算节点114以及出口计算节点116)上执行查找操作,可改善分布式路由器102的整体性能。
分布式路由器102(例如,集群路由器)可被实现为一致用于执行在此描述的功能的一组单独计算节点110。如图1中说明性所示,分布式路由器102可包括根据全连接网格联网拓扑通信地耦合到彼此的多个计算节点110。然而,应当认识到,每个计算节点110可根据任何其他联网拓扑通信地耦合到其他计算节点110。例如,每个计算节点110可尤其根据交换网络拓扑、Clos网络拓扑、总线网络拓扑、星型网络拓扑、环形网络拓扑和/或其任何组合通信地耦合到其他计算节点110。分布式路由器102的每个计算节点110可被配置成用于基于从位于分布式路由器102外部的计算设备接收网络分组104的具体计算节点110(例如,入口计算节点112)、负责确定将所接收到的网络分组104路由到哪儿的具体计算节点110(例如,反弹计算节点114)、以及被确定用于使网络分组104从分布式路由器102离开的具体计算节点110(例如,出口计算节点116)执行分布式路由器102的路由操作的任何部分(例如,进入操作、路由操作、离开操作等等)。
分布式路由器102可维护全局路由表,该全局路由表包括从在分布式路由器102的计算节点110和位于分布式路由器102外部的其他计算设备(例如,网络交换机、网络路由器、发源计算设备等等)之间的当前和/或历史网络通信和/或连接获得的多个网络路由条目。如下所述,在某些实施例中,全局路由表的副本可存储在每个计算节点110的存储器内(例如,说明性地在图2中示出的存储器220内的路由表222)。应当认识到随着网络连接和/或计算节点110被添加到分布式路由器102,分布式路由器102的路由表的尺寸增加。结果是,计算节点110用于使用路由表222执行路由表查找所需的时间量和资源量(例如,存储器、存储设备、处理器循环等等)也增加。然而,如以下更详细描述的,分布式路由器102的每个计算节点110被配置成用于负责仅路由与全局路由表222的不同集合(例如,子集或部分)相对应的网络分组104。这样,分布式路由器102的每个计算节点110可在处理器高速缓存存储器内的单独转发表中维护路由表222的一部分(例如,在图2中说明性示出的转发表218和高速缓存存储器216)。每个计算节点110的每个转发表218包括从分布式路由器102的路由表222获得的不同网络路由条目集合(例如,子集或部分)。应当认识到尽管说明性实施例的路由表218被描述为存储在每个计算节点110的高速缓存存储器216内的单独转发表218,其他实施例的转发表218可不被结构化为或制定为表格。例如,在某些实施例中,每个计算节点110的转发表218可被实现为被加载到高速缓存存储器216中用于后续检索的单独网络路由条目的集合或群组。
计算节点110可被实现为或以其他方式包括能够执行在此描述的功能的任何类型的计算设备,包括但不限于服务器计算机、联网设备、机架计算架构组件、桌上计算机、膝上计算设备、智能电器、消费者电子设备、移动计算设备、移动电话、智能电话、平板计算设备、个人数字助理、可穿戴计算设备和/或其他类型的计算设备。如图2中说明性示出的,计算节点包括处理器212、存储器220、输入输出(I/O)子系统226、通信电路230以及数据存储设备228。当然,计算节点110可包括其他或附加组件,诸如通常在计算机中找到的那些(例如,各种输入/输出设备)。此外,在某些实施例中,说明性组件中的一个或多个可被结合到另一个组件中或者以其他方式形成其一部分。例如,在某些实施例中,存储器220或其部分可被结合到处理器212中。
处理器212可被实施为能够执行在此描述的功能的任何类型的处理器。例如,在某些实施例中,处理器212可被实施为单核处理器、数字信号处理器、微控制器、或其他处理器或处理/控制电路。在其他实施例中,诸如在图2中说明性示出的那个实施例,处理器212可被实现为具有多个处理器核214的多核处理器。处理器212可包括用于存储指令和/或数据用于执行的高速缓存存储器216。在某些实施例中,高速缓存存储器216还可存储转发表218以便于路由所接收到的网络分组104。每个计算节点110的转发表218存储从分布式路由器102的全局路由表获得的不同网络路由条目集合(例如,部分、子集等等)。这样,每个计算节点110的转发表218的尺寸比包括分布式路由器102的所有路由表条目的全局路由表222的尺寸小(例如,包括更少的路由表条目)。在某些实施例中,每个计算节点110的转发表218可不被结构化或实现为格式化在表格中的信息。例如,在每个计算节点110的转发表218可被实现为被加载到高速缓存存储器216中用于后续检索的单独网络路由条目的集合或群组。
如以下更详细描述的,分布式路由器102的全局路由表的副本可被存储在每个计算节点110的存储器220内。在某些实施例中,不同网络路由表条目集合的所有或一部分可从路由表222获得,并且在初始化时或者以其他方式在参与分布式路由器102时预加载到计算节点110的转发表218内。除此之外或作为替代,不同网络路由表条目集合的所有或一部分可从路由表222获得,并且响应于接收到目的地为其相应的网络路由条目尚不存在于转发表218中的IP地址和/或IP子网的一个或多个网络分组104时加载到转发表218内。应当认识到尽管在说明性实施例中转发表218被描述为被存储在计算节点110的高速缓存存储器216内,在其他实施例中转发表218可被存储在计算节点110的其他数据存储设备内。例如,在其中针对特定计算节点110的转发表218的尺寸超过在高速缓存存储器216中可供使用的存储量的实施例中,转发表218可以是替代地被存储在计算节点110的存储器220内。
存储器220可被实施为能够执行在此描述的功能的任何类型的易失性或非易失性存储器或数据存储设备。在操作中,存储器220可存储在计算节点110的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动程序。存储器220经由I/O子系统226通信地耦合到处理器212,I/O子系统226可被实施为用于促成与计算节点110的处理器212、存储器220、以及其他组件的输入/输出操作的电路和/或组件。例如,I/O子系统226可被实施为或以其他方式包括用于促成输入/输出操作的存储器控制器中枢、输入/输出控制中枢、固件设备、通信链路(即,点到点链路、总线链路、导线、线缆、光导、印刷电路板迹线等等)和/或其他组件及子系统。在某些实施例中,I/O子系统226可形成片上系统(SoC)的一部分并且可与计算节点110的处理器212、存储器220和其他组件一起结合到单个集成电路芯片上。
在某些实施例中,存储器220包括分布式路由器102(例如,集群路由器)的路由表222。如以下更详细描述的,路由表222包括多个网络路由条目,每个网络路由条目具有与不同的网络目的地(例如,网络地址、目的地网络或子网、远程计算设备等等)相对应的信息。例如,在某些实施例中,每个网络路由条目可包括指示目的地IP地址(例如,目标计算设备和/或目的地子网的IP地址)、与发送针对目的地IP地址的网络分组所应当通过的网关IP地址、和/或将针对目的地IP地址的网络分组发送到网关IP地址所通过的出口接口的信息。应当认识到路由表222可包括用于促成将网络分组路由到其最终目的地的任何类型的信息。
此外,在某些实施例中,存储器220还可包括各种流过滤器224。如以下更详细讨论的,入口计算节点112可使用流过滤器223基于所接收到的网络分组104的目的地IP地址的散列值确定分布式路由器102的其他计算节点110中的哪一个(例如,反弹计算节点114)负责将所接收到的网络分组104路由到出口计算节点116以便后续从分布式路由器102传输出来。在某些实施例中,流过滤器224可被实施为定义哪些计算节点110负责将网络分组104路由到哪些IP地址和/或子网的一个或多个规则。除此之外或作为替代,流过滤器224可被实施为入口计算节点112可在其上执行查找或映射操作的流过滤器表(例如,在图4中说明性地示出的流过滤器表400)。在任一种情况下,每个流过滤器224可与不同的计算节点110相关联并且可包括指示该计算节点110所负责的路由表222的具体的网络路由条目集合的相应索引散列密钥。在某些实施例中,可基于针对分布式路由器102的路由表222的每个网络路由条目的目的地IP地址和/或目的地子网的二进制表示的两个最低有效位生成索引散列密钥。在这种实施例中,可生成总共四个不同的索引散列密钥(例如,“00”、“01”、“10”、或“11”),一个索引散列密钥用于分布式路由器102的一个计算节点110。在其中分布式路由器102包括多于四个计算节点110的实施例中,可使用针对路由表222的每个网络路由条目的目的地IP地址和/或目的地子网的二进制表示的附加最低有效位。例如,在其中分布式路由器102包括八个计算节点110的实施例中,针对路由表222的每个网络路由条目的目的地IP地址和/或目的地子网的二进制表示的三个最低有效位可用于生成总共八个可能的索引散列密钥(例如,“000”、“001”、“010”、“011”、“100”、“101”、“110”和“111”)。
计算节点110的通信电路230可被实施为任何类型的通信电路、设备或其集合,能够允许分布式路由器102(例如,集群路由器)的计算节点110和/或其他计算设备之间的经由一个或多个通信网络(例如,局域网、个域网、广域网、蜂窝网络、全球网络,诸如互连网等等)的通信。通信电路230可被配置成用于使用任何一种或多种通信技术(例如,无线通信或有线通信)和相关联的协议(例如,以太网、Wi-、WiMAX等等)实施这种通信。在说明性实施例中,通信电路230包括或以其他方式通信地耦合到一个或多个通信接口232。通信接口232可被配置成用于将计算节点110通信地耦合到任何数量的其他计算节点110、网络(例如,物理网络或逻辑网络)、和/或外部计算设备(例如,不是分布式路由器102的一部分的计算设备)。
数据存储设备228可被实施为被配置成用于数据的短期或长期存储的任何类型的设备,诸如例如存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器、或其他数据存储设备。例如,数据存储设备228可被配置成用于存储有待由计算节点110初始化和/或执行的一个或多个操作系统。在某些实施例中,在针对更快处理和/或任何其他原因的操作期间,操作系统的部分可被拷贝到存储器220。
现在参照图3,在使用中,每个计算节点110在操作期间建立环境300。说明性环境300包括流量入口模块302、流反弹模块306、流量出口模块308以及分布式路由器管理模块310。在某些实施例中,流量入口模块302可包括如下讨论的流导引器模块304。环境300的模块、逻辑和其他组件中的每一个可被实施为硬件、固件、软件或其组合。应当认识到每个计算节点110可包括在计算设备中通常找到的其他组件、子组件、模块以及设备,为了描述清晰的目的,未在图3中示出。此外,应当认识到尽管每个计算节点110可在操作期间建立说明性环境300,为了描述清晰的目的,具体参照单个计算节点110描述该说明性环境300的以下讨论。
流量入口模块302被配置成用于从位于分布式路由器102外部的计算设备(例如,网络交换机、网络路由器、发源计算设备等等)接收网络分组104。所接收到的网络分组104可被实施为包括所接收到的网络分组104的目标的目的地IP地址的互联网协议(IP)分组。当然,所接收到的网络分组104可包括其他类型的信息,诸如例如目的地端口、源IP地址、源端口、协议信息、和/或媒体访问控制(MAC)地址。然而,应当认识到在其他实施例中,所接收到的网络分组104可被实施为任何其他类型的网络分组。在某些实施例中,可从通信地耦合到计算节点110的通信接口232的外部计算设备接收网络分组104。应当认识到在其中流量入口模块302从外部计算设备接收网络分组104的实施例中,计算设备110可被称为“入口”计算节点112。
流量入口模块302还被配置成用于基于所接收到的网络分组104的目的地IP地址生成散列密钥。在某些实施例中,流量入口模块302可基于目的地IP地址的二进制表示的两个最低有效位生成散列密钥。例如,流量入口模块302所生成的散列密钥基于目的地IP地址的二进制表示的两个最低有效位可包括值“00”、“01”、“10”或“11”。应当认识到任何数量的最低有效位可用于生成散列密钥。在某些实施例中,可基于或以其他方式根据分布式路由器102的计算节点110的总数,确定用于生成散列密钥的最低有效位的数量。例如,在说明性实施例中,目的地IP地址的二进制表示的两个最低有效位用于生成散列密钥,因为分布式路由器102包括总共四个计算节点110,其等效于可从两个二进制位(“00”、“01”、“10”或“11”)生成的不同散列密钥的总数。在其中分布式路由器102包括多于四个计算节点110的实施例中,可使用目的地IP地址的二进制表示的附加最低有效位。例如,在其中分布式路由器102包括八个计算节点110的实施例中,目的地IP地址的二进制表示的三个最低有效位可用于生成总共八个可能的散列密钥(例如,“000”、“001”、“010”、“011”、“100”、“101”、“110”和“111”)。应当认识到为了促成负责路由所接收到的网络分组104的具体计算节点110(例如,反弹计算节点114)的后续确定,用于生成散列密钥的最低有效位的数量可基本上类似于用于为分布式路由器102的每个计算节点110生成索引散列密钥的最低有效位的数量。应当认识到在某些实施例中,流量入口模块302可基于包括在网络分组104内的任何其他类型的信息(或不同类型信息的组合)(例如,5元组、MAC地址等等)生成散列密钥。
如图3的说明性实施例中所示,流量入口模块302可包括流导引器模块304。流导引器模块304可被配置成用于确定负责路由所接收到的网络分组104的具体计算节点110(例如,反弹计算节点114)。也就是,流量导引器模块304可确定包括具有与网络分组104的目的地IP地址相对应的网络路由条目的转发表218或者以其他方式负责将网络分组104路由到目的地IP地址和/或相应的目的地子网地址的具体计算节点110(例如,反弹计算节点114)。为了这样做,在某些实施例中,流导引器模块304被配置成用于将基于网络分组104的目的地IP地址生成的散列密钥与包括在流过滤器224内的索引散列密钥进行比较。在这种实施例中,流导引器模块304基于确定哪个流过滤器224包括与从网络分组104的目的地IP地址(或其他类型的信息)生成的散列密钥匹配的索引散列密钥,确定具体的反弹计算节点114。
在计算节点110被确定为反弹计算节点114的实施例中,流反弹模块306被配置成用于确定负责基于网络分组104的目标和/或最终目的地从分布式路由器102传输所接收到的网络分组104的具体计算节点110(例如,出口计算节点116)。为了这样做,流反弹模块306可检查网络分组104以便确定目的地IP地址。除此之外或作为替代,流反弹模块306可检查网络分组104以便确定网络分组104的5元组(例如,目的地IP地址、目的地端口号、源IP地址、源端口号以及协议)。在某些实施例中,流反弹模块306可将目的地IP地址和反弹计算节点114的转发表218和/或分布式路由器102的路由表222进行比较。如所讨论的,分布式路由器102的每个计算节点110包括具有(或者负责具有)从分布式路由器102的路由表222获得的不同网络路由条目集合(例如,子集或部分)的转发表218。如此,在某些实施例中,流反弹模块306可被配置成用于对反弹计算节点114的转发表218执行查找操作以便确定是否存在匹配网络路由条目。在某些实施例中,如果在转发表218内不存在匹配网络路由条目,流反弹模块306对分布式路由器102的路由表222执行查找操作。应当认识到对包括从路由表222获得的网络路由条目集合(例如,子集或部分)的反弹计算节点114的转发表218执行查找操作比在整个路由表222上执行查找操作更快并且消耗少得多的资源(例如,存储器、存储装置、处理循环等等)。一旦被标识,流反弹模块306可利用匹配路由条目来确定网络分组104的出口计算节点116。在某些实施例中,流反弹模块306被配置成用于检查网络分组104以便确定包括在其中的MAC地址。在这种实施例中,流反弹模块306可被配置成用于将MAC地址和反弹计算节点114的转发表218和/或分布式路由器102的路由表222进行比较。以此方式,反弹计算节点114可促成所接收到的网络分组104的层2交换。
流反弹模块306还被配置成用于将网络分组104转发到所确定的出口计算节点116以便进行进一步处理。例如,在某些实施例中,出口计算节点116可将所接收到的网络分组104从分布式路由器102传输到其最终目的地(例如,位于分布式路由器102外部的直接连接计算设备、另一个网络设备、其他网络等等)。
在其中计算节点110被确定为出口计算节点116的实施例中,流量出口模块308被配置成用于将网络分组104传输出分布式路由器102。也就是,流量出口模块308被配置成用于将网络分组104向其最终目的地传输。在某些实施例中,网络分组104的最终目的地可以是位于分布式路由器102外部(例如,不是集群路由器的一部分)的计算设备。例如,网路分组104的最终目的地可以是直接连接到出口计算节点116的通信接口232之一上的外部计算设备。在另一个示例中,网络分组104的最终目的地可以是经由一个或多个网络通信地耦合到出口计算节点116的外部计算设备。
分布式路由器管理模块310被配置成用于在分布式路由器102的计算节点110之间同步数据。例如,在某些实施例中,分布式路由器管理模块310可跨分布式路由器102的计算节点110同步流过滤器224以便确保每个计算节点110具有经更新的流过滤器224集合。除此之外或作为替代,分布式路由器管理模块310可被配置成用于跨分布式路由器102的计算节点110同步路由表222以便确保每个计算节点110具有分布式路由器102的路由表222经更新版本。
分布式路由器管理模块310还可被配置成用于确定分布式路由器102的其他计算节点110的状态和/或可用性。例如,在某些实施例中,分布式路由器管理模块310可被配置成用于确定另一个计算节点110是否不再可供使用或者以其他方式不可到达而无法为分布式路由器102路由网络分组104(例如,充当反弹计算节点114)。在这种实施例中,分布式路由器管理模块310可被配置成用于确定不可供使用的计算节点110所负责的路由表222的具体网络路由条目集合应当如何在分布式路由器102的剩余计算节点110之间划分和/或分配。在某些实施例中,分布式路由器管理模块310可基于这种确定更新流过滤器224中的一个或多个。例如,分布式路由器管理模块310可通过为剩余计算节点110中的一个或多个重新分配与不可供使用的计算节点110相关联的索引散列密钥,更新流过滤器224中的一个或多个。
现在参照图5,入口计算节点112可执行用于经由分布式路由器102(例如,集群路由器)的多个计算节点110的分布式路由表查找的方法500。方法500以框502开始,其中,入口计算节点112确定是否从位于分布式路由器102外部的计算设备(例如,网络交换机、网络路由器、发源计算设备等等)接收到网络分组104。为了这样做,入口计算节点112可针对新的网络分组104的接收,监视通信接口232。如果在框502内入口计算节点112确定接收到新的网络分组104,方法500前进到框504。然而,如果入口计算节点112替代地确定尚未接收到新的网络分组104,方法500环回到框502并且入口计算节点112继续针对新的网络分组104的接收进行监视。
在框504内,入口计算节点112检查所接收到的网络分组104以便确定该分组的目标或目的地地址。所接收到的网络分组104的目标或目的地地址可对应于直接连接到分布式路由器102的计算节点110之一的目的地计算设备或者经由一个或多个网络和/或网络设备通信地耦合到分布式路由器102的外部目的地计算设备。在某些实施例中,所接收到的网络分组104可被实施为除其他类型的信息以外包括所接收到的网络分组104的目标的目的地IP地址的互联网协议(IP)分组。在这种实施例中,入口计算节点112检查所接收到的网络分组104的IP头部以便确定目标的目的地IP地址。
在框506内,入口计算节点112基于目的地IP地址生成散列密钥。在某些实施例中,在框508内,入口计算节点112可基于目的地IP地址的二进制表示的两个最低有效位生成散列密钥。例如,入口计算节点112所生成的散列密钥基于目的地IP地址的二进制表示的两个最低有效位可包括值“00”、“01”、“10”或“11”。应当认识到任何数量的最低有效位可用于生成散列密钥。在某些实施例中,可基于或以其他方式根据分布式路由器102的计算节点110的总数确定用于生成散列密钥的最低有效位的数量。
在框510内,入口计算节点112确定负责路由所接收到的网络分组104的具体计算节点110(例如,反弹计算节点114)。也就是,入口计算节点112可确定包括具有与网络分组104的目的地IP地址相对应的网络路由条目的转发表218或者以其他方式负责将网络分组路由到目的地IP地址和/或相应的目的地子网地址的具体计算节点110(例如,反弹计算节点114)。为了这样做,在框512,入口计算节点112将基于网络分组104的目的地IP地址生成的散列密钥与一个或多个流过滤器224进行比较。每个流过滤器224可与不同的计算节点110相关联并且可包括可如讨论的那样指示具体计算节点110所负责的路由表222的具体网络路由条目集合的相应的索引散列密钥。在某些实施例中,入口计算节点112将从网络分组104的目的地IP地址生成的散列密钥与流过滤器224的索引散列密钥进行比较。在这种实施例中,入口计算节点112可基于找到匹配散列密钥/索引散列密钥对,确定或以其他方式标识负责路由网络分组104的具体计算节点110(例如,反弹计算节点114)。
在框514内,入口计算节点112将网络分组104转发到所确定的反弹计算节点114以便进行进一步处理。例如,如所讨论的,反弹计算节点114可被配置成用于基于反弹计算节点114的转发表218或反弹计算节点114所负责的路由表222的网络路由条目的一部分确定出口计算节点116以便从分布式路由器102传输所接收到的网络分组104。
在某些实施例中,入口计算节点112可基于不同于(或附加地)所接收到的网络分组104的目的地IP地址的信息执行分布式路由表查找的过程(例如,方法500)。例如,在某些实施例中,入口计算节点112可检查所接收到的网络分组104以便确定所接收到的网络分组104的5元组(例如,目的地IP地址、目的地端口号、源IP地址、源端口号以及协议)或媒体访问控制(MAC)地址(用于层2交换)(例如,框504)。在这种实施例中,入口计算节点112可随后基于所确定的5元组或MAC地址生成散列密钥(例如,框506)。入口计算节点112然后可基于将所生成的散列密钥与一个或多个流过滤器224进行比较,将所接收到网络分组104转发到被确定为负责路由/交换网络分组的具体计算节点110(例如,反弹计算节点114)(例如,框510、514)。
现在参照图6,反弹计算节点114可执行用于经由分布式路由器102(例如,集群路由器)的多个计算节点110的分布式路由表查找的方法600。方法600以框602开始,其中,反弹计算节点114确定是否已经从入口计算节点112接收到的反弹(例如,转发、传送等等)网络分组104。如果在框602内反弹计算节点114确定接收到反弹网络分组104,方法600前进到框604。然而,如果反弹计算节点114替代地确定尚未接收到反弹网络分组104,方法600环回到框602并且反弹计算节点114继续针对反弹网络分组104的接收进行监视。
在框604内,反弹计算节点114检查所接收到的网络分组104以便确定该分组的目标或目的地。在某些实施例中,所接收到的网络分组104可被实施为除其他类型的信息以外包括所接收到的网络分组104的目标的目的地IP地址的互联网协议(IP)分组。在这种实施例中,反弹计算节点114检查所接收到的IP网络分组104的IP头部以便确定目标的目的地IP地址。
在框606内,反弹计算节点114基于目的地IP地址确定负责从分布式路由器102传输所接收到的网络分组104的具体计算节点110(例如,出口计算节点116)。在某些实施例中,在框608中,反弹计算节点114可将目的地IP地址和反弹计算节点114的转发表218和/或分布式路由器102的路由表222进行比较。如所讨论的,分布式路由器102的每个计算节点102包括具有(或者负责具有)从分布式路由器102的路由表222获得的不同网络路由条目集合(例如,子集或部分)的转发表218。如此,在某些实施例中,反弹计算节点114可对其自身的转发表218执行查找操作以便确定否是存在匹配网络路由条目。在某些实施例中,如果在转发表218内不存在匹配网络路由条目,反弹计算节点114对路由表222执行查找操作。应当认识到对包括从路由表222获得的网络路由条目集合(例如,子集或部分)的反弹计算节点114的转发表218执行查找操作比在整个路由表222上执行查找操作更快并且消耗显著更少的资源(例如,存储器、存储装置、处理循环等等)。一旦被标识,反弹计算节点114可利用匹配路由条目来确定网络分组104的出口计算节点116。
在框610内,反弹计算节点114将网络分组104转发到所确定的出口计算节点116以便进行进一步处理。例如,在某些实施例中,在框612,出口计算节点116可将所接收到的网络分组104从分布式路由器102向其最终目的地(例如,位于分布式路由器102外部的直接连接计算设备、另一个网络设备、其他网络等等)传输。
在某些实施例中,反弹计算节点114可基于不同于(或附加地)由入口计算节点112反弹(例如,转发、传输等等)的网络分组112的目的地IP地址的信息执行分布式路由表查找的过程(例如,方法600)。例如,在某些实施例中,反弹计算节点114可检查所接收到的网络分组104以便确定所接收到的网络分组104的5元组(例如,目的地IP地址、目的地端口号、源IP地址、源端口号以及协议)或媒体访问控制(MAC)地址(用于层2交换)(例如,框604)。在这种实施例中,反弹计算节点114可随后将所确定的5元组或MAC地址与反弹计算节点114的转发表218或分布式路由器102的路由表222进行比较(例如,查找)从而确定负责从分布式路由器102传输所接收到的网络分组的具体计算节点110(例如,出口计算节点116)(例如,框608)。基于这种确定,反弹计算节点114可将所接收到的网络分组104转发到所确定的出口计算节点116以便进行进一步处理(例如,框610)。以此方式,反弹计算节点114可基于不同于目的地IP地址的或附加的信息转发和/或交换网络分组(例如,执行路由表和/或转发表查找)。
现在参照图7,在说明性实施例中,用于经由分布式路由器102(例如,集群路由器)的计算节点110直接路由所接收到的网络分组704的系统700包括入口计算节点112、出口计算节点116、以及一个或多个其他计算节点110(例如,计算节点118)。应当认识到在图7中说明性地示出的入口计算节点112、出口计算节点116以及其他计算节点118可包括基本上类似于以上参照图1描述的计算节点110的功能、特征、和/或结构。在使用时,分布式路由器102的入口计算节点112从位于分布式路由器102外部的源计算设备(例如,网络交换机、网络路由器、发源计算设备等等)接收网络分组704。入口计算节点112然后基于包括在所接收到的网络分组704内的目的地互联网协议(IP)地址生成查询位集合。可将查询位集合与包括与在分布式路由器102的路由表222内维护的每个网络路由条目相对应的元素位集合的Bloom过滤器向量进行比较。基于该比较,入口计算节点112确定用于将网络分组704传输出分布式路由器102的适当出口计算节点116。应当认识到在图2中说明性地示出的任何其他计算节点110可替代地从源计算设备接收网络分组704。这样,接收网络分组704的具体计算节点110可被指定为“入口”计算节点112。
现在参照图8,入口计算节点112可执行用于经由分布式路由器102(例如,集群路由器)的计算节点110直接路由所接收到的网络分组704的方法800。方法800以框802开始,其中,入口计算节点112确定是否从位于分布式路由器102外部的计算设备(例如,网络交换机、网络路由器、发源计算设备等等)接收到新的网络分组704。为了这样做,入口计算节点112可针对新的网络分组704的接收监视通信接口232。如果在框802内入口计算节点112确定接收到新的网络分组704,方法800前进到框804。然而,如果入口计算节点112替代地确定尚未接收到新的网络分组704,方法800环回到框802并且入口计算节点112继续针对新的网络分组704的接收进行监视。
在框804内,入口计算节点112检查所接收到的网络分组704以便确定该分组的目标或目的地。所接收到的网络分组704的目标可以是直接连接到分布式路由器102的计算节点110之一的目的地计算设备或者经由一个或多个网络和/或网络设备通信地耦合到分布式路由器102的外部目的地计算设备。在某些实施例中,所接收到的网络分组704可被实施为除其他类型的信息以外包括所接收到的网络分组704的目标的目的地IP地址的互联网协议(IP)分组。在这种实施例中,入口计算节点112检查所接收到的网络分组704的分组头部以便确定目标的目的地IP地址。
在框806内,入口计算节点112基于网络分组704的目的地IP地址生成查询位集合。在某些实施例中,在框808内,入口计算节点112用参考散列函数集合对目的地IP地址的二进制表示进行散列。在某些实施例中,入口计算节点112用参考散列函数集合中的每个散列函数对目的地IP地址进行散列以便生成查询位集合中的不同位。应当认识到参考散列函数集合可包括任何数量的散列函数。另外,任何合适的散列函数可用于对目的地IP地址进行散列。
在框810内,入口计算节点112确定分布式路由器102的可能出口计算节点116。也就是,入口计算节点112将分布式路由器102的计算节点110(例如,具有最高可能性)最可能地确定为网络分组704的出口计算节点116。为了这样做,在某些实施例中,入口计算节点112将从目的地IP地址(或者头部字段的任何组合,例如,5元组)生成的查询位集合与Bloom过滤器向量进行比较。Bloom过滤器向量可包括使用用于对目的地IP地址(或5元组)进行散列的相同参考散列函数集合,为分布式路由器102的路由表222的每个网络路由条目生成的元素位集合。这样,可能已经使用参考散列函数集合中的不同散列函数生成了每个元素位集合中的每个位。在某些实施例中,入口计算节点112可确定查询位集合是否与Bloom过滤器向量的任何元素位集合匹配。如果存在这种匹配,入口计算节点112可利用相应的网络路由条目确定可能的出口计算节点116。
在框812内,入口计算节点112将网络分组704直接转发到所确定的可能出口计算节点116以便进行进一步处理。例如,在某些实施例中,出口计算节点116可将所接收到的网络分组704从分布式路由器102向其最终目的地(例如,位于分布式路由器102外部的直接连接计算设备、另一个网络设备、其他网络等等)传输。
应当认识到尽管以上描述的说明性实施例是指基于所接收到的网络分组104、704的目的地IP地址的分布式路由表查找,分布式路由器102的计算节点110可基于其他类型的信息执行分布式路由表查找。例如,在某些实施例中,分布式路由器102的计算节点110可基于所接收到的网络分组104、704的5元组的任何部分或组合(例如,目的地IP地址、目的地端口、源IP地址、源端口、相应的协议)从转发表218和/或全局路由表222查找路由表条目。除此之外或作为替代,在某些实施例中,分布式路由器102的计算节点110可促成使用从所接收到的网络分组104、704确定的信息(例如,MAC地址)的层2交换。在这种实施例中,散列密钥、索引散列密钥、以及路由/转发表可从MAC地址信息生成或以其他方式包括MAC地址信息。
示例
以下提供在此公开的技术的说明性示例。这些技术的实施例可包括以下所描述的示例中的任何一个或多个以及任何组合。
示例1包括一种用于分布式路由表查找的分布式路由器的入口计算节点,该入口计算节点包括:流量入口模块,用于(i)接收网络分组,其中,该分布式路由器的每个计算节点包括用于存储从该分布式路由器的路由表获得的不同网络路由条目集合的转发表,(ii)基于包括在所接收到的网络分组中的并且指示所接收到的网络分组的目标的目的地地址生成散列密钥,其中,该散列密钥标识该分布式路由器的存储包括与该目的地地址相对应的网络路由条目的转发表的计算节点,(iii)基于该散列密钥确定该分布式路由器的中间计算节点以便路由所接收到的网络分组,以及(iv)将所接收到的网络分组转发到该中间计算节点以便路由所接收到的网络分组。
示例2包括示例1所述的主题,并且其中,该目的地地址包括指示所接收到的网络分组的该目标的目的地互联网协议地址;并且其中,用于生成该散列密钥包括用于基于该目的地互联网协议地址的两个最低有效位生成散列密钥。
示例3包括示例1和2中任一项所述的主题,并且其中,用于基于该散列密钥确定该中间计算节点包括用于将该散列密钥与多个流过滤器进行比较以便确定该中间计算节点,其中,每个流过滤器将不同的索引散列密钥与该分布式路由器的不同计算节点相关联。
示例4包括示例1至3中任一项所述的主题,并且进一步包括分布式路由器管理模块,用于以下中的至少一项:将该入口计算节点的该多个流过滤器与该分布式路由器的其他计算节点的其他流过滤器同步或者将该入口计算节点的该路由表与该分布式路由器的其他计算节点的其他路由表同步。
示例5包括示例1至4中任一项所述的主题,并且其中,该分布式路由器管理模块进一步用于(i)确定该中间计算节点的可用性,(ii)响应于确定该中间计算节点不可用确定该分布式路由器的替代中间计算节点以便路由所接收到的网络分组,以及(iii)基于所确定的替代中间计算节点更新该多个流过滤器中的一个或多个;并且其中,用于将所接收到的网络分组转发到该中间计算节点包括用于将所接收到的网络分组转发到该替代中间计算节点以便路由所接收到的网络分组。
示例6包括一种用于分布式路由表查找的分布式路由器的入口计算节点,该入口计算节点包括:用于接收网络分组的装置,其中,该分布式路由器的每个计算节点包括用于存储从该分布式路由器的路由表获得的不同网络路由条目集合的转发表;用于基于包括在所接收到的网络分组中的并且指示所接收到的网络分组的目标的目的地地址生成散列密钥的装置,其中,该散列密钥标识该分布式路由器的存储包括与该目的地地址相对应的网络路由条目的该转发表的该计算节点;用于基于该散列密钥确定该分布式路由器的中间计算节点以便路由所接收到的网络分组的装置;以及用于将所接收到的网络分组转发到该中间计算节点以便路由所接收到的网络分组的装置。
示例7包括示例6所述的主题,并且其中,该目的地地址包括指示所接收到的网络分组的该目标的目的地互联网协议地址;并且其中,用于生成该散列密钥的该装置包括用于基于该目的地互联网协议地址的两个最低有效位生成散列密钥的装置。
示例8包括示例6和7中任一项所述的主题,并且其中,用于基于该散列密钥确定该中间计算节点的该装置包括用于将该散列密钥与多个流过滤器进行比较以便确定该中间计算节点的装置,其中,每个流过滤器将不同的索引散列密钥与该分布式路由器的不同计算节点相关联。
示例9包括示例6至8中任一项所述的主题,并且进一步包括以下中的至少一项:(i)用于将该入口计算节点的该多个流过滤器与该分布式路由器的其他计算节点的其他流过滤器同步的装置或者(ii)用于将该入口计算节点的该路由表与该分布式路由器的其他计算节点的其他路由表同步的装置。
示例10包括示例6至9中任一项所述的主题,并且进一步包括:用于确定该中间计算节点的可用性的装置;用于响应于确定该中间计算节点不可用确定该分布式路由器的替代中间计算节点以便路由所接收到的网络分组的装置;以及用于基于所确定的替代中间计算节点更新该多个流过滤器中的一个或多个的装置;并且其中,用于将所接收到的网络分组转发到该中间计算节点的该装置包括用于将所接收到的网络分组转发到该替代中间计算节点以便路由所接收到的网络分组的装置。
示例11包括一种用于经由分布式路由器的分布式路由表查找的方法,该方法包括:由该分布式路由器的第一计算节点接收网络分组,其中,该分布式路由器的每个计算节点包括用于存储从该分布式路由器的路由表获得的不同网络路由条目集合的转发表;由该第一计算节点基于包括在所接收到的网络分组中的并且指示所接收到的网络分组的目标的目的地地址生成散列密钥,其中,该散列密钥标识该分布式路由器的存储包括与该目的地地址相对应的网络路由条目的转发表的计算节点;由该第一计算节点基于该散列密钥确定该分布式路由器的第二计算节点以便路由所接收到的网络分组;以及由该第一计算节点将所接收到的网络分组转发到该第二计算节点以便路由所接收到的网络分组。
示例12包括示例11所述的主题,并且其中,该目的地地址包括指示所接收到的网络分组的该目标的目的地互联网协议地址;并且其中,生成该散列密钥包括基于该目的地互联网协议地址的两个最低有效位生成散列密钥。
示例13包括示例11和12中任一项所述的主题,并且其中,基于该散列密钥确定该第二计算节点包括将该散列密钥与多个流过滤器进行比较以便确定该第二计算节点,其中,每个流过滤器将不同的索引散列密钥与该分布式路由器的不同计算节点相关联。
示例14包括示例11至13中任一项所述的主题,并且进一步包括以下中的至少一项:(i)由该第一计算节点将该第一计算节点的该多个流过滤器与该分布式路由器的其他计算节点的其他流过滤器同步或者(ii)由该第一计算节点将该第一计算节点的该路由表与该分布式路由器的其他计算节点的其他路由表同步。
示例15包括示例11至14中任一项所述的主题,并且进一步包括由该第一计算节点确定该第二计算节点的可用性;由该第一计算节点响应于确定该第二计算节点不可用,确定该分布式路由器的替代第二计算节点以便路由所接收到的网络分组;以及由该第一计算节点基于所确定的替代第二中间计算节点更新该多个流过滤器中的一个或多个;并且其中,将所接收到的网络分组转发到该第二计算节点包括将所接收到的网络分组转发到该替代第二计算节点以便路由所接收到的网络分组。
示例16包括一种用于分布式路由表查找的分布式路由器的第一计算节点,该第一计算节点包括:处理器;以及存储器,该存储器其中存储有多条指令,当由该处理器执行时,该多条指令致使该第一计算节点执行示例11至15中任一项所述的方法。
示例17包括一种或多种机器可读介质,包括存储在其上的多条指令,响应于被执行,该多条指令致使分布式路由器的第一计算节点执行示例11至15中任一项所述的方法。
示例18包括一种用于分布式路由表查找的分布式路由器的中间计算节点,该中间计算节点包括:流反弹模块,用于(i)接收由该分布式路由器的入口计算节点转发的网络分组,其中,该分布式路由器的每个计算节点包括用于存储从该分布式路由器的路由表获得的不同网络路由条目集合的转发表,(ii)检查所接收到的网络分组以便确定与所接收到的网络分组的目标相关联的目的地地址,以及(iii)基于该目的地地址以及该中间计算节点的该转发表确定该分布式路由器的出口计算节点以便传输所接收到的网络分组。
示例19包括示例18所述的主题,并且其中,该不同路由条目集合的每个路由条目指示互联网协议地址;并且其中,该互联网协议地址的与该不同路由条目集合的每个路由条目相关联的两个最低有效位是相同的。
示例20包括示例18和19中任一项所述的主题,并且其中,该目的地地址包括指示所接收到的网络分组的该目标的目的地互联网协议地址;并且该流反弹模块进一步用于基于该互联网协议地址的与该路由表的每个路由条目相关联的两个最低有效位,从该分布式路由器的该路由表获得该不同路由条目集合。
示例21包括示例18至20中任一项所述的主题,并且其中,用于获得该不同路由条目集合包括用于响应于确定该不同集合的一个或多个路由条目未被存储在该中间计算节点的该转发表内而从该分布式路由器的该路由表获得该不同集合的该一个或多个路由条目。
示例22包括示例18至21中任一项所述的主题,并且其中,用于确定该出口计算节点包括用于确定与该中间节点不同的出口计算节点以便从该分布式路由器传输所接收到的网络分组;并且其中该流反弹模块进一步用于将所接收到的网络分组转发到不同于该中间节点的该出口计算节点以便从该分布式路由器传输所接收到的网络分组。
示例23包括示例18至22中任一项所述的主题,并且其中,用于确定该分布式路由器的该出口计算节点包括用于基于该目的地地址和该中间计算节点的该转发表确定该中间计算节点是该出口计算节点;并且该中间计算节点进一步包括用于将所接收到的网络分组传输到与所接收到的网络分组相关联的目的地地址的流量出口模块。
示例24包括示例18至23中任一项所述的主题,并且其中,用于确定该分布式路由器的该出口计算节点包括用于将该目的地地址与该中间计算节点的该转发表进行比较;并且其中该流反弹模块进一步用于响应于确定与该目的地地址相对应的网络路由条目未被存储在该中间计算节点的该转发表内而将该目的地地址与该分布式路由器的该路由表进行比较。
示例25包括一种用于分布式路由表查找的分布式路由器的中间计算节点,该中间计算节点包括:用于接收由该分布式路由器的入口计算节点转发的网络分组的装置,其中,该分布式路由器的每个计算节点包括用于存储从该分布式路由器的路由表获得的不同网络路由条目集合的转发表;用于检查所接收到的网络分组以便确定与所接收到的网络分组的目标相关联的目的地地址的装置;以及用于基于该目的地地址以及该中间计算节点的该转发表确定该分布式路由器的出口计算节点以便传输所接收到的网络分组的装置。
示例26包括示例25所述的主题,并且其中,该不同路由条目集合的每个路由条目指示互联网协议地址;并且其中,该互联网协议地址的与该不同路由条目集合的每个路由条目相关联的两个最低有效位是相同的。
示例27包括示例25和26中任一项所述的主题,并且其中,该目的地地址包括指示所接收到的网络分组的该目标的目的地互联网协议地址;并且进一步包括用于基于该互联网协议地址的与该路由表的每个路由条目相关联的两个最低有效位从该分布式路由器的该路由表获得该不同路由条目集合的装置。
示例28包括示例25至27中任一项所述的主题,并且其中,用于获得该不同路由条目集合的该装置包括用于响应于确定该不同集合的一个或多个路由条目未被存储在该中间计算节点的该转发表内而从该分布式路由器的该路由表获得该不同集合的该一个或多个路由条目的装置。
示例29包括示例25至28中任一项所述的主题,并且其中,用于确定该出口计算节点的该装置包括用于确定不同于该中间节点的出口计算节点以便从该分布式路由器传输所接收到的网络分组的装置;并且进一步包括用于将所接收到的网络分组转发到不同于该中间节点的该出口计算节点以便从该分布式路由器传输所接收到的网络分组的装置。
示例30包括示例25至29中任一项所述的主题,并且其中,用于确定该分布式路由器的该出口计算节点的该装置包括用于基于该目的地地址和该中间计算节点的该转发表确定该中间计算节点是该出口计算节点的装置;并且进一步包括用于将所接收到的网络分组传输到与所接收到的网络分组相关联的目的地地址的装置。
示例31包括示例25至30中任一项所述的主题,并且其中,用于确定该分布式路由器的该出口计算节点的该装置包括用于将该目的地地址与该中间计算节点的该转发表进行比较的装置;并且进一步包括用于响应于确定与该目的地地址相对应的网络路由条目未被存储在该中间计算节点的该转发表内而将该目的地地址与该分布式路由器的该路由表进行比较的装置。
示例32包括一种用于经由分布式路由器的分布式路由表查找的方法,该方法包括:由该分布式路由器的第一计算节点接收由该分布式路由器的第二计算节点转发的网络分组,其中,该分布式路由器的每个计算节点包括用于存储从该分布式路由器的路由表获得的不同网络路由条目集合的转发表;由该第一计算节点检查所接收到的网络分组以便确定与所接收到的网络分组的目标相关联的目的地地址;以及由该第一计算节点基于该目的地地址以及该第一计算节点的该转发表确定该分布式路由器的第三计算节点以便传输所接收到的网络分组。
示例33包括示例32所述的主题,并且其中,该不同路由条目集合的每个路由条目指示互联网协议地址;并且其中,该互联网协议地址的与该不同路由条目集合的每个路由条目相关联的两个最低有效位是相同的。
示例34包括示例32和33中任一项所述的主题,并且其中,该目的地地址包括指示所接收到的网络分组的该目标的目的地互联网协议地址;并且进一步包括由该第一计算节点基于该互联网协议地址的与该路由表的每个路由条目相关联的两个最低有效位,从该分布式路由器的该路由表获得该不同路由条目集合。
示例35包括示例32至34中任一项所述的主题,并且其中,获得该不同路由条目集合包括响应于确定该不同集合的一个或多个路由条目未被存储在该第一计算节点的该转发表内而从该分布式路由器的该路由表获得该不同集合的该一个或多个路由条目。
示例36包括示例32至35中任一项所述的主题,并且其中,确定该分布式路由器的该第三计算节点包括确定不同于该第一节点的第三计算节点以便从该分布式路由器传输所接收到的网络分组;并且进一步包括由该第一计算节点将所接收到的网络分组转发到不同于该第一节点的该第三计算节点以便从该分布式路由器传输所接收到的网络分组。
示例37包括示例32至36中任一项所述的主题,并且其中,确定该分布式路由器的该第三计算节点包括基于该目的地地址和该第一计算节点的该转发表确定该第一计算节点是该第三计算节点;并且进一步包括由该第一计算节点将所接收到的网络分组传输到与所接收到的网络分组的目标相关联的目的地地址。
示例38包括示例32至37中任一项所述的主题,并且其中,确定该分布式路由器的该第三计算节点包括将该目的地地址与该第一计算节点的该转发表进行比较;并且进一步包括由该第一计算节点响应于确定与该目的地地址相对应的网络路由条目未被存储在该第一计算节点的该转发表内而将该目的地地址与该分布式路由器的该路由表进行比较。
示例39包括一种用于分布式路由表查找的分布式路由器的第一计算节点,该第一计算节点包括:处理器;以及存储器,该存储器其中存储有多条指令,当由该处理器执行时,该多条指令致使该第一计算节点执行示例32至38任一项所述的方法。
示例40包括一种或多种机器可读介质,包括存储在其上的多条指令,响应于被执行,该多条指令致使分布式路由器的第一计算节点执行示例32至38任一项所述的方法。
示例41包括一种用于分布式路由表查找的分布式路由器,该分布式路由器包括计算节点集群,该计算节点集群包括(i)第一计算节点、(ii)第二计算节点、以及(iii)第三计算节点,其中,该集群中的每个计算节点包括用于存储从该分布式路由器的路由表获得的不同的网络路由条目集合的转发表;其中,该第一计算节点包括流量入口模块,该流量入口模块用于:(i)接收网络分组,(ii)基于包括在所接收到的网络分组中的并且指示所接收到的网络分组的目标的目的地地址生成散列密钥,其中,该散列密钥标识该计算节点集群中的存储包括与该目的地地址相对应的网络路由条目的转发表的计算节点,(iii)基于该散列密钥从该集群确定第二计算节点以便路由所接收到的网络分组,以及(iv)将所接收到的网络分组转发到该第二计算节点以便路由所接收到的网络分组;其中,该第二计算节点包括流反弹模块,该流反弹模块用于:(i)接收由该集群中的该第一计算节点转发的该网络分组,(ii)检查所接收到的网络分组以便确定与所接收到的网络分组的目标相关联的目的地地址,(iii)基于该目的地地址以及该第二计算节点的转发表从该集群确定第三计算节点以便传输所接收到的网络分组,以及(iv)将所接收到的网络分组转发到该第三计算节点以便从该分布式路由器传输所接收到的网络分组。
示例42包括示例41所述的主题,并且其中,该目的地地址包括指示所接收到的网络分组的目标的目的地互联网协议地址;并且其中,用于生成该散列密钥包括用于基于该目的地互联网协议地址的两个最低有效位生成散列密钥。
示例43包括示例41和42中任一项所述的主题,并且其中,用于基于该散列密钥确定该第二计算节点包括用于将该散列密钥与多个流过滤器进行比较以便确定该第二计算节点,其中,每个流过滤器将不同的索引散列密钥与该分布式路由器的不同计算节点相关联。
示例44包括一种用于分布式路由表查找的分布式路由器的计算节点,该计算节点包括:流量入口模块,该流量入口模块用于:(i)接收第一网络分组,其中,该分布式路由器的每个计算节点包括用于存储从该分布式路由器的路由表获得的不同网络路由条目集合的转发表,(ii)基于包括在所接收到的第一网络分组中的并且指示所接收到的第一网络分组的目标的目的地地址生成散列密钥,其中,该散列密钥标识该分布式路由器的存储包括与该第一网络分组的目的地地址相对应的网络路由条目的转发表的计算节点,(iii)基于该散列密钥确定该分布式路由器的中间计算节点以便路由所接收到的第一网络分组,以及(iv)将所接收到的第一网络分组转发到该中间计算节点以便路由所接收到的第一网络分组;流反弹模块,该流反弹模块用于:(i)接收由该分布式路由器的另一个计算节点转发的第二网络分组,(ii)检查所接收到的第二网络分组以便确定与所接收到的第二网络分组的目标相关联的目的地地址,以及(iii)基于该第二网络分组的目的地地址以及该计算节点的转发表确定该分布式路由器的出口计算节点以便传输所接收到的第二网络分组。
示例45包括示例44所述的主题,并且其中,该第一网络分组的该目的地地址包括指示所接收到的第一网络分组的目标的目的地互联网协议地址;并且其中,用于生成该散列密钥包括用于基于该第一网络分组的该目的地互联网协议地址的两个最低有效位生成散列密钥。
示例46包括示例44和45中任一项所述的主题,并且其中,用于基于该散列密钥确定该中间计算节点包括用于将该散列密钥与多个流过滤器进行比较以便确定该中间计算节点,其中,每个流过滤器将不同的索引散列密钥与该分布式路由器的不同计算节点相关联。
示例47包括示例44至46中任一项所述的主题,并且其中,该不同路由条目集合的每个路由条目指示互联网协议地址;并且其中,该互联网协议地址的与该不同路由条目集合的每个路由条目相关联的两个最低有效位是相同的。
示例48包括示例44至47中任一项所述的主题,并且其中,该第二网络分组的该目的地地址包括指示所接收到的第二网络分组的目标的目的地互联网协议地址;并且该流反弹模块进一步用于基于该互联网协议地址的与该路由表的每个路由条目相关联的两个最低有效位从该分布式路由器的该路由表获得该不同路由条目集合。
示例49包括示例44至48中任一项所述的主题,并且进一步包括流量出口模块,该流量出口模块用于:(i)从该分布式路由器的另一个中间计算节点接收第三网络分组以及(ii)从该分布式路由器传输所接收到的第三网络分组。
示例50包括一种用于路由表查找的分布式路由器的入口计算节点,该入口计算节点包括流量入口模块,该流量入口模块用于:(i)接收网络分组,(ii)基于所接收到的网络分组内所包括的并且指示所接收到的网络分组的目标的目的地地址生成查询位集合,(iii)将该查询位集合与Bloom过滤器向量进行比较以便确定该分布式路由器的可能出口计算节点,其中,该Bloom过滤器向量包括用于该分布式路由器的路由表的每个网络路由条目的元素位集合,以及(iv)将所接收到的网络分组转发到该可能出口计算节点以便从该分布式路由器传输所接收到的网络分组。
示例51包括示例50所述的主题,并且其中,用于生成该查询位集合包括用于用参考散列函数集合对该目的地地址进行散列,其中,每个散列函数用于生成该查询位集合中的不同位。
示例52包括示例50和51中任一项所述的主题,并且其中,该流量入口模块进一步用于用该参考散列函数集合对该路由表的每个网络路由条目进行散列以便为每个网络路由条目生成该元素位集合,其中,每个散列函数用于为每个网络路由条目生成该元素位集合中的不同位。
示例53包括示例50至52中任一项所述的主题,并且其中,用于确定该可能出口计算节点包括用于确定该查询位集合是否与该Bloom过滤器向量的网络路由条目的元素位集合匹配。
示例54包括一种用于路由表查找的分布式路由器的入口计算节点,该入口计算节点包括:用于接收网络分组的装置;用于基于所接收到的网络分组内所包括的并且指示所接收到的网络分组的目标的目的地地址生成查询位集合的装置;用于将该查询位集合与Bloom过滤器向量进行比较以便确定该分布式路由器的可能的出口计算节点的装置,其中,该Bloom过滤器向量包括用于该分布式路由器的路由表的每个网络路由条目的元素位集合;以及用于将所接收到的网络分组转发到该可能的出口计算节点以便从该分布式路由器传输所接收到的网络分组的装置。
示例55包括示例54所述的主题,并且其中,用于生成该查询位集合的该装置包括用于用参考散列函数集合对该目的地地址进行散列的装置,其中,每个散列函数用于生成该查询位集合中的不同位。
示例56包括示例54和55中任一项所述的主题,并且进一步包括用于用该参考散列函数集合对该路由表的每个网络路由条目进行散列以便为每个网络路由条目生成该元素位集合的装置,其中,每个散列函数用于为每个网络路由条目生成该元素位集合中的不同位。
示例57包括示例54至56中任一项所述的主题,并且其中,用于确定该可能出口计算节点的该装置包括用于确定该查询位集合是否与该Bloom过滤器向量的网络路由条目的元素位集合匹配的装置。
示例58包括一种用于经由分布式路由器的路由表查找的方法,该方法包括:由该分布式路由器的入口计算节点接收网络分组;由该入口计算节点基于所接收到的网络分组内所包括的并且指示所接收到的网络分组的目标的目的地地址生成查询位集合;由该入口计算节点将该查询位集合与Bloom过滤器向量进行比较以便确定该分布式路由器的可能出口计算节点,其中,该Bloom过滤器向量包括用于该分布式路由器的路由表的每个网络路由条目的元素位集合;以及由该入口计算节点将所接收到的网络分组转发到该可能出口计算节点以便从该分布式路由器传输所接收到的网络分组。
示例59包括示例58所述的主题,并且其中,生成该查询位集合包括用参考散列函数集合对该目的地地址进行散列,其中,每个散列函数用于生成该查询位集合中的不同位。
示例60包括示例58和59中任一项所述的主题,并且进一步包括由该入口计算节点用该参考散列函数集合对该路由表的每个网络路由条目进行散列以便为每个网络路由条目生成该元素位集合,其中,每个散列函数用于为每个网络路由条目生成该元素位集合中的不同位。
示例61包括示例58至60中任一项所述的主题,并且其中,确定该可能出口计算节点包括确定该查询位集合是否与该Bloom过滤器向量的网络路由条目的元素位集合匹配。
示例62包括一种用于分布式路由表查找的分布式路由器的入口计算节点,该入口计算节点包括:处理器;以及存储器,该存储器其中存储有多条指令,当由该处理器执行时,该多条指令致使该入口计算节点执行示例58至61中任一项所述的方法。
示例63包括一种或多种机器可读介质,包括存储在其上的多条指令,响应于被执行,该多条指令致使分布式路由器的入口计算节点执行示例58至61中任一项所述的方法。

Claims (24)

1.一种用于分布式路由表查找的分布式路由器的入口计算节点,所述入口计算节点包括:
流量入口模块,用于(i)接收网络分组,其中,所述分布式路由器的每个计算节点包括用于存储从所述分布式路由器的路由表获得的不同网络路由条目集合的转发表,(ii)基于包括在所接收到的网络分组中的并且指示所接收到的网络分组的目标的目的地地址生成散列密钥,其中所述散列密钥标识所述分布式路由器的存储包括与所述目的地地址相对应的网络路由条目的转发表的计算节点,(iii)基于所述散列密钥确定所述分布式路由器的中间计算节点以便路由所接收到的网络分组,以及(iv)将所接收到的网络分组转发到所述中间计算节点以便路由所接收到的网络分组。
2.如权利要求1所述的入口计算节点,其中,所述目的地地址包括指示所接收到的网络分组的所述目标的目的地互联网协议地址;并且
其中,用于生成所述散列密钥包括用于基于所述目的地互联网协议地址的两个最低有效位生成散列密钥。
3.如权利要求1或2中任一项所述的入口计算节点,其中,用于基于所述散列密钥确定所述中间计算节点包括用于将所述散列密钥与多个流过滤器进行比较以便确定所述中间计算节点,其中每个流过滤器将不同的索引散列密钥与所述分布式路由器的不同计算节点相关联。
4.如权利要求3所述的入口计算节点,进一步包括分布式路由器管理模块,用于以下中的至少一项:将所述入口计算节点的所述多个流过滤器与所述分布式路由器的其他计算节点的其他流过滤器同步或者将所述入口计算节点的所述路由表与所述分布式路由器的其他计算节点的其他路由表同步。
5.如权利要求4所述的入口计算节点,其中,所述分布式路由器管理模块进一步用于(i)确定所述中间计算节点的可用性,(ii)响应于确定所述中间计算节点不可用,确定所述分布式路由器的替代中间计算节点以便路由所接收到的网络分组,以及(iii)基于所确定的替代中间计算节点更新所述多个流过滤器中的一个或多个;并且
其中,用于将所接收到的网络分组转发到所述中间计算节点包括用于将所接收到的网络分组转发到所述替代中间计算节点以便路由所接收到的网络分组。
6.一种用于分布式路由表查找的分布式路由器的入口计算节点,所述入口计算节点包括:
用于接收网络分组的装置,其中,所述分布式路由器的每个计算节点包括用于存储从所述分布式路由器的路由表获得的不同网络路由条目集合的转发表;
用于基于包括在所接收到的网络分组中的并且指示所接收到的网络分组的目标的目的地地址生成散列密钥的装置,其中,所述散列密钥标识所述分布式路由器的存储包括与所述目的地地址相对应的网络路由条目的转发表的计算节点;
用于基于所述散列密钥确定所述分布式路由器的中间计算节点以便路由所接收到的网络分组的装置;以及
用于将所接收到的网络分组转发到所述中间计算节点以便路由所接收到的网络分组的装置。
7.如权利要求6所述的入口计算节点,其中,所述目的地地址包括指示所接收到的网络分组的所述目标的目的地互联网协议地址;并且
其中,用于生成所述散列密钥的装置包括用于基于所述目的地互联网协议地址的两个最低有效位生成散列密钥的装置。
8.如权利要求6或7中任一项所述的入口计算节点,其中,用于基于所述散列密钥确定所述中间计算节点的装置包括用于将所述散列密钥与多个流过滤器进行比较以便确定所述中间计算节点的装置,其中,每个流过滤器将不同的索引散列密钥与所述分布式路由器的不同计算节点相关联。
9.如权利要求8所述的入口计算节点,进一步包括以下中的至少一项:(i)用于将所述入口计算节点的所述多个流过滤器与所述分布式路由器的其他计算节点的其他流过滤器同步的装置或者(ii)用于将所述入口计算节点的所述路由表与所述分布式路由器的其他计算节点的其他路由表同步的装置。
10.如权利要求9所述的入口计算节点,进一步包括:
用于确定所述中间计算节点的可用性的装置;
用于响应于确定所述中间计算节点不可用而确定所述分布式路由器的替代中间计算节点以便路由所接收到的网络分组的装置;
用于基于所确定的替代中间计算节点更新所述多个流过滤器中的一个或多个的装置;并且
其中,用于将所接收到的网络分组转发到所述中间计算节点的装置包括用于将所接收到的网络分组转发到所述替代中间计算节点以便路由所接收到的网络分组的装置。
11.一种用于分布式路由表查找的分布式路由器的中间计算节点,所述中间计算节点包括:
流反弹模块,用于(i)接收由所述分布式路由器的入口计算节点转发的网络分组,其中所述分布式路由器的每个计算节点包括用于存储从所述分布式路由器的路由表获得的不同网络路由条目集合的转发表,(ii)检查所接收到的网络分组以便确定与所接收到的网络分组的目标相关联的目的地地址,以及(iii)基于所述目的地地址以及所述中间计算节点的所述转发表确定所述分布式路由器的出口计算节点以便传输所接收到的网络分组。
12.如权利要求11所述的中间计算节点,其中,所述不同路由条目集合的每个路由条目指示互联网协议地址;并且
其中,所述互联网协议地址的与所述不同路由条目集合的每个路由条目相关联的两个最低有效位是相同的。
13.如权利要求12所述的中间计算节点,其中,所述目的地地址包括指示所接收到的网络分组的所述目标的目的地互联网协议地址;并且
其中,所述流反弹模块进一步用于基于所述互联网协议地址的与所述路由表的每个路由条目相关联的两个最低有效位从所述分布式路由器的所述路由表获得所述不同路由条目集合。
14.如权利要求13所述的中间计算节点,其中,用于获得所述不同路由条目集合包括用于响应于确定所述不同集合的一个或多个路由条目未被存储在所述中间计算节点的所述转发表内,从所述分布式路由器的所述路由表获得所述不同集合的所述一个或多个路由条目。
15.如权利要求11至14中任一项所述的中间计算节点,其中,用于确定所述出口计算节点包括用于从所述中间节点确定出口计算节点以便从所述分布式路由器传输所接收到的网络分组;并且
其中,所述流反弹模块进一步用于将所接收到的网络分组转发到不同于所述中间节点的所述出口计算节点以便从所述分布式路由器传输所接收到的网络分组。
16.如权利要求11至14中任一项所述的中间计算节点,其中,用于确定所述分布式路由器的所述出口计算节点包括用于基于所述目的地地址和所述中间计算节点的转发表确定所述中间计算节点是所述出口计算节点;以及
所述中间计算节点进一步包括流量出口模块,所述流量出口模块用于将所接收到的网络分组传输到与所接收到网络分组的所述目标相关联的所述目的地地址。
17.如权利要求11至14中任一项所述的中间计算节点,其中,用于确定所述分布式路由器的所述出口计算节点包括用于将所述目的地地址与所述中间计算节点的转发表进行比较;并且
其中,所述流反弹模块进一步用于响应于确定与所述目的地地址相对应的网络路由条目未被存储在所述中间计算节点的转发表内而将所述目的地地址与所述分布式路由器的所述路由表进行比较。
18.一种用于分布式路由表查找的分布式路由器的中间计算节点,所述中间计算节点包括:
用于接收由所述分布式路由器的入口计算节点转发的网络分组的装置,其中所述分布式路由器的每个计算节点包括用于存储从所述分布式路由器的路由表获得的不同网络路由条目集合的转发表;
用于检查所接收到的网络分组以便确定与所接收到的网络分组的目标相关联的目的地地址的装置;以及
用于基于所述目的地地址和所述中间计算节点的转发表确定所述分布式路由器的出口计算节点以便传输所接收到的网络分组的装置。
19.如权利要求18所述的中间计算节点,其中,所述不同路由条目集合的每个路由条目指示互联网协议地址;并且
其中,所述互联网协议地址的与所述不同路由条目集合的每个路由条目相关联的两个最低有效位是相同的。
20.如权利要求19所述的中间计算节点,其中,所述目的地地址包括指示所接收到的网络分组的所述目标的目的地互联网协议地址;并且进一步包括:
用于基于所述互联网协议地址的与所述路由表的每个路由条目相关联的两个最低有效位从所述分布式路由器的所述路由表获得所述不同路由条目集合的装置。
21.如权利要求20所述的中间计算节点,其中,用于获得所述不同路由条目集合的装置包括用于响应于确定所述不同集合的一个或多个路由条目未被存储在所述中间计算节点的转发表内而从所述分布式路由器的所述路由表获得所述不同集合的所述一个或多个路由条目的装置。
22.如权利要求18至21中任一项所述的中间计算节点,其中,用于确定所述出口计算节点的装置包括用于确定不同于所述中间节点的出口计算节点以便从所述分布式路由器传输所接收到的网络分组的装置;并且进一步包括:
用于将所接收到的网络分组转发到不同于所述中间节点的所述出口计算节点以便从所述分布式路由器传输所接收到的网络分组的装置。
23.如权利要求18至21中任一项所述的中间计算节点,其中,用于确定所述分布式路由器的所述出口计算节点的装置包括用于基于所述目的地地址和所述中间计算节点的转发表确定所述中间计算节点是所述出口计算节点的装置;并且进一步包括:
用于向与所接收到的网络分组的目标相关联的目的地地址传输所接收到的网络分组的装置。
24.如权利要求18至21中任一项所述的中间计算节点,其中,用于确定所述分布式路由器的所述出口计算节点的装置包括用于将所述目的地地址与所述中间计算节点的转发表进行比较的装置;并且进一步包括:
用于响应于确定与所述目的地地址相对应的网络路由条目未被存储在所述中间计算节点的转发表内而将所述目的地地址与所述分布式路由器的所述路由表进行比较的装置。
CN201510136802.XA 2014-04-29 2015-03-26 用于分布式路由表查找的分布式路由器的入口计算节点和机器可读介质 Expired - Fee Related CN105049359B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/264,912 US9847935B2 (en) 2014-04-29 2014-04-29 Technologies for distributed routing table lookup
US14/264,912 2014-04-29

Publications (2)

Publication Number Publication Date
CN105049359A true CN105049359A (zh) 2015-11-11
CN105049359B CN105049359B (zh) 2018-12-11

Family

ID=54261851

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510136802.XA Expired - Fee Related CN105049359B (zh) 2014-04-29 2015-03-26 用于分布式路由表查找的分布式路由器的入口计算节点和机器可读介质

Country Status (4)

Country Link
US (2) US9847935B2 (zh)
KR (2) KR101774951B1 (zh)
CN (1) CN105049359B (zh)
DE (1) DE102015102871B4 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107094114A (zh) * 2016-01-13 2017-08-25 英特尔公司 用于模块化转发表可缩放性的技术
WO2017190559A1 (zh) * 2016-05-06 2017-11-09 华为技术有限公司 路由查找方法、装置、分配节点、查找节点及入口节点
CN110650092A (zh) * 2019-09-24 2020-01-03 网易(杭州)网络有限公司 一种数据处理的方法和装置
CN112187659A (zh) * 2020-04-24 2021-01-05 谷歌有限责任公司 用于减轻多路径网络中的散列相关性的方法
US10931579B2 (en) 2016-06-24 2021-02-23 Huawei Technologies Co., Ltd. Route search method and apparatus, and routing device
CN114157594A (zh) * 2021-11-02 2022-03-08 北京中合谷投资有限公司 一种用于分布式网络的开源路由器

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105306241B (zh) * 2014-07-11 2018-11-06 华为技术有限公司 一种业务部署方法及网络功能加速平台
US10572509B2 (en) 2015-07-27 2020-02-25 Cisco Technology, Inc. Scalable spine nodes with partial replication of routing information in a network environment
US10069646B2 (en) 2015-12-02 2018-09-04 Nicira, Inc. Distribution of tunnel endpoint mapping information
US9912616B2 (en) * 2015-12-02 2018-03-06 Nicira, Inc. Grouping tunnel endpoints of a bridge cluster
US10719341B2 (en) 2015-12-02 2020-07-21 Nicira, Inc. Learning of tunnel endpoint selections
US10164885B2 (en) 2015-12-02 2018-12-25 Nicira, Inc. Load balancing over multiple tunnel endpoints
WO2017161340A1 (en) * 2016-03-18 2017-09-21 Coco Communications Corp. Systems and methods for sharing network information
US10417064B2 (en) * 2016-09-07 2019-09-17 Military Industry—Telecommunication Group (Viettel) Method of randomly distributing data in distributed multi-core processor systems
CN110036381A (zh) * 2016-09-22 2019-07-19 维萨国际服务协会 存储器内数据搜索技术
US10374954B1 (en) * 2016-10-01 2019-08-06 Juniper Networks, Inc Apparatus, system, and method for increasing hashing efficiency in network devices
US10462059B2 (en) 2016-10-19 2019-10-29 Intel Corporation Hash table entries insertion method and apparatus using virtual buckets
US10394784B2 (en) 2016-12-22 2019-08-27 Intel Corporation Technologies for management of lookup tables
US10873498B2 (en) * 2017-10-23 2020-12-22 Hewlett Packard Enterprise Development Lp Server network interface level failover
US10944717B2 (en) * 2018-03-12 2021-03-09 Stellar Cyber, Inc. LSB based symmetric receive-side scaling
US11218407B2 (en) * 2020-04-28 2022-01-04 Ciena Corporation Populating capacity-limited forwarding tables in routers to maintain loop-free routing
US11935120B2 (en) 2020-06-08 2024-03-19 Liquid-Markets GmbH Hardware-based transaction exchange
US11743067B2 (en) * 2021-12-06 2023-08-29 Cisco Technology, Inc. Systems and methods for preventing solicited-node multicast address collisions
US20230396532A1 (en) * 2022-06-06 2023-12-07 At&T Intellectual Property I, L.P. Minimizing customer impact during access migrations
US11743191B1 (en) 2022-07-25 2023-08-29 Vmware, Inc. Load balancing over tunnel endpoint groups

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7151775B1 (en) * 1999-09-23 2006-12-19 Pluris, Inc. Apparatus and method for forwarding data on multiple label-switched data paths
US7443841B2 (en) * 2002-10-30 2008-10-28 Nortel Networks Limited Longest prefix matching (LPM) using a fixed comparison hash table
US8976672B2 (en) * 2006-10-03 2015-03-10 Cisco Technology, Inc. Efficiently decoupling reservation and data forwarding of data flows in a computer network
US8904028B2 (en) 2009-07-17 2014-12-02 Intel Corporation Scalable cluster router
US8516152B2 (en) * 2010-11-12 2013-08-20 Alcatel Lucent Lookahead computation of routing information
US9729669B2 (en) * 2012-03-15 2017-08-08 Alcatel Lucent Method and system for fast and large-scale longest prefix matching

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107094114A (zh) * 2016-01-13 2017-08-25 英特尔公司 用于模块化转发表可缩放性的技术
WO2017190559A1 (zh) * 2016-05-06 2017-11-09 华为技术有限公司 路由查找方法、装置、分配节点、查找节点及入口节点
CN107347035A (zh) * 2016-05-06 2017-11-14 华为技术有限公司 路由查找方法、装置、分配节点、查找节点及入口节点
CN107347035B (zh) * 2016-05-06 2020-05-08 华为技术有限公司 路由查找方法、装置、分配节点、查找节点及入口节点
US10680950B2 (en) 2016-05-06 2020-06-09 Huawei Technologies Co., Ltd. Route searching method and apparatus, allocation node, searching node, and ingress node
US10931579B2 (en) 2016-06-24 2021-02-23 Huawei Technologies Co., Ltd. Route search method and apparatus, and routing device
CN110650092A (zh) * 2019-09-24 2020-01-03 网易(杭州)网络有限公司 一种数据处理的方法和装置
CN110650092B (zh) * 2019-09-24 2022-05-03 网易(杭州)网络有限公司 一种数据处理的方法和装置
CN112187659A (zh) * 2020-04-24 2021-01-05 谷歌有限责任公司 用于减轻多路径网络中的散列相关性的方法
CN114157594A (zh) * 2021-11-02 2022-03-08 北京中合谷投资有限公司 一种用于分布式网络的开源路由器

Also Published As

Publication number Publication date
US9847935B2 (en) 2017-12-19
CN105049359B (zh) 2018-12-11
KR101774951B1 (ko) 2017-09-05
KR20150124885A (ko) 2015-11-06
KR102162730B1 (ko) 2020-10-07
US20180019943A1 (en) 2018-01-18
US20150312144A1 (en) 2015-10-29
KR20170102841A (ko) 2017-09-12
US10623311B2 (en) 2020-04-14
DE102015102871B4 (de) 2022-12-22
DE102015102871A1 (de) 2015-10-29

Similar Documents

Publication Publication Date Title
CN105049359A (zh) 用于分布式路由表查找的技术
US9215172B2 (en) Hashing-based routing table management
US9444743B2 (en) Network system, switch and connected terminal detection method
US9143441B2 (en) Sliced routing table management
US9692695B2 (en) Techniques for aggregating hardware routing resources in a multi-packet processor networking system
US20160241474A1 (en) Technologies for modular forwarding table scalability
US8787373B2 (en) Multicast miss notification for a distributed network switch
US8792494B2 (en) Facilitating insertion of device MAC addresses into a forwarding database
US9973400B2 (en) Network flow information collection method and apparatus
WO2013054344A2 (en) Method and apparatus for end-end communication and inter-domain routing in omnipresent ethernet networks with an option to migrate to mpls-tp
CN105706391A (zh) 通过索引的本地化来增加组播规模
CN105471745A (zh) 用于在粗粒度和细粒度的负荷平衡之间进行桥接的技术
CN111147372B (zh) 下行报文发送、转发方法和装置
JP6618610B2 (ja) ルーティング管理
KR20130052031A (ko) 스위치 시스템, 및 데이터 전송 방법
CN102724131A (zh) 一种ip报文等价路由均衡实现的方法及装置
CN107395479B (zh) 无损环网交换机、无损自愈环网及其数据通讯方法
JP2016103697A (ja) ネットワークシステム、制御装置、通信装置、通信装置の制御方法及びプログラム
US10110474B2 (en) Updating interface list of multi-link group
CN107094114A (zh) 用于模块化转发表可缩放性的技术

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20181211

Termination date: 20210326

CF01 Termination of patent right due to non-payment of annual fee