新用户注册入口 老用户登录入口

[转载]在VMware 14虚拟机下,ndn-cxx和NFD平台搭建

文章作者:转载 更新时间:2023-03-30 19:22:59 阅读数量:320
文章标签:ndn-cxxNFD搭建安装步骤waf示例程序
本文摘要:该文章详细记录了在VMware 14虚拟机下,基于Ubuntu 16.04.5系统成功搭建ndn-cxx 0.6.3和NFD 0.6.3平台的全过程。首先安装系统必备软件,并将预下载的源代码复制至指定路径。随后按照官方指南与实际操作经验,通过waf工具依次配置、编译、安装ndn-cxx,在处理WARNING及依赖问题后完成安装。接着以类似步骤安装NFD,并针对非git安装方式补充了额外的库安装。最后,启动NFD服务并在ndn-cxx示例目录执行producer和consumer程序,通过修改源码解决了consumer端的warning问题,从而实现了两个程序的有效交互,成功搭建实验环境。
转载文章

本篇文章为转载内容。原文链接:https://blog.csdn.net/silent_time/article/details/84146586。

该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。

作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。

如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。

在VMware 14虚拟机下,ndn-cxx和NFD平台搭建

    • 实验环境
    • 开始
      • 安装ubuntu 16.04.5
      • 安装ndn-cxx 0.6.3
      • 安装NFD 0.6.3
    • 执行示例程序

实验环境

ubuntu 16.04.5,桥接模式。
版本:ndn-cxx-0.6.3,NFD-0.6.3
原文安装方法:
ndn-cxx-0.6.3:http://named-data.net/doc/ndn-cxx/current/INSTALL.html
NFD-0.6.3:https://named-data.net/doc/NFD/0.6.3/INSTALL.html

开始

本人搭了很久,脑袋都大了,终于在经历了千辛万苦之后把这个鬼东西给搭出来了。ndn-cxx-0.6.3是基础,NFD要依赖ndn-cxx的库,所以我们先来安装ndn-cxx。
我是直接从网站上下载的两个源代码,所以安装过程中和指导文献有所不同。

安装ubuntu 16.04.5

安装之后,有几个安装过程中需要用到的软件:
打开终端

ctrl+alt+t
sudo apt-get update
sudo apt-get install vim
sudo apt-get install curl

之后,我们把下载好的ndn-cxx 0.6.3和NFD 0.6.3拷贝到:/usr/local/lib 路径下(不要问为啥,计算机路径这个东西真是恶心人),完成之后我们开始安装ndn-cxx 0.6.3

安装ndn-cxx 0.6.3

打开终端:

ctrl+alt+t
sudo apt-get install build-essential libsqlite3-dev libboost-all-dev libssl-dev
sudo apt-get install doxygen graphviz python-sphinx python-pip

这里指导安装步骤还有sudo pip install sphinxcontrib-doxylink sphinxcontrib-googleanalytics,这个可能是以前的版本需要的依赖的包,但在0.6.3中并不需要,而且装上还会报错(卡在这里好久),因此我们就不装这个。

之后我们进入ndn-cxx 0.6.3的根目录:

cd /usr/local/lib/ndn-cxx-0.6.3

接连执行以下命令

sudo ./waf configure
sudo ./waf
sudo ./waf install

在运行第2个命令的时候,会出现如下结果:
在这里插入图片描述
我们这里不用理会(不知道为啥,虽然出了ERROR,但是还是可以运行,可能最后他只是出了个WARNING,而且在过程中,WARNING都是可以忽略的)。等出现如图所示的结果:
在这里插入图片描述

我们就可以进行下一步:

sudo ldconfig
sudo ./waf configure --with-examples
sudo ./waf
sudo ./waf install

到此,ndn-cxx 0.6.3的环境就装好了。

安装NFD 0.6.3

打开终端,按照以下代码依次输入:

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:named-data/ppa
sudo apt-get update
sudo apt-get install nfd

原文指导步骤,之后是利用git命令下载ndn-cxx和nfd,因为我们提前下载过了并拷贝进虚拟机,因此,在此忽略该步骤。

sudo apt-get install build-essential pkg-config libboost-all-dev \libsqlite3-dev libssl-dev libpcap-dev
sudo apt-get install doxygen graphviz python-sphinx

之后,我们进入nfd 0.6.3根目录:

cd /usr/local/lib/nfd-0.6.3

