延迟容忍网络(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协议.直接把数据下载到 ...
随机推荐
- iOS之9.3真机适配-Could not find Developer Disk Image问题
Could not find Developer Disk Image 这是由于真机系统过高或者过低,Xcode中没有匹配的配置包文件,我们可以通过这个路径进入配置包的存放目录: /Applicati ...
- [Android]一个干净的架构(翻译)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5276587.html 一个干净的架构 原文:https://b ...
- 基本bash命令
bash手册 输入man命令可以访问存储在linux系统上的手册页面.  如果不记得命令名,可以使用关键字搜索手册.语法是man -k 关键字.  手册被分为了不同的内容区域.man工具提供的是命 ...
- UITextView回收或关闭键盘
iOS开发中,发现UITextView没有像UITextField中textFieldShouldReturn:这样的方法,那么要实现UITextView关闭键盘,就必须使用其他的方法,下面是可以使用 ...
- iOS UIPageViewController
UIPageViewController是App中常用的控制器.它提供了一种分页效果来显示其childController的View.用户可以通过手势像翻书一样切换页面.切换页面时看起来是连续的,但静 ...
- JAVA实现图片裁剪
/** * 裁剪图片 * @param src 源图片 * @param dest 裁剪后的图片 * @param x 裁剪范围的X坐标 * @param y 裁剪范围的Y坐标 * @param w ...
- sql优化阶段性总结以及反思
Sql优化思路阶段性心得: 这段时间的优化做了好几个案例,其实有很多的类似点,都是好几张大表的相互连接,然后执行长达好几个小时,甚至都跑不出来. 自己差不多的思路就是Parallel full tab ...
- Migrate Instance 操作详解 - 每天5分钟玩转 OpenStack(40)
Migrate 操作的作用是将 instance 从当前的计算节点迁移到其他节点上. Migrate 不要求源和目标节点必须共享存储,当然共享存储也是可以的. Migrate 前必须满足一个条件:计算 ...
- 3D坦克大战游戏iOS源码
3D坦克大战游戏源码,该游戏是基于xcode 4.3,ios sdk 5.1开发.在xcode4.3.3上完美无报错.兼容ios4.3-ios6.0 ,一款ios平台上难得的3D坦克大战游戏源码,有2 ...
- 常用算法——排序(三)
希尔排序法 希尔排序又称为缩小增量排序,也属于插入排序类的算法,是对直接插入排序的一种改进. 基本思想就是:将需要排序的序列划分为若干个较小的序列,对这些序列进行直接插入排序,通过这样的操作可使用需要 ...