第一部分 IP协议和TCP协议
第1章 网际协议IP
1.1 OSI参考模型和TCP/IP网络模型
1.2 IP主要特征
1.3 IP数据报格式
1.3.1 IP数据报头中的信息
1.3.2 数据域
1.4 IP地址
1.4.1 IP地址格式
1.4.2 IP地址分类
1.4.3 子网地址
1.4.4 一些特殊的IP地址
1.5 IP服务定义和原语
1.5.1 IP/ULP间原语
1.5.2 IP/SNP间原语
1.6 网际地址协议
1.6.1 ARP
1.6.2 RARP
1.6.3 ARP数据报格式
1.7 下一代IP协议——IPv6
1.7.1 IPv6的产生
1.7.2 IPv6数据报格式
1.7.3 IPv6的特点
1.7.4 IPv6编址和地址自动配置技术
1.8 小结
第2章 传输层协议TCP和UDP
2.1 传输层连接和端口地址
2.1.1 传输层连接
2.1.2 传输层协议端口
2.2 用户数据报协议UDP
2.2.1 高效率的UDP
2.2.2 UDP数据报的格式
2.2.3 UDP伪头部
2.3 传输控制协议TCP
2.3.3 高可靠的TCP
2.3.2 TCP段
2.3.3 TCP窗口和流量控制机制
2.3.4 TCP重传机制
2.3.5 TCP操作的有限状态机
2.3.6 TCP用户界面
2.4 小结
第3章 TCP/IP应用层协议
3.1 TELNET协议
3.1.1 远程登录概念
3.1.2 TELNET协议模型
3.1.3 TELNET协议服务过程
3.1.4 网络虚拟终端
3.1.5 TELNET协议协商过程
3.1.6 TELNET命令及举例
3.2 小型文件传输协议TFTP
3.3 文件传输协议FTP
3.3.1 FTP的数据表示、数据结构和传输模式
3.3.2 FTP命令和应答
3.3.3 FTP连接的建立
3.4 简单邮件传输协议(SMTP)
3.4.1 消息传递
3.4.2 消息格式
3.4.3 SMTP命令
3.4.4 SMTP应答
3.5 邮局协议(POP)
3.5.1 POP2和POP3的差别
3.5.2 POP3协议的作用和原理
3.5.3 POP3协议会话过程和命令
3.5.4 POP3协议会话示例
3.6 小结
第二部分 各种网络协议编程API
第4章 Windows套接字
4.1 套接字应用场合
4.2 套接字
4.2.1 数据报套接字
4.2.2 流式套接字
4.2.3 原始套接口
4.2.4 带外数据
4.2.5 字节顺序
4.2.6 套接口属性选项
4.3 WinSock API使用
4.3.1 初始化WinSock
4.3.2 创建套接字
4.3.3 套接口网络编程原理
4.4 数据报套接字
4.4.1 bind()
4.4.2 创建服务器套接字
4.4.3 字节顺序转换
4.4.4 从数据报套接字接收数据
4.4.5 向数据报套接字发送数据
4.5 流式套接字
4.5.1 流式套接字和服务器
4.5.2 侦听连接
4.5.3 接收连接
4.5.4 请求连接
4.5.5 使用流式套接字来发送和接收数据
4.6 广播技术
4.7 等待事件
4.7.1 使用select()函数
4.7.2 使用WSAAsyncSelect()
4.7.3 阻塞/非阻塞和数据易失性
4.7.4 关闭套接字
4.8 MFC和WinSock API
4.8.1 创建CAsyncSocket对象
4.8.2 CAsyncSocket对象的错误处理
4.8.3 套接字选项和CAsyncSocket
4.8.4 发送和接收数据报
4.8.5 套接字与服务器连接
4.8.6 接受与服务器的连接
4.8.7 发送并接收流式数据
4.8.8 关闭套接字
4.9 CSocket对象
4.9.1 创建CSocket对象
4.9.2 建立连接
4.9.3 发送和接收数据
4.9.4 与CSocket一起使用CArchive
4.9.5 利用CArchive对象来发送和接收数据
4.9.6 清除对象
4.10 WinSock 2
4.10.1 与WinSock1.1应用程序的向后兼容性
4.10.2 使用多种协议
4.10.3 多协议名分辨
4.10.4 重叠和分散/聚集I/O
4.10.5 服务质量
4.10.6 套接口组
4.10.7 共享套接口
4.10.8 连接建立和拆除的高级函数
4.10.9 扩展的字节顺序转换例程
4.10.10 协议无关的多点通信
4.11 小结
第5章 WinInet API
5.1 WinInet C API使用
5.1.1 句柄
5.1.2 错误处理
5.1.3 缓冲区参数
5.1.4 异步I/O
5.2 普通Internet函数
5.2.1 WinInet对话
5.2.2 句柄选项设置
5.2.3 句柄选项查询
5.2.4 Internet连接确认
5.2.5 与服务器连接
5.2.6 增加一个返回函数
5.2.7 URL处理
5.2.8 基本文件操作
5.2.9 数据可用性查询
5.2.10 数据读取
5.2.11 文件指针移动
5.2.12 向Internet文件写数据
5.3 Ftp客户机函数
5.3.1 当前目录
5.3.2 创建和更换目录
5.3.3 查找文件
5.3.4 获取文件
5.3.5 发送文件
5.3.6 打开文件
5.3.7 其他FTP文件操作
5.4 HTTP客户机函数
5.4.1 HTTP请求
5.4.2 HttpSendRequest()错误处理
5.4.3 获取响应信息
5.4.4 初步了解Cookies Jar
5.4.5 使用高速缓存
5.5 Gopher客户机函数
5.6 MFC WinInet类
5.6.1 CInternetSession
5.6.2 连接类
5.6.3 文件类
5.6.4 CInternetException
5.6.5 CInternetSession使用
5.6.6 FTP处理
5.6.7 HTTP处理
5.6.8 Gopher处理
5.7 小结
第6章 Internet Server API(SAP)
6.1 ISA开发
6.1.1 ISA入口点
6.1.2 扩展控制块(ECB)
6.1.3 文件发送
6.1.4 异步操作
6.1.5 服务器日志
6.1.6 ISA异常处理
6.1.7 ISA调试
6.1.8 从CGI到ISAPI的转换
6.2 ISAPI过滤程序
6.2.1 过滤程序安装
6.2.2 过滤程序结构
6.2.3 HTTP_FELTER_CONTEXT结构
6.2.4 过滤程序通知处理
6.3 MFC对ISAPI的支持
6.3.1 CHttpServer
6.3.2 分析程序映射
6.3.3 处理函数
6.3.4 CHttpServercontext
6.3.5 CHtmlStream
6.3.6 CHttpFilter
6.3.7 CHttpFilterContext
6.4 ISMAPI
6.5 小结
第7章 高级网络API
7.1 管道和邮槽API
7.1.1 匿名管道
7.1.2 命名管道
7.1.3 邮槽
7.2 信报API
7.2.1 MAPI结构
7.2.2 在MFC中支持MAPI
7.2.3 通用信报调用
7.2.4 简单MAPI
7.2.5 扩展MAPI
7.2.6 OLE信报库
7.3 电话API
7.3.1 辅助电话服务提供程序
7.3.2 基本电话程序
7.3.3 增补电话API
7.3.4 扩展电话API
7.4 小结
第三部分 网络协议的具体应用实例
第8章 TCP协议应用
8.1 示例1
8.2 示例2
8.3 示例3
8.4 示例4
8.5 示例5
8.6 小结
第9章 UDP协议应用
9.1 UDP协议应用系统简介
9.1.1 系统结构
9.1.2 原理分析
9.2 UDP应用服务端
9.3 UDP应用客户端
9.4 小结
第10章 SMTP和POP3示例
10.1 邮件消息类
10.2 SMTP协议类
10.3 POP3协议类
10.4 自己的电子邮件平台
10.5 小结
第11章 ICMP协议及示例
11.1 ICMP协议
11.1.1 ICMP协议与IP协议
11.1.2 ICMP报文格式
11.1.3 ICMP的安全性问题
11.2 Ping程序示例
11.2.1 生成Ping应用程序
11.2.2 加入Ping代码
11.2.3 Ping程序运行结果
11.3 小结
第12章 Time协议和示例
12.1 Time协议
12.2 使用Time协议
12.2.1 Client采用TCP连接
12.2.2 Client采用UDP数据报
12.2.3 Internet Time编码
12.3 Time协议示例
12.3.1 创建用子查询时间的应用程序
12.3.2 加入查询Time Server的代码
12.3.3 GetTime程序的运行结果
12.4 小结
第13章 WinInet类库编程
13.1 MFC WinInet类简介
13.1.1 常用的WinInet类
13.1.2 WinInet类的优点
13.2 创建Web客户端程序
13.2.1 设计查询对话框
13.2.2 查询HTTP服务器
13.2.3 查询FTP服务器
13.2.4 查询Gopher服务器
13.3 小结