延迟 / 中断容忍网络

59
延延 / 延延延延延延 Delay/Disruption-Tolerant Networ king DTN

description

延迟 / 中断容忍网络. Delay/Disruption-Tolerant Networking ( DTN ). 1. DTN 网络概述. 基于 TCP/IP 协议的因特网服务模型基于以下假设: 在通信持续的时间里,数据源和目的之间存在端到端路径 任何一对节点之间的最大往返时间不会太长 丢包率较小 实际中存在一类不满足以上假设的网络,称为有缺陷的网络( challenged networks ),比如: 陆地移动网络:网络发生分割 采用非寻常媒体的网络:延迟可能很长 军用自组织网络:经常中断 传感器网络:节点资源受限,通信需要按计划调度 - PowerPoint PPT Presentation

Transcript of 延迟 / 中断容忍网络

Page 1: 延迟 / 中断容忍网络

延迟 / 中断容忍网络Delay/Disruption-Tolerant Networking

( DTN )

Page 2: 延迟 / 中断容忍网络

1. DTN 网络概述 基于 TCP/IP 协议的因特网服务模型基于以下假设:

在通信持续的时间里,数据源和目的之间存在端到端路径 任何一对节点之间的最大往返时间不会太长 丢包率较小

实际中存在一类不满足以上假设的网络,称为有缺陷的网络( challenged networks ),比如: 陆地移动网络:网络发生分割 采用非寻常媒体的网络:延迟可能很长 军用自组织网络:经常中断 传感器网络:节点资源受限,通信需要按计划调度

已有的网络架构及协议均不适合这类网络。

Page 3: 延迟 / 中断容忍网络

DTN 网络的提出 1998 年, NASA 开始深空网络(也称星际网络, i

nterplanetary Internet , IPN )的研究,该组人员后来发展成为 Internet 的 IPNSIG 工作组。

一部分人开始研究如何将 IPN 的概念运用到陆地应用中,寻找更通用的延迟容忍网络。 IETF 为此成立新的工作组,称为 DTNRG 。

2004 年初, DARPA 提出中断容忍网络( disruption-tolerant networking ),也简称为 DTN ,可以看作同一概念下的另一种叙述。

Page 4: 延迟 / 中断容忍网络

DTN 网络的特点 DTN 不同于传统网络的特点如下:

长延时 节点资源有限 间歇性连接 不对称数据速率 低信噪比(高误码率)

Page 5: 延迟 / 中断容忍网络

影响 DTN 体系结构设计的因素

( 1 )路径和链路特性 高延迟、低速率、非对称链路:基于反馈机制

的可靠通信模式不适用。 断连:端到端之间断开连接比存在连接更常见。 长排队延迟:断连造成长排队延迟,消息可能

需要在路由器中保存很长时间,对路由器的存储压力很大。

Page 6: 延迟 / 中断容忍网络

影响 DTN 体系结构设计的因素(续)

( 2 )网络结构 互操作性:尚未考虑互操作性,网络一般相当

简单,范围上局限于本地,甚至可能无法提供支持分层协议栈的最基本抽象。这些系统常常不能实现可靠性、拥塞控制和安全性。

安全:链路容量是宝贵的资源,使用数据转发服务应当受到认证和访问控制机制的保护,只包括端节点的安全方法不太有吸引力。

Page 7: 延迟 / 中断容忍网络

影响 DTN 体系结构设计的因素(续)

( 3)端系统特性 有限的寿命:一个特定消息的往返时间甚至单程

时间完全有可能超过发送节点的寿命。常规的端到端确认方案没有用,应当将可靠投递的责任委托给其它实体。

低占空比操作:给传输调度和路由提出特殊问题。 有限的资源:节点存储容量有限,而数据在节点

要存储较长时间,如何设计有效的存储管理。

Page 8: 延迟 / 中断容忍网络

因特网服务模型回顾 因特网是由众多物理网络通过 TCP/IP 协议形成的逻辑网络:

