• 加载中……
    2019-09-17
    老师好,请教个问题。
    对于TCP连接来说,是不是没有长连接和短连接之分?还是说也是有个参数可以控制这个TCP是长连接还是短连接

    作者回复: TCP没有长短连接的概念,这是HTTP/1的概念

    
     1
  • ray
    2020-01-13
    老师好,
    您在我的上个发问中提到net.ipv4.tcp_keepalive_time检测是双向的。这是不是意味着,我可以在自己的电脑配置net.ipv4.tcp_keepalive_time,当我用自己的电脑作为client和server通讯时,就会依据我自己设定net.ipv4.tcp_keepalive_time来决定我的tcp keep alive time。如果我的tcp keep alive time比server小,我就会先发出探测包。
    反过来说,如果server设定的tcp keep alive time比client大,探测包就会由server先发送。

    我这样说是不是对的呢?

    谢谢老师的解答^^
    展开

    作者回复: 对的

    
    
  • ray
    2020-01-11
    老师好,请问
    1. tcp预设的连线时间是不是都是依据"服务器"的net.ipv4.tcp_keepalive_time的设定来决定,与客户端的net.ipv4.tcp_keepalive_time无关?

    2. 如果服务器超出net.ipv4.tcp_keepalive_time的设定时间没有发送任何报文,则依据服务器配置的net.ipv4.tcp_keepalive_intvl和net.ipv4.tcp_keepalive_probes这两个设定来决定是否继续维持该连接?

    3. 如果client在server的net.ipv4.tcp_keepalive_time设定到期之前发送FIN或是RST则会提早端闭连接?


    谢谢老师的解答^^
    展开

    作者回复: 1、keepalive检测是双向的,两边都可以检测。
    2、对。
    3、会。

    
    
  • 一坛幽梦
    2019-09-11
    老师,系统中的net.ipv4.tcp_keepalive_time和nginx中的keepalive_timeout同时开启的话,以哪个为断开连接依据呀?

    作者回复: 你是说keepalive_timeout指令吗?那个是http/1.1中的keepalive,是多个应用层的请求复用同一个TCP连接时的最大间隔时间。而tcp_keepalive_time是TCP管理传输层空闲连接的方式,它对应着listen指令后的so_keepalive选项,它是通过setsockopt设置到内核的,优先级更高。

    
    
我们在线,来聊聊吧