《用TCP/IP进行网际互连 第2卷 设计、实现和内部构成 第2版》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)(D.E.科默)Douglas E.Comer,(美)(D.L.史蒂文斯)David L.Stevens著;张娟,王海译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:1998
  • ISBN:7505346040
  • 页数:522 页
图书介绍:这是一本受到广泛关注的教科书,

第1章 引言和概述 1

1.1 TCP/IP协议 1

1.2 了解细节的必要性 1

1.3 协议间交互作用的复杂性 1

1.4 本书采用的方法 2

1.5 研究代码的重要性 2

1.6 Xinu操作系统 3

1.7 本书其余部分的组织 3

1.8 小结 4

第2章 操作系统中的TCP/IP软件结构 5

2.1 引言 5

2.2 进程的概念 5

2.3 进程的优先级 6

2.4 进程通信处理 6

2.5 进程间通信 8

2.6 设备驱动程序和输入、输出程序 10

2.7 网络的输入和中断 10

2.8 向高层协议传递分组 11

2.9 IP协议与传输协议之间的数据报传递 12

2.10 向应用程序的传递操作 13

2.11 输出时的信息流 13

2.12 从TCP经过IP到网络输出 14

2.13 UDP输出处理 15

2.14 小结 16

3.1 引言 20

3.2 网络接口抽象模型 20

第3章 网络接口层 20

3.3 接口的逻辑状态 23

3.4 本地主机接口 23

3.5 缓冲区管理 24

3.6 输入分组的分路 26

3.7 小结 28

第4章 地址的发现及绑定(ARP) 29

4.1 引言 29

4.2 ARP软件在理论上的结构 29

4.3 ARP设计方案举例 29

4.4 ARP高速缓存的数据结构 31

4.5 ARP输出处理 33

4.6 ARP输入处理 37

4.7 ARP高速缓存的管理 41

4.8 ARP初始化 45

4.9 ARP参数配置 46

4.10 小结 46

第5章 IP:软件的总体结构 48

5.1 引言 48

5.2 中心环节 48

5.3 IP软件设计思想 48

5.4 IP软件结构和数据报流程 49

5.5 IP首部中的字节顺序 61

5.6 向IP发送一个数据报 62

5.7 表格的维护 65

5.8 小结 66

6.2 路由维护和查找 68

6.3 选路表结构 68

6.1 引言 68

第6章 IP:选路表和选路算法 68

6.4 选路表数据结构 69

6.5 路由的生成源及保持时间 71

6.6 为数据报选择路由 71

6.7 选路表的定期维护 77

6.8 IP选项处理 84

6.9 小结 85

7.2 数据报的分片 87

7.1 引言 87

第7章 IP:分片与重组 87

7.3 分片的实现 88

7.4 数据报的重组 92

7.5 数据报片链表的维护管理 100

7.6 初始化 102

7.7 小结 102

第8章 IP:差错处理(ICMP) 104

8.1 引言 104

8.2 ICMP报文格式 104

8.3 ICMP报文的实现 104

8.4 输入ICMP报文的处理 106

8.5 ICMP改变路由报文的处理 109

8.6 设置子网掩码 110

8.7 为一个ICMP分组选择源地址 112

8.8 生成ICMP差错报文 113

8.9 避免出现错误的差错报文 115

8.10 为ICMP报文分配缓冲区 116

8.11 ICMP报文中的数据部分 118

8.12 ICMP改变路由报文的生成 120

8.13 小结 121

第9章 IP:组播处理(IGMP) 123

9.1 引言 123

9.2 维护组播主机群的成员信息 123

9.3 主机群表 123

9.4 查找一个主机群 125

9.5 向主机群表中增加一个表项 126

9.6 为一个组播地址设置网络接口 128

9.7 IP组播地址和硬件组播地址之间的转换 129

9.8 从主机群表中删除一个组播地址 131

9.9 加入一个主机群 132

9.10 维持与一个组播路由器的联系 133

9.11 IGMP成员关系报告的实现 135

9.12 计算随机时延 136

