推送系统里使用 UPD 还是TCP做心跳包?
来源:互联网 发布:中日韩关系知乎 编辑:程序博客网 时间:2024/05/21 13:54
UDP是无连接的。客户端每隔一定时间发一次给服务端,服务端每隔一定时间判断一次,如果某个客户端大于一定时间没有包来往,则可认为该客户端“掉线”了。
心跳包只是用来负责维护路由端口的,你只需要在最后一次收到或发送数据后的指定时间内,发送一次就可以,至于服务器还是客户端发送并不重要。一般来说,心跳包是一个往复,即从一方发往另一方后,另一方应回复一个确认收到心跳包,否则,由于在中间路由过程中,说不准被那个路由器丢包,你所谓的连接也就无法正确的保持。
虽然TCP本身的包头要比UDP多,但是UDP在实际应用中往往需要维护双向通道,就必须要通过大量的心跳包数据来维护端口资源。总的比较起来,UDP的实际流量要比TCP还要大。很多使用者在初期的时候并不了解UDP需要大量心跳包来维持端口资源这个问题,往往都认为UDP要比TCP更节省流量,实际上这里存在着一个误区。
在某些特定的应用场合,例如一些银行的时时交互系统,对响应速度要求很高,此时数据传输频率较快,不需要大量心跳包维持UDP端口资源,采用UDP就比较有利了。
0 0
- 推送系统里使用 UPD 还是TCP做心跳包?
- 推送系统里使用 UPD 还是TCP做心跳包?
- 使用TCP keepalive还是HeartBeat心跳包?
- TCP/IP-心跳包
- TCP/IP-心跳包
- TCP之心跳包
- TCP 心跳包
- 使用tcpdump 抓android手机的tcp upd http 等网络包
- 使用“带外数据”实现TCP心跳包
- 使用“带外数据”实现TCP心跳包
- TCP keepAlive详解(TCP心跳包)
- tcp连接探测Keepalive和心跳包
- Twisted 库 TCP 服务器 心跳包demo
- tcp连接探测Keepalive和心跳包
- TCP之心跳包实现思路
- TCP之心跳包实现思路
- TCP socket心跳包示例程序
- TCP之心跳包实现思路
- 如何分清太极拳中的虚实
- android修改包名修改报错的问题总结
- spring 中 applicationEvent的使用
- VS2010开发的WinForm程序如何在xp下运行
- Redis的Keyspace notifications功能初探
- 推送系统里使用 UPD 还是TCP做心跳包?
- oracle两时间相减得到相差的时间
- 树莓派实现自主导航
- UVA10129-Play on Words(欧拉道路)
- 工厂模式
- Masonry适配的简单使用
- bzoj1095
- 为什么心跳包(HeartBeat)是必须的?
- 文件存储