嗨,我是网络新手,仍然对三向握手和拒绝服务攻击之间的关系感到困惑。
我们知道,如果客户端不发送 ACK 来完成此 3 次握手的第三步,最终(通常在一分钟或更长时间后)服务器将终止半开连接并回收分配的资源。
所以我的问题是:
为什么攻击者只做3次握手的第一步?他们为什么不像普通用户一样完成3次握手的所有三个步骤才能完全连接到服务器,这样它就会占用服务器的资源
经典教科书:计算机网络:自顶向下的方法描述了TCP避免Dos攻击的方法:
服务器创建一个初始 TCP 序列号,它是 SYN 段的源和目标 IP 地址和端口号的复杂函数(散列函数),以及一个只有服务器知道的秘密编号。如果客户端没有返回 ACK 段,那么原始 SYN 对服务器没有任何伤害,因为服务器尚未分配任何资源来响应原始虚假 SYN。
但是如果原来的SYN对服务器没有伤害,那为什么要在3次握手的第一步中用hash函数为服务器创建一个'cookie'来识别用户的SYN段是否有效呢?