当前位置: 首页 > news >正文

车载以太网之要火系列 - 第46篇:郭大侠学SOME/IP (offer Service):启动时快稍后慢,断断续续哥还在

写在开篇·蓉儿继续挖坑上回说到郭靖搞清楚了Offer Service的基本原理——服务端广播“我会啥我在这”TTL告诉客户端有效期。郭靖合上笔记本突然皱起眉头“蓉儿我有个问题——如果每个ECU都每隔1.5秒发一次Offer那车上几十个ECU网络岂不是要炸”黄蓉咬了口糖葫芦“问得好实际上SD根本不是一直高频发的。今天就把SD的发送策略讲透——启动时快稍后慢断断续续哥还在。”一、不是“一直发”是“启动时多发稳定后少发”黄蓉在白板上画了一条时间线┌─────────────────────────────────────────────────────────────────────┐ │ SD的“三段式”发送策略 │ ├─────────────────────────────────────────────────────────────────────┤ │ │ │ 上电瞬间 │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ 第一阶段Initial Repetition Phase快速重复期 │ │ │ │ ┌─────┬─────┬─────┬─────┬─────┐ │ │ │ │ │ 0ms │100ms│200ms│400ms│800ms│ → 间隔越来越长 │ │ │ │ └─────┴─────┴─────┴─────┴─────┘ │ │ │ │ 目的让客户端快速发现不用等很久 │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ ↓ │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ 第二阶段Repetition Phase重复期 │ │ │ │ ┌──────┬──────┬──────┐ │ │ │ │ │ 1.5s │ 1.5s │ 1.5s │ → 每隔固定时间发 │ │ │ │ └──────┴──────┴──────┘ │ │ │ │ 目的稳定客户端缓存确认服务还活着 │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ ↓ │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ 第三阶段Main Phase稳定期 │ │ │ │ ┌──────┬──────┬──────┬──────┐ │ │ │ │ │ 3s │ 3s │ 3s │ ... │ → 稀疏发送 │ │ │ │ └──────┴──────┴──────┴──────┘ │ │ │ │ 目的维持存在感减少网络负载 │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────┘郭靖恍然大悟“哦原来不是一直高频发是启动时多发几次让客户端快速知道稳定后就少发了”二、为什么不能一直高频发黄蓉反问“你想啊车上几十个ECU如果每个都每隔1.5秒发一次Offer网络会怎样”车辆规模每个ECU频率每秒总消息数带宽占用约100字节/条30个ECU1.5秒/次20条/秒约16Kbps50个ECU1.5秒/次33条/秒约26Kbps100个ECU1.5秒/次67条/秒约53Kbps“虽然53Kbps对于100Mbps以太网来说很小0.05%但没必要。稳定后完全可以把频率降到3秒甚至10秒一次。”三、三段式参数详解黄蓉列了一张典型配置表参数典型值说明Initial Repetition Base Delay100ms初始重试基时Initial Repetition Count5次启动时快速发5次Repetition Base Delay1.5s重复期间隔Repetition Count3次重复期发3次Main Phase Delay3s稳定期间隔TTL3s有效期必须大于Main Phase Delay否则有空窗期重点Main Phase Delay 必须 ≤ TTL最好 ≤ TTL/2否则客户端会认为服务过期。四、郭靖的追问那TTL到底是啥郭靖盯着TTL字段“TTL3秒意思是3秒后服务就下线了那3秒后还没发新Offer客户端怎么办”黄蓉画了一个时序图时间线 0.0秒车窗ECU发OfferTTL3→ 座舱记“服务活到3.0秒” 0.5秒没收到新Offer 1.0秒没收到新Offer 1.5秒车窗ECU发新Offer续约→ 座舱刷新“服务活到4.5秒” ... 3.0秒如果车窗ECU挂了没发新Offer → 座舱“3.0秒到了服务下线删掉”“TTL是客户端用来判断服务是否过期的不是服务端自己倒计时。服务端要定时续约告诉客户端‘我还活着’。”五、那为什么还要TTL不能靠心跳吗郭靖又问“那直接用心跳不就行了TTL是不是多余”黄蓉摇头“心跳只能告诉客户端‘我还在’但TTL还能告诉客户端‘我如果不在了你多久能知道’。**没有TTL有TTL客户端不知道服务什么时候会过期客户端明确知道“有效期X秒”服务端挂了客户端永远不知道服务端挂了TTL超时后客户端自动清理“TTL给了客户端一个‘确定性’——最长等X秒没消息就可以认为服务没了。”六、黄蓉的小本本郭靖翻开她的笔记本上面写着SD的三段式发送策略阶段频率目的快速重复期密集几十到几百毫秒让客户端快速发现重复期中等1-2秒稳定缓存稳定期稀疏几秒到几十秒维持存在感省带宽TTL不是发送间隔是“有效期”Main Phase Delay 必须 ≤ TTL否则有空窗期一句口诀启动时快稍后慢断断续续哥还在写在最后郭靖合上笔记本“原来SD不是一直高频发是启动时多发几次让客户端快速发现稳定后就稀疏发了。TTL是有效期不是发送间隔。Main Phase Delay必须小于TTL否则客户端会以为服务下线。”黄蓉咬了口糖葫芦“那如果客户端启动晚了没听到启动时那几次Offer怎么办”郭靖摇头。“下篇预告客户端主动问Find谁会啥快出现——Find Service详解。”打完收工886。
http://www.rkmt.cn/news/1301704.html

