ndnSIM各模块介绍

本文详细介绍了ndnSIM的核心模块,包括ndn::L3Protocol的网络层管理,Face抽象及其多种实现,内容存储CS的缓存策略,PIT的转发状态维护,FIB的前缀匹配转发,以及转发策略如Flooding、SmartFlooding和BestRoute。此外,还讨论了应用程序接口ndn::AppFace和示例应用如ConsumerCbr和Producer。
摘要由CSDN通过智能技术生成

ndnSIM各个模块之间的关系
ndnSIM各个模块之间的关系


  • 一、核心NDN协议模块——ndn::L3Protocol

ndn::L3Protocol在ndnSIM架构中属于核心的模块,其在ndnSIM中所处的位置,相当于NS-3框架中的Ipv4L3Protocol和Ipv6L3Protocol一层,也相当于当前网络架构中的IPv4和IPv6一层。ndn::L3Protocol模块聚合了Face、NFD等组件,管理着CS,PIT,FIB这三个数据结构以及转发策略的运行,处理Interest分组和Data分组的接收和转发,从而管理着整个NDN网络。
L3Protocol模块定义了如下操作,管理着NDN网络的运行:
(1)AddFace/RemoveFace:为当前NDN协议下的网络注册一个新的接口或删除现有的接口;
(2)GetForwardingStrategy/SetForwardingStrategy:获取当前策略或注册一个新的转发策略给NDN协议栈使用;
(3)提供网络层统计数据收集接口,这些接口包括Interest分组(InInterests,DropInterests),Data分组(OutData,InData,DropData),以及可选的Interest NACK(OutNacks,InNacks,DropNacks),以达到测量的目的;
(4)对可选功能进行配置(对NACK的支持)。

  • 二、Face抽象

为了实现灵活和可扩展的目标,ndnSIM的设计是独立于抽象的底层传输,并通过抽象出的中间层进行层间的信息交互。这意味着所有在核心协议模块(ndn::L3Protocol),网络模块,应用模块之间的通信,都通过Face抽象模块(ndn::Face)来完成。对于Face抽象模块,有很多种实现的形式,比如链路层Face(ndn::NetDeviceFace),用来处理位于链路层上的节点间直接通信,网络层Face(ndn::Ipv4Face 和 ndn ::Ipv6Face)和传输层Face(ndn::TcpFace 和 ndn::UdpFace)用来处理上层的节点间通信,应用层Face(ndn::AppFace)处理节点内通信。
接口(Face)抽象中定义了如下API:
(1)Sendlmpl:将数据包从NDN进程堆栈应用发送给底层(发送给网络或应用程序)
(2)RegisterProtocolHandler:使得分组转发能够从底层网络或底层应用到NDN进程堆栈应用;
(3)SetMetric/GetMetric:分配和获取所需的Face数据,比如可以用作路由计算。
(4)IsUp/SetUp:检查Face是否可用,以及启用或禁用Face。
除了基本的API&

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[3\]中的官方教程,安装ndnSIM在Ubuntu 20.04上需要执行以下步骤: 1. 打开终端,执行以下命令安装必要的依赖项: ``` sudo apt install build-essential libsqlite3-dev libboost-all-dev libssl-dev git python3-setuptools castxml sudo apt install gir1.2-goocanvas-2.0 gir1.2-gtk-3.0 libgirepository1.0-dev python3-dev python3-gi python3-gi-cairo python3-pip python3-pygraphviz python3-pygccxml ``` 2. 安装kiwi,执行以下命令: ``` sudo pip3 install kiwi ``` 3. 创建一个名为ndnSIM的文件夹,并进入该文件夹: ``` mkdir ndnSIM cd ndnSIM ``` 4. 克隆ns-3-dev、pybindgen和ndnSIM的仓库: ``` git clone https://github.com/named-data-ndnSIM/ns-3-dev.git ns-3 git clone https://github.com/named-data-ndnSIM/pybindgen.git pybindgen git clone --recursive https://github.com/named-data-ndnSIM/ndnSIM.git ns-3/src/ndnSIM ``` 5. 进入ns-3文件夹,并执行以下命令进行配置和编译: ``` cd ns-3 ./waf configure --enable-examples ./waf ``` 这样,你就可以在Ubuntu 20.04上成功安装ndnSIM了。请注意,这些步骤是根据官方教程提供的信息编写的,确保你的系统满足所有的依赖项,并按照步骤进行操作。 #### 引用[.reference_title] - *1* [在Ubuntu安装ndnSIM](https://blog.csdn.net/qq_44001007/article/details/107575203)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [ndnSIM学习(一)——安装ndnSIM踩坑:克隆ndnSIM时git无法访问(连接超时)的解决方案](https://blog.csdn.net/MamiyaHasaki/article/details/120578299)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值