TCP三次握手四次挥手

TCP报文段结构

序号seq和确认号ack

序号seq是该报文段首字节的字节流编号,其作用是保证数据的顺序;
确认号ack是期望收到下一字节的序号,其作用是保证数据不会丢失;

TCP报文段首部字段中有六个标志位

  • SYN
    用于连接建立
  • ACK
    用于指示确认字段中的值是有效的,即该报文段包含一个对已被成功接收的报文段的确认。
  • FIN
    用于连接断开
  • URG
  • PSH
  • RST

三次握手

四次挥手

四次挥手里面,TIME_WAIT状态为什么需要等待2MSL

为了应对第四次挥手的ACK包丢包的情况,如果第四次挥手的报文丢失,服务端没收到确认ACK报文就会重发第三次挥手的报文,这样报文一去一回最长时间就是2MSL,所以需要等这么长时间来确认服务端确实已经收到了。

术语

序号:sequence number
确认号:acknowledment number
MSL:Maximum Segment Livetime 最大报文存活时长
MSS: Maximum Segment Size 最大报文长度

posted @ 2020-10-11 14:52  gitfong  阅读(101)  评论(0编辑  收藏  举报