SYN是“TCP三次握手”中的“握手信号”。
看图:
注:ACK为确认字符,表示发来的数据已确认接受无误。每次ACK的值针对上一次Seq的值+1,作为回复信号。
根据上图这个原理:①如果客户端发出第一次握手信号SYN
②服务端确认并返回SYN+ACK
③客户端不做出回应(也就是没有做出图中“第三次握手”)
④服务端进入SYN_RECV状态(等待客户端的连接)
⑤重复步骤1-4,服务端将存在大量的SYN_RECV连接状态,直至资源耗竭,SYN FLOOD攻击目的达成
解决方法:①缩短SYN Timeout时间
②根据来源IP,针对重复发送SYN报文的IP进行封锁
总结:虽然以上两种解决方法能够有效的制止简单的SYN FLOOD攻击,但是随着攻击强度的增大,以及攻击来源的增多(大量攻击机,从拒绝服务攻击到分布式拒绝服务攻击),这两种方法也不足以制止SYN FLOOD。拒绝服务攻击的本质是利用“攻击者”的资源消耗“被攻击者”的资源,所以解决的根本是增大服务器资源,避免资源被耗尽,不过更现实的方法是使用防火墙,现在的防火墙已经能较好的抵抗SYN FLOOD这样较为过时的DOS/DDOS攻击。
原文:http://www.cnblogs.com/DawnRay/p/3568523.html