第1章 网络软件编程练习要求与教学指导 1
1.1 网络软件编程能力培养 1
1.2 网络软件编程理论基础 2
1.2.1 网络知识结构 2
1.2.2 编程需掌握的知识 3
1.2.3 教材章节与知识点结构 8
1.3 编程题目的基本内容 9
第2章 Socket编程基础知识 13
2.1 Socket编程的基本概念 13
2.1.1 套接字的概念 13
2.1.2 套接字的分类 14
2.2 Winsock网络编程接口 15
2.2.1 Winsock的基本概念 16
2.2.2 初始化与卸载Winsock 17
2.2.3 基本Socket函数 18
2.2.4 套接字地址结构 23
第3章 Ethernet帧的封装与解析 25
3.1 设计目的 25
3.2 相关知识 25
3.2.1 数据链路层的概念 25
3.2.2 Ethernet帧的结构 26
3.3 例题分析 27
3.3.1 设计要求 27
3.3.2 关键问题 28
3.3.3 程序源代码 31
3.4 练习题 34
第4章 Ethernet帧的CRC校验 35
4.1 设计目的 35
4.2 相关知识 35
4.2.1 CRC校验的概念 35
4.2.2 CRC校验的例子 36
4.2.3 CRC校验的硬件实现 37
4.2.4 CRC校验的主要特点 38
4.3 例题分析 38
4.3.1 设计要求 38
4.3.2 关键问题 39
4.3.3 程序源代码 41
4.4 练习题 44
第5章 IP地址的合法性判断 46
5.1 设计目的 46
5.2 相关知识 46
5.2.1 IP地址的基本概念 46
5.2.2 IP地址的分类方法 47
5.2.3 其他IP地址类型 48
5.2.4 IP地址技术发展 49
5.3 例题分析 51
5.3.1 设计要求 51
5.3.2 关键问题 52
5.3.3 程序源代码 54
5.4 练习题 58
第6章 IP数据包的捕获与解析 60
6.1 设计目的 60
6.2 相关知识 60
6.2.1 网络层的基本概念 60
6.2.2 IP数据包的结构 61
6.3 例题分析 64
6.3.1 设计要求 64
6.3.2 关键问题 65
6.3.3 程序源代码 68
6.4 练习题 72
第7章 IP数据包的分片与重组 74
7.1 设计目的 74
7.2 相关知识 74
7.2.1 IP包分片的概念 74
7.2.2 IP包分片的相关字段 75
7.3 例题分析 76
7.3.1 设计要求 76
7.3.2 关键问题 77
7.3.3 程序源代码 78
7.4 练习题 83
第8章 IPv6数据包的封装与解析 84
8.1 设计目的 84
8.2 相关知识 84
8.2.1 IPv4协议的主要缺点 84
8.2.2 IPv6协议的基本概念 85
8.2.3 IPv6数据包的结构 86
8.2.4 IPv6地址结构 88
8.2.5 IPv6安全功能 90
8.3 例题分析 90
8.3.1 设计要求 90
8.3.2 关键问题 91
8.3.3 程序源代码 93
8.4 练习题 98
第9章 发现网络中的活动主机 100
9.1 设计目的 100
9.2 相关知识 100
9.2.1 ICMP协议的基本概念 100
9.2.2 ICMP数据包的类型 101
9.2.3 ICMP数据包的结构 102
9.2.4 ICMP回送请求与应答 103
9.3 例题分析 104
9.3.1 设计要求 104
9.3.2 关键问题 104
9.3.3 程序源代码 107
9.4 练习题 112
第10章 发现服务器开启的TCP端口 113
10.1 设计目的 113
10.2 相关知识 113
10.2.1 传输层的基本概念 113
10.2.2 端口号的分配 114
10.3 例题分析 116
10.3.1 设计要求 116
10.3.2 关键问题 116
10.3.3 程序源代码 118
10.4 练习题 120
第11章 TCP数据包的封装与发送 121
11.1 设计目的 121
11.2 相关知识 121
11.2.1 TCP协议的基本概念 121
11.2.2 TCP数据包的结构 122
11.3 例题分析 124
11.3.1 设计要求 124
11.3.2 关键问题 125
11.3.3 程序源代码 126
11.4 练习题 131
第12章 基于TCP的客户机/服务器程序 132
12.1 设计目的 132
12.2 相关知识 132
12.2.1 TCP协议的主要特点 132
12.2.2 客户机/服务器编程 134
12.3 例题分析 135
12.3.1 设计要求 135
12.3.2 关键问题 136
12.3.3 程序源代码 139
12.4 练习题 143
第13章 基于UDP的客户机/服务器程序 144
13.1 设计目的 144
13.2 相关知识 144
13.2.1 UDP协议的基本概念 144
13.2.2 UDP数据包的结构 145
13.2.3 基于UDP的客户机/服务器编程 146
13.3 例题分析 147
13.3.1 设计要求 147
13.3.2 关键问题 148
13.3.3 程序源代码 150
13.4 练习题 154
第14章 FTP客户机程序设计 155
14.1 设计目的 155
14.2 相关知识 155
14.2.1 应用层的基本概念 155
14.2.2 FTP服务的基本概念 156
14.2.3 FTP服务的工作原理 157
14.2.4 FTP命令与应答 158
14.3 例题分析 160
14.3.1 设计要求 160
14.3.2 关键问题 161
14.3.3 程序源代码 163
14.4 练习题 172
第15章 POP客户机程序设计 174
15.1 设计目的 174
15.2 相关知识 174
15.2.1 电子邮件的基本概念 174
15.2.2 邮件服务的工作原理 175
15.2.3 邮件地址与邮件格式 176
15.2.4 POP命令与应答 178
15.3 例题分析 179
15.3.1 设计要求 179
15.3.2 关键问题 180
15.3.3 程序源代码 182
15.4 练习题 189
第16章 包过滤防火墙程序设计 191
16.1 设计目的 191
16.2 相关知识 191
16.2.1 网络安全的重要性 191
16.2.2 防火墙的基本概念 192
16.2.3 防火墙的分类方法 193
16.2.4 防火墙系统结构 194
16.3 例题分析 196
16.3.1 设计要求 196
16.3.2 关键问题 196
16.3.3 程序源代码 198
16.4 练习题 204
附录 RFC文档 205
参考文献 207