第1章TCP/IP协议模型 1
1.1 OSI参考模型 1
1.2 TCP/IP结构 3
1.2.1 TCP/IP模型 3
1.2.2 OSI参考模型与TCP/IP模型的关系 4
1.2.3 TCP/IP各层协议介绍 4
1.3实践拓展 12
第22章TCP/IP协议基础知识 16
2.1IP地址和子网掩码 16
2.1.1IP地址 16
2.1.2子网掩码 17
2.1.3网络地址 18
2.1.4网络地址的计算 20
2.2地址解析 22
2.2.1地址解析的基本思想 22
2.2.2完整的地址解析工作过程 22
2.3域名系统 23
2.3.1主机名的注册 24
2.3.2主机名的解析 24
2.4TCP/IP协议栈的数据包封装 24
2.4.1IP数据报 25
2.4.2UDP数据报 29
2.4.3TCP数据报 30
2.5端口号 32
2.6实践拓展 33
第3章Windows网络编程基础 36
3.1套接字 36
3.1.1流套接字和数据报套接字 36
3.1.2基本概念 37
3.1.3字节顺序 38
3.2Winsock编程原理 39
3.2.1Winsock的启动和终止 39
3.2.2错误检查和控制 39
3.2.3Winsock编程模型 40
3.3WinsockIO模型 45
3.3.1Select模型 46
3.3.2WSAAsyncSelect模型 47
3.3.3WSAEventSelect模型 48
3.4Winsock2的扩展特性 50
3.4.1原始套接字 50
3.4.2重叠I0模型 51
3.4.3服务质量(QOS) 52
3.5套接字选项和I0控制命令 53
3.5.1套接字选项 53
3.5.2 1/0控制命令 55
3.6WinInet网络编程基础 56
3.7MFCWindowsSockets网络编程基础 62
3.7.1CAsyncSocket类 62
3.7.2CSocket类 67
3.8实践拓展 70
第4章网络的基本应用 75
4.1获取主机名和IP地址 75
4.2获取网卡类型和子网掩码 78
4.3获取网卡MAC地址 86
4.3.1MAC基础知识 86
4.3.2NetBIOS编程接口 87
4.3.3NetBIOS编程基础 87
4.4获取系统支持的网络协议 90
4.4.1Win32支持的协议 90
4.4.2Winsock2的WSAEnum-Protocols函数 91
4.5实践拓展 99
第5章IP配置信息管理程序设计 101
5.1GetNetworkParams函数 101
5.2管理网络接口 103
5.2.1获取接口数量 103
5.2.2获取接口信息 103
5.3获取和设置特定的接口 105
5.4管理IP地址 108
5.4.1获取IP地址列表 108
5.4.2添加和删除IP地址 109
5.4.3获取IP地址列表并添加新IP地址 109
5.5实践拓展 112
第6章ARP表管理程序设计 116
6.1ARP工作原理 116
6.2对ARP表操作的函数 117
6.2.1获取ARP表函数 117
6.2.2添加ARP入口函数 117
6.2.3删除ARP入口函数 118
6.3打印ARP表程序示例 118
6.4实践拓展 122
第7章基于Winsock的客户/服务器开发 124
7.1TCP服务器设计 124
7.2TCP客户端设计 127
7.3多线程TCP服务器和客户端设计 129
7.3.1多线程服务器 129
7.3.2客户端程序 133
7.4网络对时程序设计 138
7.5实践拓展 138
7.5.1服务器端程序代码分析 138
7.5.2客户端程序代码分析 141
第8章路由管理程序设计 144
8.1获取路由表 144
8.2管理特定路由 148
8.2.1添加路由 148
8.2.2删除路由 148
8.2.3修改路由 149
8.2.4修改默认网关 149
8.3基于ICMP协议的路由跟踪 151
8.4实践拓展 160
8.4.1ICMP报文简介 160
8.4.2ICMP协议应用 161
第9章本地网络活动监视和端口扫描 164
9.1网络进程获取的API函数 164
9.2列举本地所有网络的活动进程 166
9.3TCP/IP端口扫描 172
9.3.1常见端口扫描技术简介 173
9.3.2端口扫描实例详解 173
9.4实践拓展 178
第10章TCP穿越NAT的P2P通信 181
10.1NAT穿越简介 181
10.2Session概念和NAT设备类型 182
10.3NAT转发方式 183
10.4NAT反向连接方式 184
10.5基于“打洞”技术的程序设计 184
10.6程序测试 191
10.7实践拓展 193
第11章即时通信与TCP/IP超级终端 196
11.1即时通信原理 196
11.1.1IM技术原理 196
11.1.2IM通信方式 197
11.2即时通信程序设计 198
11.3TCP/IP超级终端 202
11.4实践拓展 205
第12章FTP协议与实例分析 209
12.1FIP的工作原理 209
12.2FTP服务程序的开发 211
12.2.1程序功能介绍 212
12.2.2程序中主要类的说明 212
12.2.3程序代码分析 212
12.3开发FIP客户端程序 220
12.3.1客户端项目的建立 221
12.3.2客户端程序代码实现 221
12.4实践拓展 225
第13章HTTP协议与实例分析 229
13.1HTTP协议介绍 229
13.1.1HTTP协议通信过程 229
13.1.2HTTP协议的请求报文 231
13.1.3HTTP请求流程 233
13.1.4HTTP协议的响应报文 233
13.2HTTP下载程序实例 234
13.3实践拓展 241
第14章Telnet协议与实例分析 244
14.1Telnet协议简介 244
14.1.1NVTASCII字符集 245
14.1.2Telnet命令 245
14.1.3选项协商 245
14.1.4Telnet服务器进程和客户进程间的操作方式 247
14.2实现Telnet客户端程序 247
14.2.1Telnet客户端程序功能介绍 247
14.2.2Telnet客户端程序代码分析 249
14.3实践拓展 257
第15章SMTP和POP3协议与实例分析 260
15.1电子邮件的标准格式RFC822 260
15.1.1RFC822信件的格式和内容 260
15.1.2构造符合RFC822的信件 266
15.1.3RFC822信件的语法分析 267
15.2SMTP模型及电子邮件的发送 268
15.2.1SMTP的模型描述 268
15.2.2SMTP的会话过程 268
15.3无附件的电子邮件发送程序 275
15.3.1程序实例实现 275
15.3.2程序代码分析 275
15.4带有附件的电子邮件发送程序 276
15.4.1程序实例实现 276
15.4.2程序代码分析 277
15.5POP3协议与电子邮件的接收 295
15.6电子邮件接收程序 301
15.6.1程序实例实现 301
15.6.2程序代码分析 301
15.7实践拓展 310
第16章网络防火墙设计 317
16.1防火墙的类型与特点 317
16.2防火墙的工作原理 318
16.3Filter-HookDriver防火墙程序设计 320
16.3.1Filter-Hook驱动 320
16.3.2创建内核模式驱动 321
16.3.3注册过滤函数 323
16.3.4使用过滤函数 324
16.3.5过滤程序代码分析 325
16.3.6使用Filter-HookDriver开发防火墙应注意的问题 326
16.4利用ICMP数据报突破网关限制 326
16.5实践拓展 330
第17章网络安全 333
17.1ARP的工作原理 333
17.1.1ARP的工作方式 333
17.1.2ARP协议格式与发送函数 335
17.2ARP欺骗原理与实例 336
17.2.1ARP欺骗的实现原理 336
17.2.2IP地址冲突 337
17.2.3ARP欺骗程序实例 337
17.3侦听局域网内的密码实例 340
17.4Windows下DNSID欺骗的原理 342
17.5实践拓展 352
第18章串口通信程序设计 354
18.1串口通信基础 354
18.1.1三线制RS-232-C通信接线 354
18.1.2串口通信基本原理 355
18.2MSComm控件详解 356
18.2.1MSComm控件处理通信问题的方法 356
18.2.2MSComm控件属性 356
18.2.3VARIANT数据类型 359
18.3利用MSComm控件的串口通信程序设计 360
18.3.1基于MSComm控件的串口通信程序实例 360
18.3.2利用串口进行十六进制数据的发送 364
18.3.3十六进制数据的显示 366
18.3.4设置自动发送功能 367
18.4串口通信的WindowsAPI函数基础 368
18.4.1打开串口 368
18.4.2配置串口 368
18.4.3超时设置 371
18.4.4事件设置 372
18.4.5读串口 373
18.4.6写串口 373
18.4.7关闭串口 374
18.5异步串口通信实例 374
18.5.1异步通信编程步骤 374
18.5.2异步通信实例分析 376
18.6实践拓展 380
18.6.1Modbus协议 380
18.6.2系统设计 381
参考文献 384