java - ChannelTrafficShapingHandler 内部——它是如何工作的?
问题描述
我想保护我的服务器免受一些流氓客户端的 DoS 攻击。我不希望客户快速发送大量数据。准确地说,我想对这些选定的、潜在的流氓客户端进行速率限制。为此,我正在探索使用 ChannelTrafficShapingHandler 。我一直在通过监控服务器的堆和直接内存使用情况以及通过监控 iptables 计数器来查看客户端和服务器端的网络上放置了多少字节来试验 ChannelTrafficShapingHandler。客户端在这些实验中快速发送大量数据。
我推断的是,Netty 限制了服务器上从套接字缓冲区读取数据的速率。这通过 TCP 的流量控制机制减慢了客户端的速度。节流在 TCP 级别完成。如果确实如此,我可以将 ChannelTrafficShapingHandler 用于我的解决方案,因为当恶意客户端发送大量数据时,我的服务器的 cpu 和内存将是安全的。
我的推断正确吗?
解决方案
是的,它基本上会限制执行从套接字读取的频率和时间。所以背压是通过TCP完成的
推荐阅读
- javascript - HTTP500:aspx 页面上的服务器错误仅出现在边缘
- r - 根据另一列的值替换一列中的值
- google-bigquery - 使用自定义分区从 GCS 上传到 bigquery
- java - JPA实体字段中多维数组的正确注释是什么
- r - 根据一列中的值创建新列而不是另一列
- excel - 使用 Excel VBA 早期绑定在 Powerpoint 中更改图像
- c++ - 如何使用 QValueAxis 在 QChart 中包含条形?
- c# - 我可以阻止客户端下载浏览器上可见的 pdf 文件吗
- excel - 在excel现有单元格之间插入单元格
- python - Python 可访问的类变量、敏感数据和恶意编码器(黑帽黑客)