9.13 发送IGMP报告的进程 137

9.14 处理输入的IGMP报文 138

9.15 脱离主机群 139

9.16 IGMP数据结构初始化 141

9.17 小结 142

10.2 UDP端口和去复用处理 143

第10章 UDP:用户数据报 143

10.1 引言 143

10.3 UDP 146

10.4 UDP输出的处理 155

10.5 小结 158

第11章 TCP:数据结构和输入处理 160

11.1 引言 160

11.2 TCP软件概览 160

11.3 传输控制块 160

11.4 TCP报文段格式 165

11.5 序列空间中的比较 166

11.6 TCP有限状态机 167

11.7 状态变迁举例 167

11.8 有限状态机的说明 169

11.9 TCB的分配及初始化 170

11.10 有限状态机的实现 172

11.11 处理一个输入报文段 173

11.12 小结 181

12.2 CLOSED状态处理 183

12.3 文明关闭 183

第12章 TCP:有限状态机的实现 183

12.1 引言 183

12.4 关闭后的延迟计时 184

12.5 TIME-WAIT状态处理 185

12.6 CLOSING状态处理 186

12.7 FIN-WAIT-2状态处理 187

12.8 FIN-WAIT-1状态处理 188

12.9 CLOSE-WAIT状态处理 190

12.10 LAST-ACK状态处理 191

12.11 ESTABLISHED状态处理 192

12.12 处理报文段中的紧急数据 193

12.13 处理报文段中的其他数据 195

12.14 经常注意已接收的八位组 197

12.15 中止一个TCP连接 200

12.16 建立TCP连接 200

12.17 初始化TCB 201

12.18 SYN-SENT状态处理 202

12.19 SYN-RECEIVED状态处理 203

12.20 LISTEN状态处理 205

12.21 为一个新TCB初始化窗口变量 207

12.22 小结 209

第13章 TCP:输出处理 210

13.1 引言 210

13.2 TCP输出控制的复杂性 210

13.3 TCP输出的四个状态 210

13.4 作为一个进程的TCP输出 211

13.6 对输出状态和TCB号的编码 212

13.7 TCP输出进程的实现 212

13.5 TCP输出消息 212

13.8 互斥操作 213

13.9 IDLE状态的实现 214

13.10 PERSIST状态的实现 214

13.11TRANSMIT状态的实现 215

13.12 RETRANSMIT状态的实现 217

13.13 发送一个报文段 217

13.14 计算TCP数据长度 220

13.15 序号计算 221

13.16 其他TCP过程 222

13.17 小结 228

第14章 定时器管理 230

14.1 引言 230

14.2 定时事件的通用数据结构 230

14.3 TCP事件使用的数据结构 231

14.4 定时器、事件和消息 232

14.5 TCP定时器进程 232

14.6 删除TCP定时器事件 234

14.7 删除一个TCB的所有事件 235

14.8 确定出现一个事件的尚需时间 236

14.9 插入TCP定时器事件 237

14.10 启动无时延的TCP输出 239

10.11 小结 240

15.2 自适应重发中的难题 241

15.3 自适应重发的调整 241

15.1 引言 241

第15章 TCP:流量控制和自适应重发 241

15.4 重发定时器和退避 242

15.5 基于窗口的流量控制 244

15.6 最大报文段长度的计算 247

15.7 网络拥塞预防与控制 251

15.8 慢启动和拥塞预防 252

15.9 平均往返时间估值及超时 254

15.10 技术和注意事项 260

15.11 小结 260

16.3 紧急数据 263

16.2 带外信令 263

16.1 引言 263

第16章 TCP:紧急数据处理和急迫功能 263

16.4 标准的解释 264

16.5 为Berkeley紧急指针解释法而设的配置 266

16.6 通知应用程序 266

16.7 从TCP中读取数据 267

16.8 发送紧急数据 269

16.9 TCP的急迫功能 270

16.10 在失序交付时对急迫数据的解释 270

16.11 输入时急迫功能的实现 271

16.12 小结 272

第17章 插口级的接口 274

