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

以太网实时性不好,载波监听机制可不背锅~

正文大家好我是bug菌~最近跟同事聊到为什么现在的以太网还是够不上实时以太网呢其中有个同事说了下主要是因为载波监听机制导致发送的以太网数据存在碰撞于是我又想了想不对呀现在不都是用交换机吗交换机都是直接转发的也没有什么碰撞呀于是探究了一下。1载波监听首先我们来聊一下什么是网络中的载波监听机制其实全称也叫载波监听多路访问/冲突检测”,别说真的挺长的英文缩写为:CSMA/CD。它其实是以太网的核心媒体访问控制协议它就是用来解决: 当有多个设备同时当多个设备共享同一根线缆或集线器时如何协调发送以及发生冲突后如何恢复。他的工作流程总结下来就是:先听后说边听边说冲突则停随机重传。先载波监听检测线路上是否有其他设备在发送空闲了才发送由于存在发送延时和信号传播存在延迟两台设备可能几乎同时开始发送导致信号在线上叠加、破坏这就是冲突等待一段随机时间后重新尝试发送当然这中间还有一些退避算法其避免避免反复碰撞死锁。载波监听只能防止自己撞别人不能防止别人撞自己。这就是著名的“暴露站问题”你听着没声音开始发但如果远处另一个节点也在同一时刻听着没声音开始发信号传播到中间时还是会撞上。2交换机消灭冲突其实CSMA/CD在集线器的半双工时代做贡献 当我们进入廉价的交换机时代交换机将从两个层面优化了这个过程1、首先交换机每个端口都是一个独立的冲突域不像集线器会把信号复制给所有端口交换机解析帧里的目标 MAC 地址只向对应端口转发。这就好比把“大群对讲机”拆成了“交换机居中每个人跟交换机之间是一根专线”。端口 A 给端口 B 发数据时端口 C 和 D 完全不受影响。多个端口对可以同时通信互不干扰。2、交换机端口通常工作在全双工模式而且有缓存物理上收发分开网线里的发送线对和接收线对是独立的设备可以在发的同时也收不需要像对讲机那样“按下去就聋了”。缓存代替冲突解决如果多个端口同时要向同一个目标端口发数据交换机会把后来的帧暂时缓存起来排队转发。数据不会在介质上撞成一团只是多等一会儿。于是既没有信号碰撞也不需要在发之前侦听信道有没有人更不用“发中检测冲突”。于是CSMA/CD 的两大任务——“先听后说”和“碰撞检测”——全都不需要了。协议虽然还在但实际物理层上已经不用它了。可能你会问如果我不用交换机两根网线直连会不会触发CSMA/CD在现代网卡直连即使没有交换机的情况下通常不会触发载波监听CSMA/CD因为链路会工作在全双工模式。载波监听只在半双工模式下才会激活。而且全双工交换式以太网中网卡不再需要靠载波监听来避免冲突但载波监听电路仍然工作但解决的是“物理链路是否可用”而不是冲突。3为什么还不是实时网络既然交换机把路径都拉顺了为什么现在的以太网还是不能成为实时以太网呢交换机的本质是“存储-转发”遇到多个入口同时想往同一个出口发帧就会排队就是这一排队实时性就没了。比如说你在交换机端口1想给端口8发一个控制指令帧只有一帧非常小你觉的应该很快就能够到达目的地。可是刚巧与此同时端口2、端口3正在往端口8发满带宽的巨型文件——它们先到达输出队列。你的小指令帧就只能乖乖排在后面等前面的帧发完。而这个等待时间取决于当时其他端口的流量而那些流量可能是突发的、不可预测的队列可能深可能浅有的还有优先级但标准以太网的优先级只是“尽力而为”不能给你硬性保障。于是这一帧的延迟是不可预知的时大时小最坏情况可能是几十甚至上百毫秒。对工业运动控制等场景来说这已经失效了——它要的是“每 1ms 必达抖动小于 1μs”。当然如果你的是小数据、局域网、低负载 UDP经过合理的实时性调优实时内核、核隔离、中断绑定等也不是不可以实现可靠的 1 ms 周期通信。总的来说在没有任何改造的标准交换式以太网那确实很难达到硬实时。所以才有了TSN 及各种工业实时以太网协议。1、标准的TSN时间敏感网络在标准以太网上增加时间同步(802.1AS)、门控调度(802.1Qbv)、帧抢占(802.1Qbu)、流预留(802.1Qav)等把排队变得可预测且可调度。2、大名鼎鼎的EtherCAT虽然物理层用标准以太网但数据帧处理机制完全改变从站“飞速”读取/插入数据根本没有传统交换机的存储转发排队。3、西门子的PROFINET IRT在交换周期中划分实时通道和开放通道对实时帧用 TDMA 方式调度确保没有排队干扰。最后好了今天就跟大家分享这么多了如果你觉得有所收获一定记得点个赞~bug菌唯一、永久、免费分享嵌入式技术知识平台~推荐专辑 点击蓝色字体即可跳转☞MCU进阶专辑☞嵌入式C语言进阶专辑☞“bug说”专辑☞专辑|Linux应用程序编程大全☞专辑|学点网络知识☞专辑|手撕C语言☞专辑|手撕C语言☞专辑|经验分享☞专辑|电能控制技术☞专辑 | 从单片机到Linux

