简明理解三次握手和四次挥手

4人阅读 评论(0) 收藏 举报

注:三次握手和四次挥手本身并不复杂,但却可以从很多角度理解这两个过程,本文仅取一个视点解读,如有其它看法欢迎留言交流。


三次握手与四次挥手分别对应TCP连接建立过程与断开过程,先上TCP报文格式:


三次握手过程:


问题1: 为什么要三次握手?

答:三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送与接收,而三次握手最主要的目的就是双方确认自己与对方的发送与接收机能正常。

        第一次握手:Client什么都不能确认;Server确认了对方发送正常

        第二次握手:Client确认了:自己发送、接收正常,对方发送、接收正常;Server确认了:自己接收正常,对方发送正常

        第三次握手:Client确认了:自己发送、接收正常,对方发送、接收正常;Server确认了:自己发送、接收正常,对方发送接收正常

所以三次握手就能确认双发收发功能都正常,缺一不可。


问题2:为什么要发送特定的数据包,随便发不行吗?

答:三次握手的另外一个目的就是确认双方都支持TCP,告知对方用TCP传输。

        第一次握手:Server 猜测Client可能要建立TCP请求,但不确定,因为也可能是Client乱发了一个数据包给自己

        第二次握手:通过ack=J+1,Client知道Server是支持TCP的,且理解了自己要建立TCP连接的意图

        第三次握手:通过ack=K+1,Server知道Client是支持TCP的,且确实是要建立TCP连接


问题3:上图中的SYN和ACK是什么?

答:SYN是标志位,SYN=1表示请求连接;

        ACK其实就是ack后面加上的那个数,真正发送的时候不单独发ACK,只发ack,下面四次挥手的图同理



四次挥手:


问题1: 为什么要四次挥手?

答:根本原因是,一方发送FIN只表示自己发完了所有要发的数据,但还允许对方继续把没发完的数据发过来。

        举个例子:A和B打电话,通话即将结束后,A说“我没啥要说的了”,B回答“我知道了”,但是B可能还会有要说的话,A不能要求B跟着自己的节奏结束通话,于是B可能又巴拉巴拉说了一通,最后B说“我说完了”,A回答“知道了”,这样通话才算结束。


问题2:为什么双方要发送这样的数据包?

答:和握手的情况类似,只是为了让对方知晓自己理解了对方的意图。


查看评论

关于如何理解TCP的三次握手与四次挥手

简介TCP协议中的的三次挥手和四次挥手简单来说就是TCP连接建立的过程和断开的过程,三次握手第一次握手即client端发送一个带有SYN标志位的同步TCP报文段向server端,表示请求连接。同时,该...
  • MBuger
  • MBuger
  • 2017-07-02 13:41:49
  • 608

深入理解三次握手与四次挥手

TCP三次握手与四次挥手
  • when_less_is_more
  • when_less_is_more
  • 2017-03-13 21:39:11
  • 118

TCP三次握手与四次挥手最简洁易懂的解释

建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示: 建立连接的过程: TCP 连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换...
  • peter_teng
  • peter_teng
  • 2016-10-10 11:16:08
  • 2435

TCP三次握手与四次挥手过程

首先,客户端与服务器均处于未连接状态,并且是客户端主动向服务器请求建立连接: 客户端将报文段中的SYN=1,并选择一个seq=x,(即该请求报文的序号为x)  将这个报文发送到服务器。此时,客户端进...
  • shuaicenglou3032
  • shuaicenglou3032
  • 2017-03-28 13:57:39
  • 12460

怎么形象的理解三次握手与四次挥手

三次握手+四次挥手Get
  • qq_36783216
  • qq_36783216
  • 2017-09-22 15:19:11
  • 258

tcp三次握手四次挥手(及原因)详解

TCP(Transmission Control Protocol,传输控制协议)是 面向连接的协议,也就是说在收发数据之前,必须先和对方建立连接, 一个TCP连接必须要经过三次“对话”才能建立起来,...
  • xulu_258
  • xulu_258
  • 2016-04-13 21:02:55
  • 14449

三次握手 来源知乎用户Storm

一.概念 SYN(synchronous/同步)是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示...
  • qq_29050863
  • qq_29050863
  • 2017-08-19 15:40:46
  • 173

TCP协议中的三次握手和四次挥手(socket状态图扭转)

TCP协议中的三次握手和四次挥手
  • chenlycly
  • chenlycly
  • 2016-06-13 13:50:45
  • 2924

TCP三次握手和四次挥手全过程及为什么要三次握手解答

TCP三次握手和四次挥手的全过程      TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有8种表示: SYN(synchrono...
  • yanxiaolx
  • yanxiaolx
  • 2016-08-04 22:37:41
  • 9737

理论经典:TCP协议的3次握手与4次挥手过程详解

摘要: 本文将分别讲解经典的TCP协议建立连接(所谓的“3次握手”)和断开连接(所谓的“4次挥手”)的过程。 1、前言 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与...
  • omnispace
  • omnispace
  • 2016-09-29 14:42:52
  • 21690
    个人资料
    等级:
    访问量: 446
    积分: 190
    排名: 98万+
    文章分类
    文章存档