TSN协议解读系列 | (1) 帧抢占:br老先生的旅途

news2024/7/4 6:10:28

帧抢占协议还是怀念以前那个车马很慢,书信很远,带宽顶天也就几十兆的年代。

▎旧时代的辉煌

1983年秋,IEEE 802.3大学正式成立,这所大学遵循的是严格的标准化管理,数据包们的衣食住行都需要符合学校的规定,就比如那一眼望过去完全统一的着装。

在这里插入图片描述
图1 802.3帧格式

帧抢占是位老先生,生于上世纪90年代,不知何许人也,躬身于实时系统领域十余载,2016年也算正式拿到了802.3大学的教职,大家都称呼他br先生。老先生闲时爱和旁人唠嗑,每每聊到那些年的研究,总用那神采飞扬的眼光去照顾一下四周,自豪之情溢于言表。

老先生的研究专注于数据包的调度,研究课题叫做《论如何给予高优先级数据包一定的特权从而避免低优先级反转现象的发生》。里面的低优先级反转呢,就是高优先级的数据包需要等待低优先级数据包传完了才能传,也是一个经典问题了,解决方法也没几个。老先生研究的方案啊,简单来说其实就是插队,插队可是一门艺术。

在这里插入图片描述
图2 不同情况下高优先级的转发时序

要知道以前那学校条件可不好,能用的带宽最多也就那么十几二十兆,办事效率那叫一个低下,那啥反转现象一发生,高优先级数据包高低不得浪费个几毫秒,多来几次的话几秒不就下去了,啧,数据包那得闹上天。

在这里插入图片描述
图3 单跳节约延迟

扯远了,再说那老先生,他就想着怎么去解决这办事慢的问题了,想来想去最终就实现了这个插队的方法,还在学校里面开展了试验。首先说他改的那着装,四十多年的以太网校服那是说改就改,直接给那第一张图里面的校服改了两个样式的,说是怕把被抢占数据包的事给忘了。让那低优先级数据包没事的时候就穿左边这套和之前差不多的,要是被插队了就换右边那套穿,到时候办事的人看见就可以接着办了。看到右边那套的CRC了没,办完了事的才戴CRC,没办完的就换个mCRC戴着,m就是没,就没办完的意思。还有那个Frag_count,那是看被插了几次队用的,这记录可不能丢,丢了到时候就不给你办事。

在这里插入图片描述
图4 mPacket两种格式

要说br老先生那时候那叫一个意气风发,连MAC层都给他分成了两个,一个preemptable MAC专门处理那些低优先级数据包的事的,一个express MAC专门处理那些高优先级的事的,办事的人拿不定主意直接电话打过去问就行。这都是有标准化流程的,叫那啥状态机来着。

在这里插入图片描述
图5 pMAC和eMAC

上面这改来改去的,当时的以太网局子都给惊动了,还过来问了好几个问题,那问题我还记得呢,可逗了。

问:你干嘛?
答:降点延迟…
问:这么降??
答:嗯…
问:哎,让那帮数据包一次办的事少点不就行了…
老先生夸夸掏了张表出来:可以是可以,不过据我分析还是1500字节左右的时候办事效率高点,你瞧,数据段占了98%呢。
老先生可是早有准备的。

在这里插入图片描述
图6 不同帧长下数据段占据的比例

老先生还是可惜了,你知道以太网局子里的人最后是怎么说的吗,他们说:哎,辛苦br先生了,不过你放心,马上大家的办事效率就会高起来了。

老先生何许人也,以太网局子里的人不清楚,他还能不清楚吗。办事效率高起来之后,他的研究也就失去了继续的意义了。十兆一毫秒,百兆百微秒,千兆十微秒,老先生心里有他自己的一把尺。

▎落幕,追寻救赎的旅途

以太网局子的愿景很快就实现了,百兆千兆的网络开始常见,十G百G也不再稀奇。而从这时起,大家就开始经常在他那MAC Merge实验室外见到他靠坐在墙根处了。和他唠嗑,还是满口那些mCRC、SMD、状态机啥的,叫人半懂不懂的。虽然内容还是差不多,但大约和以前的确是不太一样了。

许久没有在实验室墙根处见到过老先生了,问了问那帮子刚招的数据包才了解了一点情况。说是老先生已经不打算再往深了做课题了,最近在和802.1大学那个很火的Qbv实验室整横向项目呢,项目好像是叫做《论如何基于保护带策略深化802.3br实验室与802.1Qbv实验室的合作:Hold与Release的妙用》,还听说基于这个项目在802.1大学整了一个Qbu实验室。

老先生真乃神人也。

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

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

相关文章

SpringBoot + layui 框架实现一周免登陆功能

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

便携式明渠流量计工作原理

便携式明渠流量计工作原理是什么? 简单来说便携式明渠流量计是一种用于测量明渠水流量的仪器。它的工作原理基于流速-水位关系,通过测量水流速度和水位差来计算明渠的流量。 具体原理如下: 1.测量水流速度:通常使用悬挂在水中的水…

Kubernetes快速进阶与实战:构建可靠的容器化应用平台

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 1. 什么是Kubernetes&am…

企业面临的IP风险,如何应对?

IP风险画像为企业或组织在知识产权领域面临的潜在风险和威胁的综合概览。通过对相关知识产权的保护和管理,企业可以预测和应对潜在的法律、商业和声誉风险。 IP数据云帮助企业更好地了解和应对知识产权方面的风险。并提供了关于当前全球知识产权环境的重要信息&…

