2012-03-24 10:01 3702人阅读 评论(0) 收藏 举报
分类:
计算机网络(12)

版权声明:本文为博主原创文章,对文章内容有任何意见或建议,欢迎与作者单独交流,作者QQ(微信):245924426。

(1) 问题的提出

TCP和其它很多传输协议基于这样的假设:发送者和接收者通过某网络路径长期连接在一起,否则协议会失效,数据也不能被传输。但并非每一个网络都能保证有端到端的路径,这些网络之间的连接是间断性的。要在这类网络中传输数据是一件很棘手,同时极具挑战性的事情。

(2) DTN的定义

在这些网络中,当有工作链路的时候,交换数据的工作仍然能够通过将它们存储在结点并在之后转发来实现。这个技术叫做消息交换。最终,数据会被延迟送到目的地。其结构基于此方法的网络叫做DTN(Delay-Tolerant Network,或Disruption-Tolerant Network,中断容忍网络)。

(3) 有关DTN的工作

对于DTN的工作开始于2002年,这一年IETF成立了一个关于DTN的研究组。DTN的灵感产生于在空间中发送包的想法。空间网络必须应对间歇性的通信和很长的延迟。Kevin Fall发现这些用于空间网络的想法也能够被应用于间歇性连接很常见的地球网络中(Fall,2003)。这个模型对通信过程中存储和延迟时有发生的因特网作了一个有用的总结。数据传输就像在邮政系统中传输或电子邮件一样,而非像在路由器中的包交换一样。

       2002年以来,DTN的结构得到了更新,DTN模型的应用也得到了发展。Laoutaris等(2009)研究了该模型,发现它能够以较小的代价提供充足的能力,同时,DTN模型提供的能力是传统端到端模型提供的能力的两倍

(4) DTN的结构

对于缺乏端到端连接的情况,DTN能够正常运转,因为它有一个基于消息交换的结构,如图1所示。它也可用于容忍可靠性低和延迟大的链路。这个结构在RFC 4838中有详细说明。

图1 延迟容忍网络结构

在DTN术语中,一个消息被称为是一个bundle。DTN结点包含有存储器(像磁盘或闪存一样典型的连续存储器)。它们存储这些bundle,直到链路可得,然后转发这些bundle。这些链路间歇性地工作。图1展示了五个当前没有工作的间歇性链路,以及两个正在工作的链路。一个工作链路叫做一个contact。图1也显示了存储在两个DTN结点处的bundle,它们正等着被contact发送出去。使用这种方法,这些bundle被从源站到目的站的contact延迟了。

(5) 研究展望

在学术界,DTN的许多方面正在研究中。正如上面提到的,路由的好策略取决于contact的特性。在网络中存储数据也引发了其它问题。现在,拥塞控制也必须考虑在结点处的存储器,它们被当成另外一种能够被充分利用的资源。端到端通信的缺乏也带来了安全问题。在一个DTN结点接手一个bundle之前,它可能想知道发送者是否有权使用网络,并且这个bundle是否是目的端所需要的。这三个问题的解决之道取决于DTN的类型,因为空间网络与传感网络不同。

参考资料

Andrew S. Tanenbaum, ComputerNetworks(fifth edition), 机械工业出版社。

