研究nginx : ignore some requests without proper Host headerclose(2)
让我想到如果操作系统通过向另一端发送RST
(and/or ) 正确终止底层 TCP 连接,实际上不可能建立 TCP 连接FIN
。
一种解决方法是使用类似的东西,但是,从OpenBSD和FreeBSD。) 事实证明,OpenBSDtcpdrop(8)
可以看出,它是通过基于 sysctl 的接口实现的,并且可能在 BSD 之外存在可移植性问题。(事实上,看起来即使是基于 sysctl 的实现在 OpenBSD 和 FreeBSD 之间也可能有很大的不同,需要一个移植层——OpenBSD 使用该结构(随后,它包含两个元素,加上一些其他信息),而FreeBSD,DragonFly和NetBSD直接使用两个元素的数组usr.sbin/tcpdrop/tcpdrop.c
tcp_ident_mapping
sockaddr_storage
sockaddr_storage
tcpdrop
似乎确实R
按照tcpdump(8)
, 并且可以通过查看最终/sys/netinet/tcp_subr.c :: tcp_drop()
调用tcp_close()
的 , 来确认(并确认在 SOtcp_close()
上发送RST
到其他地方),因此,它似乎也不起作用。
如果我自己通过 C 建立连接,有没有办法随后在不确认对方的情况下放弃它,例如,不启动RST
?