想看懂三次握手,四次挥手?看这里!!!

这篇具有很好参考价值的文章主要介绍了想看懂三次握手,四次挥手?看这里!!!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、知识点介绍

     1.什么是三次握手?

三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。实质上其实就是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息。

 本质:是确认通信双方收发数据的能力 。

   2.什么是四次挥手?

建立一个连接需要三次握手,而终止一个连接要经过四次挥手(也有将四次挥手叫做四次握手的)。这由TCP的半关闭(half-close)造成的。所谓的半关闭,其实就是TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。TCP 的连接的拆除需要发送四个包,因此称为四次挥手(Four-way handshake),客户端或服务器均可主动发起挥手动作。

 本质:目的是关闭一个连接。

二、三次握手和四次挥手的过程:

      1.三次握手的过程:

  • 第一次握手: 首先是客户端向服务器发送了报文
    这次的握手是具有重大意义的:它说明了客户端它的发送能力是正常的
  • 第二次握手:然后服务器端接收到了客户端向它发送的报文,并且也同时向客户端发送报文
    这次的握手也很重要:它说明了服务器端自身的接收能力和发送能力都是正常的
  • 第三次握手:客户端再一次向服务器发送了报文
    这次的握手依旧重要:因为证明客户端的接收能力正常

那有的同学可能就有疑问了,为什么最后还要在握一次手?不纯纯多余嘛...

漏漏漏,大漏特漏。我的好基友, 让我这样解释给你听

