NS网络模拟和协议仿真
2010年05月
人民邮电出版社
黄化吉
256
无
以移动通信网络和互联网为代表的信息通信网络,已经成为人们日常生活和工作不可缺少的部分。信息网络技术仍然在不断地完善和发展,大量的工程师和各类研究人员在这一领域工作。在进行网络的规划设计、网络协议的开发、网络路由交换与终端设备的研制等与网络技术研究有关的过程中,需要做大量的实验,由于存在各种条件的限制,不是所有的实验都能够通过物理实现的方法进行,于是基于计算机的网络模拟和协议仿真成为信息网络技术研究的重要手段。目前已经有多种网络模拟的软件,其中NS以其源代码公开、软件模拟平台免费而获得广泛的应用,因为有大量的研究人员使用,人们比较容易获得针对许多特定应用的共享仿真软件。经过人们不断地补充完善,该软件已经成为学术界广泛用于网络技术研究和开发的模拟工具,所获得的结果有很好的仿真效果,同时也很容易进行交流。然而,也正因为NS是一个非商业的软件,其用户界面不可能像商业软件那么友好,有关的帮助文件和介绍说明的资料也不尽完善,能够系统介绍和涵盖NS使用的各个方面的书籍相对也不多,此要熟练掌握NS,并将其作为工具进行网络技术的研究开发并不容易。除上面所说的原因之一,主要问题还在于要真正掌握NS,需要有比较综合的知识:使用NS需要了解TCI语言和C++两种编程语言,特别是对C++编程需要有较高的熟练程度;另外,NS作为一个网络模拟的工具,要使用好它,还要对所要模拟的网络的协议有较深入的理解和认识。这对于一个初学者来说并非易事。另外,即使对于有一定编程经验的读者,在学习NS的过程中,在缺乏指导的情况下,在进行新的协议开发的仿真过程中,也会遇到各种难以预测的困难。《NS网络模拟和协议仿真》在编撰过程中,充分考虑了上述问题以及不同水平的读者的要求,《NS网络模拟和协议仿真》有如下几方面的特点:(1)考虑到初学的读者对NS软件的入门的需要,《NS网络模拟和协议仿真》从基本的NS平台安装、指令功能的介绍,到如何移植和开发网络协议,遵循由浅入深的原则,通过各种示例,全面细致地解析了NS的相关知识点,对书中所有出现的源代码,均给出尽可能详细的解析。(2)使用通俗易懂的语言和丰富的例子,深入地介绍NS的内部架构。通过具体的实例和详细的源代码分析,向读者详细介绍了NS中0TCI与C++的关系,让读者对NS的影像对象机制有深刻的理解,帮助读者系统掌握NS中的层次关系。(3)重点介绍了常用的代码调试工具GDB,通过几个调试实例详细分析了NS模拟仿真过程中可能出现的常见错误,以及出现这些错误的可能的原因,为读者在程序开发的调试阶段解决棘手的问题提供基本的方法。(4)《NS网络模拟和协议仿真》在人民邮电出版社的网站上给出了与《NS网络模拟和协议仿真》配套的在NS上开发基于简化IEEE 802.16dMesh协议的具体实例,给出了实现其基本功能的、具有详细注释的完整源代码。在这个示例中融合了在NS上开发大型网络协议的流程和具体方法,帮助读者从较高的层次去理解和感受使用NS软件开发一套完整协议的过程。读者也可以在此基础上进行无线Mesh网协议的移植和开发。
本书介绍了利用NS软件进行网络模拟和协议仿真的方法,内容既包括NS的安装、Tcl/Otcl语言、NS架构、仿真入门等基础知识,又涵盖了协议的移植、代码调试以及协议开发等有关知识。书中不仅给出了大量具有详尽注解、讨论NS基本功能的源代码程序,而且在人民邮电出版社网站(www.ptpress.com.cn)上提供了一个配套的无线Mesh网协议开发和仿真的完整实例以及本书的示例源代码。 本书适合利用NS软件从事网络研究、开发和性能模拟的工程技术人员阅读,也可作为网络仿真的培训教程,以及高等院校与网络课程相关的实验教程。
第一篇 NS的基本知识 第1章 结论 1.1 NS的背景 1.2 网络模拟涉及的主要知识点 1.3 使用NS进行网络模拟的基本过程 本章小结 第2章 NS的安装和配置 2.1 Linux操作系统环境 2.1.1 Ubuntu安装完成后的设置 2.1.2 Ubuntu上NS必要工具和库文件的安装 2.2 NS安装 2.2.1 环境变量的设置 2.2.2 安装结果的验证 2.2.3 NS安装过程可能出现的错误分析 2.3 使用多个NS版本 本章小结 第3章 Tcl/OTcl语言简介 3.1 Tcl 3.1.1 Tcl编程环境 3.1.2 基本语法 3.1.3 字符串处理 3.1.4 数学运算 3.1.5 流程控制语句 3.1.6 列表 3.1.7 过程 3.1.8 数组 3.2 OTcl 3.2.1 类和对象 3.2.2 类的成员函数和成员变量 3.2.3 类的构造函数和析构函数 3.2.4 类的继承 本章小结 第二篇 NS的架构和网络模拟入门 第4章 NS网络模拟入门 4.1 简单有线网络模型模拟 4.1.1 网络拓扑 4.1.2 模拟仿真脚本代码 4.1.3 仿真的结果分析 4.2 简单无线网络模型仿真 4.2.1 网络拓扑 4.2.2 模拟仿真脚本代码 4.2.3 仿真结果分析 4.3 有线+无线混合模拟 4.3.1 网络拓扑 4.3.2 模拟仿真脚本代码 4.4.3 仿真结果分析 本章小结 第5章 NS的架构 5.1 NS的模拟实现机制 5.1.1 分裂对象模型 5.1.2 离散事件模拟 5.2 OTcl与C++的交互 5.3 NS中的层次关系 5.3.1 层面对应关系 5.3.2 分组的流程 5.3.3 使用NS研究适合的层面 本章小结 第6章 NS的基本组件和使用第三篇 NS仿真辅助及仿真结果分析工具 第7章 NS仿真辅助工具 第8章 gawk语言简介 第9章 gnupiot绘图 第10章 Trace文件分析第四篇 NS学习进阶 第11章 洪泛路由协议的移植 第12章 无线节点通信范围的设置 第13章 扩展NS:业务流的流ID和QoS参数的添加方法 第14章 流量发生器的原理和流量发生器的构建 第15章 基于NS的新协议和算法开发第五篇 代码调试 第16章 调试工具 第17章 NS调试经验附录A 802.16d Mesh工作模式简介附录B 缩略语表 参考文献
插图:用NS进行仿真,使用者需要了解掌握3个方面的知识:掌握网络模拟工具的使用,具有一定的C++编程能力以及熟悉所研究的协议。首先,使用者必须能够比较熟练地掌握网络模拟工具的使用。无论选用何种仿真工具:OPNET、OMNET或是NS,都需要熟悉其使用方法。俗话说“工欲善其事,必先利其器”,工具是用于开发的,如果对工具尚不甚了解,当然难言利用其开展工作。当选用NS进行网络协议开发和仿真时,一个熟悉NS的人有可能几天或者十几天就可以移植并调试完成一个协议的源码,但对一个生手来说,这将是一个漫长的过程。其次,使用者需要掌握一定的编程能力。作为商业的网络仿真软件,OPNET和OMNer都需要使用者具备一定的C/C++编程能力,掌握NS的要求则更高。使用NS进行网络仿真需先分析仿真涉及的层次:基于OTcl编程的层次——若只利用NS自身已有的网络组件就可以完成仿真,则无须修改底层C++代码,这时只需编写OTcl脚本;基于C++和OTcl联合编程的层次——NS自身没有使用者需要的网络组件或NS现有的网络组件不够完善,需要在底层编写C++代码完成组件的添加或修改,然后再编写0TCl脚本仿真。大多数情况下的仿真任务(特别是利用NS进行协议的开发)都是后一种情形,所以对C++做相对深入的了解是不可少的。NS只是我们研究过程中使用的工具,当我们进行网络协议的开发和仿真时,首先要对网络协议有充分的了解,如果我们对所研究的协议内容都尚不熟悉,当然就不可能知道如何设计软件的模块,或者不可能清楚可对NS现有的哪些协议进行改造利用,获得新的协议功能模块。那样的话,即使了解了工具也难以入手做网络协议的仿真和开发。明白网络仿真需要掌握的知识点内容对我们是很有帮助的。有一些NS使用者,想移植他人的代码,可能会由于移植步骤有误而导致失败;有一些NS使用者想修改现有的一些协议,需要添加一些代码,语法错误会导致修改的失败;也有一些人对所需开发的协议没有完全明了,当然也难以成功。在使用NS时,出现问题往往还是综合性的,这实际上是很多人认为NS很难学的一个主要原因。
《NS网络模拟和协议仿真》是由人民邮电出版社出版。
无
对于初学ns2的学生来说,我觉得这是一本很好的书。本书并不像其他许多同类书籍那样死板的按照ns2手册来编写,而是融入了作者自己的经验,仔细读会很有收获。我个人尤其喜欢最后“协议移植”“仿真算法”等章节,很原创很好。
对学习NS网络仿真有用处
书不错,看上去想看,里面的内容还没完全看,现在NS2已经安装成功了,模拟了一个过程。但是想深入了解还是得仔细学习。
这本书对于NS讲的比较深,如果是初学者我不建议大家买,但是如果有一定的基础,这本书还是可以做做参考的,书里面内容很全面。
这本书介绍的比较详细一些,比较好。介绍NS的书很少,这本书还不错。
最好和NS2的原理和应用这本书一起学习,有些内容这里没说清的,可以在那本书里找到答案
ns2的书很少 听别人说这本还算可以 还没读呢 具体好坏要等读之后才能看出来
才看了一点 作者从读者的角度来写 是一本学习NS的好书
我看过好几本NS2的参考书 还就这本讲的不错 值得推荐
大概看了下,感觉还行,应该对NS2的学习会帮助
书的质量不错 印刷清楚 本书的结构层次合理 目录编排有序 有助于初学者入门 在介绍完基础入门之后 深度合理且附有开发实例 值得一看
对于初学者很不错,特别是讲到无线部分
这本书有自己的特点,作者明显具备实践经验
正版,挺好的。。
NS2仿真入门书
书的内容大部分都能从网站上找到,不过整理的还挺清晰的,如果想快速入门,而且英文水平不是很好可以先看看。
印刷纸张实在不敢恭维。。。是那种很白的纸
目前看着不错,继续往下看,入门也算比较清楚,例子不错的
整体不错,书在便宜些更好,书到了要学习鸟。。。。
书还没收到都能评论啊
包装软弱,易损伤
有点难,学不会,可能天资不行吧
刚开始接触,感觉很实用~
写论文用 暂时还没看呢
没有COPY太多NS手册,对研究NS的有帮助,第十五章没有我想象的好,第六章写的很明白清晰,本书的NS版本为2.29
正好需要,就直接在当当上买了,之前还一直缺货,本来两本书一起买的,不用出运费结果只送了一本还要出运费
书还没看,翻了几页,给我的感觉挺舒服。
不是看很懂得说
本书的很多内容是直接从NS手册翻译过来的,大篇幅的粘帖NS源代码。。讲解不系统不清楚。很多概念还没有介绍过就直接用。让人看的心乱如麻啊。。。初学者想用这本书快速上手太不切实际了。。。
此书看似内容不错,但作者根本没把代码写全,很多地方有所保留。
质量勉强凑合
这本书和前面一堆抄NS手册,翻译NS手册的书大不同,至少作者是有NS应用很深厚的经验,算是这类书的一个突破吧
NS2的书不多,这本书简要介绍了一些使用上的内容,涵盖范围广,书中的东西比较基础,适合初学NS2时使用.我在买书之前就用过了一段时间的NS2.以前一直是在论坛上混,这次是冲着书中的GDB买的.感觉还可以.
书中介绍了很多需要注意的地方,还有协议的移植,是手把手教学,比较不容易出错。看了国防工业出版社的那本,更理论些,觉得两本书可以互补。
既有原理 又有程序 看着还不错,里面的程序不知道能不能全面跑通,值得期待
书本缺货,ns2的资料比较少,资料内容大都不详细,软件上手慢
这本书质量很好,信的过,而且发货速度快,非常满意,值得学习
书中详细介绍了NS2的两大部分的类应用,同时配合实例进行了具体讲解,对新手挺有帮助的,推荐!
源码基本可以运行,不错。
书的内容分为基础和提升两部分,基础部分讲解的不是特别清晰。提升的还好,整体感觉这本书对于学习ns2是有帮助的。
也是一本基础入门的书,建议看看看
这本书真是叫一个垃圾,写的非常没有条理,基本的概念还有类都没什么介绍,根本看不懂,后悔买了这么垃圾的一本书,真是浪费时间!
一拿到书,感觉摸不着头脑,慢慢地才能找到门道,例子还没有运行,希望不要有很多错误
对一些基本的知识进行了介绍,但是不够详细,可以作为一本工具书.
正在使用中,质量不错,上课要用的书。。。。
这本书的内容结构组织很科学,很适合初学者应用,很好!!
感觉纸质特别好,内容很实用,对于初学NS-2很有帮助,谢谢卓越