相关文章:

  • Nixtla时间序列预测库实战:从统计模型到深度学习的一站式解决方案
  • 从零构建现代化工作流引擎:架构、实战与生产级部署指南
  • 英雄联盟国服换肤革命:R3nzSkin零风险体验全皮肤
  • Rekall:基于时空查询的视频智能分析工具实践指南
  • 哪款盐汽水适合加班提神?2026年5月五款产品评测办公室场景抗疲劳案例与评价
  • Neovim集成Goose:数据库迁移的现代化编辑器工作流实践
  • ComfyUI-Manager终极指南:3步掌握AI绘画插件管理技巧
  • Arduino COM端口丢失全解析:从USB转串口到原生USB的故障排查指南
  • 免费开源鼠标连点器终极指南:5分钟掌握高效自动化技巧
  • mg3640s,ts8080,ts8100,g5080,g3800,g4800,ix6780,ts8180报错5B00,P07,E08,5b02,1704,1700,5b04佳能V6.200,亲测有用
  • g1810,g3810,ip2700,g5080,g1800,ts3380,TS8380,ts6480报错5B00,P07,E08,5b02,1704,1700,5b04,佳能v6.200,亲测有用。
  • FDTD电磁仿真与MLIR编译器优化实践
  • 10分钟掌握G-Helper:华硕笔记本性能优化的终极轻量方案
  • 从零部署视觉语言大模型:Ask-Anything项目实战与多模态AI应用指南
  • 基于coze-loop框架构建自主智能体:从原理到实战应用
  • 视觉大模型服务化实战:基于InternVL2构建可对话的视觉问答系统
  • 用CircuitPython在嵌入式硬件上复活经典Karel教学机器人
  • gwadd:轻量级Git仓库组管理工具,提升多项目开发效率
  • Arduino与手机蓝牙通信:nRF8001 BLE模块硬件连接与软件配置全解析
  • FiveM技能系统开发指南:从架构设计到实战部署
  • Godot资源管理革命:用电子表格高效配置游戏数据
  • 分布式缓存实战:Redis与多级缓存架构的完整指南
  • 多智能体元学习框架Metaclaw:原理、实现与工程实践
  • 3个关键技术解决Linux硬件监控难题:lm-sensors项目深度解析
  • 从零到一:用winget-install解锁Windows命令行包管理新体验
  • 从零构建AI智能体:核心架构、ReAct模式与工程实践全解析
  • 为什么有些面试问得很细,最后没结果;有些聊得很轻松,却很快发 Offer?
  • 从零构建开源智能体:基于LangChain与Playwright的网页监控实战
  • NVIDIA NemoClaw:一键自动化部署AI大模型,从Hugging Face到生产级推理服务
  • 自托管链接管理平台Linko:Go+React技术栈部署与核心功能解析