【 在 poocp 的大作中提到: 】
: 总之你这个模型被DoS的代价比较低,所以我建议你简化。
:
我的服务器方案,由主线程创建线程池,context等等,线程池由epoll调度。
主线程守护监听socket。由select监听。收到事件取一个context,然后用这个context 进行accept,并记录时间戳,,把这个context投入epoll,交给线程池处理。
在DDOS攻击期间,context可能被迅速耗尽,这是主线程取不出来context,就进入一个循环,不断进行timeout检测,检测发生timeout的contex,收拾出来垃圾再继续处理。
被accept的socket,必须在一定时间内对口令,超时被踢。
已经完成认证的socket就在epoll的事件循环中完成它们的任务,不受ddos攻击的影响。期间accept是有卡顿的,不过几秒钟后就会有大批的无效socket被踢,accept可以迅速恢复。
不知道你们的单线程协程是怎么抵抗DDOS攻击的。
--
修改:ylh1969 FROM 221.218.60.*
FROM 221.218.60.*