TCP 三次握手和四次挥手是怎么回事

TCP 三次握手和四次挥手是怎么回事

为保证数据的准确可靠,TCP 协议采用的是经典的三次握手策略。

如下图所示,下面的两个机器人通过3次握手,确定了对方能正确接收和发送消息(来源:《图解HTTP》)。

TCP三次握手

TCP三次握手

第一次握手:客户端 -> 发送带有 SYN 标志的数据包 -> 服务端第二次握手:服务端 -> 发送带有 SYN/ACK 标志的数据包 -> 客户端第三次握手:客户端 -> 发送带有带有 ACK 标志的数据包 -> 服务端为什么要三次握手当然是为了建立可靠的通信信道。说到通讯,简单来说,就是数据的发送与接收,而三次握手最主要的目的,就是让双方都能确认自己与对方的发送和接收是正常的。

第一次握手:Client 什么都不能确认;Server 确认了对方发送正常第二次握手:Client 确认了:自己发送、接收正常,对方发送、接收正常;Server 确认了:自己接收正常,对方发送正常第三次握手:Client 确认了:自己发送、接收正常,对方发送、接收正常;Server 确认了:自己发送、接收正常,对方发送、接收正常因此,必须经过三次握手,才确认双发收发功能都正常,这缺一不可。

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

SYN 是 TCP/IP 建立连接时使用的握手信号。客户机和服务器之间建立正常的 TCP 网络连接时,客户机首先发出一个 SYN 消息,服务器使用 SYN-ACK 应答,表示接收到了这个消息,最后客户机再以 ACK 确认消息响应。

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

TCP 四次挥手断开 TCP 连接,需要经过 “四次挥手”:

第1次挥手: 客户端 -> 发送一个 FIN,用来关闭客户端到服务器的数据传送第2次挥手: 服务器 -> 收到这个 FIN,它发回一个 ACK,确认序号为收到的序号加1。和 SYN 一样,一个 FIN 将占用一个序号第3次挥手: 服务器 -> 关闭与客户端的连接,发送一个 FIN 给客户端第4次挥手: 客户端 -> 发回 ACK 报文确认,并将确认序号设置为收到序号加1为什么要四次挥手任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后,进入半关闭状态。当另一方也没有数据再发送的时候,则发出连接释放的通知,对方确认后,TCP 连接将完全关闭。

Take Example:A 和 B 打电话,通话即将结束后,A 说 “我没啥要说的了”,B 表示 “我知道了”,但是 B 可能还有要说的话,因此 A 不能要求 B 跟着自己的节奏来结束通话,于是 B 可能又巴拉巴拉说了一通,最后 B 说 “我说完了”,A 回答 “知道了”,这样通话才算真正结束。

这里讲的比较概括,推荐一篇讲的比较细致的文章:TCP的三次握手与四次挥手(详解+动图)

你可能也喜欢

1986年国际足联世界杯
365bet官方投注网站

1986年国际足联世界杯

📅 07-16 👀 8529
千万彩票被冒领,五年打赢官司至今没拿到钱,律师:考虑刑事追责
《旬》字开头的组词
365bet官方投注网站

《旬》字开头的组词

📅 06-29 👀 1637
PPT转成Word文档的四种方法
365bet365娱乐场

PPT转成Word文档的四种方法

📅 07-03 👀 3444
手把手教你识别真假金刚菩提子
365bet365娱乐场

手把手教你识别真假金刚菩提子

📅 07-21 👀 5861
琅琊榜2什么时候播 琅琊榜之风起长林定档下月底开播
男人脑袋里除了性,还在想什么?
be365是否安全

男人脑袋里除了性,还在想什么?

📅 07-17 👀 5775
为什么年轻人抢着当空姐?这个职业很香吗!
365bet365娱乐场

为什么年轻人抢着当空姐?这个职业很香吗!

📅 07-08 👀 1402
聊天记录删除了怎么办?5种方法+实用工具大公开!
365bet官方投注网站

聊天记录删除了怎么办?5种方法+实用工具大公开!

📅 07-15 👀 9386