三次握手和四次握手 区别

news/2024/11/7 6:35:31/

三次握手

在这里插入图片描述
如图所示
首先,客户端处于Closed状态,服务端处于Listen状态。

  1. 客户端发送SYN=1,意思是我客户端要请求建立联机了。 seq=x为 seq number=12345随机产生的数据包。此时,客户端状态从Closed 变成SYN_SEND
  2. 服务端 ACK 意思是,我服务端收到了,SYN=1,向你发送,我也要联机了,seq = y 同上,也是自己产生的随机数据包,ack=x+1 为在上一次发送过来的seq加一,发送回去,此时,服务端的状态从LISTEN变成SYN_RCVD。
  3. 客户端ACK =1 ,收到服务端发过来的请求了,seq=x+1,ack=y+1,验证一下。状态变为ESTAblish。

四次挥手

在这里插入图片描述

  1. 客户端establish状态,向服务端发送一个FIN状态码,我准备断开连接了。seq=u,发送一个随机数据包。状态进入FIN_wait
  2. 服务端establish状态,向客户端发送ACK=1,确认收到,seq=v 发送自己的数据包,ack=u+1,验证成功,状态变成CLOSED_WAIT。
  3. 客户端FIN_WAIT状态,向客户端发送FIN=1,我也要断开连接了,ACK=1,确认ACK,当为1时,才有效。seq=w,随机数据包。 ack=u+1,同第二次。服务端状态变为LAST_ACK。
  4. 客户端等待2MS后,向服务端发送ACK=1,收到,seq=u+1,ack=w+1。状态变成CLOSED。

此时,有几个问题:

1.1 为什么需要三次握手,两次不行吗?

第一次握手:客户端发送网络包,服务端收到了
这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。
第二次握手:服务端发包,客户端收到了。
这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常。
第三次握手:客户端发包,服务端收到了。
这样服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。

1.2 为什么要等2MSL

1.确保客户端发送的最后一个ACK报文段能够到达服务器,因为这个ACK可能会丢失,从而导致处在LAST_ACK状态的服务器收不到对FIN_ACK的确认报文。服务器会超时重传这个FIN_ACK。接着客户端再重传一次确认,重新启动时间等待计时器。最后客户端和服务器都能正常关闭,如果不等2MSL,而是在发送完ACK之后直接释放关闭,一旦这个ACK丢失,服务器就无法正常进入关闭连接状态。
2.防止失效的报文段。客户端在发送最后一个ACK之后,再经过2MSL,就可以使本链接持续时间内所产生的所有报文段都从网络中消失。从而保证在关闭连接后不会还有在网络中滞留的报文段去骚扰服务器。


http://www.ppmy.cn/news/180482.html

相关文章

什么是三次握手和四次握手

什么是三次握手和四次握手 1. 三次握手1.1 什么是三次握手 (three-way handshake)?1.2 TCP建立连接可以两次握手吗?为什么?1.3 可以采用四次握手吗?为什么?1.4 第三次握手中,如果客户端的ACK未送达服务器,…

手签

手签 <template><a-modalv-model"showModel":closable"false":maskClosable"false"title"在以下区域内签名"cancel"onClosePopup"ok"save"><div><div><canvas class"canvas&quo…

6种手势

1.手势UIGestureRecognizer UIGestureRecognizer是一个抽象类我们不能直接使用&#xff0c;他有6个子类&#xff08;tap,pan,swip,long,scale,raition)。他的父类NSObject。 2.常用属性和函数 //函数 创建-(instancetype)initWithTarget:target action(SEL)action单独添加ta…

什么是三次握手、什么是四次握手

在上一篇我们了解的TCP的报文格式和TCP连接管理机制&#xff1a;TCP初认识 今天来理解什么是三次握手&#xff0c;什么是四次挥手 图1 TCP连接管理 什么是三次握手 在网络数据传输中&#xff0c;传输层协议TCP(传输控制协议)是建立连接的可靠传输&#xff0c;TCP建立连接的过程…

什么是三次握手?

文章目录 三次握手三次握手的目的&#xff1a;名词解释&#xff1a;具体流程&#xff1a; 三次握手 三次握手的目的&#xff1a; 当两台主机要通信时&#xff0c;确认两台主机都具备发送和接收的能力。 名词解释&#xff1a; SYN 1 表示请求建立连接 SYN 0 …

孩子快抓住妈妈的手

孩子快抓住妈妈的手 说明&#xff1a;来自网络 孩子 快抓紧妈妈的手 去天堂的路 太黑了 妈妈怕你 碰了头 快 抓紧妈妈的手 让妈妈陪你走 妈妈 怕 天堂的路 太黑 我看不见你的手 自从 倒塌的墙 把阳光夺走 我再也看不见 你柔情的眸 孩子 你走吧 前面的路 …

都握手了,怎么能少得了挥手嘞

四次挥手只有一个目的&#xff1a;让双方都知道对方想要断开连接并且把该传输的数据都传输完 假设是由有客户端发起的断开请求&#xff1a; 第一次挥手&#xff1a;客户端给服务器端发送一个FIN标志位和seq&#xff0c;就像是在告诉服务器&#xff0c;"我想跟你断开连接&a…

练手~~~

文本操作 逆转字符串——输入一个字符串&#xff0c;将其逆转并输出。 拉丁猪文字游戏——这是一个英语语言游戏。基本规则是将一个英语单词的第一个辅音音素的字母移动到词尾并且加上后缀-ay&#xff08;譬如“banana”会变成“anana-bay”&#xff09;。可以在维基百科上了解…