TCP三次握手和四次挥手

标志位含义解释

SYN=1 请求建立连接
ACK=1 确认序号有效
FIN=1 请求释放连接
seq=x 报文序号
ack=x+1 收到报文后的确认序号

三次握手
在这里插入图片描述

四次挥手

在这里插入图片描述

补充说明:

1)TCP三次握手一定可靠吗?

不一定。
1)三次握手比两次握手更可靠,但并非完全可靠。更多次握手也无法
使连接更加可靠了,因此选择了三次握手。
2)没有绝对完全可靠的通信协议,从时间成本空间成本可靠度来讲,
三次握手是最优解。

2)为什么握手是3次,挥手必须是4次?

在三次握手中,服务端收到客户端的SYN连接请求后,可以直接一次发送SYN和ACK报文,其中ACK表示确认收到请求,SYN则表示同步,二者缺一不可,但可以同时发给客户端。

在四次挥手中,服务端收到客户端断开连接请求时,也同样要发送FIN和ACK报文,ACK表示确认收到报文,FIN表示同意结束连接,但在这个过程中,双方可能依旧存在数据传输,因此服务端需要把相关数据全部传输完,才能发送FIN断开请求报文。因此服务端会先发送ACK报文表示自己接收到报文,处理完所有任务,再发送FIN表示请求处理完成,双方断开连接。

3)为什么不能两次握手?

如果没有第三次握手,那么
1)假设客户端因为超时没有向服务端发送报文,那么服务端的端口会一直打开,造成服务器系统资源的浪费。
2)已经失效的客户端发送的报文传输到服务端,服务端以为是客户端发出的有效请求,接收后产生错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值