0%

第13章:TCP连接管理

13.1 引言

TCP 必须检测并修补所有在 IP 层产生的数据传输问题: 比如丢包、重复 以及 错误。

13.5.2 TIME_WAIT 状态

TIME_WAIT 状态也称为 2MSL 等待状态,该状态下,TCP 将会等待 2 倍于最大段生存期(Maximum Segment Lifetime, MSL的时间,这段时间连接不可用,等待链路上的报文段过期,防止复用这个连接时,将老的连接中的报文当成新连接发送的数据。

13.5.3 静默时间

在本地与外地的 IP 地址、端口号 都相同的情况下,2MSL 状态能防止新的连接将前一个连接的延迟报文解释成自身数据的状况。然而,这种方法只有在与处于2MSL等待状态的连接相关的主机未关闭的情况才有意义。为什么呢?

假如一台与处于 TIME_WAIT 状态下的链接相关联的主机崩溃,然后再 MSL 内重新启动,并且使用与主机崩溃之前处于 TIME_WAIT 状态的连接相同的 IP 地址与端口号,那要怎么处理呢?解决办法就是:在崩溃或者重启后,TCP 应该在创建新的连接之前等待一个 MSL 的时间,这段时间称为 静默时间

13.8 与 TCP 连接管理相关的攻击

SYN 洪泛攻击时一种 TCP 拒绝服务攻击。在这种攻击中一个或者多个恶意的客户端产生一系列 TCP 连接尝试,并将他们发送给一台服务器,他们通常采用“伪造”的源 IP 地址。服务器回味每条链接分配一定数量的连接资源,由于连接尚未完全建立,服务器为了维护大量的半打开连接会在耗尽自身内存后拒绝为后续的合法连接请求服务。

解决办法:只有当 SYN+ACK 报文段本身被确认后,才会分配真正的内存

还有一种攻击与路径最大传输单元发现过程相关。攻击者伪造一个非常小的 MTU 值,迫使受害的 TCP 尝试采用非常小的数据报来填充数据,从而大大降低性能。

谢谢你的鼓励