首页 > 其他分享 >面试官, TCP连接状态中的TIME_WAIT表示什么

面试官, TCP连接状态中的TIME_WAIT表示什么

时间:2022-10-23 11:56:17浏览次数:81  
标签:面试官 请求 ACK TCP client 断开 TIME FIN WAIT

答案其实就藏在下面这张图里,接下来我们就一步一步看这张图,图看完了,答案也就有了。
image

状态名词解释

整个图client和server的状态都是从ClOSED开始流转

LISTEN: 表示server在等待一个远程的tcp请求
SYN-SENT: 表示client在发布一个连接请求之后等待server回复对应的连接请求
SYN-RECEIVED: 表示在server和client都发出一次连接请求的之后,在等待一次最后的确认(ACK)
ESTABLISHED: 表示连接已经建立,数据可以被发送和接收
FIN-WAIT-1: 表示在等待另一端的断开请求(FIN),或者另一端收到断开请求并回复的确认请求(ACK)
FIN-WAIT-2: 表示在等待另一端的断开请求(FIN)
CLOSE-WAIT: 表示等待本端的断开请求,确保本端也没有数据发送了.
CLOSING: 表示已经收到另一端的断开请求(FIN),在等待另一端确认收到自己的断开请求(ACK)

LAST-ACK: 表示server在等待client的确认信号(ACK),以确认client收到了自己发出的FIN和ACK

TIME-WAIT: 表示等足够的时间(2MSL)来确认另一端已经收到了自己发出的请求断开的确认消息(ACK)。
CLOSED: 表示连接已经完全断开

流程分析

粗实线表示 client 正常的状态流转,粗虚线表示 server 端正常的状态流转。我们先看一下client的状态流转:

CLOSED => SYN_SENT => ESTABLISHED => FIN_WAIT_1 => FIN_WAIT_2 => TIME_WAIT => CLOSED

CLOSED => LISTEN => SYN_RCVD => ESTABLISHED => CLOSE_WAIT => LAST_ACK => CLOSED

参考文献:
https://www.zhihu.com/question/67013338
https://users.cs.northwestern.edu/~agupta/cs340/project2/TCPIP_State_Transition_Diagram.pdf

标签:面试官,请求,ACK,TCP,client,断开,TIME,FIN,WAIT
From: https://www.cnblogs.com/imgss/p/14809023.html

相关文章

  • 传输层之UDP与TCP的首部
    从通信信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能的最底层。传输层位于应用层和数据链路层之间,主要有两个协议,用......
  • TCP协议详解一
    TCP协议的报文格式传输层TCP协议提供了一种面向连接的、可靠的字节流服务,其数据帧格式,大致如下图所示: 图:传输层TCP协议的数据帧格式 一个传输层TCP协议的数据帧,大致......
  • 如何添加matplotlib中的字体(以Times New Roman字体为例)
    参考链接:(14条消息)python绘图之TimesNewRoman字体以及Helvetica字体_燕策西的博客-CSDN博客_python画图字体如何设置新罗马 下面以如何添加TimesNewRoman字体为例......
  • container runtime network not ready: NetworkReady=false reason:NetworkPlugin
    containerruntimenetworknotready:NetworkReady=falsereason:NetworkPlugin,由于没有插件cni解决:修改kubelet.conf配置文件去掉相关配置参数–network-plugin=cni,重......
  • Seq2Path: Generating Sentiment Tuples as Paths of a Tree
    Seq2Path:GeneratingSentimentTuplesasPathsofaTreeSeq2Path:生成情感元组作为树的路径AuthorInformation:YueMao,YiShen,JingchaoYang,XiaoyingZhu,Lon......
  • mysql 中datetime类型相减结果是多少秒
    1.mysql中datetime类型相减  结果是多少秒  2.java中java.util.date类型相减是毫秒  ......
  • JodeTime的笔记
    Jode-TimeJode-Time介绍任何企业应用程序都需要处理时间问题。应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个时间点之间的路径。使用JDK完......
  • Centos 8.x 安装.net 6 sdk/runtime
     原文链接:Centos8.x安装.net6sdk/runtime-走看看(zoukankan.com) Centos8.x安装.net6sdk/runtime .net6已经正式发布。而本来习惯用centos系统,在Cen......
  • javascript 的setTimeOut 中this指向及外部参数传参
    //外部的参数传参数,放到第三项及以后就可以myArray=['zero','one','two'];myArray.myMethod=function(sProperty){consol......
  • java---LocalDateTime
    packagejavasm.demo02;importjava.time.*;importjava.time.temporal.ChronoUnit;publicclassLocalDaTime{publicstaticvoidmain(String[]args){Loc......