Yolov8原理详细解析!一文看懂

引言 Yolo(You Only Look Once)是一种one-stage目标检测算法,即仅需要 “看” 一次就可以识别出图片中物体的class类别和边界框。Yolov8是Ultralytics公司最新推出的Yolo系列目标检测算法,可以用于图像分类、物体检测和实例分割等任务。 根据官方描述&…

linux添加sht3x温湿度传感器驱动记录

最近拿到一块imx6ull板子,上面有一颗温湿度传感器sht30,需要读取其数值。本人能力有限,自己写驱动还有一点困难,好在 linux内核里自带了很多器件的驱动,只需要找到相关的驱动文件根据要求修改一下设备树、添加进内核里编译就可以。…

【ES】Elasticsearch 常见的简单查询

查看es中有哪些索引 请求方式:GET 请求地址:http://localhost:9200 /_cat/indices?v 参数:无 结果: 查看索引全部数据 请求方式:GET 请求地址:http://localhost:9200/index-2023-08/_search 参数&a…

VUE之jspreadsheet电子excel表格实时动态高度设置

问题:excel电子表格在不同屏幕大小下横向滚动条会被遮挡 排查原因:由于excel高度固定导致 解决方法:设计页面较多,所以封装公共方法 步骤: 1.使用混入封装动态设置excel高度方法: const mixinJexcel …

MySQL行格式 又称 记录格式

行格式 ROW_formate compact 行格式dynamic 行格式 默认compress 行格式 行格式定义 创建表同时指定行格式 create table 表明 ( 列的信息) row_formate行格式名称 修改行格式 alter table 表明 ROW_FORMATE 行格式名称 查看mysql8.0 默认行格式 select innodb_default_row_…

HTTP状态码504(Gateway Timeout)报错原因分析和解决办法

文章目录 504报错原因分析一、用户角度1. 代理服务器问题2. 网络问题 二、网站管理员角度1. 服务器负载过重2. 网关配置问题3. 目标服务器响应慢4. IIS/nginx/apache服务关闭5. 维护或故障6. 数据库的慢处理也会导致504 用户角度可以采取哪些措施解决504错误1. 刷新页面2. 检查…

Viobot定位用于导航

注:此教程以轮式机器人作为一个样例,具体的应用还需要用户自己去做更深入的开发。当然,着并不是唯一的方法,有更好的方法也欢迎大家讲一下自己的思路,有什么说错的地方也欢迎大家批评指正。 路径规划部分我们选用轮式机…

什么是量化交易接口?(股票下单接口)特点(一)

股市领域里的量化交易接口是一种用于与金融市场进行交互的编程接口,它允许开发者通过计算机程序自动执行交易策略。量化交易接口通常提供以下功能: 1. 实时市场数据获取:量化交易接口通常可以提供实时的市场行情数据,包括股票、期…

el-upload 上传附件

案例: <template><div><el-drawertitle"附件信息"v-model"drawer"direction"rtl":before-close"handleClose"size"35%":close-on-click-modal"false":close-on-press-escape"false">…

2. 配置版本

2.1 安装 Python 版本 ① 首先打开 Anaconda 的 Prompt 终端&#xff0c;输入 jupyter kernelspec list&#xff0c;查看已经安装的 python 版本。如下图所示&#xff0c;只有 Anaconda 自带的 python3。 ② 输入 conda create --name py3.6.3 python3.6.3 命令&#xff0c;输…

rman备份数据文件和归档指定不同的filesperset

客户说带库上抓小文件会导致带库紧张。 大部分的备份软件都会用filesperset参数来做备份&#xff0c;这样恢复速度快&#xff0c;而且也有利于带库重复删除。 客户用的plus archivelog的形式&#xff0c;一条命令的做全备&#xff0c;现在就有filesperset不区分dbf和arc的情况…

Java之API详解之Objects类的详细解析

5 Objects类 5.1 概述 tips&#xff1a;了解内容 查看API文档&#xff0c;我们可以看到API文档中关于Objects类的定义如下&#xff1a; Objects类所在包是在java.util包下&#xff0c;因此在使用的时候需要进行导包。并且Objects类是被final修饰的&#xff0c;因此该类不能被继…

跨境电商独立站如何实现全球开店,获得更多流量?

对于独立站卖家来说&#xff0c;针对一个国家搭建一个站点、运营&#xff0c;就已经要花上不少力气了。更别说想要在多个市场售卖了&#xff0c;每个国家不同的货币、语言、定价、付款方式等等就已经够让人头大。 研究显示&#xff0c;40%的人不会从其他语言的网站上购买产品。…

Windows系统配置jar包自启动

目录 一、下载 WinSW.NET4.exe二、创建windows的目录结构三、编写xml配置文件四、检查环境4.1 是否安装jdk4.2 是否存在.net framework4的服务 五、安装 一、下载 WinSW.NET4.exe https://github.com/winsw/winsw/releases 下载完毕改名为jar名&#xff0c;也就是 项目.exe64位…

QT使用QImage做图片切割

#include "mainwindow.h" #include "ui_mainwindow.h" #include <QFileDialog> #include <QDebug>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) {ui->setupUi(this);// 选择本地图片文件QString …

了解java中的通配符“?“

目录 通配符的作用 先看一段代码 用通配符"?"后,代码变化 结论 通配符上界 通配符下界 对通配符上下界的注释理解及其练习代码 简记: ? 用于在泛型的使用&#xff0c;即为通配符. 在Java中&#xff0c;通配符&#xff08;wildcard&#xff09;主要用于泛型…