延迟容忍网络(Delay-tolerant networking)的更多相关文章

  1. 分布式CAP理论介绍:一致性(Consistency),可用性(Availability),容忍网络分区(Partition tolerance)

    在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点: 一致性(Consisten ...

  2. 信息中心网络 ,Information-centric networking, ICN

  3. JDK1.6新特性,网络增强(Networking features and enhancements)

    参考: http://docs.oracle.com/javase/6/docs/technotes/guides/net/enhancements-6.0.html http://blog.csdn ...

  4. 极客时间-左耳听风-程序员攻略-Linux系统、内存和网络

    程序员练级攻略:Linux系统.内存和网络 Linux 系统相关 Red Hat Enterprise Linux 文档 . Linux Insides ,GitHub 上的一个开源电子书,其中讲述了 ...

  5. High Performance Networking in Google Chrome

    小结: 1. 小文件存储于一个文件中: 在内部,磁盘缓存(disk cache)实现了它自己的一组数据结构, 它们被存储在一个单独的缓存目录里.其中有索引文件(在浏览器启动时加载到内存中),数据文件( ...

  6. High Performance Networking in Google Chrome 进程间通讯(IPC) 多进程资源加载

    小结: 1. 小文件存储于一个文件中: 在内部,磁盘缓存(disk cache)实现了它自己的一组数据结构, 它们被存储在一个单独的缓存目录里.其中有索引文件(在浏览器启动时加载到内存中),数据文件( ...

  7. 为 UWP 应用提供的 .NET 网络 API

    [编者按]本文作者是 Windows networking 团队项目经理 Sidharth Nabar.在微软 Build 2015 大会上,.NET Core 5 作为开发 UWP(Universa ...

  8. High Performance Browser Networking - TCP UDP TLS

    延迟 定义和标准延迟 延迟简单地说,它是一种转移或信息包从起点到终点,所花费的时间. 延迟=发送延迟+传播延迟+处理延迟+排队延迟: Propagation delay 传播时延 传播时延这个概念.是 ...

  9. iOS之网络请求NSURLSession剖析

    2013年的WWDC大会上,苹果推出了NSURLSession,对Foundation URL加载系统进行了彻底的重构,提供了更丰富的API来处理网络请求,如:支持http2.0协议.直接把数据下载到 ...

随机推荐

  1. arcgis for flex展示GIS基本功能

    1.地图框选搜索: 这是空间查询,在地图上框选一定的范围,然后搜索出在这个范围之内的所有信息,搜索到的详细信息在列表框显示出来 2.属性查询: 3.数据库展示: 4.绘制图形: 地图上绘制各种不同形状 ...

  2. SharePoint 2013 页面访问,Url中间多一段"_layouts/15/start.aspx#"

    问题描述: 我想访问如下页面 http://Host/_layouts/15/ManageFeatures.aspx 点击以后页面地址没有错,但是中间多了一段“_layouts/15/start.as ...

  3. JavaScript - 基于CSS3动画的实现

    在痛苦的IE8时代,所有的动画都只能基于自己计算相关动画属性,开定时器setTimeout/setInterval轮询动画任务. 而肩负重任的HTML5,早已注意到了日益增强的动画,随着HTML5的降 ...

  4. IOS 绘制圆饼图 简单实现的代码有注释

    今天为大家带来IOS 绘图中圆饼的实现 .h文件 #import <UIKit/UIKit.h> @interface ZXCircle : UIView @end .m文件 #impor ...

  5. IOS开发基础知识--碎片40

    1:Masonry快速查看报错小技巧 self.statusLabel = [UILabel new]; [self.contentView addSubview:self.statusLabel]; ...

  6. SQL SERVER 2000 迁移后SQL SERVER代理服务启动错误分析

    公司有一个老系统,这个系统所用的数据库是SQL SERVER 2000,它所在的Dell服务器已经运行超过10年了,早已经过了保修服务期,最近几乎每周会出现一次故障,加之5月份另外一台服务器坏了两个硬 ...

  7. ClassNotFoundException: com.fasterxml.jackson.databind.ObjectMapper的解决办法

    如下图: 如果出现了这样的错误,最大的可能是:你没有在 WEB-INF/lib 目录下放入相关的jar包(jackson-core/annotations/databind.jar) 如果你在WEB- ...

  8. localhost与127.0.0.1的区别

    localhost与127.0.0.1的区别是什么 定义 localhost也叫local ,正确的解释是:本地服务 127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器) 不同 ...

  9. 编译安装zabbix 3.0及分开部署配置详解

    实验系统:CentOS 6.6_x86_64 实验前提:提前准备好编译环境,防火墙和selinux都关闭 实验说明:本实验共有4台主机,IP及角色分配如拓扑 下载地址:试验中用到mariadb软件的下 ...

  10. [django]l利用xlrd实现xls文件导入数据

    代码: #coding:utf-8 import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "www.sett ...