精华内容
下载资源
问答
  • 三次握手,四次挥手,为什么是三次握手四次挥手 四次挥手 TCP的连接的拆除需要发送四个包,因此称为四次挥手。客户端或服务器均可主动发起挥手动作。 由于TCP连接时全双工的,因此每个方向都必须单独进行关闭...

     

     

    四次挥手

    TCP的连接的拆除需要发送四个包,因此称为四次挥手。客户端或服务器均可主动发起挥手动作。

    由于TCP连接时全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成他的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

     

    这是因为服务端的LISTEN状态下的socket当收到SYN报文连接的请求后,它可以把ACK和SYN放在一个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,他仅仅表示对方没有数据发送给你了,但未必你的所有数据都全部发送给对方了,所以你可以不马上关闭socket,即你可能还会发送一些数据给对方之后,在发送FIN报文给对方来表示你同意现在可以关闭连接了,所以这里的ACK和FIN报文多情况下都是分开发送的。

     

     

    展开全文
  • 三次握手 四次挥手

    2020-12-26 16:24:38
    参考:三次握手四次挥手 盗图如下:
    展开全文
  • 三次握手四次挥手

    2018-12-04 08:54:57
    请简述一下三次握手四次挥手? 客户端发送带有SYN标志,以及随机生成的seq报文到服务器 服务器收到报文后返回一个带有SYN标志以及一个答复ack给客户端 客户端再次发送带有ack标志的报文给服务器 三次握手结束,...

    请简述一下三次握手四次挥手?
    在这里插入图片描述

    • 客户端发送带有SYN标志,以及随机生成的seq报文到服务器

    • 服务器收到报文后返回一个带有SYN标志以及一个答复ack给客户端

    • 客户端再次发送带有ack标志的报文给服务器
      三次握手结束,此时客户端与服务器可以开始通话
      因为tcp连接是双向的,因此必须保持双向之间都能收到并且确认就像如下
      A说:b我想给你通话,你收到了么
      B说:我收到了,你准备好了么
      A说:准备好了咱们准备通话吧
      四次挥手过程:
      上面已经说过tcp连接是双向的,因此每个方向都必须单独的关闭,

    • 客户端发起带有FIN标志的报文给服务器请求关闭通信

    • 服务器收到之后回复ack确认客户端的关闭请求

    • 服务器向客户端发送带有FIN标志的报文请求关闭通信

    • 客户端向刘服务器发送ack确认服务器的关闭请求!
      2MSL
      在四次挥手最后一次的规程中主动发起FIN标志的一方要等待的这段时间我们 称之为2MSL(即最大报文生存时间)
      他可以让四次挥手关闭流程更加可靠
      防止丢包对后续的连接产生影响
      为什么主动发起FIN的一方在TIME_WAIT状态要等待2MSL?

      • 为了保证主动发起FIN标志一方最后发送的额ACK报文能后到达服务器.因为这个报文可能丢失.造成使处于LAST_ACK状态的额服务器接受不到这个报文.当超时的时候服务器会重新发送FIN以及ack报文给客户端.此时在2msl时间的客户端就会接收到这个报文然后重新发送ack确认,重启计时器,最好的状态是客户端和服务器都能进入close状态.如果客户端不等待2msl而是发送完最后 一个ack之后立马关闭.那么就无法接收到服务器重传的fin,ack报文.服务器也就接收不到ack确认,无法进入close状态
      • 、防止已失效的连接请求报文段出现在下次连接中。客户端在发送完最后一个ACK确认报文段
        后,再经过时间2MSL,就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。这样
        就可以使下一个新的连接中不会出现这种旧的连接请求报文段
    展开全文
  • 四次挥手4.参考文章 1.前言 网络通信的实体是不同主机之间进程的通信,也就是端到端通信,其过程借助于TCP或者UDP协议,基于端口。 倘若利用TCP协议,则传输前有三次握手,传输后有三次挥手,是一个可靠传输。 倘若...

    1.前言

    网络通信的实体是不同主机之间进程的通信,也就是端到端通信,其过程借助于TCP或者UDP协议,基于端口。
    倘若利用TCP协议,则传输前有三次握手,传输后有三次挥手,是一个可靠传输。
    倘若利用UDP协议,传输前不需要建立连接,对方收到后也不需要发送确认,是一个不可靠的传输,但是胜在消耗资源少,速度快。

    2.三次握手

    首先我们需要知道为什么要三次握手而不是两次。原因是为了防止之前传输过的请求连接的数据包延时到达服务器后,服务器再次创建新的连接而导致的错误。
    如果我们只使用二次握手,假设有这么一种情况,我们先发了一个syn包,这个包因为某种原因被阻塞到网络中,这时候我们又发送了一个syn包,这次收到了对方的ack+syn包,tcp连接已经建立。过了一会儿之前阻塞的syn包发送到了对方主机,对方主机又返回了一个ack+syn包,这时候又建立了一个tcp连接。但我们是只想建立一个tcp连接的,这时候出现了两个,浪费了资源。为了解决这种情况,因此就出现了tcp三次握手。
    假设我们使用tcp三次握手,就可以避免这个情况,因为即使之前被阻塞的包被发送到了服务端,服务端返回了ack+syn包,但只要我们不发送最后的第三次握手也就是ack包,就不会建立连接,也就不会有资源的浪费,这就是tcp连接为什么是三次的原因。
    在这里插入图片描述

    3.四次挥手

    在这里插入图片描述

    通过四次挥手来结束tcp连接,也是有其原因的,我的理解是这个样子的:

    1. 第一次客户端发送fin包,告诉服务端,我不会再给你传送数据了并且我想要断开连接。
    2. 第二次服务端发送ack包,告诉客户端,这是我这边剩余要发送的数据,等发送完在关。
    3. 第三次服务端发送fin+ack包,告诉客户端,我这边发送结束,可以中断连接了。
    4. 第四次客户端发送ack包,告诉服务端,好的。

    4.参考文章

    两张动图-彻底明白TCP的三次握手与四次挥手

    展开全文
  • 三次握手 四次挥手
  • 现代大部分网络技术都是基于TCP协议的,而TCP的网络连接和断开,使用的是一种叫做三次握手四次挥手的方式(协议)进行的。下面,我们用情侣从表白到分手的过程来类比说明,什么是TCP的三次握手和四次挥手。建立连接之...
  • HTTP 三次握手,四次挥手(为什么是三次握手四次挥手) 问题带入 --- 个人阅读别人的笔记自己的理解 -- 具体底层有待以后提升后补充完成 1.HTTP请求 为什么是三次握手四次挥手? 2.为什么是三次握手不是两次握手?...
  • HTTP三次握手四次挥手

    2021-04-01 21:23:54
    HTTP三次握手四次挥手
  • TCP三次握手 四次挥手

    千次阅读 多人点赞 2017-08-19 16:52:25
    TCP三次握手 四次挥手预备知识TCP的标志位 SYN(请求建立连接) ACK(确认) PSH(传送) FIN(结束) RST(重置) URG(紧急) TCP是面向连接的字节流协议,是全双工的。三次握手例图: 第一次握手:客户端发送一个连接请求...
  • TCP三次握手四次挥手

    2020-12-29 20:55:43
    文章目录TCP连接的建立和释放(三次握手和四次挥手)TCP序列号确认号3个重点标志位ACKSYNFIN三次握手第一次握手第二次握手第三次握手四次挥手第一次挥手第二次挥手第三次挥手第四次挥手 TCP/IP协议定义了一个在因特网...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,391
精华内容 4,956
关键字:

三次握手四次挥手