TCP三次握手的状态变化

Tcp连接管理机制(安全机制)

  1. 刚开始客户端和服务器都是关机的,处于CLOSED状态。//服务器也不是一定从CLOSED开始的,毕竟服务器不可能经常关闭,但是客户端会经常关闭连接
  2. 我们率先开启服务器,此时服务器由CLOSED状态转换为LISTEN状态此时在等待客户端的syn
  3. 然后开启客户端,让客户端发送一个syn报文建立连接,此时的客户端由CLOSED状态转换为SYN_SENT
  4. 服务器收到了客户端的syn以后把syn放到阻塞队列里等待建立连接就从LISTEN状态转为SYNRCVD状态。在放入阻塞队列以后服务器紧接着就发送了一个syn+ack给客户端
  5. 接下来客户端就会接收到服务器的syn+ack并返回一个ack进入三次握手的客户端的工作也做完了,客户端进入ESTABLISHED状态开始进行数据的交换
  6. 服务器收到客户端返回的ack以后,三次握手的服务器的工作也做完了,服务器进入ESTABLISHED状态等待数据的交换
  7. 在经过一系列的数据交换后,也到了说拜拜的时候了,客户端率先向服务器发送一个FIN由ESTABLISHED状态转换为FIN_WAIT_1状态等待服务器的ack
  8. 而服务器在收到客户端的FIN后先回应一个ACK表示收到了并进入CLOSED_WAIT状态,此时的服务器不会立即关闭连接要先进行一些收尾操作
  9. 客户端收到服务器返回的ack之后就进入了FIN_WAIT_2状态等待服务器发送的FIN与他呼应一下
  10. 服务器处理完收尾工作之后终于可以发送FIN了,这个时候服务器就从CLOSED_WAIT状态转为LAST_ACK等待客户端的确认报文
  11. 客户端收到了这最后一个FIN之后就返回了最后一个ACK这也与服务器的状态对上了,在等待两个MSL报文最大存活时间后客户端进入CLOSED状态(这是为了确保当客户端发送的最后一个FIN或者服务器接收的ACK丢失避免服务器快速重启后接收到错误的报文,至于为什么是2MSL,FIN传过去要一个MSL接收ACK要一个MSL吧两种情况都考虑到了)
  12. 服务器收到了这最后一个ACK以后知道了客户端已经关闭了连接也就可以放心关闭掉这一个连接了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值