HTTP使用了三节握手和四节波。

      最后更新:2021-11-19 00:11

      HTTP使用了三节握手和四节波。

      在这里插入图片描述

      HTTP 概述

      HTTP 是超文本传输协议的缩略语, TCP/ IP 协议的应用程序层协议, 规定了 WEB 浏览器和 WEB 服务器之间的数据交换过程。 如果您想要在客户端连接到网络服务器后访问网络服务器上的网络资源, 您必须坚持某种通信格式, 而 HTTP 协议被用来定义客户端和网络服务器之间的通信格式 。

      关于 TCP

      • 贸易点方案提供联结的、可信赖的流量服务。
      • 只有两个当事方可以通过TCP连接进行通信,广播和多广播不能用于TCP。
      • 为确保可靠的通信,TCP采用核对、确认和再传送程序。
      • TCP 对数据分节进行分类,并利用累积保证数据确保一致性和不重复。
      • TCP使用滑动窗口方法,通过动态调整窗口大小来调节交通和人群。

      TCP并不能确保另一方能够收到数据,因为这是不可能的。 它不是百分之百可靠的协议,它可以提供可靠的数据传输或错误通知。

      三次握手

      在这里插入图片描述

      三握手(三握手)表示,在建立TCP连接的同时,客户端和服务器总共发送了三包。

      1. 第一个握手([SYN],Seq = x)
        传输完成后,客户发送Seq第一个序列号x的SYN标记包。客户端进入SYN_SEND状态。

      2. [SYN,ACK],Seq = y,ACK = x + 1] 是第二次握手。
        服务器返回确认包 (ACK) 并发送一个 SYN 软件包。 ACK = x + 1, 确认接收( 客户的后继值+ 1), Seeq = y, 使客户能够确认收到 。服务端进入SYN_RCVD状态。

      3. [ACK],ACK = y + 1 是第三次握手。
        客户发送确认软件包(ACK),ACK = y + 1, 校验服务器软件包接收(服务端+ 1的等值)客户端发送完毕后,进入ESTABLISHED状态,服务端这个包是给我的,我拿到了,我拿到了,我拿到了ESTABLISHEDTCP握手已经完成。

      为什么三次握手,而不是两次或四次?

      • 从假设的角度来评估它。 如果有两种握手方式呢?在回应后,服务器可能根本无法保证信息是客户收到的,意味着只有客户才能向服务提供商提供数据。
      • 如果有四次握手呢?
      • 因此,三次是最可以接受的,在这里,我只是从个人的角度来分析,而不是从顺序或诸如此类的角度来分析。

      四次挥手

      在这里插入图片描述

      由于TCP连接断开,必须交付四包,因此称为四波波。

      1. [FIN],Seq=u)是第一波。
        客户向服务器发送一个FIN标记的软件包,告知服务器必须停止连接,无需发送数据,但也可以接收数据。客户端进入FIN_WAIT_1状态。

      2. 第二波([ACK],ACK = u + 1,Seq = v)波
        客户发送了一个 " ACK " 确认包,通知客户,关闭请求已经收到,但尚未准备好。服务端进入CLOSE_WAIT状态,客户端收到这个包后,进入FIN_WAIT_2,然后等待服务器断开连接。

      3. [FIN],Seq = w,ACK = u + 1 是第三波。
        当服务器准备关闭连接时, 发送标有 FIN 标签的软件包, 并通知客户端它准备关闭 。服务端进入LAST_ACK现况:待客户核准。

      4. 第四波([ACK],ACK = w + 1)
        客户接收客户客户的结账请求,并发送装有ACK 输入的确认包TIME_WAIT,同时等待服务提供方要求重新发送 ACK 包。
        获取 ACK 包并输入后关闭连接CLOSED状态。
        在等待一定时间(两个最长寿命周期)之后,客户没有获得服务的ACK包,假设服务器已经关闭、关闭并重新连接。CLOSED状态。

      为什么你要握手三次才挥手四次?

      继续从假设的角度分析如果创建了三波, SYN 和 ACK 软件包将在服务器收到向客户端发送关闭请求后同时发送。 这将导致服务结束数据没有发送出来,数据丢失。 因此,需要等待服务器完成剩余数据 。

      HTTP 基本工作流程

      在这里插入图片描述

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类