作者回复: TCP没有长短连接的概念,这是HTTP/1的概念
作者回复: 这是为了处理故障定义的。每个长期空闲的TCP连接都需要消耗服务器内存、端口等资源,由于服务器是一对多的处理方式,一旦某个客户端网络断开,服务器就会永远无法释放socket相关资源了。因此才定义了keepalive保活机制。
作者回复: 你是说keepalive_timeout指令吗?那个是http/1.1中的keepalive,是多个应用层的请求复用同一个TCP连接时的最大间隔时间。而tcp_keepalive_time是TCP管理传输层空闲连接的方式,它对应着listen指令后的so_keepalive选项,它是通过setsockopt设置到内核的,优先级更高。
作者回复: 对的
作者回复: 1、keepalive检测是双向的,两边都可以检测。 2、对。 3、会。