当前位置 : 主页 > 网页制作 > Nodejs >

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

来源:互联网 收集:自由互联 发布时间:2021-06-16
是否有可能在Node.JS中以这样的方式“删除”连接 客户从未收到回复(200,404或其他) 永远不会通知客户端连接已终止(从不接收连接重置或流结束) 释放服务器的资源(服务器不应尝试以任何
是否有可能在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地址.

网友评论