14.TCP的坚持定时器和保活定时器
(2)在定时器未到,就收到非零通告,则关闭该定时器,并发送数据。
(3)若定时器已到,还没有收到非零通告,就发探查报文。
二、保活定时器
1.保活定时器的由来
现实中可能存在一种空闲的TCP连接--连接的双方都没有向对方发送数据,则在两个TCP模块之间不交换任何信息,这意味我们可以启动一个客户和服务器建立连接,然后离去很长时间,而连接依然保持。而且中间的路由器可以崩溃或重启,只要两端的主机没有重启,则依然保持连接建立。
服务器为了知道客户机是否崩溃或关机等情况,从而引入了保活定时器来探查这种情况。
2.工作原理
如果一个给定的连接在2小时内没有任何动作,那么服务器就向客户发送一个探查报文段。客户主机必须处于以下4个状态之一:
(1)客户主机依然正常运行,并从服务器可达。客户的TCP响应正常,而服务器也知道对方的正常工作的,服务器在2小时内将保活定时器复位。
(2)客户主机已经崩溃,并且关闭或者正在重新启动。在任何一种情况下,客户的TCP都没有响应,服务器将不能收到对探查的响应,并在75秒后超时,总共发送10个探查,每个间隔75秒。如果服务器没有收到一个响应,它就认为客户主机已经关闭并终止连接。
(3)客户主机崩溃并已经重新启动。这是服务器将收到一个对其保活探查的响应,但这个响应是一个RST复位,使得服务器终止这个连接。
(4)客户主机正常运行,但是从服务器不可达。这与状态2相同,因为TCP不能够区分状态4与2之间的区别,它所能发现的就是没有收到探查的响应。
服务器不用关注客户主机被关闭或者重新启动的情况。当客户机被关闭之后,所有的应用进程也被终止,这会使客户的TCP在连接上发出一个FIN。接收到FIN会使服务器的TCP向服务器进程报告文件结束,从而服务器检测到了这种情况。
14.TCP的坚持定时器和保活定时器的更多相关文章
- TCP的定时器系列 — 保活定时器
主要内容:保活定时器的实现,TCP_USER_TIMEOUT选项的实现. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 原理 HTTP有Keepaliv ...
- TCP定时器 之 保活定时器
在用户进程启用了保活定时器的情况下,如果连接超过空闲时间没有数据交互,则保活定时器超时,向对端发送保活探测包,若(1)收到回复则说明对端工作正常,重置定时器等下下次达到空闲时间:(2) 收到其他回复, ...
- 【TCP/IP详解 卷一:协议】第二十三章 TCP的保活定时器
本章介绍保活定时器. 在 TCP 的三握四挥 章节中,我们介绍了 处在 TIME_WAIT 的 2MSL定时器:在 TCP的超时与重传 章节中,我们介绍了 重传定时器:在上一章节中,我们介绍了 防止死 ...
- TCP/IP详解学习笔记(13)-TCP坚持定时器,TCP保活定时器
TCP一共有四个主要的定时器,前面已经讲到了一个--超时定时器--是TCP里面最复杂的一个,另外的三个是: 坚持定时器 保活定时器 2MSL定时器 其中坚持定时器用于防止通告窗口为0以后双方互相等待死 ...
- 《TCP/IP详细解释》札记(23章)-TCP该保活定时器
可能有这样的备用现实TCP连接:流通过. 也就是说.假设TCP连接的两方都没有向对方发送数据.则在两个TCP模块之间不交换不论什么信息,这意味着我们能够启动一个客户与server建立连接,然后长时间不 ...
- TCP 的保活定时器
引言 可以没有任何数据流过一个空闲的 TCP 连接. 这意味着我们可以启动一个客户与服务器建 立一个连接,然后离去数小时.数天.数个星期或者数月,而连接依然保持.中间路由器可以崩溃和重启,电话线可以被 ...
- TCP的保活定时器 转
http://blog.csdn.net/zhangskd/article/details/44177475 TCP的Keepalive,目的在于看看对方有没有发生异常,如果有异常就及时关闭连接. 当 ...
- TCP/IP具体解释学习笔记--TCP的坚持和保活定时器
TCP的坚持定时器 1.基本概念 TCP的接收方指名希望从发送方接收的数据字节(窗体大小)来进行流量控制,假设窗体大小为0.那么放送方就会阻止发送数据,直到接收方发来一个已跟新窗体大小的ACK为止,那 ...
- TCP保活定时器
TCP有Keepalive功能,它和HTTP的Keepalive功能目的不一样.TCP服务器希望知道客户端是否崩溃.重新启动或者中间路由不通.保活定时器就提供这种功能. 在进一步介绍TCP的保活定时器 ...
随机推荐
- 解决adb端口被占用的方法
错误: [2016-04-20 19:05:04 - ddms] 'E:\android\android-sdk\android-sdk\platform-tools\adb.exe,start-se ...
- Nginx配置-伪静态,隐藏index.php大入口
server { listen ; server_name ; root E:/www/wvtuan/; index index.php index.html; log_not_found off; ...
- Cisco 绑定mac地址
在Cisco中有以下三种方案可供选择,方案1和方案2实现的功能是一样的,即在具体的交换机端口上绑定特定的主机的MAC地址(网卡硬件地址),方案3是在具体的交换机端口上同时绑定特定的主机的MAC地址(网 ...
- SQL求解两个时间差
sql 求解两个时间差 SELECTDATEDIFF( Second, '2009-8-25 12:15:12', '2009-9-1 7:18:20') --返回相差秒数 SELECTDATEDIF ...
- OGG FAQ
Q1:oracle_关于参数.ENABLE_GOLDENGATE_REPLICATION A: So, in order to use OGG, on Oracle 11.2.0.4, or Or ...
- gen_compile.sql
set echo off pagesize 0 feedback off define v_input_un = &1define v_input_pw = & ...
- Android之EditText控件
<EditText android:layout_width="fill_parent" android:layout_height="wrap_content&q ...
- DWR 整合之Struts2.3.16
DWR 能够和任何框架结合. DWR 和 Struts 整合有 2 个层次.最基础的层次就是同时使用这两个框架,这是非常容易的,但是这样就不允许在 DWR 和 Struts 之间共享 Action 了 ...
- thin-provisioning-tools
公司我还用着squeeze,没这个包,下载编译:https://github.com/jthornber/thin-provisioning-tools.git
- 可用类型的几何对象esriGeometryType Constants
The available kinds of geometry objects. Constant Value Description esriGeometryNull 0 A geometry of ...