TCP三次握手和四次挥手过程详解

本文详细解析了TCP协议中的三次握手和四次挥手过程,解释了连接建立和断开的机制。三次握手包括客户端发送SYN,服务器响应SYN+ACK,客户端确认ACK。四次挥手中,一方发送FIN请求断开,另一方回应ACK确认,随后发送FIN,最后发起方确认断开。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

三次握手 :

tcp传输在数据传输前建立连接的过程

  1. 客户端向服务器发送连接请求
  2. 服务器收到请求后,回复确认消息,表示允许连接
  3. 客户端收到服务器回复,进行最终标志发送确认连接
    在这里插入图片描述
    1)第一次握手:A的TCP客户进程向B发出连接请求报文段,(首部的同步位SYN=1,初始序号seq=x),(SYN=1的报文段不能携带数据)但要消耗掉一个序号,此时TCP客户进程进入SYN-SENT(同步已发送)状态。
    2)第二次握手:B收到连接请求报文段后,如同意建立连接,则向A发送确认,在确认报文段中(SYN=1,ACK=1,确认号ack=x+1,初始序号seq=y),测试TCP服务器进程进入SYN-RCVD(同步收到)状态;
    3)第三次握手:TCP客户进程收到B的确认后,要向B给出确认报文段(ACK=1,确认号ack=y+1,序号seq=x+1)(初始为seq=x,第二个报文段所以要+1),ACK报文段可以携带数据,不携带数据则不消耗序号。TCP连接已经建立,A、B进入ESTABLISHED(已建立连接)。

四次挥手 :

tcp传输在连接断开前进行断开确认的过程

  1. 主动发发送报文告知被动方要断开连接
  2. 被动方收到请求后立即返回报文告知已经准备断开
  3. 被动方准备就绪后再次发送报文告知可以断开
  4. 主动方发送消息,确认最终断开

在这里插入图片描述

(1)第一次挥手:A的应用进程先向其TCP发出连接释放报文段(FIN=1,序号seq=u),并停止再发送数据,主动关闭TCP连接,进入FIN-WAIT-1(终止等待1)状态,等待B的确认。

(2)第二次挥手:B收到连接释放报文段后即发出确认报文段,(ACK=1,确认号ack=u+1,序号seq=v),B进入CLOSE-WAIT(关闭等待)状态,此时的TCP处于半关闭状态,A到B的连接释放,A收到B的确认后,进入FIN-WAIT-2(终止等待2)状态,等待B发出的连接释放报文段。

(3)第三次挥手:B没有要向A发出的数据,B发出连接释放报文段(FIN=1,ACK=1,序号seq=w,确认号ack=u+1),B进入LAST-ACK(最后确认)状态,等待A的确认。

(4)第四次挥手:A收到B的连接释放报文段后,对此发出确认报文段(ACK=1,seq=u+1,ack=w+1),A进入TIME-WAIT(时间等待)状态。此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL后,A才进入CLOSED状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值