第1章 计算机网络软件编程练习要求与教学指导 1
1.1 网络软件编程能力培养的重要性 1
1.2 计算机网络软件编程的理论基础 3
1.2.1 计算机网络知识结构 3
1.2.2 网络软件编程需要掌握的网络知识 4
1.2.3 教材章节与知识点结构的关系 9
1.3 网络软件编程课题的练习目的与基本内容 11
第2章 Socket编程基础知识 15
2.1 Socket编程的基本概念 15
2.1.1 套接字的概念 15
2.1.2 套接字的分类 16
2.2 Winsock网络编程接口 18
2.2.1 Winsock的基本概念 18
2.2.2 初始化与卸载Winsock 20
2.2.3 基本Socket函数 20
2.2.4 套接字地址结构 25
第3章 Ethernet帧的封装与解析 27
3.1 设计目的 27
3.2 相关知识 27
3.2.1 数据链路层的概念 27
3.2.2 Ethernet帧的结构 28
3.3 例题分析 30
3.3.1 设计要求 30
3.3.2 关键问题 31
3.3.3 程序源代码 33
3.4 练习题 36
第4章 Ethernet帧的CRC校验 38
4.1 设计目的 38
4.2 相关知识 38
4.2.1 CRC校验的概念 38
4.2.2 CRC校验的例子 39
4.2.3 CRC校验的硬件实现 40
4.2.4 CRC校验的主要特点 42
4.3 例题分析 42
4.3.1 设计要求 42
4.3.2 关键问题 43
4.3.3 程序源代码 45
4.4 练习题 48
第5章 IP地址的合法性判断 49
5.1 设计目的 49
5.2 相关知识 49
5.2.1 IP地址的基本概念 49
5.2.2 IP地址的分类方法 50
5.2.3 特殊IP地址类型 51
5.2.4 子网的划分 52
5.3 例题分析 53
5.3.1 设计要求 53
5.3.2 关键问题 54
5.3.3 程序源代码 56
5.4 练习题 60
第6章 IP数据包的捕获与解析 62
6.1 设计目的 62
6.2 相关知识 62
6.2.1 网络层的基本概念 62
6.2.2 IP数据包的结构 63
6.3 例题分析 66
6.3.1 设计要求 66
6.3.2 关键问题 67
6.3.3 程序源代码 71
6.4 练习题 75
第7章 IP数据包的分片与重组 77
7.1 设计目的 77
7.2 相关知识 77
7.2.1 IP包分片的概念 77
7.2.2 IP包分片的相关字段 78
7.3 例题分析 80
7.3.1 设计要求 80
7.3.2 关键问题 81
7.3.3 程序源代码 82
7.4 练习题 86
第8章 IPv6数据包的封装与解析 87
8.1 设计目的 87
8.2 相关知识 87
8.2.1 IPv4协议的主要缺点 87
8.2.2 IPv6协议的基本概念 88
8.2.3 IPv6数据包的结构 89
8.2.4 IPv6地址结构 91
8.2.5 IPv6的安全功能 93
8.3 例题分析 93
8.3.1 设计要求 93
8.3.2 关键问题 94
8.3.3 程序源代码 96
8.4 练习题 101
第9章 发现网络中的活动主机 103
9.1 设计目的 103
9.2 相关知识 103
9.2.1 ICMP协议的基本概念 103
9.2.2 ICMP数据包的结构 104
9.3 例题分析 106
9.3.1 设计要求 106
9.3.2 关键问题 107
9.3.3 程序源代码 110
9.4 练习题 115
第10章 发现服务器开启的TCP端口 116
10.1 设计目的 116
10.2 相关知识 116
10.2.1 传输层的基本概念 116
10.2.2 端口号的分配 117
10.3 例题分析 119
10.3.1 设计要求 119
10.3.2 关键问题 119
10.3.3 程序源代码 121
10.4 练习题 123
第11章 TCP数据包的封装与发送 124
11.1 设计目的 124
11.2 相关知识 124
11.2.1 TCP协议的基本概念 124
11.2.2 TCP数据包的结构 125
11.3 例题分析 127
11.3.1 设计要求 127
11.3.2 关键问题 128
11.3.3 程序源代码 130
11.4 练习题 134
第12章 基于TCP的客户机/服务器程序 136
12.1 设计目的 136
12.2 相关知识 136
12.2.1 TCP协议的主要特点 136
12.2.2 客户机/服务器编程 137
12.3 例题分析 139
12.3.1 设计要求 139
12.3.2 关键问题 139
12.3.3 程序源代码 144
12.4 练习题 147
第13章 基于UDP的客户机/服务器程序 149
13.1 设计目的 149
13.2 相关知识 149
13.2.1 UDP协议的基本概念 149
13.2.2 UDP数据包的结构 151
13.3 例题分析 152
13.3.1 设计要求 152
13.3.2 关键问题 153
13.3.3 程序源代码 155
13.4 练习题 159
第14章 FTP客户机程序设计 160
14.1 设计目的 160
14.2 相关知识 160
14.2.1 应用层的基本概念 160
14.2.2 FTP服务的基本概念 161
14.2.3 FTP服务的工作原理 161
14.2.4 FTP命令与应答 163
14.3 例题分析 165
14.3.1 设计要求 165
14.3.2 关键问题 166
14.3.3 程序源代码 169
14.4 练习题 179
第15章 包过滤防火墙程序设计 181
15.1 设计目的 181
15.2 相关知识 181
15.2.1 网络安全的重要性 181
15.2.2 防火墙的基本概念 182
15.2.3 包过滤的工作原理 183
15.3 例题分析 184
15.3.1 设计要求 184
15.3.2 关键问题 184
15.3.3 程序源代码 187
15.4 练习题 192
附录A RFC文档 193
参考文献 195