第1章 网络分层模型 2
1.1OSI模型 2
1.1.1第七层——应用层(Application) 2
1.1.2第六层——表示层(Presentation) 3
1.1.3第五层——会话层(Session) 3
1.1.4第四层——传输层(Transpo) 4
1.1.5第三层——网络层(Network) 5
1.1.6第二层——数据链路层(Data Link) 6
1.1.7第一层——物理层(Physical) 6
1.2 TCP/IP模型 7
1.3本章小结 7
第2章 网络设备 10
2.1网络设备概述 10
2.1.1数据传输类型 10
2.1.2广播域和冲突域 11
2.2集线器(Hub) 12
2.3交换机(Switch) 13
2.4桥(Bridge) 14
2.5路由器(Router 15
2.6本章小结 18
第3章IP 20
3.1 IP概述 20
3.2 IPv4地址 20
3.2.1分类法 21
3.2.2子网化 25
3.2.3无分类域间路由 28
3.3 IP路由 29
3.3.1基本原理 29
3.3.2路由表 30
3.4分段和重组 32
3.4.1 IP分段的过程 32
3.4.2重组 34
3.5 IP包头 35
3.5.1字节序 35
3.5.2 IP包头字段 36
3.5.3 IP校验和计算 41
3.6本章小结 44
第4章 UDP 46
4.1相关内容介绍 46
4.2 UDP包头 47
4.3端口 49
4.4本章小结 51
第5章 TCP 53
5.1相关内容介绍 53
5.2 TCP功能概述 53
5.2.1进程寻址 53
5.2.2数据校验 53
5.2.3面向连接 54
5.2.4字节流数据传输 54
5.2.5可靠数据传输 55
5.2.6 TCP流量控制 56
5.3 TCP包头 56
5.4 TCP连接管理 61
5.4.1建立连接阶段 61
5.4.2数据传输阶段 65
5.4.3关闭连接阶段 66
5.4.4 TCP有限状态机 69
5.5 TCP可靠数据传输 71
5.5.1 TCP可靠数据传输的基本原理 71
5.5.2确认 72
5.5.3超时 73
5.5.4重发 74
5.6 TCP流量控制和拥塞控制 78
5.6.1 TCP滑动窗口确认系统 78
5.6.2基于滑动窗口确认系统的流量控制 82
5.6.3滑动窗口确认系统的问题 85
5.6.4拥塞控制 88
5.7本章小结 90
第6章 NAT 92
6.1 NAT概述 92
6.1.1基本概念 93
6.1.2 NAT功能 94
6.1.3 NAT局限性 97
6.2 NAT类型 98
6.2.1 NAT功能分类 98
6.2.2 NAT地址转换分类 100
6.2.3 NAT实现方式分类 101
6.3 NAT工作原理 104
6.3.1 NAT地址转换原理 104
6.3.2 NAT工作流程 106
6.4 NAT穿越技术 108
6.4.1 ALG方式 109
6.4.2 Full Proxy方式 111
6.4.3 MIDCOM方式 112
6.4.4隧道方式 113
6.4.5 STUN和STUNT 113
6.4.6 TURN 114
6.4.7 ICE 115
6.5本章小结 116
第7章 Winsock基础 118
7.1套接字基础 118
7.2客户端/服务器(C/S)通信模型 119
7.3 TCP客户端和服务器基本交互过程 120
7.3.1 TCP服务器端 120
7.3.2 TCP客户端 121
7.4 UDP客户端和服务器基本交互过程 121
7.4.1 UDP服务器端 121
7.4.2 UDP客户端 122
7.5 TCP与UDP客户端朋服务器交互过程的区别 122
7.6 Winsock编程基础 123
7.6.1 Winsock基本数据类型和数据结构 123
7.6.2 Winsock基本函数(API) 125
7.7 TCP客户端和服务器的Winsock实现 127
7.7.1 TCP服务器的Winsock实现 127
7.7.2TCP客户端的Winsock实现 132
7.8 UDP客户端和服务器的Winsock实现 134
7.8.1 UDP服务器的Winsock实现 134
7.8.2 UDP客户端的Winsock实现 136
7.9套接字模式 136
7.10 Winsock I/O模型 137
7.11本章小结 138
第8章 阻塞I/O模型 140
8.1阻塞I/O模型介绍 140
8.2阻塞I/O模型迭代回显服务器 140
8.3阻塞I/O模型并发回显服务器 145
8.4阻塞I/O模型回显客户端 147
8.5本章小结 150
第9章 就绪通告I/O模型 152
9.1就绪通告I/O模型介绍 152
9.2 select模型 152
9.2.1 select模型介绍 152
9.2.2 select模型服务器程序 154
9.3 WSAAsyncSelect模型 162
9.3.1 WSAAsyncSelect模型介绍 162
9.3.2 WSAAsyncSelect模型使用要点 164
9.3.3 WSAAsyncSelect模型服务器程序 165
9.4 WSAEventSelect模型 173
9.4.1 WSAEventSelect模型介绍 173
9.4.2 WSAEventSelect模型使用要点 177
9.4.3 WSAEventSelect模型服务器程序 178
9.5本章小结 186
第10章 异步I/O模型 188
10.1异步I/O(重叠I/O)基础 188
10.1.1异步I/O函数和结构 188
10.1.2异步I/O请求队列 189
10.1.3异步I/O使用方法 190
10.1.4获取异步I/O的结果 191
10.1.5 Winsock的重叠I/O 192
10.2重叠I/O+事件通告模型 194
10.2.1重叠I/O+事件通告模型介绍 194
10.2.2重叠I/O+事件通告模型使用要点 195
10.2.3重叠I/O+事件通告模型服务器程序 196
10.3重叠I/O+回调通告模型 206
10.3.1重叠I/O+回调通告模型介绍 206
10.3.2重叠I/O+回调通告模型服务器程序 210
10.4重叠I/O+完成端口(IOCP)通告模型 219
10.4.1重叠I/O+完成端口通告模型介绍 219
10.4.2与IOCP相关的函数 222
10.4.3重叠I/O+完成端口通告模型服务器程序 225
10.5本章小结 233
第11章 Winsock服务提供者 235
11.1 Winsock服务提供者介绍 235
11.2 Winsock目录 236
11.3 SPI函数 239
11.4协议链 241
11.4.1协议链概念 241
11.4.2协议链的工作方式 243
11.5 IFS LSP和non-IFS LSP 243
11.6 SPI常用函数 246
11.7安装LSP 248
11.7.1 LSP介绍 248
11.7.2在LSP之上安装LSP 251
11.7.3改变Winsock目录协议项的顺序 253
11.7.4 LSP安装程序样例代码 254
11.8实现一个LSP 262
11.8.1实现WSPStartup 262
11.8.2 LSP样例程序代码 264
11.9本章小结 273
第12章 网络加密基础及OpenSSL简介 275
12.1加密基础 275
12.1.1对称加密 275
12.1.2非对称加密 275
12.1.3消息摘要算法和消息验证码 276
12.1.4数字签名 276
12.1.5数字证书和证书中心CA 277
12.1.6数字证书格式X.509标准 280
12.2 SSL/TLS简介 281
12.2.1 SSL/TLS的基本原理 282
12.2.2 SSL/TLS的握手过程 283
12.3 OpenSSL简介 285
12.4 OpenSSL编译 285
12.4.1准备工作 285
12.4.2配置编译环境 286
12.4.3编译 286
12.4.4安装 287
12.5 OpenSSL常用命令 288
12.5.1 genrsa 288
12.5.2 req 288
12.5.3 x509 289
12.5.4 ca 289
12.6使用OpenSSL来建立CA 290
12.6.1配置CA环境 290
12.6.2创建CA的数字证书 291
12.7本章小结 295
第13章 OpenSSL编程基础 297
13.1 OpenSSL编程简介 297
13.1.1设置开发环境 297
13.1.2程序初始化 298
13.1.3建立连接和握手 302
13.1.4检查证书主体 304
13.1.5数据传输 305
13.2 OpenSSL编程实例 305
13.2.1建立服务器和客户端的证书 306
13.2.2客户端程序 310
13.2.3服务器程序 315
13.3 OpenSSL的高级应用 320
13.4本章小结 324