第1章 引言
1.1 OSI参考模型1
1.1.1 物理层3
1.1.2 数据链路层3
1.1.3 网络层3
1.1.4 传输层4
1.1.5 会话、表示和应用层4
1.1.6 网络通信4
1.2 通信设备5
1.3 软件构件类型9
1.3.1 协议软件9
1.3.2 基础软件和系统软件10
1.4 设计考虑——序曲11
1.5 小结12
1.6 阅读材料12
1.7 习题12
第2章 通信系统软件考虑
2.1 基于主机的通信13
2.1.1 用户模式与核心模式13
2.1.2 主机网络接口15
2.1.3 STREAMS结构16
2.1.4 套接字接口18
2.1.5 基于主机的联网软件存在的问题18
2.2 嵌入式通信软件19
2.2.1 实时操作系统19
2.2.2 存储问题21
2.2.3 设备问题23
2.2.4 软/硬件划分23
2.2.5 硬件加速25
2.2.6 控制板和数据板27
2.2.7 为硬件加速开发软件28
2.3 小结29
2.4 阅读材料30
2.5 习题30
第3章 软件划分
3.1 严格分层方法的局限性31
3.2 任务与模块33
3.2.1 进程与任务的比较34
3.2.2 任务实现35
3.2.3 任务调度35
3.3 模块与任务分解36
3.4 划分案例研究——第二层交换器36
3.4.1 设备驱动程序37
3.4.2 协议功能41
3.4.3 系统与管理任务43
3.4.4 硬件加速43
3.5 第三层交换器/路由器43
3.6 模块与任务接口45
3.6.1 函数/过程接口45
3.6.2 消息/事件接口47
3.6.3 标准接口与专用接口49
3.7 小结50
3.8 阅读材料50
3.9 习题50
第4章 协议软件
4.1 协议实现51
4.1.1 状态机52
4.1.2 协议数据单元(PDU)处理57
4.1.3 协议接口58
4.1.4 配置与控制61
4.1.5 系统启动63
4.1.6 协议升级64
4.2 小结65
4.3 阅读材料65
4.4 习题65
第5章 表与其它数据结构
5.1 表66
5.2 结构/表的划分69
5.2.1 控制块69
5.2.2 接口控制块72
5.3 实现74
5.3.1 控制块分配与初始化74
5.4 访问加速76
5.4.1 访问方法优化77
5.4.2 硬件支持77
5.4.3 高速缓冲78
5.5 表大小的调整78
5.6 表访问例程80
5.7 小结81
5.8 阅读材料82
5.9 习题82
第6章 缓冲区与定时器管理
6.1 缓冲区管理83
6.1.1 全局缓冲区管理83
6.1.2 局部缓冲区管理84
6.1.3 单缓冲池和多缓冲池84
6.1.4 缓冲区大小85
6.1.5 缓冲池及缓冲区大小选择对照单86
6.1.6 伯克利系统发布(BSD)的mbuf库86
6.1.7 STREAMS缓冲区方案90
6.1.8 缓冲区方案之比较91
6.1.9 缓冲区管理方案范例92
6.1.10 缓冲区管理中的异常条件95
6.2 定时器管理96
6.2.1 任务各自进行自己的定时管理96
6.2.2 差值定时器计数的使用98
6.2.3 定时器管理任务100
6.3 小结103
6.4 阅读材料104
6.5 习题104
第7章 管理软件
7.1 设备管理105
7.2 管理方案106
7.3 路由器管理107
7.3.1 SNMP管理107
7.3.2 基于CLI的管理108
7.3.3 基于HTTP的管理108
7.4 管理子系统体系结构108
7.4.1 SNMP的使用108
7.4.2 CLI的使用110
7.5 代理与协议间的接口111
7.5.1 代理与协议之间的内存分离113
7.6 设备到管理程序的通信113
7.7 系统建立与配置114
7.7.1 引导参数配置114
7.7.2 引导后配置115
7.8 配置的保存与恢复115
7.9 小结117
7.10 阅读材料117
7.11 习题118
第8章 多板通信软件的设计
8.1 通信设备的通用结构119
8.1.1 单板设计120
8.1.2 基于机壳的设计120
8.1.3 基于机架的设计121
8.2 多板体系结构123
8.3 单控制卡+多线卡结构125
8.3.1 线卡到线卡的通信125
8.3.2 线卡到控制卡的通信125
8.3.3 消息类型与协议126
8.3.4 软件在控制卡和线卡之间的划分127
8.3.5 划分抽象化127
8.4 RTOS对分布的支持129
8.5 适应分布的数据结构调整130
8.6 适应分布的状态机调整131
8.6.1 单一控制平面131
8.6.2 分立控制平面132
8.7 多板软件管理接口133
8.8 多板软件开发对照表133
8.9 单控制卡+多线卡结构的评价134
8.10 多线卡全分布结构134
8.11 多板系统中的故障与容错136
8.11.1 故障类型136
8.11.2 控制卡与线卡冗余选择方案137
8.11.3 控制卡冗余138
8.11.4 线卡冗余138
8.11.5 控制卡和线卡的冗余模型与待机模型总结140
8.12 小结140
8.13 阅读材料140
8.14 习题141
第9章 通信软件的开发
9.1 产品开发步骤142
9.1.1 第三层交换器产品需求143
9.1.2 高层或系统设计144
9.1.3 低层设计145
9.1.4 编码145
9.1.5 测试145
9.2 独立于硬件的开发147
9.2.1 模拟环境的采用147
9.2.2 独立于操作系统的程序设计149
9.3 COTS板的采用151
9.4 开发环境与工具152
9.5 测试工具与设备153
9.6 小结154
9.7 阅读材料155
9.8 习题155
附录A商用系统举例
Juniper Networks的公司M系列路由器156
Cisco Systems公司的12000系列路由器157
Cisco IOSTM软件157
附录B常用术语与缩略语
参考文献174