三次握⼿、四次挥⼿过程、原理

为了准确⽆误地把数据送达⽬标处, TCP 协议采⽤了三次握⼿策略。
 
 
客户端 发送带有 SYN 标志的数据包 ⼀次握⼿ 服务端
服务端 发送带有 SYN/ACK 标志的数据包 ⼆次握⼿ 客户端
客户端 发送带有带有 ACK 标志的数据包 三次握⼿ 服务端
 
 
为什么要三次握⼿
三次握⼿的⽬的是建⽴可靠的通信信道,说到通信,简单来说就是数据的发送与接收,⽽三次握
⼿最主要的⽬的就是双⽅确认⾃⼰与对⽅的发送与接收是正常的。
 
 
 
第⼀次握⼿: Client 什么都不能确认; Server 确认了对⽅发送正常,⾃⼰接收正常
第⼆次握⼿: Client 确认了:⾃⼰发送、接收正常,对⽅发送、接收正常; Server 确认了:对⽅
发送正常,⾃⼰接收正常
第三次握⼿: Client 确认了:⾃⼰发送、接收正常,对⽅发送、接收正常; Server 确认了:⾃⼰
发送、接收正常,对⽅发送、接收正常
所以三次握⼿就能确认双发收发功能都正常,缺⼀不可。
 
 
 
为什么要传回 SYN
接收端传回发送端所发送的 SYN 是为了告诉发送端,我接收到的信息确实就是你所发送的信号
SYN TCP/IP 建⽴连接时使⽤的握⼿信号。在客户机和服务器之间建⽴正常的 TCP ⽹络
连接时,客户机⾸先发出⼀个 SYN 消息,服务器使⽤ SYN-ACK 应答表示接收到了这个消
息,最后客户机再以 ACK(Acknowledgement[ 汉译:确认字符 , 在数据通信传输中,接收站
发给发送站的⼀种传输控制字符。它表示确认发来的数据已经接受⽆误。 ] )消息响应。这
样在客户机和服务器之间才能建⽴起可靠的 TCP 连接,数据才可以在客户机和服务器之间传
 
传了 SYN, 为啥还要传 ACK
双⽅通信⽆误必须是两者互相发送信息都⽆误。传了 SYN ,证明发送⽅到接收⽅的通道没有问
题,但是接收⽅到发送⽅的通道还需要 ACK 信号来进⾏验证。

 

四次挥手

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

 

 
为什么要四次挥⼿
 
任何⼀⽅都可以在数据传送结束后发出连接释放的通知,待对⽅确认后进⼊半关闭状态。当另⼀
⽅也没有数据再发送的时候,则发出连接释放通知,对⽅确认后就完全关闭了 TCP 连接。
举个例⼦: A B 打电话,通话即将结束后, A 我没啥要说的了 B 回答 我知道了 ,但是 B
可能还会有要说的话, A 不能要求 B 跟着⾃⼰的节奏结束通话,于是 B 可能⼜巴拉巴拉说了⼀
通,最后 B 我说完了 A 回答 知道了 ,这样通话才算结束。
 
 
 
 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值