CN106559340A - 具有小多径或单径转发状态的以信息为中心的网络 - Google Patents
具有小多径或单径转发状态的以信息为中心的网络 Download PDFInfo
- Publication number
- CN106559340A CN106559340A CN201610831683.4A CN201610831683A CN106559340A CN 106559340 A CN106559340 A CN 106559340A CN 201610831683 A CN201610831683 A CN 201610831683A CN 106559340 A CN106559340 A CN 106559340A
- Authority
- CN
- China
- Prior art keywords
- interest
- router
- dart
- content
- node
- 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
- 230000004044 response Effects 0.000 claims abstract description 50
- 238000012545 processing Methods 0.000 claims abstract description 31
- 230000009191 jumping Effects 0.000 claims description 29
- 238000000034 method Methods 0.000 claims description 25
- 238000003860 storage Methods 0.000 description 37
- 238000013507 mapping Methods 0.000 description 21
- 230000008859 change Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 238000006116 polymerization reaction Methods 0.000 description 3
- 241000406668 Loxodonta cyclotis Species 0.000 description 2
- 238000013329 compounding Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 1
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 1
- 240000002853 Nelumbo nucifera Species 0.000 description 1
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 235000012813 breadcrumbs Nutrition 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000000375 direct analysis in real time Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000012063 dual-affinity re-targeting Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 238000005316 response function Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 238000012360 testing method Methods 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/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- 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/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- 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/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
- H04L45/507—Label distribution
-
- 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/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/15—Flow control; Congestion control in relation to multipoint traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/17—Interaction among intermediate nodes, e.g. hop by hop
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的一个实施例提供以信息为中心的网络(ICN)中的路由器。该路由器包括接收模块,其配置成接收一段内容的兴趣。兴趣指示与内容段关联的名称。该路由器还包括兴趣处理模块,其配置成:确定是否能够转发兴趣;响应确定兴趣能够转发到第二路由器,得到第二路由器特定的标签;以及将标签附连到兴趣。该路由器还包括转发模块,其配置成将具有所附标签的兴趣转发到第二路由器。
Description
因特网和电子商务的激增继续促成网络产业中的革命性变化。当今,从在线电影观看到每日新闻发布、零售和即时消息传递的大量信息交换在线进行。增加数量的因特网应用也变成移动的。但是,当前因特网基于主要基于位置的寻址方案进行操作。两种最普遍存在的协议、即因特网协议(IP)和以太网协议均基于端主机地址。也就是说,内容的客户只能通过向通常与物理对象或位置关联的地址(例如IP地址或者以太网媒体接入控制(MAC)地址)显式请求内容来接收内容。这种限制性寻址方案对于满足日新月异网络需求逐渐变成更为不足。
近来,在本产业中提出了以信息为中心的网络(ICN)架构,其中对内容直接命名和寻址。以内容为中心的组网(CCN)和命名数据组网(NDN)是主要的基于兴趣的ICN方式。在CCN中,不是将在应用级的网络业务看作内容传播的端对端会话,内容而是基于其唯一名称来请求或返回,以及网络负责将内容从提供商路由到客户。注意,内容包括能够在通信系统中传输的数据,包括任何形式的数据,例如文本、图像、视频和/或音频。客户和提供商能够是计算机旁的个人或者CCN内部或外部的自动化进程。一段内容能够表示整个内容或者内容的相应部分。例如,报纸文章可通过体现为数据分组的多段内容来表示。一段内容也能够与采用信息来描述或扩增内容段的元数据(例如认证数据、创建日期、内容拥有者等)关联。
在现有的基于兴趣的ICN方式(包括CCN和NDN)中,路由器(或者网络中的节点)需要保持未决兴趣表(PIT),以便存储兴趣陈述,包括从其中接收特定命名数据对象(NDO)的接口以及通过其转发这类兴趣的接口。PIT允许满足兴趣的NDO沿用回到原始请求方的反向路径,同时隐藏原始请求方的身份。但是,随着路由器所操控的兴趣数量增长,PIT的大小也增长,其能够比传统路由选择表要大许多数量级,因为路由器操控比网络中的路由器数量要多许多的兴趣。
本公开所使用的术语一般定义如下(但是其解释并不局限于此):
“HSVLI”:分层结构可变长度标识符,又称作名称。它是名称成分的有序列表,其可以是可变长度八位组字符串。在人类可读形式中,它能够按照例如ccnx:/path/part等的格式来表示。另外,HSVLI可以不是人类可读的。如上所述,HSVLI表示内容,并且期望它们能够表示内容的组织结构,并且至少部分对人类是有意义的。HSVLI的单独成分可具有任意长度。此外,HSVLI能够具有明确界定成分,能够包括字节的任何序列,而并不局限于人类可读字符。最长前缀匹配查找在转发具有HSVLI的分组中是重要的。例如,指示对“/parc/home/bob”的兴趣的HSVLI将匹配“/parc/home/bob/test.txt”和“/parc/home/bob/bar.txt”。在名称成分的数量方面,最长匹配被认为是最佳的,因为它是最特定的。HSVLI的详细描述能够见于发明人Van L.Jacobson和James D.Thornton的美国专利No.8160069(标题为“SYSTEM FOR FORWARDING A PACKET WITH A HIERARCHICALLY STRUCTURED VARIABLE-LENGTH IDENTIFIER”,2009年9月23日提交)。
“兴趣”:对内容对象的请求。兴趣指定HSVLI名称前缀和其他可选选择符,其能够用来在具有相同名称前缀的多个对象之间进行选择。其名称匹配兴趣名称前缀(以及可选地,其他所请求参数、例如发布者密钥-ID匹配)的任何内容对象满足兴趣。
“内容对象”:响应兴趣而发送的数据对象。它具有HSVLI名称和内容有效载荷,其经由密码签名绑定在一起。可选地,所有内容对象具有由内容对象的SHA-256摘要所组成的隐式终端名称成分。在一个实施例中,隐式摘要不是在导线上传递,而是根据需要在每跳来计算。在本公开中,术语“内容对象”和术语“命名数据对象(NDO)”是可互换的。
“端面”:在CCN中,术语“端面”是接口的概念的一般化。端面可以是到网络或者直接到应用方的连接。端面可配置成在特定网络接口上发送和接收广播或多播分组,或者使用基本传输中的点对点寻址或者使用隧道(例如TCP隧道)来发送和接收分组。端面也可以是经由封装到运行于相同机器的单个应用进程的连接,例如UDP或OS特定进程间通信路径。所有消息经过端面到达,并且经过端面发出。在本公开中,术语“邻居”与术语“端面”是可互换的,表示兴趣的入局或出局接口。
“前缀”:在本公开中,术语“前缀”能够用来表示特定内容对象的名称或者内容对象的名称前缀。
“锚点”:在本公开中,术语“锚点”用来表示公告内容的路由器。更具体来说,公告与前缀对应的内容的部分或全部的路由器(或节点)称作前缀的锚点。
“DART”:在本公开中,大写首字母缩写词表示一种数据结构(表),其存储目标和返回令牌(dart)与路由器的端面之间的映射。
“dart”:在本公开中,小写首字母缩写词“dart”表示兴趣所携带的目标和返回令牌,而不应当与表“DART”混淆。
本发明的一个实施例提供以信息为中心的网络(ICN)中的路由器。该路由器包括接收模块,其配置成接收一段内容的兴趣。兴趣指示与内容段关联的名称。该路由器还包括兴趣处理模块,其配置成:确定是否能够转发兴趣;响应确定兴趣能够转发到第二路由器,得到第二路由器特定的标签;以及将标签附连到兴趣。该路由器还包括转发模块,其配置成将具有所附标签的兴趣转发到第二路由器。
在本实施例的变化中,转发模块还配置成响应兴趣处理模块确定无法转发兴趣而发送对兴趣的响应。
在另一变化中,兴趣处理模块配置成基于下列之一来确定无法转发兴趣:无法找到内容段、无法找到到公告内容段的目标路由器的路由和兴趣正遍历环路;以及由转发模块所发送的响应包括否定确认。
在另一变化中,兴趣还指示到公告内容段的目标路由器的跳数,以及兴趣处理模块配置成基于路由器中存储的路由选择信息和跳数来确定兴趣正遍历环路。
在另一变化中,兴趣处理模块配置成基于与内容段关联的名称来确定路由器具有内容段的副本,以及由转发模块所发送的响应包括内容段的副本。
在另一变化中,转发模块配置成:沿兴趣所遍历的反向路径向兴趣的始发方发送响应,或者沿与兴趣所遍历的反向路径不同的路径向兴趣的始发方发送响应。
在另一变化中,兴趣还指示兴趣的始发方特定的随机数。该路由器还包括响应处理模块,其配置成:基于随机数来执行在本地存储表中对匹配条目的查找,其中匹配条目包括一个或多个元组以及指示相邻路由器的相应元组和相邻路由器特定的标签,从一个或多个元组中选择元组;以及使用所选元组所指示的标签对响应加标签。转发模块配置成向所选元组所指示的路由器发送加标签响应。
在本实施例的变化中,兴趣还包括前一标签。兴趣处理模块配置成:在本地存储表中基于前一标签来执行对匹配条目的查找,其中匹配条目指示第二路由器和第二路由器特定的标签;以及响应没有找到匹配条目,生成并且在本地表中存储条目,其中所存储条目指示第二路由器和第二路由器特定的标签。
在另一变化中,将标签附连到兴趣包括采用第二路由器特定的标签来替换前一标签。
图1示出按照本发明的一实施例的网络的示范架构。
图2是示出按照本发明的一实施例的示范转发信息库(FIB)的简图。
图3是示出按照本发明的一实施例的示范数据应答路由选择表(DART)的简图。
图4A是示出按照本发明的一实施例的示范起源随机数表(ONT)的简图。
图4B是示出按照本发明的一实施例的示范目标随机数表(DNT)的简图。
图5A-5B示出按照本发明的一实施例、CCN-DART如何检测兴趣环路。
图6A-6C示出按照本发明的一实施例、CCN-DART如何与单径路由选择和临时路由选择表环路配合操作。
图7示出按照本发明的一实施例、当路由器从本地客户接收兴趣时由路由器所执行的示范兴趣处理算法。
图8示出按照本发明的一实施例、当路由器从邻居接收兴趣时由路由器所执行的示范兴趣处理算法。
图9示出按照本发明的一实施例的示范响应生成算法。
图10A示出按照本发明的一实施例的示范NDO处理算法。
图10B示出按照本发明的一实施例的示范NACK处理算法。
图11是示出按照本发明的一实施例的CCN-DART路由器的示范架构的简图。
图12是示出按照本发明的一实施例的CCN-DART的示范操作的简图。
图13示出按照一实施例的CCN-DART的示范系统。
附图中,相似参考标号表示相同附图元件。
概述
本发明的实施例提供一种CCN系统,其实现数据应答路由选择表(CCN-DART)。更具体来说,实现CCN-DART的路由器不再需要保持未决兴趣表(PIT)。CCN-DART路由器而是保持数据应答路由选择表(DART),其与标签交换网络中使用的标签交换表相似。兴趣陈述所请求内容的名称、跳数、目标和返回令牌(dart)和随机数。跳数用来确保正确兴趣环路检测。dart由转发路由器用来使用前一跳和当前跳的本地标识符来留下兴趣所遍历的路径的轨迹。它以逐跳为基础而改变,并且是路由特定的。dart允许命名数据对象(NDO)或否定确认(NACK)被回送到内容请求方,而无需公开兴趣的来源。兴趣的随机数由内容制作方或高速缓存路由器用来将兴趣所遍历的多个路径与相同始发路由器关联,而无需知道那个路由器的身份。随机数使路由器能够通过内容客户与内容提供商之间所建立的多个路径来转发兴趣和NDO或NACK,而不是请求反向路径转发。
CCN架构
一般来说,CCN使用两种类型的消息:兴趣和内容对象。兴趣携带内容对象的分层结构可变长度标识符(HSVLI)(又称作“名称”),并且用作对那个对象的请求。如果网络元件(例如路由器)接收相同名称的多个兴趣,则它可聚合那些兴趣。沿具有匹配内容对象的兴趣的路径的网络元件可缓存并且返回那个对象,从而满足兴趣。内容对象沿用到兴趣的(一个或多个)起源的兴趣的反向路径。
如先前所述,HSVLI指示一段内容,是分层结构的,并且包括从最一般等级到最特定等级所排序的毗连成分。相应HSVLI的长度不是固定的。在以内容为中心的网络中,与常规IP网络不同,分组可通过HSVLI来识别。例如,abcd/bob/papers/ccn/news可能是内容的名称,并且识别(一个或多个)对应分组、即来自在称作“ABCD”的组织的名为“Bob”的用户的报纸的“ccn”集合的“新闻”文章。为了请求一段内容,节点通过内容的名称来表达(例如广播)对那个内容的兴趣。对一段内容的兴趣能够是按照内容的名称或标识符对内容的查询。如果在网络中可用,则内容从存储内容的任何节点回送到请求节点。路由选择基础设施智能地将兴趣传播到相应节点(其可能具有信息),并且然后沿兴趣消息所遍历的反向路径回送可用的内容。基本上,内容对象跟随兴趣消息所留下的面包屑,因而到达请求节点。
图1示出按照本发明的一实施例的网络的示范架构。在这个示例中,网络180包括节点100-145。网络中的各节点耦合到一个或多个其他节点。网络连接185是这种连接的示例。网络连接示为实线,但是各线条也可表示子网络或超级网络,其能够将一个节点耦合到另一个节点。网络180能够是以内容为中心的局域网络、超级网络或者子网络。这些网络的每个能够互连,使得一个网络中的节点能够到达其他网络中的节点。网络连接能够是宽带、无线、电话、卫星或者任何类型的网络连接。节点能够是计算机系统、表示用户的端点和/或能够生成兴趣或始发内容的装置。
按照本发明的一实施例,客户能够生成一段内容的兴趣,并且将那个兴趣转发到网络180中的节点。内容段能够由发布者或内容提供商(其能够位于网络内部或外部)来存储在网络180中的节点处。例如,图1中,对一段内容的兴趣在节点105始发。如果内容在节点不可用,则兴趣流动到与第一节点耦合的一个或多个节点。例如,图1中,兴趣流动(兴趣流程150)到节点115,其没有可用的内容。随后,兴趣从节点115流动(兴趣流程155)到节点125,其再次没有内容。兴趣然后流动(兴趣流程160)到节点130,其具有可用的内容。内容对象的流程然后相反地折回其路径(内容流程165、170和175),直至它到达节点105,其中内容被分发。其他过程、例如认证能够在内容的流程中涉及。
在网络180中,内容持有者(节点130)与兴趣生成节点(节点105)之间的路径中的任何数量的中间节点(节点100-145)能够在内容跨网络传播时参与缓存内容的本地副本。缓存通过隐式共享对本地缓存内容的访问来降低位于接近其他订户的第二订户的网络负荷。
在常规CCN或NDN中,各节点(又称作路由器)保持三个主要数据结构,包括转发信息库(FIB)、内容存储仓库(CS)和未决兴趣表(PIT)。转发平面使用这三个表中存储的信息将兴趣转发到公告所请求内容的副本的节点,并且通过兴趣所遍历的反向路径将NDO或其他响应回送到请求它们的客户。
FIB用来将兴趣分组转发到匹配内容对象的(一个或多个)潜在来源。通常,路由选择协议用来在网络中的所有节点之间装载FIB。在常规CCN中,FIB条目常常通过名称前缀来索引,其中各条目包括应当对其转发匹配兴趣的至少一个端面的物理地址。在NDN中,名称前缀的FIB条目还包含陈旧时间(在此后可删除条目)、经过接口的往返时间、速率限制以及陈述接口能够或者不能恢复数据是已知还是未知的状态信息。在转发兴趣消息时,名称的最长前缀匹配查找在FIB来执行,以查找匹配条目。
内容存储仓库(CS)与IP路由器中使用的缓冲存储器相似。更具体来说,CS暂时缓冲经过这个节点的内容对象,从而允许由不同客户进行的有效数据检索。当路由器接收兴趣分组时,它在向上游发出兴趣之前首先在其内容存储仓库中检查是否存在匹配内容对象。
未决兴趣表(PIT)用作兴趣陈述的高速缓存。PIT跟踪对其应当响应兴趣而回送NDO消息或控制消息(例如NACK)的邻居。这保存上游和下游网络流量,允许兴趣不公开其来源,并且实现兴趣聚合。在CCN中,仅路由兴趣分组。在NDN中,PIT条目能够包括向量或一个或多个元组,其中各元组用于对相同NDO名称所处理的一个随机数。各元组陈述所使用的随机数、入局端面和出局端面。每个PIT条目还具有使用寿命,其通常大于到具有所请求NDO的节点的估计往返时间。
当路由器接收兴趣时,它检查其CS中是否存在所请求内容的匹配。在CNN中,准确兴趣匹配机制用来查找匹配内容。如果找到对兴趣的匹配,则路由器通过兴趣所遍历的反向路径回送NDO。如果在CS中没有找到匹配,则路由器对PIT检查相同内容的条目。在随机数用来识别兴趣的NDN中,如果兴趣陈述与所请求内容的PIT条目中存储的那些随机数不同的随机数,则路由器通过将入局端面和随机数添加到PIT条目来聚合兴趣,而没有转发兴趣。另一方面,如果兴趣中的相同随机数已经在所请求内容的PIT条目中列示,则路由器通过兴趣所遍历的反向路径来发送NACK,从而指示检测到环路。在CCN中,如果兴趣从没有在所请求内容的PIT条目中列示的端面来接收,则进行聚合,以及简单地丢弃从相同端面所接收的重复兴趣。
如果路由器在其CS和PIT中没有找到匹配,则路由器沿最佳前缀匹配的FIB中列示的路由(或者多个路由)来转发兴趣。在NDN中,如果已知这种端面携带内容并且其性能评级高于也能够携带内容的其他端面,则路由器能够选择转发兴趣的端面。路由器与其他路由器无关地执行端面的评级。
如先前所述,保持PIT并且检查PIT中的匹配会是低效的,因为PIT的大小按照路由器所操控的兴趣的数量的阶增增长,并且这种数量能够比网络中的路由器的数量要多几个数量级。因此,期望设计一种基于兴趣的ICN系统,其不依靠PIT向其原始请求方返回NDO。
具有数据应答路由选择表的CCN(CCN-DART):原理
CCN-DART的设计基于如下观察。首先,网络模拟表明,随着内容存储仓库的容量增加,内容缓存使兴趣聚合的发生极为少见。相同内容的兴趣的到达时间间隔以及客户与存储所请求内容的内容存储仓库之间的往返时间(RTT)使得内容到请求相同内容的后续兴趣到达时在高速缓存是可用的。甚至当模拟参数设置成促进兴趣聚合时,情况也是这样。另一方面,与CS大小无关,PIT条目的数量随兴趣提交速率而急剧增长,并且兴趣聚合能够导致未检测兴趣环路。
其次,网络中的路由器的数量比命名数据对象(NDO)的数量并且因此比请求它们的兴趣的数量要少几个数量级。因此,基于通过路由器的路由来保持转发状态能够比基于兴趣遍历路由器来保持转发状态要少几个数量级。
第三,正确兴趣转发策略能够基于转发给定兴趣的路由器的排序,而不是尝试唯一地识别各兴趣。
最后,不存在要求反向路径转发用来转发响应兴趣而发送的NDO或NACK的固有原因,只要控制平面支持到名称前缀的多径路由选择并且有效地保持适当转发状态。
在CCN-DART的描述中能够进行多个假设。能够假定兴趣仅由始发客户而不是由转发路由器来重传。假定路由器知道哪些接口是相邻路由器以及哪些接口是本地客户,并且以尽力为基础来转发兴趣。此外,假定路由器使用兴趣的准确匹配。
在操作期间,CCN-DART使用兴趣、控制消息(例如NACK)和数据对象(例如NDO)来实现节点之间的内容交换。更具体来说,目标和返回令牌(dart)和兴趣随机数用来实现兴趣、NDO和NACK的正确转发。dart是本地标识符,其能够唯一地表示源与目标路由器之间建立的路由。随机数是全局标识符,其能够关联相同源与目标路由器之间所建立的两个或更多路由。
由请求NDO n(j)的节点k所发送的兴趣表示为I[n(j),hI(k),IDI(k),dartI(k)],其陈述所请求NDO名称(n(j))、从节点k到作为n(j)的最佳匹配的名称前缀n(j)*的最接近实例的跳数(hI(k))、由兴趣的始发路由器所创建的随机数(IDI(k))以及用来建立回到兴趣的来源的匿名路由的dart(dartI(k))。在一些实施例中,随机数和dart能够按照与标签作为标签交换组网中的数据报报头的部分相似的方式包含在兴趣分组的报头字段中。由路由器i响应兴趣I[n(j),hI(k),IDI(k),dartI(k)]而发送的内容对象表示为D[n(j),sig(j),IDI(i),dartI(i)],其陈述所发送的NDO的名称(n(j))、可选地用来验证内容对象的签名有效载荷(sig(j))、随机数(IDI(i))以及将要用来转发NDO的dart(dartI(i))。另一方面,由路由器i响应兴趣I[n(j),hI(k),IDI(k),dartI(k)]而发送的控制消息(NACK)表示为NI[n(j),CODE,IDI(i),dartI(i)],其中CODE陈述发送NACK的原因。发送NACK的可能原因包括:(a)检测到兴趣环路,(b)没有找到到所请求内容的路由,(c)没有找到内容,以及(d)DART条目到期。为了实现兴趣、NDO和NACK的转发,CCN-DART路由器保持五个表:可选内容存储仓库(CSi)、FIB(FIBi)、数据应答路由选择表(DARTi)、起源随机数表(ONTi)和目标随机数表(DNTi)。CSi与常规CCN或NDN中相同。CSi列示本地高速缓存中存储的NDO,并且根据NDO的名称来索引。在一些实施例中,可选内容存储仓库能够采用可选请求内容表(RCT)来替代,其不仅用作本地内容的索引,而且还跟踪对远程内容的本地请求。RCT中的条目能够包括内容的名称、到存储内容的本地存储装置的指针以及识别请求了内容的本地客户(若有的话)的列表的标识符的数量。RCT可实现为两个独立索引,一个用于本地内容以及一个用于对远程内容的请求。
为了更好地理解CCN-DART,在这里介绍处理器、后继和锚点的概念。在路由器i,与名称前缀n(j)*有关的兴趣的前导是向与NDO n(j)(其匹配名称前缀n(j)*)有关的路由器i转发兴趣的路由器,以及与n(j)*相关的兴趣的后继是路由器i向其转发与NDO n(j)(其匹配名称前缀n(j)*)有关的兴趣的路由器。前缀的锚点是公告了该前缀的路由器。
图2是示出按照本发明的一实施例的示范转发信息库(FIB)的简图。图2中,FIB200包括使用内容名称前缀所索引的多个条目。各条目陈述到名称前缀所识别的内容的下一跳以及到公告名称前缀的节点的跳数。为了便于标记,在路由器i,FIB表示为FIBi以及名称前缀n(j)*的每个FIB条目表示为例如FIB条目202。注意,每个FIB条目可包括一个或多个元组的列表,各用于n(j)*的路由器i的后继的集合中的一个下一跳。n(j)*的路由器i的后继(下一跳)的集合表示为并且包含在FIB条目中。对于各接口对应元组陈述经过邻居q(表示为h(i,n(j)*,q))以及由q对n(j)*所报告的锚点(表示为a(i,n(j)*,q))到名称前缀n(j)*的跳数。FIB 200还存储经由FIB 200中列示的任何邻居从路由器到每个已知名称前缀的最小跳数。更具体来说,从路由器到名称前缀n(j)*的最小跳数表示为h(i,n(j)*)。
图3是示出按照本发明的一实施例的示范数据应答路由选择表(DART)的简图。DART存储前导沿到锚点的路径到后继的映射。在路由器i所存储的DART表示为DARTi。图3中,DART 300包括按照路由器i的相邻端面所组织的多个条目。对于从路由器p所接收并且对路由器s转发到定锚点a的兴趣所创建的条目表示为DARTi(a,p)。对于与路由器p对应的一个或多个锚点所创建的条目能够形成DARTi中的子表、例如子表302。子表302中的各条目、例如条目304指定锚点(ai(a,p))、前导(pi(a,p))、前导dart(pdi(a,p))、后继(si(a,p))、后继dart(sdi(a,p))、跳数(hi(a,p))和使用寿命(LTi(a,p))。
锚点ai(a,p)是在路由器i对其建立转发状态的锚点(路由器a)。前导pi(a,p)是到a的路由器的前导(路由器p)。前导dart pdi(a,p)等于在兴趣中从p到锚点a所接收的dart。后继si(a,p)是路由器s的名称,其由路由器i来选择以把来自p的兴趣转发到锚点a。后继dart sdi(a,p)是经过路由器s发送到锚点a的兴趣中包含的dart。跳数hi(a,p)是当建立dart条目时经过后继s到锚点a的跳数。LTi(a,p)是DART条目的使用寿命。DART条目的使用寿命在路由器存储它时递减。DART条目在其使用寿命达到零时被删除。与PIT中的条目的使用寿命形成对照,DART条目的使用寿命不是关键设计参数。DART中的条目能够在拓扑变化不存在的情况下在存储装置中保持长周期(例如许多秒)。此外,DART条目的去除仅引起一些兴趣的微小减慢。在稳定网络中,最可能的是DART条目的替换陈述与所擦除条目相同的信息。
图4A是示出按照本发明的一实施例的示范原始随机数表(ONT)的简图。由路由器i所存储的ONT表示为ONTi,并且存储本地客户的名称与路由器i对其指配的随机数之间的映射。图4A中,ONTi 400中的条目、例如条目402由本地客户来索引。随机数ni的条目指定本地客户的本地标识符,并且表示为ONTi(ni)。
图4B是示出按照本发明的一实施例的示范目标随机数表(DNT)的简图。由路由器i所存储的DNT表示为DNTi。图4B中,DNTi 410中的条目、例如条目412使用在兴趣中接收的随机数来索引。在兴趣中从路由器k所接收的随机数IDI(k)的条目表示为DNTi(IDI(k)),并且包含一个或多个元组的列表。各元组指定发送包含相同随机数的兴趣的路由器的名称以及兴趣中陈述的dart。
CCN-DART:环路检测
CCN-DART实现基于距离的转发策略,以防止兴趣循环。这种转发策略确保路由器仅当路由器确定它经过至少一个下一跳邻居在k转发兴趣时比k更接近前缀时才接受来自路由器k的兴趣。能够用来防止兴趣环路的基于距离的路由转发策略的详细描述能够见于发明人Jose J.Garcia-Luna-Aceves的共同待决专利申请14/572608(Attorney DocketNo.PARC-20140178US01,标题为“SYSTEM AND METHOD FOR DISTANCE-BASED INTERESTFORWARDING”,2014年12月16日提交)。
当实现CCN-DART的路由器接收兴趣时,它们首先确定是否使用兴趣转发规则(IFR)来接受兴趣,其陈述路由器i能够在满足下列条件时接受来自邻居k的兴趣I[n(j),hI(k),IDI(k),dartI(k)]:
图5A-5B示出按照本发明的一实施例、CCN-DART如何检测兴趣环路。如图5A所示,网络500包括多个节点、即节点502-514。多个路径存在于节点502与514之间,以及路由选择表可包括环路:节点504-节点506-节点508-节点504。图5A中,在从路由器到其邻居的出局的各链路,列示一对数字,从而指示经过邻居到n(j)(节点514)的跳数(第一数字)以及按照FIB的邻居的评级(第二数字)。注意,对于相同链路,可能存在两对,并且每对存储在更接近该对的路由器中的FIB处。例如,在从路由器504到路由器506的链路上,两个数字对、即对(4,1)和对(5,2)挨着链路示出。数字对(4,1)与路由器504相邻,并且存储在路由器504的FIB中,以及数字对(5,2)与路由器506相邻,并且存储在路由器506的FIB中。更具体来说,与路由器504相邻的数字对(4,1)指示经由其邻居506到n(j)的跳数为4,以及邻居506在路由器504的FIB中的评级为第1。另一方面,与路由器506相邻的数字对(5,2)指示从其其邻居504到n(j)的跳数为5,以及邻居504在路由器506的FIB中的评级为第2。
能够使用元组(v,h,r)来指示邻居、其跳数及其评级。注意,这种元组能够是名称前缀n(j)*下的FIB中列示的条目。例如,FIBnode504能够列示元组(node 506,4,1)、(node510,4,2)和(node 508,6,3)。类似地,FIBnode502能够列示元组(node 504,5,1);FIBnode506能够列示元组(node 508,6,1)、(node 504,5,2)和(node 512,3,3);以及FIBnode508能够列示元组(node 506,5,1)和(node 504,5,2)。注意,节点510和512的部分FIB条目也在图5A中示出。图5B示出CCN-DART路由器如何转发兴趣。在图5B所示的示例中,路由器504在时间t1从路由器502接收到名称n(j)的兴趣I[n(j),hI(node 502)=5,IDI,dartI(node 502)]。给定5=hI(node 502)>h(node 504,n(j)*,node 506)=4,路由器504接受兴趣,因为它具有满足IFR的至少一个邻居(路由器506)。路由器504则将兴趣转发到路由器506,因为路由器506评级高于路由器510,其也满足IFR。注意,在转发之前,路由器504交换兴趣中的dart,并且将兴趣I[n(j),hI(node 504)=4,dtI(node 504)]转发到路由器506。
路由器506在时间t2接收I[n(j),hI(node 504)=4,IDI,dartI(node 504)],并且接受它,因为4=hI(node 504)>h(node 506,n(j)*,node 512)=3。路由器506则使用路由器512作为兴趣的下一跳,因为路由器512是满足IFR的最高评级邻居。由兴趣所遍历的路由通过按照时间序列t1→t2→t3的虚线来指示。注意,沿该路线的各路由器交换兴趣中包含的dart,以确保返回NDO能够沿用兴趣的反向路径。
类似地,由路由器508所生成的兴趣对路由器512转发到n(j)(该路由通过按照时间序列t3→t4→t5的不同虚线来指示),而没有遍历环路,因为各转发路由器必须满足IFR。
图6A-6C示出按照本发明的一实施例、CCN-DART如何与单径路由选择和临时路由选择表环路配合操作。附图中,网络600包括多个节点、即节点602-614。图6A中,各路由器对于其FIB中列示的各前缀具有单个下一跳和一个跳数。例如,对于路由器614所公告的名称前缀n(j)*,路由器604列示经由相邻路由器610(在链路(节点704、节点710)出故障之前)的跳数4,以及路由器606列示经由相邻路由器608的跳数6。注意,从路由器到名称前缀n(j)*的距离可以不与路径的跳数成正比。例如,链路(节点606、节点612)可具有有限带宽或者长延迟;因此,节点606可优选经过节点608的路径以在节点614到达n(j)*。
当路由器604与路由器610之间的链路出故障时,路由器606在时间t0更新其FIB以反映链路故障,如图6A所示。路由器704这时列示经由相邻路由器706的跳数4。注意,这种链路故障使网络600中的路由器在兴趣被转发的同时具有n(j)的不一致FIB状态。例如,路由器706尚未更新其FIB,这能够导致临时路由选择表环路。在时间t1,路由器602向路由器604发送名称n(j)的兴趣I[n(j),hI(node 602)=5,IDI,dartI(node 602)]。图6B示出路由器604在时间t2将兴趣转发到路由器606。图6B还示出,路由器606在时间t3采用NACK来响应兴趣,因为这违反IFR。NACK将指示作为检测到的环路的NACK的原因。NACK将最终在时间t4一直转发到兴趣的始发方、即路由器602,如图6C所示。
图6B还示出,在时间t3,路由器608向路由器604发送名称n(j)的兴趣I[n(j),hI(node 608)=5,IDI,dartI(node 608)]。这种兴趣也因IFR违反而在时间t5提示来自路由器606的NACK,如图6C所示。图6C还示出路由器604在时间t6把来自路由器606的NACK转发到路由器608。在有限时间之内,更新FIBnode 604、FIBnode 606和FIBnode 608以反映新拓扑状态。更具体来说,节点606的FIB可以不再列示作为其下一跳的节点608,来自与n(j)*有关的节点602的兴趣能够沿节点604、606和612的链转发到n(j)*、即节点614。类似地,在有限时间之内,来自与n(j)*有关的节点608的兴趣能够对节点606和612转发到n(j)*。能够表明,没有兴趣环路将在CCN-DART中未检测。
CCN-DART:保持转发状态
如同NDN和CCN中一样,CCN-DART中的路由器保持到名称前缀的锚点的路由,并且使用工作在控制平面的路由选择协议来装载其路由选择表。
在NDN和CCN中,对兴趣的响应采取兴趣所遍历的反向路径。路径递增地存储在沿路径的路由器的PIT中。在CCN-DART中,不存在路由器中的PIT;路由器而是保持DART、ONT和DNT。DART和ONT能够允许兴趣响应通过兴趣的反向路径回送到正确客户。另一方面,DNT能够实现通过可以不是兴趣的反向路径的路径又向兴趣来源转发NACK的NDO消息。
DART中存储的dart映射与分组交换网络中的标签映射相似。这些映射能够用来允许请求与相同名称前缀关联的NDO的多个兴趣在始发路由器与内容的前缀或高速缓存站点的另一个之间的相同路由段中被复用。除了dart(其是逻辑上唯一的标识符)之外,路由器还能够创建全局唯一随机数,以便将本地客户与代表它们所发送的兴趣明确关联,而无需揭示本地客户的身份。
在本公开中,假定在路由器处的随机数表装载有本地指配给本地客户的所有随机数,并且DART条目在其使用寿命到期时静寂地删除。为了方便起见,还假定名称前缀的锚点存储与其CS中的前缀关联的所有NDO。另外,假定控制平面更新FIB,以反映产生于拓扑变化的到前缀的跳数的任何变化。例如,如果路由器i检测到丢失到邻居k的连通性,则它删除DARTi中的所有条目(对于其,k是到任何锚点的路径的前导或后继)。
图7示出按照本发明的一实施例、当路由器从本地客户接收兴趣时由路由器所执行的示范兴趣处理算法。为了简洁起见,假定来自本地客户的内容请求被假定为陈述NDO(n(j))、空跳数(nil)、本地客户(c)的名称和空dart(nil)的兴趣。
当路由器i接收来自本地客户c的兴趣时,它对其内容存储仓库检查所请求内容,并且返回(若有的话)匹配NDO(图7中的行3)。如果CSi包括前缀但是不包括匹配NDO,则路由器i通过向客户发送NACK进行响应,从而指示没有不能找到内容(图7中的行4)。否则,路由器i对其FIB检查匹配前缀。没有匹配FIB条目能够提示NACK的返回,从而指示到所请求内容的路由不存在(图7中的行7)。
如果存在匹配FIB条目,则路由器i使用最高评级邻居,并且转发兴趣(图7中的行9-15)。更具体来说,如果DART条目对于兴趣的所选后继存在,则对应后继dart用作出局兴趣中包含的dart(图7中的行11-12)。否则,创建新后继dart,并且在转发兴趣之前存储新DART条目(图7中的行14-15)。当转发兴趣时,路由器i还将如ONT所示的指配给客户c的随机数插入兴趣中(图7中的行12和15)。
图8示出按照本发明的一实施例、当路由器从邻居接收兴趣时由路由器所执行的示范兴趣处理算法。当路由器i接收来自邻居k的兴趣时,它对其内容存储仓库检查所请求内容,并且返回(若有的话)匹配NDO(图8中的行3)。如果CSi包括前缀但是不包括匹配NDO,则路由器i向路由器k回送NACK,从而指示没有不能找到内容(图8中的行4)。
如果内容没有本地缓存,则路由器i确定DART条目是否对来自路由器k的兴趣中陈述的dart存在,即,前导dart是否与兴趣中陈述的dart相同。DART中的匹配条目的存在表示IFR被到前缀的锚点的相同路由上的前一兴趣所满足,并且能够使用现有映射。因此,这种DART条目能够用来转发兴趣。更具体来说,通过DART条目所指定的后继是对其转发兴趣的路由器,以及转发兴趣中包含的dart是通过DART条目所指定的后继dart(图8中的行9)。注意,锚点-前导对(a,k)的DARTi中的条目建立从路由器k用于能够由锚点a所解析的兴趣中的dart(前导dart)到路由器i用于能够由锚点a所解析并且转发到路由器v的兴趣中的dart(后继dart)。从路由器i到锚点a的路由器的DART中存储的前导-后继映射表示能够用来将兴趣明确转发到a的路由段。相反,沿相同路径所存储的后继-前导映射的序列能够用来将兴趣响应(例如NDO和NACK)明确地转发到兴趣的起源。
如果不存在找到的匹配DART条目,则路由器i需要查找所接收兴趣的后继,并且创建DART条目。如果在n(j)*的FIBi中不能找到NACK(图8中的行11)或者不满足IFR(图8中的行21),则将发送NACK。否则,路由器i选择满足IFR的最高评级相邻路由器v,并且创建DART条目(图8中的14-20)。路由器v提供具有到所请求内容的跳数(其严格小于所接收兴趣中陈述的跳数)的路径。新创建的DART条目将所接收兴趣中包含的dart(前导dart)映射到对于经过路由器v到所选锚点的路由所创建的新dart(后继dart)。注意,新dart在路由器i作为本地唯一标识符来创建。当生成新dart时,路由器i需要确保新dart没有与任何现有dart重复。在一些实施例中,dart能够包括16或32位数。dart的长度和格式能够改变。例如,dart还可包括各种长度的字母数字串。在创建新DART条目之后,通过采用新DART条目的后继dart替换所接收兴趣中包含的dart,来创建待转发兴趣。
在图8所示的算法中,路由器i还可调用响应功能,以便响应所接收兴趣而回送NACK消息的NDO消息。图9示出按照本发明的一实施例的示范响应生成算法。在路由器i发出响应(例如NDO或NACK)之前,路由器i将(node,dart)对与随机数之间的映射添加到其DNT(图9中的行3)。为了简洁起见,假定只有响应来自远程客户的兴趣的那些路由器将信息存储在其DNT中。转发路由器不存储这种信息。注意,从图9能够看到,当发送响应时,路由器i可选择不是兴趣的反向路径的路径(图9中的行4)。例如,路由器i能够从对应DNT条目中选择要发送响应的路由器n,其与路由器k不同。虽然图9所示的算法没有明确公开如何从对应DNT条目所指定的许多路由器中选择特定路由器,但是从通过相同路由器之间的不同先前兴趣所遍历的许多路径其中之一向正确客户转发响应明确说明随机数和dart的使用。
如先前所述,兴趣能够通过多个路径来转发到相同锚点,其中各路径通过dart映射的不同集合来识别。响应兴趣的路由器在其DNT中存储兴趣中包含的随机数与通过其来接收兴趣的路由(通过兴趣中的相邻路由器和dart所识别)之间的映射。在给定以低冲突概率来指配随机数的情况下,NDO消息或NACK能够由响应路由器通过与兴趣所遍历的路径不同的路径来发送。这能够实现负荷平衡,其超出了本公开的范围。
图10A示出按照本发明的一实施例的示范NDO处理算法。仅当路由器具有与匹配NDO消息中陈述的dart的后继dart的DART条目时,路由器才接受从邻居所接收的NDO消息(图10A中的行5)。路由器可选地可检验NDO的签名(图10A中的行3),并且可选地存储它接收的NDO(图10A的行6)。注意,当转发NDO时,路由器还使用对应DART条目中的前导dart来交换NDO中的dart(图10A中的行6)。
图10B示出按照本发明的一实施例的示范NACK处理算法。仅当路由器具有匹配NACK中陈述的dart的后继dart的DART条目时,路由器才转发NACK(图10B中的行3)。当转发NACK时,路由器使用对应DART条目中的前导dart来交换NACK中的dart(图10B中的行4)。
通过经由聚合兴趣所遍历的兴趣的响应的反向路径转发(RP),路径NDN支持多播。兴趣用于保持多播转发树(MFT)以及对多播源进行调步的双重目的。CCN-DART还支持使用RPF方式的多点通信,但是将MFT的建立与用来对源进行调步或者通过树分发多播数据的机制分离。
CCN-DART使用内容存储仓库和多播数据应答路由选择表(MDART)来保持MFT。单个dart能够用来在路由器表示一组的MFT中的所有前导和后继。这表示单个dart能够用来对多播组的MFT的所有分支加标签。用于多播组名称g(j)的dart表示为d(g(j)),并且能够使其作为组名称的部分,以简化其分发。
具有多播组的本地接收器的路由器在其RCT中保持本地接收器的名称到多播组的名称的映射。在路由器i处的MDART通过MDARTi来表示,并且根据路由器对其转发业务的多播组的名称来索引。具有MDARTi中的名称g(j)的多播组的条目陈述:编组(d(g(j)))的dart、由路由器i所选的参加编组的后继、经过路由器i请求参加g(j)的路由器(前导)的集合以及当路由器i建立编组(hi(g(j)))的MDART条目时到g(j)的锚点的跳数距离。
如果路由器i具有编组g(j)的本地接收器,则它发送表示为JR[g(j),hJ(i),IDJ(i),dartJ(i)]的参加请求(JR),其中hI(i)=hi(g(j))并且dartJ(i)=d[g(j)]。JR的转发基于FIB条目,并且与兴趣的转发相似。转发路由器在两种情况下能够将JR转发到g(j)的锚点。如果MDART条目存在并且满足IFR,则对编组创建MDART条目。如果MDART条目存在,则路由器简单地在现有MDART条目中添加编组的新前导。如果没有找到到g(j)的路由器,则不满足IFT,或者MDART条目因拓扑变化而变为无效。
多播数据分发或者多播源的调步超出了本公开的范围。
CCN-DART:路由器架构
图11是示出按照本发明的一实施例的CCN-DART路由器的示范架构的简图。图11中,CCN-DART路由器1100包括多个端面(例如端面1102、1104和1106)、兴趣处理模块1108、转发模块1110、NDO/NACK处理模块1112、控制消息生成模块1114和数据库1116。
端面1102-1106能够不仅包括物理接口而且还包括能够发送和接收分组(包括兴趣和NDO)的应用进程。兴趣处理模块1108负责处理在各种端面上接收的兴趣。在一些实施例中,兴趣处理模块1108基于上述兴趣转发规则(IFR)来确定是否接受入局兴趣。如果接受兴趣,则兴趣处理模块1108检查数据库1116中保持的DART以查找dart映射,并且基于映射来交换兴趣中包含的dart。兴趣处理模块1108还可创建兴趣的随机数(如果兴趣从本地客户来接收)。转发模块1110负责向端面转发分组(例如兴趣或NDO)。在一些实施例中,转发模块1110基于dart映射来转发兴趣/NDO。当兴趣处理模块1108拒绝或丢弃兴趣时,控制消息生成模块1114生成控制消息,其能够包括不同的NACK消息。在一些实施例中,控制消息生成模块1114在条件下生成NACK消息,包括但不限于如下时候:检测兴趣环路,没有找到到所请求内容的路由,没有找到内容,以及对应DART条目到期。响应名称n(j)的兴趣的NACK消息表示为NI[n(j),CODE,IDI(k),dartI(k)],其中CODE陈述发送NACK的条件。NDO/NACK处理模块1112负责处理响应兴趣所接收的NDO/NACK消息。在一些实施例中,NDO/NACK处理模块1112检查数据库1116中保持的DART以查找dart映射,并且基于映射来交换NDO/NACK消息中包含的dart。数据库1116存储CCN-DART操作所需的数据结构:FIB、DART、ONT和DNT。数据库1116可选地存储内容存储仓库。
CCN-DART:示范操作
图12是示出按照本发明的一实施例的CCN-DART的示范操作的简图。更具体来说,图12示出路由如何使用dart和随机数对兴趣加标签并且将兴趣与NDO消息和NACK关联。
图12中,网络1200包括多个节点、例如节点1202-1214。在图12所示的示例中,路由器1202和路由器1214具有始发请求与路由器1208所公告的名称前缀有关的NDO的兴趣的本地客户。箭头线条指示到路由器1208按照路由器中存储的FIB条目所公告的内容(具有名称n(j))的下一跳。图12还示出锚点1208的路由器的DART条目,挨着各路由器列示。此外,在路由器1202和1214处的ONT条目以及在路由器1208处的DNT条目也在图12中示出,全部挨着对应路由器列示。例如,挨着路由器1202的列表包括锚点1208的ONT条目和DART条目,以及挨着路由器1208的列表包括其DNT条目。
路由器1202具有两个内容客户(cp and cq)。在路由器1202,从路由器1202代表客户cp和cq始发的兴趣分别标记有随机数和类似地,路由器1214使用随机数对它代表本地客户cw始发的兴趣加标签。
保持在路由器1202的DART映射示出,前导和前导dart对[1202,1202(i)]映射到后继和后继dart对[1204,1202(i)]。在路由器1204,[1202,1202(i)]映射到[1206,1204(j)];以及在路由器1206,[1204,1204(j)]映射到[1208,1206(i)]。在路由器1208,内容的DART条目仅指定前导和前导dart对[1206,1206(i)]。注意,图12所示的索引i、j、k、m、u是单独DART中使用的索引。例如,1202(i)表示路由器1202所保持的DART中的第i条目。在路由器1202、1204、1206和1206处的上述映射唯一地表示路由(节点1202、节点1204、节点1206、节点1208)、(节点1204、节点1206、节点1208)和(节点1206、节点1208),如虚线1222所示。
类似地,图12所示的DART映射还指示[1202,1202(k)]在路由器1202映射到[1210,1202(k)],[1202,1202(k)]在路由器1210映射到[1212,1210(m)];以及[1210,1210(m)]在路由器1212映射到[1208,1212(j)];以及路由器1208保持DART条目[1212,1212(j)]。DART映射的这个集合表示路由(节点1202、节点1210、节点1212、节点1208)以及到路由器1208的子路径,包括(节点1210、节点1212、节点1208)和(节点1212、节点1208),如通过虚线箭头1224所示。
虚线箭头1226指示从路由器1214到锚点1208的路由,即(节点1214、节点1204、节点1206、节点1208)。这个路由的DART映射的集合在图12中以斜体示出。
由与锚点1208所公告的内容有关的客户cp、cq和cw始发的所有兴趣能够使用图12所示的相同几个dart来路由到路由器1208,而与前缀和兴趣的数量无关。因此,与具有兴趣的唯一条目的PIT相比,用于DART的存储量要小许多。在给定NDO或NACK指定它应答的兴趣中陈述的后继dart和随机数的情况下,NDO和NACK能够从路由器1208(或者沿到缓存所请求内容的路由器1208的路线的路由器)明确地正确转发到路由器1202或1214。此外,路由器1202和1214能够使用其ONT中的条目以及它们接收的响应中的随机数向正确本地客户发送响应。
除了支持使用DART和ONT的正确兴趣转发以及NDO消息和NACK的正确反向路径转发之外,CCN-DART还能够支持NDO和NACK通过没有被兴趣遍历的路径到始发兴趣的路由器的转发。如图12所示,当路由器1208从邻居1206和1212接收兴趣时,它将随机数与所接收兴趣中的后继dart之间的映射存储在其DNT(DNT1208)中,使得映射到路由器和dart对[1206,1206(i)]和[1212,1212(j)],映射到[1206,1206(i)]和[1212,1212(j)],以及映射到[1206,1206(k)]。相应地,路由器1208能够经过相邻路由器1206或1212将NDO或NACK发送到陈述随机数或的兴趣的起源,而无需使用兴趣的反向路径。换言之,为了向路由器1202回送NDO或NACK,路由器1208能够选择通过虚线1222所指示的路由或者通过虚线1224所指示的路由。路由的选择能够通过各种因素来确定,例如路由的条件或者对负荷平衡的需要。例如,如果路由1222拥塞,则路由器1208可通过经过路由1224发送NDO或NACK来响应从路由器1202始发的兴趣。另外,如果路由器1208接收到从路由器1202始发的许多兴趣,则路由器1208可经过路由1222来发送响应的部分并且经过路由1224来发送响应的另一部分。
如先前所述,具有数据应答路由选择表的CCN(CCN-DART)系统实现不要求未决兴趣表(PIT)进行操作的基于兴趣的ICN的转发策略。CCN-DART通过要求FIB存储下一跳邻居以及经过这类邻居到命名内容的跳数并且通过使各兴趣陈述所请求内容的名称、从转发路由器到内容的跳数、请求内容的客户唯一的随机数以及兴趣所遍历的路由唯一的目标和返回令牌(dart)进行操作。兴趣没有聚合,以及兴趣环路检测基于到内容前缀的距离。兴趣的转发状态通过保持在各路由器的DART来保持。DART条目映射遍历网络的一段的兴趣的入局端面和出局端面。DART的状态是朝公告内容前缀的路由器遍历的路由而不是请求特定NDO的单独兴趣所遍历的路由(如同常规CCN或NDN网络中一样)的函数。另外,所包含的随机数允许对通过不是兴趣的反向路径的路径来回送到兴趣的始发路由器的兴趣的响应。
使用DART来保持兴趣的转发状态示出优于特别是当内容请求的速率较高时将每按兴趣转发状态保持在PIT中的方式的更大优点。PIT的大小能够随着内容请求的速率增加而急剧增长,而DART的大小能够相对内容请求速率保持为基本上恒定。实际上,当内容请求速率较低时,DART中的条目的平均数量可大于PIT中的条目的平均数量。这是因为将DART条目保持长时间周期(例如数秒),而不管它们表示的路由是否由兴趣及其响应实际使用。另一方面,紧接满足对应兴趣之后立即删除PIT条目。但是,随着内容请求速率增加,PIT的大小能够超过DART的大小的10倍,因为给定DART条目能够用于许多兴趣,而对各兴趣需要不同的PIT条目。一般来说,能够预计保持在轻负荷可能不使用的DART条目的成本能够通过在高负荷时从使用现有DART条目所转发的许多兴趣所得出的信令延迟的显著降低来补偿。
计算机和通信系统
图13示出按照本发明的一实施例的具有自适应命名的按需内容交换的示范系统。用于具有自适应命名的按需内容交换的系统1300包括处理器1310、存储器1320和存储装置1330。存储装置1330通常存储指令,其能够加载到存储器1320中并且由处理器1310来运行,以执行上述方法。在一个实施例中,存储装置1330中的指令能够实现兴趣处理模块1332、命名数据对象处理模块1334、转发模块1336和控制消息生成模块1338,其全部能够经过各种部件相互通信。存储装置1330还能够包括多个数据结构,例如内容存储仓库1340、转发信息库1342和数据应答路由选择表1344。
在一些实施例中,模块1332、1334、1336和1338能够部分或完全通过硬件来实现,并且能够是处理器1310的部分。此外,在一些实施例中,系统可以不包括独立处理器和存储器。除了执行其特定任务之外,模块1332、1334、1336和1338而是独立地或者共同地可作为通用或专用计算引擎的部分。
存储装置1330存储将要由处理器1310所运行的程序。具体来说,存储装置1330存储程序,其实现用于具有自适应命名的按需内容交换的系统(应用)。在操作期间,应用程序能够从存储装置1330加载到存储器1320,并且由处理器1310来运行。因此,系统1300能够执行上述功能。系统1300能够耦合到可选显示器1380(其能够是触摸屏显示器)、键盘1360和指针装置1370,并且还能够经由一个或多个网络接口来耦合到网络1382。
本详细描述中所述的数据结构和代码通常存储在计算机可读存储介质上,其可以是能够存储代码和/或数据以供计算机系统使用的任何装置或介质。计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁和光存储装置,例如磁盘驱动器、磁带、CD(致密光盘)、DVD(数字多功能光盘或数字视频光盘)或者能够存储现在已知或以后开发的计算机可读介质的其他介质。
本详细描述小节中所述的方法和过程能够体现为代码和/或数据,其能够如上所述存储在计算机可读存储介质中。当计算机系统读取和运行计算机可读存储介质上存储的代码和/或数据时,计算机系统执行体现为数据结构和代码并且存储在计算机可读存储介质中的方法和过程。
此外,本文所述的方法和过程能够包含在硬件模块或设备中。这些模块或设备可包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、在特定时间运行特定软件模块或一段代码的专用或共享处理器和/或现在已知或以后开发的其他可编程逻辑装置。当激活硬件模块或设备时,它们执行其中包含的方法和过程。
Claims (10)
1.以信息为中心的网络(ICN)中的路由器,包括:
接收模块,配置成接收一段内容的兴趣,其中所述兴趣指示与所述内容段关联的名称;
兴趣处理模块,配置成:
确定是否能够转发所述兴趣;
响应确定所述兴趣能够转发到第二路由器,得到所述第二路由器特定的标签;以及
将所述标签附连到所述兴趣;以及
转发模块,配置成将具有所述所附标签的所述兴趣转发到所述第二路由器。
2.如权利要求1所述的路由器,其中,所述转发模块还配置成:
响应所述兴趣处理模块确定不能转发所述兴趣,发送对所述兴趣的响应。
3.如权利要求2所述的路由器,
其中,所述兴趣处理模块配置成基于下列之一来确定无法转发所述兴趣:
不能找到所述内容段;
不能找到到公告所述内容段的目标路由器的路由;以及
所述兴趣正遍历环路;以及
其中所述转发模块所发送的所述响应包括否定确认。
4.如权利要求3所述的路由器,其中,所述兴趣还指示到公告所述内容段的目标路由器的跳数,以及所述兴趣处理模块配置成基于所述路由器中存储的路由选择信息和所述跳数来确定所述兴趣正遍历所述环路。
5.一种计算机可执行方法,包括:
由以信息为中心的网络(ICN)中的第一节点来接收一段内容的兴趣,其中所述兴趣指示与所述内容段关联的名称;
确定是否能够转发所述兴趣;
响应确定所述兴趣能够转发到第二节点,得到所述第二节点特定的标签;
将所述标签附连到所述兴趣;以及
将具有所述所附标签的所述兴趣转发到所述第二节点。
6.如权利要求5所述的方法,还包括:
响应确定不能转发所述兴趣,发送对所述兴趣的响应。
7.如权利要求6所述的方法,
其中,确定不能转发所述兴趣涉及下列步骤其中之一:
确定不能找到所述内容段;
确定不能找到到公告所述内容段的节点的路由;以及
确定所述兴趣正遍历环路;以及
其中所述响应包括否定确认。
8.一种存储指令的非暂时计算机可读存储介质,所述指令在由计算装置运行时使所述计算装置执行方法,所述方法包括:
由以信息为中心的网络(ICN)中的第一节点来接收一段内容的兴趣,其中所述兴趣指示与所述内容段关联的名称;
确定是否能够转发所述兴趣;
响应确定所述兴趣能够转发到第二节点,得到所述第二节点特定的标签;
将所述标签附连到所述兴趣;以及
将具有所述所附标签的所述兴趣转发到所述第二节点。
9.如权利要求8所述的计算机可读存储介质,其中,所述方法还包括:
响应确定不能转发所述兴趣,发送对所述兴趣的响应。
10.如权利要求9所述的计算机可读存储介质,其中,确定不能转发所述兴趣涉及下列步骤其中之一:
确定不能找到所述内容段;
确定不能找到到公告所述内容段的节点的路由;以及
确定所述兴趣正遍历环路;以及
其中所述响应包括否定确认。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/867814 | 2015-09-28 | ||
US14/867,814 US20170093713A1 (en) | 2015-09-28 | 2015-09-28 | Information-centric networking with small multi-path or single-path forwarding state |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106559340A true CN106559340A (zh) | 2017-04-05 |
Family
ID=56958812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610831683.4A Pending CN106559340A (zh) | 2015-09-28 | 2016-09-19 | 具有小多径或单径转发状态的以信息为中心的网络 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20170093713A1 (zh) |
EP (1) | EP3148128B1 (zh) |
JP (1) | JP2017069950A (zh) |
KR (1) | KR20170037818A (zh) |
CN (1) | CN106559340A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112866106A (zh) * | 2020-12-31 | 2021-05-28 | 网络通信与安全紫金山实验室 | 一种兴趣包缓存方法、装置、设备及存储介质 |
CN114521323A (zh) * | 2019-10-14 | 2022-05-20 | 思科技术公司 | 信息中心网络的集中路径计算 |
US11910351B2 (en) | 2020-01-21 | 2024-02-20 | Cisco Technology, Inc. | Systems and methods for determining locations of access points |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10021222B2 (en) * | 2015-11-04 | 2018-07-10 | Cisco Technology, Inc. | Bit-aligned header compression for CCN messages using dictionary |
US10356209B2 (en) * | 2015-11-30 | 2019-07-16 | Futurewei Technologies, Inc. | System and method to support context-aware content requests in information centric networks |
US11051355B2 (en) * | 2016-03-01 | 2021-06-29 | Telefonaktiebolaget Lm Ericsson (Publ) | Correlation of user equipment identity to information centric networking request |
US10069736B2 (en) * | 2016-05-02 | 2018-09-04 | Cisco Technology, Inc. | Optimized in-network retransmission for information-centric networking protocols |
US10320675B2 (en) * | 2016-05-04 | 2019-06-11 | Cisco Technology, Inc. | System and method for routing packets in a stateless content centric network |
US10397809B2 (en) * | 2016-05-13 | 2019-08-27 | Cisco Technology, Inc. | Mobility loss detection and recovery |
US10432509B2 (en) * | 2016-06-14 | 2019-10-01 | Cisco Technology, Inc. | Flow classification for information centric network protocols |
US20180006937A1 (en) * | 2016-06-30 | 2018-01-04 | Fujitsu Limited | Packet forwarding in information centric networking networks |
US9992097B2 (en) * | 2016-07-11 | 2018-06-05 | Cisco Technology, Inc. | System and method for piggybacking routing information in interests in a content centric network |
US10110469B2 (en) * | 2016-07-21 | 2018-10-23 | Cisco Technology, Inc. | Detecting and preventing network loops |
US10122624B2 (en) * | 2016-07-25 | 2018-11-06 | Cisco Technology, Inc. | System and method for ephemeral entries in a forwarding information base in a content centric network |
US10819524B2 (en) * | 2016-10-19 | 2020-10-27 | Qualcomm Incorporated | Methods for header extension preservation, security, authentication, and protocol translation for RTP over MPRTP |
EP3610628B1 (en) * | 2017-04-14 | 2021-09-22 | Koninklijke KPN N.V. | Transmitting and receiving an interest message specifying an aggregation parameter |
US10623322B1 (en) * | 2017-09-15 | 2020-04-14 | Juniper Networks, Inc. | Dynamic prefix list for route filtering |
CN110493885B (zh) * | 2019-08-21 | 2020-12-08 | 北京理工大学 | 一种针对数据分片的命名数据网络连续数据推送方法 |
US20220368625A1 (en) * | 2019-10-09 | 2022-11-17 | Curated Networks | Multipath routing in communication networks |
WO2023161666A1 (en) * | 2022-02-27 | 2023-08-31 | Doka Janos | System and method for forwarding-information base compression by distribution in named data networks |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7936753B1 (en) * | 2007-11-30 | 2011-05-03 | Qlogic, Corporation | Method and system for reliable multicast |
US8160069B2 (en) | 2009-01-30 | 2012-04-17 | Palo Alto Research Center Incorporated | System for forwarding a packet with a hierarchically structured variable-length identifier |
WO2013158920A1 (en) * | 2012-04-18 | 2013-10-24 | Nicira, Inc. | Exchange of network state information between forwarding elements |
US9049233B2 (en) * | 2012-10-05 | 2015-06-02 | Cisco Technology, Inc. | MPLS segment-routing |
US10193662B2 (en) * | 2014-09-19 | 2019-01-29 | Panasonic Intellectual Property Corporation Of America | Router, terminal, and congestion control method for router and terminal |
US9647925B2 (en) * | 2014-11-05 | 2017-05-09 | Huawei Technologies Co., Ltd. | System and method for data path validation and verification |
-
2015
- 2015-09-28 US US14/867,814 patent/US20170093713A1/en not_active Abandoned
-
2016
- 2016-09-09 KR KR1020160116650A patent/KR20170037818A/ko unknown
- 2016-09-14 JP JP2016179861A patent/JP2017069950A/ja active Pending
- 2016-09-19 EP EP16189544.6A patent/EP3148128B1/en active Active
- 2016-09-19 CN CN201610831683.4A patent/CN106559340A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114521323A (zh) * | 2019-10-14 | 2022-05-20 | 思科技术公司 | 信息中心网络的集中路径计算 |
CN114521323B (zh) * | 2019-10-14 | 2024-03-29 | 思科技术公司 | 用于集中路径计算的计算设备、方法和装置 |
US11910351B2 (en) | 2020-01-21 | 2024-02-20 | Cisco Technology, Inc. | Systems and methods for determining locations of access points |
CN112866106A (zh) * | 2020-12-31 | 2021-05-28 | 网络通信与安全紫金山实验室 | 一种兴趣包缓存方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR20170037818A (ko) | 2017-04-05 |
US20170093713A1 (en) | 2017-03-30 |
EP3148128B1 (en) | 2019-05-08 |
JP2017069950A (ja) | 2017-04-06 |
EP3148128A1 (en) | 2017-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106559340A (zh) | 具有小多径或单径转发状态的以信息为中心的网络 | |
CN105721311B (zh) | 一种用于更新链路状态信息的方法及系统 | |
CN105872008B (zh) | 用于信息中心网络中的基于自适应命名的点播内容交换的系统和方法 | |
CN105704030B (zh) | 用于基于距离的兴趣转发的系统和方法 | |
CN105743664B (zh) | 用于内容中心网络中的多源组播的系统和方法 | |
CN106559256B (zh) | 用于消除以信息为中心的网络中的未检测兴趣循环的系统和方法 | |
JP2017069951A (ja) | ステートレス情報中心ネットワーキングのためのシステム及び方法 | |
US9407549B2 (en) | System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers | |
Marandi et al. | BFR: a bloom filter-based routing approach for information-centric networks | |
US10320675B2 (en) | System and method for routing packets in a stateless content centric network | |
US20150281071A1 (en) | Multi-publisher routing protocol for named data networks | |
US10033639B2 (en) | System and method for routing packets in a content centric network using anonymous datagrams | |
Singh et al. | A walkthrough of name data networking: Architecture, functionalities, operations and open issues | |
Garcia-Luna-Aceves et al. | Content-centric networking at internet scale through the integration of name resolution and routing | |
Li et al. | Stability and consistency of the lisp pull routing architecture | |
Martinez et al. | A learning model for adaptive network routing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20170426 Address after: American California Applicant after: Cisco Tech Ind. Address before: American California Applicant before: Palo Alto Res CT Inc. |
|
TA01 | Transfer of patent application right | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170405 |
|
WD01 | Invention patent application deemed withdrawn after publication |