说明:柯志亨老师《ns2仿真实验-----多媒体和无线网络通信》这本书lab18实验为“无线网络封包传输遗失模型”的实验。该无线传输遗失模型是柯老师自己开发的,原始的ns-allinone-2.35(也包括其他版本)中是没有该模型的。所以实验的第一步就是要先为ns2.35添加该模型。

步骤:

1.将柯老师所给的ns-allinone-2.29包中ns-2.29/mac/wireless-phy.cc和ns-2.29/mac/wireless-phy.h两个文件复制到你自己安装的ns-allinone-2.35/ns-2.35/mac/目录下。复制前先备份ns-2.35/mac中的这两个文件。

具体的安装路径因人而异,不可照搬我的~

2.在ns-allinone-2.35/ns-2.35/目录下执行sudo make clean;sudo make命令。

执行完该步后,会出现如下错误:

3.修改2中出现的错误,修改完后重新make。具体如下:

在当前目录中打开mac/wireless-phy.cc文件,在61行添加MIN声明。

在当前目录中打开common/packet-stamp.h文件,在58行添加double InterferencePr。

然后重新在当先目录下执行sudo make。图略。

make之后,会出现如下错误:

4.修改3中错误,然后重新make。

在当前目录中打开mac/wireless-phy.h文件,在99行添加T_sleep的定义

然后重新执行sudo make,大功告成!

5.经过上边几个步骤,柯老师的无线网络封包传输遗失模型就在咱们自己的ns2.35中添加完成了。但是要想做lab18的实验,在这里还要修改下lab18所给出的lab18.tcl文件,原因就不说明了。大家照做即可。

打开lab18/lab18.tcl文件,注释掉142-146行代码(具体的行号可能略有不同,大家看下,不过很好找的)。然后在140行添加ns_ connect $udp0 $null0。

6.大功告成。去做lab18的实验吧。

友情提示:柯老师给出的ns-allinone-2.29包下载地址:http://pan.baidu.com/s/1qWmDmwc

标准的ns-allinone-2.35包下载地址:http://pan.baidu.com/s/1o6jt1we

在ns2.35下完成柯老师lab18实验的更多相关文章

  1. ubuntu下做柯老师lab19-lab20实验问题总结

    前两篇文章告诉了大家如何将无线封包传输遗失模型和myevalvid添加到ns2.35中,已经成功验证了,这个没有问题.但是本人在做lab19和lab20实验时又发现了一些关于myevalvid工具集的 ...

  2. Ubuntu14.04下安装ns2.35

    我选择的版本是2.35最新版本,安装环境是Ubuntu 14.04. 1.下载ns2的安装包,这里我选择的是ns-allinone-2.35.tar.gz压缩格式的all in one安装包,all ...

  3. 在ns2.35中添加myevalvid框架

    在用ns2进行网络视频通信仿真的时候,先要为我们自己的ns2添加evalvid或者myevalvid框架.其中myevalvid框架是由柯志亨老师整合evalvid和ns2之后得出的新框架,笔者建议大 ...

  4. ubuntu 14.04 ns2.35 ***buffer overflow detected **: ns terminated解决办法

    1.按照如下教程安装 Install With Me !: How to Install NS-2.35 in Ubuntu-13.10 / 14.04 (in 4 easy steps) 2.运行一 ...

  5. Ubuntu12.04 LTS 32位 安装ns-2.35

    ubuntu12.04lts 32-bit默认采用gcc 4.6和g++4.6,而ns的最新版本ns 2.3.5也采用了相同到版本,所以这方面不会有版本不同到问题 收回上面这句话..../valida ...

  6. Ubuntu 16——安装——ns2.35和nam

    Ubuntu 16.04 安装ns2.35+nam 总结出以下安装步骤 1: 更新源 sudo apt-get update #更新源列表 sudo apt-get upgrade #更新已经安装的包 ...

  7. NS2安装过程中环境变量设置的问题(ns-2.35)

    nam: Can't find a usable tk.tcl in the following directories: */ns-allinone-2.35/tcl8.5.10/library/t ...

  8. 【Java EE 学习 35 下】【struts2】【struts2文件上传】【struts2自定义拦截器】【struts2手动验证】

    一.struts2文件上传 1.上传文件的时候要求必须使得表单的enctype属性设置为multipart/form-data,把它的method属性设置为post 2.上传单个文件的时候需要在Act ...

  9. classifier.cc-recv() [ns2.35]

    //without comments int chooseECNSlot() { ; ;i<=nslot_;i++) { *count) { *count); )*ti; ;j<=nslo ...

随机推荐

  1. SecureCRT ssh连接linux操作系统(解决Ubutu密钥交换失败的问题)

    我们可以使用终端软件SecureCRT 去连接linux操作系统(该SecureCRT服务走端口22,协议是ssh(类似apache走http协议,端口80)),SSH 为 Secure Shell ...

  2. Linux bzip2命令详解

    Linux bzip/bunzip2命令是.bz2文件的解压缩程序. bunzip2可解压缩.bz2格式的压缩文件.bunzip2实际上是bzip2的符号连接,执行bunzip2与bzip2 -d的效 ...

  3. Error creating bean with name xxxx,xxxx must be provided

    原因: 继承父类的bean注入是set,get方法 问题: 自己的controller不能创建,因为需要的bean没有创建 解决方法: bean 注入,通过构造函数调用父类的set方法

  4. 铁乐学python_day22_面向对象编程4

    以下内容大部分摘自博客http://www.cnblogs.com/Eva-J/ 封装 [封装]隐藏对象的属性和实现细节,仅对外提供公共访问方式. [好处] 将变化隔离: 便于使用: 提高复用性: 提 ...

  5. 铁乐学python_day13_迭代器生成器

    一.[可迭代对象Iterable] 粗略判断的话,我们可以说能被for循环进行遍历的对象就是可迭代对象,如str,list,tuple,dict(key),set,range. (open file ...

  6. 一、TCL事务控制语言 二、MySQL中的约束 三、多表查询(重点) 四、用户的创建和授权 五、MySQL中的索引

    一.TCL事务控制语言###<1>事务的概念 事务是访问并可能更新数据库中各种数据项的执行单元. 事务是一条SQL语句,一组SQL语句,或者整个程序. 事务是恢复和并发控制的基本单位. 事 ...

  7. Scala编写的打印乘法口诀和金字塔

       刚开始接触scala,觉得语法简单,一时兴起就写了两个简单的例子 public class Calculate { public static void test1(){ for(int i=1 ...

  8. Memcached与Redis对比,Redis基础笔记回顾

    Memcached 1.为什么要把数据存入内存?快 2.Memcached和Redis的区别 (1)Memcached缓存.Redis数据库,Memcached不支持持久化到磁盘 (2)Redis提供 ...

  9. 手写HASHMAP

    手写HASHMAP const int MAXN=10010; const int HASH=10100;            //需要hash的数的总个数最大值 struct HASHMAP { ...

  10. 情绪ABC理论

    美国著名心理学家阿尔伯特·艾利斯 [Albert Ellis 1913.09.27]于20世纪50年代创立, 其理论认为引起人们情绪困扰的并不是外界发生的事件,而是人们对事件的态度.看法.评价等认知内 ...