预备
目录
第1章 简介
第2章 未文档化的工具(Undocumented Facilities)
第一篇 解释器的接口
第3章 OTcl联接(Linkage)
3.1概念综述
3.2代码综述
3.3 Tcl类
3.3.1 获取Tcl类实例的指针(reference)
3.3.2 调用OTcl过程
3.3.3 从解释器传出或传入结果
3.3.4 错误报告与退出
3.3.5 解释器内的哈希(Hash)函数
3.3.6 解释器上的其它操作
3.4 TclObject类
3.4.1 创建(creating)和撤销(Destroying)TclObjects
3.4.2 变量绑定(Variable Bindings)
3.4.3 变量跟踪(Variable Tracing)
3.4.4 command方法: 定义与调用(Invocation)
3.5 TclClass类
3.5.1 如何绑定静态C++类成员变量
3.6 TclCommand类
3.7 EmbeddedTcl类
3.8 InstVar类
第二篇 模拟器基本知识
第4章 节点和Packet转发
Simulator类
4.1 模拟器初始化
4.2调度器和事件
4.2.1链表调度器
4.2.2 堆调度器
4.2.3 时间队列调度器
4.2.4 实时调度器
4.2.5 ns中调试器时钟的精度
4.3 其他方法
4.4 命令一览
第5章 节点和Packet转发
5.1 节点基础知识
5.2 节点方法:配置节点
5.3 节点配置接口
5.4 分类器
5.4.1地址分类器
5.4.2组播分类器
5.4.3多路分类器
5.4.4哈希分类器
5.4.5复制器
5.5路由模块和分类器组织
5.5.1路由模块
5.5.2路由模块
5.6 命令一览
第6章 链路:简单链路
6.1 链路和简单链路的实例过程
6.2连接器
6.3对象继承
6.4命令一览
第7章 队列管理(Queue Management)和包调度(Packet Scheduling)
7.1 C++中的队列类
7.1.1 队列阻塞(Queue blocking)
7.1.2 PacketQueue类
7.2 示例:丢尾(Drop Tail)
7.3 不同类型的队列对象
7.4 命令一览
7.5 Queue/JoBS
7.5.1 JoBS 算法
7.5.2 配置
7.5.3 跟踪
7.5.4 变量
7.5.5 命令一览
第8章 延时和链路
8.1 LinkDelay类
8.2 命令一览
第9章 ns中的差异服务模块(Differentiated Services Module)
9.1 概述
9.2 实现
9.2.1 DiffServ模型中的RED队列
9.2.2 边际和核心路由器(Edge and core routers)
9.2.3 策略
9.3 配置
9.4 命令一览
第10章 代理(Agents)
10.1 代理声明(state)
10.2 代理函数
10.3 协议代理
10.4 OTcl 链接
10.4.1 创建并操作代理
10.4.2 缺省值
10.4.3 OTcl 函数
10.5 TCP,TCP接收代理的例子
10.5.1 创建Agent
10.5.2 启动代理
10.5.3 在接收端处理输入
10.5.4 在发送端处理响应(Responses)
10.5.5 定时器的实现
10.6 创建一个新的代理
10.6.1 示例:一个“ping”请求器(继承结构)
10.6.2 recv()和timeout()方法
10.6.3 “ping” 代理与OTcl的链接
10.6.4 通过OTcl使用代理
10.7 代理应用程序接口(API)
10.8 各种代理对象
10.9 命令一览
第11章 定时器(Timers)
11.1 C++抽象基类TimerHandler
11.1.1 定义一个新的定时器(timer)
11.1.2 示例:Tcp重传定时器
11.2 OTcl timer 类
11.3 命令一览
第12章 分组头及其格式
12.1 协议特定的分组头
12.1.1 添加新的分组头类型
12.1.2 在模拟中选择包含的分组头
12.2 Packet类
12.2.1 Packet类
12.2.2 p_info类
12.2.3 hdr_cmn类
12.2.4 PacketHeaderManager类
12.3 命令一览
第13章 错误模型(Error Model)
13.1 实现
13.2 配置
13.3 多态错误模型
13.4 命令一览
第14章 局域网
14.1 Tcl配置
14.2 局域网的组成
14.3 Channel类
14.3.1 Channel状态
14.3.2 例子:物理层的Channel和分类器
14.3.3 C++中的Channel类
14.4 MacClassifier类
14.5 MAC类
14.5.1 Mac的状态
14.5.2 Mac的方法
14.5.3 C++中的Mac类
14.5.4 基于CSMA的MAC
14.6 LL(链路层)类
14.6.1 C++中的LL类
14.6.2 例子:链路层的配置
14.7 LanRouter类
14.8 其它的组件
14.9 局域网和ns路由
14.10 命令一览
第15章 NS中的寻址结构(修正版)
15.1 缺省的地址格式
15.2 层次式的地址格式
15.2.1 缺省的层次式设置
15.2.2 特定的层次式设置
15.3 扩展的节点地址格式
15.4 扩展port-id域
15.5 设置地址格式的错误
15.6 命令一览
第16章 NS中的移动网络
16.1 NS的基础无线模型
16.1.1 移动节点:创建无线拓扑
16.1.2 创建节点移动模型
16.1.3 移动节点的网络组件
16.1.4 移动网络的各种MAC层协议
16.1.5 移动网络的各种路由代理
16.1.6 Trace支持
16.1.7 无线traces 的修订格式
16.1.8 无线场景中节点移动和流量连接的生成
16.2 CMU的移动模型扩展
16.2.1 有线-无线通信场景
16.2.2 移动IP
16.3 NS老版本(2.1b5或其后的)的代码融合到目前版本(2.1b8)的改动列表
16.4 命令一览
第17章 NS中的卫星网络
17.1 卫星模型概述
17.1.1 同步轨道卫星
17.1.2 近地轨道卫星
17.2 使用卫星扩展
17.2.1 节点和节点位置
17.2.2 卫星链路
17.2.3 切换
17.2.4 路由
17.2.5 Trace支持
17.2.6 差错模型
17.2.7 其它配置选项
17.2.8 nam支持
17.2.9 有线与无线节点的综合
17.2.10 示例场景
17.3 实现
17.3.1 链表的使用
17.3.2 节点结构
17.3.3 卫星链路详述
17.4 命令一览
第18章 无线传播模型
18.1 Free space(自由空间) 模型
18.2 Two-ray ground reflection(双径地面反射)模型
18.3 Shadowing(阴影)模型
18.3.1 背景
18.3.2 Shadowing模型的使用
18.4 通信范围
18.5 命令一览
第19章 ns中的能量模型
19.1 能量模型的C++类
19.2 OTcl 接口
第20章 定向扩散(Directed Diffusion)
20.1 什么是定向扩散?
20.2 ns中的diffusion模型
20.3 ns中diffusion的一些mac方面的问题
20.4 diffusion中运用过滤器的APIs
20.5 Ping一个diffusion应用实现的例子
20.5.1 ping应用程序的c++实现
20.5.2 ping应用程序的tcl API
20.6给ns添加yr diffusion应用程序的需求
20.7 定向扩散的测试组
20.8 命令一览
第21章 XCP:显式拥塞控制协议
21.1 什么是 XCP?
21.2 在 ns 中实现 XCP
21.2.1 XCP 终端
21.2.2 XCP 路由器
21.2.3 XCP 队列
21.3 XCP 示例脚本
21.4 XCP 测试集
第22章 延迟器(DelayBox): 每条数据流的时延与丢包
22.1实现细节
22.2 示例
22.3 命令一览
第23章 在NS-2.31中实现IEEE 802.15.4的变化
23.1 关闭无线电(radio)
23.2 其它变化
第三篇 支持
第24章 ns调试
24.1 Tcl层次的调试
24.2 C++层次的调试
24.3 混合调试Tcl和C
24.4 内存调试
24.4.1 使用dmalloc
24.4.2 内存开销说明
24.4.3 Dmalloc收集的数据统计
24.5 内存泄漏
24.5.1 OTcl
24.5.2 C/C++
第25章 对数学的支持
25.1 随机数生成器
25.1.1 RNG种子
25.1.2 OTcl支持
25.1.3 C++支持成员函数:
25.2 随机变量
25.3积分
25.4 ns-random
25.5 一些数学支持相关的对象
25.6 命令一览
第26章 对跟踪和监控的支持
26.1 对跟踪的支持
26.1.1 Otcl 的帮助函数
26.2 类库的支持和示例
26.3 C++的跟踪类
26.4 跟踪文件格式
26.5 包类型
26.6 队列监测
26.7 Per-flow 监测
26.7.1 流监测
26.7.2 流监测的跟踪格式
26.7.3 流的类
26.8 命令一览
第27章 对Test Suite 的支持
27.1 Test Suite 组件
27.2 编写一个test suite
第28章 ns代码风格
28.1 缩进风格
28.2 变量命名约定
28.3 其他约定
第四篇 路由
第29章 单播路由
29.1 模拟管理的接口(The API)
29.2 特殊路由的其他配置机制
29.3 协议专有的配置参数
29.4 路由的实质和体系结构
29.4.1 类
29.4.2动态网络和多径的接口
29.5 内部协议
29.6单播路由对象
29.7命令一览
第30章 组播路由
30.1 组播API
30.1.1 组播行为的监控配置
30.1.2 协议的特殊配置
30.2多播路由的内部细节
30.2.1 类
30.2.2 ns中其它类的扩展
30.2.3 协议的内部细节
30.2.4 内部变量
30.3 命令一览
第31章 动态网络 (Network Dynamics)
31.1 用户层接口API
31.2 内部构造
31.2.1 类rtModel
31.2.2 类rtQueue
31.3 与单播路由的互动
31.3.1 其他类的扩展
31.4 目前网络动态API中的缺陷
31.5 命令一览
第32章 分层路由(Hierarchical Routing)
32.1 分层路由概述
32.2 分层路由的使用
32.3 创建大规模分层拓扑
32.4 带SessionSim的分层路由
32.5 命令一览
第五篇 传送(Transport)
第33章 UDP Agent
33.1 UDP Agents
33.2命令一览
第34章 TCP Agents
34.1 One-Way TCP Senders
34.1.1 The Base TCP Sender (Tahoe TCP)
34.1.2 配置
34.1.3 简单的配置
34.1.4 其它配置参数
34.1.5 Other One-Way TCP Senders
34.2 TCP Receivers (sinks)
34.2.1 The Base TCP Sink
34.2.2 Delayed-ACK TCP Sink
34.2.3 Sack TCP Sink
34.3 Two-Way TCP Agents (FullTcp)
34.3.1 Simple Configuration
34.3.2 BayFullTcp
34.4 Architecture and Internals
34.5 Tracing TCP Dynamics
34.6 One-Way Trace TCP Trace Dynamics
34.7 One-Way Trace TCP Trace Dynamics
34.8 命令一览
第35章 SCTP代理
35.1 基类SCTP代理
35.1.1 配置的参数
35.1.2 命令
35.2 扩展
35.2.1 HbAfterRto SCTP
35.2.2 MultipleFastRtx SCTP
35.2.3 Timestamp SCTP
35.2.4 MfrHbAfterRto SCTP
35.2.5 MfrHbAfterRto SCTP
35.3 动态跟踪SCTP
35.4 SCTP应用
35.5 脚本例子
35.5.1 单穴例子
35.5.2 多穴例子
第36章 Agent/SRM
36.1 配置
36.1.1 琐细的配置
36.1.2 其它配置参数
36.1.3 统计资料(Statisties)
36.1.4 跟踪(Tracing)
36.2 体系结构(Architecture)及内部(Internals)
36.3 分组处理:处理接收到的消息(messages)
36.4 丢包检测(Loss Detection)—SRMinfo类
36.5 丢包恢复(Loss Recovery)对象
36.6 Session对象
36.7 扩展Agent基类
36.7.1 固定的定时器(Fixed Timers)
36.7.2 适应性定时器(Adaptive Timers)
36.8 SRM对象
36.9 命令一览
第37章 PLM
37.1 配置
37.2 分组对(Packet Pair)数据源发生器
37.3 PLM协议的体系结构
37.3.1 PLM数据源(Source)的实例化
37.3.2 PLM接收器的实例化
37.3.3 分组的接收(Reception)
37.3.4 丢包检测
37.3.5 层的连接与脱离
37.4 命令一览
第六篇 应用(Application)
第38章 应用程序和传输代理API
38.1 Application类
38.2 传输代理API
32.2.1 把传输代理放在节点之上
38.2.2 将应用程序放在代理之上
38.2.3 通过系统调用使用传输代理
38.2.4 代理调用应用程序
38.2.5 示例
38.3 TrafficGenerator类
38.3.1 示例
38.4 模拟应用程序:Telnet和FTP
38.5 应用程序对象
38.6 命令一览
第39章 像应用程序的网络高速缓存
39.1 在ns中使用应用程序级数据
39.1.1 ADU
39.1.2 在应用程序之间传递数据
39.1.3 在UDP上传输用户数据
39.1.4 在TCP上传输用户数据
39.1.5 与用户数据处理相关的类的层次结构
39.2 网络高速缓存类的概貌
39.2.1 管理HTTP连接
39.2.2 管理网络页面
39.2.3 调试
39.3 表示网页
39.4 页面池
39.4.1 PagePool/Math
39.4.2 PagePool/CompMath
39.4.3 PagePool/Proxy/Trace
39.4.4 PagePool/Client
39.4.5 PagePool/WebTraf
39.5 网络客户端
39.6 网络服务器
39.7 网络高速缓存
39.7.1 Http/Cache
39.8 整理成一个简单的例子
39.9 Http跟踪的格式
39.10 命令一览
第40章 蠕虫模型
40.1 概述
40.2 配置
40.3 命令一览
第41章 PackMime-HTTP:网络流量生成
41.1 实现细节
41.1.1 PackMimeHTTP客户端应用程序
41.1.2 PackMimeHTTP服务器应用程序
41.2 PackMimeHTTP随机变量
41.3 使用DelayBox和PackMime-HTTP
41.4 示例
41.5 命令一览
第七篇 规模(Scale)
第42章 会话级(Session-level)分组分发
42.1 配置
42.1.1 基本配置
42.1.2 插入丢失(loss)模块
42.2 体系结构
42.3 内部
42.3.1 对象链接
42.3.2 分组转发
42.4 命令一览
第43章 Asim:近似的分析模拟(analytical simulation)
第八篇 仿真(Emulation)
第44章 仿真
44.1 概述
44.2 实时调度器(Real-Time Scheduler)
44.3 Tap代理
44.4 网络对象
44.4.1 Pcap/BPF网络对象
44.4.2 IP网络对象
44.4.3 IP/UDP网络对象
44.5 示例
44.6 命令一览
第九篇 用Nam来可视化--网络动画
第45章 NAM
45.1 简介
45.2 Nam命令选项
45.3 用户界面
45.4 键盘命令
45.5 由Nam生成演示动画
45.6 网络布局
45.7 动画构件
第46章 Nam Trace
46.1 Nam Trace的格式
46.1.1 初始化事件(Initialization Events)
46.1.2 Nodes(节点)
46.1.3 Links(链路)
46.1.4 Queues(队列)
46.1.5 Packets(数据包)
46.1.6 Node Marking(节点标记)
46.1.7 Agent Tracing(代理跟踪)
46.1.8 Variable Tracing(变量跟踪)
46.1.9 Executing Tcl Procedures and External Code from within Nam(在Nam中执行TCL代码和外部代码)
46.1.10 Using Streams for Realtime Applications(实时应用的流事件)
46.1.11 Nam Trace File Format Lookup Table(Nam trace速查表)
46.2 Ns commands for creating and controlling nam animations(创建和控制Nam的外部命令)
46.2.1 Node(节点)
46.2.2 Link/Queue(链路/队列)
46.2.3 Agent and Features(代理和特征)
46.2.4 Some Generic Commands(其它命令)
第十篇 其它(Other)
第47章 NS和NAM的教学用途
47.1 以教学为目的的NS使用
47.1.1 安装/创建/运行ns
47.1.2 教学脚本库的页面
47.2 以教学为目的的NAM使用
参考书目