TCP/IP的三次握手与四次挥手详解

转载 2016年08月30日 11:32:36

TCP((Transmission Control Protocol)传输控制协议,是一个面向连接的协议。在运用此协议进行数据传输前都会进行连接的建立工作(三次握手);当数据传输完毕,连接的双方都会通知对方要释放此连接(四次挥手)。

  • 认识TCP标志位

    tcp标志位有6种标示:

    SYN(synchronous建立联机)

    ACK(acknowledgement 确认)

    PSH(push传送)

    FIN(finish结束)

    RST(reset重置)

    URG(urgent紧急)

  • 图解TCP与UDP的三次握手与四次挥手过程

    150141960.png


三次握手过程:


第一次握手:host1发送一个TCP标志位SYN=1、ACK=0的数据包给host2,并随机会产生一Sequence number=3233.当host2接收到这个数据后,host2由SYN=1可知客户端是想要建立连接;

第二次握手:host2要对客户端的联机请求进行确认,向host1发送应答号ACK=1SYN=1

确认号Acknowledge number=3234,此值是host1的序列号加1,还会产生一个随机的序列号Sequence number=36457,这样就告诉host1可以进行连接;

第三次握手:host1收到数据后检查Acknowledge number是否是3233+1的值,以及ACK的值是否为1,若为1,host1会发送ACK=1确认号码Acknowledge number=36457,告诉host2,你的请求连接被确认,连接可以建立。


四次挥手过程:


第一次挥手:当传输的数据到达尾部时,host1向host2发送FIN=1标志位;可理解成,host1向host2说,我这边的数据传送完成了,我准备断开了连接;

第二次挥手:因TCP的连接是全双工的双向连接,关闭也是要从两边关闭;当host2收到host1发来的FIN=1的标志位后,host2不会立刻向host1发送FIND=1的请求关闭信息,而是先向host1发送一个ACK=1的应答信息,表示:你请求关闭的请求我已经收到,但我可能还有数据没有完成传送,你再等下,等我数据传输完成了我就告诉你;

第三次挥手:host2数据传输完成,向host1发送FIN=1,host1收到请求关闭连接的请求后,host1就明白host2的数据已传输完成,现在可以断开连接了,

第四次挥手:host1收到FIND=1后,host1还是怕由于网络不稳定的原因,怕host2不知道他要断开连接,于是向host2发送ACK=1确认信息进行确认,把自己设置成TIME_WAIT状态并启动定时器,如果host2没有收到ACK,host2端TCP的定时器到达后,会要求host1重新发送ACK,当host2收到ACK后,host2就断开连接;当host1等待2MLS(2倍报文最大生存时间)后,没有收到host2的重传请求后,他就知道host2已收到了ACK,所以host1此时才关闭自己的连接。这一点我觉得设计得非常巧妙!


整个过程host1端所经历的状态如下:

155802215.gif


host2所经历的过程如下:

155930629.gif


总结:以前对TCP的三次握手与四次挥手没有进行深入的理解,只是一知半解,现在参照网上的一些资料写了此博文,对此知识点有了深刻认识。在TCP连接的建立与释放的过程中,host1与host2并没有严格的客户端与服务器之分,谁先发起请求,那就是客户端。

TCP三次握手四次挥手过程详解

TCP头部: 其中 ACK   SYN  序号  这三个部分在以下会用到,它们的介绍也在下面。 暂时需要的信息有: ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的...
  • imilli
  • imilli
  • 2016年02月01日 18:38
  • 2762

TCP/IP三次握手、四次挥手总结

(一)TCP/IP三次握手原理:    建立连接协议(三次握手) (1)客户端向服务器端发送连接请求包SYN(syn=j),等待服务器回应; (2)服务器端收到客户端连接请求包SYN(syn=j...
  • u013812939
  • u013812939
  • 2015年06月28日 11:34
  • 962

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

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

TCP/IP三次握手与四次挥手学习笔记

tcp的"三次握手"与"四次挥手"是tcp/ip的重点知识,一直不甚熟悉,网络上的资料也很多很杂,要么太繁,要么太简,所以在此学习总结以适应博主自身的情况,交流才能进步,望各路大神提出宝贵意见,共同进...
  • zhangliangzi
  • zhangliangzi
  • 2016年02月19日 16:13
  • 1331

TCP/IP协议 三次握手与四次挥手

一、TCP报文格式         TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图: 图1 TCP报文格式         上图中有几个字段需要重点介绍下: ...
  • renzhenhuai
  • renzhenhuai
  • 2013年09月27日 17:39
  • 25084

TCP/IP协议三次握手和四次挥手大白话解说

昨天晚上被一位师傅问到了TCP/IP的工作机制,心里很清楚三次握手,然而对于四次挥手却忘了,这是大学习里学过的,奋而翻阅书籍和网络对之前所学的做一个温顾,算是夯实自我吧。TCP(Transmissio...
  • li0978
  • li0978
  • 2016年09月20日 20:20
  • 3630

TCP的三次握手与四次挥手(详解+动图)

背景描述 通过上一篇中网络模型中的IP层的介绍,我们知道网络层,可以实现两个主机之间的通信。但是这并不具体,因为,真正进行通信的实体是在主机中的进程,是一个主机中的一个进程与另外一个主机中的一个进...
  • qzcsu
  • qzcsu
  • 2017年06月04日 21:53
  • 646

TCP协议的三次握手和四次挥手以及断开时各阶段的状态分析

我们知道,https协议是在http协议之上封装了SSL协议,为了完成客户端和服务端的双向认证和可靠传输,需要在通信之前双方进行多次的握手协商。TCP协议与https协议类似。 1.TCP的连接(俗称...
  • sszgg2006
  • sszgg2006
  • 2017年02月20日 16:26
  • 988

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

摘要: 本文将分别讲解经典的TCP协议建立连接(所谓的“3次握手”)和断开连接(所谓的“4次挥手”)的过程。 1、前言 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与...
  • omnispace
  • omnispace
  • 2016年09月29日 14:42
  • 8548

TCP的三次握手与四次挥手过程,各个状态名称与含义,TIMEWAIT的作用

三次握手第一次握手:主机A发送位码为syn=1,随机产生seq number=10001的数据包到服务器,主机B由SYN=1知道,A要求建立联机,此时状态为SYN_SENT; 第二次握手:主机B收...
  • sinat_32487221
  • sinat_32487221
  • 2017年02月16日 21:31
  • 1834
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TCP/IP的三次握手与四次挥手详解
举报原因:
原因补充:

(最多只允许输入30个字)