第十三章 TCP 连接管理
在两个进程使用 TCP 协议交换数据之前,它们必须要在彼此间建立一条连接。当数据传输完毕,它们将终止这条连接。本章详细介绍了连接是如何借助三次握手过程建立的,而且又是如何利用 4 个报文段终止的。本章还介绍了 TCP 是如何处理同时打开与关闭操作的,以及如何管理各个选项,其中包括选择性确认、时间戳、最大段大小、TCP 认证以及用户超时选项。
本章使用 tcpdump 与 Wireshark 来显示 TCP 协议的行为以及 TCP 头部字段的使用情况。还展示了连接的建立过程是如何超时的,重置报文段是如何发送与解析的,以及 TCP 是如何提供半打开与半关闭连接的。TCP 既约束了在一个主动打开操作中尝试连接的次数,又约束了在一次被动打开操作后能服务的尝试连接次数。
TCP 状态转换图对理解其运行非常重要。本章依次介绍了连接的建立、终止以及状态迁移的各个步骤。本章还介绍了并行 TCP服务器设计中 TCP 连接建立的相关工作。
一个 TCP 连接是由一个 4 元组唯一定义的,包括:本地 IP 地址,本地端口号,外部 IP 地址,外部端口号。每次连接终止时,通信一端必须维护这些相关信息。根据本章的介绍,TCP的 TIME_WAIT 状态负责完成这些工作。规则是执行主动关闭操作的一端进入 TIME_WAIT 状态并维持两倍的最大段生存时间。这样有助于防止 TCP 处理同一条连接中旧实例的报文段。当新的连接尝试使用相同的 4 元组时,使用时间戳选项能够减少等待时间,另外它还有助于探测回绕的序列号以及更好地测量往返时间。
TCP 在资源耗尽与欺骗等攻击面前是十分脆弱的,但已研究出一些方法来抵御上述问题。此外,TCP 还会受到其他协议的影响,比如 ICMP。通过仔细地分析 ICMP 消息所返回的原始数据可以加强对 ICMP 对防御。最后,TCP 可以与其他协议结合使用,为协议栈的其他层提供安全支持,这已经成为标准的做法。
希望我的总结可以帮助大家,感谢阅读我的博客!