《计算机科学与技术学科研究生系列教材 计算机网络高级软件编程技术》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:吴功宜,董大凡,王珺,刘乾编著(南开大学信息技术科学学院)
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2008
  • ISBN:9787302161097
  • 页数:421 页
图书介绍:本书介绍计算机网络高级软件编程技术和知识。

第一部分 计算机网络软件编程训练要求与教学指导第1章 计算机网络课程内容、编程训练目的与教学指导 3

1.1 计算机网络课程特点与网络软件人才需求的形势 3

1.2 计算机网络技术的研究与发展 4

1.2.1 发展主线1:Internet技术 4

1.2.2 发展主线2:无线网络技术 6

1.2.3 发展主线3:网络安全技术 8

1.2.4 总结 9

1.3 《计算机网络高级教程》的相关内容安排 12

1.3.1 计算机网络技术的研究与发展 12

1.3.2 广域网技术 12

1.3.3 局域网技术 13

1.3.4 城域网技术 13

1.3.5 IPv4协议 13

1.3.6 IPv6协议 14

1.3.7 移动IP协议 14

1.3.8 TCP与UDP协议 14

1.3.9 网络应用和应用层协议 14

1.3.10 无线Ad hoc网络、无线传感器网络与无线网格网研究 15

1.3.11 网络安全与网络管理技术的研究 15

1.3.12 网络性能分析、网络模拟与开源工具包 15

1.4 网络软件编程课题训练目的与基本内容 16

1.4.1 基础类网络软件编程课题训练目的与基本内容 16

1.4.2 综合类网络软件编程课题训练目的与基本内容 19

1.4.3 提高类网络软件编程课题训练目的与基本内容 20

1.4.4 网络软件编程训练选题指导 26

第二部分 基础训练篇 31

第2章 Ethernet帧结构解析程序 31

2.1 编程训练目的 31

2.2 编程训练要求 31

2.3 相关知识 32

2.3.1 帧结构 32

2.3.2 Ethernet帧的接收流程分析 33

2.3.3 CRC校验 34

2.4 编程训练设计分析 37

2.4.1 程序设计思路及实现 37

2.4.2 主要流程图 41

2.5 扩展与提高 42

2.5.1 CRC-32校验查表法实现 42

2.5.2 Ethernet帧的发送流程分析 44

第3章 使用ARP协议获取局域网内活动主机物理地址 46

3.1 编程训练目的 46

3.2 编程训练要求 46

3.3 相关知识 46

3.3.1 ARP协议工作原理 46

3.3.2 ARP协议相关数据帧结构 47

3.4 编程训练设计分析 48

3.4.1 程序流程介绍 48

3.4.2 编程要点分析 48

3.5 扩展与提高 54

3.5.1 ARP欺骗 54

3.5.2 使用Windows自带API库实现类似功能 55

3.5.3 使用Windows API获得主机MAC地址 56

第4章 计算校验和程序 59

4.1 编程训练目的 59

4.2 编程训练要求 59

4.3 相关知识 60

4.3.1 网际校验和算法 60

4.3.2 网际校验和算法特性 61

4.3.3 计算举例 62

4.4 编程训练设计分析 64

4.4.1 程序设计思路及实现 64

4.4.2 程序流程图 66

4.5 扩展与提高 66

4.5.1 增量式算法的补码实现 67

4.5.2 对增量式算法的改进 67

第5章 IP包流量分析程序 69

5.1 编程训练目的 69

5.2 编程训练要求 69

5.3 相关知识 70

5.3.1 IP协议 70

5.3.2 IP数据报格式 70

5.4 编程训练设计分析 73

5.4.1 捕获IP数据包 73

5.4.2 统计IP数据包的信息 77

5.4.3 程序流程图 79

5.5 扩展与提高 80

5.5.1 使用Winpcap捕获数据包 80

5.5.2 使用map结构存储IP数据包信息 81

第6章 Tracert程序 84

6.1 编程训练目的 84

6.2 编程训练要求 84

6.3 相关知识 85

6.3.1 Tracert的实现原理 85

6.3.2 ICMP协议及报文格式 85

6.4 编程训练设计分析 88

6.4.1 核心代码及说明 88

6.4.2 程序流程图 94

6.5 扩展与提高 95

6.5.1 使用自行提供IP报头的方法发送ICMP报文 95

6.5.2 使用ICMP帮助函数库发送ICMP报文 96

第7章 IPv6报文封装及地址生成程序 99

7.1 编程训练目的 99

7.2 编程训练要求 99

7.3 相关知识 99

7.3.1 IPv6报头 99

7.3.2 IPv6扩展报头 102

7.3.3 IPv6地址 102

7.4 编程训练设计分析 108

7.4.1 IPv6基本报头的填充 108

7.4.2 IPv6地址生成算法 110

7.4.3 程序流程图 112

7.5 扩展与提高 113

7.5.1 用于IPv6的TCP/UDP伪报头 113

7.5.2 包含TCP报头的IPv6数据封装 113

第8章 TCP和UDP数据包发送程序 116

