第17章 TCP:传输控制协议

17.1 引言

TCP提供面向连接的、可靠的字节流服务。

  • 封装在IP中(协议号6)
  • 全双工
  • 连接建立(三次握手)
  • 连接终止(四次挥手)

17.2 TCP的服务

TCP提供的可靠性

  1. 数据分割成最适合发送的块(报文段)
  2. 启动定时器,等待确认
  3. 收到确认后确认(延迟确认)
  4. 首部和数据检验和
  5. 对失序数据重新排序
  6. 丢弃重复数据
  7. 流量控制(滑动窗口)

字节流服务

  • 不插入记录标识符
  • 不解释字节流内容

17.3 TCP的首部

0 7 8 15 16 23 24 31 +--------+--------+--------+--------+ | 源端口号 | 目的端口号 | +--------+--------+--------+--------+ | 序号 | +--------+--------+--------+--------+ | 确认序号 | +--------+--------+--------+--------+ | 数据偏移 | 保留 |U|A|P|R|S|F| 窗口 | +--------+--------+--------+--------+ | 检验和 | 紧急指针 | +--------+--------+--------+--------+ | 选项(可选) | +--------+--------+--------+--------+ | 数据 | +--------+--------+--------+--------+

text

标志位

标志含义
URG紧急指针有效
ACK确认序号有效
PSH尽快交付
RST复位连接
SYN同步序号(建立连接)
FIN完成发送

MSS选项

  • 最大报文段长度
  • 在SYN中发送
  • 默认值:536字节

17.4 小结

TCP提供可靠的面向连接的字节流服务。首部包含端口号、序号、确认号、窗口大小和标志位。