通信人家园

 找回密码
 注册

只需一步,快速开始

搜索
查看: 304|回复: 0

[通信技术与资料] NDN(Name Data Networking) 命名数据网络简介 [复制链接]

军衔等级:

  新兵

注册时间:
2020-12-8
发表于 2021-5-4 16:03:07 |显示全部楼层
# NDN(Name Data Networking) 命名数据网络简介
## 一、概述
NDN是更广泛的网络研究方向CCN( Content-Centric Networking)内容中心网络的实现实例之一。NDN研究了CCN所提出的从以主机为中心的网络架构(IP)到以数据为中心的网络架构(NDN)的革命性改变。 这看似只是概念上的简单改变其实却意味深长。下面我将从一下几个方面来介绍NDN网络:
- 介绍推动NDN新型网络架构的动力,也就是必要性和重要性
- 介绍NDN的组成和基本操作
- 简要介绍 NDN当前的研究、发展状态以及面临的研究挑战(2014年)
- 更多的关于NDN项目的加密方法,发布信息和年报都可以在NDN的[官网](named-data.net)找到

## 二、新的细腰

![](images\NDN_1.jpg)

今天网络的细腰式的架构主要是集中在通用网络层,也就是IP层。IP层实现了使全球互联互通的最小功能。这种窄腰之所以能够允许网络爆炸式的增长,主要是因为在网络层的上层(运输层)和下层(物理层)可以相对独立的进行创新设计。 IP层设计之初就是为了创建一个数据包只需要在通信端点被命名的通信网络。然而,随着电子商务,数字媒体,社交网络以及智能手机应用的持续发展,分布式的互联网络越来越成为主流,原因在于通过端到端的通信协议解决分布式问题是复杂且容易出错的。

NDN归纳了细腰的角色,数据包可以命名对象而不再仅仅是通信端点。更具体的说,NDN改变了网络服务的语义,即原本将数据包路由到给定的目的地址的过程转变为了通过数据的给定名称标识获得数据包。也就是转变为了订阅发布式的通信模式。

基于当前网络架构30年的发展经验所总结出的优势和劣势,NDN的设计是建立在安全首要性和网络流量自动控制(通过数据包和流量包间的流量平衡)的,还包括了随着网络的发展有利于用户选择和竞争的功能策略(多径路由、网内存储)。

## NDN架构

### 1.数据的名称
NDN的名称对于网络来说是透明的,也就是说网络不管数据是怎样命名的,网络都能够根据名称进行相应的转发。这使得每个应用都可以选择适合自己的命名框架,命名框架可以独立于网络发展。

NDN使用层次性的命名结构,例如:/ucla/videos/demo.mpg (类似统一资源定位标识符URL)。层次性使得应用可以显示出数据元素之间的关系和数据的组成。 层次性使得可以进行名称聚合

平面名称可以作为一种特殊情况来使用,在本地环境中可能很有用,但是层次性的命名在路由策略的优化和为数据提供必要的上下文时都是必不可少的。

为了检索动态生成的数据,消费者必须能够确定性的构造所需数据的名称,而无需事先看到名称或者数据。 也就是:1)一个确定的算法使得生产者和消费者可以共用一套命名规则 2)兴趣选择器能够联合最长前缀匹配算法,通过一次或者多次的迭代检索到所需的信息。

数据如果想要被全球检索到,就必须拥有全球独特的名字。 但是本地的网络中只需要本地路由器可以识别就可以了。

命名是NDN应用设计的最重要的部分,良好的命名数据能够支持诸如:内容分发、多播、移动性、延迟容忍网络等功能。

允许应用的开发者,设计自己的命名空间有许多优点:增加应用数据和使用网络映射关系的紧密性;减少对辅助信号的需求(保存记录以将应用程序配置映射到网络配置);扩展开放人员可用的抽象范围(使得开发更加的对人友好)。

NDN项目组开发并完善了命名原则和准则后,将其转换为命名约定,并在系统库中实现了它们,以简化将来的应用程序开发。

Fortunately, the opaqueness of names to thenetwork allows architecture development to proceed in par-allel with research into namespace structure and navigationin the context of application development.

