java解析tcp包 TCP中已有SO_KEEPALIVE选项,为什么还要在应用层加入心跳包机制?
TCP中已有SO_KEEPALIVE选项,为什么还要在应用层加入心跳包机制?应用层不能使用TCP层的头,因为在应用层可以看到的是传输层的数据部分。有时应用层需要维护与服务器的弱链接,例如半小时刷新。虽
TCP中已有SO_KEEPALIVE选项,为什么还要在应用层加入心跳包机制?
应用层不能使用TCP层的头,因为在应用层可以看到的是传输层的数据部分。有时应用层需要维护与服务器的弱链接,例如半小时刷新。虽然传输层可以始终保持连接状态,但服务器有时承受不起长连接的负担,最好通过应用层来完成。当网络拥塞时,连接过程很容易超时和中断。TCP通过设置keepalive来调节重传数据的频率。
事实上,下级可以执行的功能是上级所需要的。