【声明】允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。
http://yangfei1.blog.51cto.com/1471532/368585


转载的文章中给的原文地址已经失效,我这里重新整理了原文地址,方便大家查看对照,如果也失效了,可以直接去官网找Tutorial

官网的英文原文地址:
ns-3 Tutorial https://www.nsnam.org/docs/tutorial/html/

原文目录如下:

  1. Introduction 简介
  2. Resources 资源
  3. Getting Started 快速入上手
  4. Conceptual Overview 概念概述
  5. Tweaking Tweak工具
  6. Building Topologies 建立拓扑
  7. Tracing trace系统
  8. Data Collection 数据收集
  9. Conclusion 总结

2 资源

翻译: 伍迪 刘小洋 545139109@qq.com
校稿: Xiaochuan Shen xcs105@zepler.net
编辑: ProbibidoAmor banana.0420@yahoo.com.cn

2.1 网络资源

NS-3用户有必要知道几个重要的网站:

主站点位于http://www.nsnam.org, 提供NS-3系统的基本信息。

详细文档位于主站点的http://www.nsnam.org/documents.html. 您也可以从这个网页上得到系统架构的相关信息。

维基百科网页http://www.nsnam.org/wiki可以作为NS-3主站点的补充。您可以在那里找到用户和开发者的FAQs,以及相关问题的解决途径,第三方的共享代码、论文等等。

NS-3的源码可以在http://code.nsnam.org 找到。读者也可以在名为ns3-dev的源码仓库找到当前的NS-3开发树。还有NS-3的之前发行版本和最新测试版本的代码。

2.2 源码管理系统Mercurial

复杂的软件系统需要一种途径,用于管理和组织对现有代码和文档的修改。有很多种方法可以实现这种管理,读者可能已听说过某些版本控制软件,CVS(Concurrent Version System)或许是其中最常见的一个。

NS-3项目采用Mercurial系统作为它的源码管理系统。尽管读者在阅读本教程时不需要知道太多的Mercurial相关知识,但我们建议读者能够熟悉Mercurial,并用于查看 NS-3源码。

Mercurial的网址为http://www.selenic.com/mercurial/,
读者可以从上面获取到这个软件配置管理系统(Software Configuration management, SCM)的二进制程序和源码。

Mercurial的开发者Selenic提供了一个Mercurial教程,网址为http://www.selenic.com/mercurial/wiki/index.cgi/Tutorial/,以及快速入门指南:http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart/ .

在NS-3的主页上,读者也可以获取到有关Mercurial和NS-3配合使用的最常用信息。

2.3 编译系统Waf

读者下载NS-3的源码到本地系统之后,需要对源码进行编译来生成可执行程序。正如源码管理方式多种多样,编译源码也有多种工具。最常用的工具是make. Make最出名的一点:它可能是编译大型和高可配置型系统最难的一种方法。因此,有很多替代工具被开发出来。最近,大型高可配置系统的编译工具大多选择用Python语言来开发。

NS-3的编译系统采用了Waf。它是用Python开发的新一代编译管理系统。读者不必掌握python,即可编译现有的NS-3项目。如果读者想要扩展现有的NS-3系统,大多数情况只需了解Python知识的很少且非常直观的一个子集。

对于想了解Waf细节的读者,可以访问http://code.google.com/p/waf/ .

2.4 开发环境

正如以上所述,NS-3的脚本由C++或者Python编写。从NS-3.2开始,NS3的API提供了python语言接口,但是所有的模块都是由C++编写的。这里,我们假定读者掌握C++知识和了解面向对象的相关概念。我们将在用到一些高级的概念或者读者可能不熟悉的语言特性、习惯用语或设计模式时适当地花些时间复习它们。但是我们也不希望本教程变成C++教程,所以我们希望读者能够掌握基本的C++命令。在网站上和书籍中,你可以找到无数的关于C++知识的信息。

如果读者是个C++新手,那么您在继续阅读本指南之前可能需要找一些C++教程或者网站,至少必须熟悉一下C++的基本语言特征。例如,Cplusplus教程。

NS-3系统开发过程中使用了许多的GNU 工具链(toolchain)组件。所谓软件的工具链是指在给定环境中可用编程工具的集合。如果读者想要快速地了解一下GNU 工具链所包含的内容,请浏览http://en.wikipedia.org/wiki/GNU_toolchain . NS-3使用gcc,GNU binutils,以及gdb. 但是,我们并不使用GNU编译系统工具(build system tools),既不用make,也不用autotools,而是使用Waf来作为编译管理工具。

通常,NS-3使用者的工作环境为Linux或者类Linux系统。对于Windows环境,有几种可以不同程度模拟Linux环境的软件,比如Cygwin。NS-3支持在Cygwin环境下的开发。Windows用户可以浏览http://www.cygwin.com/ 获取该软件(虽然有许多工程维护者使用MinGW,但是MinGW现在还没有得到官方支持)。Cygwin可以提供许多流行的Linux系统命令。但是,某些情况下它也会出现问题,因为它毕竟只是Linux系统的模拟。Cygwin和Windows中其他程序的交互也有可能会导致程序出现问题。

如果读者正在使用Cygwin或者MinGW;并使用着Logitech的某些软件产品,我们或许可以让您少点麻烦:建议您去看一看MinGW FAQ。

搜索Logitech并阅读FAQ条目:“为什么当我编译源码时,make经常崩溃,留下一个sh.exe.stackdump文件”。无论您相信与否,当运行Logitech时,Logitech 进程监视器潜入了每个正在系统中运行的动态连接库(DLL)当中。它可能导致您的Cygwin或者MinGw的动态连接库奇怪地中止,常常也会阻止调试器的运行。所以当运行Cygwin的时候,一定要小心您的Logitech软件。

