一.TCP释放连接的过程(四次挥手)

   TCP释放连接的步骤例如以下图所看到的。


   如今如果clientA和server端B都处于数据传送状态。

TCP连接断开的过程例如以下:

1.clientA发送FIN=1的连接释放报文给serverB,并进入FIN-WAIT1状态;
2.serverB收到A发送的连接释放报文段之后。发出确认报文段,并进入关闭等待状态。clientA在收到确认状态之后,进入FIN-WAIT2状态。此时,clientA不再向server端发送数据,可是。server端B仍然能够向A发送数据;
3.在serverB发送完数据之后,发送一遍FIN=1的连接释放报文段,表明自己发送数据完成,准备断开连接,并进入LAST-ACK状态;
4.clientA在收到server端的连接释放报文段,给server端发送确认报文段。并进入TIME-WAIT状态,在等待了2MSL时间后进入CLOSED状态;而server端B在收到client发送的应答报文段之后,就进入CLOSED状态。

   时间MSL叫做最长报文段寿命,建议时间为2分钟。

 
上述的TCP释放连接的过程是四次握手。可是也能够看做是两个二次握手



二.为什么clientA在TIME-WAIT状态之后必须等待2MSL的时间呢?

    1.为了保证A发送的最后一个ACK报文段可以到达B。这个ACK报文段有可能丢失,因而使处在LAST-ACK状态的B收不到对已发送的FIN+ACK报文段的确认。B会超时重传这个FIN-ACK报文段。而A就能在2MSL时间内收到这个重传的FIN+ACK报文段。

接着A重传一次确认,又一次启动2MSL计时器。最后,A和B都正常进入到CLOSED状态。假设A在TIME-WAIT状态不等待一段时间。而是在发送完ACK报文段后马上释放连接。那么就无法收到B重传的FIN+ACK报文段,因而也不会再发送一次确认报文段。这样,B就无法依照正常步骤进入CLOSED状态。

    2.为了防止已失效的连接请求报文段出如今本连接中。A在发送完最后一个ACK报文段后。再经过时间2MSL,就能够使得本连接持续时间内说产生的全部报文段都从网络中消失。这样就能够使下一个新的连接中不会出现这样的旧的连接请求报文段。




三.保活计时器

    除了时间等待计时器外,TCP还设有一个保活计时器。server每收到一次客户的数据。就又一次设置保活计时器,时间的设置一般是两个小时。若两个小时没有收到客户的数据,server就发送一个探測报文段,以后则每隔75分钟发送一次,若一连发送10个探測报文段后仍无客户的响应,server就觉得client出了故障。接着就关闭这个连接。

保活计时器是为了防止连接建立之后。client突然出现问题而没有出现响应。导致server一直出了连接状态而设置的。









參考文献
谢希仁, 计算机网络(第五版): 电子工业出版社, 2007.


版权全部。欢迎转载,转载请注明出处,谢谢

TCP学习(3)--TCP释放连接的过程(四次挥手)的更多相关文章

  1. TCP握手建立与释放连接

    网络层次模型 TCP/UDP区别 UDP,在传送数据前不需要先建立连接,远地的主机在收到UDP报文后也不需要给出任何确认.虽然UDP不提供可靠交付,但是正是因为这样,省去和很多的开销,使得它的速度比较 ...

  2. 为什么 TCP 建立连接是三次握手,关闭连接确是四次挥手呢?

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 作者:小书go https://blog.csdn.net/qzcsu/article/details/72861891 背 ...

  3. 真的懂了:TCP协议中的三次握手和四次挥手(关闭连接时, 当收到对方的FIN报文时, 仅仅表示对方不在发送数据了, 但是还能接收数据, 己方也未必全部数据都发送对方了。相当于一开始还没接上话不要紧,后来接上话以后得让人把话讲完)

    一.TCP报文格式 下面是TCP报文格式图: (1) 序号, Seq(Sequence number), 占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记. (2) 确 ...

  4. TCP协议中的三次握手和四次挥手(图解)【转】

    建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看如何建立连接的. [更新于2017.01.04 ]该部分内容配图有误,请大家见谅,正确的配图如下,错误配图也不删 ...

  5. TCP/UDP协议、理解三次握手四次挥手、Socket

    一.什么是socket? 中文名叫套接字,是对底层的 TCP IP UDP 等网络协议进行封装,使得上层的应用程序开发者,不用直接接触这对复杂,丑陋的协议. 在程序员的言论,他就是一个封装好的模块,要 ...

  6. TCP的基本概念三次握手,四次挥手

    TCP的特性 TCP提供一种面向连接的.可靠的字节流服务 在一个TCP连接中,仅有两方进行彼此通信.广播和多播不能用于TCP TCP使用校验和,确认和重传机制来保证可靠传输 TCP使用累积确认 TCP ...

  7. TCP三次握手和连接关闭过程详解

    1.建立连接协议(三次握手) (1)客户端发送一个带SYN标志的TCP报文到服务器.这是三次握手过程中的报文1. (2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和S ...

  8. TCP的三次握手(建立连接)和四次挥手(关闭连接)

    参照: http://course.ccniit.com/CSTD/Linux/reference/files/018.PDF http://hi.baidu.com/raycomer/item/94 ...

  9. TCP的三次握手(建立连接)与 四次挥手(关闭连接)

    一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图: TCP报文格式上图中有几个字段需要重点介绍下: (1)序号:Seq序号,占32位 ...

随机推荐

  1. [Swift通天遁地]七、数据与安全-(10)文件的加密压缩和解压加密压缩

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  2. NetCore Netty 框架 BT.Netty.RPC 系列随讲 二 WHO AM I 之 NETTY/NETTY 与 网络通讯 IO 模型之关系?

    一:NETTY 是什么? Netty 是什么?  这个问题其实百度上一搜一堆. 这是官方话的描述:Netty 是一个基于NIO的客户.服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个 ...

  3. 基于ASP.Net Core开发一套通用后台框架记录-(项目的搭建)

    写在前面 本系列博客是本人在学习的过程中搭建学习的记录,如果对你有所帮助那再好不过.如果您有发现错误,请告知我,我会第一时间修改. 前期我不会公开源码,我想是一点点敲代码,不然复制.粘贴那就没意思了. ...

  4. 1CSS简介

    -------------------------------------------------------------------------------------------------- - ...

  5. Elasticsearch之CURL命令的UPDATE

    对于,Elasticsearch之CURL命令的UPDATE包括局部更新和全部更新.可以去看我写的另一篇博客. Elasticsearch之更新(全部更新和局部更新) 总结: ES全部更新,使用PUT ...

  6. 研磨JavaScript系列

    JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言.同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作.它最初由网景公司 ...

  7. 笔记《精通css》第4章 背景图像,平铺方式,背景定位,圆角框,投影,不透明

    第4章  背景图像,平铺方式,背景定位,圆角框,投影,不透明 1.背景图像 background-image:url() 2.平铺方式 background-repeat:repeat-x repea ...

  8. hdu3535题解

    hdu3535:http://acm.hdu.edu.cn/showproblem.php?pid=3535 该题是非常全面的一道分组背包问题.其实理解了最多一个的分组背包问题,解题起来也是很简单的. ...

  9. 我的liunx开发环境的配置之路

    相信有不少人和我一样,虽然是做纯linux开发,但并不排斥windows,并且喜欢在windows下面的使用各种好用的工具来让linux的编程工作变得更加方便.实际上每一个系统都有他的过人支持,win ...

  10. codeforces_738C_二分

    C. Road to Cinema time limit per test 1 second memory limit per test 256 megabytes input standard in ...