tcp三次握手中, 如果客户端不断的发送请求连接会怎样?
如果服务端没有做策略处理的话,服务器会为每个请求连接都分配资源,并且发送一个确认创建连接的控制包,然后等待客户端发送第三次握手数据包。DDos就是利用这种方式进行攻击的。
DDos(Distributed Denial of Service)攻击
客户端向服务器发送大量请求连接,服务器因此分配连接资源,并向客户端发送第二次握手数据包,但是此时客户端却不向服务器发送第三次握手数据包,导致服务器有大量资源等待着第三次握手数据包,每个资源须等待30s到2min才会关闭。这会占用大量的服务器资源,使服务器性能降低。
DDos预防(没有根治的办法,除非不用TCP/IP连接)
- 正确设置防火墙。
- 限制特定IP短地址的访问。
- 启用防火墙的防DDos的属性。
- 限制同时打开SYN的半连接数目。
- 关闭不必要的服务。
- 严格限制对外开放的服务器的向外访问。
- 缩短SYN半连接的time out时间。
- 确保服务器的系统文件是最新版本,并及时更新系统补丁。