内容简介
《NS网络模拟和协议仿真》介绍了利用NS软件进行网络模拟和协议仿真的方法,内容既包括NS的安装、Tcl/Otcl语言、NS架构、仿真入门等基础知识,又涵盖了协议的移植、代码调试以及协议开发等有关知识。书中不仅给出了大量具有详尽注解、讨论NS基本功能的源代码程序,而且在人民邮电出版社网站上提供了一个配套的无线Mesh网协议开发和仿真的完整实例以及《NS网络模拟和协议仿真》的示例源代码。
《NS网络模拟和协议仿真》适合利用NS软件从事网络研究、开发和性能模拟的工程技术人员阅读,也可作为网络仿真的培训教程,以及高等院校与网络课程相关的实验教程。
目录
- 第一篇NS的基本知识
- 第1章结论
- 1.1NS的背景3
- 1.2网络模拟涉及的主要知识点4
- 1.3使用NS进行网络模拟的基本过程5
- 本章小结6
- 第2章NS的安装和配置
- 2.1Linux操作系统环境7
- 2.1.1Ubuntu安装完成后的设置7
- 2.1.2Ubuntu上NS必要工具和库文件的安装8
- 2.2NS安装8
- 2.2.1环境变量的设置8
- 2.2.2安装结果的验证9
- 2.2.3NS安装过程可能出现的错误分析9
- 2.3使用多个NS版本10
- 本章小结11
- 第3章Tcl/OTcl语言简介
- 3.1Tcl12
- 3.1.1Tcl编程环境12
- 3.1.2基本语法13
- 3.1.3字符串处理14
- 3.1.4数学运算17
- 3.1.5流程控制语句19
- 3.1.6列表26
- 3.1.7过程27
- 3.1.8数组28
- 3.2OTcl30
- 3.2.1类和对象30
- 3.2.2类的成员函数和成员变量30
- 3.2.3类的构造函数和析构函数31
- 3.2.4类的继承31
- 本章小结33
- 第二篇NS的架构和网络模拟入门
- 第4章NS网络模拟入门
- 4.1简单有线网络模型模拟37
- 4.1.1网络拓扑37
- 4.1.2模拟仿真脚本代码38
- 4.1.3仿真的结果分析40
- 4.2简单无线网络模型仿真42
- 4.2.1网络拓扑42
- 4.2.2模拟仿真脚本代码42
- 4.2.3仿真结果分析45
- 4.3有线+无线混合模拟46
- 4.3.1网络拓扑46
- 4.3.2模拟仿真脚本代码47
- 4.4.3仿真结果分析50
- 本章小结51
- 第5章NS的架构
- 5.1NS的模拟实现机制52
- 5.1.1分裂对象模型52
- 5.1.2离散事件模拟59
- 5.2OTcl与C++的交互59
- 5.3NS中的层次关系66
- 5.3.1层面对应关系66
- 5.3.2分组的流程66
- 5.3.3使用NS研究适合的层面69
- 本章小结69
- 第6章NS的基本组件和使用
- 6.1节点70
- 6.1.1节点的结构70
- 6.1.2节点的配置71
- 6.2链路73
- 6.2.1单向链路73
- 6.2.2双向链路74
- 6.3NS的调度器74
- 6.4NS的定时器78
- 6.5协议的分组头80
- 6.5.1协议特定的分组头81
- 6.5.2添加新的分组头类型82
- 6.5.3在模拟中分组头的选择83
- 6.5.4与分组相关的类84
- 6.6NS的链表list91
- 6.6.1链表的源码分析91
- 6.6.2实际用例93
- 6.7Trace文件格式96
- 6.7.1有线网络的Trace格式96
- 6.7.2无线网络的Trace旧格式97
- 6.7.3无线网络的Trace新格式97
- 本章小结99
- 第三篇NS仿真辅助及仿真结果分析工具
- 第7章NS仿真辅助工具
- 7.1数据流生成工具cbrgen103
- 7.2拓扑场景生成工具setdest104
- 7.3简单动画显示工具NAM104
- 7.3.1NAM的使用105
- 7.3.2NAM的界面106
- 本章小结106
- 第8章gawk语言简介
- 8.1gawk处理文档的过程107
- 8.2Pattern和Action108
- 8.2.1Pattern108
- 8.2.2Action109
- 8.3变量109
- 8.3.1内部变量110
- 8.3.2自定义变量110
- 8.4输出打印数据111
- 8.4.1print函数111
- 8.4.2printf函数111
- 8.5Action中的流程控制语句112
- 8.6函数114
- 8.6.1内部函数114
- 8.6.2自定义函数115
- 本章小结115
- 第9章gnupiot绘图
- 9.1绘图环境和工作方式116
- 9.2plot和splot命令116
- 9.2.1plot绘制二维图形117
- 9.2.2splot绘制三维图形120
- 9.3设置图形的显示属性121
- 9.3.1坐标轴121
- 9.3.2Label122
- 9.3.3图的大小和位置123
- 9.4综合技巧绘图实例123
- 本章小结128
- 第10章Trace文件分析
- 10.1性能参数分析模型129
- 10.2网络性能分析131
- 10.2.1OTcl脚本代码131
- 10.2.2gawk程序代码135
- 10.2.3执行分析139
- 本章小结142
- 第四篇NS学习进阶
- 第11章洪泛路由协议的移植
- 11.1协议移植的步骤145
- 11.2洪泛路由协议的原理146
- 11.3洪泛路由协议的移植146
- 11.4验证移植结果149
- 本章小结155
- 第12章无线节点通信范围的设置
- 12.1与通信范围相关的物理层参数156
- 12.2参数的计算157
- 12.2.1Threshold的安装和使用157
- 12.2.2Txpower的安装和使用159
- 12.3节点的参数设置160
- 12.3.1节点的默认参数160
- 12.3.2更改节点的通信范围161
- 12.3.3不同的节点不同的参数162
- 12.3.4验证结果166
- 本章小结167
- 第13章扩展NS:业务流的流ID和QoS参数的添加方法
- 13.1流量发生器的修改方法176
- 13.1.1修改TrafficGenerator类177
- 13.1.2修改流量发生器178
- 13.1.3增加新建参数的默认值178
- 13.2业务代理(Agent)修改179
- 13.3数据分组普通头部修改179
- 13.4打印Trace文件部分修改180
- 13.5修改结果验证181
- 本章小结185
- 第14章流量发生器的原理和流量发生器的构建
- 14.1流量发生器原理186
- 14.1.1流量发生器的数学模型186
- 14.1.2CBR流量发生器模型代码分析189
- 14.2VBR流量发生器191
- 14.3移植步骤194
- 14.4验证结果194
- 本章小结197
- 第15章基于NS的新协议和算法开发
- 15.1模块的体系架构201
- 15.1.1帧同步模块202
- 15.1.2主模块202
- 15.1.3调度树模块204
- 15.1.4消息管理模块205
- 15.1.5邻居管理模块206
- 15.1.6管理消息发送时序协调模块207
- 15.1.7数据调度器模块208
- 15.2接合部分代码209
- 15.3协议整合212
- 15.4场景仿真212
- 15.5仿真分析219
- 15.5.1节点的ID分配219
- 15.5.2调度树结构220
- 15.5.3邻居列表分析220
- 15.5.4节点对管理时序的竞争分析220
- 本章小结222
- 第五篇代码调试
- 第16章调试工具
- 16.1GDB225
- 16.1.1关联GDB调试225
- 16.1.2GDB常用调试命令226
- 16.2tcl-debug229
- 16.2.1tcl-debug的安装229
- 16.2.2tcl-debug的调试方式和调试命令230
- 本章小结230
- 第17章NS调试经验
- 17.1常见错误分析231
- 17.2调试实例232
- 本章小结237
- 附录A802.16dMesh工作模式简介238
- A.1无线Mesh网简介238
- A.2IEEE802.16协议基础239
- A.2.1协议栈参考模型239
- A.2.2节点分类和数据调度方式240
- A.3Mesh模式的帧结构和MAC管理消息241
- A.3.1Mesh模式的帧结构241
- A.3.2Mesh模式下的MAC管理消息242
- A.4节点接入网络过程244
- A.4.1网络扫描,请求入网246
- A.4.2基本能力协商246
- A.4.3节点认证246
- A.4.4节点注册及获取节点ID246
- A.4.5IP、时间以及其余参数配置246
- A.4.6接入完成247
- A.5节点的邻域和扩展邻域247
- A.6Mesh模式管理消息发送时序的协调247
- A.6.1物理邻居列表248
- A.6.2Mesh网络的同步248
- A.6.3MSH-NENT消息的调度249
- A.6.4MSH-NCFG消息和MSH-DSCH消息的调度249
- 小结252
- 附录B缩略语表253
- 参考文献256