【网络技术】心跳机制(入门讲解)

news2025/1/10 2:34:33

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。


心跳机制


目录

  • 心跳机制
  • 1. 原理
  • 2. 作用
  • 3. 实现方案
    • 3.1 方案一:服务器主动发送心跳包
    • 3.2 方案二:客服端主动发送心跳包


1. 原理

客户端每隔N秒向服务端发送一个心跳消息,服务端收到心跳消息后,回复同样的心跳消息给客户端。如果服务端或客户端在M秒(M>N)内都没有收到包括心跳消息在内的任何消息,即心跳超时,就认为目标TCP连接已经断开。


2. 作用

通知服务器,客户端存活状态,一旦服务器监测到在某段时间没有收到客户端发来的心跳包,服务器就会释放曾经为此客户端分配的所有资源,例如Socket连接


3. 实现方案

3.1 方案一:服务器主动发送心跳包

服务器建立定时器,定时发送心跳包给到客户端,客户端收到心跳包后,立即发送心跳包给到服务器,服务器收到客户端发来的心跳包后确认客户端的连接可用,不执行释放socket相关的操作。
如果服务器端没规定的时间间隔内没有收到客户端响应的心跳包,服务器端就认为客户端的连接不可用,执行释放socket相关的操作。

优势:对于那些需要管理和监控大量客户端连接的服务器来说,服务器可以更加主动地控制和释放不活跃的连接,及时回收资源。
劣势:当客户端数量非常大时,服务器可能需要频繁地发送大量心跳包,这可能会导致不必要的网络和服务器负载。对服务器的要求比较高。

3.2 方案二:客服端主动发送心跳包

客户端定时主动的发送心跳包给到服务器端,服务器端收到心跳包后对相关的socket进行加标识,然后服务器端发送响应心跳包给到客户端。客户端收到心跳包认为连接可用。
如果服务器端超过一段时间没有收到心跳包,相关的socket的标识符回进行降权,直至失效,然后服务器端会释放这个socket相关的资源。这个对服务器的性能要求不那么高。

优势:服务器不需要主动检查每一个连接的状态,而是由客户端主动报告其状态,这样可以减轻服务器的负担。
劣势:客户端需要实现心跳逻辑,并确保在连接期间定期发送心跳。对于电池供电的移动设备来说,频繁的心跳可能会消耗更多的电量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/999587.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GB28181,sdk,设备集成和平台测试

本文章主要测试记录集成gb28181的arm端,用公开的平台测试gb2818的视频传输等 系统: 平台:windows10 设备:arm-cortex-A7,1.3G 平台软件:SkeyeVSS gb28181的协议等,在这里就不具体讨论,网上有很多资料,可自行查阅。 本文只是测试一下&am…

抖音小店:庞大用户基数与强大商业化能力的未来发展

抖音小店作为抖音平台的一项新业务,已经取得了一定的成绩,并且具备着广阔的未来发展空间。以下是四川不若与众对抖音小店未来和发展的分析。 首先,抖音小店的用户基数庞大,这为其未来的发展提供了坚实的基础。截至2021年底&#x…

SpringBoot自动配置入门

文章目录 前言自动包规则原理及初始化自动配置1.SpringBootConfiguration2.ComponentScan3.EnableAutoConfiguration(1)AutoConfigurationPackage(2)Import(AutoConfigurationImportSelector.class) 4.修改默认配置 总结&#xff…

SAP ABAP根据网址跳转至对应的网页

SAP ABAP根据网址跳转至对应的网页 程序代码: DATA: lv_openurl TYPE c LENGTH 300,lv_tempurl TYPE char50." Url可由多个字符串组合lv_openurl https://www.baidu.com/.CALL FUNCTION CALL_BROWSEREXPORTINGurl lv_openurl * WINDOW_…

白炽灯护眼还是led护眼效果好?精选专业护眼台灯

不得不说现在的小孩子近视率是真的很高,根据目前的数据统计全国儿童青少年总体的近视率为52.7%,这个近视率是非常高的!而导致这么多孩子近视的原因有很多,例如长时间学习用眼、玩耍电子产品、不良的用眼习惯等等,其实还…

虚函数表存储的位置(解析C++内存分配及其编译分段)

先上结论:C虚函数表保存在.rdata只读数据段。编译时期由编译器确定虚函数表。虚函数表属于类,类的所有对象共享这个类的虚函数表。 c/c的内存分配 栈(stack):又称堆栈,栈是由编译器自动分配释放&#xf…

