三次握手,四次断开。也是看了大佬的思路理解

三握手:1.主要是客户端发送建立连接的请求(SYN=1),和随机生成的序号(seq=x)    2.客户端收到请求,并且建立连接(ACK=1 SYN=1) ack=x+1 seq=y   3.客户端收到后,确认ACK=1,ack=y=1,seq=x+1

四次挥手1.  FIN=1 seq=u   2 客户端确认建立连接ACK=1,ack=u+1,生成一个客户端序列号seq=v,此时服务器还没有停止发送,防止数据没有传完,但是客户端停止发送了。 3 服务器发送完后请求断开,FIN=1 ack=u+1这里为什么ack是u+1因为客户端请求断开连接之后就没有发送数据了。seq=w 之前数据没有传送完生成新的序号。ACK=1   4 客户端向服务器发送seq=u+1,ACK=1,ack=w+1

为什么是三次握手四次挥手。

三握手,四挥手

在不可靠的传输信道当中建立可靠的连接,

三次握手,是为了防止已失效的报文重新传入服务器,引起客户端和服务器双方状态不一致。

四次挥手:第一次客户端向服务器发送FYN包这时候就已经进入半关闭状态,客户段向服务器不在发送数据,第二次服务器向客户端发送ACK=1表示确认收到断开请求,但是此时可能服务器数据还没有传输完成。当服务器传输完成之后服务器向客户端进行断开连接请求。第四次挥手服务器向客户端发送ACK包,进入超时等待状态,经过超时等待后断开连接,服务器收到ACK包后断开连接,为什么客户端需要等待超时等待时间,假设客户端发送完ACK包后就断开连接,      ACK包在网络中丢失,服务端将一直停留在最后确认状态,要是服务端发送ACK包后一直停留在等待状态,客户端没有收到,服务端会重新发送FYN包,客户端再次发送ACK包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
TCP (Transmission Control Protocol) 是一种基于连接的、可靠的传输层协议,它的通信过程包括三次握手建立连接和四次挥手关闭连接。 **三次握手(Three-way Handshake)**: 1. **SYN(同步序号)阶段**:客户端发送一个 SYN 包到服务器,请求建立连接,包中包含随机生成的初始序列号(seq)。 2. **ACK(确认应答)阶段**:服务器接收到 SYN 包后,回应一个 SYN+ACK 包,确认序列号(ack),并设置自己的初始序列号(seq)。 3. **FIN(结束连接)阶段**:当服务器准备好接收数据后,会发送一个 FIN 包给客户端,表明它已经不再需要进一步的数据了。此时连接还未完全关闭,客户端还会等待一段时间后再发送一个 ACK 包确认关闭。 **四次挥手(Four-way handshake)**: 1. **FIN(结束连接)阶段续**:客户端收到服务器的 FIN 包后,如果还有未发送的数据,则先发送一个 ACK 包确认,然后发送自己的 FIN 包,表示客户端也准备断开连接。 2. **ACK(确认应答)阶段续**:服务器收到客户端的 FIN 包后,回复一个 ACK 包确认,并进入半关闭状态。 3. **FIN(结束连接)阶段再续**:服务器等待一段时间后,如果没有新的数据传输,再发送一个 FIN 包给客户端,正式断开连接。 4. **ACK(确认应答)阶段终结**:客户端接收到服务器的 FIN 包后,发送最后一个 ACK 包,至此,整个连接才真正关闭。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值