• 加载中……
    2019-09-17
    老师好,有几个问题不太明白:
    1、如何根据timestamps判断某个segment不是本次连接的?
    通过比较大小不能判断吧
    2、一个TCP连接建立后,对于TCP的两个端点是不是没有那个是服务端那个是客户端之分?
    因为连接建立好了,都可以向对方发送segment
    3、为什么客户端复用time_wait端口风险小,服务器端复用就会无法避免混乱
    4、如果出现数据包混乱(比如复用time_wait端口导致的),TCP协议会把新的连接直接发送RST报文么,还是怎么处理?
    展开

    作者回复: 1、timestamps扩展包含两个字段,发送时间和ACK时间,相减得到RTT,可以通过RTT判断是否过延迟报文。
    2、是的,建立过程中有,建立连接完成后不作区分。
    3、概率上相差很大,TCP四元组中作为客户端有65535种可能,且自身知道打开了reuse功能可控,但作为服务器遇到同ip同端口客户端是不可控的。
    4、RST报文

    
    
  • Geek_007
    2019-08-30
    老师,内核参数tw_reuse和socket编程中的socket参数SO_REUSEPORT是一样的效果么?

    作者回复: 你是说tcp_tw_reuse吗?这个参数是用于新建连接时,复用TIME_WAIT状态端口而设的。而SO_REUSEPORT是用于多进程监听同一端口,在建立连接时使用的,你可以参考《Nginx核心知识100讲》第122课。

     1
    
我们在线,来聊聊吧