仓酷云
标题:
来一发CentOS下TCP断线监测
[打印本页]
作者:
老尸
时间:
2015-1-14 20:29
标题:
来一发CentOS下TCP断线监测
欢迎大家来到仓酷云论坛!
[size=14.4444446563721px]TCP一般的断开,通讯两边(办事端和客户端)都是能晓得的。可是非一般的断开,好比间接拔失落了网线,就只能靠以下两种***,完成短工夫内的检测。
[size=14.4444446563721px]一
,心跳包机制
[size=14.4444446563721px]
心跳包机制,是网游计划中的经常使用机制。从用户层面,本人发包往判别对方连线形态。能够依据情形,很天真的利用。好比,20秒发送一个最小的数据包(也能够依据实践情形稍带一些其他数据)。假如发送没有回应,就判别对方失落线了。
[size=14.4444446563721px]二
,使用tcp_keepalive机制
[size=14.4444446563721px]
使用TCP的机制,经由过程设置体系参数,从体系层面,监测tcp的毗连形态。以下为linux下的***:
[size=14.4444446563721px]1,起首检察体系tcp_keepalive相干参数(centos和Ubuntu)
[size=14.4444446563721px]#sysctl-a|greptcp_keepalive
[size=14.4444446563721px]显现以下:
[size=14.4444446563721px]
登录/注册后可看大图
Center
(15.63 KB, 下载次数: 5)
下载附件
保存到相册
来一发CentOS下TCP断线监测
2015-1-14 20:29 上传
[size=14.4444446563721px]net.ipv4.tcp_keepalive_intvl=75
net.ipv4.tcp_keepalive_probes=9
net.ipv4.tcp_keepalive_time=7200
[size=14.4444446563721px]分离说一下这三个参数:
[size=14.4444446563721px]
tcp_keepalive_time参数:
[size=14.4444446563721px]是指TCP发送keepalive动静的频度,默许为7200秒,也就是两个小时。
[size=14.4444446563721px]
keepalive_intvl参数:
[size=14.4444446563721px]当探测没有确认时,从头发送探测的频度。默许是75秒。
[size=14.4444446563721px]
keepalive_probes参数:
[size=14.4444446563721px]在认定毗连生效之前,发送几个TCP的keepalive探测包。默许值是9次。
[size=14.4444446563721px]--------------------------------------------------------------------
[size=14.4444446563721px]2,修正体系的tcp_keepalive相干参数
[size=14.4444446563721px]在晓得以上三个体系参数的界说和感化以后,我们来修正一下这三个参数:
[size=14.4444446563721px]修正/etc/sysctl.conf文件:
[size=14.4444446563721px]#vi/etc/sysctl.conf
[size=14.4444446563721px]在翻开的文件中,到场以下三行:
[size=14.4444446563721px]net.ipv4.tcp_keepalive_intvl=1
net.ipv4.tcp_keepalive_probes=1
net.ipv4.tcp_keepalive_time=5
[size=14.4444446563721px]保留文件。
[size=14.4444446563721px]--------------------------------------------------------------------
[size=14.4444446563721px]3,重启办事器。
[size=14.4444446563721px]#reboot
[size=14.4444446563721px]附注:大概一时使体系设置失效也行:#sysctl-p
[size=14.4444446563721px]
[size=14.4444446563721px]--------------------------------------------------------------------
[size=14.4444446563721px]4,修正步伐代码局部。
[size=14.4444446563721px]注重:仅仅设置内核参数是不敷的,还必需在编程的时分设置套接字的选项,挪用函数是
socket.setsockopt(level,optname,value)
示例:
level为SOL_SOCKET的话,选项为SO_KEEPALIVE,值为布尔。
[size=14.4444446563721px]socket.setsockopt(socket.SOL_SOCKET,socket.SO_KEEPALIVE,True)
[size=14.4444446563721px]
[size=14.4444446563721px]别的还能够设置TCP选项(设置的level为SOL_TCP而不是SOL_SOCKET)掩盖体系全局设置
TCP_KEEPCNT与tcp_keepalive_probes对应
TCP_KEEPIDLE与tcp_keepalive_time对应
TCP_KEEPINTVL与tcp_keepalive_intvl对应
[size=14.4444446563721px]
[size=14.4444446563721px]--------------------------------------------------------------------
[size=14.4444446563721px]自创文章:
[size=14.4444446563721px]http://blog.sina.com.cn/s/blog_a2d4803001013hrk.html
[size=14.4444446563721px]http://blog.chinaunix.net/uid-23849526-id-274740.html
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
作者:
柔情似水
时间:
2015-1-16 18:41
标题:
来一发CentOS下TCP断线监测
熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。
作者:
若天明
时间:
2015-1-22 17:27
其中不乏很多IT精英的心血。我们学透以后更可以做成自己的OS!?
作者:
分手快乐
时间:
2015-1-31 14:52
Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。
作者:
灵魂腐蚀
时间:
2015-2-6 20:50
把这个问题放在其他Linux社区请求帮助也是一种选择。如果Linux得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。
作者:
第二个灵魂
时间:
2015-2-18 19:30
随着Linux应用的扩展,出现了不少Linux社区。有一些非常优秀的社区往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。
作者:
愤怒的大鸟
时间:
2015-3-6 11:00
未来的学习之路将是以指数增加的方式增长的。从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。
作者:
莫相离
时间:
2015-3-13 01:09
其实老师让写心得我也没怎么找资料应付,自己想到什么就写些什么,所以不免有些凌乱;很少提到编程,因为那些在实验报告里已经说了,这里再写就多余了。
作者:
仓酷云
时间:
2015-3-20 09:45
未来的学习之路将是以指数增加的方式增长的。从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2