
如下是某个厂商的实现。

是否按正确的四次挥手关闭连接更好呢? RST 对用户来说是很困扰的,会打印很多无效的日志。
1 opengps 2019-04-11 12:20:28 +08:00 via Android 我也同样纠结过,之前的 socket 有缺陷,平常正常使用好好的,放在 slb 之下就容易健康检查搞死。 不过我修复缺陷之后就没啥问题了,再没纠结这个 |
2 zwh2698 2019-04-11 12:44:12 +08:00 via Android Rst 按照协议没有关闭,这种只能是超时关闭了。 |
3 ryd994 2019-04-11 12:59:39 +08:00 FIN 关闭需要考虑后续状态,RST 不需要。负载均衡依赖连接状态工作,因此必定有连接表。健康检查的连接频率很高,FIN 会留下大量僵尸连接。 |
4 xenme 2019-04-11 13:35:29 +08:00 health check 的方式不同,对应的也不同,总的来说还是你的程序不够健壮。 TCP half open 类型的 monitor,只要收到一次确认,证明端口正常就直接没了 |
5 reus 2019-04-11 13:46:47 +08:00 如果连这都处理不好,那你的服务敢放在外网? |
6 9hills 2019-04-11 13:56:30 +08:00 via iPhone 如果正常 close,有成本在里面。这个还是去修改链接池实现吧,忽略掉 reset |
7 julyclyde 2019-04-11 15:29:45 +08:00 对客户端断开连接表示担忧 这听起来很像美团外卖早期的一个 sb 程序员 |
8 silenceshell OP 客户端能不能处理 RST 报文,跟 SLB 是不是应该发 RST 是两个问题,很多基础 lib 会对收到 RST 打印日志。 客户端断开连接,跟客户端发送 RST,也是两个问题。 |
9 reus 2019-04-11 15:57:39 +08:00 SLB 发 RST 你可以抱怨,如果搞 ddos 的给你发 RST,你找谁抱怨去? 如果认为收到 RST 时打印日志是个问题,那就关掉 RST 的日志 |
10 silenceshell OP 对付 ddos,当然是前面挂防火墙。为啥要用血肉之躯对抗呢,关了 RST 日志,就能抗住 DDOS 了吗。 |
11 Greenm 2019-04-11 17:49:37 +08:00 via iPhone nmap 扫描端口 TCP 类型的原理也是这样,这个我觉得没毛病, |