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、论文和著作,供进一步研究参考。