研究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.ctcp_ident_mappingsockaddr_storagesockaddr_storagetcpdrop似乎确实R按照tcpdump(8), 并且可以通过查看最终/sys/netinet/tcp_subr.c :: tcp_drop()调用tcp_close()的 , 来确认(并确认在 SOtcp_close() 上发送RST到其他地方),因此,它似乎也不起作用。
如果我自己通过 C 建立连接,有没有办法随后在不确认对方的情况下放弃它,例如,不启动RST?