学习笔记17——通俗易懂的三次握手四次挥手

发布时间:2024年01月10日

提供一种博主本人觉得很好理解的三次握手和四次挥手场景,帮助记忆

  • 在这里插入图片描述
  • 三次握手过程
    • 初始状态:客户端处于closed状态,服务器处于listen监听转台
    • 客户端向服务器发送一个SYN连接请求,并告诉对方自己此时初始化序列号为x,发送之后处于SYN_send状态
    • 服务器收到客户端发来的请求,如果同意建立连接,那么就也发送一个SYN=1的信号,并发送自己的初始化序列号seq = y,同时为了告诉客户端自己下一步想要接收的信息(为了告诉客户端你的消息我收到了),发送确认序列号ack = x+1,并将ACK置为1发送回去,服务器此时为SYN_Receive状态【站在客户端,此时发送信息并得到回应,她会认为这是个靠得住的服务器,但是对于服务器来说,你发送我就全盘接收可太没有保障了,我都不知道你是谁,也不知道你到底有没有发送能力,就白白留一个连接等着你,所以服务器不答应两次握手,他也要试试客户端是真有能力还是假有能力,此时迎来第三次握手】
    • 第三次握手是客户端收到服务端的返回后,客户端发送同步序列号seq = x+1,并对服务器端的序列进行确认响应,将ACK置为1并回复ack=y+1,客户端转为established,服务器收到这个消息之后也转为established。
  • 在这里插入图片描述
  • 四次挥手流程
    • 1、客户端:我要和你离婚,这是离婚协议书,我已经签了你签个字吧【发送FIN=1,并发送此时的序列号seq=u,进入FIN_WAIT1】
    • 2、服务端:啊?你再说一遍?你要和我离婚,我还有好多愿望没和你一起实现呢【发送ACK=1,ack=u+1,seq=v,服务端进入CLOSE_WAIT,客户端听了进入了FIN_WAIT2】你听我说啊巴拉巴拉
    • 3、服务器端见到自己挽回了这么久,客户端也没有说一句话,知道没有希望了:好吧,缘分尽了莫强求。他狠下心来签了离婚协议书【FIN=1,ACK=1,seq=w,ack=u+1,服务端进入LAST_ACK状态】
    • 4、客户端冷静的看到签好的离婚协议书,说:从此一别两宽吧,她顿了一下,想看看服务器还要说什么,毕竟夫妻一场以后再也见不到了,心中还是空落落的,【ACK=1,seq=u,ack=w+1,客户端发送消息完进入TIME_WAIT,服务器收到直接进入CLOSED】,可过了一会儿见还是一阵沉默,她心想:”算了,一切都结束了!“【客户端进入CLOSED】
文章来源:https://blog.csdn.net/CZY925323/article/details/135504778
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。