三次握手、四次挥手详解

一、三次握手

三次握手是所建立连接可靠性的重要保障

1. 流程图解

在这里插入图片描述

2. 三次握手原理及为什么需要三次握手

三次握手可保证发送方确保自己及接收方的发送读写功能正常,接收方确保自己及发送方的读写功能正常,同时可以防止重复建立连接

  1. 第一次client发送SYN数据包给server,server收到数据包之后确认自己接收正常,client发送正常
  2. server返回一个SYN/ACK数据包给client,确认序列号为client的顺序号+1,client收到后确认自己发送,接收正常,server接收、发送正常
  3. server收到clinet的ACK数据包,其中seq为自己上次数据包的ack值,ack为上次seq+1,server确认自己接收、发送正常,client接收发送正常
  4. 连接建立

二、四次挥手

由于TCP是全双工的,面对这种双端都要进行单方向关闭的半关闭情况,四次挥手起到了很好的作用

1. 流程图解

在这里插入图片描述

2. 流程说明
  1. A端发起关
三次握手是TCP建立连接的过程,而四次挥手是TCP断开连接的过程。 三次握手详解如下: 1. 第一次握手:客户端向服务器发送一个SYN包,其中包含客户端的初始序列号(ISN)。 2. 第二次握手:服务器收到客户端的SYN包后,向客户端发送一个SYN-ACK包,其中包含服务器的初始序列号(ISN+1),同时确认客户端的SYN包。 3. 第三次握手:客户端收到服务器的SYN-ACK包后,向服务器发送一个ACK包,确认服务器的SYN-ACK包。 通过这三次握手,客户端服务器建立了双向的可靠连接,可以开始进行数据的传输。 四次挥手详解如下: 1. 第一次挥手:当客户端没有数据要发送时,它向服务器发送一个FIN包,表示客户端已经完成了数据的发送。 2. 第二次挥手:服务器收到客户端的FIN包后,向客户端发送一个ACK包,确认客户端的FIN包。 3. 第三次挥手:当服务器也没有数据要发送时,它向客户端发送一个FIN包,表示服务器已经完成了数据的发送。 4. 第四次挥手:客户端收到服务器的FIN包后,向服务器发送一个ACK包,确认服务器的FIN包。 通过这四次挥手,客户端服务器完成了连接的断开,不再进行数据的传输。 总结起来,三次握手是建立连接的过程,而四次挥手是断开连接的过程。这样的设计可以保证数据的可靠传输,并且确保连接的双方都能正确地完成连接的建立断开。 #### 引用[.reference_title] - *1* *2* *3* [我终于搞懂了TCP的三次握手四次挥手(图片案例超详解)](https://blog.youkuaiyun.com/weixin_45393094/article/details/104965561)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值