tcp三次握手示意图(tcp三次握手示意图图)

      最后更新:2022-11-12 14:10:59 手机定位技术交流文章

      TCP状态转换图、TCP连接3次握手4次挥手

      两将军问题:红蓝两军作战,蓝军战斗力强大,红1军或红2军与其单独作战都打不过蓝军,所以需要红一军与红二军联合对蓝军发起进攻,红军1首先通知红军2明早10点发起总攻,如图1-1,红军2接到消息需要回复“好的红军1,我已经收到你得消息,确认明早10点发动总攻”。因为消息传递路线必须经过蓝军营地,所以双方传递消息的信使很有可能被蓝军俘获。为了确保消息的可靠性,红1、红2双方在发出一个消息之后都想得到对方的消息回执。但是这会导致消息无线循环下去,如图1-2。那么如何解决这个可靠性的问题呢,其实没有办法解决,只要保证双方各自都有一次成功的发送、回执就可以了。两将军问题也存在网络世界里,客户端、服务器建立连接不可能无限的确认下去,只要保证客户端和服务器分别对自己的收、发能力做一次确认即可,如下图。 客户端和服务器分别对自己的收、发能力做一次确认至少需要3次握手。3次握手的具体过程、状态如下:(1)首先客户端和服务器都处于CLOSED状态。(2)服务器处于LISTEN状态,具体为服务器调用Socket、bind、listen函数,进入阻塞状态。(3)客户端发送SYN(同步序列编号),发送完毕客户端进入SYN_SENT状态。(4)服务端收到SYN,发送SYN+ASK,发送完毕进入SYN_RCVD状态。(5)客户端收到服务端发来的SYN+ASK,发送服务端等待的ASK,发送完毕客户端进入ESTABLISHED状态,准备数据传输,到此客户端已经满足了对自己收发能力的一次验证。(6)服务端收到客户端发来的ASK,与客户端一样,到此服务端也已经满足了对自己收发能力的一次验证,所以也进入ESTABLISHED状态,准备数据传输。(7)准备开始传输数据TCP断开连接有两种情况或者说是场景,1 客户端先断开连接,当然也可能是服务器先断开连接,总之是一前一后。 2 双方同时发起断开连接操作。下面分别介绍两种场景:(1)客户端先发起断开连接操作,客户端向服务端发送FIN,发送完毕客户端进入FIN_WAIT_1状态。(2)服务端收到客户端发来的FIN,服务端发送ACK,发送完毕进入CLOSED_WAIT状态。(3)客户端收到服务端的ACK回复,客户端进入FIN_WAIT_2状态,如果后面服务端没有回应客户端,在TCP协议层面来讲,客户端将永远停留在这个状态了,不过还好,操作系统着这块做了处理,有一个超时时间。(4)此时TCP连接进入半关闭状态,即客户端主,服务端从的这条线路已经关闭,不过服务端主,客户端从的这条线路还处于打开状态。(5)服务端向客户端发送FIN,发送完毕,服务端进入LAST_ASK状态。(6)客户端收到服务端的FIN后回复服务端ACK,回复完毕进入TIME_WAIT状态,为什么要进入这个状态?因为第6步是客户端的最后一条回复,服务端很有可能收不到,收不到服务端就会重发,所以客户端还要等待一会。(7)服务端收到客户端的ACK回复之后,不再做响应,回到初始的CLOSED状态,在连接池中等待下一次的复用。(8)客户端保持TIME_WAIT状态,超时之后同样进入CLOSED状态。场景二(1)客户端、服务器双方同时发送FIN,双方同时进入FIN_WAIT_1状态(2)双方都接到了对方的ACK,此时双方都会进入CLOSING状态。(3)双方同时进入TIME_WAIT状态,为什么要进入这个状态而不是直接进入CLOSED状态呢?假设客户端和服务端本次是第X次建立连接、关闭连接。如果立即关闭,随后建立第X+1次连接,建立连接成功之后,第X次的丢包的数据有可能绕了一大圈又回来了,那就会出现数据错误,为了避免这种情况所以要进入TIME_WAIT状态,以保证旧连接的数据不会再回来。(4)TIME_WAIT超时之后,双双进入CLOSED状态。有了上面对TCP连接3次握手4次挥手的介绍,再来理解TCP的状态图就不困难了,无非就是对TCP连接3次握手4次挥手过程的打包概述而已。
      TCP状态转换图、TCP连接3次握手4次挥手

      tcp三次握手是什么

      如图所示,tcp三次握手指当客户端向服务端请求数据时,才会发生tcp三手握手的动作。如下:1、客户端请求服务器表示第一次握手;2、授予连接表示第二次握手;3、客户端确认连接表示第三次握手。
      tcp三次握手是什么

      计算机三级网络技术关于Tcp三次握手的问题。标志着握手成功的到底是哪一行,如下图,图一答案给的是8

      个人感觉是7,第三次握手就发送了握手完成的标号
      呃呃
      计算机三级网络技术关于Tcp三次握手的问题。标志着握手成功的到底是哪一行,如下图,图一答案给的是8

      谁能告诉我tcp三次握手的过程?

      一、TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念:未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(syn=j)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。这些条目所标识的连接在服务器处于Syn_RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态。Backlog参数:表示未连接队列的最大容纳数目。SYN-ACK重传次数服务器发送完SYN-ACK包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户确认包,进行第二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信息从半连接队列中删除。注意,每次重传等待的时间不一定相同。 半连接存活时间:是指半连接队列的条目存活的最长时间,也即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。有时我们也称半连接存活时间为Timeout时间、SYN_RECV存活时间。
      第一次握手,建立连接,客户端发送SYN包到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手,服务器收到SYN,同时自己也发送一个SYN包和一个ACK包来确认客户端的SYN,并进入SYN_RECV; 第三次握手,客户端收到服务器发来的SYN+ACK后,回复服务器端一个ACK确认,发送完毕后,双方进入ESTABLISHED状态。 三次握手成功后,开始传输数据。 三次握手更详细的解释和过程,到传智播客社区去找下,运维板块当中技术大牛整理的。我闺蜜在那学的运维现在16薪一个月12k左右,我就在这个社区自学呢。
      谁能告诉我tcp三次握手的过程?

      tcp的三次握手和举例

      TCP三次握手 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送)FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledge number(确认号码)第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;第二次握手:主机B收到请求后要确认联机信息,向A发送acknumber=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送acknumber=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。 完成三次握手,主机A与主机B开始传送数据。
      在一个月黑风高的夜晚,快要到如家酒店门口时,对面刚好走过来一位小姐姐 ,此时你向小姐姐打招呼(syn),然后对方点头并且微笑向你招手(ack+syn),但是小姐姐有点害羞以为你在和别人打招呼,又向你做出了回应,于是乎你大声喊到美女就是我(ack),然后你们就过上一家三口的日子!
      TCP需要三次握手才能建立连接,那么为什么需要三次握手呢?
      tcp的三次握手和举例

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/44779.html

          热门文章

          文章分类