四次握手终止连接
来源:互联网 发布:数控折弯机编程视频 编辑:程序博客网 时间:2024/05/16 06:57
和建立连接时的三次握手类似,三次握手建立连接的标识为SYN,四次握手终止连接的标识为FIN。由于TCP连接是全双工,所以发送了FIN的一端只是关闭了发送连接,但仍然可以接受数据。所以,若要彻底关闭连接,则需要双方都发送FIN。
还是通过实验来观察四次握手流程。当通过SSH软件输入exit命令时,客户端发出带FIN标识的TCP包:
服务器收到FIN后,发送一个ACK包,确认序号应该为收到的序号加1,但这里并没有加1,因为服务器接紧接着会发送一个FIN,在那个FIN中再让确认序号加1:
同时,服务器也会发送一个FIN给客户端,果然这里的确认序号为收到序号加1,由于单独的ACK包不消耗序号,所以此TCP包的序号和上一个相同:
客户端收到FIN后,再返回一个ACK包,确认序号为收到序号+1,FIN和SYN一样需要消耗一个序号,所以这里的序号相对于第一次握手还是增加了1:
至此,四次握手结束,TCP连接断开。注意,连接通常是由客户端发起,关闭连接两端都能主动关闭,但通常由客户端决定何时终止连接。
附带一张连接建立和连接终止的整体流程图:
参考:
《TCP/IP详解》 P177.
0 0
- 四次握手终止连接
- TCP三次握手连接四次挥手终止连接
- TCP连接过程(三次握手) 终止协议(四次挥手)
- TCP/IP详解--TCP三次握手建立连接与四次握手终止连接
- TCP为何需要三次握手连接?为何需要四次握手终止连接?
- 关于TCP连接的三次握手和终止连接的四次握手
- 唯快不破:TCP/IP详解--TCP三次握手建立连接与四次握手终止连接
- TCP三次握手建立连接与四次握手终止连接及sep和ack号的正确理解
- TCP连接的建立与终止,三次握手和四次握手,以及在socket系列函数中的体现
- TCP的连接(三次握手,SYN泛洪)与终止(三次握手和四次挥手,time_wait)
- TCP四次握手释放连接
- TCP四次握手断开连接
- TCP四次握手断开连接
- TCP 三次握手连接&四次握手断开
- 三次握手和四次握手连接
- 详解TCP协议的服务特点以及连接建立与终止的过程(俗称三次握手四次挥手)
- tcp的建立和终止(三次握手和四次挥手)
- tcp三次握手建立连接、四次握手关闭连接
- hive的安装
- 第4天--面向对象之封装
- tiny6410裸机实验第5章--------------DDR(物理地址,链接地址,虚拟地址,地址无关码)
- Android API Level与sdk版本对照表
- Ubuntu 更新源地址列表及更改方法
- 四次握手终止连接
- oracle存储过程实例
- getCacheDir()和getFilesDir()方法区别.
- NFC-PN532
- JA-SIG(CAS)学习笔记1
- 第五天-面向对象之继承
- Android Region代码分析
- 在字符串中,寻找第一个只出现一次的字符
- 从“假如有以下几种价格10,20,50,请你代码实现将他们排序输出”看设计模式中的策略模式