1 / 59

延迟 / 中断容忍网络

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

Download Presentation

延迟 / 中断容忍网络

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 延迟/中断容忍网络 Delay/Disruption-Tolerant Networking (DTN)

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

  3. DTN网络的提出 • 1998年,NASA开始深空网络(也称星际网络,interplanetary Internet,IPN)的研究,该组人员后来发展成为Internet的IPNSIG工作组。 • 一部分人开始研究如何将IPN的概念运用到陆地应用中,寻找更通用的延迟容忍网络。IETF为此成立新的工作组,称为DTNRG。 • 2004年初,DARPA提出中断容忍网络(disruption-tolerant networking),也简称为DTN,可以看作同一概念下的另一种叙述。

  4. DTN网络的特点 • DTN不同于传统网络的特点如下: • 长延时 • 节点资源有限 • 间歇性连接 • 不对称数据速率 • 低信噪比(高误码率)

  5. 影响DTN体系结构设计的因素 (1)路径和链路特性 • 高延迟、低速率、非对称链路:基于反馈机制的可靠通信模式不适用。 • 断连:端到端之间断开连接比存在连接更常见。 • 长排队延迟:断连造成长排队延迟,消息可能需要在路由器中保存很长时间,对路由器的存储压力很大。

  6. 影响DTN体系结构设计的因素(续) (2)网络结构 • 互操作性:尚未考虑互操作性,网络一般相当简单,范围上局限于本地,甚至可能无法提供支持分层协议栈的最基本抽象。这些系统常常不能实现可靠性、拥塞控制和安全性。 • 安全:链路容量是宝贵的资源,使用数据转发服务应当受到认证和访问控制机制的保护,只包括端节点的安全方法不太有吸引力。

  7. 影响DTN体系结构设计的因素(续) (3)端系统特性 • 有限的寿命:一个特定消息的往返时间甚至单程时间完全有可能超过发送节点的寿命。常规的端到端确认方案没有用,应当将可靠投递的责任委托给其它实体。 • 低占空比操作:给传输调度和路由提出特殊问题。 • 有限的资源:节点存储容量有限,而数据在节点要存储较长时间,如何设计有效的存储管理。

  8. 因特网服务模型回顾 • 因特网是由众多物理网络通过TCP/IP协议形成的逻辑网络: • TCP/IP协议运行在物理网络上,提供给用户统一网络的表示形式。 • 不同物理网络的互操作通过IP协议实现: • IP协议提供统一的编址形式、数据包格式和数据包转发方法 • IP包在每个节点上被映射到一个物理层帧中,依靠底层物理网络技术传输到下一个节点。 • 端到端可靠性由端系统承担: • 连接的所有状态仅保存在端系统上,由端系统负责数据可靠传输。 • 因此,因特网实际上就是一个覆盖网络: • 它运行在已有物理网络之上,提供包括路由、拥塞控制、可靠性、安全性、互操作性等在内的各种网络增强功能。

  9. 在DTN环境下审视因特网模型 • 缺陷网络是一种新的物理网络,可以效仿因特网设计一个覆盖网络,在覆盖网络上提供路由、可靠性、安全性、互操作性等各种所需的网络增强功能。 • 交互式消息传输不适合缺陷网络,电子邮件的异步消息投递机制接近解决缺陷网络中的许多问题,因此DTN可基于非交互式消息传输。 • 由端系统保证可靠性不适合缺陷网络,应允许委托给其它节点。 • 应用层代理可以方便地实现不同网络之间的名字映射和协议转换,应用层上实现的DTN可以提供网关功能。

  10. 2. DTN架构设计[1] • [1]提出一个支持缺陷网络与其它网络(缺陷网络,常规网络)互操作的DTN网络架构: • DTN作为一个覆盖网运行在已有网络的协议栈上,采用非交互式消息传输机制; • DTN在应用层上以代理的形式实现; • 不同网络之间的互操作通过网络边界上的DTN网关实现。

  11. (1) 区域和DTN网关 • DTN架构包括区域和DTN网关的概念,不同的区域通过DTN网关互联。 • 两个节点被认为在同一个区域中,如果它们不使用DTN网关(使用区域中已有协议)就能通信。 • 连接两个区域的DTN网关逻辑上由两个部分组成,每一部分位于各自区域的传输层协议之上。 • 与因特网路由器不同,DTN网关: • 关注可靠消息路由而不是尽力而为的分组交换; • 当要求可靠投递时,负责将消息保存在非易失存储器中; • 负责名字解析; • 负责对到来的流量执行认证和访问控制检查。

  12. 区域和DTN网关示例

  13. (2)名字元组(name tuples) • 为路由DTN消息,使用名字元组来标识对象或对象组。 • 名字元组由可变长度的两部分组成,形为{区域名字,实体名字}: • 区域名字:层次结构的全局惟一名字,由DTN路由器解释,用于在DTN转发表中寻找到指定区域边界上的一个或多个DTN网关的路径。 • 实体名字:标识指定区域内一个可解析名字,不要求全局唯一,可以是任何特定结构和命名方案。 • 因特网中的名字元组举例:{internet.icann.int, “http://www.ietf.org/oview.html”}。

  14. 名字元组的迟绑定(late binding) • 当DTN消息穿过一连串的区域时,只有区域名字用来路由;当到达目标区域边缘时,实体名字被解释和转换成本区域内的协议标准名字。(名字元组的迟绑定) • DTN的名字元组绑定与DNS域名解析的不同: • DNS域名解析:在启动一个端到端会话前就要完成名字到地址的转换。 • 名字元组绑定:DTN网关仅在需要用到名字元组中的某个部分信息时才进行绑定。

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

  16. (4)路径选择和消息调度 • 在DTN中,路由是由一连串时间独立的接触(contact,通信机会)组成,这些接触将消息从生成节点传向目的地。 • 一个接触用相对于源节点的开始时间和结束时间、容量、延迟、端点和方向描述。 • 评估一个接触的可预测性对于选择下一跳节点和下一个要发送的消息非常重要。 • 接触的可预测性可以在完全可预测到完全不可预测的连续范围内变化。 • 挑战性问题: • 如何确定接触的存在和可预测性 • 如何将消息高效地分配给接触及确定消息的传输顺序

  17. (5)保管传输和可靠性 • DTN架构包括两类不同的消息路由节点 • 永久节点:拥有大容量的永久消息存储器; • 非永久节点:可能没有大容量的永久消息存储器。 • 保管传输: • 从一个DTN节点到下一跳DTN节点的有确认的消息投递,以及相应的可靠投递责任的传递。 • 永久节点一般都要参与保管传输 • 防止数据的高丢失率,解除资源受限的端节点维护端到端连接状态的责任。

  18. (6)会聚层和重传 • 不同区域的传输层协议提供的功能可能有很大差异: • 可靠投递 • 连接(具有连接失败指示) • 流量控制 • 拥塞控制 • 保持消息边界 • 当执行保管传输时,底层网络应有保持消息边界的可靠投递能力,不具有这些能力的传输层协议需要增强。 • 会聚层用于在要求增强的传输层上增加可靠性、消息边界和其它特性。

  19. DTN网关结构

  20. (7)时间同步 • DTN架构要求较低标准的时间同步,以便确定哪些消息超过了它们的寿命。 • 在大多数情况下,精确的时间同步会给DTN带来更多的好处,帮助DTN进行有效的消息调度和路径选择,以及预测拥塞的发生或缓解。 • 目前已有比较好的时间同步解决方案,并已成为许多网络的缺省要求。

  21. (8)安全 • DTN架构的安全主体除通信端点外还包括DTN网关,特别需要对消息是否允许使用某种服务类型进行验证。 • 每个消息包括一个 “邮戳” ,其中包含: • 一个可验证的发送者(或角色)标识 • 对该消息所请求的服务类型的许可(及批准机构) • 用于验证消息内容正确性的其它常规加密信息。 • 在DTN的每一跳,路由器检查消息携带的证书(邮戳),并尽早丢弃未通过认证的消息。 • 该方法避免链路资源的浪费,并使得拒绝服务攻击难以实施。

  22. DTN安全框架 • 想要发送消息的主体事先生成自己的公钥/私钥对,并从DTN网关所知道的某个认证中心获得自己的签名公钥,所有DTN网关事先配置一个或多个认证中心的公钥。 • 主体用自己的私钥对发送的消息签名,将消息、消息签名及自己的签名公钥一起发送。 • 在第一个DTN路由器上,签名的公钥被用来验证发送者及所请求的服务类型(网关中存放了访问控制列表),验证通过的消息用网关的私钥签名后发送。 • 不在网络边缘的“核心”网关依赖上游网关的认证来查证消息的真实性。

  23. (9)拥塞控制和流量控制 • 流量控制:限制向下一跳DTN节点的发送速度。 • 拥塞控制:在DTN网关上处理对永久存储器的竞争。 • 在DTN中控制拥塞的困难: • 在未来一段时间里可能不会有接触到来 • 已接收的保管传输消息不能丢弃 • 可能的拥塞控制措施: • 为不同的服务类型预留缓存空间 • 当存储空间满时拒绝新的连接 • 将保管传输转移到其它可能的保管节点 • 为满足保管传输而丢弃非保管传输的消息 • 极端情况下,删除保管消息(应尽量避免)

  24. 目前的解决方案 • 拥塞控制: • 使用一个共享优先级队列来分配保管存储 • 清除所有过期消息,并拒绝太长的消息使用保管传输 • 消息按照优先级和寿命(由发送者指定,携带在消息中)排队。 • 问题: • 优先级倒置:较早到达的低优先级消息被保管接收,后来的高优先级消息可能没有保管空间 • 队头阻塞: • 流量控制: • 通常利用区域内部传输层协议的流量控制功能

  25. (10)总结 • DTN是一种新型的网络体系结构,其目标是为性能差异极大的各类网络提供互操作通信。 • DTN提供的功能类似于因特网的网络层: • 都是为运行于不同环境的底层协议栈提供互操作 • 都提供存储转发服务。 • DTN与因特网的不同: • DTN使用永久存储器实现消息转发 • 因特网使用内存实现分组交换 • DTN的设计特色主要包括以下三个方面: • 能够在网络内存储和重传的消息交换 • 名字迟绑定 • 容忍网络分割的路由

  26. 3. DTN架构规范[2] • DTN架构已经以RFC文档的形式发布。 • RFC 4838在传输层之上、应用层之下定义了一个端到端的、面向消息的覆盖网络,称为包裹层“bundle layer” • 实现包裹层功能的设备称为DTN节点。

  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,用于将诊断输出到指定的任何实体。

  28. 永久存储 • 大多数DTN节点使用某种形式的永久存储设备(磁盘、闪存等)保存bundle;系统重启之后未发送的bundle依然保存在系统中。 • bundle包含生成时间戳、有用寿命指示器、服务类型指示器和长度,这些信息为捆绑层路由提供了数据传输的长度及性能要求。 • 节点存储代表了一种必须管理和保护的新资源,DTN领域的许多研究工作都是围绕这些问题展开。

  29. (2)节点和端点 • DTN节点: • 收发bundle的引擎,实现了bundel层的功能; • 应用使用DTN节点发送和接收ADU(携带在bundle中) • 当作为report-to目的地时,也使用DTN节点接收携带在bundle中的诊断信息。 • DTN端点(DTN endpoints): • 一组DTN节点,一个bundel被认为成功投递到了一个DTN端点,如果该DTN端点的某个最小子集正确接收了该bundel 。 • 最小接收组MRG: • DTN端点的最小子集,可以指一个节点(单播)、一组节点中的一个(任播)、组中所有节点(多播和广播)。

  30. (3)端点标识符和注册 • 端点标识符EID: • 标识一个DTN端点的URI; • URI以一个方法名开始,后跟一串字符(称方法特定部分,SSP);URI方法的设计者必须定义如何解释EID的SSP。 • 注册: • 应用希望接收去往某个特定EID的ADU,这种意图称为一个注册。 • 注册一般永久保存在DTN节点中,以使应用和操作系统重启后这些注册信息依然存在。 • 绑定: • 为转发消息而解释EID中的SSP,不一定发生在源节点。

  31. (4)任播和多播 • 一个EID标识的端点可能包含了多个DTN节点,这时投递语义可能是任播或多播: • 任播:一个bundle被投递给一组节点中的一个; • 多播投递,bundle要被投递到组中的所有节点。 • 多播投递在组成员方面产生的问题: • 在低延迟网络中,如果节点“最近”表达了对加入一个组的兴趣,该节点被认为是该组成员。 • 在一个DTN网络中,应用可能希望在时刻t收到发给EID e的数据,但在这之前的某个时段内发往组e的数据已经生成了。数据必须在发送者停止发送之后的很长时间依然可用,因此数据必须存储在网络中以支持这种组语义。

  32. (5)优先等级 • DTN架构对所投递的ADU提供相对优先级度量,表示应用希望ADU投递的紧急程度;优先级携带在bundle块中。 • DTN定义了三种优先级,用于调度发送队列中的bundle: • 大宗(bulk):按最小努力发送,仅当由相同源节点产生、去往相同目的地的所有其它优先级的bundle都已传输,才传输这一类bundle。 • 普通(normal):优先于大宗bundle传输。 • 加急(expedited):优先于其它类型的bundle传输。 • 一个bundle的优先级只与从相同源节点发出的bundle有关;但取决于特定DTN节点的转发/调度策略,优先级也可能在不同源节点之间实施。

  33. (6)bundle的结构 • 每个bundle包含: • 一个主块(必需):包含bundle的相关信息 • 一个载荷块(可选):包含所携带载荷的信息(如长度)及载荷本身。 • 一组扩展块(可选):携带其它域 • 块可以像IPv6中的扩展头那样级联在一起。

  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的当前保管员(如果有的话)

  35. (7)路由和转发 • DTN架构提供了在bundle层上路由和转发消息的框架。 • 一个DTN网络可以用一个多图(multigraph)来抽象地描述: • 一对顶点之间可以有几条边连接; • 一般来说,边在延迟、容量和方向性(可能存在单向连接)方面是时变的; • 边的容量C和延迟D表示为数据注入到该边时刻t的函数,即C(t)和D(t)。 • 当一条边具有零容量时,这条边被认为断连。

  36. 接触(contact)和路由 • 接触: • 一个容量严格为正的时间段,在这个时间段内延迟和容量认为不变,这个时间段称为“一次接触”。 • 容量和时间段长度的乘积称为一次接触的量(volume)。 • 如果各个接触及它们的量可以预先知道,就可以智能地进行路由和转发决策。 • 当通过DTN图的投递路径可能丢包或接触的时间段和容量无法预先精确得到时,路由计算非常困难。 • 路由是DTN的一个研究热点。

  37. 接触的类型 • 根据接触是否可预测以及接触的成立是否要求某些措施,将接触定义为以下几类: • Persistent Contacts:接触总是可用的,即不需要有初始化连接的措施。 • On-Demand Contacts:需要某些措施来启动接触,但启动之后就和永久接触一样。 • Intermittent-Scheduled Contacts:预先确定好在特定时刻建立一个特定时长的接触。 • Intermittent-Opportunistic Contacts:接触不是预定的,而是意想不到地出现。 • Intermittent-Predicted Contacts:根据之前观察到的接触历史或其它信息预测出的接触时刻和接触时间长度。

  38. (8)分片和重组 • 设计DTN的分片/重组功能是为了充分利用接触的量和避免重传已转发的bundle,提高bundle传输的效率。 • 有两种形式的DTN分片/重组: • Proactive Fragmentation:DTN节点将一个ADU划分成多个较小的块,每个块作为一个独立的bundle传输,目的节点负责重组。 • Reactive Fragmentation:当接触终止时一个bundle只有部分被传输,正确接收的部分作为一个bundle片段继续转发,剩余内容在下一次接触时作为另一个bundle片段发送。

  39. (9)可靠性和保管传输 • bundle层提供的最基本服务是无确认、有优先级(但不保证)的单播消息投递。 • 提供两个增强投递可靠性的选项: • 端到端确认:应用可以使用这个选项实现自己的端到端可靠机制。 • 保管传输:一种粗粒度的重传机制,在传输bundle的过程中,可靠投递bundle的责任也在节点间传递。 • 一个bundle及其投递责任从一个节点移动到另一个节点称为一次保管传输。 • 沿途接收到这些bundle并同意承担可靠投递责任的节点称为保管员,保管员在必要时负责重传bundle。

  40. 保管传输(custody transfer) • DTN中的保管传输提供了一种较弱的消息投递可靠性增强机制: • 一般来说,保管传输主要依靠下层网络的可靠传输协议将一个bundle从一个节点可靠传递到下一个(组)节点。 • 当要求保管传输选项时,bundle层提供额外的粗粒度超时和重传机制,以及一个相伴的保管员-保管员确认信令机制。 • 当一个节点同意保管一个bundle时: • 向bundle主块中的Custodian EID发送保管传输接受信号; • 在转发bundle前,将Custodian EID更新为自己的某个EID。 • 实现保管传输的难点: • 节点是否同意保管传输的策略 • 当网络拥塞(内存不够)时,如何处理已经接收保管的信息及新收到的保管信息。

  41. (10)总结 • DTN是对Internet体系的一个根本改变,而不仅仅是修补。它采用了一系列不同于Internet的设计: • 消息代替分组 • 逐跳安全可靠传输代替端到端安全可靠传输 • 基于名称的路由代替基于地址的路由 • 部分连通网络图代替全连通网络图 • DTN可以很容易地架构在基于TCP/IP的因特网上,并保持兼容。 • 设计有效的DTN协议的主要挑战是: • 非常长的延迟(有时长达几天) • 频繁的中断 • 随机或可预测的通信机会

  42. 4. DTN路由技术 • DTN路由问题区别于常规路由问题的两个主要方面: • 常规路由问题假设网络拓扑已知,而DTN网络是时断时续的,不存在连通的网络拓扑; • 常规路由一般是选择最短(最少跳数)路径,而DTN路由是要最大化消息传输的可能性。 • DTN路由是在DTN层上执行的选路策略,并不涉及到下层网络。 • 由于DTN网络本身的特性,理论上传统的路由方法不能直接应用到DTN中。

  43. DTN路由需要考虑的问题 • 网络的连接特性: • 持续连接、周期性连接、随机连接 • 连接的容量: • 连接容量大小关系到两个节点之间可以交换的数据量多少; • 连接容量依赖于连接技术和连接的持续时间。 • 节点缓存及管理 • 节点处理能力 • 能量

  44. 单播路由策略的分类 • 目前的路由策略根据复制和知识两个属性分为两类: • 洪泛:依靠报文复制的传输,高可靠、高代价。 • 转发:依靠网络信息(知识)的传输,路由效率高、需要额外开销、有时不可行。 • 按照连接的确定性分为: • 确定性连接:可事先确定传输时间以达到最好的传输效果。 • 随机性连接:通过存储转发,每次都将报文向着目的方向传输一跳。根据对网络状态的了解程度,可以分为路由扩散和概率转发。

  45. 4.1 洪泛 • 洪泛策略把报文的多个拷贝传送到一些节点(中继点),中继点存储报文直到可以和目的通信。 • 直接传输: • 仅当源节点和目的节点之间存在直接接触时,才在链路上传输数据。 • 不需要任何网络信息,传输开销最小;但传输可能性也最小,传输延迟很大。 • 多拷贝传输: • 试图权衡资源消耗和传输可能性/传输延迟。

  46. (1)传染路由(Epidemic Routing)[3] • 假设: • 发送节点不知道接收节点的当前位置,也不知道到接收节点的最佳路径; • 由于移动,节点与节点会周期性地随机相遇。 • 基本思想: • 将消息分发给同一个连通子网内的节点(称为带菌者carrier); • 通过带菌者与其它连通子网中节点的接触,将消息传播到其它连通子网,最终到达接收节点。

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

  48. 传染路由的算法过程 • 算法过程: • 每个节点在缓冲区中存放自己产生的消息及为其它节点缓存的消息。 • 使用一个哈希表为这些消息做索引,以全局唯一的32位消息ID(源节点ID | 源节点生成的消息ID)作为键值。 • 每个节点保存一个比特矢量(称汇总矢量),指示本地哈希表中哪些入口已被设置(即哪些消息已存放在内存中)。 • 当两个节点相遇时,ID较小的节点启动一个会话。 • 会话期间,两个节点交换各自的汇总矢量,并向对方请求那些本地还没有的消息。 • 接收节点可以自主决定是否接收一个消息。

  49. 消息交换过程示例

  50. 算法优化 • 算法的总体目标: • 最大化消息投递率,最小化消息投递延迟和资源消耗。 • 性能调节参数: • 消息传递的最大跳数:跳数为1的消息只能被投递给最终目的地,本地缓存不够时容易被丢弃;较大的跳数有助于较快地分发消息,减小平均投递延迟,但会增大总的资源消耗。 • 节点缓存空间:用于交换消息,当缓存满时丢弃较老的消息。较大的缓存空间有助于提高消息投递率,但消耗较多的资源。

More Related