微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js – TCP服务器:丢弃连接,而不是重置或响应?

是否有可能在Node.JS中以这样的方式“删除”连接

>客户从未收到回复(200,404或其他)
>永远不会通知客户端连接已终止(从不接收连接重置或流结束)
>释放服务器的资源(服务器不应尝试以任何方式维护连接)

我在Solaris上专门询问Node.JS HTTP服务器(实际上只是复杂的TCP服务器),但如果有其他操作系统(Windows,Linux)或编程语言(C/C++,Java)允许这样做,我有兴趣.

我为什么要这个?

惹恼或减慢(可能是单线程)机器人,如phpMyAdmin Probe.

我知道这不是真正重要的事情,但这些类型的问题可以更好地帮助我了解我的程序的界限.

我知道客户端主机可能会重新传输连接数据包,因为我从不发送重置.

解决方法

这些在通用TCP堆栈中是不可能的(与您自己的自定义TCP堆栈相比).原因是:

>关闭套接字会发送RST
>即使您避免发送RST,客户端仍然认为在服务器关闭连接时连接已打开.如果客户端在此连接上发送任何数据包,则服务器将发送RST.

您可能希望探索这些机器人的防火墙,并使用iptables(linux)或solaris上的等效物来阻止/限制其IP地址.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