思维之海

——在云端,寻找我的星匙。

阅《Named Data Networking》

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

host-centric network architecture (IP) ---> a data-centric network architecture (NDN)

本篇论文源于高等计算机网络课程的阅读任务,领域为“网络体系结构 ”。

References

论文:Name Data Networking

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已经形成了一个相应的开发生态圈。

未来的发展方向虽然不确定,但是作为一个大型的软件工程,应该会有其独特的价值。