NDN全栈: ndnsim (一):背景

**

介绍

**
ndnSIM组件基于NS-3的命名数据网络(NDN)模拟器的新版本经历了大量的重构和重写。 新版本的关键新功能:

  • 数据包格式更改为NDN数据包格式
  • ndnSIM使用来自ndn-cxx库(带有eXperimental eXtensions的NDN C ++库)的基本NDN原语的实现
  • 所有NDN转发和管理都是使用命名数据网络转发守护程序(NFD)的源代码直接实现的。 可以模拟一些针对ndn-cxx库编写的真实应用程序

在这里插入图片描述

与ndn-cxx和NFD的这种集成确保了模拟是最逼真的,并且可以在真实环境中再现,几乎不需要对源代码进行任何更改。 除此之外,在ndnSIM内部进行NDN转发(例如,自定义转发策略)的任何实验都可以直接在真实的NFD实现中使用。

具体而言,模拟器直接使用待定兴趣表(PIT)转发信息库(FIB)内容存储数据结构的NFD实现。 除此之外,ndnSIM还允许使用ndnSIM特定的内容存储库以及从先前版本的ndnSIM移植的缓存替换策略进行实验(作者注:例如old-content-store-LRU 策略)。

ndnSIM作为新的网络层协议模型实现,可以在任何可用的链路层协议模型(点对点,CSMA,无线等)之上运行。 此外,模拟器提供了大量的接口和帮助程序集,以执行每个组件的详细跟踪行为以及NDN流量。

**

对具体代码的简单介绍

**

所有与NDN相关的代码都在ns-3 / src / ndnSIM中

文件夹 描述
model/ NDN基础的实现:L3Protocol,faces(Face,NetDeviceTransport,AppLinkService)等。
NFD/ NDN转发守护进程(NFD)源代码的子模块,经过少量修改,使其与模拟器兼容
ndn-cxx/ ndn-cxx库源代码的子模块,几乎没有修改,使其与模拟器兼容
apps/ 可以安装在节点上的应用程序(在NS-3意义上)。 现在我们有一个生产者(Producer)和一组消费者应用程序(ConsumerCbrConsumerWindowConsumerBatchesConsumerZipfMandelbrot)。 有关详细信息,请参阅doxygen文档或源代码
utils/ 辅助类,包括通用数据结构,拓扑读取器和跟踪器的实现
helper/ 一些有用的帮手
examples/ 包含几个示例场景

**

日志

**
几乎ndnSIM中的每个组件都会导出日志记录界面,因此在调试编译中可以跟踪许多内部细节。 例如,Face和Consumer的日志记录显示了Face和Consumer类中发生的一切:NS_LOG=ndn.Face:ndn.Consumer ./waf --run=ndn-simple
请参阅源代码和NS-3文档以了解可用的日志记录接口以及有关如何启用一个或多个日志记录接口的详细信息。

猜你喜欢

转载自blog.csdn.net/siguage/article/details/82930332