NDN(Named Data Networking)是用来取代当前TCP/IP架构的新的互联网架构,在2010年被提出。
NDN 的网络架构如下右图,它继承了 IP 架构的沙漏型瘦腰结构:
TCP/IP互联网只提供一个通讯管道,只负责维护管道,不关心传输的内容。内容的管理和获取是有应用和服务管理的。
存在哪些问题呢:
当前网络的功能(建立管道)和目的(获取数据)不匹配。NDN网络企图用数据内容取代管道的核心地位。
核心思想是:
优势有:
IP数据包:核心字段是地址。
NDN数据包:分为兴趣包和数据包两种类型,不包含地址,核心是名字。
名字由程序应用生产,对网络层透明。它包括:
下面是一个NDN数据包命名的例子:
服务端注册名字。数据发布者需要注册一个名字前缀(name prefix),比如YouTube注册了一个YouTube/……
路由器根据名字建表。路由器能计算出到达每个名字前缀的路径,建立起路由表。
用户端拿名字请求数据。数据消费者发送兴趣包来请求数据,路由器根据名字和路由表匹配转发。
每个节点都可以缓存数据,可以被反复请求使用。
用户的请求的数据包是没有收货地址的,那快递回来后给谁呢?是这么解决的:每个路由器都维护一个兴趣包缓存表(PIT, Pending Interest Table),就像是淘宝订单,谁请求过什么数据都记录在案!路由器能根据兴趣包缓存表,将数据反向传输给请求者。
先看反面典型,IP数据包路由转发。缺点有:
再看NDN兴趣包和数据包的转发。优势是:
下面是兴趣包和数据包各自的路由机制。
兴趣包结构如下,查询步骤是:
CS:是否已经有缓存了;
PIT:是否已经有其他人请求过了,那就不用再重复发请求了,只需记录一下,在包回来时给所有请求都分一份就行;
FIB:查询哪条路径能满足请求,把兴趣包转发下去。
数据包结构如下,查询步骤是:
PIT:若有该数据的请求,发给所有请求列表;若无则直接丢弃。
CS:留一份缓存后,继续转发。
NDN可能取代IP吗?
新型网络体系提出多年,为啥现在仍是老一套呢?不禁想到了键盘布局的例子,当初键盘布局被特意打乱来减低机器打字的效率,防止太快机器出故障,结果这种“乱序”布局竟然流传至今,原因就是人们习惯了。
那么会不会因为习惯的力量,而同样使人们放弃更先进的NDN,继续使用IP呢?
这倒不会。因为网络结构作为底层实现,是不影响人们正常使用的。不论用NDN还是IP,用户使用习惯丝毫不受影响。NDN由于更灵活、高效、安全,能带来更好的用户体验,还是很有希望取得革命性发展的,就像汽车取代马车一样。
现在的IP网络实在太老旧,在飞速发展的时代面前显得越来越力不从心。相信不久的将来,新一代网络体系必将崭露头角。
文章浏览阅读1.1k次。代理: 个人理解, 假如存在 A B两个对象需求: 当B做出动作的时候, 需要A来响应,并做出动作实现思路:B 中 创建的函数 通过在 A中创建了B B中调用函数, A接收而改变代码如下:A 对象import UIKitclass ViewController: UIViewController,TestDelegate { func returuColore(in color: UIColor) { // 改变自..._swift5.0 代理
文章浏览阅读598次。本文作者:i春秋作家 大哥哥团长 说到Web安全必须要了解Web方面的一些基础知识做为铺垫的去的去学习这门技术,因为不是人人都可以直接先渗透在进行编程等方面学习的、所以为了更好的入门的Web安全必须要先掌握一些基础知识,相比对逆向方面的入门Web安全真的不难,逆向要是想了解一个简单的什么叫jmp esp溢出需要的基础知识不是一点点,如果是计算机专业的还好,不然通过自己去学习_这套php的教程包含了html/css/js和php+mysql
文章浏览阅读1.9k次。实验三用凯塞窗设计线性相位带通FIR滤波器中国地质大学(北京)实 验 报 告课程名称:数字信号处理 实验名称:用凯塞窗设计线性相位带通FIR滤波器姓 名: 张淑坤学 号: 1004133105班 级导教师:陈玉东评 分:实验时间:2015-12-31用凯塞窗设计线性相位带通FIR滤波器实验目的:基于MATLAB环境,熟悉利用窗函数法设计线性相位FIR滤..._用凯塞窗法设计一线性相位高通滤波器·
文章浏览阅读1.8k次。Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling 和同事们共同研发,并在1995年正式推出。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常_sese.con
文章浏览阅读929次。gstreamer app 静态编译后运行时出现的问题_neither a subproject directory nor a gstreamer.wrap file was found
文章浏览阅读40次。笔者花了很长时间才装完,主要是cuda安装和opencv安装比较费劲,cuda找不到32位的安装包只好重装64位的ubuntu系统,opencv 也是尝试了很久才解决,这里建议用2.4.9版本。其实如果没用GPU的话不需要安装cuda,不过为了后续兼容性的考虑,系统强烈建议64位的。下面是 对自己的安装过程记录备忘,有些主要参考网上的文章,所以有些过程就直接用了原来文章中的内容。caffe在git...
文章浏览阅读2.6k次。动画制作通过编译器可以对某个控件进行动画制作, 实现倾斜,缩放,移动等动画的实现,甚至可实现帧动画相关。大概步骤如下:添加 + 号按钮添加动画名,设定名称,起始帧,结束帧。设定成功后, 在-- ALL -- 中选择自己设定的动画相关选定动画后,千万注意勾选上开始记录动画,添加帧使用 + 号按钮可添加多个不同的动画, 可通过动画列表进行管理这样做的优点:通过动画名播放指定的动画比通过帧数播放更容易让人理解。另外注意: 设定多个动画名的情况下,结束帧数不要与下个动画名的起始帧数_cocos studio
文章浏览阅读5.9k次。装了.Net4.8,接手都程序目标框架是4.0,低版本的都没法装,看了其他很多骚操作都没用。官网下载vs2019安装程序,选择单个组件勾选目标框架完美解决。_已存在较高版本无法安装net
文章浏览阅读3.3k次。 当我们加载Html时候,会在我们data/应用package下生成database与cache两个文件夹:我们请求的Url记录是保存在webviewCache.db里,而url的内容是保存在webviewCache文件夹下.WebView中存在着两种缓存:网页数据缓存(存储打开过的页面及资源)、H5缓存(即AppCache)。一、网页缓存1、缓存构成/data/data/packag..._android webview几种cachemode的区别
文章浏览阅读1.8k次,点赞40次,收藏43次。因此,在处理诸如 1、2、3、4 和 5 之类的数字数组时,有必要将它们转换为字节表示形式,然后再将它们存储在二进制文件中。在 Python 中,使用 for 语句是将数据写入文件的一种强大且简洁的方法,尤其是在处理列表或字符串等可迭代对象时。但是,使用 open() 函数中的 'a' 模式,我们可以将新数据附加到文件末尾,而不影响现有内容。这里需要注意的一件事是,您是要打开现有文件还是要打开不存在的文件(通过创建文件)取决于您的访问模式。函数打开该文件时,该文件不存在。我们创建了它,然后打开了它。_python将内容写入文件
文章浏览阅读247次。Linux磁盘与文件系统(二)2、文件系统的简单操作2.1、磁盘与目录的容量现在我们知道磁盘的整体数据是在superblock区块中,但是每个个别文件的容量则在 inode 当中记录的。那如何在文字接口底下显示出这些数据呢?df:列出文件系统的整体磁盘使用量;du:评估文件系统的磁盘使用量(常用于推估目录所占容量)。2.1.1、df[root@server ~]# df [-ahikHTm] [目录或文件名]选项与参数:-a:列出所有的文件系统,包括系统特有的/proc等文件系统-k_verify and correct link counts
文章浏览阅读304次。点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自 |知乎地址 |https://zhuanlan.zhihu.com/p/52057462..._shared layers 与specific layers机器学习