首先要分析该问题,就要先搞清楚TCP三次握手的建立连接过程,如下图
TCP握手协议在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN (ack=j+1) ,同时自己也发送一个SYN包(syn=k) ,即SYN+ ACK包,此时服务器进入SYN RECV状态;
第三次握手:客户端收到服务器的SYN + ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据;
分析后得出结果:TCP三次握手在第二阶段容易受到攻击,即syn溢出攻击,如果客户机伪造出大量第一次的sys同步报文,服务端就会依次消耗掉很多资源来保存客户端的信息,并进行确认,实际上确认是会失败的,但失败需要一定的时间,因为服务端会连续多次进行第二次握手确认后才认定失败。那么短时间有大量的sys同步报文涌向服务端,服务端资源可能被耗尽,就可能导致正常的客户端得不到响应而失败。