Preface
序
前言
第1篇 全 局 之 观
第1章 概述
1.1 什么是ns-3
1.2 Hello, world
1.3 ns-3社区
1.4 ns-3简史
1.5 写作习惯
第2章 通览
2.1 下载、编译与运行
2.2 源代码的目录结构
2.3 再谈编译:“./waf configure”命令
2.4 初识脚本
2.4.1 点对点有线网络:first脚本
2.4.2 Wi-Fi无线网络:third脚本
2.4.3 Python脚本
2.5 再探脚本:常用技术解析
2.5.1 脚本助理:助手类
2.5.2 参数输入:属性变量
2.5.3 数据输出:trace变量
2.5.4 行为控制:命令行
2.5.5 计划事件:Schedule函数
2.5.6 回调函数:Callback类
2.5.7 辅助信息:Log系统
2.6 网络是如何模拟的
2.7 信息入口:结点类
2.8 ns-3与编程之夏
第2篇 设 计 之 道
第3章 对象模型架构
第4章 Ptr智能指针
4.1 设计原理
4.2 使用实例
4.3 适用范围
第5章 对象模型的基石:元信息
5.1 什么是元信息
5.2 元信息存储:IidManager类
5.3 元信息管理接口:TypeId类
5.4 TypeId的使用
第6章 Object类
6.1 对象聚合
6.2 Object的创建与获取
第7章 ObjectBase类
7.1 属性配置
7.1.1 创建属性
7.1.2 属性类型
7.1.3 ConfigStore
7.1.4 全局属性
7.2 trace变量
7.2.1 创建trace
7.2.2 trace类型
第3篇 模 拟 之 路
第8章 应用层
8.1 架构与脚本
8.2 内置应用:Application
8.2.1 分组产生器
8.2.2 Internet应用
8.2.3 应用层trace
8.3 自定义应用层协议
8.3.1 Socket原理与使用
8.3.2 Application类
第9章 传输层
9.1 架构与脚本
9.2 TCP
9.2.1 属性与trace
9.2.2 TCP分组头结构
9.2.3 TCP连接建立与关闭
9.2.4 窗口管理
9.2.5 拥塞控制
9.3 UDP
9.3.1 属性与trace
9.3.2 UDP分组头结构
9.3.3 广播与多播
9.4 传输层协议开发
9.5 示例脚本
9.6 非发行版的传输层协议
第10章 网络层
10.1 架构与脚本
10.2 脚本配置与trace
10.3 IP分组头结构
10.4 IP地址分配
10.4.1 手动分配
10.4.2 自动分配
10.5 路由协议
10.5.1 列表路由
10.5.2 打印路由表
10.5.3 静态路由
10.5.4 全局路由
10.6 网络层协议开发
10.6.1 隧道协议
10.6.2 路由协议
第11章 链路与物理层
11.1 有线网络:PPP与CSMA
11.1.1 架构与脚本
11.1.2 属性与trace
11.1.3 队列与错误模型
11.2 无线局域网:Wi-Fi
11.2.1 架构与脚本
11.2.2 属性与trace
11.3 蜂窝网:LTE
11.3.1 网络架构
11.3.2 示例脚本1:无线接入网
11.3.3 示例脚本2:核心网
11.3.4 属性与trace
11.4 其他无线网络模块简介
第12章 数据收集与统计
12.1 一个例子
12.2 数据收集
12.3 数据统计
12.4 局限
第13章 与物理网络交互
13.1 TapBridge:模拟网络 物理结点
13.2 FdNetDevice:模拟结点 物理网络
第14章 网络分组Packet类
14.1 分组结构
14.2 分组创建
14.3 分组头与分组尾
14.4 分段与重组
14.5 标签:Tag类
附录
附录A 网络地址
附录B 第三方ns-3项目
参考文献