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

相关推荐
FPGA信号处理1 小时前
【人工神经网络】第一讲:竞争网络与自组织特征映射:从胜者为王到保序映射
网络
吴声子夜歌2 小时前
Kubernetes权威指南——Kubernetes安装配置指南(网络配置)
网络·容器·kubernetes
硅基造物主2 小时前
STM32 从 0 到 1 做智能家居(十二):USART2 分时复用 —— ESP-12F + MQTT
网络·stm32·mqtt·智能家居·esp-12f
我不会起名字3222 小时前
TCP 三次握手为什么是三次:丢包、重传与初始序列号
网络·tcp·原理·握手
Yang96112 小时前
鼎讯信通DXA-3S光纤熔接机:光缆教学中的技术精粹解析
网络
xbzb3 小时前
IP、掩码、网关、DNS 到底谁管什么?网络基础与七种设备一次讲清
网络·网关·mac·ip·dns·掩码
前进吧-程序员4 小时前
C++20 协程入门实战:从 co_await 到一个 100 行的异步任务调度器
网络·c++·c++20
前进吧-程序员4 小时前
实战:C++20 协程 + io_uring 写一个 400 行的 echo server
网络·c++·c++20
云飞云共享云桌面5 小时前
机械制造研发部门:一台SolidWorks云主机替代 10 台传统图形工作站
运维·服务器·网络·3d·自动化·制造
靠coding维持生计的potato5 小时前
从HTTP到存储——文件上传的底层原理梳理
http