《计算机网络高级软件编程技术 第2版》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:吴功宜,董大凡,王珺等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2011
  • ISBN:7302261469
  • 页数:433 页
图书介绍:本书共23章,第1章为本书的内容介绍与教学辅导,第2章~第23章提供22个网络软件编程题目,分为基础训练、综合训练与提高训练等3种不同的类型与5个不同的难度级。

第一部分 计算机网络软件编程训练要求与教学指导第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 相关知识 35

2.3.1 帧结构 35

2.3.2 Ethernet帧的接收流程分析 36

2.3.3 CRC校验 37

2.4 编程训练设计分析 40

2.4.1 程序设计思路及实现 40

2.4.2 主要流程图 44

2.5 扩展与提高 45

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

2.5.2 Ethernet帧的发送流程分析 47

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

3.1 编程训练目的 49

3.2 编程训练要求 49

3.3 相关知识 50

3.3.1 ARP协议工作原理 50

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

3.4 编程训练设计分析 51

3.4.1 程序流程介绍 51

3.4.2 编程要点分析 51

3.5 扩展与提高 57

3.5.1 ARP欺骗 57

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

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

第4章 计算校验和程序 62

4.1 编程训练目的 62

4.2 编程训练要求 62

4.3 相关知识 63

4.3.1 网际校验和算法 63

4.3.2 网际校验和算法特性 64

4.3.3 计算举例 65

4.4 编程训练设计分析 67

4.4.1 程序设计思路及实现 67

4.4.2 程序流程图 68

4.5 扩展与提高 69

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

4.5.2 对增量式算法的改进 70

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

5.1 编程训练目的 72

5.2 编程训练要求 72

5.3 相关知识 73

5.3.1 IP协议 73

5.3.2 IP数据报格式 74

5.4 编程训练设计分析 77

5.4.1 捕获IP数据包 77

5.4.2 统计IP数据包的信息 80

5.4.3 程序流程图 82

5.5 扩展与提高 83

5.5.1 使用Winpcap捕获数据包 84

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

第6章 Tracert程序 88

6.1 编程训练目的 88

6.2 编程训练要求 88

6.3 相关知识 90

6.3.1 Tracert的实现原理 90

6.3.2 ICMP协议及报文格式 90

6.4 编程训练设计分析 93

6.4.1 核心代码及说明 93

6.4.2 程序流程图 99

6.5 扩展与提高 100

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

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

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

7.1 编程训练目的 103

7.2 编程训练要求 103

7.3 相关知识 104

7.3.1 IPv6报头 104

7.3.2 IPv6扩展报头 106

7.3.3 IPv6地址 107

7.4 编程训练设计分析 112

7.4.1 IPv6基本报头的填充 113

7.4.2 IPv6地址生成算法 114

7.4.3 程序流程图 116

7.5 扩展与提高 117

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

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

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

8.1 编程训练目的 120

8.2 编程训练要求 120

8.3 相关知识 121

8.3.1 UDP协议简介 121

8.3.2 TCP协议简介 121

8.4 编程训练设计分析 122

8.4.1 数据包头结构定义 122

8.4.2 填充数据包过程介绍 124

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

8.5 扩展与提高 126

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

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

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

9.1 编程训练目的 130

9.2 编程训练要求 130

9.3 相关知识 132

9.3.1 C/S结构网络模型 132

9.3.2 Windows Sockets编程简介 132

9.3.3 基本套接字API调用 134

9.3.4 典型编程调用时序图 136

9.4 编程训练设计分析 137

9.4.1 Server端结构设计及代码说明 138

9.4.2 Client端结构设计及代码说明 142

9.5 扩展与提高 143

9.5.1 Winsock的两种I/O模式 143

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

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

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

10.1 编程训练目的 149

10.2 编程训练要求 149

10.3 相关知识 150

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

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

10.4 编程训练设计分析 152

10.4.1 协议模拟过程分析 152

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

10.4.3 核心代码及其说明 156

10.5 扩展与提高 164

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

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

第11章 Web Server程序 166

11.1 编程训练目的 166

11.2 编程训练要求 166

11.3 相关知识 167

11.3.1 HTTP的工作过程 167

11.3.2 HTTP的消息格式 168

11.3.3 HTTP 1.1的改进 171

11.4 编程训练设计分析 172

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

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

11.5 扩展与提高 177

11.5.1 HTTP认证机制 177

11.5.2 Basic认证的代码实现 180

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

12.1 编程训练目的 184

12.2 编程训练要求 184

12.3 相关知识 185

12.3.1 802.11协议概述 185

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

12.4 编程训练设计分析 186

12.4.1 主线程代码分析 186

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

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

12.5 扩展与提高 190

12.5.1 无线局域网的发展 190

12.5.2 IEEE 802.11b的主要优点 190

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

12.5.4 IEEE 802.11b运作模式 191

12.5.5 IEEE 802.11b运作基础 191

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

13.1 编程训练目的 192

13.2 编程训练要求 192

13.3 相关知识 193

13.3.1 密码学相关背景知识 193

13.3.2 RSA密码机制简介 195

13.4 编程训练设计分析 196

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

13.4.2 生成随机的大素数 197

13.4.3 求最大公约数 199

13.4.4 计算私钥 200

13.4.5 加密解密过程 200