TCP/IP 协议运行在物理网络上,提供给用户统一网络的表示形式。 不同物理网络的互操作通过 IP 协议实现:

IP 协议提供统一的编址形式、数据包格式和数据包转发方法 IP 包在每个节点上被映射到一个物理层帧中,依靠底层物理网络技术

传输到下一个节点。 端到端可靠性由端系统承担:

连接的所有状态仅保存在端系统上,由端系统负责数据可靠传输。 因此,因特网实际上就是一个覆盖网络:

它运行在已有物理网络之上,提供包括路由、拥塞控制、可靠性、安全性、互操作性等在内的各种网络增强功能。

Page 9: 延迟 / 中断容忍网络

在 DTN环境下审视因特网模型 缺陷网络是一种新的物理网络,可以效仿因特网设计

一个覆盖网络,在覆盖网络上提供路由、可靠性、安全性、互操作性等各种所需的网络增强功能。

交互式消息传输不适合缺陷网络,电子邮件的异步消息投递机制接近解决缺陷网络中的许多问题,因此 DTN 可基于非交互式消息传输。

由端系统保证可靠性不适合缺陷网络,应允许委托给其它节点。

应用层代理可以方便地实现不同网络之间的名字映射和协议转换,应用层上实现的 DTN 可以提供网关功能。

Page 10: 延迟 / 中断容忍网络

2. DTN 架构设计 [1]

[1]提出一个支持缺陷网络与其它网络(缺陷网络,常规网络)互操作的 DTN 网络架构: DTN 作为一个覆盖网运行在已有网络的协议栈上,

采用非交互式消息传输机制; DTN 在应用层上以代理的形式实现; 不同网络之间的互操作通过网络边界上的 DTN 网关实现。

Page 11: 延迟 / 中断容忍网络

( 1 ) 区域和 DTN 网关 DTN 架构包括区域和 DTN 网关的概念,不同的区域通过

DTN 网关互联。 两个节点被认为在同一个区域中,如果它们不使用 DTN

网关(使用区域中已有协议)就能通信。 连接两个区域的 DTN 网关逻辑上由两个部分组成,每一

部分位于各自区域的传输层协议之上。 与因特网路由器不同, DTN 网关:

关注可靠消息路由而不是尽力而为的分组交换; 当要求可靠投递时,负责将消息保存在非易失存储器中; 负责名字解析; 负责对到来的流量执行认证和访问控制检查。

Page 12: 延迟 / 中断容忍网络

区域和 DTN 网关示例

Page 13: 延迟 / 中断容忍网络

( 2 )名字元组( name tuples ) 为路由 DTN 消息,使用名字元组来标识对象或对象组。 名字元组由可变长度的两部分组成,形为 { 区域名字,

实体名字 }: 区域名字:层次结构的全局惟一名字,由 DTN 路由器解释,

用于在 DTN转发表中寻找到指定区域边界上的一个或多个DTN 网关的路径。

实体名字:标识指定区域内一个可解析名字,不要求全局唯一,可以是任何特定结构和命名方案。