替代Cygwin的一种选择是安装虚拟机,比如在VMware上安装Linux虚拟机。

2.5 套接字编程

我们假定读者对本教程所举例子中的Berkeley套接字API基本熟悉。如果您不了解套接字,我们建议您学习一下这些API和一些常见的使用例程。TCP/IP Sockets in C这本书可以帮助您很好地理解TCP/IP套接字。

网站http://cs.baylor.edu/~donahoo/practical/CSockets/ 包含了Socket in C书中所举例子的源码。

如果读者理解了该书中的前四章(如果读者没有这本书的话,可以看上面网站中的源代码),您会更好的理解本教程的内容。这里还有一本关于多播套接字(Multicast Sockets)的书籍(Multicast Sockets, Makofske and Almeroth)。如果您想学习本书中有关多播的例子,该书里面有些资料您可能需要了解。

NS3 Tutorial 中文版:第二章 资源相关推荐

  1. NS3_Tutorial 中文版: 第一章 简介 第二章 资源

    [致谢]: 感谢关注NS3 Tutorial中文版的广大网友们,感谢NS3翻译小组,感谢初稿的翻译者们,感谢审稿和编辑们!!!   (详细的名单请查看博文翻译Tutorial) 声明:引用和转载相关内 ...

  2. NS3 Tutorial 中文版:第四章 概念概述

    [声明]允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. http://yangfei1.blog.51cto.com/1471532/368589 ht ...

  3. NS3 Tutorial 中文版:第三章 快速上手

    [声明]允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. http://yangfei1.blog.51cto.com/1471532/368586 ht ...

  4. mimics教程中文版——第二章

    图片都没掉了,一张一张上传太麻烦,完整版等待资源上载. 部分版:http://download.csdn.net/detail/aaronwxb/4494403 第二章 Mimi 本教程的第二个例子中 ...

  5. OGRE 3D 1.7 Beginner‘s Guide中文版 第二章

    文章来源:http://www.cnblogs.com/oneDouble/articles/2505549.html [ 第二章 Ogre之场景绘图 ] [ 这章将会介绍给我们场景绘图的一些概念和如 ...

  6. AMBA5 AHB协议规范(AHB5,AHB-Lite)中文版-第二章 信号描述

    第二章 信号描述 这一章描述了协议信号.它包含以下部分: -Global signals on page 2-20. -Master signals on page 2-21. -Slave sign ...

  7. Tensorflow官方文档中文版——第二章(瞎奖杯写)

    包含如下几个部分: 1.面向机器学习初学者的 MNIST 初级教程 2.面向机器学习专家的 MNIST 高级教程 3.TensorFlow 使用指南 4.卷积神经网络 5.单词的向量表示(word e ...

  8. CakePHP 2.x CookBook 中文版 第二章 安装

    安装 CakePHP 很容易安装.最小安装只要有一个 web 服务器和一份 Cake 的副本,就足够了!本手册主要聚焦于在 Apache 上安装 Cake(因为 Apache 最通用), 你也可以在 ...

  9. Java Persistence with MyBatis 3(中文版) 第一章 MyBatis入门

    本章将涵盖以下话题: ž  MyBatis是什么? ž  为什么选择MyBatis? ž  MyBatis安装配置 ž  域模型样例 1.1 MyBatis是什么 MyBatis是一个简化和实现了Ja ...

最新文章

  1. shell [] [[ ]] {}区别
  2. 谷歌相册也不能无限白嫖了,「地主家」也烧不起免费网盘
  3. Flash,一次Bug的思考
  4. leetcode算法题--最后一块石头的重量 II★
  5. getInitParameter方法
  6. 【设计模式】学习笔记---单例模式
  7. Lesson 4.1-4.2 逻辑回归模型构建与多分类学习方法逻辑回归参数估计
  8. 6 个前端开发必备工具,提高你的生产力
  9. flash一个按钮控制动画_PLC三组灯用一个按钮控制
  10. 从里面学到的关于过去的经验 后篇
  11. 理解和使用SQL Server中的并行
  12. l360清零软件无响应_张店楼顶商业广告全面“清零”!城市“天际线”颜值再刷新...
  13. Python实现本机网络流量监视器
  14. 历史上的今天:美团网正式上线;Dropbox 的创始人出生;PS2 游戏机问世
  15. 牛人整理的统计学教材
  16. 【bzoj1712】[Usaco2007 China]Summing Sums 加密 矩阵乘法
  17. linux内核 address_space 结构
  18. 【学习笔记】从eXeScope到汇编与反汇编、加壳与脱壳的理解
  19. Excel汇总大师破解版 v1.6.8 免安装绿色版 Excel合并拆分
  20. L2-1 特立独行的幸福 (25分)

热门文章

  1. 原创程序|基于GDAL的遥感影像批量处理工具介绍(三)
  2. 含泪向小米贱卖处理器? 联发科:断章取义
  3. 云视频会议已成未来发展必然趋势
  4. 论文笔记:MICCAI2018 Cell Detection with Star-convex Polygons
  5. 网站维护怎么做?网站维护内容有哪些
  6. 手机浏览器找不到服务器,苹果手机的Safari浏览器找不到服务器怎么办?
  7. Java Web课程设计
  8. 成为oracle白金会员,华为成为Linux基金会白金会员
  9. 求当前高度=n时,值x=多少?求解题思路
  10. 微信运营——利用python自动加微信(通往销冠之路)