易截截图软件、单文件、免安装、纯绿色、仅160KB

linux下使用TCP存活(keepalive)定时器

2008-05-22 14:34
/*由
hi.baidu.com/zhihui3409
收集整理,转载时请附带
此行*/
一、什么是keepalive定时器?[
1]
在一
个空闲的(
idle

TCP
连接上,没有任
何的数据流,许多
TCP/IP
的初学者都对此感到惊奇。也就是说,如果
TCP

接两端没有任何一个进程在向对方发送数据,那么在这两个
TCP
模块之间没有任何的数据交换。你可能
在其它的网络协议中发现有轮询(
polling
),但在
TCP

它不存在。言外之意就是我们只要启动一个客户端进程,同服务器建立了
TCP
连接,不管你离开几小
时,几天,几星期或是几个月,连接依旧存在。中间的路由器可能崩溃或者重启,电话线可能
go down


back up
,只要连接两端的主机没有重启,连接依旧保持建立。
这就
可以认为不管是客户端的还是服务器端的应用程序都没有应用程序级(
application-level

的定时器来探测连接的不活动状态(
inactivity
),从而引起任何一个应用程序的终止。

而有的时候,服务器需要知道客户端主机是否已崩溃并且关闭,或者崩溃但重启。许多实现提供了存活定时器来完成这个任务。
存活
定时器是一个包含争议的特征。许多人认为,即使需要这个特征,这种对对方的轮询也应该由应用程序来完成,而不是由
TCP

实现。此外,
如果两个终端系统之间的某个中间网络上有连接的暂时中断,那么存活选项(
option

就能够引起两个进程间一个良好连接的终止。例如,如果正好在某个中间路由器崩溃、重启的时候发送存活探测,
TCP

将会认为客户端主机已经崩溃,但事实并非如此。
存活

keepalive
)并不是
TCP
规范的
一部分。在
Host Requirements RFC
罗列有不使用它的三个理由:(
1

在短暂的故障期间,它们可能引起一个良好连接(
good connection
)被释放(
dropped
),

2
)它们消费了不必要的宽带,(
3
)在以
数据包计费的互联网上它们(额外)花费金钱。然而,在许多的实现中提供了存活定时器。
一些
服务器应用程序可能代表客户端占用资源,它们需要知道客户端主机是否崩溃。存活定时器可以为这些应用程序提供探测服务。
Telnet

务器和
Rlogin
服务器的许多版本都默认提供存活选项。
个人
计算机用户使用
TCP/IP
协议通过
Telnet

录一台主机,这是能够说明需要使用存活定时器的一个常用例子。如果某个用户在使用结束时只是关掉了电源,而没有注


相关文档:

Linux/Unix下ODBC的安装、配置与编程

本文主要内容是介绍ODBC的简单原理,以及如何在Linux/Unix下进行ODBC的安装、配置与编程。
ODBC原理
ODBC
是Open Database Connect 即开放数据库互连的简称,它是由Microsoft 公司于1991
年提出的一个用于访问数据库的统一界面标准,是应用程序和数据库系统之间的中间件。它通过使用相应应用平台上和所需数据库对应的驱 ......

Linux学习(二).1(转)

1. 往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library会找不到
2. 想往上面两个目录以外加东西的时候,一定要修改/etc/ld.so.conf,然后再调用ldconfig,不然也会找不到
比如安装了一个mysql到/usr/local/mysql,mysql有一大堆library在/usr/local/mysql/lib下面 ......

Linux修改IP、DNS

 一、修改IP、网关
  [root@localhost ~]#  vi /etc/sysconfig/network-scripts/ifcfg-eth0
  DEVICE=eth0
  ONBOOT=yes
  BOOTPROTO=static
  IPADDR=192.168.1.117
  NETMASK=255.255.255.0
  GATEWAY=192.168.1.1
 二、修改DNS
  [root@lvs_master ~]# vi /etc/resolv.conf
  n ......

oracle for linux安装

折腾了两个晚上的linux和oralce,总算出来点东西了。Oralce安装要选用适用的版本,不然安装不会成功,最后我的决定是linux选用centos 5.0,oracle选用10。
一、        准备工作:
1.       使用root用户登录
我使用的是在本机装,所以直接打开终端就 ......

如何编译Linux的内核

如何编译Linux的内核. 内核,是一个操作系统的核心。它负责管理系统的进程、内存、 设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。Linux作为一个自由软件, 在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许
http://www.phpv.net/article.php/40
如何编译Linux内核- Linuxer ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号