tcp为什么不能二次握手(tcp为什么不能用于无线)

      最后更新:2023-03-21 19:09:39 手机定位技术交流文章

      tcp 为什么要三次握手?

      tcp 为什么要三次握手? 我们假设A和B是通信的双方。我理解的握手实际上就是通信,发一次信息就是进行一次握手。 第一次握手:A给B打电话说,你可以听到我说话吗?第二次握手:B收到了A的信息,然后对A说:我可以听得到你说话啊,你能听得到我说话吗?第三次握手:A收到了B的信息,然后说可以的,我要给你发信息啦!在三次握手之后,A和B都能确定这么一件事:我说的话,你能听到;你说的话,我也能听到。这样,就可以开始正常通信了。 注意:HTTP是基于TCP协议的,所以每次都是客户端发送请求,服务器应答,但是TCP还可以给其他应用层提供服务,即可能A、B在建立链接之后,谁都可能先开始通信。如果采用两次握手,那么只要服务器发出确认数据包就会建立连接,但由于客户端此时并未响应服务器端的请求,那此时服务器端就会一直在等待客户端,这样服务器端就白白浪费了一定的资源。若采用三次握手,服务器端没有收到来自客户端的再此确认,则就会知道客户端并没有要求建立请求,就不会浪费服务器的资源。
      三次握手的最主要目的是保证连接是双工的,可靠更多的是通过重传机制来保证的。
      tcp 为什么要三次握手?

      TCP连接的为什么不能用二次握手

      这也是个问题但是这肯定比二次握手好些 A认为连接成功B发送的确认丢失了 不是还有个RST标志吗这个会复位连接的
      TCP连接的为什么不能用二次握手

      TCP建立连接的过程为什么不是两次握手

      1.采用两次握手,那么若Client向Server发起的包A1如果在传输链路上遇到的故障,导致传输到Server的时间相当滞后,在这个时间段由于Client没有收到Server的对于包A1的确认,那么就会重传一个包A2,假设服务器正常收到了A2的包,然后返回确认B2包。由于没有第三次握手,这个时候Client和Server已经建立连接了。再假设A1包随后在链路中传到了Server,这个时候Server又会返回B1包确认,但是由于Client已经清除了A1包,所以Client会丢弃掉这个确认包,但是Server会保持这个相当于“僵尸”的连接。 所以采用两次握手,有可能会浪费Server的网络资源。形象解释:1,客户发一个暧昧的消息,给服务员2,服务员收到,看了消息,很高兴,马上回信(此时客户还不知道服务收到)3,客户特别高兴收到服务员关系确认的消息,(但是服务员还不知道客户收到了,如果没收到得重发,理论上来说,直到海枯石烂=-=)4,服务员终于收到了客户关系确认的消息,悬着的心终于放下了5,于是客户跟服务员真正建立了 一条可靠的通道,毕竟两人都知道那是行得通的。。。所以至少得三次才能确认关系不用三次的话,server不能确定client是否收到自己的消息如果没有收到,可能client根本没收到,或者client响应了,但server没收到如果你用过对讲机你就会明白:C ->S: 你能听到吗?S->C: 听到。你能听到我吗? C->S:听到。
      为什么不是两次 我们先来将三次握手这个过程捋一遍。(S-服务端,C-客户端)第一次握手后,S可以确认自己收报文与C发报文的功能都正常,而C呢,它什么都不能确认。第二次握手后,C可以确认自己的收发报文与S的收发报文功能都正常,也就是认为连接已建立。那么第三次呢,S也可以确认双方能够正常通信。假想一下,如果我们去掉了第三次呢?因为我们不进行第三次握手,所以在S对C的请求进行回应(第二次握手)后,就会理所当然的认为连接已建立,而如果C并没有收到S的回应呢?此时,C仍认为连接未建立,S会对已建立的连接保存必要的资源,如果大量的这种情况,S会崩溃。 因此第三次握手是必要的。
      TCP建立连接的过程为什么不是两次握手

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

      两次太少,如果第一次握手时丢包了,那么如何判断网络是否通畅?因为两次丢包的意思是,对方确认并回复,如果没有收到回复,己方如何认为,他丢包了还是我丢包了?那就重传吧,如果并没有对方这个人,那么可能无限重传下去,浪费网络资源。三次的话,因为对方也需要收到回复,那么如果是己方丢第一个包,那么接下来几次重传没有收到任何回复,那么认为网络不好停止就可以了,如果网络通畅,对方一定会收到其中某一个请求,那么进行回应,如果此时不对其进行回应,也就是只握手两次,目标主机无法得知此包是否到达,也就不知道是否要进行重传,如果此包丢了,那就不会去重传,己方只能认为没有目标主机,连接失败。那如果是三次,在第二次握手时丢包了,对方没有收到确认,就会重传,重传之后,己方一定会收到某一个包。这样双方都知道对方的确实存在,对于第三次的握手只需要在后续数据传输中捎带确认就可以了。所以第四次握手是不需要的,有了第四次那就有第五次第六次.......,这样是没有意义的,只需要确认对方确实存在就可以了,后续数据传输就能捎带确认了
      TCP 为什么是三次握手,而不是两次或四次

      TCP建立连接的过程为什么不是两次握手

      为什么不是两次 我们先来将三次握手这个过程捋一遍。(S-服务端,C-客户端)第一次握手后,S可以确认自己收报文与C发报文的功能都正常,而C呢,它什么都不能确认。第二次握手后,C可以确认自己的收发报文与S的收发报文功能都正常,也就是认为连接已建立。那么第三次呢,S也可以确认双方能够正常通信。假想一下,如果我们去掉了第三次呢?因为我们不进行第三次握手,所以在S对C的请求进行回应(第二次握手)后,就会理所当然的认为连接已建立,而如果C并没有收到S的回应呢?此时,C仍认为连接未建立,S会对已建立的连接保存必要的资源,如果大量的这种情况,S会崩溃。 因此第三次握手是必要的。
      TCP建立连接的过程为什么不是两次握手

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

          热门文章

          文章分类