延迟容忍网络(Delay-tolerant networking)
版权声明:本文为博主原创文章,对文章内容有任何意见或建议,欢迎与作者单独交流,作者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)的更多相关文章
- 分布式CAP理论介绍:一致性(Consistency),可用性(Availability),容忍网络分区(Partition tolerance)
在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点: 一致性(Consisten ...
- 信息中心网络 ,Information-centric networking, ICN
- JDK1.6新特性,网络增强(Networking features and enhancements)
参考: http://docs.oracle.com/javase/6/docs/technotes/guides/net/enhancements-6.0.html http://blog.csdn ...
- 极客时间-左耳听风-程序员攻略-Linux系统、内存和网络
程序员练级攻略:Linux系统.内存和网络 Linux 系统相关 Red Hat Enterprise Linux 文档 . Linux Insides ,GitHub 上的一个开源电子书,其中讲述了 ...
- High Performance Networking in Google Chrome
小结: 1. 小文件存储于一个文件中: 在内部,磁盘缓存(disk cache)实现了它自己的一组数据结构, 它们被存储在一个单独的缓存目录里.其中有索引文件(在浏览器启动时加载到内存中),数据文件( ...
- High Performance Networking in Google Chrome 进程间通讯(IPC) 多进程资源加载
小结: 1. 小文件存储于一个文件中: 在内部,磁盘缓存(disk cache)实现了它自己的一组数据结构, 它们被存储在一个单独的缓存目录里.其中有索引文件(在浏览器启动时加载到内存中),数据文件( ...
- 为 UWP 应用提供的 .NET 网络 API
[编者按]本文作者是 Windows networking 团队项目经理 Sidharth Nabar.在微软 Build 2015 大会上,.NET Core 5 作为开发 UWP(Universa ...
- High Performance Browser Networking - TCP UDP TLS
延迟 定义和标准延迟 延迟简单地说,它是一种转移或信息包从起点到终点,所花费的时间. 延迟=发送延迟+传播延迟+处理延迟+排队延迟: Propagation delay 传播时延 传播时延这个概念.是 ...
- iOS之网络请求NSURLSession剖析
2013年的WWDC大会上,苹果推出了NSURLSession,对Foundation URL加载系统进行了彻底的重构,提供了更丰富的API来处理网络请求,如:支持http2.0协议.直接把数据下载到 ...
随机推荐
- GIS公交查询-flex/java
开发语言是flex.java,开发平台是myeclise.eclise,开发接口是arcgis api for flex,提供以下的功能: 1.站名-站名查询: 2.站点查询: 3.路线查询: 备注: ...
- Atitit.去除水印的方案
Atitit.去除水印的方案 1.1. 查找水印的位置 Kegwa imgd posit zo ok le .. Auto find d zo troub ...manu easy 1.2. 还原去除 ...
- Unity V3 初步使用 —— 为我的.NET项目从简单三层架构转到IOC做准备
[声明]由于本人表达能力有限,为避免不必要的误人子弟,本文将不会涉及IOC与DI,仅仅描述新版本Unity 3的使用(非Unity 3D,如果您想看的是Unity 3D请立即离开,否则莫怪此处“谋财害 ...
- 生成的API分析文件太大。我们无法在交付前验证您的API使用信息。这只是通知信息。
这次使用了APICloud平台来开发移动APP, 发布的时候在api控制台云编译成ipa后,这次使用apple提供的Application Loader工具提交apa文件到iTunes上去,提交结束的 ...
- 二进制配置文件为什么比json等配置文件效率高
二进制配置文件为什么比json等配置文件高效 项目中用spine做动画,spine可以导出json和二进制的动画配置文件,蛋疼的是spine官方竟然没有提供c的二进制配置解析代码,更没有提供它二进制文 ...
- 设置 TabBarItem 选中时的图片及文字颜色
TabBarController 是在 ios 开发过程中使用较为频繁的一个 Controller,但是在使用过程中经常会遇到一些问题,例如本文所要解决的,如何修改 TabBar 选中时文字及图片的颜 ...
- 将UIview描画成虚线等.
- (UIView *)lineView{ if (!_lineView) { _lineView = [UIView new]; // _lineView.backgroundColor = UIC ...
- MVC3.0----整理之一
1.ViewBag对象是动态解析对象 @{ ViewBag.Title = "Insert"; } 不仅可以把单个的对象绑定到 ViewBag上,还可以直接绑定List ViewB ...
- Windows on Device 项目实践 1 - PWM调光灯制作
在前一篇文章<Wintel物联网平台-Windows IoT新手入门指南>中,我们讲解了Windows on Device硬件准备和软件开发环境的搭建,以及Hello Blinky项目的演 ...
- WebForm(二)——控件和数据库连接方式
一.简单控件 1.Label(作用:显示文字) Web中: <asp:Label ID="Label1" runat="server" Text=&quo ...