《Unix网络编程卷1:套接字联网API》读书笔记
第一部分:简介和TCP/IP
第1章:简介
第2章:传输层:TCP、UDP和SCTP
TCP:传输控制协议,复杂、可靠、面向连接协议
UDP:用户数据报协议,简单、不可靠、无连接协议
SCTP:流控制传输协议,组合两个特性并提供tcp不备的特性
第二部分:基本套接字编程
第3章:套接字编程简介
第4章:基本TCP套接字编程
客户、服务调用:socket、connect、bind、listen、accept、close
大多数TCP服务器是并发的
大多数UDP服务器是迭代的
第5章:TCP客户/服务器程序示例
第6章:I/O复用:select和poll函数
I/O模型:阻塞式I/O模型、非阻塞式I/O模型、I/O复用模型、信号驱动式I/O模型、异步I/O模型
最常用也是默认的I/O模型是阻塞式I/O模型
第7章:套接字选项
第8章:基本UDP套接字编程
第9章:基本SCTP套接字编程
SCTP是多宿的
第10章:SCTP客户/服务器程序例子
第11章:名字与地址转换
域名系统(DNS):用于主机名字与IP地址间的转换
解析器:把主机名转成IP地址或做相反操转换的一组函数
第三部分:高级套接字编程
第12章:IPv4与IPv6的互操作性
第13章:守护进程和inetd超级服务器
守护进程:在后台运行且不与任何终端关联的进程
许多Unix服务器由inetd守护进程启动
第14章:高级I/O函数
第15章:Unix域协议
Unix域套接字是客户和服务器在同一机器上的IPC方法之一
与其他IPC相比,其API几乎等同于网络客户/服务器使用的API
同一机器上,与其他IPC相比,其性能增长表更优
第16章:非阻塞式I/O
可能阻塞的套接字调用:输入操作、输出操作、接受外来连接、发起外出链接
第17章:ioctl操作
ioctl命令分类:套接字操作、文件操作、接口操作、ARP表操作、路由表操作、流系统
第18章:路由套接字
第19章:秘钥管理套接字
密钥管理套接字用于在内核、密钥管理守护进程以及诸如路由守护进程等安全服务消费进程之间交换SA
第20章:广播
使用广播例子:ARP、DHCP、NTP、路由守护进程
第21章:多播
第22章:高级UDP套接字编程
广播和多播应用必须使用udp
第23章:高级SCTP套接字编程
心搏(TCP的保持存活)在SCTP关联上默认就在交换
第24章:外带数据
tcp无外带数据,但提供紧急模式和紧急指针
telnet、rlogin和ftp使用外带数据
第25章:信号驱动式I/O
指进程预先告知内核,使得但某个描述符上发生某事时,内核使用信号通知相关进程
第26章:线程
创建一个新线程通常比fork派生一个新进程快得多
同一进程内的所有线程共享全局变量和描述符
第27章:IP选项
第28章:原始套接字
提供普通tcp、udp不具备的能力:
进程可以读写ICMPv4、IGMPv4、ICMPv6等分组
进程可以读写内核不处理其协议字段的IPv4数据报
进程可以使用IP_HDRINCL套接字选项自行构造IPv4首部
第29章:数据链路访问
能监视由数据链路层接收的分组
能作为普遍应用进程而不是内核的一部分运行某些程序
第30章:客户/服务器程序设计范式
第31章:流
X/Open传输接口(XTI)一般使用流来实现
TPI是从上层进入传输层的SVR4流接口