首先你想想,当你给你的女朋友发了条消息问她在不在(相当于第一次握手

然后你的女朋友看见了,她收到了你的发出的消息,也同时回了你的消息(相当于第二次握手

很快你也收到了她回的信息,但如果你长时间不再发一次消息,她就不清楚你到底看没看到她给你发的信息,让她一直等,那她就很生气,那你就得完蛋。(相当于第三次握手

就是这样,基友们你们懂了吗?没懂可以去找女朋友试试,如此你就会有深刻印象。

说专业点就是:

当客服端和服务端进行通信,客户端发送了一条消息,到达了服务端

对于服务端而言,服务端收到了你发送的内容,同时向客服端发送确认。

对于客服端而言,如果客服端不理睬服务端的这个确认,那么服务端则会一直等待客服端的消息。

这就导致了服务端的时间被浪费(对于服务器而言,CPU等资源是一种浪费),这样是不可行的,

这就是为什么不能两次握手的原因了

   三次握手和四次挥手,服务器,网络,tcp/ip

                                                                  图示为三次握手

       2.四次挥手的过程

  • 第一次挥手: 
    客户端发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态
  • 第二次挥手:
    服务器端接收到连接释放报文后,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT 关闭等待状态
  • 第三次挥手:
    客户端接收到服务器端的确认请求后,客户端就会进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文,服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。
  • 第四次挥手:
    客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态,但此时TCP连接还未终止,必须要经过2MSL后(最长报文寿命),当客户端撤销相应的TCB后,客户端才会进入CLOSED关闭状态,服务器端接收到确认报文后,会立即进入CLOSED关闭状态,到这里TCP连接就断开了,四次挥手完成

 那看到这里依旧有人想问,为什么连接时只要三次,而断开连接时却要四次???

那我再用男女朋友那点事来告诉你,首先你设想这样的场景:

你和你女朋友今天相约一起出去玩,那玩肯定会有个结束。约完会了肯定要各回各家,各找各妈 要互相再见吧!

哈哈哈哈,那重点来了,

你:再见宝贝,你回去吧(第一次挥手

女朋友:好的宝宝,那我走了(第二次挥手

女朋友:那你也回去吧宝宝(第三次挥手

你:好的,那我走了,拜拜宝贝(第四次挥手

就是这样,就像和女朋友说拜拜时那样的不舍。

三次握手和四次挥手,服务器,网络,tcp/ip

 图示为四次挥手文章来源地址https://www.toymoban.com/news/detail-716741.html

到了这里,关于想看懂三次握手,四次挥手?看这里!!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 怎样理解三次握手和四次挥手?

    目录 1. 三次握手 2. 为什么是三次握手,两次?四次不行吗?  3. 四次挥手 4. 为什么不能三次挥手? 1. 三次握手 三次握手的大致流程图如下所示 (1)当客户端想与服务端建立连接时,客户端会先发送连接请求到服务端,该请求需要服务器接收并确认,这是一次握手; (2)

    2024年02月12日
    浏览(38)
  • TCP中的三次握手和四次挥手

    TCP中的连接和断开可以说是在面试中经常被问到的问题之一,正好有空就总结一下,首先回顾一下TCP的相关知识点 1.1 TCP的基本概念 我们知道TCP是运输层的面向连接的可靠的传输协议。 面向连接的 ,指的就是在两个进程发送数据之前,必须先相互“握手”,确保两进程可以

    2024年02月03日
    浏览(51)
  • tcp 三次握手和四次挥手报文分析

     报文抓取如下: 三段报文分析: 第一次:26-96报文交互 Seq-num = 567391014, ACK_NUM = 0; flags = SYN 第二次:96-26报文交互 Seq-num = 416352681,  ACK_NUM = Seq-num + 1 =567391014 +1 =567391015, flags = ACK + SYN,   第三次:26-96报文交互 Seq-num= ACK_NUM= 567391015, ACK_NUM = seq-num +1= 416352681+ 1 = 416352682, flags

    2024年02月04日
    浏览(53)
  • TCP的三次握手和四次挥手······详解

    三次握手是 建立连接 的过程 如图大致为三次握手的流程图: 当客户端对服务端发起连接时,会 先发一个包 连接请求数据,去询问能否建立连接,该数据包称为 “SYN”包 然后,如果对方同意连接,那么对方将会回复一个 “SYN+ACK”包 客户端收到后,回复一个 “ACK”包 ,连

    2024年02月09日
    浏览(43)
  • 【网络知识点】三次握手和四次挥手

    三次握手的原理如下: 客户端向服务器发送一个SYN(同步)包,其中包含一个随机生成的初始序列号(ISN)。 服务器收到SYN包后,会发送一个SYN+ACK(同步+确认)包作为响应,其中包含确认号(ACK)和自己的随机生成的ISN。 客户端收到服务器的SYN+ACK包后,会发送一个ACK(确

    2024年02月09日
    浏览(42)
  • 为什么是三次握手和四次挥手

    因为这是双方都有收发的最小次数 握手的目的:确认网络好着没,对方好着没 确认双方主机是否健康(双方) 验证双方是否具有全双工。 比如发送数据不是为了对方接受,而是为了证明自己能够发送数据。 一次握手,服务端知道自己能收; 两次握手,客户端知道自己能够

    2024年02月02日
    浏览(64)
  • TCP协议的三次握手和四次挥手

    完整的TCP内容,请参考RFC 9293 TCP协议为应用提供可靠的、有序的的字节流服务。TCP是面向连接的,提供了全双工的通信。TCP使用端口号来识别应用程序服务并在主机之间复用不同的流。 TCP header也像IP header一样,在header中提供了一些专门用于TCP的信息,TCP header之后就是用户数

    2024年02月06日
    浏览(43)
  • TCP的连接和建立(三次握手和四次挥手)

    ​ 1.TCP连接的建立 ​ 连接的建立,通常称为三次握手。 ​ ​ 建立连接前服务器处在收听状态。 ​ 第一步:客户机的TCP向服务器的TCP发送连接请求报文段。同步位 = 1。这时客户进程进入同步已发送状态。 ​ 第二步:服务器TCP收到连接请求报文段后,如同意建立连接,向客

    2024年02月16日
    浏览(45)
  • 详解TCP/IP的三次握手和四次挥手

    本文章讲解TCP/IP协议的三次握手和四次挥手的流程。 三次握手:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。 TCP协议位于传输层,作用是提供可靠的字节流服务

    2024年02月09日
    浏览(50)
  • 面试题之TCP的三次握手和四次挥手

    TCP的三次握手: 一定由 客户端主动发起 的,发生在建立连接的过程中。 此过程发生在 客户端的connect()函数 和 服务器的accept()函数 之间。 第一次握手: 客户端向服务器发送一个 带有SYN标志的数据包 ,表示客户端请求建立连接。 并且客户端会 选择一个随机的序列号a 放在

    2024年02月07日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包