一说起TCP, 就是什么三次握手, 四次挥手. 而这次想讨论的是:
在不重启各自socket程序情况下, 将ESTABLED链接断开 ???...正确姿势
首先, 我们得明白的是, 一般的重启程序, 重启机器, 实际上是发送了 fin标识去对端来触发四次挥手发生, 所以对待孽缘, 还是得遵循规律, 从内部攻破.....上面的方法所用到就是最后一种标志:RST重置链接
所以总得而言, iptables的DROP行为, 能够阻止链接的建立, 但是对于已经建立起来的链接, 顶多只能阻止数据的传输, 但是不能断开链接, 链接的断开应该只有下面几种可能...:
socket 的主动close, 也就是发送 fin报文 ( 应用层程序或者内核 )
TCP链接的超时自动断开 ( 这个过程可能会比较耗时 )
伪造报文发送RST
除了上面的条件, 还有一个点需要注意的..., 那就是:
在某些情况下, 哪怕对方关闭了, 但是自己也是无法感知的, 还是需要send一次, 通信一次, 触发了socket的错误, 例如 Connection reset by peer.