CN109804605B - 压缩转发表 - Google Patents
压缩转发表 Download PDFInfo
- Publication number
- CN109804605B CN109804605B CN201780063336.4A CN201780063336A CN109804605B CN 109804605 B CN109804605 B CN 109804605B CN 201780063336 A CN201780063336 A CN 201780063336A CN 109804605 B CN109804605 B CN 109804605B
- Authority
- CN
- China
- Prior art keywords
- network
- network prefix
- prefix
- subgroup
- prefixes
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 94
- 235000008694 Humulus lupulus Nutrition 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 239000002131 composite material Substances 0.000 abstract description 6
- 238000007906 compression Methods 0.000 description 38
- 238000010586 diagram Methods 0.000 description 18
- 230000006835 compression Effects 0.000 description 16
- 238000004590 computer program Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101100271026 Arabidopsis thaliana ASN3 gene Proteins 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 2
- 101150014732 asnS gene Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 101150069304 ASN1 gene Proteins 0.000 description 1
- 101150014516 ASN2 gene Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
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/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/46—Cluster building
-
- 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/20—Hop count for routing purposes, e.g. TTL
-
- 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/48—Routing tree calculation
-
- 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/74—Address processing for routing
-
- 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/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的一个实施例提出了一种用于压缩转发表的技术。该技术包括:从网络前缀列表选择处于子网的范围内的多个网络前缀。该技术还包括:对多个网络前缀进行分类,以生成一个或多个网络前缀子群组,以及选择一个或多个网络前缀子群组中所包括的第一网络前缀子群组。该技术还包括:基于第一网络前缀子群组来生成合成超网。
Description
相关申请的交叉引用
本申请要求于2016年8月15日递交的美国专利申请序列号15/237,541的优先权,其通过引用结合于此。
技术领域
本发明总地涉及计算机网络,更具体地,涉及合成超网压缩。
背景技术
传统的数字内容分发系统包括内容服务器、控制服务器、端点设备、以及将内容服务器连接到端点设备的通信网络。内容服务器一般属于一个或多个内容递送网络并且被配置为存储对应于可以从内容服务器下载到端点设备的不同内容资产的文件。
一般,控制服务器负责响应对于从端点设备发送的内容资产的请求,管理这些内容资产到端点设备的递送。为了响应对于从端点设备接收的文件的请求,与内容服务器相关联的一个或多个路由器被配置为与控制服务器通信以确定所请求的文件的位置和可用性。这些文件随后被从(一个或多个)路由器和/或经由更宽的内容分发网络分发到适当的端点设备。
各种技术由路由器实现,以确定如何通过通信网络将每个文件路由到适当的端点设备。例如,在逐跳传输技术中,每个路由器包括存储与通信网络的拓扑相关联的信息的路由表(例如,路由信息库或“RIB”)。更具体地,路由表一般针对每个有效目的地节点,存储数据分组为了到达该目的地节点可以被发送到的下一个设备(下一跳)的网络地址。每当路由器学习到数据分组可以沿着其被发送去往目的地节点的新路由时,该新路由可以被添加到路由表。另外,当路由器确定特定的目的地节点已经变得不可到达时,该目的地节点可以被从路由表移除。
路由表一般被存储在路由器内的随机存取存储器(RAM)和/或非易失性存储设备(例如,硬盘驱动(HDD)或固态驱动(SSD))中。因此,当越来越多的路由被添加到路由表时,与在路由表中搜索针对特定目的地节点的下一跳相关联的等待时间增加。为了解决这个问题,路由表中存储的路由信息可以被写入转发表(例如,转发信息库或“FIB”),其中,转发表被实现在诸如三态内容寻址存储器(TCAM)之类的高速存储器中。另外,为了进一步增大搜索效率,路由信息可以被存储在树结构(例如,基数树结构)的转发表中,以使得与目的地节点相关联的下一跳和其他信息通过在FIB中搜索与目的地节点相关联的前缀来被快速提取。
如上所述,转发表使得下一跳和其他路由信息被高效提取而没有显著的等待时间。但是,由于转发表被实现在的高速存储器的价格和复杂性,将转发表的大小增大到高于某些阈值对于很多应用来说会是成本过高的。因此,很多转发表的大小没有被增大,以解决过去数年出现的互联网的大小和复杂性增加的问题。结果,在很多现有的路由器中,路由表中存储的目的地节点的数目已经超过对应的转发表中的可用条目的数目。因为这些路由器不能存储针对互联网路由表中所包括的所有目的地节点的路由,所以会发生过多的路由溢出到较慢的存储器(例如,RAM)中的情况。
如前所述,需要用于存储与通信网络相关联的路由信息的更有效的技术。
发明内容
本发明的一个实施例提出了一种用于压缩转发表的方法。该方法包括:从网络前缀列表中选择处于子网范围内的多个网络前缀。该方法还包括:对多个网络前缀进行分类以生成一个或多个网络前缀子群组,并且选择一个或多个网络前缀子群组中所包括的第一网络前缀子群组。该方法还包括基于第一网络前缀子群组生成合成超网。
进一步的实施例提供了被配置为实现上述方法的非暂态计算机可读介质和网络设备。
所公开的技术的一个优点在于,可以减少转发表中所包括的条目的数目,而无需丢弃与转发表所跟踪的目的地节点相关联的路由信息。结果,更大数目的路由可以被存储在转发表中和/或转发表的存储器要求可以被减少。
附图说明
图1示出了被配置为实现本发明的一个或多个方面的网络基础设施;
图2A是根据本发明的各种实施例的图1的内容服务器的更详细框图;
图2B是根据本发明的各种实施例的图2A的网络设备的更详细框图;
图3是根据本发明的各种实施例的图1的控制服务器的更详细框图;
图4A和4B示出了根据本发明的各种实施例的用于在第一压缩过程(pass)期间压缩转发表的方法步骤的流程图;
图5A-5E示出了根据本发明的各种实施例的在第一压缩过程期间生成的树结构的不同条目;
图6示出了根据本发明的各种实施例的用于在第二压缩过程期间压缩转发表的方法步骤的流程图;
图7A和7B示出了根据本发明的各种实施例的在第二压缩过程期间生成的树结构的不同条目;以及
图8示出了根据本发明的各种实施例的与子网的一部分相关联的网络前缀条目。
具体实施方式
在下面的描述中,给出了很多具体细节,以提供对本发明的实施例的更透彻理解。但是,本领域技术人员将显而易见的是,本发明的实施例可以在没有这些具体细节中的一个或多个具体细节的条件下实施。
系统概况
图1示出了被配置为实现本发明的一个或多个方面的网络基础设施100。如图所示,网络基础设施100包括内容服务器110、控制服务器120、以及端点设备115,它们中的每一者经由通信网络105连接。
每个端点设备115经由网络105与一个或多个内容服务器110(也被称为“缓存”或“节点”)通信,以下载诸如文本数据、图形数据、音频数据、视频数据、以及其他类型的数据之类的内容。可下载内容(这里也被称为“文件”)随后在一个或多个内容服务器110之间被传输和/或被呈现给一个或多个端点设备115的用户。在各种实施例中,端点设备115可以包括计算机系统、机顶盒、移动计算机、智能电话、平板、控制台、和手持视频游戏系统、数字视频记录器(DVR)、DVD播放器、连接的数字TV、专用媒体流传输设备(例如,机顶盒)、和/或具有网络连通性并且能够向用户呈现诸如文本、图像、视频、和/或音频内容之类的内容的任何其他技术上可行的计算平台。
每个内容服务器110可以包括web服务器、数据库、和被配置为与控制服务器120通信以确定由控制服务器120跟踪并管理的各种文件的网络位置和可用性的服务器应用217。每个内容服务器110还可以与填充源130和一个或多个其他内容服务器110通信,以向每个内容服务器110“填充”各种文件的副本。另外,内容服务器110可以响应从端点设备115接收到的对于文件的请求。这些文件随后可以被从内容服务器110分发或者经由更宽的内容分发网络分发。在一些实施例中,内容服务器110使得用户能够(例如,使用用户名和密码)进行认证,以访问内容服务器110上存储的文件。尽管图1仅示出单个控制服务器120,但是在各种实施例中,多个控制服务器120可以被实现,以跟踪并管理文件。
在各种实施例中,填充源130可以包括线上存储服务(例如,简单存储服务、云存储等),其中,包括数千或数百万文件在内的文件目录被存储在该线上存储服务上并且被访问以填充内容服务器110。尽管图1仅示出单个填充源130,但是在各种实施例中,多个填充源130可以被实现,以服务对于文件的请求。
图2A是根据本发明的各种实施例的图1的内容服务器110的更详细框图。如图所示,内容服务器110包括但不限于,中央处理单元(CPU)204、系统盘206、输入/输出(I/O)设备接口208、网络接口210、互连212、以及系统存储器214。在各种实施例中,内容服务器110经由网络设备240与网络105上的其他节点通信。
CPU 204被配置为提取并执行系统存储器214中存储的程序指令(例如,服务器应用217)。类似地,CPU 204被配置为存储应用数据并从系统存储器214提取应用数据。互连212被配置为辅助在CPU 204、系统盘206、I/O设备接口208、网络接口210、和系统存储器214之间传输诸如程序指令和应用数据之类的数据。I/O设备接口208被配置为经由互连212来从I/O设备216接收输入数据并将输入数据发送给CPU 204。例如,I/O设备216可以包括一个或多个按钮、键盘、鼠标、和/或其他输入设备。I/O设备接口208还被配置为经由互连212从CPU 204接收输出数据并将输出数据发送给I/O设备216。
系统盘206可以包括一个或多个硬盘驱动、固态存储设备、或者类似的存储设备。系统盘206被配置为存储与内容目录相关联的诸如文件218(例如,音频文件、视频文件等)之类的非易失性数据。文件218随后可以被一个或多个内容服务器110和/或一个或多个端点设备115经由网络105提取。在一些实施例中,网络接口210可以被配置为根据以太网标准操作。
系统存储器214包括服务器应用217,该服务器应用被配置为服务从端点设备115和其他内容服务器110接收到的对于文件218的请求。当服务器应用217接收到对于文件218的请求时,服务器应用217从系统盘206提取对应的文件218,并且经由网络105将文件218发送给端点设备115或内容服务器110。
图2B是根据本发明的各种实施例的图2A的网络设备240的更详细框图。如图所示,网络设备240包括但不限于,中央处理单元(CPU)244、网络接口250、互连252、系统存储器254、以及内容寻址存储器(CAM)232。
CPU 244被配置为提取并执行系统存储器254中所存储的诸如网络应用257之类的程序指令。类似地,CPU 244被配置为存储应用数据并从系统存储器254提取应用数据。互连252被配置为辅助在CPU 244、网络接口250、系统存储器254、以及CAM 232之间传输数据(例如,程序指令和应用数据)。
系统存储器254包括网络应用257,该网络应用被配置为经由网络105接收并发送数据(例如,文件218)和/或路由信息,例如,特定文件218应该被发送到的目的地节点。在一些实施例中,网络应用257与一个或多个运输供应商(TP)和/或控制服务器120通信,以确定与网络105中所包括的目的地节点相关联的路由信息。
在各种实施例中,网络设备240被实现为一个或多个路由器。在这些实施例中,网络应用257实现网关协议(例如,边界网关协议或“BGP”),以接收、处理、以及发送网络路由信息,例如,网络105中所包括的节点(例如,内容服务器110、控制服务器120、端点设备115、填充源130等)的网络地址。在一些实施例中,内容服务器110、控制服务器120、端点设备115、和/或填充源130形成一个或多个自治系统(AS),每个AS可以经由单独的网关服务(例如,BGP服务)来管理。
由网络应用257实现的网关服务可以接收与网络105中所包括的所有广告节点相关联的网络拓扑信息。网络拓扑信息可以包括每个目的地节点的网络地址以及数据分组为了到达网络105中的特定节点可以被发送到的“下一跳”(NH)的网络地址。网络应用257随后将网络地址、NH、和其他类型的路由信息存储在路由表220(例如,路由信息库或“RIB”)中。网络应用257还可以确定网络105中的每个节点是否可到达并且将该信息存储在路由表220中。
每当网络应用257接收到数据分组沿着其可以被发送去往网络105中的特定节点的新路由时,该新路由可以被添加到路由表220。另外,当路由器确定特定节点变得不可到达时,与该节点相关联的网络地址和路由信息可以被从路由表220移除。在一些实施例中,路由表220针对每个目的地节点,存储该目的地节点的网络地址和与该目的地节点相关联的路由信息,例如,一个或多个NH、与(一个或多个)NH相关联的一个或多个自治系统号(ASN)、与每个NH相关联的时间值、以及与特定NH和/或ASN相关联的其他类型的属性。与每个节点相关联的网络地址和/或(一个或多个)NH可以被存储在任意格式的路由表220中。例如,网络地址和/或(一个或多个)NH可以被存储在互联网协议版本4(IPv4)格式、互联网协议版本6(IPv6)格式、与特定格式相关联的网络地址前缀(例如,/8、/16、/24等)、和/或任何其他技术上可行的格式中。
当越来越多的路由被添加到路由表220时,与在路由表220中搜索针对特定目的地节点的(一个或多个)NH相关联的等待时间增加。结果,网络应用257将路由写入网络接口210中所包括的转发表230(例如,转发信息库或“FIB”)中。与可以被存储在系统存储器214中的路由表220相反,转发表230可以被实现在高速存储器(例如,三态内容寻址存储器或“TCAM”)中。在一些实施例中,高速存储器包括被配置为对转发表230的内容执行查找操作的专用集成电路(ASIC)。
另外,为了使转发表230被更高效地搜索,与目的地节点相关联的网络地址可以被存储在树结构(例如,基数树结构)的转发表230中。在一些实施例中,网络应用257通过以下操作来将路由从路由表220写入到转发表230:从路由表220读取网络地址,将与网络地址相关联的网络前缀存储在转发表230的条目中,以及将对应的路由信息与该条目相关联。例如,网络应用257可以将与目的地节点的网络地址相关联的网络前缀存储在转发表230中所包括的基数树的条目中。网络应用257随后可以将对应的路由信息存储在转发表230中并(例如,经由指针)将路由信息链接到条目。
图3是根据本发明的各种实施例的图1的控制服务器120的更详细框图。如图所示,控制服务器120包括但不限于中央处理单元(CPU)304、系统盘306、输入/输出(I/O)设备接口308、网络接口310、互连312、以及系统存储器314。
CPU 304被配置为提取并执行系统存储器314中所存储的程序指令,例如,控制应用317。类似地,CPU 304被配置为存储应用数据并从系统盘306中所存储的数据库318和系统存储器314提取应用数据。互连312被配置为辅助CPU 304、系统盘306、I/O设备接口308、网络接口310、以及系统存储器314之间的数据传输。I/O设备接口308被配置为经由互连312发送I/O设备316和CPU 304之间的输入数据和输出数据。系统盘306可以包括一个或多个硬盘驱动、固态存储设备等。系统盘306被配置为存储与内容服务器110、(一个或多个)填充源130、以及文件218相关联的信息的数据库318。
系统存储器314包括控制应用317,该控制应用被配置为从一个或多个端点设备115和/或一个或多个内容服务器110接收对于文件218的请求。控制应用317随后可以访问数据库318中所存储的信息并处理该信息,以确定特定文件218将被发送给端点设备115的方式和/或跨内容服务器110地被复制的方式。控制应用317还可以生成对于端点设备115所请求的文件218的许可。
转发表压缩
如上所述,转发表230使得与目的地节点相关联的NH和其他路由信息被高效地提取而不会有显著的等待时间。但是,由于用于实现转发表230的高速存储器的价格和复杂性,将转发表230的存储容量增加到某些阈值以上对于很多应用变得成本过高。结果,当互联网上广告的节点的数目增大时,路由表中所存储的节点的数目超过了很多路由器中所包括的转发表中的可用条目的数目。
例如,很多商用路由器包括能够存储512,000个条目的内容寻址存储器(CAM)。但是,互联网路由表当前包括针对大约550,000个目的地节点的路由。因此,很多路由器不能存储针对所广告的所有目的地节点的路由和/或可能将针对过多目的地节点的路由溢出到更慢的存储器(例如,系统存储器214)中,这会降低路由器性能。
因此,在各种实施例中,网络应用257在转发表230的内容上执行两个或更多个压缩过程。在第一压缩过程中,网络应用257接收网络前缀并查找代表与该网络前缀的部分匹配的现有的更短网络前缀。如果部分匹配存在,则网络应用257比较与该更短网络前缀相关联的路由信息和与该网络前缀相关联的路由信息。如果路由信息在网络前缀之间相同(或类似),则网络应用257通过从转发表中移除该网络前缀并将对应的路由信息聚集在与该更短网络前缀相关联的条目中来压缩转发表230。
在第二压缩过程中,网络应用257选择子网并且基于与处于该子网范围中的网络前缀相关联的路由信息来对这些网络前缀条目进行分组。共享相同(或类似)路由信息的最大网络前缀子群组随后被选择,并且与这些网络前缀相关联的合成超网被生成并被安装到转发表230中。因此,处于合成超网的范围中并且具有与合成超网相同(或类似)路由信息的网络前缀可以被从转发表230中移除和/或不被安装到转发表230中。下面结合图4至图8更详细地描述这些技术。
第一压缩过程
图4A和图4B示出了根据本发明的各种实施例的用于在第一压缩过程期间压缩转发表230的方法步骤的流程图。尽管结合图1至3和图5A至5E的系统来描述这些方法步骤,但是本领域技术人员将理解的是,被配置为以任意顺序执行这些方法步骤的任何系统都落入本发明的范围中。
如图4A所示,方法400开始于在步骤410。在步骤410,网络应用257接收网络前缀和与网络前缀相关联的路由信息。在一些实施例中,网络前缀与网络105中所包括的目的地节点(例如,特定的内容服务器110、控制服务器120、端点设备115、或填充源130)相关联。一般,路由信息可以包括与网络105中的目的地节点和/或网络105的状态和/或拓扑相关联的任意类型的信息。路由信息的示例包括但不限于NH、与(一个或多个)NH相关联的ASN、以及与NH相关联的时间值。
在一些实施例中,当网关服务例如通过从运输供应商(TP)接收路由列表来发现网络105中的新目的地节点时,在步骤410,网络应用257接收网络前缀和相关联的路由信息。在一些实施例中,网络前缀和相关联的路由信息是从诸如区域性互联网注册机构(Regional Internet Registry,RIR)之类的注册机构接收到的。另外,在一些实施例中,当网络应用257基于特定的网络前缀执行覆盖查找时,网络前缀被网络应用257接收到。例如,网络应用257可以基于a/22网络前缀(例如,10.0.2.0/22:A)来在路由表220和/或转发表230上执行覆盖查找,并且作为响应,接收处于/22网络前缀范围内(即,被/22网络前缀“覆盖”)的所有/24网络前缀(例如,10.0.2.0/24:A)。
另外或替代地,在各种实施例中,网络前缀可以由网络应用257从控制服务器120中所包括的控制应用317接收。例如,控制应用317可以从端点设备115接收对于文件218的请求,确定与端点设备115相关联的网络地址,并且将与端点115相关联的网络前缀和/或网络地址发送给网络应用257。在一些实施例中,控制应用317可以包括经由云计算服务(例如,Amazon Web (AWS))实现的内容控制系统(CCS)。因此,在这些实施例中,控制应用317可以在将与端点115相关联的网络前缀和/或网络地址发送给网络应用257之前或之后生成对于所请求的文件218的许可。
在步骤415,网络应用257确定网络前缀是前缀公告(prefix announcement)还是前缀撤回(prefix withdrawal)。如果网络应用257确定网络前缀是前缀撤回,则方法400进行到步骤480,如图4B所示。另一方面,如果网络应用257确定网络前缀是前缀公告,则方法400进行到步骤420。
接着,在步骤420,网络应用257在路由表220和/或转发表230上执行查找,以确定对于网络前缀是否存在精确匹配。例如,参考图5A,图5A示出了转发表230中存储的树结构500的条目510,网络应用257可以在转发表230上执行查找以确定针对10.0.2.0/24:A的条目510是否存在。如果针对网络前缀的精确匹配不存在,则方法400进行到步骤425。
在步骤425,网络应用257将网络前缀和相关联的路由信息存储在路由表220中,并将网络前缀和相关联的路由信息写入转发表230中,如图5B所示。网络应用257还在路由表220中将网络前缀标记为有效(active),指示网络前缀应该(或已经)被写入转发表230的条目510。方法400然后终止。
返回步骤420,如果针对网络前缀的精确匹配存在,则方法400进行到步骤430。在步骤430,网络应用257在路由表220和/或转发表230上执行查找以确定是否存在针对网络前缀的部分匹配。在一些实施例中,网络应用257通过返回查找树结构500以确定更短的且覆盖网络前缀的条目510是否已经存在于树结构500中,来确定是否存在针对网络前缀的部分匹配。例如,参考图5B,网络应用257可以返回查找树结构500,以确定针对10.0.2.0/22:A网络前缀的条目510存在于树结构500中并且覆盖10.0.2.0/24:A网络前缀。如果网络应用257确定针对网络前缀的部分匹配不存在,则方法400进行到步骤435,在步骤435,网络应用257比较与网络前缀相关联的路由信息和路由表220和/或转发表230中所存储的针对网络前缀的现有路由信息。
在步骤450,网络应用257可选地基于在步骤435执行的比较来更新与网络前缀相关联的条目510中所存储的路由信息。例如,如果在步骤435网络应用257确定了:与网络前缀相关联的路由信息包括了先前未被包括在路由表220的条目510中所存储的现有路由信息中的NH和对应的ASH,则网络应用257将条目510中所存储的路由信息更新为包括附加的NH和ASN。
返回步骤430,如果网络应用257确定存在部分匹配,则方法400进行到步骤440。在步骤440,网络应用257比较与网络前缀相关联的路由信息和与更短网络前缀相关联的路由信息,以确定诸如是否存在匹配或相似度是否超过阈值之类的结果。在各种实施例中,在步骤440执行的比较的类型取决于网络应用257正在实现的是保守(conservative)压缩技术还是强力(aggressive)压缩技术。
在保守压缩技术中,在步骤440,网络应用257确定与网络前缀相关联的路由信息是否匹配与更短网络前缀相关联的路由信息。在一些实施例中,当与网络前缀相关联的路由信息和与更短网络前缀相关联的路由信息包括相同的NH和ASN时,网络应用257确定存在匹配。另外或者替代地,在一些实施例中,在步骤440,当其他类型的路由信息与网络前缀和更短网络前缀二者都相关联时,网络应用257确定存在匹配。
例如,如图5B所示,网络应用257确定与网络前缀10.0.2.0/24:A相关联的路由信息和与更短网络前缀10.0.2.0/22:A相关联的路由信息之间存在匹配,因为这两个网络前缀都与路由信息A相关联,路由信息A包括一组特定的NH和ASN等。随后,方法400进行到步骤460,在步骤460,网络应用257在路由表220中将网络前缀标记为无效(inactive),并且通过从转发表230移除网络前缀来压缩转发表230的内容,如图5C所示。替代地,在网络前缀最初没有在步骤425被写入的实施例中,网络应用257在路由表220中将网络前缀标记为无效,并且通过确定网络前缀将不被写入在转发表230中来压缩转发表230的内容,如图5C所示。
接着,在步骤470,网络应用257可选地将与更短前缀相关联的路由信息更新为包括与网络前缀相关联的路由信息。例如,如果与网络前缀相关联的路由信息包括与更短网络前缀相关联的路由信息中没有包括的一个或多个NH和/或ASN,则该路由信息可以被与转发表230中的针对更短网络前缀的条目510相关联。但是,当网络应用257在步骤440实现保守压缩技术时,与更短前缀相关联的路由信息可以在步骤470不被更新,因为与网络前缀相关联的路由信息已经匹配针对更短网络前缀的条目510中所存储的路由信息。方法400随后终止。
在另一示例中,如图5D所示,如果网络应用257接收到另一网络前缀(10.0.11.0/24:A)并向在步骤430确定的更短网络前缀(10.0.8.0/22:B)和网络前缀应用步骤440的保守压缩技术,则网络应用257将确定不存在匹配。具体地,与网络前缀10.0.11.0/24:A相关联的路由信息A不匹配与更短网络前缀10.0.8.0/22:B相关联的路由信息B。因此,方法400将进行到步骤450,网络前缀10.0.11.0/24:A在步骤460将不被从转发表230移除,如图5E的上部分所示。
相反,当网络应用257在步骤440应用强力压缩技术时,网络应用257确定与网络前缀相关联的路由信息和与更短网络前缀相关联的路由信息之间的相似度是否超过阈值等级。在一些实施例中,网络应用257确定当与网络前缀相关联的路由信息的阈值百分比(例如,40%、60%、80%等)也与更短网络前缀相关联时相似度超过阈值等级,和/或反之亦然。例如,参考图5D,如果阈值等级被设置在60%,则网络应用257将确定与网络前缀10.0.11.0/24:A相关联的路由信息A和与更短网络前缀10.0.8.0/22:B相关联的路由信息B之间的相似度超过阈值等级,例如,因为与网络前缀相关联的三个NH和ASN中的两个也与更短网络前缀相关联和/或因为与更短网络前缀相关联的三个NH和ASN中的两个也与网络前缀相关联。
因此,如果网络应用257在步骤440实现强力压缩技术和60%的阈值等级,则方法400进行到步骤460。在步骤460,网络应用257在路由表220中将网络前缀10.0.11.0/24:A标记为无效,并且通过从转发表230移除网络前缀或者不在转发表230中写入网络前缀来压缩转发表230的内容,如图5E的下部所示。方法400随后进行到步骤470,在步骤470,网络应用257可选地将与更短网络前缀相关联的路由信息更新为包括与网络前缀相关联的路由信息。例如,参考图5D,网络应用257可以确定与更短网络前缀相关联的路由信息不包括与更长网络前缀相关联的路由信息中所包括的特定ASN的NH。相应地,在步骤470,网络应用257将与更短网络前缀相关联的路由信息更新为包括与该ASN相关联的NH。方法400随后终止。
另一方面,如果网络应用257在步骤440实现强力压缩技术和80%的阈值等级,则与网络前缀10.0.11.0/24:A相关联的路由信息A和与更短网络前缀10.0.8.0/22:B相关联的路由信息B之间的相似度(假设三个NH和ASN中的两个与两个网络前缀相关联,大约66%的相似度)不超过阈值等级。随后,方法400进行到步骤450。
还应该注意,如果网络应用257针对网络前缀10.0.2.0/24:A和更短网络前缀10.0.2.0/22:A实现强力压缩技术和60%的阈值等级,则方法400进行到步骤460,因为网络应用257将在步骤440确定100%相似度。然后,在步骤460,网络应用257在路由表220中将网络前缀10.0.2.0/24标记为无效,并且通过从转发表230移除网络前缀或者不在转发表230中写入网络前缀来压缩转发表230的内容,如图5C所示。方法400随后进行到步骤470,在步骤470,网络应用257确定与更短网络前缀相关联的路由信息不需要被更新。方法400随后终止。
在一些实施例中,在步骤440,网络应用257通过向路由信息中的一个或多个项目应用加权,来实现强力压缩技术。例如,网络应用257可以从系统存储器214提取路由策略,并且基于路由策略确定一个或多个ASN优于一个或多个其他ASN。网络应用257随后可以向与更优选的(一个或多个)ASN相关联的路由信息(例如,NH)应用加权和/或向不太优选的(一个或多个)ASN应用加权。然后,当网络应用257确定路由信息没有被包括在网络前缀和更短网络前缀两者中时,在确定是否折叠/聚集与网络前缀和更短网络前缀相关联的路由信息时可以考虑应用到非重叠路由信息的加权。
例如,如果网络应用257确定了ASN3是比ASN1或ASN2更优选的ASN,则网络应用257可以向与ASN3相关联的每块路由信息指派加权(例如,加权因子2)。然后,参考图5D,网络应用257确定与网络前缀10.0.11.0/24:A相关联的路由信息和与更短网络前缀10.0.8.0/22:B相关联的路由信息之间的相似度为50%。更具体地,由于与ASN3相关联的NH将实际上当作没有被包括在与更短网络前缀10.0.8.0/22相关联的路由信息中的两个NH(由于应用到与ASN3相关联的路由信息的加权因子),更短网络前缀10.0.8.0/22:B将与跟更长网络前缀10.0.11.0/24:A相关联的路由信息的仅50%相关联。
返回到步骤480,在网络应用257确定网络前缀将被从路由表220和转发表230撤回后,网络应用257确定路由表220和/或转发表230中是否存在针对网络前缀的精确匹配。如果存在精确匹配,方法400进行到步骤490,在步骤490,网络应用257确定是否存在与网络前缀相关联的一个以上NH。
如果在步骤490存在与网络前缀相关联的一个以上NH,则网络应用257基于诸如路由偏好和/或路由效率之类的一个或多个准则来在与网络前缀相关联的NH上执行路由选择处理。基于路由选择处理,与网络前缀相关联的一个或多个NH可以被从路由表220和转发表230移除。方法400随后进行到步骤420,如上所述。如果网络应用257确定仅存在一个与网络前缀相关联的NH,则在步骤494,网络应用257从路由表220和转发表230删除与NH相关联的条目510。方法400随后终止。
如果在步骤480网络应用257确定网络前缀覆盖一个或多个更长网络前缀,则在步骤482,网络应用257从路由表220和转发表230删除所撤回的网络前缀。然后,在步骤484,网络应用257选择由所撤回的网络前缀覆盖的更长网络前缀,并且方法400进行到步骤420,如上所述。另外,如果所撤回的网络前缀覆盖多个更长网络前缀,则网络应用257可以针对每个更长网络前缀执行步骤420至470。
尽管参考转发表230描述了图4的技术,但是在各种实施例中,一些或所有技术可以被离线执行。例如,在一些实施例中,网络前缀列表可以在步骤410被接收并且通过步骤420至480被离线压缩。另外,在一些实施例中,当附加的网络前缀被网络应用257接收到时,该技术可以被离线执行以便初始压缩网络前缀列表,并且还可以在正在进行的基础上被执行。
第二压缩过程
图6示出了根据本发明的各种实施例的用于在第二压缩过程期间压缩转发表230的方法步骤的流程图。尽管结合图1至3、图5A至5E、图7A至7B、以及图8的系统描述这些方法步骤,但是本领域技术人员将理解的是,被配置为按照任意顺序执行这些方法步骤的任意系统都落入本发明的范围。
如图6所示,方法600开始于步骤610,在步骤610,网络应用257接收到网络前缀列表和与网络前缀相关联的路由信息。在各种实施例中,网络前缀列表可以经由上述任意技术被接收。例如,当网关服务发现网络105中的新目的地节点时,网络前缀列表可以被从注册服务接收或者从路由表220和/或转发表230读取等。为了说明清楚,结合图7A的树结构500所示的包括有限数目的网络前缀的网络前缀列表来描述图6的方法600。但是,方法600可以利用存储任意数目的网络前缀的任意数据结构来实现。
在各种实施例中,网络前缀列表可以包括网络前缀状态,该网络前缀状态指示例如,网络前缀处于分配池中的哪里以及网络前缀是否被分配、保留、或指派。另外,网络应用257可以接收与网络前缀相关联的其他类型的信息,包括网络前缀的地理特性(例如,与网络前缀相关联的大陆、国家、省等)和/或与网络前缀相关联的流量策略。另外,网络应用257可以接收或确定指示网络前缀是否被包括在被分配、保留(例如,非公共地址空间)、遗留(legacy)(例如,指派给政府机关)等的地址空间中的信息。
在步骤620,网络应用257选择与网络前缀列表相关联的子网。在各种实施例中,网络应用257分析具有固定大小的一个或多个子网(例如,/8子网、/16子网、/24子网等),并且随后基于分析结果选择子网。例如,网络应用257可以分析/8子网(例如,10.0.0.0/8),以确定与/8子网相关联的中值(median)网络前缀。网络应用257随后可以选择与中值网络前缀相关联的子网,作为第二压缩过程的起始点。替代地,网络应用257可以确定中值网络前缀,从网络前缀中减去一个路由掩码比特,并且使用对应的子网作为第二压缩过程的起始点。
在一些实施例中,网络应用257可以倾向于例如通过将元数据与网络前缀相关联,来压缩某个范围的网络前缀和/或防止对某个范围的网络前缀的压缩。例如,网络应用257可以防止对与特定的互联网服务提供商(ISP)、内容提供商、代理等相关联的网络前缀的压缩,使得与网络前缀相关联的特定类型的路由信息不会丢失。这些网络前缀可以被传送到转发表230而不应用压缩。另外,网络应用257可以基于RIR如何分配某些网络前缀范围来对这些范围进行分组。例如,1.0.0.0/8网络前缀主要是与亚洲部分相关联的。在这些网络前缀范围中,例如,基于商业关系,去往某些ISP的流量会受到影响,和/或流量可以围绕某些ISP被路由。
接着,在步骤630,网络应用257选择在610接收到的网络前缀列表中所包括的网络前缀。在步骤640,网络应用257随后确定网络前缀是否在步骤620选择的子网的范围内。如果网络应用257确定网络前缀在所选择的子网的范围内,则方法600进行到步骤644,在步骤644,网络应用257向候选列表添加网络前缀。另一方面,如果网络应用257确定网络前缀不在所选择的子网的范围内,则方法600进行到步骤642,在步骤642,网络应用257不向候选列表添加网络前缀。方法600随后进行到步骤650,在步骤650,网络应用257确定网络前缀列表中所包括的最后一个网络前缀是否已经被处理。如果网络应用257确定网络前缀列表中所包括的最后一个网络前缀尚未被处理,则方法600返回到步骤630,在步骤630,网络应用257选择另一网络前缀。如果网络应用257确定网络前缀列表中所包括的最后一个网络前缀已经被处理,则方法600进行到步骤660。
参考图7A和7B所示的示例,网络应用257可以在步骤620选择与10.0.1.0/18相关联的子网。然后,在步骤630,网络应用257可以选择网络前缀10.0.9.0/24:C,并且在步骤640确定网络前缀10.0.9.0/24:C处于与10.0.1.0/18相关联的子网的范围内。随后,在步骤644,网络应用257将向候选列表添加网络前缀10.0.9.0/24:C。接着,在步骤650,网络应用257确定最后一个网络前缀尚未被处理,并且方法600将返回到步骤630。在步骤630,网络应用257可以选择另一网络前缀(例如,10.0.11.0/24:A、10.0.8.0/23:A、或10.0.2.0/22:A),并且在步骤640确定该网络前缀是否处于与10.0.1.0/18相关联的子网的范围内。方法600随后进行到步骤642或步骤644。
在一些实施例中,网络应用257以迭代方式执行步骤620至650。例如,网络应用257可以在步骤620选择特定子网,并且随后针对该子网执行步骤630至650。然后,在到达网络前缀列表中的最后一个网络前缀后,网络应用257可以从与该子网相关联的路由掩码中减去一个比特,并针对更大的子网再次执行步骤630至650。在一些实施例中,该迭代处理可以被重复,直到已经针对网络前缀列表选择并分析了最大的可行合成超网。方法600随后可以进行到步骤660。
接着,在步骤660,网络应用257基于与网络前缀相关联的路由信息,对候选列表中所包括的网络前缀进行分组。在一些实施例中,网络应用257针对每个类型的路由信息生成不同的子群组。例如,参考图7A和7B,网络应用257可以针对路由信息A生成第一子群组,针对路由信息B生成第二子群组,并且针对路由信息C生成第三子群组。另外,在该特定示例中,网络前缀10.0.11.0/24:A、10.0.8.0/23:A、以及10.0.2.0/22:A将被添加到第一子群组,网络前缀10.0.8.0/22:B将被添加到第二子群组,并且网络前缀10.0.9.0/24:C将被添加到第三子群组。
在一些实施例中,可以基于其他类型的信息(例如,网络前缀的地理特性和/或与网络前缀相关联的流量策略)来对网络前缀进行分组。例如,网络应用257可以将与相同或类似路由信息相关联、与相同或类似的地理位置相关联,和/或与相同或类似的流量策略相关联的网络前缀分组在一起。在一些实施例中,如以上结合图4和图5E的强力压缩技术描述的,可以基于相似度是否满足阈值等级(例如,路由信息、地理信息、和/或流量策略之间的百分比相似度)来确定子群组。
在具体示例中,网络应用257可以生成共享相同的路由信息(例如,路由信息A)和相同的大陆(例如,北美)两者的网络前缀子群组。另外,在该示例中,网络应用257还可以要求网络前缀要与针对相同子群组中所包括的网络前缀的类似流量策略相关联。在其他实施例中,网络应用257可以生成共享相同的路由信息和相同或类似的流量策略两者的网络前缀子群组。
接着,在步骤670,网络应用257基于在步骤660生成的子群组生成合成超网。在一些实施例中,网络应用257基于具有最大网络前缀计数的子群组来生成合成超网。例如,如图7B所示,网络应用257可以生成合成超网10.0.1.0/18:A,使得网络前缀条目的数目能够被减少2。具体地,与路由信息A相关联的网络前缀10.0.11.0/24:A、10.0.8.0/23:A、和10.0.2.0/22:A可以被从转发表230移除或者可以不被安装到转发表230中,并且覆盖这些网络前缀的单个合成超网可以被生成。
在步骤680,网络应用257将合成超网(例如,10.0.1.0/18:A)和剩余的未压缩网络前缀条目(例如,10.0.8.0/22:B和10.0.9.0/24:C)安装到转发表230。相应地,在各种实施例中,合成超网,即,在步骤610接收的网络前缀列表中最初不存在的超网,被生成和/或被安装到转发表230中。另外,在图7A和7B所示的示例中,只有三个网络前缀条目(即,合成超网条目和与未压缩网络前缀条目相关联的两个条目)被安装到转发表230,而不是在第二压缩过程开始时存在的五个网络前缀条目。方法600随后进行到步骤690,在步骤690,网络应用257确定是否压缩另一子网。如果网络应用257确定附加的子网将被压缩,则方法600返回到步骤620。如果网络应用257确定没有附加的子网将被压缩,则方法600终止。
为了说明清楚,图5A至5E、图7A和7B所示的树结构500包括有限数目的条目。但是,在各种实施例中,树结构500和/或具有任意数目的条目的网络前缀列表可以被网络应用257处理,以执行第一压缩过程和/或第二压缩过程。在一些实施例中,第二压缩过程在第一压缩过程的结果上被执行。在其他实施例中,第二压缩过程可以在网络应用257没有通过结合图4和图5A至5E描述的第一压缩过程压缩的网络前缀列表、树结构500、转发表230等上被执行。
尽管针对转发表230描述了图6的技术,但是在各种实施例中,一些或所有技术可以被离线执行。例如,在一些实施例中,网络前缀列表可以在步骤610被接收并经由步骤620至690被离线压缩。另外,在一些实施例中,当附加的网络前缀被网络应用257接收到时,该技术可以被离线执行以初始压缩网络前缀列表,并且还可以在正在进行的基础上被执行。
图8示出了根据本发明的各种实施例的与子网的一部分相关联的网络前缀条目。如图所示,在步骤670生成的合成超网条目包括与子网10.0.2.0/22:A、子网10.0.8.0/23:A、以及子网10.0.11.0/24:A相关联的地址空间。如进一步示出的,与子网10.0.8.0/22:B和子网10.0.9.0/24:C相关联的未压缩网络前缀保持为单独的条目。
总之,在第一压缩过程中,网络应用接收网络前缀并在路由表和/或转发表上执行查找以找出与网络前缀相关联的部分匹配。如果部分匹配存在,则网络应用比较与网络前缀相关联的路由信息和与部分匹配(例如,更短网络前缀)相关联的路由信息。基于与网络前缀相关联的路由信息和与部分匹配相关联的路由信息之间的相似度,网络应用随后确定是否应该通过从转发表移除网络前缀并且聚集与部分匹配相关联的条目中的对应路由信息来压缩转发表。
另外,在第二压缩过程中,网络应用选择子网并确定网络前缀列表中所包括的哪些网络前缀处于所选择的子网的范围中。网络应用随后基于路由信息对得到的网络前缀进行分组并选择例如具有最高网络前缀计数的网络前缀子群组。最后,网络应用生成与网络前缀子群组相关联的合成超网,并且将合成超网安装到转发表。
所公开的技术的至少一个优点在于,在无需丢弃与由转发表跟踪的目的地节点相关联的路由信息的条件下,可以减少转发表中所包括的条目的数目。因此,更大数目的路由可以被存储在转发表中和/或转发表的存储器要求可以被降低。
各种实施例的描述出于说明的目的被给出,而不旨在穷举或限于所公开的实施例。在不偏离所描述的实施例的范围和精神的条件下,很多修改和变形对于本领域普通技术人员将是显而易见的。
这些实施例的多个方面可以被具体化为系统、方法、或计算机程序产品。因此,本公开的多个方面可以采用完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)、或组合软件和硬件方面(在本文均可以被称为“模块”或“系统”)的实施例的形式。另外,本公开的多个方面可以采用具体化为具有在其上被具体化为计算机可读程序代码的一个或多个计算机可读介质中的计算机程序产品的形式。
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于,电子、磁、光、电磁、红外、或半导体系统、装置、设备、或它们的任何适当组合。计算机可读存储介质的更具体示例(非穷举列表)可以包括以下各项:具有一条或多条电线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式压缩盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或它们的任何适当组合。在本公开的上下文中,计算机可读存储介质可以是可以包含或存储供指令执行系统、装置、或设备使用或者可以结合指令执行系统、装置、或设备使用的程序。
以上参考根据本公开实施例的方法、装置(系统)、和计算机程序产品的流程图和/或框图描述了本公开的多个方面。将理解的是,流程图和/或框图的每个块以及流程图和/或框图中的块的组合可以由计算机程序指令实现。这些计算机程序指令可以被提供给通用计算机、专用计算机、或者其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的这些指令使能流程图和/或框图的一个或多个块中指定的功能/动作的实现。这些处理器可以是但不限于通用处理器、专用处理器、或现场可编程。
图中的流程图和框图示出了根据本发明的各种实施例的系统、方法、和计算机程序产品的可能实施方式的架构、功能、和操作。在这方面,流程图或框图中的每个块可以代表包括用于实现(一个或多个)指定逻辑功能的一个或多个可执行指令的模块、分段、或代码部分。还应该注意的是,在一些替代实施方式中,块中指出的功能可以不按照图中所示的顺序执行。例如,连续示出的两个快实际上可以基本同时执行,或者这些块有时可以按照相反顺序执行,这取决于所涉及的功能。还将注意到,框图和/或流程图的每个块以及框图和/或流程图中的块的组合可以由执行指定功能或动作的基于专用硬件的系统或者专用硬件和计算机指令的组合来实现。
尽管前述内容针对本公开的实施例,但是在不偏离本公开的基本范围的条件下本公开的其他和进一步的实施例可以被设计出来,并且本公开的范围由下面的权利要求确定。
Claims (20)
1.一种非暂态计算机可读存储介质,包括在被处理器执行时使得所述处理器执行以下步骤的指令:
从网络前缀列表中选择处于子网的范围内的多个网络前缀;
基于路由信息对所述多个网络前缀进行分类,以生成一个或多个网络前缀子群组;
选择所述一个或多个网络前缀子群组中所包括的第一网络前缀子群组;
确定与所述第一网络前缀子群组相关联的路由信息之间的相似度超过阈值等级,其中,与所述第一网络前缀子群组中所包括的第一网络前缀相关联的路由信息不同于与所述第一网络前缀子群组中所包括的第二网络前缀相关联的路由信息;以及
响应于所述确定,基于所述第一网络前缀子群组来生成合成超网。
2.如权利要求1所述的非暂态计算机可读存储介质,其中,所述一个或多个网络前缀子群组中所包括的每个网络前缀子群组与不同的路由信息集相关联。
3.如权利要求2所述的非暂态计算机可读存储介质,其中,每个不同的路由信息集包括一个或多个下一跳。
4.如权利要求1所述的非暂态计算机可读存储介质,其中,所述多个网络前缀是根据与网络前缀相关联的地理区域和与网络前缀相关联的流量策略中的至少一者来分类的,以生成所述一个或多个网络前缀子群组。
5.如权利要求1所述的非暂态计算机可读存储介质,其中,所述合成超网对应于所述网络前缀列表中没有包括的网络前缀。
6.如权利要求1所述的非暂态计算机可读存储介质,其中,所述第一网络前缀子群组中所包括的每个网络前缀与第一路由信息集相关联,并且还包括将所述合成超网与所述第一路由信息集相关联。
7.如权利要求6所述的非暂态计算机可读存储介质,还包括:将所述合成超网写入转发表的条目,以及将所述条目与第一路由信息集相关联。
8.如权利要求7所述的非暂态计算机可读存储介质,还包括:从所述转发表移除所述第一网络前缀子群组。
9.如权利要求7所述的非暂态计算机可读存储介质,还包括:确定所述第一网络前缀子群组不应该被从路由表写入所述转发表。
10.一种方法,包括:
从网络前缀列表选择处于子网的范围内的多个网络前缀;
对所述多个网络前缀进行分类,以生成一个或多个网络前缀子群组;
选择所述一个或多个网络前缀子群组中所包括的第一网络前缀子群组;
确定与所述第一网络前缀子群组相关联的路由信息之间的相似度超过阈值等级,其中,与所述第一网络前缀子群组中所包括的第一网络前缀相关联的路由信息不同于与所述第一网络前缀子群组中所包括的第二网络前缀相关联的路由信息;以及
响应于所述确定,基于所述第一网络前缀子群组来生成合成超网。
11.如权利要求10所述的方法,其中,所述一个或多个网络前缀子群组中所包括的每个网络前缀子群组与不同的路由信息集相关联。
12.如权利要求10所述的方法,其中,所述第一网络前缀子群组是基于所述一个或多个网络前缀子群组中具有最大网络前缀计数的第一网络前缀子群组来选择的。
13.如权利要求10所述的方法,还包括:分析所述网络前缀列表以确定中值网络前缀,以及基于所述中值网络前缀来确定所述子网。
14.如权利要求10所述的方法,其中,所述合成超网对应于所述网络前缀列表中没有包括的网络前缀。
15.如权利要求10所述的方法,其中,所述第一网络前缀子群组中所包括的每个网络前缀与第一组下一跳相关联,并且还包括将所述合成超网与所述第一组下一跳相关联。
16.如权利要求15所述的方法,还包括:将所述合成超网写入转发表的条目,以及将所述条目与第一组下一跳相关联。
17.如权利要求10所述的方法,还包括以下各项中的至少一者:从转发表移除所述第一网络前缀子群组、以及确定所述第一网络前缀子群组不应该被写入所述转发表。
18.如权利要求17所述的方法,还包括:将所述一个或多个网络前缀子群组中所包括的第二网络前缀子群组写入所述转发表,其中,所述第二网络前缀子群组与跟所述合成超网不同的一组下一跳相关联。
19.一种网络设备,包括:
存储网络应用的第一存储器;
存储转发表的第二存储器;以及
耦合到所述第一存储器和所述第二存储器的处理器,其中
所述网络应用在被所述处理器执行时将所述处理器配置为进行以下操作:
从网络前缀列表中选择处于子网的范围中的多个网络前缀;
基于与所述多个网络前缀相关联的路由信息来对所述多个网络前缀进行分类,以生成多个网络前缀子群组;
选择所述多个网络前缀子群组中所包括的第一网络前缀子群组;
确定与所述第一网络前缀子群组相关联的路由信息之间的相似度超过阈值等级,其中,与所述第一网络前缀子群组中所包括的第一网络前缀相关联的路由信息不同于与所述第一网络前缀子群组中所包括的第二网络前缀相关联的路由信息;
响应于所述确定,基于所述第一网络前缀子群组来生成合成超网;以及
将所述合成超网写入所述转发表。
20.如权利要求19所述的网络设备,其中,所述合成超网对应于所述网络前缀列表中没有包括的网络前缀,并且所述网络应用还将所述处理器配置为从所述转发表移除所述第一网络前缀子群组或者确定所述第一网络前缀子群组不应该被写入所述转发表。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/237,541 US10263890B2 (en) | 2016-08-15 | 2016-08-15 | Synthetic supernet compression |
US15/237,541 | 2016-08-15 | ||
PCT/US2017/046823 WO2018035064A1 (en) | 2016-08-15 | 2017-08-14 | Compressing forwarding tables |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109804605A CN109804605A (zh) | 2019-05-24 |
CN109804605B true CN109804605B (zh) | 2021-06-04 |
Family
ID=59700229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780063336.4A Active CN109804605B (zh) | 2016-08-15 | 2017-08-14 | 压缩转发表 |
Country Status (12)
Country | Link |
---|---|
US (2) | US10263890B2 (zh) |
EP (1) | EP3497892B1 (zh) |
JP (1) | JP6808018B2 (zh) |
KR (1) | KR102212247B1 (zh) |
CN (1) | CN109804605B (zh) |
AU (2) | AU2017312955B2 (zh) |
BR (1) | BR112019003145A2 (zh) |
CA (1) | CA3033779C (zh) |
DK (1) | DK3497892T3 (zh) |
MX (1) | MX2019001810A (zh) |
SG (1) | SG11201901260RA (zh) |
WO (1) | WO2018035064A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9806897B2 (en) | 2013-09-17 | 2017-10-31 | Cisco Technology, Inc. | Bit indexed explicit replication forwarding optimization |
US10218524B2 (en) | 2013-09-17 | 2019-02-26 | Cisco Technology, Inc. | Bit indexed explicit replication for layer 2 networking |
KR102293670B1 (ko) * | 2016-08-23 | 2021-08-26 | 한국전자통신연구원 | 무선랜에서 저전력 모드를 지원하는 통신 노드의 동작 방법 |
US10630743B2 (en) | 2016-09-23 | 2020-04-21 | Cisco Technology, Inc. | Unicast media replication fabric using bit indexed explicit replication |
US10637675B2 (en) * | 2016-11-09 | 2020-04-28 | Cisco Technology, Inc. | Area-specific broadcasting using bit indexed explicit replication |
US10164794B2 (en) | 2017-04-28 | 2018-12-25 | Cisco Technology, Inc. | Bridging of non-capable subnetworks in bit indexed explicit replication |
CN111639752B (zh) * | 2020-05-29 | 2023-09-26 | 北京百度网讯科技有限公司 | 用于训练超网络的方法、装置、设备以及存储介质 |
US11595302B2 (en) * | 2020-09-23 | 2023-02-28 | Ciena Corporation | Controlling routing behavior during router table-memory exhaustion events |
WO2022150052A1 (en) * | 2021-01-05 | 2022-07-14 | Vmware, Inc. | Compression of route tables using key values |
US11770338B2 (en) * | 2021-01-28 | 2023-09-26 | Arista Networks, Inc. | Increasing multi-path size using hierarchical forwarding equivalent classes |
CN113194030B (zh) * | 2021-05-06 | 2021-12-24 | 中国人民解放军国防科技大学 | 一种基于网络前缀切分的多路径报文转发方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005184482A (ja) * | 2003-12-19 | 2005-07-07 | Kddi Corp | Ipアドレスに地理範囲情報を有するパケットの経路制御装置、経路制御プログラム及び経路制御方法 |
US7903666B1 (en) * | 2008-03-31 | 2011-03-08 | Extreme Networks, Inc. | Method and system for compressing route entries in a route table based on equal-cost multi-paths (ECMPs) matches |
US7936764B1 (en) * | 2008-04-09 | 2011-05-03 | Extreme Networks, Inc. | Method for optimizing IP route table size through IP route aggregation |
CN104348733A (zh) * | 2013-07-26 | 2015-02-11 | 华为技术有限公司 | 内容名压缩方法及装置 |
CN105208622A (zh) * | 2015-08-26 | 2015-12-30 | 江苏林洋电子股份有限公司 | 一种高效动态自动维护的路由表结构及路由表管理方法 |
JP2016032226A (ja) * | 2014-07-29 | 2016-03-07 | 富士通株式会社 | 通信制御装置、通信制御方法および通信制御プログラム |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6963924B1 (en) * | 1999-02-01 | 2005-11-08 | Nen-Fu Huang | IP routing lookup scheme and system for multi-gigabit switching routers |
EP1529391A1 (en) * | 2002-08-14 | 2005-05-11 | Nokia Corporation | Layered compression architecture for multi-hop header compression |
US7453883B1 (en) * | 2003-04-14 | 2008-11-18 | Cisco Technology, Inc. | Method for compressing route data in a router |
US7487255B2 (en) * | 2003-08-14 | 2009-02-03 | Hewlett-Packard Development Company, L.P. | Routing cache management with route fragmentation |
FI20060563A0 (fi) * | 2006-06-07 | 2006-06-07 | Nokia Corp | Staattista reititystä käyttäville verkoille tarkoitettu pakettienluokitusmenetelmä |
WO2010138639A2 (en) * | 2009-05-26 | 2010-12-02 | Arizona Board Of Regents, For And On Behalf Of Arizona State University | Longest prefix match internet protocol content addressable memories and related methods |
US8625604B2 (en) * | 2009-12-01 | 2014-01-07 | Polytechnic Institute Of New York University | Hash-based prefix-compressed trie for IP route lookup |
US9077669B2 (en) * | 2010-06-14 | 2015-07-07 | Dynamic Invention Llc | Efficient lookup methods for ternary content addressable memory and associated devices and systems |
US20130003732A1 (en) * | 2011-06-29 | 2013-01-03 | Brocade Communications Systems, Inc. | Abstracting accepting interface to optimize parent and child entry lookup for bidirectional pim |
US9008092B2 (en) * | 2011-10-07 | 2015-04-14 | Cisco Technology, Inc. | Route prefix aggregation using reachable and non-reachable addresses in a computer network |
US8848707B2 (en) * | 2012-09-26 | 2014-09-30 | Avaya Inc. | Method for IP longest prefix match using prefix length sorting |
CN103780490B (zh) * | 2012-10-17 | 2018-03-30 | 中兴通讯股份有限公司 | 一种更新路由查找树的方法及装置 |
WO2015180153A1 (zh) * | 2014-05-30 | 2015-12-03 | 华为技术有限公司 | 一种多路径转发规则的构造方法、装置及系统 |
US10798000B2 (en) * | 2014-12-22 | 2020-10-06 | Arista Networks, Inc. | Method and apparatus of compressing network forwarding entry information |
US20170155587A1 (en) * | 2015-11-30 | 2017-06-01 | Netflix, Inc | Forwarding table compression |
-
2016
- 2016-08-15 US US15/237,541 patent/US10263890B2/en active Active
-
2017
- 2017-08-14 CN CN201780063336.4A patent/CN109804605B/zh active Active
- 2017-08-14 KR KR1020197007240A patent/KR102212247B1/ko active IP Right Grant
- 2017-08-14 DK DK17757651.9T patent/DK3497892T3/da active
- 2017-08-14 SG SG11201901260RA patent/SG11201901260RA/en unknown
- 2017-08-14 EP EP17757651.9A patent/EP3497892B1/en active Active
- 2017-08-14 WO PCT/US2017/046823 patent/WO2018035064A1/en unknown
- 2017-08-14 BR BR112019003145A patent/BR112019003145A2/pt unknown
- 2017-08-14 MX MX2019001810A patent/MX2019001810A/es unknown
- 2017-08-14 AU AU2017312955A patent/AU2017312955B2/en active Active
- 2017-08-14 JP JP2019508253A patent/JP6808018B2/ja active Active
- 2017-08-14 CA CA3033779A patent/CA3033779C/en active Active
-
2018
- 2018-12-04 US US16/209,896 patent/US10778581B2/en active Active
-
2020
- 2020-06-29 AU AU2020204340A patent/AU2020204340A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005184482A (ja) * | 2003-12-19 | 2005-07-07 | Kddi Corp | Ipアドレスに地理範囲情報を有するパケットの経路制御装置、経路制御プログラム及び経路制御方法 |
US7903666B1 (en) * | 2008-03-31 | 2011-03-08 | Extreme Networks, Inc. | Method and system for compressing route entries in a route table based on equal-cost multi-paths (ECMPs) matches |
US7936764B1 (en) * | 2008-04-09 | 2011-05-03 | Extreme Networks, Inc. | Method for optimizing IP route table size through IP route aggregation |
CN104348733A (zh) * | 2013-07-26 | 2015-02-11 | 华为技术有限公司 | 内容名压缩方法及装置 |
JP2016032226A (ja) * | 2014-07-29 | 2016-03-07 | 富士通株式会社 | 通信制御装置、通信制御方法および通信制御プログラム |
CN105208622A (zh) * | 2015-08-26 | 2015-12-30 | 江苏林洋电子股份有限公司 | 一种高效动态自动维护的路由表结构及路由表管理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20180048566A1 (en) | 2018-02-15 |
EP3497892B1 (en) | 2021-10-06 |
MX2019001810A (es) | 2019-08-21 |
AU2017312955A1 (en) | 2019-03-07 |
KR102212247B1 (ko) | 2021-02-04 |
WO2018035064A1 (en) | 2018-02-22 |
CN109804605A (zh) | 2019-05-24 |
EP3497892A1 (en) | 2019-06-19 |
KR20190033631A (ko) | 2019-03-29 |
US20190109788A1 (en) | 2019-04-11 |
AU2020204340A1 (en) | 2020-07-16 |
AU2017312955B2 (en) | 2020-04-02 |
CA3033779C (en) | 2021-05-25 |
BR112019003145A2 (pt) | 2019-06-11 |
SG11201901260RA (en) | 2019-03-28 |
JP6808018B2 (ja) | 2021-01-06 |
JP2019525660A (ja) | 2019-09-05 |
US10263890B2 (en) | 2019-04-16 |
US10778581B2 (en) | 2020-09-15 |
CA3033779A1 (en) | 2018-02-22 |
DK3497892T3 (da) | 2021-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109804605B (zh) | 压缩转发表 | |
EP2869537B1 (en) | Using interest messages with payload to configure network nodes in named data networks | |
CN102523314B (zh) | 识别高效的目标服务器的方法和装置 | |
KR102052520B1 (ko) | 컨텐츠 중심 네트워크에서 컨텐츠의 이동성을 지원하기 위한 노드의 통신 방법 및 노드 | |
US9998354B2 (en) | Server selection for content distribution | |
US20170302552A1 (en) | Network monitoring and control system and method | |
JP6606516B2 (ja) | 効率的なピア支援ストリーミングのためのキャッシュマニフェスト | |
US20150120924A1 (en) | Software-defined named-data networking | |
US10581741B2 (en) | Method and system for interest groups in a content centric network | |
EP2863614A1 (en) | Method and apparatus for a named data network within an autonomous system | |
US10225201B2 (en) | Scalable multicast for notification-driven content delivery in information centric networks | |
KR20150037938A (ko) | 고속 콘텐츠 라우팅 | |
EP3384642B1 (en) | Forwarding table compression | |
CN107580079A (zh) | 一种报文传输方法和装置 | |
CN102857547A (zh) | 分布式缓存的方法及设备 | |
CN110139119B (zh) | 数字广播系统的p2p音频直播分发方法、装置及存储介质 | |
CN107454164A (zh) | 资源下载方法、系统、存储介质及计算机设备 | |
CN111159586B (zh) | 一种基于视联网的视频查询方法及装置 | |
US20180152379A1 (en) | Communication Method and Apparatus Providing Mobility of Object |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |