当前位置:大哥资讯网 > 国际新闻 > 正文

三次握手 TCP三次握手与四次分手傻傻分不清 看大神图解五分钟讲明白

导语:原标题:TCP三次握手和四次分手没什么区别?看大神图五分钟就明白了序 TCP三次握手和四次挥手是开发和面试中非常重要的知识点,是优化web程序性能的基础。然而,大多数教材对这一部分都是抽象的解释。在本文中,我们使用wire

原标题:TCP三次握手和四次分手没什么区别?看大神图五分钟就明白了

TCP三次握手和四次挥手是开发和面试中非常重要的知识点,是优化web程序性能的基础。然而,大多数教材对这一部分都是抽象的解释。在本文中,我们使用wireshark来掌握包,以真正了解整个过程的细节。

三次握手

根据下图,我们来看看TCP三次握手。附注:每个箭头代表一次握手。

Tcp三次握手

第一次握手

客户端向服务器发送一个SYN PACkage,然后等待服务器的ack回复,进入SYN-SENT状态。附言:SYN是synchronize的缩写,ACK是acknowledgment的缩写。

第二次握手

服务器收到SYN packet后,返回一个ACK packet和自己的SYN pACKet,然后等待客户端的ACK回复,服务器进入SYN-RECIVED状态。

Di三次握手

客户端收到服务器发回的确认包后,进入建立状态。然后,根据服务器发送的SYN包,向等待的服务器返回确认包。等待服务器收到确认回复,并将其状态设置为已建立。当TCP三次握手完成时,客户端和服务器可以正常通信。

为什么要进行三次握手

让我们看看为什么需要三次握手。两次握手不行吗?这里我们用一个生活中的具体例子来解释一下。我们可以把三方握手中客户端和服务器之间的握手过程比作A和B之间的通信过程:

在第一次通信过程中,A向B发送信息后,B收到信息后可以确认自己的接收能力和A的发送能力没有问题。

在第二次通信中,B向A发送消息后,A可以确认自己的发送能力和B的接收能力没有问题,但是B不知道自己的发送能力是什么,所以需要第三次通信。

在第三次通信中,A向B发送信息后,B可以确认其发送能力没有问题。

网络封包分析

以上分析不够生动,容易忘记。让我们用wireshark来证明上面的分析过程。从下面的输出可以很容易地看出,只有在前三个tcp请求之后才会有一个http请求。

首次请求客户端发送序列号为0的SYN数据包。

wireshark-tcp-01

第二个请求服务器将发送序列号为0、确认号为1的同步和确认数据包。

wireshark-tcp-02

第三个本地客户端请求将发送序列号为1、确认号为1的确认数据包,以回复服务器。

wireshark-tcp-03

挥手四次

以下图为例,我们来分析一下TCP四次挥舞的过程。

Tcp挥手四次

第一次挥手

客户端发送一个FIN包。此时,客户端进入FIN-WAIT-1状态,表示客户端没有数据可发送。

第二次挥手

在接收到客户端发送的FIN PACkage后,服务器向客户端发回一个ack PACkage。此时,服务器进入CLOSE-WAIT状态,客户端进入FIN-WAIT-2状态。

第三次挥手

服务器向客户端发送FIN数据包,请求关闭连接,同时服务器进入最后确认状态。

第四次挥手

客户端接收服务器发送的FIN数据包,进入时间等待状态。向服务器发送ACK PACkage,服务器收到客户端发来的ACK PACkage后进入CLOSE状态;客户端等待一段时间没有收到回复,然后判断服务器已经正式关闭,进入CLOSE状态。

免责申明:以上内容属作者个人观点,版权归原作者所有,不代表大哥资讯网立场!登载此文只为提供信息参考,并不用于任何商业目的。如有侵权或内容不符,请联系我们处理,谢谢合作!
当前文章地址:https://www.dggaoda.com/news/guojixinwen/300335.html 感谢你把文章分享给有需要的朋友!
上一篇:五年级下册数学计算题 五年级下册数学计算题专项训练经典练习题 下一篇: 大鱼mcn 大鱼号mcn是什么 大鱼号mcn需要什么条件