关于计算机网络TCP三次握手与四次挥手

三次握手步骤:

问题一:为什么两次握手不行?一定要三次?

如果两次握手,客户端没啥区别,仍然需要获得服务端的应答后才进入ESTABLISHED状态,而服务端在收到连接请求后就进入ESTABLISHED状态(因为此时是两次握手,必须第二次握手就要连接,所以就不能再有synrcvd步骤)。此时如果网络拥塞,客户端发送的连接请求迟迟到不了服务端,客户端便超时重发请求,如果服务端正确接收并确认应答,双方便开始通信,通信结束后释放连接。此时,如果之前那个失效的连接请求抵达了服务端,由于只有两次握手,服务端收到请求就会进入ESTABLISHED状态,等待发送数据或主动发送数据。但此时的客户端早已进入CLOSED状态,服务端将会一直等待下去,这样浪费服务端连接资源。

 

四次挥手步骤:

多了一个 服务端发送FIN包的步骤:fin=1,ack=1,seq=w,ack=u+1

  1. 四次握手为什么要最后等2msl?

第3次握手完成后发送了第四次握手的ACK包后客户端就进入了TIME_WAIT状态,必须在此状态上停留两倍的MSL时间,等待2MSL时间主要目的是怕最后一个ACK包服务端没收到

如果没收到最后的ack包,那么对方在超时后将重发第三次握手的FIN包,服务端接到重发的后可以再重发一个ACK应答包。所以2msl可以保证时间够用

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值