讨论的范围越来越宽了, 我也来灌点水````可能跑题了
可以说,到目前为止还没发明能彻底防御DoS/DDoS的方法(要不Yahoo这样的网站也就不会被攻瘫痪了, 呵呵),我们能做的也就是尽力提高服务器(群)的抗攻击能力罢了.
个人认为,应用服务器的写法固然重要,但对一个服务器群来讲, 只是很小一部分,
因为很多防御是建立在OS内核层里的,
应用服务器根本无能为力.抗DoS攻击应该从建立多层构架的服务器群,分工负责,分摊攻击入手.
真好我现在管理着一个不算太小的服务器, 效果不错(瘫痪过一次,原因是IDC的路由被挤爆),把框架和大家分享一下,欢迎讨论
1) 防火墙 -- 限制SYN包的通过速率, 按照客户分布, 对不同网段设置不同限制, 通过速率总和位服务器群最大处理能力的2-3倍, 同时配合网络流量监测, 动态调整部分规则
2) 负载均衡-- 平摊连接到3层的多个服务器, 使用随机丢弃新连接的方式再次限制新连接通过速率, 调整到服务器群最大处理能力的90%左右
3) 应用层 -- IOCP, 用WSAEventSelect异步方式,专门线程处理Accept, 专门线程处理Recv超时
2,3层配能根据1层SYN包丢弃率为参考变量,动态调整OS中TCP超时和重试次数参数, 特别是SYN应答包的参数