首页 > 编程知识 正文

手绘图,tcp拥塞控制状态图

时间:2023-05-06 12:38:22 阅读:167073 作者:961

该图主要是为了更清楚地看到TCP连接的各状态的关系

这个还是在理解了3次握手和4次握手的基础上,对照任何一张图理解都比较深的好。

整个图主要分为三个部分。

客户端状态变化服务器侧的状态变化的各种意外的事态1、客户端的状态变化

我们讲这个图从ESTABLISHED分为上下两个部分

上面两个是TCP握手三次的前两次

第一次握手时,客户端首先主动向服务器发送SYN请求连接。 状态变为同步发送

在第二次握手中,客户端接收来自服务器的SYN ACK。 此时,客户端已确认自己可以发送或接收消息,因此处于ESTABLISHED状态,可以进行数据传输

(虽然还没有第三次握手,整个连接都不完整,但是对客户端来说已经很好了。 中途是数据交换的过程,接下来是第四次握手的过程)

因为客户端第一次挥手要关闭连接,所以发送FIN,状态变为FIN-WAIT-1

第二次挥手,客户端从服务器收到ACK,状态变为等待2

第三次和第四次挥手时,客户端再次从服务器收到FIN信息,自发发送ACK表示确认,状态为TIME-WAIT状态

2经过MSL事件后,关机,进入开始的CLOSED状态2,服务器侧的状态发生变化

我们讲这个图从ESTABLISHED分为上下两个部分

上面两个是TCP的三次握手

首先,第一个LISTEN状态在服务打开时处于侦听状态。

在第一次握手和第二次握手中,服务器从客户端接收SYN并将其发送回SYN ACK。 此时,服务器已具有接收信息的能力,将被证明处于SYN-RCVD状态

在第三次握手中,服务器再次接收到来自客户端的ACK。 此时,服务器端也确认了自己有发送和接收消息的能力,因此处于ESTABLISHED状态,可以进行数据传输

[此时3次握手成功]中间是数据的交换过程,接下来是4次握手

第一招和第二招在服务器端接收客户端发送的FIN,首先发送ACK。 但是,可能还没有收到消息,需要等一会儿。 状态变为CLOSE-WAIT

等到第三次挥手接收完毕后,服务器再次向客户端发送发送的FIN,此时客户端再次发送数据时,仍然需要接收,因此还没有关机,状态为last-last

第四次挥手,服务器端再次收到ACK并表示确认,表示客户端已关闭,自己也已关闭。 进入了状态开始的CLOSED状态3,发生了各种不可预测的事态

我们分部分看这种错误可能出现的原因:

最上面的监听器

在服务器侦听端口时,此时存在某些资源加载问题,http://www.Sina.com/http://www.Sina.com /

接收RST,从握手3次的前2次开始再次进入监听状态

RST表示重置,如果RST=1,则表示TCP连接出现严重错误,必须释放连接,然后重新建议运输连接。 从监听器

服务器也可能通过SYN-SENT-SYN-RCVD打开连接

如果服务器和客户端接收到SYN_SENT状态的SYN数据报,则必须发送SYN的ACK数据报,将自己的状态调整为SYN接收状态,准备进入ESTABLISHED旁边的SYN-SENT-CLOSED

长时间无法连接,发送超时,很自然地关闭了以下SYN-RCVD-FIN-WAIT-1

这里表示可以直接跳到FIN_WAIT_1状态等待关闭,而不是ESTABLISHED状态。服务没开启

最先等待,最先等待

表示直接4次握手改为3次。 也就是说,发送的数据全部接收完毕,可以直接从FIN-WAIT-1-CLOSING关闭

收到了FIN,但没有收到确认,所以变成http://www.Sina.com/closing-time-wait

接受ACK的确认后,关闭连接是TCP状态的连接图的各部分的分析即原因。

你可以多次看这张图,然后分成三个部分,一个部分一个分析。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。