8.1 编程训练目的 116

8.2 编程训练要求 116

8.3 相关知识 116

8.3.1 UDP协议简介 116

8.3.2 TCP协议简介 117

8.4 编程训练设计分析 118

8.4.1 数据包头结构定义 118

8.4.2 填充数据包过程介绍 119

8.4.3 TCP/UDP协议网际校验和计算方法 121

8.5 扩展与提高 122

8.5.1 使用原始套接字完成题目要求 122

8.5.2 使用NDIS协议驱动发送自定义数据帧 123

第9章 基于C/S结构的套接字程序设计 126

9.1 编程训练目的 126

9.2 编程训练要求 126

9.3 相关知识 127

9.3.1 C/S结构网络模型 127

9.3.2 Windows Sockets编程简介 128

9.3.3 基本套接字API调用 129

9.3.4 典型编程调用时序图 132

9.4 编程训练设计分析 133

9.4.1 server端结构设计及代码说明 133

9.4.2 client端结构设计及代码说明 138

9.5 扩展与提高 139

9.5.1 Winsock的两种I/O模式 139

9.5.2 Windows Sockets下的4种编程模型 139

9.5.3 使用WSAAsynSelect进行异步I/O编程 142

第10章 滑动窗口协议模拟程序 145

10.1 编程训练目的 145

10.2 编程训练要求 145

10.3 相关知识 145

10.3.1 滑动窗口协议的流量控制 146

10.3.2 滑动窗口协议的差错控制 146

10.4 编程训练设计分析 147

10.4.1 协议模拟过程分析 147

10.4.2 滑动窗口协议基本算法 149

10.4.3 核心代码及其说明 151

10.5 扩展与提高 159

10.5.1 传输层与链路层滑动窗口协议比较 159

10.5.2 TCP滑动窗口协议的基本原理 159

第11章 Web Server程序 161

11.1 编程训练目的 161

11.2 编程训练要求 161

11.3 相关知识 161

11.3.1 HTTP的工作过程 162

11.3.2 HTTP的消息格式 162

11.3.3 HTTP/1.1的改进 165

11.4 编程训练设计分析 166

11.4.1 客户请求处理模块实现 167

11.4.2 响应生成发送模块实现 168

11.5 扩展与提高 172

11.5.1 HTTP认证机制 172

11.5.2 Basic认证的代码实现 174

第12章 无线局域网802.11协议CSMA/CA算法模拟程序 179

12.1 编程训练目的 179

12.2 编程训练要求 179

12.3 相关知识 179

12.3.1 802.11协议概述 179

12.3.2 CSMA/CA协议的工作流程 180

12.4 编程训练设计分析 180

12.4.1 主线程代码分析 181

12.4.2 数据接收线程代码分析 181

12.4.3 数据发送线程代码分析 182

12.5 扩展与提高 184

12.5.1 无线局域网的发展 184

12.5.2 IEEE 802.11b主要优点 185

12.5.3 IEEE 802.11b无线网络包含组件 185

12.5.4 IEEE 802.11b运作模式 186

12.5.5 IEEE 802.11b运作基础 186

第13章 公钥密码实现程序 187

13.1 编程训练目的 187

13.2 编程训练要求 187

13.3 相关知识 188

13.3.1 密码学相关背景知识 188

13.3.2 RSA密码机制简介 189

13.4 编程训练设计分析 191

13.4.1 模乘运算和模幂运算模块 191

13.4.2 生成随机的大素数 192

13.4.3 求最大公约数 194

13.4.4 计算私钥 194

13.4.5 加密解密过程 195

13.5 扩展与提高 196

13.5.1 RSA安全性 196

13.5.2 其他公钥密码体系 197

13.5.3 对称密码体系简介 197

第三部分 综合训练篇 201

第14章 路由器基本功能实现程序 201

14.1 编程训练目的 201

14.2 编程训练要求 201

14.3 相关知识 202

14.3.1 路由器结构与功能 202

14.3.2 路由选择的基本原理 204

14.3.3 路由表 206

14.3.4 ICMP差错报文 208

14.4 编程训练设计分析 208

14.4.1 路由程序的设计 209

14.4.2 测试环境的搭建 220

14.5 扩展与提高 222

14.5.1 OSPF简介 222

14.5.2 OSPF协议工作原理 223

14.5.3 CSPF路由表的算法实现 225

第15章 FTP协议实现程序 228

15.1 编程训练目的 228

15.2 编程训练要求 228

15.3 相关知识 228

15.3.1 FTP协议简介 228

15.3.2 FTP命令简介 229

15.4 编程训练设计分析 230

15.4.1 程序总体结构分析 230

15.4.2 工作者线程函数介绍 233

15.5 扩展与提高 250

15.5.1 完成端口相关原理 250

15.5.2 Windows其他网络I/O传输程序架构比较 252

第16章 协议分析器程序 254

16.1 编程训练目的 254

16.2 编程训练要求 254

16.3 相关知识 255

16.3.1 协议分析器基本原理 255

