http的keepalive和tcp的keepalive

1.HTTP的keepalive

在http1.0的时候,每个http请求都是要求打开一个tcp socket,并且使用一次之后就断开这个tcp连接了。使用keepalive可以改善这种状态,即在一次tcp连接中可以持续发送多份数据而不会断开连接。通过使用keepalive技术可以减少tcp连接次数,也意味着可以减少time_wait状态,以此来提高性能。但是keepalive也有一定的缺点:长时间的tcp连接容易导致系统资源的无效占用。

2.TCP的keepalive

链接建立之后,如果应用程序或者上层协议一直不发送数据,或者隔很长时间才发送一次数据,当链接很久没有数据报文传输时如何去确定对方还在线,到底是掉线了还是确实没有发送数据,链接还需不需要保持,这种情况下tcp协议中给出了一个方法:当超过一段时间之后,TCP自动发送一个数据为空的报文给对方,如果对方回应了这个报文,说明对方还在线,链接可以继续保持,如果对方没有报文返回,并且重试了很多次之后则认为链接丢失,没有必要继续保持链接。

说到底,tcp的keepalive机制和http的keepalive机制是两种不同的东西,tcp的keepalive是在establish状态的时候,双方如何检测链接的可用性。而http的keepalive说的是如何避免进行重复的tcp三次握手和四次挥手。

相关推荐
橘颂TA19 分钟前
【Linux 网络】从理论到实践:IP 协议的报头分析与分段技术详解
linux·运维·服务器·网络·tcp/ip
那就回到过去22 分钟前
PIM-DM嫁接机制
运维·服务器·网络·智能路由器·pim·ensp
CS创新实验室23 分钟前
《计算机网络》深入学:以太网交换机原理与应用
服务器·网络·计算机网络·以太网·以太交换机
Hi2024021724 分钟前
使用Docker Compose搭建LibreNMS网络监控系统
运维·网络·docker·容器
CS创新实验室26 分钟前
《计算机网络》深入学:广域网
服务器·网络·计算机网络·408·计算机考研·广域网
Whisper_Sy28 分钟前
Flutter for OpenHarmony移动数据使用监管助手App实战 - 月报告实现
android·开发语言·javascript·网络·flutter·ecmascript
小李独爱秋29 分钟前
计算机网络经典问题透视:EF PHB与AF PHB深度解析——它们有何不同,各适用于何种通信量?
网络·计算机网络·信息与通信·qos·phb
Java程序员威哥37 分钟前
SpringBoot多环境配置实战:从基础用法到源码解析与生产避坑
java·开发语言·网络·spring boot·后端·python·spring
会员源码网1 小时前
OA+CRM一体化企业办公系统 v5.8 | 支持PC+手机端的智能管理平台
网络
迎仔1 小时前
计算机网络分层模型通俗指南 (OSI vs TCP/IP)
网络协议·tcp/ip·计算机网络