三次握手:

(1)客户端向服务器端TCP请求连接,向服务器端发送控制位SYN=1,序号seq=x的请求报文。(x是随机产生的,且不能为0)

(2)服务器端接收到请求报文后,若同意建立连接,则向客户端发送控制位SYN=1,ACK=1,确认号ack=x+1,序号seq=y的请求确认报文。

(3)客户端接收到确认报文后,向服务器端发送控制位ACK=1,序号seq=x+1,确认号ack=y+1的确认报文。TCP连接建立完成。

四次挥手:

  客户端和服务器端都可以主动提出释放请求,下面以客户端为主

(1)当客户端主动释放TCP连接时,停止发送数据,向服务器端发送控制位FIN=1,序号=u的请求报文。(u等于客户端发送的最后一个字节的序号加1)

(2)服务器端接收到请求报文后,向客户端发送ACK=1,确认号ack=u+1,序号=v的确认报文。(v等于服务器发送的最后一个字节序号加1)

(3)当服务器端数据都发送完毕后,服务器会向客户端发送控制位FIN=1,ACK=1,序号为w,ack=u+1的请求报文(w取决于在“半关闭”状态,服务器是否发送过数据报文)

(4)客户端在接收到请求报文后,向服务器发送ACK=1,序号seq=u+1,确认序号ack=w+1的确认报文。TCP连接释放完毕。

Q1:为啥要三次握手?两次不可以吗?

  TCP协议通信的双方,都维护着有一个初始序列号,以标识发送出去。 如果只是两次握手, 至多只有连接发起方的起始序列号能被确认, 另一方选择的序列号则得不到确认,无法达成一致。

Q2:四次挥手如果改为三次怎么样?

  TCP连接是全双工,服务器端接收到FIN说明客户端没有数据再发送过来,此时客户端处于半关闭状态。但服务器端自己还可以发送数据或还有数据没发完。前两次只是确认了关闭一个方向的数据,再加上后两次挥手才真正关闭整个TCP连接。

知识补充:

TCP连接和释放的工作原理图如下:

(1)状态的改变

  连接建立:

  客户端状态:      CLOSE(关闭)=>SYN-SEND(准备发送)=>ESTABLISHED(已建立连接)

  服务器端状态:LISTEN(收听)=>SYN-RCVD(准备接收)=>ESTABLISHED(已建立连接)

  连接释放:FIN-WAIT-1(释放等待-1)=> FIN-WAIT-2(半关闭)=>TIME-WAIT(计时等待)=>CLOSE(关闭)

  客户端状态:CLOSE-WAIT(关闭等待)=>LAST-ACK(最后确认)=>CLOSE(关闭)=>LISTEN(收听)

(2)连接请求报文的序号(ISN)seq值是随机产生的,但是不能为0。

原因:(1)增加安全性,避免被攻击者猜测到,被第三方伪造的RST报文Reset。

   (2)避免因TCP连接非正常断开而可能引起的混乱。如果在连接突然中断时,可能有一个或两个进程同时等待对方的确认应答,而这个时候有一个新连接的序号也是从0开始,那么接收进程就有可能认为是对方重传的报文,有可能造成连接过程的错误。

(3)为什么要time wait,为什么是2msl?

  TCP关闭一个连接时,它并不认为这个连接马上就真正地关闭。采用延迟2MSL(最长报文寿命)时间,确保服务器在最后阶段发送给客户端的数据,以及客户端发送给服务器最后一个“ACK”报文都能正确地被接收(包括错误重传时间),防止因个别报文传输错误导致连接释放失败。