16.3.2 TCP/IP分层体系结构 255

16.3.3 数据的封装与解析 256

16.4 编程训练设计分析 256

16.4.1 协议分析器总体结构设计 256

16.4.2 数据捕获模块 257

16.4.3 协议解析模块 260

16.5 扩展与提高 267

16.5.1 使用原始套接字方式完成数据捕获过程 267

16.5.2 在协议分析器中使用Winpcap的高级特性 268

第17章 综合扫描器程序 271

17.1 编程训练目的 271

17.2 编程训练要求 271

17.3 相关知识 271

17.3.1 ARP扫描 271

17.3.2 ICMP扫描 272

17.3.3 TCP扫描 272

17.3.4 UDP扫描 273

17.4 编程训练设计分析 273

17.4.1 ARP扫描实现 273

17.4.2 ICMP扫描实现 277

17.4.3 TCP Connect扫描实现 280

17.4.4 TCP SYN扫描实现 283

17.4.5 TCP FIN扫描实现 289

17.4.6 UDP扫描实现 291

17.5 扩展与提高 295

17.5.1 ICMP扫描扩展 295

17.5.2 TCP扫描扩展 296

17.5.3 UDP扫描扩展 296

17.5.4 扫描的其他应用 297

17.5.5 系统漏洞扫描简介 297

第四部分 提高训练篇 301

第18章 基于SNMP协议的网络拓扑发现程序 301

18.1 编程训练目的 301

18.2 编程训练要求 301

18.3 相关知识 301

18.3.1 SNMP协议简介 301

18.3.2 异步过程调用 304

18.4 编程训练设计分析 304

18.4.1 主体结构 304

18.4.2 功能模块简介 305

18.4.3 相关代码剖析 306

18.5 扩展与提高 314

18.5.1 其他网络管理协议简介 314

18.5.2 网络管理新技术 315

第19章 利用OpenSSL实现安全的Web Server程序 316

19.1 编程训练目的 316

19.2 编程训练要求 316

19.3 相关知识 316

19.3.1 SSL协议介绍 316

19.3.2 OpenSSL库 319

19.4 编程训练设计分析 324

19.4.1 程序设计思路及实现 324

19.4.2 Server端认证证书的生成 328

19.5 扩展与提高 329

19.5.1 客户端认证 329

19.5.2 基于IPSec的安全通信 329

第20章 简单防火墙程序 334

20.1 编程训练目的 334

20.2 编程训练要求 334

20.3 相关知识 335

20.3.1 防火墙简介 335

20.3.2 系统包过滤API介绍 336

20.4 编程训练设计分析 338

20.4.1 程序流程分析 338

20.4.2 核心代码分析 338

20.5 扩展与提高 341

20.5.1 基于API Hook的数据包过滤技术 341

20.5.2 基于SPI的数据包过滤技术 344

第21章 防火墙扩展功能程序 347

21.1 编程训练目的 347

21.2 编程训练要求 347

21.3 相关知识 348

21.3.1 Windows网络协议栈结构 348

21.3.2 Windows网络数据拦截技术综述 350

21.4 编程训练设计分析 353

21.4.1 程序流程分析 353

21.4.2 核心代码分析 355

21.5 扩展与提高 363

21.5.1 基于TDI过滤驱动的防火墙技术 363

21.5.2 基于NDIS中间层的数据包过滤技术 367

第22章 NS-2简单有线网络模拟程序 370

22.1 编程训练目的 370

22.2 编程训练要求 370

22.3 相关知识 370

22.3.1 NS-2简介及原理概述 370

22.3.2 NS-2的下载与安装 372

22.3.3 NS-2网络模拟的基本流程 373

22.3.4 NS-2学习方法 374

22.3.5 NS学习资源列表 375

22.4 编程训练设计分析 375

22.4.1 模拟场景描述 375

22.4.2 模拟脚本及其说明 376

22.4.3 模拟的Nam演示 379

22.4.4 模拟结果的统计分析 379

22.5 扩展与提高 385

22.5.1 有线网络中的Ethernet模拟 385

22.5.2 NS-2模拟脚本生成工具 387

第23章 使用NS-2模拟无线Ad hoc网络 388

23.1 编程训练目的 388

23.2 编程训练要求 388

23.3 相关知识 388

23.3.1 NS-2的无线网络模型 388

23.3.2 移动结点的创建 390

23.3.3 移动结点的运动 391

23.3.4 移动场景与流量场景的自动生成 392

23.4 编程训练设计分析 393

23.4.1 模拟场景描述 393

23.4.2 模拟脚本及其说明 394

23.4.3 模拟的Nam演示 398

23.4.4 模拟结果的统计分析 398

23.5 扩展与提高 402

23.5.1 使用场景生成器和流量产生器进行无线模拟 402

23.5.2 深入学习导读 403

23.5.3 一个NS-2无线模拟脚本生成工具 405

附录A Winpcap简介与使用说明 406

附录B Windows Driver Module简介 411

附录C NS-2在Linux和Windows+Cygwin下的安装 413

参考文献 420