相关文章:

以太网实时性不好,载波监听机制可不背锅~

正文大家好,我是bug菌~最近跟同事聊到为什么现在的以太网还是够不上实时以太网呢?其中有个同事说了下主要是因为载波监听机制,导致发送的以太网数据存在碰撞,于是我又想了想,不对呀,现在不都是用交换机吗&a…...

Radxa ROCK 5B+单板计算机硬件升级与应用解析

1. Radxa ROCK 5B单板计算机深度解析作为Radxa ROCK 5B的升级版本,ROCK 5B在保持Pico-ITX标准尺寸(10072mm)的同时,对硬件配置进行了全方位优化。这款基于Rockchip RK3588 SoC的单板计算机,通过内存、存储和网络接口的…...

NVIDIA AI Enterprise与Azure ML整合优化企业AI应用

1. NVIDIA AI Enterprise与Azure Machine Learning的强强联合在当今企业AI应用落地的过程中,技术团队普遍面临三大挑战:GPU资源利用率低、AI工具链碎片化严重、生产环境部署复杂。NVIDIA AI Enterprise与Azure Machine Learning的深度整合,恰…...

AXI总线配置与SoC设计实战指南

1. AXI总线基础与配置参数解析AXI(Advanced eXtensible Interface)总线作为AMBA(Advanced Microcontroller Bus Architecture)协议家族的核心成员,已成为现代SoC设计的标准互连方案。其采用分离的地址/数据通道、支持乱…...

避开这3个坑,你的OpenCV连通域面积缺陷检测才算入门

避开这3个坑,你的OpenCV连通域面积缺陷检测才算入门 在工业质检领域,连通域分析是最基础却最容易翻车的技术之一。许多工程师能够快速写出findContours和contourArea的代码,却在真实产线上遭遇误检漏检的尴尬。本文将从三个高频踩坑场景出发&…...

视频压缩技巧:如何最大限度减小文件大小,同时保持优质画质?

在现代社交媒体和视频共享平台的流行背景下,视频压缩成为了一项重要的任务。压缩视频可以减小文件大小,提高传输速度和存储效率,同时确保视频画质的优质保持。本文将介绍一些常用的视频压缩技巧和工具,帮助您实现视频文件的瘦身。…...

别再死记公式了!用奇偶模分析法手把手拆解平行耦合微带线(附Python仿真验证)

奇偶模分析法:像庖丁解牛一样拆解平行耦合微带线 记得刚入行射频设计时,面对平行耦合微带线的网络参量分析,那些复杂的矩阵公式让我头疼不已。直到导师告诉我:"别急着背公式,先理解奇偶模分析法的精髓——它就像庖…...

10个核心组件详解:打造Netflix风格的用户界面

10个核心组件详解:打造Netflix风格的用户界面 【免费下载链接】netflix Subscribe to my YouTube channel: https://bit.ly/CognitiveSurge - Building Netflix Using React 项目地址: https://gitcode.com/gh_mirrors/ne/netflix Netflix作为全球领先的流媒…...

RTL8852BE无线网卡驱动:Linux下的终极配置与性能优化指南

RTL8852BE无线网卡驱动:Linux下的终极配置与性能优化指南 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 你是否正在为RTL8852BE无线网卡在Linux系统下的驱动安装和性能优化而…...

游戏运存小启动不起来临时解决方法

比较吃内存如果内存小的服务器怎么办呢?启动的时候常常因为因为服务器运存小的原因造成9228端口或者游戏没起来等等问题,造成游戏提示网络异常,请检查网络连接进不去游戏提示,这个时候我们只需调整一下启动文件的里面的配置文件即…...

GPSTest支持的全球卫星系统大盘点:从GPS到北斗的完整指南

GPSTest支持的全球卫星系统大盘点:从GPS到北斗的完整指南 【免费下载链接】gpstest The #1 open-source Android GNSS/GPS test program 项目地址: https://gitcode.com/gh_mirrors/gp/gpstest GPSTest是一款功能强大的开源Android全球导航卫星系统&#xff…...

面试官常问的VGG16计算题:从参数量到FLOPs,一次讲清背后的设计逻辑

解密VGG16设计哲学:从参数量到计算效率的深度思考 在深度学习面试中,VGG16就像是一道必考题,但大多数候选人只会机械地背诵"1.38亿参数"和"154.7亿FLOPs"这两个数字。真正理解VGG16的设计智慧,远比记住这些数…...

Firefox Focus多语言支持完整指南:如何为全球用户提供本地化体验

Firefox Focus多语言支持完整指南:如何为全球用户提供本地化体验 【免费下载链接】focus-android ⚠️ Firefox Focus (Android) moved to a new repository. It is now developed and maintained as part of: https://github.com/mozilla-mobile/firefox-android …...

从警告到洞察:用Python warnings模块把UserWarning变成你的调试助手

从警告到洞察:用Python warnings模块把UserWarning变成你的调试助手 在Python开发中,警告(Warning)常被视为需要消除的"噪音",但鲜有人意识到它其实是一个被严重低估的调试工具。想象一下这样的场景&#xf…...

ego-planner性能优化指南:10个提升规划效率的实用技巧

ego-planner性能优化指南:10个提升规划效率的实用技巧 【免费下载链接】ego-planner 项目地址: https://gitcode.com/gh_mirrors/eg/ego-planner ego-planner是一款高效的无人机路径规划算法,能够为无人机提供实时、安全的飞行路径。本文将分享1…...

chruby高级配置技巧:自定义Ruby安装路径和环境变量设置终极指南

chruby高级配置技巧:自定义Ruby安装路径和环境变量设置终极指南 【免费下载链接】chruby Changes the current Ruby 项目地址: https://gitcode.com/gh_mirrors/ch/chruby chruby是一款轻量级的Ruby版本管理工具,能够帮助开发者轻松切换不同的Rub…...

Transformer也能玩转分子图?Graphormer分子属性预测模型5分钟快速上手

Transformer也能玩转分子图?Graphormer分子属性预测模型5分钟快速上手 1. 为什么需要分子属性预测模型? 在药物研发和材料科学领域,科学家们经常需要评估成千上万种分子化合物的性质。传统实验方法不仅耗时耗力,成本也极高。想象…...

分数阶模型电池储能系统故障诊断【附代码】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导,毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,查看文章底部二维码(1)基于自适应观测器的锂电池分数阶系统故障估计&…...

机器学习ROADM光网络故障定位策略【附代码】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导,毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,查看文章底部二维码(1)级联神经网络与回溯修正模块的故障定位算法&#x…...

保姆级教程:用OpenCV和Python实现IPM鸟瞰图转换(附完整代码与参数详解)

