ImageVerifierCode 换一换
格式:DOCX , 页数:54 ,大小:72.52KB ,
资源ID:1026551      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1026551.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(NS3中文教程详解文档格式.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

NS3中文教程详解文档格式.docx

1、由于NS-3能生成.pcap文件,因此可以使用类似于WireShark的软件对数据进行分析tcpdump另一种包嗅探器。在Linux下使用CLI进行数据分析2 资源 网络资源NS-3用户有必要知道几个重要的网站: 主站点位于,提供NS-3系统的基本信息。详细文档位于主站点的 您也可以从这个网页上得到系统架构的相关信息。维基百科网页可以作为NS-3主站点的补充。您可以在那里找到用户和开发者的FAQs,以及相关问题的解决途径,第三方的共享代码、论文等等。NS-3的源码可以在找到。读者也可以在名为ns3-dev的源码仓库找到当前的NS-3开发树。还有NS-3的之前发行版本和最新测试版本的代码。源码管

2、理系统Mercurial复杂的软件系统需要一种途径,用于管理和组织对现有代码和文档的修改。有很多种方法可以实现这种管理,读者可能已听说过某些版本控制软件,CVS(Concurrent Version System)或许是其中最常见的一个。NS-3项目采用Mercurial系统作为它的源码管理系统。尽管读者在阅读本教程时不需要知道太多的Mercurial相关知识,但我们建议读者能够熟悉Mercurial,并用于查看NS-3源码。Mercurial的网址为,读者可以从上面获取到这个软件配置管理系统(Software Configuration management, SCM)的二进制程序和源码。M

3、ercurial的开发者Selenic提供了一个Mercurial教程,网址为,以及快速入门指南: .在NS-3的主页上,读者也可以获取到有关Mercurial和NS-3配合使用的最常用信息。 编译系统Waf 读者下载NS-3的源码到本地系统之后,需要对源码进行编译来生成可执行程序。正如源码管理方式多种多样,编译源码也有多种工具。最常用的工具是make. Make最出名的一点:它可能是编译大型和高可配置型系统最难的一种方法。因此,有很多替代工具被开发出来。最近,大型高可配置系统的编译工具大多选择用Python语言来开发。NS-3的编译系统采用了Waf。它是用Python开发的新一代编译管理系统

4、。读者不必掌握python,即可编译现有的NS-3项目。如果读者想要扩展现有的NS-3系统,大多数情况只需了解Python知识的很少且非常直观的一个子集。对于想了解Waf细节的读者,可以访问 . 开发环境正如以上所述,NS-3的脚本由C+或者Python编写。从开始,NS3的API提供了python语言接口,但是所有的模块都是由C+编写的。这里,我们假定读者掌握C+知识和了解面向对象的相关概念。我们将在用到一些高级的概念或者读者可能不熟悉的语言特性、习惯用语或设计模式时适当地花些时间复习它们。但是我们也不希望本教程变成C+教程,所以我们希望读者能够掌握基本的C+命令。在网站上和书籍中,你可以找

5、到无数的关于C+知识的信息。如果读者是个C+新手,那么您在继续阅读本指南之前可能需要找一些C+教程或者网站,至少必须熟悉一下C+的基本语言特征。例如,Cplusplus教程。NS-3系统开发过程中使用了许多的GNU 工具链(toolchain)组件。所谓软件的工具链是指在给定环境中可用编程工具的集合。如果读者想要快速地了解一下GNU 工具链所包含的内容,请浏览 . NS-3使用gcc,GNU binutils,以及gdb. 但是,我们并不使用GNU编译系统工具(build system tools),既不用make,也不用autotools,而是使用Waf来作为编译管理工具。通常,NS-3使用

6、者的工作环境为Linux或者类Linux系统。对于Windows环境,有几种可以不同程度模拟Linux环境的软件,比如Cygwin。NS-3支持在Cygwin环境下的开发。Windows用户可以浏览获取该软件(虽然有许多工程维护者使用MinGW,但是MinGW现在还没有得到官方支持)。Cygwin可以提供许多流行的Linux系统命令。但是,某些情况下它也会出现问题,因为它毕竟只是Linux系统的模拟。Cygwin和Windows中其他程序的交互也有可能会导致程序出现问题。如果读者正在使用Cygwin或者MinGW;并使用着Logitech的某些软件产品,我们或许可以让您少点麻烦:建议您去看一看

7、MinGW FAQ。搜索Logitech并阅读FAQ条目:“为什么当我编译源码时,make经常崩溃,留下一个文件”。无论您相信与否,当运行Logitech时,Logitech 进程监视器潜入了每个正在系统中运行的动态连接库(DLL)当中。它可能导致您的Cygwin或者MinGw的动态连接库奇怪地中止,常常也会阻止调试器的运行。所以当运行Cygwin的时候,一定要小心您的Logitech软件。替代Cygwin的一种选择是安装虚拟机,比如在VMware上安装Linux虚拟机。套接字编程我们假定读者对本教程所举例子中的Berkeley套接字API基本熟悉。如果您不了解套接字,我们建议您学习一下这些A

8、PI和一些常见的使用例程。TCP/IP Sockets in C这本书可以帮助您很好地理解TCP/IP套接字。网站包含了Socket in C书中所举例子的源码。如果读者理解了该书中的前四章(如果读者没有这本书的话,可以看上面网站中的源代码),您会更好的理解本教程的内容。这里还有一本关于多播套接字(Multicast Sockets)的书籍(Multicast Sockets, Makofske and Almeroth)。如果您想学习本书中有关多播的例子,该书里面有些资料您可能需要了解。NS3的两个例子1. /* -*- Mode:C+; c-file-style:gnu; indent-t

9、abs-mode:nil; -*- */ );2. (PacketSize, UintegerValue (1024);3. 4. ApplicationContainer clientApps = (0);Seethe5. *GNUGeneralPublicLicenseformoredetails.6. 7. Youshouldhavereceivedacopyof8. alongwiththisprogram;ifnot,writetoFreeSoftware9. Foundation,Inc.,59TemplePlace,Suite330,Boston,MA02111-1307USA1

10、0. */11. #includens3/12. #include13. #include14. #include15. #include16. #include17. );18. (,UintegerValue(1024);19. ApplicationContainerclientApps=20. (nWifi-1);21. (Seconds);22. 23. Ipv4GlobalRoutingHelper:PopulateRoutingTables();24. Simulator:Stop25. third26. (0);27. (0),true);28. Run29. Destroy3

11、0. return0;31. NS3中文教程:3下载及编译软件首先感谢此稿的翻译工作人员,正是因为他们的劳动才让我们这些初学者有捷径可取。下载ns-3从现在起,我们假定读者使用的工作环境为Linux或者仿Linux环境(Linux, Cygwin等等.) 并且已经安装了可用的GNU工具链,而且还安装了Mercurial(分布式版本控制系统)和Waf软件。细节已经在ns-3网页中详述过,参见以下链接:源码可以在网站上的Mercurial源码库下载到.你也可以从链接处下载一个tar格式压缩包,或者直接使用Mercurial从源码库下载。除非有特殊需要,我们推荐使用Mercurial从源码库下载。t

12、ar格式压缩包下载,请参见本节最后部分。最简单的方法就是使用Mercurial源码库下载一个ns-3-allinone压缩包,此压缩包内含一套脚本集来管理各种子系统下的ns-3下载和安装。我们推荐你使用这个压缩包来简化你的ns-3安装。 使用Mercurial下载ns-3作为练习,我们首先在home目录下建立一个目录并取名为repos,用来存放本地Mercurial源码库,注意:在本教程随后内容中,我们假定你已经这样做了。如果使用如下的方法,可以在Linux的shell中下载到一份ns-3-allinone软件包(假定你已经安装了Mercurial):cdmkdir reposcd repos

13、hg clone 当Mercurail的hg命令执行后,可以看到如下结果:destination directory: ns-3-allinonerequesting all changesadding changesetsadding manifestsadding file changesadded 31 changesets with 45 changes to 7 files7 files updated, 0 files merged, 0 files removed, 0 files unresolved当clone命令运行结束以后,在前述建立的repos目录下,会出现一个ns-3

14、-allinone目录,而且含有如下文件:* * README 注意:你实际上仅仅下载了一些Python脚本,下一步就是利用这些脚本根据需要下载并来安装ns-3软件包。如果你访问如下链接:就会发现若干源码库,其中很多是ns3开发团队专用的。其中在源码库org/你会发现名为的源码库,这是ns-3的第一个稳定版本。还有一些分散的源码库名为,它为保留了参考记录。保持这些文件的一致性是非常重要的,尤其是当你想对源码库做一个回归测试时。至少做一次测试来验证所有的程序都正确编译了。当前的开发版ns-3的快照存放在中;相关的参考记录存放在链接中。 ns3开发人员会尽量保持源码库中的代码处于一致,工作的状态,

15、但是他们仍在开发中,有一些未发布过的代码。所以如果你不需要最新的特性的话还是考虑使用发行版。由于发布版的版本号在变化中,我在指南中还是继续使用通常不变的ns-3-dev,但是你可以根据自己的需要选择其他的版本,并替换这里的”ns-3-dev”,(例如, 或,在下文中,你可以通过访问源码库列表或者访问ns3开始网页找到最新的ns-3发布版软件。当你从源码库下载完后,继续切换进入你自己建立的ns-3-allinone目录中。我们现在使用脚本来下载ns-3需要使用的各个部件。继续在你的shell中输入以下命令 (如果你想使用任意发行版你可以将ns-3-dev替换为你选择的发行版的名字,例如 和)。.

16、/ -n ns-3-dev -r ns-3-dev-ref-traces注意,-n选项的默认参数为ns-3-dev,-r选项的默认参数为ns-3-dev-ref-traces,所以上述命令中这两个选项的参数实际上是多余的。我们使用这个例子来描述如何指定源码库。你只需简单键入如下命令就可以使用默认参数来下载ns-3-dev:./当hg (Mercurial)命令执行时,你可以看到如下的信息:# Get NS-3Cloning ns-3 branch=hg clone ns-3-devChapter 3: Getting Started 8added 4634 changesets with 16

17、500 changes to 1762 files870 files updated, 0 files merged, 0 files removed, 0 files unresolved这些输出信息显示下载脚本已经从源码库中下载到了实际的ns-3源码,紧接着,你就会看到这样的信息:# Get the regression tracesSynchronizing reference traces using Mercurial.hg clone ns-3-dev-ref-tracesadded 86 changesets with 1178 changes to 259 files208 f

18、iles updated, 0 files merged, 0 files removed, 0 files unresolved这表明下载脚本为你下载了参考记录文件。下载脚本被设计成自适应的,它能检测在一些系统平台上某些ns-3模块不被支持,在你的系统平台上,你可能看不到这些系统不支持的源码被下载。然而,在大多数系统平台上这样的过程会显示如下:# Get PyBindGenRequired pybindgen version:Trying to fetch pybindgen; this will fail if no network connection is available. Hit

19、 Ctrl-= bzr checkout -rrevno:640 pybindgen pybindgenFetch was successful.这些信息显示了下载脚本在为你下载Python绑定生成器的过程,下一步你就可能看到如下的信息(不同的系统平台表现有所不同),# Get NSCRequired NSC version: nsc from clone nscadded 273 changesets with 17565 changes to 15175 files10622 files updated, 0 files merged, 0 files removed, 0 files u

20、nresolved这些信息显示了下载脚本在为你下载网络仿真器支架程序(NSC)的过程。当复制命令结束,你在/repos/ns-3-allinone目录下会有几个新目录:* * ns-3-dev-ref-traces/ pybindgen/ * ns-3-dev/ nsc/ README 继续进入ns-3-dev目录,你会见到如下的文件:AUTHORS examples/ regression/ scratch/ waf*bindings/ LICENSE src/ * ns3/ RELEASE_NOTES utils/ wscriptdoc/ README samples/ VERSION 现

21、在可以准备编译ns-3软件了。 使用Tarball下载ns-3使用tarball下载ns-3比使用Mercurail下载ns-3要简单一些,因为需要下载的各个部分都已经预先被打包在一个压缩包中了,你只需要选择一个发行版版本,下载并且解压就可以。如上所述,在Mercurial下载方法中,是在home目录下创建一个repos目录,保存本地Mercurial源码库。你也可以建立一个tarball目录来下载。(注意:本教程后面会假定你把它下载到了repoa目录,所以请留意这个选择)。如果你选择了tarballs方法下载,你可以键入如下命令来下载一份ns-3的发行版 (当然,可以根据需要选择你想要的版本

22、):mkdir tarballscd tarballswget xjf 如果你切换到目录,你会看到下述文件:* README pybindgen-/ 现在就可以编译ns-3软件包了。 编译ns-3 使用编译如果你是第一次编译ns-3软件包,建议使用allinone环境,它会为你以最常用的方式配置工程。切换到你在上文下载一节中创建的目录下。如果你使用Mercurial下载,请进入/repos目录下的ns-3-allinone目录,如果你使用tarball下载,找到/tarballs目录下类似的目录,键入如下的命令,并请耐心等待:编译脚本开始编译下载的ns3时,你会看到大量常见的编译器输入信息。最

23、后你会看到如下编译成功的好消息:Waf: Leaving directory /home/craigdo/repos/ns-3-allinone/ns-3-dev/buildbuild finished successfully 一旦工程编译好,你就可以不再使用ns-3-allinone脚本包了。你已经从其中获取必要的东西,现在是你直接同Waf交互的时候了,它位于ns-3-dev目录中,并不在ns-3-allinone目录中。切换到ns-3-dev目录下(或者你下载的版本的相应目录下):cd ns-3-dev使用Waf编译我们使用waf来配置和编译ns-3工程软件包,这一点不是严格必须的,但是

24、做一个简单的介绍是很有必要的,起码可以了解如何修改工程的配置。也许你能做出的最有用的配置修改就是编译工程的优化版本了,默认你会将你的工程编译为调试版本,让我们来使工程做出优化的编译。为了通知waf进行优化编译,你需要执行如下的命令:./waf -d optimized configure这会Waf可能会切换到其他目录收集信息. 当编译系统检查各种依存关系时,你可以看到类似如下的输出结果:Checking for program g+ : ok /usr/bin/g+Checking for program cpp : ok /usr/bin/cppChecking for program ar

25、 : ok /usr/bin/arChecking for program ranlib : ok /usr/bin/ranlibChecking for g+ : ok(鉴于长度限制,省略)Checking for program valgrind : ok /usr/bin/valgrind- Summary of optional NS-3 features:Threading Primitives : enabledReal Time Simulator :Emulated Net Device :GNU Scientific Library (GSL) :Tap Bridge :GtkConfigStore :XmlIo :SQlite stats data output :Network Simulation Cradle :Python Bindings :Pytho

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2