TCP中已有SO_KEEPALIVE选项,为什么还要在应用层加入心跳包机制??
来源:互联网 发布:如何查看网址的端口号 编辑:程序博客网 时间:2024/05/22 21:45
因为TCP协议中的SO_KEEPALIVE有几个致命的缺陷:
- keepalive只能检测连接是否存活,不能检测连接是否可用。比如服务器因为负载过高导致无法响应请求但是连接仍然存在,此时keepalive无法判断连接是否可用。
- 如果TCP连接中的另一方因为停电突然断网,我们并不知道连接断开,此时发送数据失败会进行重传,由于重传包的优先级要高于keepalive的数据包,因此keepalive的数据包无法发送出去。只有在长时间的重传失败之后我们才能判断此连接断开了。
阅读全文
0 0
- TCP中已有SO_KEEPALIVE选项,为什么还要在应用层加入心跳包机制??
- Socket心跳包机制及SO_KEEPALIVE套接口选项
- 关于心跳机制,SO_KEEPALIVE套接口选项的一些些
- TCP/IP Socket心跳机制so_keepalive的三个参数详解
- TCP/IP Socket心跳机制so_keepalive的三个参数详解
- TCP SO_KEEPALIVE选项
- 论TCP连接的应用层心跳包的必要性
- Linux下的TCP/IP Socket心跳机制so_keepalive的三个参数详解
- 为什么基于TCP的应用需要心跳包(TCP keep-alive原理分析)
- 为什么基于TCP的应用需要心跳包(TCP keep-alive原理分析)
- 为什么基于TCP的应用需要心跳包(TCP keep-alive原理分析)
- 为什么要有心跳包的机制
- 使用 SO_KEEPALIVE 选项检测TCP连接
- TCP底层的SO_KEEPALIVE和应用程序的心跳线程
- socket心跳机制so_keepalive设计三个参数详解
- socket心跳机制so_keepalive的三个参数详解
- socket心跳机制so_keepalive的三个参数详解
- SO_KEEPALIVE选项
- I/O流学习
- 我的减肥减脂计划
- Shell脚本编程——(不用判断循环语句)
- Java实现敏感词过滤
- 常见类---Arrays类
- TCP中已有SO_KEEPALIVE选项,为什么还要在应用层加入心跳包机制??
- I/O:读和写
- redhat忘记root密码的解决方法
- 设计模式之组合模式
- 这里没有key
- hdu 4366(线段树+DFS序)
- 关于springMVC操作
- Nim博弈论变型
- 萌新的linux之旅16