TCP三次握手与四次挥手

一、三次握手

所谓三次握手即建立TCP连接,在由客户端与服务器之间发送三次数据包来确认连接

第一次握手

刚开始客户端处于 Closed(关闭) 的状态,服务端处于 Listen(监听) 状态。客户端给服务器发送一个 SYN=1的 报文,随机产生一个值seq=x,此时,客户端进入SYN_SENTZ状态,等待服务器确认。

第二次握手

服务器收到客户端的 SYN 报文之后,会将自己的 SYN 报文发送给客户端作为应答,同时会把的 ACK 的值在客户段初始序列号基础上加1,即ACK=1表示自己已经收到了客户端的 SYN,此时服务器进入 SYN_REVD 的状态。

第三次握手

客户端收到 SYN 报文之后,会发送一个 ACK 报文,当然,也是一样把服务器的 初始序列号 + 1 作为 ACK 的值,表示已经收到了服务端的 SYN 报文,此时客户端处于 ESTABLISHED 状态。服务器收到 ACK 报文之后,也处于 ESTABLISHED 状态,此时,双方就建立起了连接。

在这里插入图片描述

二、 四次断开

第一次挥手

客户端发送一个 FIN 报文,并停止发送数据,主动关闭TCP连接,进入FIN_WAIT1(终止等待1)状态,等待服务器的确认。此时客户端处于 FIN_WAIT1 状态。

第二次挥手

服务器收到 FIN 之后,会发送 ACK确认 报文,且把客户端的序列号值 +1 作为 ACK 报文的序列号值,表明已经收到客户端的报文了,此时服务器处于 CLOSE_WAIT 状态。

第三次挥手

服务器再次向客户端发给一个 FIN 报文,停止数据传输。服务端进入 LAST_ACK 的状态。

第四次挥手

客户端收到服务器的连续释放的报文段后,对此发出确认报文段(ACK=1,seq=u+1,ack=w+1),客户端进入TIME_WAIT(时间等待)状态。等待2MSL后客户端进入CLOSED状态。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值