文章目录
一、搭建 ns3 仿真平台的轻量级方案
如果想在Windows上使用ns3做网络仿真,有两个方法:
- ns3 旧版本有一版支持 Windows,支持 vs2012(官网有写),缺点是 ns3 版本太久,没有目前新版本的内容,比如 dctcp 协议。
- 在 Windows 上安装虚拟机,然后安装 Linux 系统,再在子系统上安装 ns3,vscode 等,然后在虚拟机上编程和运行。缺点是笨重。
笔者以上两种都使用过,要么受限于版本,要么很笨重,一点儿不方便。本文介绍的是轻量级方案—— WSL2 结合 ns3。WSL 是微软推出的 Windows Subsystem for Linux,即 Windows 下的 Linux 子系统,是一个在 Windows 10上能够运行原生 Linux 二进制可执行文件的兼容层。该方案的使用体验是最流畅的:
直接在 Windows 操作系统上,通过 WSL2 下的 Ubuntu 命令行打开 vscode,就可以进行编辑、运行和调试 ns3 代码。
如下图所示:
二、平台搭建的完整步骤
为了安装过程尽量不迷糊,首先理清楚:
WSL2 和 vscode 是在 Windows 上下载安装的,而 ns3 是通过 WSL2 下载编译的(因为 ns3 需要在 Linux 内核下使用),只是通过 vscode 编辑和调试起来方便。
所以步骤:先下载安装 WSL2 和 vscode,然后在 WSL2 里下载编译 ns3。
1. 安装 WSL2 和 vscode
① 在 Windows 上安装 WSL2:WSL官方安装说明,安装看这个足够(不是偷懒,因为官网教程足够全面,步骤足够简单)
总结:“管理员”身份打开powershell,通过指令:
wsl --install
一句命令搞定。没成功的话,卸载掉 WSL 再重装几次,自己遇到过因为网络卡顿导致安装失败的情况。
② 在 Windows 上安装 VSCode,直接去VSCode官网,同样容易理解,步骤很简单。
③ 此外,看个人喜好,推荐安装一个 Windows Terminal 。目的是方便使用WSL2,该终端可以同时打开PowerShell、cmd 和 Ubuntu(WSL2)。
2. 在 WSL2 中下载 ns3
① 在 WSL2 中下载 ns3:下载 ns3 的途径不止一个,本文从 gitlab 上下载 ns3,先在 gitlab 申请(已有)一个账户,然后需要获取当前系统的 sshkey,打开 WSL2 的 Ubuntu 命令行,通过以下指令在本地生成 sshkey:
ssh-keygen
一直回车即可:
然后通过以下指令定位到生成 key 的位置:
cd ~/.ssh
检查是否生成成功(看有没有生成 .pub 文件):
ls
打印出来具体 key 内容(一般是 id_rsa 这个名字):
cat id_rsa.pub
此时,命令行中会打印出来具体的 sshkey 的内容。
全部复制(包括开头的 ssh-rsa),粘贴到 gitlab 的 sshkey 里面。下图即为 gitlab 的 sshkey 添加位置:
② 然后就可以在 Ubuntu 命令行使用指令下载 ns3
但注意:要到 WSL 文件系统路径下进行下载,即在 WSL 文件系统路径下执行下载指令,不要下载到 mnt\c
或者 mnt\d
路径下,这两个分别代表 Windows 下的的C和D盘,WSL1代的跨OS文件系统操作性能不错,但这里使用的 WSL2 ,根据官网说明,2代完全不能承担跨OS文件系统的工作,性能糟糕。具体资料见附录。
“跨OS文件系统性能糟糕”是什么意思?如果 ns3 下载到了 Windows 文件系统下,将表现为 ns3 编译速度异常缓慢。
WSL2 的 Ubuntu 命令行一进去路径一般是:
/mnt/c/User/自己系统名字
,该路径中的c
就是对应C盘,而在mnt
路径下还有个d
,是D盘的意思。最好是移动到/home
路径下新建一个文件夹作为自己的使用文件夹,就是在 WSL 文件系统底下了。如下图:
下载路径调整好,执行下载指令:
git clone git@gitlab