因工作需要,着手搭建ns+nam+GT-ITM环境,在网上看了一些帖子,用了一天时间安装调试,现在做一个小的总结,希望给做类似工作的人有一些借鉴。

目标:在Ubuntu16.04虚拟机上安装ns2.35+nam+GT-ITM

步骤:

Step1-资源下载

VMware:http://www.vmware.com/products/player/playerpro-evaluation.html

Ubuntu:http://cn.ubuntu.com/download/

ns-2.35集成包(包含nam和GT-ITM):https://sourceforge.net/projects/nsnam/files/allinone/ns-allinone-2.35/ns-allinone-2.35.tar.gz/download

tcl/tk版本下载:https://sourceforge.net/projects/tcl/files/Tcl/

Step2-准备NS安装环境

首先在VMware中安装Ubuntu16.04虚拟机,安装完成后运行终端,输入以下命令更新系统:

sudo apt-get update #更新源列表

sudo apt-get upgrade #更新已经安装的包

sudo apt-get dist-upgrade #更新软件,升级系统

然后安装ns2晕行时需要的三个依赖包,命令如下:

sudo apt-get install build-essential

sudo apt-get install tcl8.5 tcl8.5-dev tk8.5 tk8.5-dev #for tcl and tk(执行此命令后注意查看tcl和tk的版本号,我的是8.5.19)

sudo apt-get install libxmu-dev libxmu-headers #for nam

Step3-安装NS

   将下载的ns-allinone-2.35.tar.gz压缩包解压到“/home/用户名/”目录下,可以用“tarxvfz ns-allinone-2.35.tar.gz”命令或者图形化操作,然后进入文件夹,查看tcl和tk的文件夹是否与之前安装的版本一致,如果不一致之后安装就会出现版本冲突错误。因此需要下载与安装相同的版本替换现有的文件,例如我安装的是8.5.19,而解压出的是8.5.10,因此需要下载tcl8.5.19和tk8.5.19替换tcl8.5.10和tk8.5.10文件夹中的文件。

更改ns-allinone-2.35/ns-2.35/linkstate目录下的ls.h文件,将其第137行中 {erase(baseMap::begin(), baseMap::end()); }修改为 { this->erase(baseMap::begin(),baseMap::end()); },然后保存文件。

在在终端中进入ns-allinone-2.35文件夹,运行install安装程序:

cd ns-allinone-2.35

./install

Step4-配置环境变量

在终端中进入用户目录“/home/用户名”,运行gedit ~/.bashrc命令,打开.bashrc文件,然后在文档最后加入一下环境变量:

export NS_HOME=/home/用户名/ns-allinone-2.35

exportPATH=$PATH:$NS_HOME/bin:$NS_HOME/tcl8.5.10/unix:$NS_HOME/tk8.5.10/unix

export LD_LIBRARY_PATH=$NS_HOME/otcl-1.14:$NS_HOME/lib

export TCL_LIBRARY=$NS_HOME/tcl8.5.10/library

其中的路径根据自己的实际情况修改,修改完成后保存文件。

Step5-验证NS

   重启终端,输入ns,出现%,说明ns2安装成功,否则继续在stp4中修改环境变量,此时请勿根据提示使用sudoapt-get install ns2命令安装。

Step6-安装nam并测试

   终端进入nam目录并运行命令,如下:

cd ns-allinone-2.35/nam-1.15

./configure –with-tcl-ver=8.5

make

make install

命令行输入nam弹出nam console说明nam安装成功。

最后运行一个小例子查看安装结果。命令如下:

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

ns simple.tcl

如ns和nam完全安装正确,则弹出动画演示框。

Step7-安装GT-ITM并测试

   在ns-allinone-2.35/gt-itm/sgb2ns/目录中找到sgb2ns.c文件,将其中105行“\t$nsduplex-link-of-interfaces $n(%d) $n(%d) $linkBW %dms DropTail\n”修改为“\t$nsduplex-link $n(%d) $n(%d) $linkBW %dms DropTail\n”。

然后在gt-itm/src和gt-itm/sgb2ns目录下分别执行make命令,最后将/gt-itm/bin所在目录添加到PATH环境变量中(同Step4),方便调用itm。

测试例子:

在/gt-itm/docs目录中生成一个t1.txt文件,文件内容如下:

ts 1 47

30 0

120 3 1.0

420 3 0.6

在终端中调用这个文件:

cd ns-allinone-2.35/gt-itm/bin

itm t100.txt

调用后生成一个t1.txt-0.gb文件,在运行以下命令:

sgb2ns t1.txt-0.gb t1.tcl

这样就生成了一个ns2格式的t1.tcl文件,如需要查看这个文件,需再写一个tcl的文件,内容如下:

set ns [new Simulator]

set nf [open out.nam w]

