TCP连接的三次握手和四次挥手

三次握手

  1. 第一次
    SYN=1是连接请求的报文
    seq = x 序号是x,表示自己数据的序号是x
  2. 第二次
    SYN=1是连接请求的报文
    seq = y 序号是y,表示自己数据的序号是y
    ACK = 1 表示确认号生效
    ack = x+1 表示期望接受数据的序号是x+1
  3. 第三次
    seq = x+1 序号是x+1,表示自己数据的序号是x+1
    ACK = 1 表示确认号生效
    ack = y+1 表示期望接受数据的序号是y+1


    三次握手.jpg

发送方和接收方状态不同

发送方在第二次握手之后就进入建立连接的状态
接收方在第三次握手之后进入建立连接的状态

为什么发送方要发出第三个确认报文呢?

主要原因:已经失效的连接请求报文传送到对方,引起错误

两次握手.jpg

四次挥手

四次挥手jpg.jpg

等待计时器

等待2msl的时间
msl: 最长报文段寿命 建议设置2分钟

  1. 确保发送方的ACK可以到达接收方
  2. 2msl时间内没有收到,则接收方会重发
  3. 确认所有的报文都已经过期

你可能感兴趣的:(TCP连接的三次握手和四次挥手)