命名数据网络概述
TCP/IP 存在问题:
- 效率低。管道是单源单路径的,容易造成拥塞,比如同一个视频,要从单个服务器发送无数次。
- 可扩展性差。不断打补丁,网络设计管理越来越复杂。IP地址也不够用了。
- 安全性弱。重视管道保护,但不能保证数据本身的可靠性。比如建立一个信任连接后,对方发的恶意代码也会照收无误。
信息中心网络ICN和命名数据网络NDN是一种未来的互联网网络架构。其主要设计原则为:
- 保留TCP/IP的沙漏模型,允许上下层不断革新。
- 考虑网络的安全性。
- 保留了端到端的原则,维持了应用的稳健性。
- 流量自调节,这点与TCP/IP不同,IP只负责数据的分发,对数据是否到达及传输过程遇到的问题没有反馈机制。
- 保留路由和转发平面的分离,保证了转发技术和路由技术可以并行发展。
- 保证网络架构的中立,用户的选择和竞争尽可能简单。
NDN保留了TCP/IP中的沙漏模型,但是利用内容块代替了IP层。
- 在网络的角度看,就是在网络中对数据命名代替对物理实体命名,用户交换信息与位置无关,采用发布—订阅策略。无需目的地址,数据可以来自任何节点。
- 数据包必须携带签名以保证安全性。
- 利用网络的缓存功能缓存经过的数据包,可以减少网络流量。
NDN的数据报文包括兴趣包和数据包两种。
NDN包括三种重要的数据结构来完成转发,分别是转发信息库(FIB),待定兴趣表(PIT)和内容缓存库(CS)
(1)转发信息库(forwarding information base,FIB):FIB保存了路由结点到达内容服务器的下一跳接口(NDN中用face指代,一个face代表路由器收发报文的一个接口)
(2)内容存储库(content store,CS):CS保存路由结点的缓存内容
(3)未决请求表(pending interest table,PIT):PIT记录未得到响应的Interest报文的名字信息及请求的face,以便Data报文沿途返回。
兴趣包的查询步骤是:
CS:是否已经有缓存了;
PIT:是否已经有其他人请求过了,那就不用再重复发请求了,只需记录一下,在包回来时给所有请求都分一份就行;
FIB:查询哪条路径能满足请求,把兴趣包转发下去。
数据包结构如下,查询步骤是:
PIT:若有该数据的请求,发给所有请求列表;若无则直接丢弃。
CS:留一份缓存后,继续转发
NDN需要解决的关键技术:命名机制、缓存机制、路由机制、转发机制、传输控制机制、移动性管理机制和数据安全机制等。