老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

TCP为什么要进行3次握手和4次挥手?Python培训班

老男孩IT教育

行业新闻

2021年10月11日 17:40

Python的可应用范围很广,其中Web开发就会涉及到各种协议,最常见的就是TCP协议,客户端就是发送请求的一方,而服务端就是处理请求的一方,两者的信息交流是通过协议来进行的,那3次握手和4次挥手又是什么呢?请看下文:

       Python的可应用范围很广,其中Web开发就会涉及到各种协议,最常见的就是TCP协议,客户端就是发送请求的一方,而服务端就是处理请求的一方,两者的信息交流是通过协议来进行的,那3次握手和4次挥手又是什么呢?请看下文:

Python培训

       三次握手(建立连接)

       1)客户端发送一个带SYN标志的TCP报文到服务器,这是第1个报文;

       2)服务端回应客户端,是第2个报文,同时带有ACK标志和SYN标志,以此回应第1步,SYN用于询问客户端是否准备好进行通讯;

       3)客户再次回应服务端一个ACK报文,是第3个报文。

       为什么要进行3次握手?

       当服务端的LISTEN状态下的SOCKET收到SYN报文的请求后,可以把ACK和SYN放在1个报文中来发送,其中ACK的作用是应答,而SYN的作用是同步。

       四次挥手(连接终止协议)

       1)TCP客户端发哦是那个一个FIN,用于关闭客户发送到服务器的数据传送;

       2)服务器收到这个FIN,返回一个ACK,和SYN一样,一个FIN将占用一个序号;

       3)服务器关闭客户端的连接,发送FIN给客户端;

       4)客户端返回ACK报文,并将确认序号设置为收到的序号+1。

       为什么要进行4次挥手?

       在TCP连接时,是将SYN和ACK一起发送的,但为什么挥手却没有一起发送呢?因为TCP是全双工模式,接收到FIN时将没有数据再发来,但还是可以继续发送数据。

       关于"TCP为什么要进行3次握手和4次挥手"的话题到这里就结束了,如果你对Python感兴趣,想要学习Python,就来老男孩教育吧!老男孩教育Python培训采用线上、线下相结合的方式,科学的教学方法,无论学员选择哪一种授课方式,均能学到真知识!

       推荐阅读:

       Python中re模块正则该如何正确使用?Python培训

       Session、Cookie、token三者有关联吗?该如何操作?

       用Python编程,有哪些值得使用的编辑器?Python培训

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。