TCP协议-连接建立和释放的更多相关文章

  1. TCP传输连接建立与释放详解

    一直以来有许多读者朋友对TCP的传输连接建立和释放过程不是很理解,而这又是几乎网络认证中必考的知识点,包括软考.CCNA\CCNP.H3CNA\H3CNE等,为此再把笔者年度巨作,广受好评的——< ...

  2. 协议系列之TCP协议

    3.TCP协议 从上一节我们了解了什么是IP协议,以及IP协议的一些特性,利用IP协议传输都是单向的,不可靠的,无连接状态的.正是这些特性,于是便产生了TCP协议.TCP协议属于传输层,在IP协议网络 ...

  3. 网络协议抓包分析——TCP传输控制协议(连接建立、释放)

    前言 TCP协议为数据提供可靠的端到端的传输,处理数据的顺序和错误恢复,保证数据能够到达其应到达的地方.TCP协议是面向连接的,在两台主机使用TCP协议进行通信之前,会先建立一个TCP连接(三次握手) ...

  4. TCP连接建立与释放

    tcp建立连接 tcp连接的建立需要经历”三次握手“的过程.过程如下 client发送SYN包(值为j)以及SEQ包到server端,此时client进入SYN_SEND状态.此为第一次握手. ser ...

  5. 计算机网络传输层之TCP协议(tcp协议特点、tcp报文段首部格式、tcp连接建立---三次握手、tcp连接释放---四次握手)

    文章转自:https://blog.csdn.net/weixin_43914604/article/details/105516090 学习课程:<2019王道考研计算机网络> 学习目的 ...

  6. TCP协议探究(一):报文格式与连接建立终止

    一 TCP:传输控制协议报文格式 1 TCP服务 提供面向连接.可靠的字节流服务 面向连接意味着两方通信,不支持多播和广播 可靠性的支持: 应用数据被分割成TCP认为最适合发送的数据块.由TCP传递给 ...

  7. 具体解释TCP协议的服务特点以及连接建立与终止的过程(俗称三次握手四次挥手)

    转载请附本文的链接地址:http://blog.csdn.net/sahadev_/article/details/50780825 ,谢谢. tcp/ip技术经常会在我们面试的时候出现,非常多公司也 ...

  8. TCP协议的三次握手和四次挥手

    暂时需要的信息有: ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1 SYN(SYNchronization) : 在连接建立时用来同步序号.当SYN= ...

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

    1.前言 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务.TCP提供一种面向连接的.可靠的字节流服务. 面向连接意味着两个使用TCP的应用(通常是一个客户和一 ...

随机推荐

  1. sqlserver 知识点

    数据库知识点 1.数据库操作: 增:insert into 表名 values(值1,值2,值3) 删:delete 列名 from 表名 where 条件 改:update 表名 set =值 wh ...

  2. c#实现识别图片上的验证码数字

    这篇文章主要介绍了c#实现识别图片上的验证码数字的方法,本文给大家汇总了2种方法,有需要的小伙伴可以参考下. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 ...

  3. 常规DP专题练习

    POJ2279 Mr. Young's Picture Permutations 题意 Language:Default Mr. Young's Picture Permutations Time L ...

  4. tomcat之虚拟目录

    一般我们都是直接引用webapps下面的web项目,如果我们要部署一个在其它地方的WEB项目,这就要在TOMCAT中设置虚拟路径了,Tomcat的加载web顺序是先加载 $Tomcat_home$\c ...

  5. JNI加载hal的dlopen()相关操作

    1.函数集合 #include <dlfcn.h> void *dlopen(const char *filename, int flag); char *dlerror(void); v ...

  6. Python(三)——文件操作

    在我们用语言的过程中,比如要往文件内进行读写,那么势必要进行文件操作,那么咋操作呢?用眼睛直接看么?今天就定个小目标,把文件读写那些事扯一扯 文件操作 把大象放进冰箱分几步? 第一步:打开冰箱 第二步 ...

  7. SqlServer :实现树形结构递归查询(无限极分类)

    SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式 公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它.每个CTE仅被定义一 ...

  8. SSD硬盘测速较低的原因备忘

    SATA3 SSD测速度盘速度只有200MB/s,可能原因有: 原因分为几种:没开AHCI 没有4K对齐 虽然接的是SATA3接口但SATA3有分为3G和6G这些传输速度接口的分别,同理SATA线3G ...

  9. java.util.concurrent包下并发锁的特点与适用场景

    序号 类 备注 核心代码 适用场景 1 synchronized 同步锁 并发锁加在方法级别上,如果是单例class对象,则只能允许一个线程进入public synchronized void doX ...

  10. 数据库乐观锁和悲观锁的理解和实现(转载&总结)

    数据的锁定分为两种,第一种叫作悲观锁,第二种叫作乐观锁. 1.悲观锁,就是对数据的冲突采取一种悲观的态度,也就是说假设数据肯定会冲突,所以在数据开始读取的时候就把数据锁定住.[数据锁定:数据将暂时不会 ...