**前言**本书面向的读者是那些希望自己编写的程序能使用称为套接字(socket)的API进行彼此通信的人。有些读者可能已经非常熟悉套接字了,因为这个模型几乎已经成了网络编程的同义词,但有些读者可能仍需要从头开始学习。本书想达到的目标是向大家提供网络编程指导。这些内容不仅适用于专业人士,也适用于初学者;不仅适用于维护已有代码,也适用于开发新的网络应用程序;此外,还适用于那些只是想了解一下自己系统中网络组件的工作原理的人。
书中的所有示例都是在Unix系统上测试通过的真实的、可运行的代码。但是,考虑到许多非Unix的操作系统也支持套接字API,因而我们选取的示例与所讲述的一般性概念,在很大程度上是与操作系统无关的。几乎每种操作系统都提供了大量的网络应用程序,如网页浏览器、电子邮件客户端、文件共享服务器等。我们按常规的划分方法把这些应用程序分为客户程序和服务器程序,并在书中多次编写了相应的小型示例。
**[第一部分 简介和TCP/IP第1章 简介1.1 概述](https://yq.aliyun.com/articles/100451)**1.2 一个简单的时间获取客户程序1.3 协议无关性1.4 错误处理:包裹函数1.5 一个简单的时间获取服务器程序1.6 本书中客户/服务器程序示例索引表1.7 OSI模型1.8 BSD网络支持历史1.9 测试用网络及主机1.10 Unix标准1.10.1 OSIX的背景1.10.2 开放团体的背景1.10.3 标准的统一1.10.4 因特网工程任务攻坚组1.11 64位体系结构1.12 小结**[第2章 传输层:TCP、UDP和SCTP2.1 概述](https://yq.aliyun.com/articles/100557)**2.2 总图2.3 用户数据报协议(UDP)2.4 传输控制协议(TCP)2.5 流控制传输协议(SCTP)2.6 TCP连接的建立和终止2.6.1 三路握手2.6.2 TCP选项2.6.3 TCP连接终止2.6.4 TCP状态转换图2.6.5 观察分组2.7 TIME_WAIT状态2.8 SCTP关联的建立和终止2.8.1 四路握手2.8.2 关联终止2.8.3 SCTP状态转换图2.8.4 观察分组2.8.5 SCTP选项2.9 端口号2.10 TCP端口号与并发服务器2.11 缓冲区大小及限制2.11.1 TCP输出2.11.2 UDP输出2.11.3 SCTP输出2.12 标准因特网服务2.13 常见因特网应用的协议使用2.14 小结**[第8章 基本UDP套接字编程8.1 概述](https://yq.aliyun.com/articles/100641)**8.2 recvfrom和sendto函数8.3 UDP回射服务器程序:main函数8.4 UDP回射服务器程序:dg_echo函数8.5 UDP回射客户程序:main函数8.6 UDP回射客户程序:dg_cli函数8.7 数据报的丢失8.8 验证接收到的响应8.9 服务器进程未运行8.10 UDP程序例子小结8.11 UDP的connect函数8.11.1 给一个UDP套接字多次调用connect8.11.2 性能8.12 dg_cli函数(修订版)8.13 UDP缺乏流量控制8.14 UDP中的外出接口的确定8.15 使用select函数的TCP和UDP回射服务器程序8.16 小结
相关资源:UNIX网络编程卷1:套接字联网API(第3版).pdf