#tcp的长连接

为了不重复的建立三次握手,四次挥手,极大浪费计算机资源
tcp设置长连接机制,在长连接中,不进行通道的关闭
tcp引入了一个心跳机制:定时间,客户端向服务端发送一个数据包,告诉服务器自己依然在线
在TCP的机制里面,本身是存在有心跳包的机制的,也就是TCP的选项:SO_KEEPALIVE,心跳包主要也就是用于长连接的保活和断线处理。一般的应用下,判定时间在30-40秒比较不错。如果实在要求高,那就在6-9秒。

TCP协议的KeepAlive机制:
只需要用setsockopt将SOL_SOCKET.SO_KEEPALIVE设置为1才是打开,并且可以设置三个参数tcp_keepalive_time/tcp_keepalive_probes/tcp_keepalive_intvl,分别表示连接闲置多久开始发keepalive的ack包、发几个ack包不回复才当对方死了、两个ack包之间间隔多长

大概就是这样吧,不求甚解

猜你喜欢

转载自blog.csdn.net/JessePinkmen/article/details/83035265