CN104685837A - 高速内容路由 - Google Patents
高速内容路由 Download PDFInfo
- Publication number
- CN104685837A CN104685837A CN201380040126.5A CN201380040126A CN104685837A CN 104685837 A CN104685837 A CN 104685837A CN 201380040126 A CN201380040126 A CN 201380040126A CN 104685837 A CN104685837 A CN 104685837A
- Authority
- CN
- China
- Prior art keywords
- line card
- message
- input line
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 67
- 239000004744 fabric Substances 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 31
- 239000000872 buffer Substances 0.000 claims description 18
- 230000008878 coupling Effects 0.000 claims description 13
- 238000010168 coupling process Methods 0.000 claims description 13
- 238000005859 coupling reaction Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 description 7
- 239000000203 mixture Substances 0.000 description 5
- 239000006185 dispersion Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000000875 corresponding effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000007634 remodeling Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6402—Hybrid switching fabrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
- H04L45/7459—Address table lookup; Address filtering using hashing using Bloom filters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/60—Router architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
不同的示例性实施例涉及一种方法以及相关的网络节点,其包括以下的一种或多种:在网络设备的第一输入线卡接收消息,所述消息包括目的地地址;基于确定第二输入线卡配置了与所述目的地地址相关的路由信息,由所述第一输入线卡向第二输入线卡发送消息;由所述第二输入线卡并基于与所述目的地地址相关的路由信息,确定所述消息应该经由所述网络设备的第一输出线卡被转发到另一网络设备;基于确定所述消息应当被转发,由所述第二输入线卡发送消息至所述第一输出线卡;并由所述第一输出线卡发送所述消息至另一网络设备。
Description
技术领域
本文公开的各种示例性实施例一般性地涉及计算机网络。
背景技术
因特网已经从互连机器的媒介进化成连接具有内容——如视频和照片——的设备的媒介。虽然因特网是在多种技术的基础之上开发的,例如经由IP地址的路由信息,鉴于因特网的现状,未来架构可采用替代的机制。很多提案中的一个普遍原则是,这些未来架构以提供的内容为中心,而不是以机器本身为中心。
内容为中心(content-centric)网络是较新的范式(paradigm),其中以名称而不是以位置请求内容。该范式可以采用基于名称的路由,其中路由器可以基于“内容名称”将流量移动至的目的服务器。这样,对于被移动的内容可以向因特网路由器提供明确的信息。
基于名称的路由的一个结果是,当IP地址受变量数量的约束且在地理上聚合时,内容名称可以采用几乎任何值,并且可以指向位于任何地方的服务器,不论托管具有相似名称的内容的服务器所处的位置。因此,在基于名称的路由表中的条目数可在数量级上大于IPv4或IPv6路由表。这在高效存储表及使用该表迅速转发流量方面提出了新的挑战。
发明内容
下文介绍了多种实施例的简要总结。在下面的总结中可能作出了一些简化与省略,其意在突出并介绍所述多种示例性实施例的一些方面,但并未限制本发明的范围。将在后面的章节详细描述优选的示例性实施例,所述实施例足以使那些本领域普通技术人员能够实现并使用本发明的思想。
多种示例性实施例涉及由网络装置执行的用于转发消息的方法,该方法包括:在所述网络设备的第一输入线卡接收将向目的地转发的消息,该消息包括目的地地址;由所述第一输入线卡确定网络设备的第二输入线卡被配置了与所述目的地地址相关的路由信息;基于所述第二输入线卡被配置了与所述目的地地址相关的路由信息的确定,由所述第一输入线卡向所述第二输入线卡发送消息;由第二输入线卡并基于与所述目的地地址相关的路由信息,确定该消息应该经由所述网络设备的第一输出线卡被转发到另一网络设备;基于该消息应经由所述网络设备的第一输出线卡被转发到另一网络设备的确定,由所述第二输入线卡发送消息至第一输出线卡;以及由所述第一输出线卡发送该消息至另一网络设备。
描述了多种实施例,其中第一输出线卡包括第一输入线卡和第二输入线卡中的一个。
描述了多种实施例,其中目的地地址为内容名称。
描述了多种实施例,其中发送所述消息至第二线包括,由第一输入线卡发送消息至第二输入线卡的输入端口。
描述了多种实施例,其中由第一输入线卡确定网络设备的第二输入线卡被配置为与所述目的地地址相关的路由信息,包括:在目标地址的至少一部分上执行散列函数以生成散列的目的地地址;以及确定所述第二输入线卡的分配的标识符对应于所述散列的目的地地址。
描述了多种实施例,其中由第一输入线卡存储第一组转发消息,第二输入线卡存储不同于所述第一组转发消息的第二组转发消息。
多种示例性实施例涉及一种用于转发消息的网络设备,该网络设备包括:被配置以存储路由信息的路由信息库(RIB)存储器;多个线卡;以及处理器,其被配置以:生成线卡表,该线卡表将所述多个线卡中的第一输入线卡与第一标识符关联,并将所述多个线卡中的第二输入线卡与第二标识符关联;基于所述路由信息与所述第一标识符生成第一组转发信息;基于所述路由信息与所述第二标识符生成不同于所述第一组转发信息的第二组转发信息;向第一输入线卡提供所述线卡表和所述第一组转发信息;以及向第二输入线卡提供所述线卡表与所述第二组转发信息。
描述了多种实施例,其中在基于路由信息和第一标识符生成第一组转发信息中,所述处理器被配置以:基于所述路由信息生成地址前缀和相关的转发信息;对于地址前缀,执行数学运算以生成值;确定该值与第一标识符相匹配;并基于匹配所述第一标识符的值,在所述第一组转发信息中包括所述地址前缀。
描述了多种实施例,其中处理器被进一步配置以:接收所述第二输入线卡发生故障的指示;生成更新的线卡表,其将所述第一标识符与所述第一输入线卡相关联,并且将所述第二标识符与所述多个线卡中的第一输出线卡相关联;基于所述路由信息与所述第二标识符,生成第三组转发信息;并向所述第一输出线卡提供更新的线卡表和第三组转发信息。
描述了多种实施例,其中第一输入线卡包括:被配置以存储所述线卡表的第一存储器;和第一处理管理器,其被配置以:接收将向目的地设备转发的消息,该消息包括目的地地址;基于所述第二标识符和所述目的地地址,确定第二输入线卡应该处理该消息;并基于对所述第二输入线卡应该处理该消息的确定,发送该消息到所述第二输入线卡。
描述了多种实施例,其中第二输入线卡包括:第二处理管理器,其被配置以确定所述第二输入线卡应该处理消息;以及转发模块,其被配置以:确定第一输出线卡应该转发所述消息至另一网络设备,并发送所述消息至第一输出线卡。
描述了多种实施例,其中第二输入线卡进一步包括被配置以存储缓存表的存储器;并且转发模块为缓存,其被配置以,在确定所述第一输出线卡应该转发所述消息至另一网络设备中:确定所述缓存表存储与目的地地址相关的条目,并确定所述条目标识第一输出线卡。
描述了多种实施例,其中所述第二输入线卡进一步包括:被配置以存储所述第二组转发信息的散列表存储设备;并且所述转发模块是最长前缀匹配(LPM)块,其被配置以,在确定所述第一输出线卡应将消息转发至另一网络设备中:识别所述第二组转发信息的条目,其对于目的地地址具有最长匹配前缀;并确定该条目标识所述第一输出线卡。
描述了多种实施例,其中,在识别对于目的地地址具有最长匹配前缀的所述第二组转发信息的条目中,所述LPM块利用分散式布隆滤波器(Bloom filter)集合来确定所述最长匹配前缀的长度。
多种示例性实施例涉及一种用于转发消息的网络设备,该网络设备包括:第一输入线卡,其存储第一组转发信息;和第二输入线卡,其存储不同于第一组转发信息的第二组转发信息,其中所述第一输入线卡被配置以:接收将被转发的消息,并将所述消息传递至第二输入线卡,并且其中所述第二输入线卡被配置以:基于所述第二组转发信息来转发所述消息。
描述了多种实施例,其中,第一组转发信息与第二组转发信息存储对内容地址前缀的转发信息。
描述了多种实施例,其中,所述网络设备包括交换结构并且,在基于所述第二组转发信息的转发消息中,所述第二输入线卡被配置以经由所述交换结构发送消息。
描述了多种实施例,其中所述第一输入线卡被配置以确定与所述消息相关的目的地地址被分配给所述第二输入线卡。
描述了多种实施例,其中,在确定与所述消息相关的目的地地址被分配给所述第二输入线卡中,所述第一输入线卡被配置以:基于所述目的地地址的至少一部分生成散列值;基于所述散列值和多个为所述网络设备配置的线卡生成索引;且确定所述索引对应于所述第二输入线卡。
描述了多种实施例,其中,所述第二组转发信息包括用于多个不同长度的地址前缀的转发信息并且,在基于所述第二组转发信息转发所述消息中,所述第二输入线卡被配置以:提取所述消息的目的地地址;对所述目的地地址施加分散式布隆滤波器集合以确定起始前缀长度;并通过评估至少具有起始前缀长度的地址前缀的转发信息,开始查找所述第二组转发信息。
附图说明
参考附图以便更好地理解多种示例性实施例,其中:
图1示出了用于路由消息的示例性网络;
图2示出了用于路由消息的示例性网络设备;
图3示出了用于存储路由信息的示例性数据安排;
图4示出了用于提供在线卡间分散(distributing)转发信息的示例性方法;
图5示出了示例性线卡;
图6示出了关于线卡的示例性存储器内容;
图7示出了用于存储缓存数据的示例性数据安排;
图8示出了用于存储转发信息的示例性数据安排;
图9示出了用于转发消息的示例性方法,以及;
图10示出了用于执行最长前缀匹配的示例性方法。
为便于理解,使用相同的参考数字指定具有实质上相同或相似的结构或实质上相同或相似的功能的元元素。
具体实施方式
如上所述,各种新兴的路由范例提议扩展在因特网和其他网络上用于路由流量的路由表。虽然更大的表可以被更大更快的存储器与更快的处理器所适应,这样的方法可能成本过高(cost-prohibitive)。因此,可能期望一种实现路由解析的方法,所述方法可以在多个硬件实体之间分散(distribution)路由表和/或多种路由操作。参照下文的描述,多种附加的目的和优点将是显而易见的。本领域技术人员显而易见的是,尽管本文描述的多种实例是对基于名称路由的描述,所描述的方法和系统在其它环境中也可以使用,例如根据Ipv4或IPv6协议的路由。
现参阅附图,其中相同的标号指代相同的组件或步骤,公开了多种示例性实施例广泛的方面。
图1示出了用于路由消息的示例性网络100。在多种实施例中,所述示例性网络100可以是因特网或其一部分。本领域技术人员显而易见的是所述示例性网络100可能在某些方面构成简化。例如,所述示例性网络100可包括许多附加的客户端、服务器、路由器、交换机、和/或其他网络设备。如图所示,所述示例性网络100可包括多个网络设备:客户端设备110,两个服务器120、130,和5个路由器140a-e。如本文所使用的,术语“路由器”可被理解为是指任何能够接收数据消息并将数据消息向他们的最终目的地转发的网络设备。因此,术语“路由器”可包括在网络的OSI模型的任意层操作的网络设备如,例如,交换机(层2)或真正的路由器(层3)。此外,术语“消息”将被理解为包括从一个设备传递到另一个设备的任何数据组块如,例如,帧或数据包。
如图所示,路由器140a-e可以使客户端设备110、服务器120、和服务器130互连,使得消息可以在这些设备之间交换。如上所述,示例性网络100可能构成简化并且,因此,可能会有在所示的那些网络设备之间提供通信的多个中间路由器和/或其他网络设备(未示出)。例如,路由器140c可通过一个或多个中间网络设备(未示出)连接到服务器120。
客户端设备110可以是能够经由网络请求并接收内容的任何设备。例如,客户端设备110可包括个人计算机、笔记本电脑、移动电话,平板电脑、或其他设备。服务器120、130的每一个均可以是任何能够接收请求和提供内容的设备。例如,服务器120、130可各自包括个人计算机、独立(stand-alone)服务器、刀片服务器、或其他设备。服务器120、130可各自托管多个内容项,每项均由至少一个内容名称标识。如图所示,例如,服务器120可以托管被标识为“TUX/notes.txt”,“JDOE/notes.txt”与“/JDOE/VIDEOS/JD2012/vid.avi”的3个内容项。作为另一示例,服务器130还可以托管被标识为“/JDOE/PAPERS/PaperA.pdf”,“/JDOE/PAPERS/PaperB.pdf”与“/JDOE/VIDEOS/abc.mpg”的3个内容项。所述客户端设备110可通过发送请求消息来请求这些项目中的任意项目的传递,其可在随后被路由器140a-e路由到适当的服务器120、130。该路由可基于被请求的内容的名称执行。因此,内容的名称可被称为所述请求消息的目的地地址。服务器120、130随后可以使用该请求来定位适当的内容,并经由路由器150a-e将内容发送回客户端设备110。
作为示例,图1示出了发送请求消息150到路由器140a的客户端设备110。所述请求消息150可包括“/JDOE/VIDEOS/abc.mpg”的目的地地址。因此,所述消息150可以请求由服务器130存储的内容。一旦接收到请求消息150,路由器140a可随后执行多种路由操作,以确定请求消息150应被转发至哪个路由器,或“下一跳”,以便向其最终目的地推进该请求消息150。为提供这种能力,所述路由器140a-e可各自包括用于网络100的路由表。备选地,路由器140a-e可以共同实现分散式路由表。这样,每个路由器140a-e均可包括与该组路由器140a-e相关联的路由表的一部分而非全部。例如,每个路由器140a-e可被分配已分配地址的一个范围,其中路由器140a-e可以存储可用路由记录。在多种备选实施例中,网络100可包括不是路由器并且包含所述分散的路由表的一部分的一个或多个网络设备。例如,网络100可包括专用服务器(未示出),其存储所述分散的路由表的一部分并以类似于路由器140a-e可能如何在转发消息方面向其他路由器140a-e提供协助的方式,协助路由器140a-e转发消息。有关多个网络设备中的路由表的分散的进一步细节在编号为13/421389,于2012年3月15日提交的共同未决申请中描述,其以参考的方式被全文引入用于本文所有目的。
在多种备选实施例中,请求消息150可以寻址被请求内容的特定“组块”。例如,所述请求消息150可请求“/JDOE/VIDEOS/abc.mpg/chunk2”。在多种实施例中,其中用于特定内容项的所有组块被存储在同一位置,用于处理该消息的目的地地址可以省略组块标识符,因此基于“/JDOE/VIDEOS/abc.mpg”进行路由。在多种备选实施例中如,例如,内容可被分散在多个服务器之中的实施例中,路由器也可基于所述组块标识符路由,因此该示例中基于“/JDOE/VIDEOS/abc.mpg/chunk2”进行路由。
图2示出了用于路由消息的示例性网络设备200。所述网络设备200可对应于示例性网络100中的路由器140a-e中的一个或多个。因此,网络设备200可被配置为基于目的地地址——如内容名称——路由消息。如图所示,示例性网络设备可包括控制平面210与数据平面220。控制平面210可包括路由信息库(RIB)存储装置212、处理器214、以及存储器216。数据平面可包括多个线卡222a-b、224a-b、226a-b以及多个交换结构230、232。
RIB存储器212可以是被配置为存储路由信息如RIB的设备。所述RIB存储器212可包括机器可读存储介质,如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备、和/或类似的存储介质。例如,RIB存储器212可包括存储与可以通过多种下一跳设备到达哪些目的地地址有关的消息的SRAM。所述RIB存储装置212的示例性内容将参照图3在下文更详细地说明。
处理器214可以是处理设备,例如微处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、或其他设备。所述处理器214可被配置以执行多种控制平面功能。存储器216可包括任何能够支持处理器214的存储器设备。例如,所述存储器216可包括一个或多个的SRAM芯片。
在多种实施例中,所述处理器214可被配置以基于所述RIB存储器212的内容生成一组或多组转发信息,并向线卡222a-b、224a-b、226a-b提供所述一组或多组转发信息,如转发信息库(FIB)。这个生成可包括为每个已知地址前缀和相关的网跳设备选择至适当输出端口或线卡的最优路由。
在多种实施例中,处理器214可被配置以向线卡222a-b、224a-b、226a-b中的每一个提供不同组的转发信息。参照图4更详细地描述如下,所述处理器214可为线卡222a-b、224a-b、226a-b中的每一个提供全部转发信息的一个子集。所述处理器214还可以向线卡222a-b、224a-b、226a-b中的每一个提供线卡表,用于确定哪个线卡222a-b、224a-b、226a-b被给予了用于处理具有给定目的地地址的消息的转发信息。
所述线卡222a-b、224a-b、226a-b可各自构成具有一个或多个输入端口及一个或多个输出端口能够接收并转发消息的设备。线卡222a-b、224a-b、226a-b中的每一个可用作输入线卡222a、224a、226a,以及输出线卡222b、224b、226b。所述输入线卡222a、224a、226a可各自被配置以接收消息,无论是从另一外部设备还是交换结构230、232,并随后经由所述交换结构230、232将该消息发送至适当的输出线卡222b、224b、226b。所述输出线卡222b、224b、226b可被配置以从交换结构230、232接收消息并将该消息输出到下一跳网络设备。因此,本文中所使用的术语“输入线卡”和“输出线卡”可指分别执行输入与输出功能的相同类型的物理设备。进一步地,“线卡”可以构成“输入线卡”和“输出线卡”两者。所述数据平面220可包括许多额外的线卡(未示出)。在多种实施例中,所述数据平面220可以包括五百或一千个线卡(未示出)。
交换结构230、232可包括硬件或机器可执行指令,所述指令编码机器可读介质上,被配置以在线卡222b、224b、226b之间传输消息。应理解所述数据平面220可以包括较少的或附加的交换结构(未示出)。在多种实施例中,所述数据平面220可以包括八个或十六个交换结构(未示出)。
下面将参照图5-10进行更详细地说明,输入线卡222a、224a、226a可以基于本地转发信息库(FIB)选择合适的输出线卡222b、224b、226b。一旦接收到消息,输入线卡222a、224a、226a可首先查阅本地线卡表以确定本地FIB是否可能包括对转发该消息有用的转发信息。如果不能,所述输入线卡222a、224a、226a可将消息转发至可以获得所述转发信息的另一输入线卡222a、224a、226a。例如,如消息路径240所示,输入线卡1222a可接收消息,并确定输入线卡2224a可能存储对转发该消息有用的转发信息。此后,输入线卡1222a可经由交换结构230、232之一将该消息转发至输入线卡2224a。接着,线卡2224a可以使用本地存储的转发信息以确定该输出线卡122b应转发该消息至下一跳。可能是这种情况,例如,其中每个线卡222a-b、224a-b、226a-b包括连接到不同的设备的多个端口。输入线卡2可随后将该消息传递给输出线卡1222b,输出线卡1222b可随后将该消息转发至另一网络设备。
在一些情况下,线卡222a-b、224a-b、226a-b可接收消息,所述线卡222a-b、224a-b、226a-b为该消息存储有用的转发信息。例如,在消息流250中,线卡N 226a可以从外部设备接收消息,并基于本地存储的转发信息确定线卡2224b应转发该消息至下一跳。输入线卡N 226a可随后将该消息直接转发到输出线卡2224b,其可能,依次,将该消息转发到下一跳设备。
图3示出了用于存储路由信息的示例性数据安排300。数据安排300可使用多种数据结构来实现,例如,对象、数组、链表、树、和/或散列表。数据安排300可被存储在,例如,所述示例性网络设备200的RIB存储器212之中。所述数据安排300可以包括多个字段,如内容前缀字段310、下一跳字段320,以及度量字段330。
内容前缀字段310可以存储内容名称或者其他目的地地址的至少一部分。内容前缀字段310的值可指示适用于匹配该值的流量的条目。所述下一跳字段320可存储下一跳设备的标识符,所述下一跳设备能够将匹配相关前缀的流量路由至其目的地。在多种实施例中,所述下一跳字段320可以备选地或附加地为匹配的流量存储输出线卡和/或端口的指示。所述度量字段330可以存储一个或多个度量,可用于确定对于特定前缀,哪个路径最快、成本最低、或最好。
作为示例,所述数据安排300被示为包括多个条目340-380。数据安排300可以包括许多附加的条目390。第一条目340可指示匹配内容前缀“/TUX”的流量可以被转发至下一跳“b”,并且与该路径相关的度量值被设定为值“2”。下一条目350也可以适用于匹配内容前缀“/TUX”的流量,指示下一跳“d”也能够向目的地转发该流量,但度量值为“3”。当生成转发信息中,处理器214可选择这些条目340、350中的一个以在匹配所述“/TUX”前缀的流量的转发中使用。在这种情况下,处理器214可选择第一条目340,因为该条目带有较低的度量值“2”。因此,该处理器214可指示线卡222a-b、224a-b、226a-b以通过所提供的转发信息将该流量转发到下一跳b。
第三和第四条目360、370同样可以为匹配内容前缀“/JDOE”的流量指定可用的路径和成本。并非所有的条目可包括相同长度的前缀。如第五条目380所示,匹配内容前缀“/JDOE/PAPERS”的流量可以以“1”的度量成本被转发到下一跳“d”。虽然给定的消息可能同时匹配前缀“/JDOE”和“JDOE/PAPERS”,本文中描述的网络设备可使用“最长前缀匹配”,从而按照最长匹配前缀路由该消息。在图3的示例中,如果第五条目380中的信息被提供作为向线卡222a-b、224a-b、226a-b的转发的信息,将根据该信息转发所述消息。
图4示出了用于提供在线卡之间分散转发信息的示例性方法400。所述方法400可以由网络设备200的组件如处理器214执行。每当转发信息应被提供给线卡222a-b、224a-b、226a-b时如——例如当RIB变化时或者当由于线卡故障或其他原因导致的活动线卡的数量变化时——可执行所述方法400。
方法400可开始于步骤405并进行到步骤410,其中处理器214可以给活动线卡222a-b、224a-b、226a-b中的每一个分配整数。该步骤可包括分配整数给系统中的所有线卡222a-b、224a-b、226a-b、仅那些为活动的222a-b、224a-b、226a-b的线卡、或仅那些未经历故障的线卡222a-b、224a-b、226a-b。接下来,在步骤415中,所述处理器214可基于分配的整数生成线卡表。该线卡表可以是,例如,将每个线卡222a-b、224a-b、226a-b的标识符与所分配的整数相关联的表。
在步骤420中,处理器214可根据本领域中任何已知的方法从RIB中生成主FIB。该步骤可以包括,例如,为各种地址前缀评估与各种下一跳相关的度量,合并(consolidation)各种地址前缀,或将下一跳设备转换成相应的输出线卡或输出端口。
处理器214随后可开始遍历(iterating through)所述主FIB,通过在步骤425中获取FIB条目为线卡222a-b、224a-b、226a-b中的每一个创建FIB。接下来,处理器214可确定哪些线卡222a-b、224a-b、226a-b应该在步骤430中接收RIB条目。在本示例中,所述处理器214可获取由所述条目所携带的内容前缀的第一成分“b1”。例如,如果该条目涉及前缀“/JDOE/VIDEOS”,处理器214可检索成分“/JDOE”。接下来,处理器214可使用散列函数,例如CRC-64,将该成分散列以产生散列值h(b1)。处理器随后可通过评估h(b1)模N生成索引“i”,其中N为活动线卡的数量。所得到的索引“i”可用来与在步骤415中生成的线卡表协作以确定哪个线卡被分配了整数“i”。在将整数“i”与线卡222a-b、224a-b、226a-b匹配之后,所述处理器214可在步骤435中将所述FIB条目添加至将被发送的关于整数i的FIB,FIBi。接下来,在步骤440中,处理器214可确定是否主FIB包括额外的条目待处理。如果是,则处理器214可循环返回到步骤425,否则方法400可进入步骤445。
在步骤445中,处理器214可通过初始化变量“j”至值“0”开始遍历活动线卡。接下来,在步骤450中,处理器214可将线卡表和FIBj推送到线卡222a-b、224a-b、226a-b,其已经在步骤410被分配整数“j”。然后,处理器214可在步骤455中增加“j”值,并在步骤460中确定是否由额外的活动线卡222a-b、224a-b、226a-b待处理。如果“j”的当前值不大于或等于活动线卡数n,则处理器214可以环回至步骤450。否则方法400可进入步骤445中结束。
应理解,方法可能有多种修改。例如,处理器可直接或同时为线卡222a-b、224a-b、226a-b中的每一个生成FIB,而不是生成以主FIB并随后将该FIB拆分成子集。多种额外的修改将是显而易见的。
图5示出示例性的线卡500。该线卡500可对应于所述示例性网络设备200中的线卡222a-b、224a-b、226a-b中的一个或多个。所述线卡500可包括处理管理器510、缓存520、最长前缀匹配(LPM)块530、SRAM540以及散列表存储装置550。所述LPM块可包括分散式布隆滤波器模块532和路由检索器534。
处理管理器510可包括硬件和/或机器可读介存储质上的可执行指令,所述可执行指令被配置以接收将被转发的消息并确定所述线卡500或一些其他的线卡500是否应处理该消息。下面将参照图9更详细地说明,所述线卡可以从所述消息中提取目的地地址,在所述地址的至少一部分上执行数学运算,并使用存储在SRAM540中的线卡表以确定哪个线卡包括被配置以处理该消息的FIB。如果所述处理管理器510确定不同的线卡应处理该信息,所述处理管理器510可将该消息传递给另一线卡。否则,所述处理管理程序510可以将该消息传递到缓存520以开始处理该消息。
缓存520可包括硬件和/或机器可读介存储质上的可执行指令,所述可执行指令被配置以确定存储在SRAM540的缓存表是否包括匹配当前消息的地址的条目。如果包括,所述缓存520可将该消息转发到由所述缓存条目所标识的输出线卡。如果没有缓存命中,所述缓存520可将该消息传递到LPM块530的分散式布隆滤波器模块532.
分散式布隆滤波器模块532可包括硬件和/或机器可读存储介质上的可执行指令,所述可执行指令被配置以利用存储在SRAM540中的布隆滤波器以确定对当前消息最长前缀匹配的可能的长度。所述分散式布隆滤波器模块532可以,例如应用Song et al.所著并由IEEE于2009年发表的“IPv6Lookups using Distributed and Load Balanced Bloom Filters for100Gbps Core Router Line Cards”中所描述的分散式布隆滤波流程,其全部内容以参考的方式并入本文用于所有目的。所述分散式布隆滤波器模块532可随后将所述消息与可能的最长前缀匹配长度的标志传递给路由检索器534。
路由检索器534可以为所述消息的最长前缀匹配搜索存储在散列表存储装置550中的FIB。基于由所述分散式布隆滤波器模块532所指示的长度,所述路由检索器534可通过查找指示长度的匹配前缀来开始对FIB的搜索。如果所述分散式布隆滤波器模块532遇到正误识(false positive),所述路由检索器534可逐渐降低被搜索的前缀的长度,直到最终定位到对该消息具有最长前缀匹配的条目。所述LPM块530可随后将该消息转发给由所述被定位的条目所指示的输出线卡。
SRAM540可包括硬件和/或机器可读存储介质上的可执行指令,所述可执行指令被配置以为线卡500存储各种有用数据。所述SRAM540的示例性内容将参照图6更详细地说明如下。SRAM可以包括多个双端口32-Kbit的SRAM块。应当理解,也可以使用多种其它类型的存储器如,例如,DRAM或闪存。
散列表存储装置550可以包括硬件和/或机器可读存储介质上的可执行指令,所述可执行指令被配置以为线卡500存储FIB。因此,所述散列表存储装置可包括机器可读存储介质,如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备、和/或类似的存储介质。散列表存储装置550的示例性内容将在下面参照图8更详细地说明。
散列表存储装置550可构成“片外存储器”,其可被实现为物理上从线卡500中的其他部件中分离的设备。所述处理管理器510、缓存520、LPM块530和SRAM 540可被实现为单个芯片如,例如微处理器、FPGA或ASIC。
图6示出了关于线卡的示例性存储器内容600。所述示例性存储器内容600可描述SRAM 540中的内容。如图所示,存储器内容600可包括线卡表610、缓存表620、和布隆滤波器630。可从控制平面接收所述线卡表610,并且其可将每个活动线卡与分配整数相关联。缓存表620可以存储多个供绕过所述最长前缀匹配的操作使用的缓存项。缓存表620的示例性内容将参照图7更加详细地说明如下。所述布隆滤波器630可包括被选择的布隆滤波器的数字“k”,其用于估计的最长前缀匹配的长度。例如,可基于用于在评估布隆滤波器时降低或最小化的正误识的可能性的布隆滤波准则来选择所述数字“k”。
图7示出了用于存储缓存数据的示例性数据安排700。所述数据安排700可以通过使用不同的数据结构如,例如,对象、数组、链表、树、和/或散列表来实现。所述数据安排700可以被存储在,例如,示例性线卡500的SRAM540中。所述数据安排700可以包括多个字段,如内容名称字段710和输出卡字段720。内容名称字段710可指示缓存条目可应用的目的地地址。输出卡字段720可指示用于转发携带了可用目的地地址的分组的适当的输出线卡或输出端口。输出卡字段720可以通过线卡标识符直接地识别输出线卡,或者可以通过,例如,指示下一跳设备或输出端口非直接地识别输出线卡。
作为示例,示例性数据安排700被示为存储有两个缓存条目730、740。数据安排700可以包括许多附加条目750。第一缓存条目730可指示包括目的地地址“/JDOE/PAPERS/PaperA.pdf”的消息应经由线卡“2”转发,所述线卡2可对应于输出线卡2240b。第二缓存条目740可指示包括目的地地址“/JDOE/notes.txt”的消息应该经由线卡“1”转发,所述线卡1可对应于输出线卡1220b。。
图8示出了示例性的数据安排800,用于存储转发信息,诸如FIB。数据安排800可以通过使用各种数据结构如,例如,对象、数组、链表、树、和/或散列表来实现。所述数据安排800可被存储在,例如,示例性线卡500的散列表存储装置550。所述数据安排800可以包括多个字段,如储体字段840、内容前缀字段820、与输出卡字段830。储体字段可以指示储体标识符。应理解的是,术语“储体”可指散列表的可寻址元素。每个储体可包括多组转发信息。所述内容前缀字段820可指示转发信息施加给哪个内容前缀。所述内容前缀可被存储为散列值。所述输出卡字段830可指示用于转发携带有可用目的地地址的分组的适当输出线卡或输出端口。所述输出卡字段830可以通过线卡标识符直接地识别输出线卡,或者可以通过,例如,指示下一跳设备或输出端口非直接地识别输出线卡。
作为示例,示例性数据安排800被示为存储储体840-880的数字“P”。第一储体840可以包括单组转发信息,其存储散列,例如前缀“/JDOE”的CRC-64散列,并指示匹配的消息应该经由输出卡“1”被转发。第二储体850可包括两组路由信息。所述第二储体可指示对于最长前缀匹配“/TUX”,消息应经由输出卡“1”被转发,而对于最长前缀匹配“/JDOE/VIDEOS”,消息应经由输出卡“2”被转发。这两组转发信息可以占有同一个储体,因为对于这两个前缀来说,用于确定适当储体的数学运算可均为其标识储体“2”。例如,每个前缀的散列值模“p”可得出值2。参考上文的描述,剩余储体860-880中的示例性数据的含义将是显而易见的。
图9示出了用于转发消息的示例性方法900。该示例性方法可以,例如,通过线卡500的组件被执行。方法900可开始于步骤905并进行到步骤910,其中所述处理管理器510可接收将被转发的消息。可从另一网络设备或从另一线卡经由交换结构接收所述消息。接下来,在步骤915中,所述处理管理器可以从该消息携带的内容名称中提取第一成分“b1”。然后,在步骤920中,所述处理管理器可以基于b1生成线卡索引“i”。该过程可类似于方法400的步骤430中的处理器214所使用的用于分散转发信息的流程。所述处理管理器可以散列b1并计算所述散列模n,其中n为活动线卡的数量。使用该索引,所述处理管理器510可在步骤925中从所述线卡表检索记录“i”,并在步骤930中确定该记录是否标识所述处理管理器510属于的那个线卡。如果所述记录指向不同线卡,所述处理管理器可以在步骤935中将所述消息传递给所识别的线卡的输入端口,并且在步骤975中方法900可进行到结束。所识别的线卡可随后执行方法900以进一步处理该消息。
在另一方面,如果所述记录标识本线卡,方法900可进行到步骤940,其中缓存520可以搜索缓存表以确定是否有任何条目与接收到的消息的内容名称相匹配。如果有缓存命中,所述缓存520可在步骤950中从缓存条目确定适当的输出线卡。否则,所述LPM块530可在步骤955中使用FIB执行最长前缀匹配以确定适当的输出线卡。示例性的LPM流程将参照图10更加详细地说明如下。在识别适当的输出线卡后,所述LPM块530可确定是否缓存所述转发信息以供将来使用。在多种的实施例中,所述LPM块530可以缓存所有定位的记录。在其他实施例中,所述LPM块530可只缓存那些匹配超过预定长度的内容名称的记录。例如在步骤960,所述LPM块可确定所述消息携带的内容名称的长度是否大于预先配置的阈值“T”。如果所述内容名称的长度超过“T”,所述LPM块530可以,在步骤965,缓存所述内容名称和标识的输出卡。最后,在步骤970中,所述线卡500可将消息转发到所识别的线卡的输出端口,并且所述方法900可在步骤975进行到结束。
图10示出了用于执行最长前缀匹配的示例性方法1000。所述方法1000可以通过LPM块530的组件来执行。所述方法1000可以开始于步骤1005,并进行到步骤1010,其中所述分散式布隆滤波器模块532可施加多个散列函数“k”至所述内容名称的每一个可能的前缀。例如,对于内容名称“/JDOE/VIDEOS/JD2012/vid.avi”,所述分散式布隆滤波器模块532可以使用所述“k”散列函数中的每一个来散列前缀“/JDOE”、“/JDOE/VIDEOS”、“/JDOE/VIDEOS/JD2012”以及“/JDOE/VIDEOS/JD2012/vid.avi”。
接下来,在步骤1015中,所述分散式布隆滤波器模块532可将适当的布隆滤波器施加至每个已散列的前缀。例如,施加到所述前缀的每个散列函数可与单独的布隆滤波器相关联。根据第一散列函数散列的每个前缀可以被施加至第一布隆滤波器,根据第二散列函数散列的每个前缀可以被施加至第二布隆滤波器,以此类推。每个布隆滤波器的应用可能会生成一个比特字段,其根据该布隆滤波器指示每个前缀是否可能在FIB中得到匹配。例如,比特字段“0110”可指示前缀“/JDOE/VIDEOS”和“/JDOE/VIDEOS/JD2012”有可能具有FIB匹配,而前缀“/JDOE”与“/JDOE/VIDEOS/JD2012/vid.avi”没有匹配。所述分散式布隆滤波器模块532可随后在步骤1020中,结合每一个“k”比特字段以生成单个的主比特字段。例如,所述分散式布隆滤波器模块532可以产生所有“k”比特字段的“与”逻辑。所述主比特字段可在步骤1025中被所述分散式布隆滤波器模块532使用以识别可能的最长前缀匹配的长度“m”。例如,第一个“1”在主比特字段的位置可对应于可能的最长前缀匹配的长度。
接下来,所述路由检索器534可开始在所述FIB中搜索最长前缀匹配,通过首先,在步骤1030中,散列所述内容名称的第一“m”成分。接下来,在步骤1035中,所述路由检索器534可通过基于所述散列值或其的一部分模“p”来计算值“f”以确定访问哪个储体,其中所述“p”为储体的总数。随后在步骤1040中,所述路由检索器534可从FIB检索储体“f”,并确定所述储体是否包括匹配所述内容名称的第一“m”成分的路由信息。如果所述储体不包括匹配,所述路由检索器534可以在步骤1050中,使用主比特字段来确定下一个候选的最长匹配前缀的长度。所述路由检索器534随后可环回到步骤1030。一旦所述路由检索器534在所述FIB中定位了匹配的条目,该路由检索器534可确定由所述匹配的条目指示的线卡应该用来输出所述消息。方法1000随后可以前进到步骤1060以结束。
根据上述内容,显而易见的是多种实施例使的能够有效地使用大的路由表来路由消息。例如,通过在多个线卡之间分散转发信息,下一跳查找的任务可被分散到在这样的设备之中,从而提供了支持大路由表的有效手段。进一步地,通过将目的地地址的一个子集分配给多个线卡中的每一个,可以以有效和可靠的方式分派(delegated)下一跳查找。
从上面的描述中显而易见的是本发明的多种示例性实施例可以用硬件或固件来实现。此外,多种示例性实施例可被实现为存储在机器可读存储介质上的指令,所述指令可以由至少一个处理器读取并执行以执行本文中详细描述的操作。机器可读存储介质可以包括任何用于存储以机器可读形式的信息的机制,如个人计算机或笔记本计算机、服务器、或其他计算设备。因此,有形的和非临时性机器可读存储介质可包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备、和类似存储介质。
需要指出此处任意方框图描绘的是体现本发明原理的电路的概念性视图。类似地,需要指出所有流程图表、流程图、状态转移图、伪码及类似物均表述了实质上位于计算机可读媒体中上并可以被计算机或处理器执行的各种处理,而不论此类计算机或处理器是否明确地被表露。
尽管多种示例性实施例已经具体参考其示例性的方面进行了详细地说明,但是应当理解,本发明能够具有其它的实施例,并且其细节能够在多种明显的方面进行修改。正如本领域技术人员所显而易见的,在本发明的精神和范围之内,可以实现变体和改型。因此,前述公开、描述和附图仅用于说明的目的,且不以任何方式限制本发明,本发明仅由权利要求限定。
Claims (14)
1.一种由网络设备执行的用于转发消息的方法,所述方法包括:
在所述网络设备的第一输入线卡接收(910)将向目的地转发的消息,该消息包括目的地地址;
由所述第一输入线卡确定(920、925、930)所述网络设备的第二输入线卡配置了与所述目的地地址相关的路由信息;
由所述第一输入线卡基于确定第二输入线卡配置了与所述目的地地址相关的路由信息,发送(935)所述消息至所述第二输入线卡;
由所述第二输入线卡并基于与所述目的地地址相关的路由信息,确定(950、955)所述消息应经由所述网络设备的第一输出线卡被转发至另一网络设备;
由所述第二输入线卡基于确定所述消息应经由所述网络设备的第一输出线卡被转发到另一网络设备,发送(970)所述消息至所述第一输出线卡;以及
由所述第一输出线卡发送所述消息至另一网络设备。
2.如权利要求1所述的方法,其中所述第一输出线卡包括所述第一输入线卡和所述第二输出线卡中的一个。
3.如权利要求1所述的方法,其中所述目的地地址为内容名称。
4.如权利要求1所述的方法,其中发送(935)所述消息至所述第二线卡包括由所述第一输入线卡发送所述消息至所述第二输入线卡的输入端口。
5.如权利要求1所述的方法,其中所述第一输入线卡存储第一组转发信息,所述第二输入线卡存储不同于第一组转发信息的第二组转发信息。
6.如权利要求1-5中任意一项所述的方法,其中
由所述第一输入线卡确定(920、925、930)所述网络设备的所述第二输入线卡配置了与所述目的地地址相关的路由信息包括:
在所述目的地地址的至少一部分上执行(920)散列函数以生成散列的目的地地址;和
确定(925、930)所述第二输入线卡的分配的标识符对应于所述散列的目的地地址。
7.一种用于转发消息的网络设备,所述网络设备包括:
被配置以存储路由信息的路由信息库(RIB)存储装置(212);
多个线卡(222);以及
处理器(214),其被配置以:
生成线卡表,所述线卡表将第一标识符与所述多个线卡的第一输入线卡(222)相关联,并将第二标识符与多个线卡的第二输入线卡(222)相关联;
基于所述路由信息和所述第一标识符生成第一组转发信息;
基于所述路由信息和所述第二标识符生成不同于第一组转发信息的第二组转发信息;
提供所述线卡表和所述第一组转发信息至所述第一输入线卡(222);以及
提供所述线卡表与所述第二组转发信息至所述第二输入线卡(222)。
8.如权利要求7所述的网络设备,其中在基于所述路由信息与所述第一标识符生成第一组转发信息中,所述处理器(214)被配置以:
基于所述路由信息生成地址前缀与相关的转发信息;
对地址前缀执行数学运算以生成值;
确定所述值与第一标识符匹配;以及
基于所述值匹配所述第一标识符,在所述第一组转发信息中包括所述地址前缀。
9.如权利要求7所述的网络设备,其中所述处理器(214)被进一步配置以:
接收所述第二输入线卡(222)已故障的指示;
生成更新的线卡表,其将所述第一标识符与所述第一输入线卡(222)相关联,并将所述第二标识符与所述多个线卡中的第一输出线卡相关联;
基于所述路由信息和所述第二标识符,生成第三组转发信息;以及
提供所述更新的线卡表和所述第三组转发信息至所述第一输出线卡(222)。
10.如权利要求7-9中任意一项所述的网络设备,其中所述第一输入线卡(222)包括:
第一存储器(540),其被配置以存储所述线卡表;和
第一处理管理器(510),其被配置以:
接收将向目的地设备转发的消息,所述消息包括目的地地址;
基于所述第二标识符和所述目的地地址,确定所述第二输入线卡应该处理所述消息;并
基于确定所述第二输入线卡应该处理所述消息,发送所述消息至所述第二输入线卡。
11.如权利要求10所述的网络设备,其中所述第二输入线卡(222)包括:
第二处理管理器(510),其被配置以确定所述第二输入线卡应该处理所述消息;和
转发模块(520、530),其被配置以:
确定第一输出线卡应该转发所述消息至另一网络设备,并发送所述消息至所述第一输出线卡。
12.如权利要求11所述的网络设备,其中:
所述第二输入线卡(222)进一步包括被配置以存储缓存表的存储器(540);
所述转发模块是缓存器(520),其被配置以在确定所述第一输出线卡应转发所述消息至另一网络设备中:
确定所述缓存表存储与所述目的地地址相关的条目,并确定所述条目标识所述第一输出线卡。
13.如权利要求11所述的网络设备,其中:
所述第二输入线卡(222)进一步包括散列表存储装置,其被配置以存储所述第二组转发信息;以及
所述转发模块是最长前缀匹配(LPM)块(530),其被配置以在确定所述第一输出线卡(222)应转发所述消息至另一网络设备中:
识别对于所述目的地地址具有最长匹配前缀的所述第二组转发信息的条目;以及
确定所述条目标识所述第一输出线卡。
14.如权利要求13所述的网络设备,其中:
在识别所述第二组转发信息的所述条目对于所述目的地地址具有最长匹配前缀中,所述LPM块(530)利用一组分散式布隆滤波器(532)来确定所述最长匹配前缀的长度。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/563,381 US9178806B2 (en) | 2012-07-31 | 2012-07-31 | High-speed content routing |
US13/563,381 | 2012-07-31 | ||
PCT/US2013/052474 WO2014022264A1 (en) | 2012-07-31 | 2013-07-29 | High-speed content routing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104685837A true CN104685837A (zh) | 2015-06-03 |
Family
ID=48953453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380040126.5A Pending CN104685837A (zh) | 2012-07-31 | 2013-07-29 | 高速内容路由 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9178806B2 (zh) |
EP (1) | EP2880827A1 (zh) |
JP (1) | JP2015529061A (zh) |
KR (1) | KR20150037938A (zh) |
CN (1) | CN104685837A (zh) |
WO (1) | WO2014022264A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103874157B (zh) * | 2012-12-12 | 2017-07-07 | 华为技术有限公司 | 路由转发、建立路由表、和获取内容的方法及其装置 |
US9172743B2 (en) * | 2012-12-31 | 2015-10-27 | Futurewei Technologies, Inc. | Scalable storage systems with longest prefix matching switches |
CN108063717A (zh) * | 2013-05-31 | 2018-05-22 | 华为技术有限公司 | 信息为中心网络icn中转发报文的方法、装置及系统 |
US9356861B2 (en) * | 2014-03-17 | 2016-05-31 | Alcatel Lucent | Secondary lookup for scaling datapath architecture beyond integrated hardware capacity |
EP2947839B1 (en) * | 2014-05-21 | 2019-10-16 | Alcatel Lucent | Method and apparatus to forward a request for content |
US9935831B1 (en) * | 2014-06-03 | 2018-04-03 | Big Switch Networks, Inc. | Systems and methods for controlling network switches using a switch modeling interface at a controller |
US9596181B1 (en) * | 2014-10-20 | 2017-03-14 | Juniper Networks, Inc. | Two stage bloom filter for longest prefix match |
US10911353B2 (en) | 2015-06-17 | 2021-02-02 | Extreme Networks, Inc. | Architecture for a network visibility system |
US10129088B2 (en) | 2015-06-17 | 2018-11-13 | Extreme Networks, Inc. | Configuration of rules in a network visibility system |
US10771475B2 (en) | 2015-03-23 | 2020-09-08 | Extreme Networks, Inc. | Techniques for exchanging control and configuration information in a network visibility system |
US10530688B2 (en) * | 2015-06-17 | 2020-01-07 | Extreme Networks, Inc. | Configuration of load-sharing components of a network visibility router in a network visibility system |
CN107040393B (zh) * | 2015-08-21 | 2020-10-09 | 新华三技术有限公司 | 一种路由管理方法和设备 |
CN107347035B (zh) * | 2016-05-06 | 2020-05-08 | 华为技术有限公司 | 路由查找方法、装置、分配节点、查找节点及入口节点 |
US10212248B2 (en) | 2016-10-03 | 2019-02-19 | Cisco Technology, Inc. | Cache management on high availability routers in a content centric network |
US20180176129A1 (en) * | 2016-12-15 | 2018-06-21 | Fujitsu Limited | Communication method, control device, and system |
US10447585B2 (en) * | 2016-12-19 | 2019-10-15 | Futurewei Technologies, Inc. | Programmable and low latency switch fabric for scale-out router |
US10225201B2 (en) * | 2017-01-27 | 2019-03-05 | Futurewei Technologies, Inc. | Scalable multicast for notification-driven content delivery in information centric networks |
US10587515B2 (en) * | 2017-02-07 | 2020-03-10 | Futurewei Technologies, Inc. | Stateless information centric forwarding using dynamic filters |
US10367712B2 (en) * | 2017-03-20 | 2019-07-30 | Citrix Systems, Inc. | Auto tuning of hybrid wan links by adaptive duplication of packets on alternate links |
IT202000017023A1 (it) * | 2020-07-14 | 2022-01-14 | Mainstreaming S P A | Metodo per distribuire file attraverso una content delivery network basato anche su algoritmi di intelligenza artificiale, sistema telematico e server che consentono di implementarlo |
JP7335216B2 (ja) * | 2020-09-24 | 2023-08-29 | Kddi株式会社 | コンテンツ配信システムの転送装置及びプログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6760327B1 (en) * | 1999-12-01 | 2004-07-06 | Cisco Technology, Inc. | Rate adjustable backplane and method for a telecommunications node |
US7110394B1 (en) * | 2001-06-25 | 2006-09-19 | Sanera Systems, Inc. | Packet switching apparatus including cascade ports and method for switching packets |
US7149214B2 (en) | 2003-11-04 | 2006-12-12 | Cisco Technology, Inc. | Dynamic unknown L2 flooding control with MAC limits |
CN101098238B (zh) * | 2007-06-29 | 2010-12-22 | 华为技术有限公司 | 一种数据通信系统、交换网板及方法 |
US7826369B2 (en) | 2009-02-20 | 2010-11-02 | Cisco Technology, Inc. | Subsets of the forward information base (FIB) distributed among line cards in a switching device |
US8218557B2 (en) | 2010-04-09 | 2012-07-10 | Telefonaktiebolaget L M Ericsson (Publ) | Scalable distributed user plane partitioned two-stage forwarding information base lookup for subscriber internet protocol host routes |
-
2012
- 2012-07-31 US US13/563,381 patent/US9178806B2/en not_active Expired - Fee Related
-
2013
- 2013-07-29 JP JP2015525480A patent/JP2015529061A/ja active Pending
- 2013-07-29 WO PCT/US2013/052474 patent/WO2014022264A1/en active Application Filing
- 2013-07-29 CN CN201380040126.5A patent/CN104685837A/zh active Pending
- 2013-07-29 KR KR20157002532A patent/KR20150037938A/ko not_active Application Discontinuation
- 2013-07-29 EP EP13747920.0A patent/EP2880827A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US9178806B2 (en) | 2015-11-03 |
EP2880827A1 (en) | 2015-06-10 |
KR20150037938A (ko) | 2015-04-08 |
JP2015529061A (ja) | 2015-10-01 |
WO2014022264A1 (en) | 2014-02-06 |
US20140036918A1 (en) | 2014-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104685837A (zh) | 高速内容路由 | |
US20140280823A1 (en) | Wire-speed pending interest table | |
KR102072203B1 (ko) | 컨텐츠 중심 네트워크에 계층적 이름의 변화에 강인한 단축 이름을 생성하는 방법 및 노드 | |
US9729669B2 (en) | Method and system for fast and large-scale longest prefix matching | |
KR102052520B1 (ko) | 컨텐츠 중심 네트워크에서 컨텐츠의 이동성을 지원하기 위한 노드의 통신 방법 및 노드 | |
CN104901997B (zh) | 用于内容中心网络中的直接存储装置存取的系统和方法 | |
CN105100045A (zh) | 用于防止在命名数据网络路由器上插入恶意内容的方法和设备 | |
CN105704041A (zh) | 使用硬件辅助散列表的ccn路由 | |
CN106664298A (zh) | 使用信息中心网络的表述性状态转移操作 | |
EP2772040B1 (en) | Prefix and predictive search in a distributed hash table | |
US10397362B1 (en) | Combined cache-overflow memory structure | |
US9787585B2 (en) | Distributed storage system, control apparatus, client terminal, load balancing method and program | |
KR20190033631A (ko) | 압축 포워딩 테이블 | |
EP3196776A1 (en) | Method and device for data processing | |
CN106302630A (zh) | 传送私有数据和数据对象 | |
US11012358B2 (en) | Forwarding table management | |
CN105027527A (zh) | 拥有最长前缀匹配交换机的可扩展存储系统 | |
CN107547283B (zh) | 分布式聚合组的管理方法及装置 | |
KR20130093747A (ko) | 묶음 콘텐츠를 위한 네트워크 기반 콘텐츠 캐싱 지원하는 패킷 포워딩 구조 및 방법 | |
CN103366008A (zh) | 一种查找资源的方法和装置 | |
EP3018871B1 (en) | Content name compression method and apparatus | |
CN109691067A (zh) | 用于传送和接收兴趣消息的系统和方法 | |
Tan et al. | Efficient name lookup scheme based on hash and character trie in named data networking | |
US20180176129A1 (en) | Communication method, control device, and system | |
JP2014160343A (ja) | コンテンツキャッシュ制御装置およびその動作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150603 |