首页 > 解决方案 > ChannelTrafficShapingHandler 内部——它是如何工作的?

问题描述

我想保护我的服务器免受一些流氓客户端的 DoS 攻击。我不希望客户快速发送大量数据。准确地说,我想对这些选定的、潜在的流氓客户端进行速率限制。为此,我正在探索使用 ChannelTrafficShapingHandler 。我一直在通过监控服务器的堆和直接内存使用情况以及通过监控 iptables 计数器来查看客户端和服务器端的网络上放置了多少字节来试验 ChannelTrafficShapingHandler。客户端在这些实验中快速发送大量数据。

我推断的是,Netty 限制了服务器上从套接字缓冲区读取数据的速率。这通过 TCP 的流量控制机制减慢了客户端的速度。节流在 TCP 级别完成。如果确实如此,我可以将 ChannelTrafficShapingHandler 用于我的解决方案,因为当恶意客户端发送大量数据时,我的服务器的 cpu 和内存将是安全的。

我的推断正确吗?

标签: javanetty

解决方案


是的,它基本上会限制执行从套接字读取的频率和时间。所以背压是通过TCP完成的


推荐阅读