三次握手、四次挥手

本文详细介绍了TCP的连接建立过程——三次握手,包括其防止半连接和序列号同步的作用。同时,也解析了TCP关闭连接的四次挥手过程,确保双工连接的完全关闭,避免旧数据包干扰。内容涵盖了TCP连接管理的关键步骤和状态转换。
摘要由CSDN通过智能技术生成

两次握手

客户端A请求建立,服务器B同意建立链接
在这里插入图片描述

两次握手缺点

客户端A请求建立链接,链接超时重发,在这个过程中,请求中断。导致服务端维护半链接
在这里插入图片描述
两次握手会产生半连接、导致服务器资源耗尽

客户端A请求建立链接,B同意建立链接,A向服务器发送的数据超时重传,在这个过程中,链接中断,导致客户端将老的数据当成新的数据接受了
在这里插入图片描述
两次握手会导致老的数据当成新的数据接收了

三次握手

(1)客户端A向服务器发送SYN报文,并告知自己的初始序列号(ISN),此时客服端A进入SYN_SEND状态。
(2)服务器B将自己的SYN报文作为应答,并告知客服端自己的初始序列号(ISN),并将客户端的seq+1作为ack的值,表明服务器接收到客户端的SYN,此时服务器进入SYN_RECV状态。
(3)客户端A将服务器的seq+1作为ack的值,表明客服端接收到服务器的SYN,等到服务器接收到ack,双方进入链接状态。

下图可以避免半链接,当服务器同意建立链接后,像客户端发起建立链接,客户端知道该链接已经断开,拒绝链接。并且有序列号值可以避免将老数据的值当成新数据的值来处理。
在这里插入图片描述

四次挥手

四次挥手示意图
在这里插入图片描述
1)客户端A想要释放连接,向服务器端发送FIN报文,并指定序列号,此时客户端进入FIN_WAIT1状态。
2)服务器将客户端seq+1作为ack值,表明服务器接收到客户端的报文,此时服务器进入CLOSE_WAIT状态。
前"两次挥手"既让服务器端知道了客户端想要释放连接,也让客户端知道了服务器端了解了自己想要释放连接的请求。于是,可以确认关闭客户端到服务器端方向上的连接。
3)服务器B向客户端发送FIN报文,并指定序列号,此此时服务器进入LAST_ACK状态。
4)客户端A将服务器的seq+1作为ack值,表明客户端接收到了服务器的报文,客户端进入TIME_WAIT状态。此时客户端到服务器并没有断开链接,经过2MSL后再断开链接。
后“两次挥手”既让客户端知道了服务器端准备好释放连接了,也让服务器端知道了客户端了解了自己准备好释放连接了。于是,可以确认关闭服务器端到客户端方向上的连接了,由此完成“四次挥手”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值