13.5 扩展与提高 201

13.5.1 RSA安全性 201

13.5.2 其他公钥密码体系 202

13.5.3 对称密码体系简介 203

第三部分 综合训练篇 207

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

14.1 编程训练目的 207

14.2 编程训练要求 207

14.3 相关知识 209

14.3.1 路由器结构与功能 209

14.3.2 路由选择的基本原理 210

14.3.3 路由表 212

14.3.4 ICMP差错报文 214

14.4 编程训练设计分析 215

14.4.1 路由程序的设计 215

14.4.2 测试环境的搭建 227

14.5 扩展与提高 228

14.5.1 OSPF简介 229

14.5.2 OSPF协议工作原理 230

14.5.3 OSPF路由表的算法实现 232

第15章 FTP协议实现程序 235

15.1 编程训练目的 235

15.2 编程训练要求 235

15.3 相关知识 236

15.3.1 FTP协议简介 236

15.3.2 FTP命令简介 237

15.4 编程训练设计分析 238

15.4.1 程序总体结构分析 238

15.4.2 工作者线程函数介绍 240

15.5 扩展与提高 259

15.5.1 完成端口相关原理 259

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

第16章 协议分析器程序 264

16.1 编程训练目的 264

16.2 编程训练要求 264

16.3 相关知识 265

16.3.1 协议分析器基本原理 265

16.3.2 TCP/IP分层体系结构 265

16.3.3 数据的封装与解析 266

16.4 编程训练设计分析 267

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

16.4.2 数据捕获模块 267

16.4.3 协议解析模块 270

16.5 扩展与提高 277

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

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

第17章 综合扫描器程序 281

17.1 编程训练目的 281

17.2 编程训练要求 281

17.3 相关知识 282

17.3.1 ARP扫描 282

17.3.2 ICMP扫描 282

17.3.3 TCP扫描 282

17.3.4 UDP扫描 283

17.4 编程训练设计分析 284

17.4.1 ARP扫描实现 284

17.4.2 ICMP扫描实现 287

17.4.3 TCP Connect扫描实现 291

17.4.4 TCP SYN扫描实现 293

17.4.5 TCP FIN扫描实现 299

17.4.6 UDP扫描实现 301

17.5 扩展与提高 305

17.5.1 ICMP扫描扩展 305

17.5.2 TCP扫描扩展 306

17.5.3 UDP扫描扩展 307

17.5.4 扫描的其他应用 307

17.5.5 系统漏洞扫描简介 308

第四部分 提高训练篇 311

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

18.1 编程训练目的 311

18.2 编程训练要求 311

18.3 相关知识 312

18.3.1 SNMP协议简介 312

18.3.2 异步过程调用 314

18.4 编程训练设计分析 315

18.4.1 主体结构 315

18.4.2 功能模块简介 316

18.4.3 相关代码剖析 316

18.5 扩展与提高 325

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

18.5.2 网络管理新技术 326

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

19.1 编程训练目的 327

19.2 编程训练要求 327

19.3 相关知识 328

19.3.1 SSL协议介绍 328

19.3.2 OpenSSL库 330

19.4 编程训练设计分析 335

19.4.1 程序设计思路及实现 335

19.4.2 Server端认证证书的生成 339

19.5 扩展与提高 340

19.5.1 客户端认证 340

19.5.2 基于IPSec的安全通信 341

第20章 简单防火墙程序 345

20.1 编程训练目的 345

20.2 编程训练要求 345

20.3 相关知识 346

20.3.1 防火墙简介 346

20.3.2 系统包过滤API介绍 347

20.4 编程训练设计分析 349

20.4.1 程序流程分析 349

20.4.2 核心代码分析 349

20.5 扩展与提高 353

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

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

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

21.1 编程训练目的 359

21.2 编程训练要求 359

21.3 相关知识 360

21.3.1 Windows网络协议栈结构 360

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

21.4 编程训练设计分析 366

21.4.1 程序流程分析 366

21.4.2 核心代码分析 367

21.5 扩展与提高 375

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

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

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

22.1 编程训练目的 382

22.2 编程训练要求 382

22.3 相关知识 383

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

22.3.2 NS-2的下载与安装 385

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

22.3.4 NS-2学习方法 386

22.3.5 NS-2学习资源列表 388

22.4 编程训练设计分析 388

22.4.1 模拟场景描述 388

22.4.2 模拟脚本及其说明 389

22.4.3 模拟的Nam演示 392

22.4.4 模拟结果的统计分析 392

22.5 扩展与提高 397

22.5.1 有线网络中的Ethernet模拟 397

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

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

23.1 编程训练目的 400

23.2 编程训练要求 400

23.3 相关知识 401

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

23.3.2 移动节点的创建 403

23.3.3 移动节点的运动 404

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

23.4 编程训练设计分析 406

23.4.1 模拟场景描述 406

23.4.2 模拟脚本及其说明 406

23.4.3 模拟的Nam演示 410

23.4.4 模拟结果的统计分析 411

23.5 扩展与提高 415

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

23.5.2 深入学习导读 416

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

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

A.1 Winpcap简介 418

A.2 使用Winpcap编程的一般步骤 419

A.3 Winpcap动态库 419

附录B Windows Driver Module简介 423

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

参考文献 432