面试官:说说tcp怎么设置成长链接?
我:创建的时候加上keepalive标志。
面试官:嗯,说说tcp是如何保持长链接的?
我:主要是有心跳机制,客户端向服务端定时发送心跳包,告诉服务端自己还活着。
面试官:那心跳是双向还是单向啊?
我:.........(你这是暗示我是双向啊)
我:双向的。
面试官:具体说说。
我:客户端发送n次心跳后,服务端也要向客户端发送一次心跳,告诉服务端服务正常,不要关闭链接。因为资源有限,这里涉及到一个资源回收机制。比如服务端连续3个心跳没有收到就关闭链接;客户端有一个心跳包没有收到也关闭链接,因为已经有n个客户端的心跳发过去了,却没有回应,代表服务挂了。或者服务链款异常关闭。
网友评论