Networking Named Content 全文翻译(转)
Posted Wi-Fi研习者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Networking Named Content 全文翻译(转)相关的知识,希望对你有一定的参考价值。
转自:http://blog.csdn.net/gongxifacai_believe/article/details/50823420
http://blog.csdn.net/gongxifacai_believe/article/details/50823544
Networking Named Content
Van Jacobson et. al
Palo Alto ResearchCenter
摘要
(P2 3)网络使用逐步演化为对内容的分发和获取,(P2 1)然而现今网络技术仅仅涉及主机之间的连接。(P2 2)访问内容和服务需要把用户关心的东西映射到网络的位置。我们提出内容中心网络,它把内容看作原语,(P2 4)在身份识别、安全和可访问性上与位置去耦合,并且通过名字获取内容。(P2 5)内容中心网络使用新的方法路由命名的内容,这些方法是从IP衍生出来的,通过这些方法,我们能够同时获得可扩展性、安全性和性能。我们用安全文件下载系统和VoIP电话系统具体实现了体系结构的基本特征、表现力和性能。
关键词
设计,实验,性能,安全
1. 引言
今天因特网的工程原则和体系结构是在20世纪六七十年代创建的。(P31)网络设计的目的是解决资源共享问题——远程使用稀有的和昂贵的设备,比如读卡器或者高速磁带驱动器甚至超级计算机。这产生的通讯模型是确切的两台机器之间的会话,一方希望使用资源,另一方提供可以访问的资源。因此IP包包含两个标识符(地址),一个是源地址,一个是目的地址,几乎所有的因特网上的流量包含主机对之间的TCP会话。
自从包交换网络产生以来的50年里,计算机和附件已经变成便宜的无处不在的商品。因特网提供的连通性和低的存储成本使访问大量的新内容成为可能——仅在2008年就创造了500EB新内容。(P3 2)人们因为互联网包含的内容而重视互联网,但通讯依然是依据位置的。
我们看到影响用户的许多问题起因于模型之间的不兼容性。
(1)(P3 3)实用性:快的可靠的内容访问需要笨拙的预先计划的针对特定应用程序的机制,像CDN和P2P网络,并且强制增加了过多的带宽花费。(覆盖网还不了解)
(2)(P3 4)安全性:内容的信任很容易错位,依赖于不值得信任的位置和连接信息。
(3)(P3 5)位置独立:映射内容到主机位置使配置和网络服务的实现变得复杂。
解决这些问题的直接的统一的方式是将位置代替为内容。主机到主机的会话是一个被选择来解决60年代问题的网络抽象。我们认为命名数据对今天的通信问题来说是一个比命名主机更好的抽象。我们引进CCN,构建在命名数据上的通讯体系结构。CCN在最低层上没有主机概念,包地址是命名内容,而不是位置。然而,我们保持使得TCP/IP简单、健壮和可扩展的设计决策。
图1比较了IP和CCN协议栈,协议栈中的大部分层反映了双边协定:例如,二层帧协议是在物理链路的两端之间的一个协议,四层传输协议是在某个生产者和消费者之间的之间的协议。仅有的需要通用协议的层是三层网络层。IP的成功在很大程度上是由于网络层的简易性(IP包,协议栈的瘦腰部分)和对二层提出的弱要求,也就是说:无状态的,不可靠的,无序的,尽最大努力的交付。CCN的网络层与IP的网络层相似,并对二层提出更少的要求,产生许多同样有吸引力的特性。另外,CCN能够在任何东西上分层,包括IP自身。
CCN以许多严格的方式与IP区分开来。其中的两个是策略和安全,在CCN协议栈中表现为新的层。因为CCN在第二层更简单的关系,CCN最大化利用多个同时连接(例如,以太网、3G、蓝牙和802.11)。策略层(3.3节)做出了细粒度的动态优化选择,在变化的条件下最好的利用多个连接。CCN确保内容自身(第5节),而不是它上面运行的连接,从而避免了许多折磨IP网络的基于主机的缺陷。
我们在第2节到第5节描述CCN的体系结构和操作。在第6节用我们实现的原型评估性能。最后,在第7和第8节,我们讨论相关工作并做总结。
图1:CCN将网络栈的通用组件从IP移动到命名内容块
async:异步串行端口
sonet:同步光纤网络
§ Routing and forwarding plane separation has provennecessary for Internet development. It allows the forwarding plane to function whilethe routing system continues to evolve over time. NDN sticks to the sameprinciple to allow the deployment of NDN with the best available forwardingtechnology while we carry out new routing system research in parallel.
§ Security must be built into the architecture. Securityin the current Internet architecture is an afterthought, not meeting thedemands of today’s increasingly hostile environment. NDN provides a basicsecurity building blockright at the thin waist bysigning all named data.
§ Network traffic must be self-regulating. Flow-balanceddata delivery is essential to stable network operation. Since IP performs openloop data delivery, transport protocols have been amended to provide unicasttraffic balance. NDN designs flow-balance into the thin waist.
——http://named-data.net/project/archoverview/
(译:(P4 1)路由转发平面的分离证明了因特网发展的必要性,它允许当路由系统随着时间继续进化的同时,转发平面仍然可以工作。NDN坚持同样的原则,在我们实行新的路由系统研究的同时,允许NDN用最可用的转发技术来部署。
安全层必须在体系结构内部构建。当前因特网体系结构的安全是后来考虑的,不能满足今天的增长的不是以主机为中心的环境的需求。(P4 3)NDN通过在细腰部分签名所有的命名数据,提供了一个基本的安全构造块。
网络流量必须是自动调节的。流平衡的数据交付对使网络操作平稳是至关重要的。由于IP执行开环的数据交付,因而我们通过改进传输协议来提供单播的流量平衡。(P4 2)NDN在细腰部分设计流平衡。)(开环控制:没有反馈的控制;闭环控制:具有反馈的控制。)
(百度:何为数据链路层的(DATA LINKLAYER)的MAC子层和LLC子层?
MAC子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等。MAC子层的存在屏蔽了不同物理链路种类的差异性;
在MAC子层的诸多功能中,非常重要的一项功能是仲裁介质的使用权,即规定站点何时可以使用通信介质。实际上,局域网技术中是采用具有冲突检测的载波侦听多路访问(Carrier Sense Multiple Access /Collision Detection,CSMA/CD)这种介质访问方法的。
LLC子层负责向其上层提供服务;
LLC 是在高级数据链路控制(HDLC:High-Level Data-Link Control)的基础上发展起来的,并使用了 HDLC 规范子集。LLC 定义了三种数据通信操作类型:
类型1:无连接。该方式对信息的发送通常无法保证接收。
类型2:面向连接。该方式提供了四种服务:连接的建立、确认和承认响应、差错恢复(通过请求重发接收到的错误数据实现)以及滑动窗口(系数:128)。通过改变滑动窗口可以提高数据传输速率。
类型3:无连接承认响应服务。
类型1的 LLC 无连接服务中规定了一种静态帧格式,并支持运行网络协议。有关传输层网络协议通常是使用服务类型1方式。
注意:在Windows 2000网络体系结构中,LLC子层是由传输驱动程序实现的,而MAC子层是由网络接口卡(NIC:网卡)来实现。
类型2的 LLC 面向连接服务支持可靠数据传输,运用于不需要调用网络层和传输层协议的局域网环境。)
(LLC的功能:
数据要通过网络进行传输,要从高层一层一层的向下传送,如果一个主机要传送数据到别的主机,先把数据包装到一个特殊协议报头中(一般分为mac头、llc头、ip头、tcp头),这个过程叫封装,右边是一个数据链路解封的工作示意图:
IEEE于1980年2月成立了局域网标准委员会(简称IEEE802委员会),专门从事局域网标准化工作,并制定了IEEE802标准。802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层与物理层,它将数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层。
IEEE802委员会为局域网制订了一系列标准,统称为802标准。其中 IEEE 802.2 LAN 标准定义了逻辑链路控制LLC子层的功能与服务,并且是 IEEE 802.3,IEEE802.4和 IEEE 802.5等标准的基标准。
LLC负责识别网络层协议,然后对它们进行封装。LLC报头告诉数据链路层一旦帧被接收到时,应当对数据包做何处理。它的工作原理是这样的:主机接收到帧并查看其LLC报头,以找到数据包的目的地,比如说,在网络层的IP协议。LLC子层也可以提供流量控制并控制比特流的排序。
IEEE 802.2 LLC 应用于 IEEE802.3 (以太网)和 IEEE802.5(令牌环) LAN,以实现如下功能:
1.管理数据链路通信
2.链接寻址
3.定义服务接入点 Service Access Points (SAP)
4.排序
LLC 为上层提供了处理任何类型 MAC 层的方法,例如,以太网 IEEE 802.3 CSMA/CD 或者令牌环 IEEE 802.5 令牌传递(Token Passing)方式。
LLC 是在高级数据链路控制(HDLC : High-Level Data-Link Control)的基础上发展起来的,并使用了HDLC 规范的子集。LLC 定义了三种数据通信操作类型:
类型1:无连接。该方式不保证发送的信息一定可以收到。
类型2:面向连接。该方式提供了四种服务:连接的建立、确认和数据到达响应、差错恢复(通过请求重发接收到的错误数据实现)以及滑动窗口(系数:128)。滑动窗口用来提高数据传输速率。
类型3:无连接应答响应服务。
类型4:高速传送服务。
不确认的无连接服务不需要事先建立连接,就可以传输数据帧。端-端流量控制和差错控制由高层协议提供。这种服务不需确认,也比较简单。通信方式可为点-点通信、广播通信和组通信,这是一种数据报服务。
类型1的 LLC 无连接服务中规定了一种静态帧格式,并允许在其上运行网络协议。使用传输层协议的网络协议通常会使用服务类型1方式。
类型2的 LLC 面向连接服务支持可靠数据传输,运用于不需要调用网络层和传输层协议的局域网环境。
)
2. CCN结点模型
CCN通信由数据的消费者驱动。有两个CCN包类型:兴趣包和数据包(图2)。消费者在所有可用的连接上通过广播兴趣包请求内容。任何听到兴趣包的结点,如果有可以满足兴趣包的数据,都能够用数据包来响应。数据包仅在对兴趣包的响应中传输,数据包消费请求包。(兴趣包和数据包是一对一的,并保持一个严格的流平衡。一个相似的在数据包和确认包之间的流平衡提供了TCP的可扩展性和适应性。然而,不像TCP,CCN的模型工作在多对多的多点交付。见3.1节。)兴趣包和数据包都通过名字识别正在交换的内容,多个对同样内容感兴趣的结点使用标准多播抑制技术通过广播介质共享传输。
如果兴趣包中的内容名是数据包中内容名的前缀,则数据包满足兴趣包。CCN名字是难懂的二进制对象,由许多明确指定的部分组成(见图4)。名字是典型分层的,所以前缀匹配等于说数据包是在兴趣包指定的命名子树中(见3.2节)。IP使用这个约定来解决IP地址的<网络号,子网号,主机号>层次结构,当需要快速查找的时候,经验显示它考虑到有效的分布式的分层的路由聚合和转发状态。
图2:CCN包类型
(兴趣包:
1内容名
2选择器:顺序偏好,发布者过滤器,范围
3随机数(同一发布者的一个兴趣包的不同副本有不同的随机数?怎么防环?))
(数据包:
1内容名
2签名:摘要算法,证人
3签名信息:发布者ID,密钥定位器,老化时间P280
4数据)
这个匹配的一个含义是内容还不存在的兴趣包仍然可能被收到——允许发布者生成对一个特殊查询响应的内容。(P6 1)这样的活跃名字允许CCN透明地支持静态缓存和动态生成的内容的混合,这在今天的网络中很普遍。名字前缀也可能是依赖环境的,比如/ThisRoom/projector显示出与在当前房间里的projector交换信息或者/Local/Friends显示出与在本地(广播)环境中的任何朋友交换信息。(最后一个例子使用CCN创建的明确的标识信息来签名,允许朋友通过一个固定的名字而不是通过复杂的枚举或者探测策略会合。例如,名字说他们想要通讯的内容,签名说在名字环境中他们是谁,例如,在本地环境中的一个朋友。)
CCN结点的基本操作与IP结点非常相似:包到达接口后,进行了对包名字的最长前缀匹配,然后实行了基于查询结果的行为。(我们使用术语face而不是interface,因为包不仅仅通过硬件网络接口转发,而且直接与机器内部的应用程序进程交换信息,像在第6节中描述的那样。)图3是核心CCN包转发引擎的原理图。有三个主要的数据结构:FIB(转发信息库)、CS(内容缓存,缓冲存储器)和PIT(待定兴趣包表)。
FIB用来向匹配数据的可能源转发兴趣包。除了他列出输出接口的一个列表,而不是一个单独的输出接口之外,几乎和IP中的FIB表相同。这反映了CCN没有限制在一个生成树上转发的事实。它允许多个数据源,能够并行地查询他们。
内容缓存与IP路由器的缓冲存储器相同,但有一个不同的替换策略。由于每个IP包属于一个单独的点到点会话,在被向下游转发后没有更多价值。因此IP“忘记”了一个包,并当转发完成后立即回收缓存(MRU替换)。CCN包是幂等的,自我识别的和自我认证的,因此每个包对许多消费者都可能是有用的(例如,许多主机阅读相同的新闻或者观看同样的YouTube的视频)。为了最大化共享的可能性,最小化上游带宽需求和下游延迟,CCN尽可能长时间地记住到达的数据包(LRU或者LFU替换策略)。
PIT记录转发到朝向内容源的上游的兴趣包,以至于返回数据包能够向下游请求者发送。在CCN中,仅仅兴趣包被路由,因为他们向上游可能的数据源传播,他们留下一个“面包屑”的痕迹为一个可以匹配的数据包遵循到源请求者的返回路径。每个PIT条目是一个面包屑。一旦PIT表项被用来转发一个匹配的数据包后,PIT表项就被擦除(数据包消费兴趣包)。从来没有找到匹配数据包的兴趣包的PIT条目最终会超时(一个软状态模型——消费者如果仍然想要数据包,会重复发送兴趣包)。
当兴趣包到达某一接口,就执行内容名字的最长匹配查询。用来查询的索引结构是排好序的,以至于内容缓存匹配将比PIT匹配优先,PIT匹配优先于FIB匹配。
因此如果内容缓存中已经有可以匹配兴趣包的数据包,他将从兴趣包到达的接口发送出去,兴趣包将会被丢弃(由于它已经被满足了)。
另外,如果有确切匹配的PIT条目,兴趣包的到达接口将会被添加到PIT表项的请求接口列表中,兴趣包将会被丢弃。(兴趣包中的数据已经被向上游发送,因此所需要做的事是确保当请求的数据包到达时,包的一个副本将会被从新的兴趣包到来的接口发送出去。)
图3 CCN转发引擎模型
另外,如果有一个匹配的FIB条目,那么兴趣包需要被朝着数据源向上游发送。如果查询FIB的结果列表不空,到达接口从FIB条目的接口列表中移除,然后,兴趣包被从所有保留的接口发出,一个新的PIT条目被从兴趣包和它的到达接口创建。
如果兴趣包没有匹配,则它将被丢弃(这个结点没有任何匹配数据,而且不知道怎样找到匹配数据)。
由于数据包没有被路由,而仅仅遵循PIT表项链返回到请求源,所以数据包的处理相对简单。数据包一旦到达,就执行数据包的内容名字的最长匹配查询。内容存储如果匹配,意味着数据包是一个副本,因此被丢弃。FIB匹配意味着没有匹配的PIT条目,因此数据包是未经请求的,所以被丢弃。(数据包到达还查找FIB表?那么如果可以匹配PIT条目,FIB表中没有记录吗?那么请求兴趣包查找FIB表并从相应接口转发了兴趣包之后,FIB表项是什么情况?)(未经请求的数据能够由恶意行为引发,数据包从多个源到达,或者来自单个源的多个路径。在后者情况下,到达数据包的第一份拷贝消费请求包,所以复制品不会找到PIT表项。在所有情况下,由于数据包保持了流平衡,并帮助保证了在任意负载下的静态操作,所以数据包应该被丢弃。)PIT匹配(也许有超过一个)意味着数据包是被这个结点发送的兴趣包所请求的。经过验证的数据包被加到内容缓存中(例如,创建一个C类型索引条目指向数据包)。然后创建一个请求接口列表的集合,这个列表是每个PIT匹配减去数据包的到达接口。数据包然后从列表中的每个接口送出。
不像IP体系结构的FIFO缓存模型,CCN内容缓存模型允许静态多路复用所需的结点内存,同时被用作整个网络的透明缓存。所有结点都能够提供缓存,仅仅受制于他们独立资源的可用性和策略。
兴趣包获取数据的多点性质对在高度动态的环境中维持通信提供了灵活性。可以访问多个网络的任何结点可以作为网络之间的内容路由器。通过使用缓存,移动结点可以作为不连通的区域之间的网络介质,或者在断断续续的链路上提供有延迟的连接。因此CCN传输提供延迟可容忍网络(DTN)。不论什么时候有本地连接,兴趣包/数据包的交换都会发生。例如,在没有连接到因特网或者他们的组织的孤立位置上,两个拥有笔记本电脑和ad-hoc无线网络的同事可以继续正常地共享合作文档。
3. 传输
CCN传输被设计为在不可信包交付服务的上层操作,包括移动的高度动态连接和普适计算。因此兴趣包,数据包,或者两者都可能在传输的过程中丢失或损坏,或者被请求的数据可能临时不可用。为了提供可靠的有弹性的交付,在某些合理的时间段不被满足的CCN兴趣包必须被重传。不像TCP,CCN发送者是无状态的,最后的消费者(发出初始兴趣包的应用程序)如果仍然想要数据,那么他对重新发出未满足的兴趣包负有责任。接收者的策略层(见图1)对在特别接口上的重传负有责任(由于他知道这个接口上的上游结点的超时时间),接收者的策略层也选择哪个可用的通信接口和多少可用的通信接口用来发送兴趣包,多少未满足的兴趣包应该被允许发送,不同兴趣包的优先级等。
下面的包网络可能复制包,CCN多点分布也可能引起复制。所有的重复数据包被在前面部分描述的基本结点机制中丢弃。尽管数据包不能在CCN中打环,兴趣包可以打环,并出现好像没有兴趣实际存在的接口上有兴趣包。为了检测和防止这个,兴趣包包含一个临时的随机值,以至于在不同路径上接收到的副本可能被丢弃(见图2)。
CCN兴趣包执行和TCP确认包同样的流控和排序功能。流控在下一部分描述,排序在流控之后的部分描述。由于结点能够保证看到任何由他发出的兴趣包的数据包,响应时间和响应速率能够被直接测量并用来适应性地决定满足某个前缀的兴趣包的最佳路径。这在第3节描述。
3.1 可靠性和流控
一个兴趣包最多获取一个数据包。这个基本原则确保流平衡在网络中保持,并允许不同速率的网络上的多样的机器之间的有效的通信。然而,就像在TCP中,数据包和请求包可能重叠。在数据包到达消费第一个兴趣包之前,多个兴趣包可能被立即发出。兴趣包以TCP中的窗口通告的角色服务。通过变化接收者发出的兴趣包,接收者能够动态地变化窗口大小。我们在后面的6.2节显示了这样的流水线技术的作用。由于CCN包能够独立命名,流水线没有因丢失而拖延,相当于固有的TCP SACK。
在大的网络中,TCP会话的端到端性质意味着发送者和接收者之间存在许多点,即使每个会话操作在流平衡状态下,拥塞仍能够从会话聚合中发生。拥塞的结果是延迟和包丢失,TCP的解决方案是对端结点动态地调整窗口大小来保持聚合流量在拥塞发生的水平之下。拥塞控制的需要是因为TCP流平衡是端到端的结果。在CCN中,相反,所有的通信都是本地的,因此没有意义讨论没有涉及到流平衡的发送者和接收者之间的会话。由于CCN流平衡在每一跳保持,不需要额外的技术在路径中间控制拥塞。与逐跳流控不同,相邻结点之间的反压力被用作调整连续流之间的资源共享。CCN在链路之间没有FIFO队列,而是一个LRU缓存,它解耦了逐跳反馈控制环路和减幅振动。(我们将在未来的论文中详细地讨论这个话题。)
图4:数据包名字例子
3.2 序列
在主机之间的TCP会话中,数据包用简单的序列号加以标识。CCN需要更加复杂的东西,因为消费者从大的数据集中请求独立的分片,许多接收者可能共享同样的数据包。使用分层的可聚合的名字促进了定位和数据共享,这些名字至少一部分对人类有意义,反映了他们起源的组织架构,而不仅仅是短暂会话中的序列。尽管CCN名字额外的丰富性,兴趣包的传输功能与TCP确认包的序列号相同:指定接收者需要的下一个数据包。
在解释下一个数据包被怎样加以标识之前,我们首先更加详细地描述名字。像上面提到的,名字是被层次化地组织的,以至于一个单独的名字由许多成分组成。每个成分由许多任意的八位组组成——对CCN传输没有意义的可变长度的二进制值。对协议栈中的高层,名字必须是有意义的和有用的,但是除了组件架构,传输没有限制条件。二进制整数编码或者其他的复杂值可能被直接使用,而没有因为传输被转换到文字。名字组件可能甚至因为隐私被加密。为了计数的方便,我们呈现了类似URI的名字,用/字符分割组件,就像图4所示那样,但是这些分隔符不是名字的一部分,没有包含在包的编码当中。这个例子阐明,应用程序层的约定当前被用于捕获临时的内容演化(一个版本标记,_v编码为FD,后面接一个整数版本号)和他的分割(一个分割标记,_s编码为00,后面跟一个整数值,这个整数值可能是一个块号或者字节号或者包中第一个视频帧的帧号)。每个数据包名的最后一个组件隐含包括一个包的SHA256摘要。
兴趣包能够精确地指定需要什么内容,但在绝大多数情况下,下一个数据包的全名是未知的,因此消费者指定它相对于名字是已知的内容。因为CCN名字树能够被完全排序(兄弟结点按字典顺序安排),因此像下一个和前一个这样的关系能够被CCN传输无歧义地翻译,即使没有任何名字语义的信息。
图5:名字树的遍历
例如,图5显示了与图4相关的名字树的一部分。想要显示绝大多数最近版本的视频的应用程序将会以名字’/parc.com/videos/WidgetA.mpgRightmostChild发送兴趣包,这导致突出的遍历和生成视频第二版本的第一段。当这被获取后,下一段将会通过发送包括名字的兴趣包获得,名字有一个最左右兄弟注释,或者通过简单地计算名字的_s1部分,由于应用程序已经知道划分规则。
像这个例子所示,集合中数据片的命名约定能够被设计来利用兴趣包的相关获取特征,应用程序能够通过树的遍历发现可用数据。尽管这样的名字约定不是基本CCN传输的一部分,然而他们是应用程序设计的重要元素。我们期望各种各样的可重用约定能够被标准化,在共享库中实现来提供应用程序的高层抽象,比如CCN上的文件和媒体流。
CCN中的兴趣包在可访问内容集上提供了一种形式的受限查询机制,兴趣包是为接收者接下来需要的有效表达设计的。我们没有空间来描述正在开发的查询选项的细节。发布者限制结果是可能的,不仅仅通过聚集,当简单的排序不够时,排除的内容已经获得了。我们也发展了高层名字发现机制,当内容自身不再需要时,这个机制对探测大的名字子树更有效。
3.3 丰富的连通性、移动性和策略
现在的典型的机器有多个网络接口,越来越具有移动性。由于IP被限制在生成树上转发,对IP来说,利用多于一个接口或者适应由快速移动性产生的改变是很困难的。CCN包不能有环路,因此CCN能够全面利用多个接口。CCN谈论数据,而不是结点,因此它不需要获取或者绑定三层身份(IP地址)到二层身份,比如MAC地址。甚至即使连通性正在快速改变,一旦物理上可能,CCN总能交换数据。此外,由于CCN兴趣包和数据包是配对的,每个结点得到细粒度分布,每个前缀,每个接口性能信息,为匹配某个前缀适应性地选择最好的接口转发兴趣包(见6.3节)。
像在第2节中描述的,CCN通过每个FIB条目接口列表明确地模拟多个连接。由于没有一个大小适合所有的策略来使用多个接口,设计意图是为每个CCN FIB条目包含一个程序,程序是为一个抽象的专门做转发选择的机器所写的,它决定了怎样转发兴趣包。这台机器的说明应该包括正常load/store的小的子集,算法和比较操作,加上在接口集上操作的行为,比如发送到所有,发送到最好,标记为最好,兴趣包满足的触发器,兴趣包超时,接口关闭,当一些有意义的事件发生时,能够被用来调用的行动列表。接口将有一个属性的(开放端)集合,比如能够广播的,是内容路由器的,基于费用的使用,高峰使用限制能够被用来动态构造行为使用集合。
这些动作,触发器和属性共同被称为CCN策略层,FIB条目的程序是获得与FIB前缀相关的数据的策略。我们当前的默认策略是在所有的能够广播的接口上发送兴趣包,如果没有响应,则按顺序尝试所有的其他接口。因此,在本地环境中可用的数据,比如在讲座中做讲座人的电脑上,或者一个商务会议中同事的笔记本电脑或者电话中的数据,将会被直接获得,仅仅没有在本地找到的数据将会使用路由器械。
FIB前缀条目中的其他接口将会通过许多方式被学习到。通过对本地CCN核心做注册操作,数据源,比如图6中的仓库,安排来为他们服务的前缀接收兴趣包。这为已注册的前缀创建了本地FIB条目,注册的前缀在接口列表中有贮藏应用程序接口仓库。如果已注册前缀应该被从本地机器中广播出去,他们有可选的标志表明。公告代理在本地结点中读已注册前缀表(通过正常的CCN兴趣包—数据包到为本地结点通信保留的命名空间),并广播打标签的前缀来满足策略限制(见5.4节)。这个广播可能是通过CCN(例如,以/local/CCN/registrations命名的代理服务兴趣包),通过标准的IP服务位置协议,或者通过CCN或者IP路由(见第4节)。
(Ad-hoc体系结构:
体系结构编辑
Ad hoc网络中的结点不仅要具备普通移动终端的功能,还要具有报文转发能力,即要具备路由器的功能。因此,就完成的功能而言可以将结点分为主机、路由器和电台三部分。其中主机部分完成普通移动终端的功能,包括人机接口、数据处理等应用软件。而路由器部分主要负责维护网络的拓扑结构和路由信息,完成报文的转发功能。电台部分为信息传输提供无线信道支持。从物理结构上分,结构可以被分为以下几类:单主机单电台、单主机多电台、多主机单电台和多主机多电台。手持机一般采用的单主机单电台的简单结构。作为复杂的车载台,一个结点可能包括通信车内的多个主机。多电台不仅可以用来构建叠加的网络,还可用作网关结点来互联多个Ad hoc网络。
Ad hoc网络一般有两种结构:平面结构和分级结构。 在平面结构中,所有结点的地位平等,所以又可以称为对等式结构。 分级结构中,网络被刈分为簇。每个簇由一个簇头和多个簇成员组成。这些簇头形成了高一级的网络。在高一级网络中,又可以分簇,再次形成更高一级的网络,直至最高级。在分级结构中,簇头结点负责簇间数据的转发。簇头可以预先指定,也可以由结点使用算法自动选举产生。 分级结构的网络又可以被分为单频分级和多频分级两种。单频率分级网络中,所有结点使用同一个频率通信。为了实现簇头之间的通信,要有网关结点(同时属于两个簇的结点)的支持。而在多频率分组网络中,不同级采用不同的通信频率。低级结点的通信范围较小,而高级结点要覆盖较大的范围。高级的结点同时处于多个级中,有多个频率,用不同的频率实现不同级的通信。在两级网络中,簇头结点有两个频率。频率1用于簇头与簇成员的通信。而频率2用于簇头之间的通信。分级网络的每个结点都可以成为簇头,所以需要适当的簇头选举算法,算法要能根据网络拓扑的变化重新分簇。 平面结构的网络比较简单,网络中所有结点是完全对等的,原则上不存在瓶颈,所以比较健壮。它的缺点是可扩充性差:每一个结点都需要知道到达其他所有结点的路由。维护这些动态变化的路由信息需要大量的控制消息。在分级结构的网络中,簇成员的功能比较简单,不需要维护复杂的路由信息。这大大减少了网络中路由控制信息的数量,因此具有很好的可扩充性。由于簇头结点可以随时选举产生,分级结构也具有很强的抗毁性。分级结构的缺点是,维护分级结构需要结点执行簇头选举算法,簇头结点可能会成为网络的瓶颈。 因此,当网络的规模较小时,可以采用简单的平面式结构;而当网络的规模增大时,应用分级结构。
)
4. 路由选择
路由选择最近经历了研究活动的再次兴起。今天对绝大多数路由选择问题,有许多有趣的和有效的候选解决方案。任何在IP体系结构中工作得好的路由方案在CCN中也工作得好,因为CCN的转发模型是拥有更少限制的IP模型的严格的超集(为了避免环路,没有在多源、多目的方面的限制),拥有同样的与路由选择相关的语义(最长匹配查询的层次化名字聚合)。CCN提供一个极好的媒介来实现路由选择协议的传输:绝大多数路由传输协议的核心与CCN的面向信息的引导扩散洪泛模型相似,由于他们必须在网络的预拓扑阶段起作用,这个阶段对等身份和位置是不知道的。由于CCN提供了健壮信息安全模型(第5节),用CCN作为路由传输能够使路由选择基础设施保护几乎是自动进行的。
为了说明怎样将CCN映射到一个路由方案,下一部分描述CCN怎样使用修改过的因特网链路状态IGP协议(IS-IS或者OSPF协议)来进行路由选择。我们意图展示CCN怎样使用现在存在的常见的路由选择(比如反对更加面向内容的路由,比如也应用到CCN中,但是有十分不同的实现策略的小世界理论)和通过使用现在存在的基础设施,CCN充分兼容可以被增量部署的IP体系结构。
(百度:集中式路由转发和分布式路由转发:
集中式第三层包转发
集中式第三层包转发是指在交换机中有一个专门的硬件模块(路由模块)来对全交换机的 第三层包进行转发。交换机的每个接口模块如千兆以太同交换模块,都不具备第三层的处理功能,需要把第三层的数据包从背饭送往路由模块来查询路由并转发。严格的讲,这种结构的交换机更准确的名称是第三层交换机,而不是路由交换机。 集中式第三层包转发是早期的技术,它的缺点在于整个交换机的路由性能受限于其路由模块的能力。另外,当一个IP包要进行路由时,它经常要从一个以太网接口 模块通过背板总线送 往路由模块,在路由模块处理后,又经背板总统送往同一以太网接口模块,这样一种数据包传送方式浪费了背板总规处理能力。并且路由模块的故障会导致整个交换机内的路由功能的失效。
实际中很多厂商交换机中的路由模块就是一个以插卡形式集成在交换机内的软件路由器。 因此在各厂商的产品中,采用集中式包转发的交换机的路由能力一般可达到15Mpps。
分布式第三层包转发
随着ASIC芯片技术的发展,具有路由功能的模块被集成到一块芯片上,于是厂商将路由芯 片设计到了路由交换机中的每一个接口模块上,这种技术就被称为分布式第三层包转发。它不需要一个专门的模块来为整个机箱服务做包的转发,第三层的包转发可以由每个接口模块上的 路由芯片独立完成。 分布式第三层包转发突破了集中式第三层包转发的性能瓶颈,但它的路由控制机制比集中 式要复杂,它需要在每一个端口保留路由表信息以进行快速的包转发。尽管在技术上更复杂,由于在性能上远远超出集中式,分布式第三层包转发技术已经成为了现在路由交换机的主流技术。)
图6:路由兴趣包到一个域的多媒体内容
4.1 链路状态域内路由选择
域内路由选择协议为结点提供了一种方法来发现和描述他们的本地连通性(“邻接”),和描述直接连接的资源(“前缀通告”)。这两个功能是正交的—一个描述图中的链路,另一个描述图中特定结点中可用的东西。通常,这两个功能在完全不同的信息领域实现。例如,IS-IS以术语IEEE 802.1 二层MAC地址描述邻接关系,但是宣告三层的IPv4或者IPv6前缀。像在第2节中描述的那样,IP转发和CCN转发是几乎完全相同的。他们都使用基于前缀的最长匹配查询(因为同样的原因使用——层次化聚合细节)来找到更靠近匹配的标识符的本地邻居。已经给出了两个FIB表的相似之处,一个可能猜测是用来创建IP FIB表的分布式路由选择机制可以用来容易地创建CCN FIB表,确实是这种情况。
CCN前缀与IP前缀十分不同,因此主要的问题是在某个特殊的路由协议中是否可以表达他们。幸运的是,IS-IS和OSPF都可以通过一个适合于分配CCN内容前缀的TLV(类型标签值)方案直接描述连接的资源。这个设计约定说明未识别的类型应该被忽略,这意味着实现全部CCN转发模型的内容路由器能够连接到一个现在存在的IS-IS或者OSPF网络,而不修改这个网络或网络中的路由器。内容路由器学习物理网络拓扑,并通过在前缀通告中使用CCN TLV在拓扑中通过邻接协议和洪泛前缀宣告他们的位置。
例如,图6显示了一个仅有IP体系结构路由器(单个圆圈表示)的IGP域和一些IP+CCN路由器。与A相邻的媒体仓库正在(通过本地网络管理名字空间中的CCN广播)公告他能够服务匹配前缀’/parc.com/media/art’的兴趣包。A上的路由选择应用程序听到了这个公告(由于他已经在这样的已经发送了公告的名字空间发送了兴趣包),为指向听到宣告的接口的前缀建立一个本地的CCN FIB条目,并且把这个前缀打包进IGP LSA并洪泛到所有结点。例如,当E上的路由选择应用程序最初得到这个LSA,他创建了到A的CCN接口,然后为’/parc.com/media/art’添加一个前缀条目,并通过那个接口到达本地CCN FIB。当一个不同的与B邻接的仓库公告了’/parc.com/media’和’parc.com/media/art’,B为这两个前缀洪泛一个IGP LSA,结果是像图中所示的E的CCN FIB表。一个以/parc.com/media/art/impressionist-history.mp4’命名的兴趣包被一个连接到E的客户发送,这个兴趣包将会被转发到A和B,A和B都分别把它转发到他们的相邻仓库。
CCN动态地建立在带宽和延迟方面都接近最佳的拓扑上(例如,数据包仅仅在存在兴趣包的地方传输,在最短路径上,任何链路上任何数据包片至多只有一份拷贝)。但是由于连接到F的客户对同样的视频感兴趣,这个交付拓扑是明显未优化的,这将导致穿过A-C或者B-C链路的内容的第二份拷贝。这将发生在当一个增量CCN部署离开了对CCN不可访问的物理拓扑的一些部分(C不是内容路由器,因此不能缓存)。C一旦得到CCN软件升级,E和F将会通过它转发他们的兴趣包,分布将会变得最优化。
在上面描述的模型中,IGP LSA被用作传输正常的CCN消息,这个消息有全部的CCN内容身份验证、保护和策略注释。因此,即使IGP并不安全,可以运行CCN的结点之间的通信是安全的。如果所有的结点进化成为可以运行CCN的结点,IGP拓扑基础设施是自动保障安全的(见5.1节)。这个起源于外部的前缀公告的安全性是公告协议的一个功能。CCN内容前缀,比如在图6中的那些被媒体服务器公告的内容前缀,被CCN确保安全,并拥有健壮的可信的模型。从其他IGP或者BGP通告的IP前缀将是不可信的。
当有相同前缀的多个公告发生时,在IP和CCN之间有一个行为的不同。在IP体系结构中,任何特殊的结点将会发送所有的匹配流量到一个确切的发布者。在CCN中,所有的结点发送所有的匹配兴趣包到所有的发布者。这个起因于一个语义上的不同:一个IP前缀从某个IGP路由器通告说“拥有这个前缀的所有主机可以通过我到达”。这相当于一个CCN路由器通告说“拥有这个前缀的某个内容可以通过我到达”。由于IP体系结构在内容层面上没有检测环路的方法,所以被迫建造环路树转发拓扑,例如,一个以目的地为根的汇集树。由于树在任何两个结点之间有单独的路径,一个IP FIB表仅有一个出接口槽。因此所有与这个前缀相关的主机必须通过通告这个前缀的这个结点可达,因为所有匹配这个前缀的流量将会被送达这个结点。由于CCN包不能有环路,前缀宣告并不意味着这个结点与所有拥有这个内容的结点邻接,CCNFIB表被建立来转发兴趣包到所有通告这个前缀的结点。这个语义上的不同能够在不改变IGP的情况下被容纳,因为它是一个实现上的改变,而不是一个协议上的改变。IP体系结构必须从前缀通告中计算出一个生成树,而CCN不会,但这个计算在使用信息的地方执行,而不是生产信息的地方执行,两个协议都能接收到完整的信息。(严格地说,这个陈述对链路状态内部网关协议,像IS-IS或者OSPF来说是正确的,但对距离矢量内部网关路由协议,像RIP或者EIGRP来说是不正确的。他们路由宣告的产生包括以生成树为先决条件的Bellman-Ford计算和替代方案中的抑制信息。这样一个IGP协议需要小的修改来满足这里描述的方案。)
4.2 域间路由选择
仅仅一个ISP的很少的客户开始使用CCN,部署内容路由器来减少对等体花费(任何内容分片的一个副本需要穿越域间提供者的对等链路,多少消费者请求它是独立的)事关ISP的最大利益,尽管降低了消费者的平均延迟(所有,而不是第一个来自ISP的本地内容缓存的副本)。因此
以上是关于Networking Named Content 全文翻译(转)的主要内容,如果未能解决你的问题,请参考以下文章
xcode5 ,The app icon set named "AppIcon" did not have any applicable content 错误,怎样解决
Source Multiplayer Networking转
错误:没有用于调用“QNetworkAccessManager::QNetworkAccessManager(Networking* const)”的匹配函数