当前位置: 首页 > news >正文

在虚拟机Ubuntu18.04中安装NS2教程及应用

NS2简介

一、主要组成部分:

1.NS2:模拟器本身,负责执行TCL脚本进行模拟,并生成trace文件输出结果。

2.NAM:网络动画模拟器,用于将模拟结果可视化。

二、使用的语言:

1.C++:NS2中最重要和核心的部分,使用C++编程可以直接访问和控制底层的网络协议和数据包。

2.Otcl:Object Tcl,主要用于配置和控制NS2的模拟场景,可以更方便地创建和配置网络拓扑、分配IP地址、设置传输协议等。

三、结构目录:

一、安装ns2

第一步:下载

下载链接:https://sourceforge.net/projects/nsnam/files/allinone/ns-allinone-2.35/

在/home下新建文件夹/NS2(文件名与后面添加环境相关)

第二步:解压到新建的文件夹中

tar -zxvf ns-allinone-2.35.tar.gz

第三步:检查系统更新

sudo apt update

sudo apt upgrade(检查以前有的软件的更新)

sudo apt dist-upgrade(检查更新后软件是否冲突)

第四步:安装必要软件包

sudo apt install tcl8.5

sudo apt install tk8.5

sudo apt install build-essential

sudo apt install make

sudo apt install libx11-dev(不安装会出现76号错误)

sudo apt install libxmu-dev

第五步:在137行修改ls.h文件

apt install vim

cd /home/xxx/NS2/ns-allinone-2.35/ns-2.35/linkstate

vim ls.h(在vim里:点击 i或a 进入编辑模式;点击esc退出编辑模式,输入 :wq 保存并退出)

在erase前加 this-> 

第六步:降低gcc和g++的版本

由于18.04自带的版本是7版本,而NS2只支持gcc/g++4.4-5.4版本,我们可以在刚下载好虚拟机时先安装5版本再用命令行安装7版本,这样可以避免后续产生安装问题

下好后我们会发现有两个版本

切换版本:

update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 40

update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50

update-alternatives --config gcc

接着设置g++,确保gcc和g++的版本同时处在相同的版本

update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50

update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 40

update-alternatives --config g++

第七步:配置环境

gedit /home/xxx/.bashrc

在最后加上:(改成自己命名的文件夹名)

# add path for ns2
export PATH=”$PATH:/home/NS2/ns-allinone-2.35/bin:/home/NS2/ns-allinone-2.35/tcl8.5.10/unix:/home/NS2/ns-allinone-2.35/tk8.5.10/unix
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/home/NS2/ns-allinone-2.35/otcl-1.14:/home/ns2/ns-allinone-2.35/lib”
export TCL_LIBRARY=”$TCL_LIBRARY:/home/NS2/ns-allinone-2.35/tcl8.5.10/library”

更新完成后重启虚拟机

第八步:最后安装

cd /home/xxx/NS2/ns-allinone-2.35

./install

(保险起见)再用命令行下载ns2:apt install ns2

出现%符号说明安装成功

二、安装nam(图像化界面)

输入nam出现弹框说明安装成功

 测试一下样本

cd /home/NS2/ns-allinone-2.35/ns-2.35/tcl/ex 

ns simple.tcl

三、简单应用

 了解一下代码

构造两个节点的有线网络

#创造一个模拟器

set ns [new Simulator]

#打开nam

set nf [open out.nam w]
$ns namtrace-all $nf

#创建两个节点

set n0 [$ns node]
set n1 [$ns node]

#创建节点间的链路

$ns duplex-link $n0 $n1 1Mb 10ms DropTall

#设置UDP头并连接到n0点

set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0

#设置CBR(恒定比特率)并连接到n0点

set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.005
$cbr0 attach-agent $udp0

#连接交通源头

$ns connect $udp0 $null0

#设置时间

$ns at 0.5 "$cbr0 start"
$ns at 4.5 "$cbr0 stop"

$ns at 5.0 "finish"

#运行

$ns run

参考阅读:

在 Ubuntu18.04 lts 下安装 NS2(含 nam) - 小学还没毕业呢 - 博客园

ubuntu17.10安装lnmp安装包的核心问题-gcc版本、g++版本 - 黑熊一只 - 博客园

相关文章:

  • 大白话解释联邦学习
  • hadoop3.x单机部署
  • Mysql索引优化
  • Spring Boot之Web服务器的启动流程分析
  • 【android bluetooth 框架分析 02】【Module详解 7】【VendorSpecificEventManager 模块介绍】
  • 使用光标测量,使用 TDR 测量 pH 和 fF
  • AI 模型训练轻量化技术在军事领域的实战应用与技术解析
  • ​​华为云服务器:智能算力网格​
  • Vue 3.5 新特性深度解析:全面升级的开发体验
  • MQTT协议详解:物联网通信的轻量级解决方案
  • idea Maven 打包SpringBoot可执行的jar包
  • 【YOLO模型】参数全面解读
  • 微信小程序 密码框改为text后不可见,需要点击一下
  • uni-app学习笔记五-vue3响应式基础
  • 云原生|kubernetes|kubernetes的etcd集群备份策略
  • 9.1 C#控制SW中零件的变色与闪烁
  • 2025 3D工业相机选型及推荐
  • MySQL 5.7在CentOS 7.9系统下的安装(上)——以rpm包的形式下载mysql
  • MySQL 5.7在CentOS 7.9系统下的安装(下)——给MySQL设置密码
  • 解决 CentOS 7 镜像源无法访问的问题
  • 白天气温超30℃的北京,晚间下起了冰雹
  • 来伊份发布关于消费者反映蜜枣粽问题处理的情况说明:与消费者达成和解
  • 外交部:中方愿根据当事方意愿,为化解乌克兰危机发挥建设性作用
  • 江西省司法厅厅长张强已任江西省委政法委分管日常工作副书记
  • 为发期刊,高校学者偷贩涉密敏感数据!国安部披露间谍案细节
  • 道指跌逾100点,特斯拉涨近5%