内容来源于:
ndnSIM 2.0: A new version of the NDN simulator for NS-3 Spyridon Mastorakis, Alexander Afanasyev, Ilya Moiseenko and Lixia Zhang University of California, Los Angeles {mastorakis, afanasev, iliamo, lixia}@cs.ucla.edu
仅选取了比较重要的部分。
1. INTRODUCTION
NDN网络立志于成为TCP/IP协议栈的继承者,因此我们需要对NDN的各方面设计进行评估。在现有的网络基础设施上测试NDN是不可能的,因此ndnSIM应运而生。ndnSIM基于NS-3 仿真框架,为NDN研究社区提供了通用的、用户友好的开源方针平台。自2012年6月,ndnSIM发布第一个公开版本以来。ndnSIM已经受到全球研究者欢迎。
当前使用的ndnSIM新版本,具有以下主要特点:
·ndn-cxx library(带有实验扩展的C++ NDN库, NDN C++ library with eXperimental eXtensions)
·new modular NDN Forwarding Daemon(新的模块化NDN转发守护进程 ,NFD)
ndn-cxx library实现了NDN的主要基本功能,并可以被用来实现多种应用。这个库是一个很成熟的项目,我们可以直接用它在实验中开发真实的应用。NFD是一个根据NDN协议实现并随之改进的转发器。NFD的主要设计目标是支持NDN实验,并强调了模块化、可扩展的设计以支持我们对新的协议设计中的特性,算法以及应用的实验。NDF的主要基本功能是转发兴趣包和数据包。为了实现这些功能,NFD将底层网络传输机制抽象到 NDN的面(Faces)上,并且保留了如内容存储(Content Store, CS), 待定兴趣表(Pending Interest Table, PIT),以及转发信息库(Forwarding Information Base)等基础数据结构,并且实现了处理包的功能逻辑。另外,除了基础的包转发功能,NFD还支持多重转发策略,以及一个用于配置,控制以及监控NFD的管理接口。
除上述新功能之外,ndnSIM发布此新版本的目的还有加强对于在真实实验中用于虚拟器的代码,以及根据真实实验在虚拟环境下得到的代码的利用。这方面,ndnSIM 2.0提供了更好的用户体验以及更逼真的模拟行为。换句话说,ndnSIM2.0与ndnSIM相比有以下优点:
·所有的NDN转发和管理都直接使用NFD的源代码实现
·ndnSIM直接使用了ndn-cxx library的实现
·过去的包格式改变成最新的NDN包格式
这个版本的模拟器,与先前版的模拟器一样,使用了不同的C++类对NDN的每一个实体建模:应用和网络设备面,NFD的转发兴趣表,待定兴趣表,以及内容存储等等。这些模块化的结构允许我们改变或者替换任何组件而不产生或者产生很小的影响。另外新版本提供了更多的接口和辅助来帮你对每一个组件进行细致的追查,以及更多的通信流。