NS2+Gnutellasim环境的搭建

2024-03-21 19:32
文章标签 搭建 环境 ns2 gnutellasim

本文主要是介绍NS2+Gnutellasim环境的搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于NS2和Gnutelasim环境的搭建,其实网上有许多介绍和说明,有些还非常详细。但是我按照网上的各种说明试过许多遍,一路走来非常艰难,最终也未搭建成功,最后还是自己摸索出了真正可行的安装过程,这里做个总结。
Gnutellasim是基于NS2的,所以首先得安装NS2.
在安装之前,必须先浏览两个网站,对整体有个了解,相关软件(源码)也需要在里面下载:
NS2官网: http://www.isi.edu/nsnam/ns/
Gnutellasim官网: http://www.cc.gatech.edu/computing/compass/gnutella/

安装NS2有两种选择,一种是安装在Windows+cygwin平台上,另一种是直接安装在Linux环境中。当然,早期的NS2还有直接在Windows中编译安装的,但非常复杂,并且从2.26版本之后就不再支持这种方式了。
这里主要详细介绍直接在Linux中安装NS2和Gnutellasim的方法,由于Gnutellasim已停止更新,只能在NS2.26及更早的版本上安装(官网上如是说,更高版本我没试过,也许也可以),因此,本文接下来详细介绍NS2.26+Gnutellasim的安装过程。我使用的Linux版本为Ubuntu 8.04
安装过程总体包括如下步骤:
1、配置安装NS2需要的环境,包括gcc/g++,libxmu-dev(nam需要)等
2、安装NS2.26
3、配置安装Gnutellasim需要的环境,主要是PDNS
4、安装Gnutellasim
下面逐步介绍
一、配置安装NS2需要的环境
在Linux下安装NS2,本来是非常方便的,只需提供其所需要的编译环境即可。但是之后要案装的Gnutellasim却跟高版本的gcc/g++不兼容,如果这里直接安装Ubuntu默认的gcc/g++的话,之后的苦就有得受了。为了避免之后的麻烦(从我的经历来看,非常痛苦!!!),必须安装低版本的gcc/g++(估计至少3.0以下)。但是,使用Ubuntu8.04根本没法装上如此低版本,默认的是4.2。那怎么才能安装低版本的gcc/g++(我用的是2.95)呢?我采取的办法是将Ubuntu的更新源换成Ubuntu 6.06,在里面我找到了2.95。接下来,安装:
1、apt-get install build-essential        #必需,否则g++装不上
2、在新立得中找到gcc/g++ 2.95相关包,安装
3、apt-get install libxmu-dev

二、安装NS2.26
相关介绍网上很多,没什么问题。
Getting Older Versions of Ns: http://www.isi.edu/nsnam/dist/
建议下载allinone的包,这样安装起来简便许多。

三、配置安装Gnutellasim需要的环境
其实这个步骤在Gnutellasim的官网上指明了,但是很容易被忽略,所以特意提出来说。
原文中是这么描述的:
gnusim-ns2.26-v1.0.tgz for ns2 version 2.26  (apply pdns patch first!)
安装Gnutellasim之前必须先打上PDNS的补丁,即使你用不着PDNS!!!。如果忽略了这点的话,ns执行程序可以成功编译生成,但是运行起示例程序时,出现的问题会让你很头痛的。
如果不需要使用PDNS,这里只是需要打上PDNS的补丁包即可,并不需要把PDNS装上。打补丁方法为:
1、下载pdns patch,解压到ns-allinone-2.26所在的目录下
2、patch -b -p1 < pdns-2.26_patches-v2

四、安装Gnutellasim
官网上有详细说明。由于我没打算使用PDNS,所以就直接在NS2上安装了,在PDNS上安装要复杂些。
这里安装时还会遇到一个小问题,解决方法只要把以下文件中的.relid'`替换成.relid`即可:
ns-allinone-2.26/tcl8.3.2/unix/configure
ns-allinone-2.26/tcl8.3.2/unix/tcl.m4
ns-allinone-2.26/tk8.3.2/unix/configure
ns-allinone-2.26/tk8.3.2/unix/tcl.m4
ns-allinone-2.26/otcl-1.0a8/configure

按照以上步骤安装之后,Gnutellasim的示例脚本应该就可以跑起来了。

这篇关于NS2+Gnutellasim环境的搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/833680

相关文章

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源