精华内容
下载资源
问答
  • 描述TCP三次握手,四次挥手的过程的图片
  • TCP的三次握手和四次挥手的过程?如下2幅图 如下2幅图

    TCP的三次握手和四次挥手的过程?

    如下2幅图

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 当TCP 协议完成了数据的发送之后,就会尝试去断开连接,此时它就会经历四次挥手的过程。 第一次挥手:是客户端向服务器发起的,这个时候客户端已经完成了数据发送,会发起一个包,去进行一个连接断开的请求,那么这...

    当TCP 协议完成了数据的发送之后,就会尝试去断开连接,此时它就会经历四次挥手的过程。

    第一次挥手:是客户端向服务器发起的,这个时候客户端已经完成了数据发送,会发起一个包,去进行一个连接断开的请求,那么这个报文中,它的一个FIN位被标记为1,我们把它叫做FIN包。

    第二次挥手:是服务器发给客户端的,这个报文是用来确认上一个客户端用来断开连接请求的一个报文 ,所以它是一个ACK报文。

    第三次挥手:同样是服务器发给客户端的,那么这个时候,服务器的数据也发送完毕的话,他也会向客户端发起一个断开连接的申请,那么在这个报文中,一个FIN 位也被标记为1,所以这也是一个FIN 包。

    第四次挥手:是客户端发起给服务器的是用来确认服务器的上一个断开连接的一个请求报文,所以这一次挥手也是一个ACK 报文。

    展开全文
  • 这就造成了四次挥手。 如果是三次挥手会有什么问题? 等于说服务端将ACK和FIN发送合并为一次挥手,这个时候长时间延迟可能会导致客户端误以为FIN没有到达客户端,从而让客户端不断重发FIN。 不断进行数据包...

    因为服务端在接收到FIN, 往往不会立即返回FIN, 必须等到服务端所有的报文都发送完毕了,才能发FIN。因此先发一个ACK表示已经收到客户端的FIN,延迟一段时间才发FIN。这就造成了四次挥手。

    如果是三次挥手会有什么问题?

    等于说服务端将ACK和FIN的发送合并为一次挥手,这个时候长时间的延迟可能会导致客户端误以为FIN没有到达客户端,从而让客户端不断的重发FIN。 不断的进行数据包重发

    展开全文
  • ****本篇文章来彻彻底底的分析一下TCP三次握手与四次挥手的过程及原因。。。→_→****

    *本篇文章来彻彻底底的分析一下TCP三次握手与四次挥手的过程及原因。。。→_→*

    1. TCP的连接建立——三次握手

      • 三次握手

      • 最初两端的TCP进程都处于CLOSED(关闭)状态A主动打开连接,B被动打开连接

      • B的TCP**服务器进程创建传输控制块TCB(Transmission Control Block),然后处于LISTEN(收听)状态,准备接受客户端的连接请求**

      • A的TCP**客户端进程也创建传输控制块TCB,向B发出连接请求报文段,此报文段中同步位SYN=1,且选择一个初始序号seq=x**。TCP规定,SYN=1的报文段不能携带数据,但要消耗一个序号。此时A进入SYN-SENT(同步已发送)状态

      • B收到连接请求报文后,如果同意建立连接,则向A发送确认报文段,此报文段中SYN=1,确认位ACK=1,确认号为ack=x+1,同时选择一个初始序号seq=y。此报文段也不能携带数据,但同样要消耗一个序号。此时B进入SYN-RCVD(同步收到)状态

      • A收到B的确认报文段后,还要向B发送确认报文段。此报文段中ACK=1,ack=y+1,seq=x+1。TCP规定ACK报文段可以携带数据,但如果不携带数据则不消耗序号,所以下一个数据报文段的序号仍是seq=x+1。此时A进入ESTABLISHED(以建立连接)状态

      • 当B收到A的确认后,也进入ESTABLISHED(以建立连接)状态

    2. TCP释放连接——四次挥手

      • 四次挥手

      • A向B发送连接释放报文段并停止发送数据。此报文段中终止控制位FIN=1,seq=u(等于前面已传送过的数据的最后一个字节加1)。此时A进入FIN-WAIT-1(终止等待1)状态。TCP规定,FIN报文段即使不携带数据也要消耗一个序号

      • B收到连接释放报文段后就发出确认报文段。此报文段中确认号ack=u+1,seq=v(等于前面已传送过的数据的最后一个字节加1)。此时B进入CLOSE-WAIT(关闭等待)状态。TCP服务器进程通知应用进程,A到B的连接释放了,这时的TCP连接处于半关闭(half-close)状态,但B到A的连接并未关闭,此时B发数据,A仍要接收

      • A收到B的确认后,就进入FIN-WAIT2(终止等待2)状态,等待B发出的连接释放报文段

      • 如果B已没有要发送的数据,就发送连接释放报文段。此报文段中FIN=1,seq=w(在半关闭状态中B可能发送了数据),ack=u+1。此时B进入LAST-ACK(最后确认)状态

      • A收到了B的连接释放报文段后就发出确认报文段。此报文段中ACK=1,ack=w+1,seq=u+1。此时A进入TIME-WAIT(时间等待)状态

      • 此时TCP连接还没有释放掉,必须经过时间等待计时器(TIME-WAIT timer)设置的2倍的最长报文段寿命MSL(Maximum Segment Lifetime)后,A才进入到CLOSED状态。MSL建议设为2分钟当A撤销相应的传输控制块TCB后,就结束了这次TCP连接

      • B收到A的确认报文,就进入CLOSEWD状态。B撤销相应的传输控制块TCB后,就结束了这次的TCP连接

    3. 为什么要设置TIME-WAIT?

      • 原因一:保证A发送的最后一个ACK报文能够到达B。因为这个ACK报文有可能丢失,B收不到这个对FIN+ACK报文的确认,所以B就会超时重传这个FIN+ACK报文段,这样A就能在2MSL时间内收到重传的FIN+ACK,接着A再重传一次确认报文段,重新启动时间等待计时器

      • 原因二:A在发送完最后一个ACK报文段后,经过2MSL后,就可以使本连接持续的时间内所产生的所有报文段都从网络中消失

    4. 为什么是三次握手?

      • 为了防止已失效的连接请求报文段突然有送到了B,因而产生错误

      • 假设两次握手时,A发出的第一个请求连接报文段在某一网络节点长时间滞留,以致延误到连接释放后才到达B。B收到失效的连接请求报文段后,认为是A又发出一次新的连接请求。于是向A发送确认报文段,同意建立连接,此时在假定两次握手的前提下,连接建立成功。这样会导致B的资源白白浪费

      • 假设两次握手时,A发出一个请求报文段,但发送过后A就因为问题而导致下线。之后B收到了A发来的请求连接报文段,给A发送确认报文段,同意建立连接,此时在假定两次握手的前提下,连接建立成功。这样会导致B的资源白白浪费

    5. 为什么是四次挥手?

      • TCP协议是全双工通信,这意味着客户端和服务器端都可以向彼此发送数据,所以关闭连接是双方都需要确认的共同行为

      • 假设是三次挥手时,首先释放了A到B方向的连接,此时TCP连接处于半关闭(Half-Close)状态,这时A不能向B发送数据,而B还是可以向A发送数据。如果此时A收到了B的确认报文段后,就立即发送一个确认报文段,这会导致B向A还在发送数据时连接就被关闭。这样会导致A没有完整收到B所发的报文段

    6. 总结

      • TCP的有限状态机

      • 粗实线箭头表示客户端的正常变迁

      • 粗虚线箭头表示服务器的正常变迁

      • 细线箭头表示异常变迁

    展开全文
  • TCP三次握手,四次挥手这是一个非常重要知识点,我也来总结一下。 关于面试最经常问问题无非就是: 握手为什么是3次? 2次可以吗? 为什么不是4次呢? 你能不能详细介绍一下TCP三次握手详细过程? 能不能说...
  •   简述TCP三次握手和四次挥手的过程和理解   在讲解之前先来熟悉一下TCP报文头部   源端口、目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的, 而一个计算机端口某个时刻只能被一个进程占用,...
  • 简述TCP协议的三次握手与四次挥手的过程及原理  今天,我们来分享一下TCP协议的六个标志位和三次握手与四次挥手的过程及原理。  先介绍一下TCP中的六个控制位,  SYN表示建立连接;  FIN表示关闭连接;  ...
  • TCP/IP 的三次握手和四次挥手 1 三次握手的过程 1)第一次握手 A的TCP客户进程也是首先创建传输控制块TCB,然后向B发出连接请求报文段,(首部的同部位SYN=1,初始序号seq=x),(SYN=1的报文段不能携带数据)但要...
  • 第一握手:客户端发送一个TCPSYN标志位置1包指明客户打算连接服务器端口,以及初始序号X,保存在包头序列号(Sequence Number)字段里。 第二握手:服务器发回确认包(ACK)应答。即SYN标志位和ACK标志位均...
  • 三次握手,四次挥手 三次握手的过程和原因 通俗的讲,就是通信的双方在发送数据之前,必须要建立一个连接,就是将客户端和服务端的内存里面保存一份关于对方的端口号和ip地址之类的一些数据(客户端和服务端,每一个...
  • 握手:为TCP建立连接的过程 第一握手:客户端向服务端发送同步序列号SYN,请求建立连接,这时客户端的状态为SYN_SENT,假设此处SYN为x。 第二握手:服务端接收到客户端的SYN请求,要做的是确认客户端发送...
  • TCP协议三次握手和四次挥手的过程

    千次阅读 2019-04-24 18:17:02
    1、名词解释 1) TCP(Transmission Control Protocol...采用四次挥手来进行协议终止。 2) 位码 TCP标志位,有以下6种标示: 标志位 英文 含义 SYN synchronouse 建立连接 ACK acknowledgement 确认标志...
  • UDP在交付过程中尽最大努力交付,不保证报文能够可靠到达,由于采用了这种不可靠交付方式,使得它在传输过程中省去了很多开销,因此它传输速度比较快。UDP经常应用在一些对网络通信质量要求不高,但是网络通讯...
  • 学习网络的过程中TCP连接是非常总要的。 TCP的特点是面向连接的、可靠的字节流服务。客户端需要和服务器之间建立一个TCP连接,之后才能传输数据。数据到达之前对方就一直在等待,除非对方直接关闭连接,数据有序,...
  • 在TCP/IP协议中,TCP 协议提供可靠连接服务,连接是通过三握手进行初始化。三握手目的是同步连接双方序列号和确认号 并交换 TCP窗口大小信息。 1.第一握手:建立连接。客户端发送连接请求报文段,将...
  • 主机A 主机B 第一次 主机A fin=1,ack=1(我要分手) 第二次 主机B ack=1(我知道了) 第三次 主机B fin=1,ack=1(我也要分手) 第四次 主机A ack=1(我也知道了) ...
  •  TCP连接建立需要经过三次握手,连接关闭需要经过四次挥手。读TCP/IP协议不是很好理解,通过工具手动抓包分析会对协议有更深刻理解。因为工作中经常用到wireshark,所以就通过wireshark来分析,记录自己...
  • 两张动图-彻底明白TCP三次握手与四次挥手 TCP为啥要3次握手和4次挥手?握两次手不行吗?
  • (第三次:客户端回复的时候确认报文:ACK =1,ack =y+1,自己的序列号:seq = x+1)最后双方都进入ESTABLISHED状态,就可以开始进行通信了 以上就是握手的总结 二、TCP的四次挥手的总结: 先说下自己对四次挥手的...
  • TCP是提供面向连接、可靠通信传输,面向连接意味着使用TCP两个应用(一般是客户端和服务端)在数据通信开始之前必须建立一个TCP连接。...在socket编程中,这一过程是由客户端执行connect()来触发。 ...
  • TCP连接是全双工,所以连接拆除需要单独将两个通道分别拆除,而四次挥手所做事情就是拆除两条通道和释放资源。 TCP 提供了连接一端结束他发送后,还能接收来自另一端数据能力,也就是所谓半关闭。 ...
  • 三次握手和四次挥手的过程及原因

    千次阅读 2019-07-29 10:16:52
    握手: 第一握手:client将标志位SYN置为1,随机产生一个值为seq=J,并将该数据包发送给server,client进入SYN_SENT状态,等待server确认。 第二握手:server收到数据包后由标志位SYN=1知道client请求建立...
  • Http3次握手: 第一次握手:客户端发送一个带SYNTCP报文到服务器,表示客户端想要和服务器端建立连接。 第二次握手:服务器端接收到客户端请求,返回... 那为什么需要三次而不是两次或者四次呢?看图...
  • 握手:  第一握手:客户机A发送标识位SYN=1,随机生成... 第二握手:服务器B收到请求并确认联机信息后,向客户机A发送标识位SYN=1,ACK=1和随机产生序列号seq=y,确认码ack number =x+1(客户机A发送se...
  • 双方都必须为该连接分配必要内核资源,以管理连接状态和连接上数据传输。TCP连接时全双工,即双方数据度邪恶可以通过一个连接进行。完成数据交换后,通信双方都必须断开连接以释放系统资源。 发送端执行...
  • 一、三次握手的过程 二、四次握手过程 三、事务具有四个特性(ACID): 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持续性(Durability)
  • 1.TCP介绍: TCP(传输控制协议),位于OSI模型中传输层,与它经常一块被提及协议为UDP。 2.TCP首部格式: 注解: (1)源/目的端口号:表示数据是从哪个进程来到哪个进程去; (2)序号:([0,2^32...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,134
精华内容 1,653
关键字:

四次挥手的过程