幸运的是,名称对网络的不透明性使NDN体系结构开发可以与应用程序开发环境中对名称空间结构和导航的研究并行进行。

### 1.NDN网络中数据包格式
NDN网络中的通信是通过接受者(数据消费者)通过兴趣包和数据包的交换来驱动的。

![](images\NDN_2.jpg)

![](images\NDN_3.jpg)
两种类型的数据包都含有Name名称字段。 消费者将自己所需求的数据的名称放入兴趣包中并发送到网络中。路由器根据数据的名称将兴趣包转发到数据生产者处。 一旦兴趣包到达了存储了该数据的节点,节点则返回该数据包并携带数据内容、名称、绑定了兴趣包和数据包的生产者的密钥签名。值得一提的是数据包沿着兴趣包的路由路径原路返回到请求该数据的消费者。

### 2. NDN架构的组成部分
<div align=center>![](images\NDN_4.jpg)

<div align=left>

为了实现兴趣包和数据包的路由功能,每一个NDN路由器节点都需要维持三种数据结构:

- 未决兴趣表PIT(Pending  Interest  Table)
- 路由信息库FIB(Forwarding  Information Base)
- 内容存储库CS (Content  Store)
以及实现路由的路由协议,路由协议决定是否,何时、向何处转发兴趣包。

PIT:存储了路由器所发出的但没有得到满意回复的兴趣, 同时每一个PIT的登记表记录了数据在网络中传输的名称以及它们的入口端口和出口端口。

FIB:本身就是由基于名称前缀的路由协议填充形成的,每一种前缀都有多个输出端口。
路由策略会决定当上游的连接拥塞的时候以及兴趣包存在DoS攻击的时候丢弃该兴趣包。 根据FIB中记录的信息,采用最长前缀匹配来选择何时,向何处转发兴趣包。

CS :是路由器接收到的数据包的临时缓存。NDN的数据包是独立于空间存在的(它的真实性和它从何处转发而来不相关)。存储这样的数据包可以满足可能在不就之后到来的兴趣包。

### 3.路由过程
![](images\NDN_3.jpg)

1)转发兴趣包
- 当兴趣包到达一个NDN路由节点的时候,NDN路由节点首先检查自己的CS中是否存储了该数据,如果存储了该数据就向兴趣包的来源端口转发。
- 否则,就在PIT中查找是否存在相同的数据名称记录,如果存在就仅仅简单的记录该兴趣包的来源端口,不再转发该兴趣包。
- 如果没有找到相同的PIT记录,则依据FIB中存储的信息以及路由器所采用的路由策略转发兴趣包到数据生产者。
- 当一个路由器从下游节点接收到了多个相同的兴趣包的时候,它只转发第一个兴趣包。

2)接收数据包
- 当一个数据包到来的时候,路由节点首先到PIT表中查询匹配的记录,然后将该数据包转发到该记录中所保存的申请该数据包的下游端口。然后清除该记录,并把该数据包暂存在CS中。
- 数据包总是沿着兴趣包的路由路径原路返回到请求该数据的消费者。并且在没有丢包的情况下,每个链路上都会因为一个兴趣包产生一个数据包,从而提供流量均衡。
- 为了获得由多个数据包组成的更大的内容对象,兴趣包也提供了类似TCP ACKS所实现的功能:由数据的消费者控制的细粒度的反馈环路。

### 总结
数据包和兴趣包都不携带主机或者端口的地址,路由器仅根据兴趣包中的名称转发,仅根据兴趣包在每跃点所建立的PIT状态信息来转发数据包。 这种交换的对称性,产生了逐跳的控制环路(例如上图中的1->2->3->4->5->6(1)), 并且消除了数据转发过程中对源节点和目的节点任何地址信息的需求。



## 问题:
1. 闭环的转发路径,如果中间突然有节点断开怎么办?



您需要登录后才可以回帖 登录 | 注册 |

Archiver|手机版|C114 ( 沪ICP备12002292号 )|联系我们 |网站地图  

GMT+8, 2021-5-16 19:51 , Processed in 0.078126 second(s), 16 queries , Gzip On.

Copyright © 1999-2020 C114 All Rights Reserved

Discuz Licensed

回顶部