我正在实验如何丢失我的 java 应用程序和 mysql 服务器之间的连接。
应用程序和服务器位于两台不同的机器上,我正在拉动两者之间的物理线。
我正在运行netstat -plunta
以找出连接的状态,这里是奇怪的部分。我可以看到在拔掉电源线后很长一段时间内,连接都处于 ESTABLISHED 状态。至少几个小时。应该是这样吗?当没有数据包可以通过时,连接何时会终止?
两台机器都运行 Linux/Ubuntu。一台是 10.04,另一台是 11.04。
答案1
好吧,正如我之前回答你的问题时所说的那样,灵魂的关键词是“活着“。TCP 连接实际上可以永远处于空闲状态(没有数据流动)。有时它有用,有时没用。因此,有两种方法:应用程序定期实现一些探测流量或使用 TCP 的“扩展”保持活动(TCP_KEEPALIVE)。