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

HTTP 是超文本传输协议的缩略语, TCP/ IP 协议的应用程序层协议, 规定了 WEB 浏览器和 WEB 服务器之间的数据交换过程。 如果您想要在客户端连接到网络服务器后访问网络服务器上的网络资源, 您必须坚持某种通信格式, 而 HTTP 协议被用来定义客户端和网络服务器之间的通信格式 。
TCP并不能确保另一方能够收到数据,因为这是不可能的。 它不是百分之百可靠的协议,它可以提供可靠的数据传输或错误通知。

三握手(三握手)表示,在建立TCP连接的同时,客户端和服务器总共发送了三包。
第一个握手([SYN],Seq = x)
传输完成后,客户发送Seq第一个序列号x的SYN标记包。客户端进入SYN_SEND状态。
[SYN,ACK],Seq = y,ACK = x + 1] 是第二次握手。
服务器返回确认包 (ACK) 并发送一个 SYN 软件包。 ACK = x + 1, 确认接收( 客户的后继值+ 1), Seeq = y, 使客户能够确认收到 。服务端进入SYN_RCVD状态。
[ACK],ACK = y + 1 是第三次握手。
客户发送确认软件包(ACK),ACK = y + 1, 校验服务器软件包接收(服务端+ 1的等值)客户端发送完毕后,进入ESTABLISHED状态,服务端这个包是给我的,我拿到了,我拿到了,我拿到了ESTABLISHEDTCP握手已经完成。

由于TCP连接断开,必须交付四包,因此称为四波波。
[FIN],Seq=u)是第一波。
客户向服务器发送一个FIN标记的软件包,告知服务器必须停止连接,无需发送数据,但也可以接收数据。客户端进入FIN_WAIT_1状态。
第二波([ACK],ACK = u + 1,Seq = v)波
客户发送了一个 " ACK " 确认包,通知客户,关闭请求已经收到,但尚未准备好。服务端进入CLOSE_WAIT状态,客户端收到这个包后,进入FIN_WAIT_2,然后等待服务器断开连接。
[FIN],Seq = w,ACK = u + 1 是第三波。
当服务器准备关闭连接时, 发送标有 FIN 标签的软件包, 并通知客户端它准备关闭 。服务端进入LAST_ACK现况:待客户核准。
第四波([ACK],ACK = w + 1)
客户接收客户客户的结账请求,并发送装有ACK 输入的确认包TIME_WAIT,同时等待服务提供方要求重新发送 ACK 包。
获取 ACK 包并输入后关闭连接CLOSED状态。
在等待一定时间(两个最长寿命周期)之后,客户没有获得服务的ACK包,假设服务器已经关闭、关闭并重新连接。CLOSED状态。
继续从假设的角度分析如果创建了三波, SYN 和 ACK 软件包将在服务器收到向客户端发送关闭请求后同时发送。 这将导致服务结束数据没有发送出来,数据丢失。 因此,需要等待服务器完成剩余数据 。

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