Node.js TCP服务器:断开连接,而不是重置或响应?
在Node.JS中,是否可以通过以下方式“删除”连接:Node.js TCP服务器:断开连接,而不是重置或响应?,node.js,http,tcp,solaris,Node.js,Http,Tcp,Solaris,在Node.JS中,是否可以通过以下方式“删除”连接: 客户端从未收到响应(200、404或其他) 从未通知客户端连接已终止(从未接收到连接重置或流结束) 服务器的资源已释放(服务器不应尝试以任何方式维护连接) 我特别想问一下Solaris上的Node.JS HTTP服务器(实际上只是复杂的TCP服务器),但是如果其他操作系统(Windows、Linux)或编程语言(C/C++、Java)上有这样的情况,我很感兴趣 我为什么要这个 骚扰或减慢(可能是单线程)机器人,如 我知道这并不重要,但这
- 客户端从未收到响应(200、404或其他)
- 从未通知客户端连接已终止(从未接收到连接重置或流结束)
- 服务器的资源已释放(服务器不应尝试以任何方式维护连接)
我知道客户端主机可能会重新传输连接的数据包,因为我从不发送重置。在通用TCP堆栈中(与您自己的自定义TCP堆栈相比),这些是不可能的。原因是:
您可能希望探索如何对这些机器人进行防火墙保护,并使用诸如iptables(linux)或solaris上的等效工具对其IP地址进行阻止/速率限制。关闭连接不应发送RST。有一个三向拆卸过程。我不确定,但我想你可以。。没有回应。如果您不res.anything(),那么客户端将不会收到任何响应(200、400等),不会发送任何头。我不确定,但我认为这仍然会占用标记为打开连接的操作系统资源,并最终耗尽内存或TCP端口。您的第二个问题非常好。我想我也应该看看现场规则的添加。我可以为当前连接源和目标IP和端口添加临时规则。这将导致当前连接上的预期挂起,并且仍然允许新连接通过。现在我只需要等到我找到一个软件防火墙,然后我必须决定是否要这样做。是的,一些实时规则的添加在这里是有用的。像apache这样的web服务器也有内置的速率限制选项。