17.1 引言 274

17.2 通过设备形成的接口 274

17.3 作为设备的TCP连接 276

17.4 TCP客户程序举例 276

17.5 TCP服务器程序举例 277

17.6 TCP主设备的实现 279

17.7 TCP从设备的实现 286

17.8 从设备的初始化 299

17.9 小结 300

第18章 RIP:主动路由传播和被动获取 302

18.1 引言 302

18.2 主动和被动模式的参与者 302

18.3 基本的RIP算法和费用度量 303

18.4 不稳定性及解决方案 303

18.5 报文类型 306

18.6 协议特性 306

18.7 RIP的具体实现 307

18.8 基本RIP进程 310

18.9 对输入请求的响应 315

18.10 生成更新报文 317

18.11 初始化一个更新报文的拷贝 318

18.12 生成定期的RIP输出 323

18.13 RIP的局限性 324

18.14 小结 324

第19章 OSPF:使用SPF算法的路由传播 325

19.1 引言 325

19.2 OSPF配置和选项 325

19.3 OSPF的图解理论模型 326

19.4 OSPF的说明 328

19.5 邻接关系和链路状态信息的传播 334

19.6 用Hello发现相邻网关 335

19.7 Hello分组的发送 336

19.8 指定路由器 341

19.9 选出一个指定路由器 341

19.10 变动之后重建邻接关系 345

19.11 处理到达的Hello分组 348

19.12 在相邻网关表中增加一个网关 349

19.13 相邻网关状态的变迁 351

19.14 OSPF定时器事件和重发 352

19.15 判断是否允许邻接关系 354

19.16 OSPF输入的处理 355

19.17 链路状态处理中的说明和过程 358

19.18 数据库描述分组的生成 360

19.19 创建一个模板 362

19.20 传送数据库描述分组 363

19.21 处理到达的数据库描述分组 365

19.22 处理链路状态请求分组 370

19.23 建立链路状态概要信息 372

19.24 OSPF实用过程 374

19.25 小结 377

第20章 SNMP:MIB变量、表示形式以及变量映射 378

20.1 引言 378

20.2 服务器的组织和名字的映射 378

20.3 MIB变量 379

20.4 MIB变量名 380

20.6 除去前缀 381

20.5 名字之间的字典顺序 381

20.7 在MIB变量上执行的操作 382

20.8 表格名 382

20.9 名字体系概念上的线索 383

20.10 MIB变量的数据结构 384

20.11 用于快速查找的数据结构 385

20.12 散列表的实现 386

20.13 MIB绑定的描述 387

20.14 绑定中使用的内部变量 392

20.15 散列表的查找 393

20.16 SNMP的结构和常量 395

20.17 ASN.1表示形式的处理 399

20.18 小结 409

第21章 SNMP:客户机与服务器 410

21.1 引言 410

21.2 服务器中数据的表示形式 410

21.3 服务器的实现 410

21.4 对SNMP报文的分析 412

21.5 绑定链表中ASN.1名字的转换 416

21.6 解析一个请求 417

21.7 对get-next操作的解释 419

21.8 操作的间接执行 420

21.9 表格的间接寻址 422

21.10 回答报文的反向生成 423

21.11从内部格式转换为ASN.1表示形式 426

21.12 服务器使用的实用函数 428

21.13 一个SNMP客户机的实现 428

21.14 变量初始化 430

21.15 小结 432

第22章 SNMP:表格访问函数 434

22.1 引言 434

22.2 表格访问 434

22.3 表格的对象标识符 434

22.4 地址入口表函数 435

22.5 地址转换表函数 441

22.6 网络接口表的函数 450

22.7选路表函数 457

22.8 TCP连接表函数 466

22.9 小结 473

第23章 实现的回顾 474

23.1 引言 474

23.2 程序代码统计分析 474

23.3 各个协议的程序代码行数 474

23.4 每个协议所需的函数和过程 476

23.5 小结 477

附录1 过程调用交叉参考表 479

附录2 程序代码中使用到的Xinu函数和常量 499

参考文献 515