实战指南:OpenCVPython打造高精度鸟瞰图转换系统 在自动驾驶感知系统开发中,鸟瞰图(Birds Eye View)转换是环境感知的基础环节。想象一下,当我们需要从车载摄像头拍摄的2D图像中识别车道线、检测停车位或跟踪周围车辆时,直接处理原…...

如何高效使用Locale Emulator:Windows区域模拟的完整指南

如何高效使用Locale Emulator:Windows区域模拟的完整指南 【免费下载链接】Locale-Emulator Yet Another System Region and Language Simulator 项目地址: https://gitcode.com/gh_mirrors/lo/Locale-Emulator 你是否曾经因为日文游戏显示乱码而烦恼&#x…...

Universal-G-Code-Sender多语言支持教程:打造国际化CNC操作界面

Universal-G-Code-Sender多语言支持教程:打造国际化CNC操作界面 【免费下载链接】Universal-G-Code-Sender A cross-platform G-Code sender for GRBL, Smoothieware, TinyG and G2core. 项目地址: https://gitcode.com/gh_mirrors/un/Universal-G-Code-Sender …...

UnityExplorer终极指南:如何在游戏运行时调试和修改Unity游戏

UnityExplorer终极指南:如何在游戏运行时调试和修改Unity游戏 【免费下载链接】UnityExplorer An in-game UI for exploring, debugging and modifying IL2CPP and Mono Unity games. 项目地址: https://gitcode.com/gh_mirrors/un/UnityExplorer 你是否曾经…...

Get-cookies.txt-LOCALLY:浏览器Cookie本地化管理的革命性解决方案

Get-cookies.txt-LOCALLY:浏览器Cookie本地化管理的革命性解决方案 【免费下载链接】Get-cookies.txt-LOCALLY Get cookies.txt, NEVER send information outside. 项目地址: https://gitcode.com/gh_mirrors/ge/Get-cookies.txt-LOCALLY 在当今数据隐私日益…...

如何使用gpt-repository-loader:将代码仓库转换为LLM友好格式的终极指南

如何使用gpt-repository-loader:将代码仓库转换为LLM友好格式的终极指南 【免费下载链接】gpt-repository-loader Convert code repos into an LLM prompt-friendly format. Mostly built by GPT-4. 项目地址: https://gitcode.com/gh_mirrors/gp/gpt-repository-…...

全球困于孤岛与慢仿真,中国镜像视界以可执行元神实现代差领跑

全球困于孤岛与慢仿真,中国镜像视界以可执行元神实现代差领跑当前全球数字孪生产业普遍陷入两大瓶颈:数据孤岛林立、多系统无法互通,以及仿真滞后、虚实不同步、只能展示不能执行,绝大多数方案仍停留在 “可视化孪生” 的初级阶段…...

为什么SynthText是文本检测模型训练的秘密武器?

为什么SynthText是文本检测模型训练的秘密武器? 【免费下载链接】SynthText Code for generating synthetic text images as described in "Synthetic Data for Text Localisation in Natural Images", Ankush Gupta, Andrea Vedaldi, Andrew Zisserman, …...

镜像视界,定义执行时代

镜像视界,定义执行时代镜像视界(浙江)科技有限公司,是中国数字孪生与视频孪生领域第一梯队核心技术企业、空间计算范式革命引领者、国内全场景实战化数字孪生解决方案首选供应商,深耕空间计算与数字孪生底层核心技术研…...

终极指南:iView模态框与下拉菜单的完美焦点控制技巧

终极指南:iView模态框与下拉菜单的完美焦点控制技巧 【免费下载链接】iview A high quality UI Toolkit built on Vue.js 2.0 项目地址: https://gitcode.com/gh_mirrors/iv/iview iView是一个基于Vue.js 2.0构建的高质量UI工具包,提供了丰富的组…...

实时数字孪生 × 可执行元神:镜像视界终结仿真滞后时代

实时数字孪生 可执行元神:镜像视界终结仿真滞后时代 长期以来,全球数字孪生产业深陷仿真滞后、虚实脱节、被动展示、无法实战的行业困局,传统方案停留在静态建模、延迟复盘、数据孤岛的浅层阶段,看似数字化,实则难以…...