$ns namtrace-all $nf

source t1.tcl

create-topology ns node 1.5Mb

$ns run

命名为nam_show.tcl,运行如下命令调用这个文件:

ns nam_show.tcl

之后生成一个out.nam文件,通过命令namout.nam,就能看到生成的拓扑图了。

ubuntu 16.04上ns2+nam+GT-ITM安装笔记相关推荐

  1. Ubuntu 16.04上源码编译和安装pytorch教程,并编写C Demo CMakeLists.txt

    本文首发于个人博客https://kezunlin.me/post/54e7a3d8/,欢迎阅读最新内容! tutorial to compile and use pytorch on ubuntu ...

  2. 如何在Ubuntu 16.04上使用ProxySQL缓存优化MySQL查询

    The author selected the Free Software Foundation to receive a donation as part of the Write for DOna ...

  3. Ubuntu 16.04上安装SkyEye及测试

    说明一下,在Ubuntu 16.04上安装SkyEye方法不是原创,是来自互联网,仅供学习参考. 一.检查支持软件包 gcc, make, vim(optional), ssh, subversion ...

  4. 如何在Ubuntu 16.04上使用MySQL 5.6配置Galera集群

    原作者:梅丽莎安德森  转载翻译:https://www.digitalocean.com/community/tutorials/how-to-configure-a-galera-cluster- ...

  5. 如何在Ubuntu 16.04上创建多节点MySQL集群(MySQL-Cluster)

    翻译转载:https://www.digitalocean.com/community/tutorials/how-to-create-a-multi-node-mysql-cluster-on-ub ...

  6. [Python] Ubuntu 16.04 上安装 python3.7 和 pip 并配置虚拟环境

    文章目录 Ubuntu 16.04 自带 python 2.7 和 python 3.5 安装 python3.7 修改软链接 python3 -> python3.7(非必需) 安装 pip ...

  7. 关闭防火墙linux 16.04,如何在Ubuntu 16.04上配置和设置防火墙

    在本文中,我们将学习–如何在Ubuntu 16.04上配置和设置UFW(防火墙),UFW代表"不复杂的防火墙",它充当IPTABLES的接口,从而简化了防火墙的配置过程,对于防火墙 ...

  8. python3.5安装教程linux_安装Python 3.6在Ubuntu 16.04上

    在Ubuntu 16.04上安装Python 3.6并不是一件顺利的事,它和Ubuntu 14.04安装python 3.5有很大的不同. 首先需要PPA源: sudo add-apt-reposit ...

  9. 在 Ubuntu 16.04上安装 vsFTPd

    在 Ubuntu 16.04上安装 vsFTPd Ubuntu vsFTPd 关于 vsFTPd vsFTPd 代表 Very Secure File Transfer Protocol Daemon ...

最新文章

  1. http://blog.csdn.net/xingfuzhijianxia/article/details/6433918
  2. 网络推广营销教大家有关移动端网站优化更受用户欢迎的技巧!
  3. vue3+TypeScript封装echarts5组件
  4. hibernate 调试_Hibernate调试–查找查询的来源
  5. 如何在android进行ltp测试,Android系统完整性度量架构IMA-EVM
  6. 相约金陵丨7月9日,云和恩墨大讲堂 · 南京站邀您共论数字化转型实践
  7. 嵌入式开发之davinci---IPIPE、IPIPEIF and ISIF这三者有什么区别
  8. Python(三):数
  9. Hadoop权威指南:知识梳理(一)
  10. 离散数学---循环群,左陪集,子群
  11. linux模拟系统宕机,Linux系统宕机的处理方法
  12. 你理解的精益可能是错的!——从源头重新解读精益
  13. oeasy教您玩转vim - 59 - # 编辑总结
  14. android 静音接口,android 静音方法
  15. 通过BACnet物联网关实现楼宇自动化的物联网解决方案
  16. 机器学习在算法交易中的应用现状
  17. Linux学习笔记(三.文件内容命令其他命令)
  18. 模拟浏览器操作程序(数据结构课设)
  19. lcg_magic算法笔记:反转单链表
  20. 数据库基本结构SQL语句

热门文章

  1. netty中的粘包和半包
  2. 使用D3.js构建实时图形
  3. qt 子窗口写到线程就卡死_微信白屏卡死?
  4. fastjson 报错:com.alibaba.fastjson.JSONObject cannot be cast to xxxx
  5. AOP(四)之After增强处理
  6. OSChina 双十一乱弹 ——来自单身狗的哀鸣
  7. 【官宣】传智教育使命升级!
  8. 正能量团队的人和事--传递正能量
  9. 大连英语培训百家雅思老师分享英语四六级四六级提分技巧
  10. php 上传图片 裁剪,jQuery+PHP实现上传裁剪图片