我对TCP保持活力的理解:
这种保持活力并不能真正“保持连接活动”。相反,"detectAlive“可能是一个更恰当的词: Tcp级别交换心跳包以检测空闲连接是死了还是活了。
以下是我的问题:
在TCP知道连接已死后,TCP级别是否自动关闭connection?
。
发布于 2020-11-13 13:21:22
在TCP知道连接已死后,
级别会自动关闭连接吗?
TCP是一种协议。它什么都不知道。但是,操作系统中的特定实现将检测TCP连接是否不能再使用或不带有效负载交换数据(即保持活动),并将关闭连接的本地状态。它不会进行正常的TCP连接关闭,这涉及发送FIN等,因为它可以假定连接已经中断。
在TCP知道连接已死后,应用程序级别如何知道这些信息?通过了解该信息,从而关闭套接字并释放资源。
这取决于应用程序。应用程序需要以某种方式监视套接字的状态,即进行写入、读取、选择或类似操作。然后,这些函数将不再阻塞,例如,可以根据读/写或类似中的错误代码来确定连接的中断状态。如果应用程序在一段时间内不关心套接字,那么它只有在重新开始关心时才会意识到这个问题。
https://stackoverflow.com/questions/64817340
复制相似问题