OS

tcp

Posted by hang.li on November 19, 2022

关键字说明

  1. SYN:携带这个标志的包表示正在发起连接请求。因为连接是双向的,所以建立连接时,双方都要发一个SYN。
  2. FIN:携带这个标志的包表示正在请求终止连接。因为连接是双向的,所以彻底关闭一个连接时,双方都要发一个FIN。
  3. RST:用于重置一个混乱的连接,或者拒绝一个无效的请求。
  4. Seq:当前报文开始的序号
  5. Len:当前报文长度
  6. ACK:确认号。确认目标报文的Seq+Len+1。即为发送方的下一个报文的Seq
  7. win:发送方接收窗口大小
  8. MSS:每个报文中的数据大小
  9. window scale:为了应对窗口大小65536上限问题 10.RTO:从发出原始包到重传该包的这段时间

    三次握手

    img.png

    问题

    • Q: 为什么采用三次握手,不是四次、两次?
    • A:
    1. 为了确认双方的Seq。
    2. 报文在网络节点中滞留时,客户端重发了报文,第二个报文将需求处理结束。第一个报文到达服务器,服务器会发送确认报文,进入等待状态,此时的确认报文对于客户端已经没有意义,如果发送第三次握手可以提高效率

      四次挥手