因特网中的名字元组举例: {internet.icann.int, “http://www.ietf.org/oview.html”}。

Page 14: 延迟 / 中断容忍网络

名字元组的迟绑定( late binding ) 当 DTN 消息穿过一连串的区域时,只有区域名字用来路由;当到达目标区域边缘时,实体名字被解释和转换成本区域内的协议标准名字。(名字元组的迟绑定)

DTN 的名字元组绑定与 DNS域名解析的不同: DNS域名解析:在启动一个端到端会话前就要完成名字到地址的转换。

名字元组绑定: DTN 网关仅在需要用到名字元组中的某个部分信息时才进行绑定。

Page 15: 延迟 / 中断容忍网络

( 3 )邮政服务类型 [1] 从美国邮政提供的服务获得启发,选择了以下几个粒度较粗且直观易懂的核心邮政服务作为缺陷网络的服务类型: 低 / 中 / 高优先级投递投递通知( notification of mailing )投递送达:返回收条投递记录:投递使用的路由

可以使用可靠投递选项来扩展服务类型。

Page 16: 延迟 / 中断容忍网络

( 4 )路径选择和消息调度 在 DTN 中,路由是由一连串时间独立的接触( contact ,

通信机会)组成,这些接触将消息从生成节点传向目的地。 一个接触用相对于源节点的开始时间和结束时间、容量、

延迟、端点和方向描述。 评估一个接触的可预测性对于选择下一跳节点和下一个要

发送的消息非常重要。 接触的可预测性可以在完全可预测到完全不可预测的连续

范围内变化。 挑战性问题:

如何确定接触的存在和可预测性 如何将消息高效地分配给接触及确定消息的传输顺序

Page 17: 延迟 / 中断容忍网络

( 5 )保管传输和可靠性 DTN 架构包括两类不同的消息路由节点

永久节点:拥有大容量的永久消息存储器; 非永久节点:可能没有大容量的永久消息存储器。

保管传输:从一个 DTN 节点到下一跳 DTN 节点的有确认的

消息投递,以及相应的可靠投递责任的传递。永久节点一般都要参与保管传输防止数据的高丢失率,解除资源受限的端节点维护端到端连接状态的责任。

Page 18: 延迟 / 中断容忍网络

( 6 )会聚层和重传 不同区域的传输层协议提供的功能可能有很大差异:

可靠投递 连接(具有连接失败指示) 流量控制 拥塞控制 保持消息边界

当执行保管传输时,底层网络应有保持消息边界的可靠投递能力,不具有这些能力的传输层协议需要增强。

会聚层用于在要求增强的传输层上增加可靠性、消息边界和其它特性。

Page 19: 延迟 / 中断容忍网络

DTN 网关结构

Page 20: 延迟 / 中断容忍网络

( 7 )时间同步 DTN 架构要求较低标准的时间同步,以便确定哪些消息超过了它们的寿命。

在大多数情况下,精确的时间同步会给 DTN带来更多的好处,帮助 DTN进行有效的消息调度和路径选择,以及预测拥塞的发生或缓解。

目前已有比较好的时间同步解决方案,并已成为许多网络的缺省要求。

Page 21: 延迟 / 中断容忍网络

( 8 )安全 DTN 架构的安全主体除通信端点外还包括 DTN 网关,

特别需要对消息是否允许使用某种服务类型进行验证。

每个消息包括一个 “邮戳” ,其中包含: 一个可验证的发送者(或角色)标识 对该消息所请求的服务类型的许可(及批准机构) 用于验证消息内容正确性的其它常规加密信息。

在 DTN 的每一跳,路由器检查消息携带的证书(邮戳),并尽早丢弃未通过认证的消息。

该方法避免链路资源的浪费,并使得拒绝服务攻击难以实施。

Page 22: 延迟 / 中断容忍网络

DTN安全框架 想要发送消息的主体事先生成自己的公钥 /私钥对,并从 DTN 网关所知道的某个认证中心获得自己的签名公钥,所有 DTN 网关事先配置一个或多个认证中心的公钥。

主体用自己的私钥对发送的消息签名,将消息、消息签名及自己的签名公钥一起发送。

在第一个 DTN 路由器上,签名的公钥被用来验证发送者及所请求的服务类型(网关中存放了访问控制列表),验证通过的消息用网关的私钥签名后发送。

不在网络边缘的“核心”网关依赖上游网关的认证来查证消息的真实性。

Page 23: 延迟 / 中断容忍网络

( 9 )拥塞控制和流量控制 流量控制:限制向下一跳 DTN 节点的发送速度。 拥塞控制:在 DTN 网关上处理对永久存储器的竞争。 在 DTN 中控制拥塞的困难:

在未来一段时间里可能不会有接触到来 已接收的保管传输消息不能丢弃

可能的拥塞控制措施: 为不同的服务类型预留缓存空间 当存储空间满时拒绝新的连接 将保管传输转移到其它可能的保管节点 为满足保管传输而丢弃非保管传输的消息 极端情况下,删除保管消息(应尽量避免)

Page 24: 延迟 / 中断容忍网络

目前的解决方案 拥塞控制:

使用一个共享优先级队列来分配保管存储 清除所有过期消息,并拒绝太长的消息使用保管传输 消息按照优先级和寿命(由发送者指定,携带在消息

中)排队。 问题:

优先级倒置:较早到达的低优先级消息被保管接收,后来的高优先级消息可能没有保管空间

队头阻塞: 流量控制:

通常利用区域内部传输层协议的流量控制功能

Page 25: 延迟 / 中断容忍网络

( 10 )总结 DTN是一种新型的网络体系结构,其目标是为性能差异极大的各类网络提供互操作通信。

DTN 提供的功能类似于因特网的网络层: 都是为运行于不同环境的底层协议栈提供互操作 都提供存储转发服务。

DTN与因特网的不同: DTN使用永久存储器实现消息转发 因特网使用内存实现分组交换

DTN 的设计特色主要包括以下三个方面: 能够在网络内存储和重传的消息交换 名字迟绑定 容忍网络分割的路由

Page 26: 延迟 / 中断容忍网络

3. DTN 架构规范 [2]

DTN 架构已经以 RFC文档的形式发布。 RFC 4838 在传输层之上、应用层之下定义了一个端到端的、面向消息的覆盖网络,称为包裹层“ bundle layer”

实现包裹层功能的设备称为 DTN 节点。

Page 27: 延迟 / 中断容忍网络

( 1 )使用存储 -转发操作的虚拟消息交换 应用数据单元 ADU( Application Data Unit ):

DTN 应用发送的消息称为 ADU,长度与实现有关。 ADU典型地以一个个完整的单元传输,不维护相对顺序。

包裹( bundle ): 包裹层将 ADU划分成一个或多个称为 bundle 的协议数据单元。 每个 bundle 包含一个或多个块( blodk ),每个块可能包含应用数

据或用于传输 bundle 的其它信息。 在传输过程中,一个 bundle 可以被分裂成多个 bundle (也称分片);分片本身也是 bundle ,可以进一步分片;多个分片可以在网络的任何地方重组,构成一个新的 bundle 。

bundle 的源和目的用 EID进行标识, bundle还包含一个 report-to EID ,用于将诊断输出到指定的任何实体。

Page 28: 延迟 / 中断容忍网络

永久存储 大多数 DTN 节点使用某种形式的永久存储设备(磁盘、闪存等)保存 bundle;系统重启之后未发送的 bundle依然保存在系统中。

bundle 包含生成时间戳、有用寿命指示器、服务类型指示器和长度,这些信息为捆绑层路由提供了数据传输的长度及性能要求。

节点存储代表了一种必须管理和保护的新资源,DTN领域的许多研究工作都是围绕这些问题展开。

Page 29: 延迟 / 中断容忍网络

( 2 )节点和端点 DTN 节点 :

收发 bundle 的引擎,实现了 bundel层的功能; 应用使用 DTN 节点发送和接收 ADU(携带在 bundle

中) 当作为 report-to 目的地时,也使用 DTN 节点接收携带在bundle 中的诊断信息。

DTN 端点( DTN endpoints ): 一组 DTN 节点,一个 bundel被认为成功投递到了一个 D

TN 端点,如果该 DTN 端点的某个最小子集正确接收了该bundel 。

最小接收组MRG : DTN 端点的最小子集,可以指一个节点(单播)、一组节

点中的一个(任播)、组中所有节点(多播和广播)。

Page 30: 延迟 / 中断容忍网络

( 3 )端点标识符和注册 端点标识符 EID :

标识一个 DTN 端点的 URI; URI 以一个方法名开始,后跟一串字符(称方法特定部分,

SSP ); URI方法的设计者必须定义如何解释 EID 的 SSP 。

注册: 应用希望接收去往某个特定 EID 的 ADU,这种意图称为

一个注册。 注册一般永久保存在 DTN 节点中,以使应用和操作系统重启后这些注册信息依然存在。

绑定: 为转发消息而解释 EID 中的 SSP ,不一定发生在源节点。

Page 31: 延迟 / 中断容忍网络

( 4 )任播和多播 一个 EID标识的端点可能包含了多个 DTN 节点,这

时投递语义可能是任播或多播: 任播:一个 bundle被投递给一组节点中的一个; 多播投递, bundle 要被投递到组中的所有节点。

多播投递在组成员方面产生的问题: 在低延迟网络中,如果节点“最近”表达了对加入一个组

的兴趣,该节点被认为是该组成员。 在一个 DTN 网络中,应用可能希望在时刻 t收到发给 EID

e 的数据,但在这之前的某个时段内发往组 e 的数据已经生成了。数据必须在发送者停止发送之后的很长时间依然可用,因此数据必须存储在网络中以支持这种组语义。

Page 32: 延迟 / 中断容忍网络

( 5 )优先等级 DTN 架构对所投递的 ADU提供相对优先级度量,表示应用希望 ADU投递的紧急程度;优先级携带在 bundle块中。

DTN定义了三种优先级,用于调度发送队列中的 bundle : 大宗( bulk ):按最小努力发送,仅当由相同源节点产生、去往

相同目的地的所有其它优先级的 bundle都已传输,才传输这一类 bundle 。

普通( normal ):优先于大宗 bundle 传输。 加急( expedited ):优先于其它类型的 bundle 传输。

一个 bundle 的优先级只与从相同源节点发出的 bundle 有关;但取决于特定 DTN 节点的转发 / 调度策略,优先级也可能在不同源节点之间实施。

Page 33: 延迟 / 中断容忍网络

( 6 ) bundle 的结构 每个 bundle 包含:

一个主块(必需):包含bundle 的相关信息 一个载荷块(可选):包含所携带载荷的信息

(如长度)及载荷本身。 一组扩展块(可选):携带其它域

块可以像 IPv6中的扩展头那样级联在一起。

Page 34: 延迟 / 中断容忍网络

主要的 bundle域 以下域均包含在主块中,从而出现在每个 bundle

中: Creation Timestamp :由 bundle 的创建时间和一个单

调增长的序列号级联而成,保证由同一个源产生的每个 ADU都有唯一的创建时间戳

Lifespan :消息失效的时间(距其创建时间的偏移量)。 Class of Service Flags :指示 bundle使用的投递选项和优先级种类。

Source EID 和 Destination EID :源和目的的 EID 。 Report-To EID :指示返回收条、路由跟踪等报告应当发送给谁,这个 EID 可能和 Source EID 不同。

Custodian EID : bundle 的当前保管员(如果有的话)

Page 35: 延迟 / 中断容忍网络

( 7 )路由和转发 DTN 架构提供了在 bundle层上路由和转发消

息的框架。 一个 DTN 网络可以用一个多图(multigrap

h )来抽象地描述: 一对顶点之间可以有几条边连接; 一般来说,边在延迟、容量和方向性(可能存在

单向连接)方面是时变的;边的容量 C 和延迟 D表示为数据注入到该边时刻 t 的函数,即 C(t)和 D(t)。

当一条边具有零容量时,这条边被认为断连。

Page 36: 延迟 / 中断容忍网络

接触( contact )和路由 接触:

一个容量严格为正的时间段,在这个时间段内延迟和容量认为不变,这个时间段称为“一次接触”。

容量和时间段长度的乘积称为一次接触的量( volume )。

如果各个接触及它们的量可以预先知道,就可以智能地进行路由和转发决策。

当通过 DTN图的投递路径可能丢包或接触的时间段和容量无法预先精确得到时,路由计算非常困难。

路由是 DTN 的一个研究热点。

Page 37: 延迟 / 中断容忍网络

接触的类型 根据接触是否可预测以及接触的成立是否要求某些措施,将接触定义为以下几类: Persistent Contacts :接触总是可用的,即不需要有初始化连接的措施。

On-Demand Contacts :需要某些措施来启动接触,但启动之后就和永久接触一样。

Intermittent-Scheduled Contacts :预先确定好在特定时刻建立一个特定时长的接触。

Intermittent-Opportunistic Contacts :接触不是预定的,而是意想不到地出现。

Intermittent-Predicted Contacts :根据之前观察到的接触历史或其它信息预测出的接触时刻和接触时间长度。

Page 38: 延迟 / 中断容忍网络

( 8 )分片和重组 设计 DTN 的分片 /重组功能是为了充分利用接触的量和避免重传已转发的 bundle ,提高 bundle 传输的效率。

有两种形式的 DTN 分片 /重组: Proactive Fragmentation : DTN 节点将一个 A

DU划分成多个较小的块,每个块作为一个独立的bundle 传输,目的节点负责重组。

Reactive Fragmentation :当接触终止时一个 bundle只有部分被传输,正确接收的部分作为一个 bundle片段继续转发,剩余内容在下一次接触时作为另一个 bundle片段发送。

Page 39: 延迟 / 中断容忍网络

( 9 )可靠性和保管传输 bundle层提供的最基本服务是无确认、有优先级

(但不保证)的单播消息投递。 提供两个增强投递可靠性的选项:

端到端确认:应用可以使用这个选项实现自己的端到端可靠机制。

保管传输:一种粗粒度的重传机制,在传输 bundle 的过程中,可靠投递 bundle 的责任也在节点间传递。

一个 bundle 及其投递责任从一个节点移动到另一个节点称为一次保管传输。

沿途接收到这些 bundle并同意承担可靠投递责任的节点称为保管员,保管员在必要时负责重传 bundle 。

Page 40: 延迟 / 中断容忍网络

保管传输( custody transfer ) DTN 中的保管传输提供了一种较弱的消息投递可靠性增强机制:

一般来说,保管传输主要依靠下层网络的可靠传输协议将一个 bundle从一个节点可靠传递到下一个(组)节点。

当要求保管传输选项时, bundle层提供额外的粗粒度超时和重传机制,以及一个相伴的保管员 - 保管员确认信令机制。

当一个节点同意保管一个 bundle 时: 向 bundle主块中的 Custodian EID 发送保管传输接受信号; 在转发 bundle前,将 Custodian EID 更新为自己的某个 EID 。

实现保管传输的难点: 节点是否同意保管传输的策略 当网络拥塞(内存不够)时,如何处理已经接收保管的信息及新收

到的保管信息。

Page 41: 延迟 / 中断容忍网络

( 10 )总结 DTN是对 Internet 体系的一个根本改变,而不仅仅是修补。它采用了一系列不同于 Internet 的设计: 消息代替分组 逐跳安全可靠传输代替端到端安全可靠传输 基于名称的路由代替基于地址的路由 部分连通网络图代替全连通网络图

DTN 可以很容易地架构在基于 TCP/IP 的因特网上,并保持兼容。

设计有效的 DTN 协议的主要挑战是: 非常长的延迟(有时长达几天) 频繁的中断 随机或可预测的通信机会

Page 42: 延迟 / 中断容忍网络

4. DTN 路由技术 DTN 路由问题区别于常规路由问题的两个主

要方面: 常规路由问题假设网络拓扑已知,而 DTN 网络是

时断时续的,不存在连通的网络拓扑; 常规路由一般是选择最短(最少跳数)路径,而 D

TN 路由是要最大化消息传输的可能性。 DTN 路由是在 DTN层上执行的选路策略,并

不涉及到下层网络。 由于 DTN 网络本身的特性,理论上传统的路

由方法不能直接应用到 DTN 中。

Page 43: 延迟 / 中断容忍网络

DTN 路由需要考虑的问题 网络的连接特性:

持续连接、周期性连接、随机连接 连接的容量:

连接容量大小关系到两个节点之间可以交换的数据量多少;

连接容量依赖于连接技术和连接的持续时间。 节点缓存及管理 节点处理能力 能量

Page 44: 延迟 / 中断容忍网络

单播路由策略的分类 目前的路由策略根据复制和知识两个属性分为两类:

洪泛:依靠报文复制的传输,高可靠、高代价。 转发:依靠网络信息(知识)的传输,路由效率高、需

要额外开销、有时不可行。 按照连接的确定性分为:

确定性连接:可事先确定传输时间以达到最好的传输效果。

随机性连接:通过存储转发,每次都将报文向着目的方向传输一跳。根据对网络状态的了解程度,可以分为路由扩散和概率转发。

Page 45: 延迟 / 中断容忍网络

4.1 洪泛 洪泛策略把报文的多个拷贝传送到一些节点(中继

点),中继点存储报文直到可以和目的通信。 直接传输 :

仅当源节点和目的节点之间存在直接接触时,才在链路上传输数据。

不需要任何网络信息,传输开销最小;但传输可能性也最小,传输延迟很大。

多拷贝传输:试图权衡资源消耗和传输可能性 / 传输延迟。

Page 46: 延迟 / 中断容忍网络

( 1 )传染路由( Epidemic Routing )[3]

假设: 发送节点不知道接收节点的当前位置,也不知道

到接收节点的最佳路径; 由于移动,节点与节点会周期性地随机相遇。

基本思想: 将消息分发给同一个连通子网内的节点(称为带菌者 carrier );

通过带菌者与其它连通子网中节点的接触,将消息传播到其它连通子网,最终到达接收节点。

Page 47: 延迟 / 中断容忍网络

传染路由示例

源节点 S 将消息传递给它的两个直接邻居 C1 和 C2; C2与 C3相遇,将消息传递给 C3 ; C3 与目的节点 D 接触,将消息发送给 D 。

Page 48: 延迟 / 中断容忍网络

传染路由的算法过程 算法过程:

每个节点在缓冲区中存放自己产生的消息及为其它节点缓存的消息。

使用一个哈希表为这些消息做索引,以全局唯一的 32位消息 ID (源节点 ID | 源节点生成的消息 ID )作为键值。

每个节点保存一个比特矢量(称汇总矢量),指示本地哈希表中哪些入口已被设置(即哪些消息已存放在内存中)。

当两个节点相遇时, ID 较小的节点启动一个会话。 会话期间,两个节点交换各自的汇总矢量,并向对方请求那些本地还没有的消息。

接收节点可以自主决定是否接收一个消息。

Page 49: 延迟 / 中断容忍网络

消息交换过程示例

Page 50: 延迟 / 中断容忍网络

算法优化 算法的总体目标:

最大化消息投递率,最小化消息投递延迟和资源消耗。 性能调节参数:

消息传递的最大跳数:跳数为 1 的消息只能被投递给最终目的地,本地缓存不够时容易被丢弃;较大的跳数有助于较快地分发消息,减小平均投递延迟,但会增大总的资源消耗。

节点缓存空间:用于交换消息,当缓存满时丢弃较老的消息。较大的缓存空间有助于提高消息投递率,但消耗较多的资源。

Page 51: 延迟 / 中断容忍网络

参数设置 消息的跳数:

高优先级的消息可以设置较大的跳数域; 大多数消息的跳数域设置成与所在网络的跳数期望值相接近的数值即可。

节点缓存空间: 为保证所有消息最终投递到接收节点,(至少

部分)节点的缓存空间必须大致等于任意时刻正在网络中传输的消息数量的期望值。

Page 52: 延迟 / 中断容忍网络

( 2 ) Spray and Wait [4]

传染路由的缺点是消耗资源较多,网络中消息的拷贝数与网络规模成正比。

Spray and Wait解除了消息的拷贝数与网络规模的耦合,可获得比其它洪泛策略好得多的性能。

Spray and Wait 由两个阶段组成: Spray阶段:对于源节点产生的每一个消息,将 L个消息拷贝传播给 L个不同的中继点;

Wait阶段:如果在 Spray阶段没有发现目的节点,携带消息拷贝的这 L个节点执行直接传输(仅当遇见目的节点时才传输消息拷贝)。

Page 53: 延迟 / 中断容忍网络

如何传播 L个消息拷贝? Source Spray and Wait :

源节点将 L个消息拷贝全部发送给它最先遇到的L个不同节点。

Binary Spray and Wait : 源节点起始时拥有一个消息的 L个拷贝; 任何一个拥有 n>1个消息拷贝的节点 A (源节

点或中继点),遇到另一个节点 B、且 B没有该消息的拷贝时,将 n/2个消息移交给 B,自己保留 n/2个消息;

当只剩下一个拷贝时转换到直接传输。

Page 54: 延迟 / 中断容忍网络

Spray and Wait方案的延迟比较

Page 55: 延迟 / 中断容忍网络

4.2 随机性连接 随机性连接指的是预先不知道网络的拓扑结

构,这种情况是最常见的。 目前已有的路由算法可以划分为三类:

基于传染路由的方法 基于一跳信息的路由 基于端到端信息的路由。

后两种都要求中间节点估计每个接触的机会,然后选择接触。

Page 56: 延迟 / 中断容忍网络

Probabilistic Routing [5]

传染路由假设节点的运动是完全随机的,但真实的节点通常以一种可预测的方式运动,其移动模型可以根据过去一段时间的重复行为来推断。

基于这种假设, [5]提出一种基于相遇历史和可传递性的概率路由协议: 在每个节点 a 上,对每个已知的目的节点 b建立一个交付可预测性测度 P(a,b)∈[0,1],表示 a 将消息交付给 b的可能性。

两个节点相遇时交换各自的汇总矢量(包含各自维护的交付可预测性信息),利用汇总矢量中的信息并依据所使用的转发策略来确定要向其它节点请求什么消息。

Page 57: 延迟 / 中断容忍网络

交付可预测性的计算 每当遇见一个节点时,更新相应的交付可预测性测度,使得经常遇见的节点具有较高的交付可预测性:

P(a,b) = P(a,b) old +( 1 - P(a,b) old )× Pinit

当一对节点在一段时间内没有相遇时,相应的交付可预测性测度必须减小(称为老化): P(a,b) = P(a,b) old ×γk

交付可预测性还具有传递性,以下公式描述了传递性对交付可预测性测度的影响:

P(a,c) = P(a,c) old +(1 - P(a,c) old )× P(a,b) × P(b,c) ×β

Page 58: 延迟 / 中断容忍网络

转发策略 传统路由协议:消息被发送到与目的节点存在最

小代价路由的一个邻居节点上。 DTN 网络中的路由:

当消息到达一个节点时,可能当前没有可用的路径,消息必须缓存在节点中;

每当遇见一个节点时,要决定是否转发某个特定消息及转发到几个节点上。

[7] 使用简单的转发策略: 当 a与 b相遇时,如果 a 保存的某个消息的目的地

为 c ,且 P(b,c) > P(a,c) ,则 a 将消息转发给 b。

Page 59: 延迟 / 中断容忍网络

参考文献[1] A Delay-Tolerant Network Architecture for Challe

nged Internets. [2] DTN-Tolerant Networking Architecture. RFC4838.[3]Epidemic Routing for Partially-Connected Ad Hoc

Networks.[4]Spray and Wait: An Efficient Routing Scheme for In

termitterntly Connected Mobile Networks.[5]Probabilistic Routing Intermittently Connected Ne

tworks.