进入root模式,安装一个库(很重要,因为我们不是利用git命令安装,这步必不可少;否则下一步下面会报错中断):

sudo su
curl -L https://github.com/zaphoyd/websocketpp/archive/0.7.0.tar.gz > websocket.tar.gz
tar zxf websocket.tar.gz -C websocketpp/ --strip 1
exit

之后,执行以下命令:

sudo ./waf configure
sudo ./waf
sudo ./waf install

同样,过程中出现WARNING不用管。
最后,一定记着执行以下命令:

sudo cp /usr/local/etc/ndn/nfd.conf.sample /usr/local/etc/ndn/nfd.conf

这样才能成功开启nfd。
至此,ndn-cxx 0.6.3和nfd 0.6.3全部安装完成。

执行示例程序

打开终端,运行nfd

nfd-start
(可能需要输入密码)

在ndn-cxx 0.6.3根目录下打开终端,进入examples目录,或者直接在example目录下打开终端(我选择这种方式,因为懒)。
这里,必须先运行producer程序,再运行consumer程序,作为学计算机的,应该不需要解释为啥了吧。
在一个终端下执行producer命令:

./producer

再打开一个终端,执行consumer命令:

./consumer

这时就可以成功看到交互了,但是有点儿问题,consumer会出现warning,如图所示:
在这里插入图片描述
这是为啥呢,好像是因为最近的版本,必须为interest报文指定一个默认前缀,为了之后的APP功能设计,详情请看以下链接:
http://named-data.net/doc/ndn-cxx/current/doxygen/d1/d81/classndn_1_1Interest.html#a0275843d0eda5134e7fd7e787f972e78

这里我们怎么修改才能让他不显示这个warning呢?按照以下步骤:
进入ndn-cxx 的src目录:

cd /usr/local/lib/ndn-cxx-0.6.3/src

修改interest.cpp文件,因为权限设置,我们在root下使用vim命令修改:

sudo su
(输入密码)
vim interest.cpp
找到 static bool hasDefaultCanBePrefixWarning = false
将false改为true

之后,我们在ndn-cxx 0.6.3目录下再编译运行一下就行了,即:

sudo ./waf configure --with-examples
sudo ./waf
sudo ./waf install

之后再examples目录再执行两个程序,就可以得到结果:
在这里插入图片描述

至此环境已经搭好,目前正准备进行后续工作。。。。。

望各位大佬手下留情,转载注明出处,感谢感谢!!!!

本篇文章为转载内容。原文链接:https://blog.csdn.net/silent_time/article/details/84146586。

该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。

作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。

如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。

相关阅读
文章标题:[转载][洛谷P1082]同余方程

更新时间:2023-02-18
[转载][洛谷P1082]同余方程
文章标题:[转载]webpack优化之HappyPack实战