hive location更新hive元数据表详解

1.hive location更新方式 一、通过修改表DDL: alter table table_name set location hdfs://nm:8020/table_path 二、直接修改hive 的meta info: update DBS set DB_LOCATION_URI replace(DB_LOCATION_URI,"oldpath","newpath")update SDS…

如何将两台Mac显示器设置为单个屏幕配置

​能够在扩展模式下将两个或多个外部显示器连接到Mac是一种解放的屏幕体验,但当每个显示器仍然像独立显示器一样工作时,会导致沮丧。 在这里,我们向你展示如何通过对系统设置进行一些简单的更改,使两个扩展屏幕看起来像一个屏幕。…

如何get一个终身免费续期的定制数字人?

想拥有一个“数字分身” 吗?给你一个终身免费续期的特权。 定制周期长?训练、运营成本高?成片效果生硬?无法应用于实际场景? 随着AIGC技术的快速发展,虚拟数字人的生成效率不断提高,训练成本逐…

Android平台GB28181接入SDK

华脉智联推出的Android平台GB28181接入SDK,可实现不具备国标音视频能力的 Android终端,通过平台注册接入到现有的GB/T28181—2016服务,可用于如执法记录仪、智能安全帽、智能监控、智慧零售、智慧教育、远程办公、明厨亮灶、智慧交通、智慧工…

苹果和富士康加速撤离的后果显现了,或将失去中国这个最大市场

日前网络流传的消息指特定群体将不能在公众场合使用iPhone,这直接导致苹果的市值暴跌万亿元人民币,凸显出中国市场对苹果的巨大影响,如今中国已是苹果最大的收入来源市场,今年二季度中国首次超过美国成为iPhone销量第一的市场。 苹…

网络协议百科全书:28张图带你搞懂TCP

大家好,我的网工朋友。 不仅仅是网工,只要你是做IT相关的工作,肯定都离不开网络。 那网络中最重要的协议,大概非TCP莫属,谁去面试没被问过网络协议的相关问题? 谁没买过那本最经典的《TCP/IP详解》 。 …

HAM高可用配置及故障切换

1.什么是 MHA MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换的…

AIGC:【LLM(七)】——Baichuan2:真开源可商用的中文大模型

文章目录 一.模型介绍二.模型部署2.1 CPU部署2.2 GPU部署 三.模型推理3.1 Chat 模型推理3.2 Base 模型推理 四.模型量化4.1 量化方法4.2 在线量化4.3 离线量化4.4 量化效果 五.模型微调5.1 依赖安装5.2 单机训练5.3 多机训练5.4 轻量化微调 一.模型介绍 Baichuan 2 是百川智能…

Learning From Data 中英文对照 1.THE LEARNING PROBLEM (第6页)

1.1. PROBLEM SETUP 图1.3:在二维输入空间中直线可分数据的感知器分类(A)一些训练示例将被错误分类(红色区域的蓝色点,反之亦然),用于定义分离线的权重参数的某些值。(B)。最后一种假设将所有的训练样本分类正确。(O是1,x是-1) …

基于Python和mysql开发的今天吃什么微信小程序(源码+数据库+程序配置说明书+程序使用说明书)

一、项目简介 本项目是一套基于Python和mysql开发的今天吃什么微信小程序(,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含:项目源码、项目文档、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目…

Android USB电源管理

The USB peripheral detects the lack of 3 consecutive SOF packets as a suspend request from the USB host. 1 驱动shutdown顺序 系统关机或重启的过程中,会调用设备驱动的shutdown函数来完成设备的关闭操作,有需要的设备可以在驱动中定义该函数。其…

【实操干货】如何开始用Qt Widgets编程?(五)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 在本文中&#xff0…

PHPWord 模板输出checkbox复选框和checked已勾选状态,以及 模板替换时数据如何分行

PHPWord 模板输出checkbox复选框和checked已勾选状态,以及 模板替换时数据如何分行 期望目标 和 模板配置复选框代码数据分行显示在使用PHPWORD模板替换时,经常会有 动态渲染选择项 和 选择项需要被勾选的要求,以及动态数据分行显示等要求。 本文根据 空复选框、勾选复选框…

加强身份验证安全性:深入了解身份证二要素核验API

前言 在数字化时代,随着在线业务和电子交易的不断增加,确保用户的身份安全变得至关重要。身份验证是许多行业的核心要素,从金融机构到电子商务,从社交媒体到医疗保健,都需要有效的方式来确认用户的真实身份。传统的用…