NDN之ndnSIM-NS3学习笔记(二)

前言

前一篇博客已经顺利完成了ndnSIM的安装过程。

还未安装的请参考:NDN之ndnSIM-NS3学习笔记(一)_zrr1221的博客-CSDN博客

一、ndnSIM仿真介绍

ndnSIM的仿真过程主要可以分为三步:

1、建立仿真场景,包括拓扑、应用(名称)的相关配置、路由策略和缓存机制等;

2、设置仿真时间,启动仿真,获取仿真数据;

3、分析数据,将数据绘图,生成实验结果。

其中,前两步是在ndnSIM中完成,最后一步可以使用python或者matlab完成画图。

前两步的完成主要依赖自己编写的代码,即自己编写的cpp文件或cc文件。具体的代码存放位置可以参考:ndnSIM 应该在哪里编写脚本 自己编写的文件放在哪运行?_producerhelper.setattribute-CSDN博客

代码中要完成的内容:
1.      构建拓扑结构,使用代码依次创建节点和链接或者直接读取拓扑文件(如果使用拓扑文件请参考)

2.      在所有节点安装NDN栈

3.      配置转发策略

4.      为各个节点安装消费者应用或者生产者应用,用于生产或请求NDN网络中的流量数据

5.      手动或者用 GlobalRoutingHelper 生成FIB表

6.      设置仿真时间

7.      使用 trace helper 等工具获取仿真结果(https://ndnsim.net/2.1/metric.html)

8.      开始仿真,仿真结束后销毁
 

参考链接:ndnSIM 如何进行仿真实验 仿真步骤_身价五毛的博客-CSDN博客

二、ndnSIM仿真结合IDE进行代码编写 

ndnSIM安装、源代码结构与修改兴趣包生存周期-CSDN博客

在这篇博客中给出了一种开发软件IDE-CLion。可参考下载CLion以及学习其使用方法进行代码编写,但是在编译运行仿真的时候,依然需要使用命令行,CLion无法识别一些代码调用会乱标红,只能用来看看改改。

也可以下载VScode作为IDE进行代码编写。

下面详细介绍NS3结合VScode开发环境配置:

1、在Ubuntu software 中搜索VScode下载,或者从Visual Studio Code官网下载deb软件包。

并将VScode添加到收藏夹。

 2、安装CMake和C++插件

打开VS Code,快捷键(Ctrl + Shift + X)打开扩展模块,或在最左侧活动栏中找到拓展模块图标点击打开拓展模块,在输入栏中输入“C/C++”,安装C++插件,如下图所示:

同理,安装CMake插件:

接下来配置NS3-VScode开发环境:

1、按Ctrl+Shift+P打开命令面板,输入查找“C/C++: Edit Configurations (JSON)“并点击,打开“c_cpp_properties.json”文件。


用如下代码替换:

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/build/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "gnu17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64",
            "compileCommands": "${workspaceFolder}/build/compile_commands.json"
        }
    ],
    "version": 4
}

2、点击左侧目录结构.vscode->launch.json,打开launch.json文件

用如下代码替换:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C/C++: cpp 生成活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "/home/zrr/桌面/ndnSIM/ns-3/build/scratch/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            // "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: cpp 生成活动文件",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

注意: 

"launch.json"文件中的"program"字段改成自己的,可用如下代码查看路径

cd build/scratch/
pwd

3、点击左侧目录结构.vscode->tasks.json,打开tasks.json文件

用如下代码替换:

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "C/C++: cpp 生成活动文件",
			// "command": "/usr/bin/cpp",
			"command": "./waf",
			"args": [
				// "-fdiagnostics-color=always",
				// "-g",
				// "${file}",
				// "-o",
				// "${fileDirname}/${fileBasenameNoExtension}"
			],
			"options": {
				"cwd": "${workspaceFolder}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"detail": "编译器: /usr/bin/cpp"
		}
	]
}

----------------------------------------------------------------------------------------------------------------------------

注意!!!运行examples~>tutorial~>first.cc,按F5运行,会出现如下问题:

 是因为所有的编译后的文件储存在/home/zrr/桌面/ndnSIM/ns-3/build 目录下,而launch.json中的

"program": "/home/zrr/桌面/ndnSIM/ns-3/build/scratch/${fileBasenameNoExtension}",

 该语句将可执行的路径限制在了/home/zrr/桌面/ndnSIM/ns-3/build/scrach下  而first.cc的目录应修改为/home/zrr/桌面/ndnSIM/ns-3/build/examples/tutorial下,因此产生该错误。

主要解决办法为:在scrach目录下新建项目,进行项目代码的编写,完成后续调试过程。

运行代码时可直接按F5进行编译执行。

要运行其他目录下的代码实例时可利用终端窗口输入./waf --run 文件名

如:运行frist.cc  输入./waf --run first.cc

 参考链接: ns3+VSCode开发环境配置完美版_哔哩哔哩_bilibili

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值