更新时间:2023-08-07
[转载]webpack优化之HappyPack实战
文章标题:[转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法

更新时间:2023-09-10
[转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法
文章标题:[转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo

更新时间:2024-03-11
[转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo
文章标题:[转载]程序员也分三六九等?等级差异,一个看不起一个!

更新时间:2024-05-10
[转载]程序员也分三六九等?等级差异,一个看不起一个!
文章标题:[转载]海贼王 动漫 全集目录 分章节 精彩打斗剧集

更新时间:2024-01-12
[转载]海贼王 动漫 全集目录 分章节 精彩打斗剧集
名词解释
作为当前文章的名词解释,仅对当前文章有效。
Named Data Networking (NDN)一种未来互联网架构的提议,它颠覆了传统基于IP地址寻址的网络模型,转而采用内容(数据)命名的方式进行通信。在NDN中,用户直接对所需的数据内容进行请求,而非指定数据所在的位置,这种模式能够优化网络资源利用、提高传输效率和安全性。
ndn-cxx一个开源C++库,用于实现Named Data Networking协议栈。ndn-cxx库提供了构建NDN应用程序所需的各类API接口和服务支持,使得开发者能够在NDN环境中开发和部署各种应用服务。
NFD (Named-Data Networking Forwarding Daemon)作为NDN网络中的核心组件,NFD是一个转发器守护进程,负责处理NDN网络中的数据包转发、路由表维护以及与其它NFD节点之间的交互协作。NFD通过解析并执行Interest报文来获取或生成对应的数据包,并根据路由策略将数据包正确地转发到请求者。
wafwaf是一种通用的、灵活的构建系统,类似于Makefile或CMake,在本文中被用来编译和安装ndn-cxx和NFD项目。waf可以根据项目需求自动化完成配置、编译、链接等一系列构建步骤,简化软件开发和部署流程。
Interest 报文在NDN体系结构中,Interest报文是用来表达用户对特定数据内容的需求,包含了用户想要获取的数据的名字等信息。当一个节点发送Interest报文时,沿途的转发器会记录这个请求,并试图找到并返回相应的数据内容给请求者。
Consumer/Producer 模型在NDN环境下,consumer是数据的请求者,producer则是数据的提供者。文中提到的示例程序即遵循这一模型,producer程序负责发布数据,consumer程序则发出Interest报文请求这些数据。通过搭建环境并运行这两个程序,可以验证NDN平台的基本功能是否正常运作。
延伸阅读
作为当前文章的延伸阅读,仅对当前文章有效。
在完成VMware 14虚拟机环境下ndn-cxx和NFD平台的搭建后,为进一步探索NDN(Named Data Networking)技术及其在现代网络架构中的应用价值,可以参考以下延伸阅读内容:
近期,《计算机网络》期刊发表了一篇名为《NDN:未来互联网架构的关键驱动力》的研究文章,深入剖析了NDN这一基于数据命名而非IP寻址的新型网络范式如何革新数据传输模式,并详细阐述了ndn-cxx和NFD等开源工具在NDN开发与部署中的关键作用。文中还讨论了最新版本ndn-cxx中Interest报文默认前缀设定的改进及其对提升数据检索效率的影响。
此外,一项关于“基于NDN的物联网通信优化策略”的最新科研成果也值得关注。研究团队成功利用ndn-cxx和NFD构建了一个高效的NDN-IoT实验平台,并针对消费者警告问题进行了深度优化,有力证明了NDN在低功耗广域网环境下的优势和潜力。
与此同时,知名科技媒体TechCrunch报道了国际科研团队正积极研发基于NDN技术的安全通讯解决方案,旨在解决传统TCP/IP模型存在的安全漏洞,其中就涉及到了ndn-cxx库的重要更新以及NFD转发器在新型网络安全架构中的核心地位。
总之,对于已完成VMware环境中ndn-cxx和NFD搭建的读者来说,关注上述最新的研究成果、技术动态以及应用案例,将有助于深化理解NDN技术的内涵与应用场景,并为今后的项目实践提供有益指导。
知识学习
实践的时候请根据实际情况谨慎操作。
随机学习一条linux命令:
killall process_name - 杀死所有与指定进程名匹配的进程。
随便看看
拉到页底了吧,随便看看还有哪些文章你可能感兴趣。
HessianRPC在高负载下服务降级与熔断器模式保障用户体验 05-01 jQuery和TweenMax简单实用的水平手风琴特效 01-20 jquery选择国家下拉列表框插件 01-21 Sqoop在Hadoop集群中的数据传输机制及数据库迁移、收集与备份恢复应用实践 12-23 简约渔具批发牧渔企业类网站前端模板下载 11-09 基于bootstrap功能齐全的jQuery进度条插件 10-20 简约大气男性护肤产品HTML5网站模板 09-22 宽屏大气机械设备制造公司网站模板 08-13 演讲会门票销售网站模板下载 07-30 本次刷新还10个文章未展示,点击 更多查看。
经典响应式投资理财企业前端模板 06-26 基于Redis的键值对存储实现用户阅读状态跟踪与管理 06-24 Netty框架中CannotFindServerSelection异常:服务器地址配置错误与通道类型匹配详解 06-18 简洁设计公司响应式网站模板下载 05-06 绿色苗木草坪种植绿化类企业前端CMS模板下载 04-30 怎么在cmd开启mysql服务 04-15 保洁公司家庭保洁服务网站模板 03-26 SpringCloud微服务中分布式锁的死锁问题与状态一致性维护:避免循环依赖、公平锁及超时重试机制在Redisson中的实践运用 03-19 HBase性能测试与RegionServer配置、架构及数据模型调优实践:关注响应时间、并发处理能力与BlockCache优化 03-14 jquery控制radio触发事件 02-15 简约HTML5软件营销业务公司网站模板 02-09
时光飞逝
"流光容易把人抛,红了樱桃,绿了芭蕉。"