当前位置:   article > 正文

TCP三次握手与四次挥手_客户端向服务器syn=1,seq=1024

客户端向服务器syn=1,seq=1024

一、三次握手

  • 服务器处于监听端口状态
  • 客户端向服务器发送SYN包,此时SYN=1,初始化一个序列号seq=x(随机生成),SYN=1的包不能携带数据,但消耗一个序列号,此时服务器知道客户端能向它发送信息,客户端进入SYN_SEND状态
  • 服务器向客户端发送SYN+ACK包,此时SYN=1,ACK=1,初始化一个序列号seq=y(随机生成),确认序号ack=x+1(第一次SYN包的seq加1),即服务器端表示希望收到客户端下一个包的起始序列号,SYN=1的包不能携带数据,但消耗一个序列号,此时客户端知道服务器端能向它发送信息,服务器端进入SYN_SRVD状态
  • 客户端向服务器端发送ACK包,此时ACK=1,seq=x+1(客户端上一个包的序列号加1),确认序号ack=y+1(服务器上一个包的序列号加1),此时客户端进入ESTABLISHED状态,成功建立连接后服务器进入ESTABLISHED
    在这里插入图片描述

二、四次挥手

假设客户单主动断开连接

  • 客户端和服务器处于已建立连接的状态
  • 客户端向服务器断开连接发送FIN包,此时FIN=1,seq=m(m=正常发送数据最后一个字节序号+1),FIN=1的包不能携带数据,但消耗一个序列号,此时客户端进入FIN_WAIT_1状态
  • 服务器端向客户端确认消息发送ACK包,此时ACK=1,seq=n(n=正常发送数据最后一个字节序号+1),ack=m+1,此时服务器端进入CLOSE_WAIT状态,但服务器仍可向客户端发送数据,客户端接收到服务端的确认消息后进入FIN_WAIT_2状态
  • 服务器端向客户端断开连接发送FIN+ACK包,此时FIN=1,ACK=1,seq=k(k=正常发送数据最后一个字节序号+1,第二阶段可能发送了数据),ack=m+1,此时服务器端进入LAST_ACK状态
  • 客户端向服务器端确认消息发送ACK包,此时ACK=1,seq=m+1(第二三阶段服务器表示希望接收到的字节序号),ack=k+1,此时客户端进入TIME_WAIT状态,等待2MSL(Maximum Segment Lifetime)后,没有收到服务器端的重传信息,则客户端进入CLOSED状态,服务器端则在收到客户端的确认信息后就进入CLOSED状态。
    在这里插入图片描述
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/148985
推荐阅读
相关标签
  

闽ICP备14008679号