Named Data Networking(NDN)是美国国家科学基金资助的五个“未来网络架构项目”之一。NDN项目可以追溯到2006年的Content-Cenric Networking(CCN)项目。NDN项目的主要目标在于:

本篇论文源于高等计算机网络课程的阅读任务,领域为“网络体系结构 ”。
References
Intro
当下的计算机网络架构是一种沙漏式的结构。它非常依赖于瓶颈层——一个统一的网络层(例:IP),这一层为全球互联提供了最小的完备功能集。
有了这样一层隔离之后,上层的抽象和下层的偏硬件的设计可以互相独立发展,从而使得互联网高速增长。
然而IP层的最初的设计初衷是提供了通信网络(communication network),它主要提供的是端到端的数据包传输服务。
但现在基于电子商务、数字媒体、社交网络、手机应用的新互联网则更倾向于一种分布式网络(distribution network),需要更强的大规模分发能力,而不仅仅局限于双方的信息交互。分布式网络可以高效地解决分布式应用问题,而不需要使用端到端的通信协议来额外增加复杂度和错误的可能。
NDN将网络服务的语义从“给定目的地址端到端地发送某个数据包”,变为了“根据给定的命名获取数据”。在NDN中,一个命名(name)可以指代任何东西,an endpoint, a data chunk in a movie or a book, a command to turn on some lights, etc.
这种观念性的改变使得NDN不仅可以解决端到端的通信,还能解决内容分发和网络控制方面的问题。除此之外,NDN还原生支持:
- security primitives (via signatures on all named data)
- self-regulation of network traffic (via flow balance between Interest and Data packets)
Plus,NDN实际是一个更广义的网络研究项目的一部分——information-centric networking (ICN)。
NDN架构
一个典型的传输过程描述如下:
- consumer确定需求的资源的name
- 将其包装成Interest packet,然后送至网络中
- 路由根据name将packet转发给对应的数据生产商
- data producer节点返回一个data packet(包含name和对应的content)
- 并用其私钥对该packet进行数字签名
- 路由逆向转发data packet
- 送至对应的consumer

NDN中的路由节点:
- a Pending Interest Table (PIT)
- a Forwarding Information Base (FIB)
- a Content Store (CS)
- a Forwarding Strategy module

Names
Naming data enables support for functionality such as content distribution, multicast, mobility, and delay-tolerant networking.
NDN支持层次化的命名体系,类似于URL。
- a video produced by UCLA may have the name
/ucla/videos/demo.mpg
为了让consumer可以在没有具体数据之前可以决定性地推测出数据的命名,网络必须支持一个决定性的命名系统。这可以有两种方式实现:
- 一个确定的命名算法
- 一种层次化的longest prefix matching的Interest selectors系统
- 在NDN中实际使用这种方式
一些关于NDN的细节讨论这里省略不谈。
总结和展望
在可扩展的信任管理、名机制上,ICN架构还有很多值得探讨的余地。NDN就是一种对ICN系统的尝试。
但是NDN中由于需要使用密码学技术,一个高效的数字签名、验证、分发系统就很必要了。这也要求一个robust and usable trust management。
NDN的命名空间的设计和管理仍然是一个巨大的挑战。
目前还有很多关于NDN的研究工作正在进行中,NDN已经形成了一个相应的开发生态圈。
未来的发展方向虽然不确定,但是作为一个大型的软件工程,应该会有其独特的价值。