传输控制协议TCP三次握手和四次挥手

三次握手:

第一次握手:客户端向服务器发送一个SYN报文请求连接通信

第二次握手:服务端收到客户端的请求后向客户端发送一个SYN ACK报文确认请求连接通信

第三次握手:客户端收到服务端的ACK报文后也向服务器发送一个ACK报文

就好像打电话:

“喂,你听得到吗?”

“我听得到呀,你听得到我吗?”

“我能听到你,今天 balabala……”

为什么要三次握手,而不是一次、俩次?

如果是一次握手,客户端向服务器发送SYN报文请求通信,然后不管服务器收没收到就balabala的发送数据,万一服务器没收到呢,客户端一直会重复发送

如果是二次握手,客户端向服务器发送SYN报文请求通信,此时如果网络拥塞,客户端发送的连接请求迟迟到不了服务端,客户端便超时重发请求,然后服务端正确接收并确认应答,双方便开始通信,通信结束后释放连接。此时,刚刚那个失效的连接请求才抵达服务端,由于只有两次握手,服务端收到请求就会进入ESTABLISHED状态,等待发送数据或主动发送数据。但此时的客户端早已进入CLOSED状态,服务端将会一直等待下去,这样浪费服务端连接资源。

 

四次挥手:

第一次挥手,客户端向服务器发送FIN报文

第二次挥手,服务端向客户端发送一个ACK报文,此时客户端仍然可以接受服务器发送过来的数据

第三次挥手,服务器向客户端发送一个FIN报文

第四次挥手,客户端向服务器发送ACK报文

客户端向服务器发送ACK报文后并没有直接进入CLOSE状态,而是等待一段时间后才关闭。因为如果ACK报文丢失那么服务器端会重新发送FIN报文,如果此时客户端已经关闭了那服务器会一直发送请求,这样子就会造成资源浪费。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值