TCP/IP详解 卷1:协议 笔记
前言
- 作者:Kevin R. Fall、W. Richard Stevens
- 出版时间:2011年(第2版)
- 适用人群:网络工程师、系统管理员、软件开发人员、研究生等
- 特点:
- 详细介绍TCP/IP协议族的核心协议(IP、TCP、UDP、ICMP、ARP、DHCP、DNS等)。
- 通过实际数据包分析协议运行机制,帮助理解协议背后的设计决策。
- 包含大量示例、图表和参考文献,适合深入学习和参考。
- 更新了安全性讨论,涵盖IPsec、TLS、DNSSEC等安全协议。
IP协议
IPv4与IPv6地址结构
-
IPv4地址:32位地址,分为网络部分和主机部分。
- 类别地址:A、B、C、D(组播)、E(保留)。
- 子网掩码:用于划分子网,例如255.255.255.0。
- CIDR:无类域间路由,使用前缀长度表示子网掩码,例如192.168.1.0/24。
-
IPv6地址:128位地址,格式为8组16位十六进制数,例如2001:0db8:85a3:0000:0000:8a2e:0370:7334。
- 地址类型:单播、组播、任播、链路本地、全局唯一等。
- 邻居发现:用于发现链路层地址、路由器、重复地址检测等。
TCP协议
连接建立与终止
- 三次握手:SYN → SYN-ACK → ACK。
- 四次挥手:FIN → ACK → FIN → ACK。
可靠传输机制
- 序列号与确认号:用于确保数据包按序到达。
- 超时重传:当确认超时时,重新发送数据包。
- 选择性确认(SACK):接收方确认已收到的数据包,避免重复发送。
拥塞控制
- 慢启动:初始窗口大小为1 MSS,每收到一个ACK,窗口大小增加1 MSS(指数增长)。
- 拥塞避免:窗口大小线性增长,避免过快增长导致拥塞。
- 快速重传:当接收方连续收到3个重复ACK时,发送方立即重传丢失的数据包。
- 快速恢复:在快速重传后,将拥塞窗口减小一半,并进入拥塞避免状态。
TCP头部字段
- 源端口、目的端口、序列号、确认号、数据偏移、保留、控制位(SYN、ACK、FIN、RST等)、窗口大小、校验和、紧急指针等。
UDP协议
特点
- 无连接、无拥塞控制、无可靠性保证,适用于实时应用(如DNS、DHCP、VoIP)。
UDP头部字段
- 源端口、目的端口、长度、校验和。
ICMP协议
错误报告
- 目的不可达:目的地址不可达、网络不可达、主机不可达、协议不可达、端口不可达等。
- 超时:TTL为零、片重组超时等。
- 重定向:更优路由器地址。
- 参数问题:头部错误、选项错误等。
查询消息
- 回显请求/应答:ping命令使用。
- 时间戳请求/应答:用于测量往返时间。
- 地址掩码请求/应答:用于获取子网掩码。
ARP协议
地址解析
- 将IP地址映射到MAC地址,使用广播发送ARP请求,接收方响应ARP应答。
ARP缓存
- 缓存IP到MAC的映射,减少ARP请求的开销。
代理ARP与免费ARP
- 代理ARP:路由器代理ARP请求,将数据报转发到下一跳。
- 免费ARP:检测IP地址冲突,避免多个主机使用同一IP地址。
DHCP协议
动态主机配置
- 消息格式:
- DHCPDISCOVER:客户端发现DHCP服务器。
- DHCPOFFER:服务器提供IP地址和配置信息。
- DHCPREQUEST:客户端请求租用IP地址。
- DHCPACK:服务器确认租用。
DHCP选项
- 租用时间、默认网关、DNS服务器、域名等。
DNS协议
域名解析
- 资源记录:
- A:IPv4地址。
- AAAA:IPv6地址。
- CNAME:别名。
- MX:邮件交换器。
- NS:域名服务器。
查询与响应
- 递归查询与迭代查询,DNS缓存机制。
安全与攻击
IPsec
- AH:认证头部,提供数据完整性和来源认证。
- ESP:封装安全载荷,提供保密性、完整性和来源认证。
- IKE:密钥交换协议,用于建立安全关联(SA)。
常见攻击与防范
- 拒绝服务(DoS):通过大量请求耗尽资源。
- 中间人攻击(MITM):截获和修改通信内容。
- IP欺骗:伪造IP地址,绕过安全机制。
- ARP欺骗:伪造ARP应答,篡改IP到MAC的映射。
- DNS缓存污染:伪造DNS响应,引导用户访问恶意网站。
总结
- 本书是TCP/IP协议族的经典参考,适合深入理解网络协议的设计和实现。
- 通过实际数据包分析,帮助理解协议的运行机制和设计决策。
- 安全性讨论更新,涵盖IPsec、TLS、DNSSEC等现代安全协议。
参考文献
- 书中包含丰富的参考文献,涵盖RFC、论文和著作,供进一步研究参考。