1、为什么需要keeplive
相当于接订餐电话时,对方没有相应,你这边说的一句“您还在不?”
以下三种情况需要发送keeplive
- 对端异常崩溃
- 对端在,处理不过来
- 对端在,但不可达
2、怎么设计keeplive?
3、应用层为什么还需keeplive?
- 协议层每层的功能不同,关注点也会不同,传输层关注是否“通”,应用层关注是否可服务,类比订餐电话,电话可以通,但不一定有人接
- TCP层的keeplive默认是关闭,且在经过路由等中转设备的时候有可能被丢弃
- TCP层的keeplive参数是系统级别的,改动会影响所有应用
4、idle监测是什么?
依旧电话订餐的例子,订餐过程中,对方突然不说话了,你会立马发问:你还在不?
- 当然不是
- 一般你会稍微等一会,看对方在这段时间内是有有响应,如果一直无响应,认为对方存在问题了,才会发问:还在不?或是直接挂断电话,关闭连接。