TCP 三次握⼿和四次挥⼿(⾯试常客)

三次握⼿

漫画图解

在这里插入图片描述
简单示意图
在这里插入图片描述

  1. 客户端–发送带有 SYN 标志的数据包–⼀次握⼿–服务端
  2. 服务端–发送带有 SYN/ACK 标志的数据包–⼆次握⼿–客户端
  3. 客户端–发送带有带有 ACK 标志的数据包–三次握⼿–服务端

为什么要三次握手

三次握⼿的⽬的是建⽴可靠的通信信道,说到通讯,简单来说就是数据的发送与接收,⽽三次握
⼿最主要的⽬的就是双⽅确认⾃⼰与对⽅的发送与接收是正常的。
第⼀次握⼿:客户端什么都不能确认;服务器确认了对⽅发送正常,⾃⼰接收正常
第⼆次握⼿:客户端 确认了:⾃⼰发送、接收正常,对⽅发送、接收正常;服务器确认了:对⽅
发送正常,⾃⼰接收正常
第三次握⼿:客户端 确认了:⾃⼰发送、接收正常,对⽅发送、接收正常;服务器确认了:⾃⼰
发送、接收正常,对⽅发送、接收正常
所以三次握⼿就能确认双发收发功能都正常,缺⼀不可。

为什么要传回 SYN

接收端传回发送端所发送的 SYN 是为了告诉发送端,我接收到的信息确实就是你所发送的信号
了。

传了 SYN,为啥还要传 ACK

双⽅通信⽆误必须是两者互相发送信息都⽆误。传了 SYN,证明发送⽅到接收⽅的通道没有问
题,但是接收⽅到发送⽅的通道还需要 ACK 信号来进⾏验证。

四次挥手

在这里插入图片描述
断开⼀个 TCP 连接则需要“四次挥⼿”:
客户端-发送⼀个 FIN,⽤来关闭客户端到服务器的数据传送
服务器-收到这个 FIN,它发回⼀ 个 ACK,确认序号为收到的序号加1 。和 SYN ⼀样,⼀个
FIN 将占⽤⼀个序号
服务器-关闭与客户端的连接,发送⼀个FIN给客户端
客户端-发回 ACK 报⽂确认,并将确认序号设置为收到序号加1

为什么要四次挥⼿

任何⼀⽅都可以在数据传送结束后发出连接释放的通知,待对⽅确认后进⼊半关闭状态。当另⼀
⽅也没有数据再发送的时候,则发出连接释放通知,对⽅确认后就完全关闭了TCP连接。

举例说明三次握手

A::听得到吗?
B:听得到,你能听到我吗?
A:我也能听到。
然后才开始真正对话

举例说明四次挥手

学生:老师,下课了。
老师:好,我知道了,我说完这点。
老师:好了,说完了,下课吧。
老师:谢谢老师,老师再见

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值