延迟容忍网络(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协议.直接把数据下载到 ...
随机推荐
- 移动端web开发总结
前一个星期实战完一个PC端的基于HTML+CSS的项目,这几天则接触了移动端的开发,同样也是在HTML+CSS的基础上完成.虽然第一次接触移动端的开发,但在开发过程中,我也是按照PC端的开发步骤来进行 ...
- Android 6.0 权限管理最佳实践
博客: Android 6.0 运行时权限管理最佳实践 github: https://github.com/yanzhenjie/AndPermission
- android中的回调请求的个人理解
Fragment类提供了管理"选项菜单"的回调函数onCreateOptionMenu(Menu,MenuInflater),调用它可以--创建"选项菜单". ...
- Linux文件和目录权限详细讲解
转载请标明出处: http://www.cnblogs.com/why168888/p/5965180.html 本文出自:[Edwin博客园] Linux文件和目录权限解读 如何设置Linxu文件和 ...
- [SSIS] 在脚本里面使用数据库连接字符串进行查询等处理, 入坑
入坑.!!!!! SSIS 中dts包 设置的 ADO.Net连接, 在传入脚本的时候, 我要使用 数据库连接,进行数据的删除操作. 于是我使用了 了如下的 代码 使用的是windows 身份验证, ...
- C#委托的介绍(delegate、Action、Func、predicate) --转载
来源:http://www.cnblogs.com/akwwl/p/3232679.html 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递.事件是一种特殊的委托. 1 ...
- Hive 分组问题
group by 中出现的字段不能再select 后面单独显示,必须配合函数使用 上面中的 ' group by id 总结: Hive不允许直接访问非group by字段: 对于非group by字 ...
- ZooKeeper:Quick Start
下载.安装与配置 下载地址 安装 配置 ZooKeeper bin目录下脚本说明 Server 启动.停止 客户端操作 使用简易客户端访问 使用Java客户端访问 使用开源客户端ZkClient访问 ...
- 今天发现一些很有意思的ubuntu命令
跑火车的sl/LS 终端数字雨cmatrix 可能是名言警句也可能是逗你玩的笑话的fortune/fortune-zh 一只会说话的牛 一只会吟诗的牛 上真牛喽! 炫酷 炫酷到这里了!!!
- Node Pm2 配置
系统环境:Centos7 第一步安装NodeJS 建议采用稳定编译过的版本,source code稍麻烦,编译过的直接可用,安装超级简单 下载完成后安装成功 node -v 显示版本号 npm -v ...