找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 6401|回复: 3

关于tcp心跳问题

[复制链接]
发表于 2009-10-24 19:56:55 | 显示全部楼层 |阅读模式
为了检测非正正常断开,我使用了心跳包,但发现如果不关闭neagle算法的话,心跳包可能会延迟收到,失去了心跳的意义。请问大家是怎么处理,貌似关闭neagle不是很好
 楼主| 发表于 2009-10-24 20:04:24 | 显示全部楼层

回复 #1 matt 的帖子

喔这里是指应用层的心跳包,不是keeplive
发表于 2009-10-26 15:44:57 | 显示全部楼层
nagle算法触发的条件是:在连接中有outstanding data,这时心跳包不发都没问题,有点延迟就更无所谓了。
nagle算法的目的是减轻网络负担,提高效率。除非对实时性有较高要求,一般不要禁掉,一般情况心跳包不会要求太高的实时性。
发表于 2010-3-21 23:16:33 | 显示全部楼层
关于心跳包,推荐在应用层写一个自己的定时器,定时发送一些数据。
nagle算法如楼上所言,只要目的并不是检测网络健康程度。
你可以实现以下,在你发送数据后,停止监听,这时候你拔掉网线,有时候网络错误时不返回的,除非下一个数据传输事件动作被发起。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-5-6 12:34 , Processed in 0.014796 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表