当前位置: 代码网 > it编程>前端脚本>Python > 【计算机网络】三次握手、四次挥手

【计算机网络】三次握手、四次挥手

2024年08月02日 Python 我要评论
问:三次握手 四次挥手TCP 连接过程是 3 次握手,终止过程是 4 次挥手。

问:三次握手 四次挥手

tcp 连接过程是 3 次握手,终止过程是 4 次挥手

3次握手

第一步:客户端向服务器发送一个带有 syn(同步)标志的包,指示客户端要建立连接。
第二步:服务器收到客户端的请求后,回复一个带有 syn(同步)和 ack(确认)标志的包。 syn 标志表示服务器也愿意建立连接,ack 标志确认收到客户端的请求。
第三步:客户端收到服务器的回复后。再发送一个带有 ack 标志的包,确认收到服务器的回复。
在这里插入图片描述

上图中的这个例子有点勉强哈,而我们还需要记住seq为初始序号,ack为确认号,保证了传输层的可靠性,当然课本里面也是这么说的。

tcp3次握手其实就是tcp应用在发送数据前通过tcp协议跟通信对方协商好连接信息,建立起tcp的连接关系,三次握手的主要作用就是为了确认双方的接收和发送能力是否正常,首先第一次握手:客户端发送syn报文,并进入syn_send同步已发送状态,等待服务器的确认;第二次握手:服务器收到syn报文,需要给客户端发送ack确认报文,同时服务器也要向客户端发送一个syn报文,此时服务器进入syn_rcvd同步收到的状态;第三次握手:客户端收到syn加ack报文,向服务器发送确认包,客户端进入确认连接状态,待服务器收到ack确认包也会进入确认连接状态。

4次挥手

第一步:当客户端想关闭连接时,发送一个带有 fin(结束)标志的包给服务器。
第二步:服务器收到客户端的关闭请求时,发送一个带有 ack 标志的包给客户端,确认收到关闭请求。
第三步:服务器进入 close_wait 状态,继续向客户端发送数据,直到服务器准备关闭连接。 在服务器准备关闭连接时,服务器发送一个带有 fin 标志的包给客户端。
第四步:客户端收到服务器的关闭请求后,发送一个 ack 标志的包给服务器,确认收到服 务器的关闭请求

在这里插入图片描述
为什么要四次挥手,因为可能存在未发送完成的数据。(参考课本,第一次挥手没有发送ack标志)

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com