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三次握手和四次挥手。

相关推荐
一切顺势而行1 分钟前
计算机网络基础
网络·计算机网络
嵌入式×边缘AI:打怪升级日志1 小时前
编写Bootloader实现下载功能
java·前端·网络
苏渡苇3 小时前
轻量化AI落地:Java + Spring Boot 实现设备异常预判
java·人工智能·spring boot·后端·网络协议·tcp/ip·spring
funnycoffee1233 小时前
Cisco ,H3C,华为配置端口聚合命令(lacp mode)
网络·华为·聚合
请为小H留灯4 小时前
网络连通性测试:3 种常用方法(Telnet、Ping、Curl)详解
网络·curl·telnet·网络测试
blackorbird5 小时前
新型Keenadu安卓固件级后门揭开跨僵尸网络协同攻击链条
android·网络
桂花很香,旭很美6 小时前
[7天实战入门Go语言后端] Go 后端实战踩坑与解法手册
服务器·网络·golang
七夜zippoe6 小时前
图神经网络实战:从社交网络到推荐系统的工业级应用
网络·人工智能·pytorch·python·神经网络·cora
REDcker7 小时前
从 SS7 到 VoLTE:核心信令协议栈与移动网络演进详解
开发语言·网络·sip·移动网络·volte·ss7·七号信令