TCP协议过一段时间接不到数据

Posted HackShendi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP协议过一段时间接不到数据相关的知识,希望对你有一定的参考价值。

hello,I‘m Shendi

最近在整TCP代理服务器,在编写完程序进行测试时发现了一个问题
当 TCP 连接,客户端和服务端都不发送数据,且都不断开连接的情况下,时间一久(大概几分钟),服务端进行发送数据时,客户端就接收不到了,且服务端会报错

经过一番查找,找到了问题所在

我写的TCP没有实现心跳机制,在Java中,TCP自带的心跳机制间隔为两小时一次

而网络运营商对连接有限制,当没有数据传输一定时间,连接将会被网络运营商关闭,导致后续发送的数据找不到目的地

貌似每个网络运营商对应的超时时间都不一样,大概75秒左右?

解决方法就是增加心跳包即可
踩坑

以上是关于TCP协议过一段时间接不到数据的主要内容,如果未能解决你的问题,请参考以下文章

TCP 协议如何保证可靠传输

TCP协议可靠性保证知识点总结

TCP协议及TCP正常连接与断开

TCP协议相关

看懂TCP协议

TCP协议下的粘包问题