第1章 网络应用程序运行分析 1
1.1 实验目的 1
1.2 网络流量捕获工具 1
1.2.1 Wireshark的安装和卸载 2
1.2.2 Wireshark用户界面 4
1.2.3 使用Wireshark进行数据报文捕获 18
1.2.4 捕获过滤 20
1.2.5 处理捕获数据报文 22
1.3 网络状态显示工具 27
1.3.1 Netstat命令 27
1.3.2 Netstat参数功能 27
1.4 网页邮件登录过程分析 28
1.4.1 实验要求 28
1.4.2 实验内容 28
1.4.3 实验过程示例 28
1.4.4 实验总结与思考 32
1.5 迅雷软件运行过程分析 32
1.5.1 实验要求 32
1.5.2 实验内容 33
1.5.3 实验过程示例 34
1.5.4 实验总结与思考 39
第2章 Windows Sockets编程基础 40
2.1 实验目的 40
2.2 Windows Sockets 40
2.2.1 Windows Sockets规范 40
2.2.2 Windows Sockets版本 41
2.2.3 Windows Sockets组成 42
2.3 Windows Sockets编程接口 43
2.3.1 Windows Sockets API 43
2.3.2 Windows Sockets DLL的初始化和释放 46
2.4 获取主机的IP地址 47
2.4.1 实验要求 47
2.4.2 实验内容 48
2.4.3 实验过程示例 48
2.4.4 实验总结与思考 51
第3章 基于流式套接字的网络程序设计 52
3.1 实验目的 52
3.2 流式套接字编程要点 52
3.2.1 TCP——传输控制协议 53
3.2.2 流式套接字的通信过程 53
3.2.3 流式套接字编程模型 54
3.3 基于流式套接字的时间同步服务器设计 55
3.3.1 实验要求 55
3.3.2 实验内容 56
3.3.3 实验过程示例 56
3.3.4 实验总结与思考 61
3.4 流式套接字网络功能框架设计 61
3.4.1 实验要求 61
3.4.2 实验内容 61
3.4.3 实验过程示例 62
3.4.4 实验总结与思考 68
3.5 基于流式套接字的服务器回射程序设计 69
3.5.1 实验要求 69
3.5.2 实验内容 69
3.5.3 实验过程示例 70
3.5.4 实验总结与思考 75
3.6 基于流式套接字的并发服务器设计 75
3.6.1 实验要求 76
3.6.2 多线程编程要点 76
3.6.3 实验内容 83
3.6.4 实验过程示例 84
3.6.5 实验总结与思考 89
3.7 服务器回射程序运行过程分析 90
3.7.1 实验要求 90
3.7.2 实验内容 90
3.7.3 实验过程示例 91
3.7.4 实验总结与思考 102
3.8 提高流式套接字网络程序对流数据的接收能力 102
3.8.1 实验要求 103
3.8.2 实验内容 103
3.8.3 实验过程示例 104
3.8.4 实验总结与思考 113
3.9 提高流式套接字网络程序的传输效率 113
3.9.1 实验要求 114
3.9.2 实验内容 114
3.9.3 实验过程示例 116
3.9.4 实验总结与思考 125
第4章 基于数据报套接字的网络程序设计 126
4.1 实验目的 126
4.2 数据报套接字编程要点 126
4.2.1 UDP——用户数据报协议 127
4.2.2 数据报套接字的通信过程 127
4.2.3 数据报套接字编程模型 128
4.3 数据报套接字网络功能框架设计 129
4.3.1 实验要求 129
43.2 实验内容 130
4.3.3 实验过程示例 130
4.3.4 实验总结与思考 134
4.4 基于数据报套接字的服务器回射程序设计 134
4.4.1 实验要求 134
4.4.2 实验内容 134
4.4.3 实验过程示例 135
4.4.4 实验总结与思考 139
4.5 无连接应用程序丢包率测试 139
4.5.1 实验要求 139
4.5.2 实验内容 139
4.5.3 实验过程示例 140
4.5.4 实验总结与思考 146
第5章 基于原始套接字的网络程序设计 147
5.1 实验目的 147
5.2 原始套接字编程要点 147
5.3 原始套接字网络功能框架设计 149
5.3.1 实验要求 149
5.3.2 实验内容 149
5.3.3 实验过程示例 150
5.3.4 实验总结与思考 154
5.4 基于原始套接字的回射客户端程序设计 155
5.4.1 实验要求 155
5.4.2 实验内容 155
5.4.3 实验过程示例 156
5.4.4 实验总结与思考 162
5.5 traceroute程序设计 162
5.5.1 实验要求 163
5.5.2 实验内容 163
5.5.3 实验过程示例 163
5.5.4 实验总结与思考 169
第6章 网络I/O模型的应用 171
6.1 实验目的 171
6.2 套接字的I/O模式和I/O模型 171
6.2.1 网络中的I/O操作 171
6.2.2 套接字的I/O模型 172
6.3 基于I/O复用模型的回射服务器程序设计 174
6.3.1 实验要求 174
6.3.2 实验内容 175
6.3.3 实验过程示例 176
6.3.4 实验总结与思考 180
6.4 基于WSAAsyncSelect模型的文字聊天软件设计 181
6.4.1 实验要求 181
6.4.2 实验内容 181
6.4.3 实验过程示例 182
6.4.4 实验总结与思考 188
6.5 基于完成端口模型的代理服务器设计 188
6.5.1 实验要求 189
6.5.2 实验内容 189
6.5.3 实验过程示例 192
6.5.4 实验总结与思考 208
第7章 WinPcap编程 209
7.1 实验目的 209
7.2 WinPcap的体系结构 209
7.2.1 网络组包过滤模块 210
7.2.2 WinPcap编程接口 211
7.3 ARP欺骗程序设计 212
7.3.1 实验要求 212
7.3.2 实验内容 212
7.3.3 实验过程示例 216
7.3.4 实验总结与思考 223
7.4 应用级网桥程序设计 224
7.4.1 实验要求 224
7.4.2 实验内容 224
7.4.3 实验过程示例 228
7.4.4 实验总结与思考 236
附录 Windows Sockets错误码 237
参考文献 245