首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TCP服务器:删除连接,而不是重置或响应?

问TCP服务器:删除连接,而不是重置或响应?
EN

Stack Overflow用户
提问于 2011-11-14 20:02:36
回答 2查看 1.8K关注 0票数 4

在Node.JS中是否有可能以这样一种方式“丢弃”一个连接

  • 客户机从未收到响应(200、404或其他)
  • 客户端从未被通知连接终止(从不接收连接重置或流结束)
  • 服务器的资源被释放(服务器不应试图以任何方式维护连接)

我特别询问的是Solaris上的Node.JS HTTP服务器(实际上是复杂的OSes服务器),但是如果在其他OSes (Windows )或编程语言(C/C++,Java)上有允许这样做的情况,我很感兴趣。

我为什么想要这个?

烦扰或减慢(可能是单线程)机器人,如phpMyAdmin Probe。

我知道这并不是真正重要的事情,但这类问题能更好地帮助我了解程序的界限。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-14 22:53:31

这在一般TCP堆栈中是不可能的(相对于您自己的自定义TCP堆栈)。原因是:

关闭套接字的

  1. 发送RST
  2. ,即使您避免发送RST,客户端仍然认为连接是打开的,而服务器已经关闭连接。如果客户端在此连接上发送任何数据包,服务器将发送RST.

。

您可能需要探索使用防火墙来阻止/速率限制这些机器人的IP地址,比如iptables (linux)或类似的solaris。

票数 1
EN

Stack Overflow用户

发布于 2012-04-25 16:27:04

关闭连接不应发送RST。有一个3路拆除过程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8127336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档