快速了解时间敏感网络(TSN)_Part2

2023-10-13 14:30

本文主要是介绍快速了解时间敏感网络(TSN)_Part2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        大家好,上期我们介绍了TSN是什么,能够给我们带来什么好处以及TSN的用途。在文章的后面也给我们的协议介绍起了个头,讲解了TSN中用到的时钟同步系统IEEE 802.1AS-Rev。

 

        今天我们就开始介绍TSN协议族中的其他成员包括:延迟(TAS和帧抢占)、流量监控(802.1Qci)和冗余(802.1CB)

 

IEEE 802.1Qbv Time Aware Shaper

        时间感知整形(TAS)可以说是TSN里的一个核心协议,正是它的应用为车内时间敏感数据提供了超低的延时及抖动的保证。我们知道,以太网的数据是在总线上串行传输的,如图5,当有多个数据在交换机出口等待被转出时(不同的数据会根据VLAN Tag中的优先级在不同的队列中排队等待),谁先出谁后出就决定了数据的延迟大小。

 

图5 以太网出口队列示意图

 

        TAS通过开关门的机制,来控制数据的发送。如图6,通过右侧的Gate Control list来控制每个队列在某一时刻的开关门状态,以右侧黑框圈出的T05举例,该时刻 队列7到队列0的开关门状态分别是CoCCoCCC(C表示关门,o表示开门)。数据只有在开门的时候才可以进行发送,也就是说该时刻只有队列6和队列3可以发送数据。

 

图6 TAS 开关门控制 (图片部分引自IEEE 802.1Q)

 

        一般来讲 Gate Control List是周期循环的,在关键数据(图7中TC1数据)发送前和发送中,我们会关闭其他数据的发送,以保证TC1数据不会受到影响。从而为TC1提供超低的延时保证。同时周期性开关门的特性也说明TAS更适合为周期性数据提供延时的保障。

 

图7 TAS举例

 

IEEE 802.1 Qbr & IEEE 802.3bu 帧抢占

        帧抢占是TSN协议族中另一个提供延迟保障机制的协议,该协议通过修改前导码将正常的以太网帧分为两类:Express MAC (EMAC 高优先级帧) 和 Preamble MAC(PMAC 低优先级帧)。通过高优先级帧可以打断正在发送的低优先级帧这一特性,减小高优先级的等待时间。以图8中的数据为例,正常情况下,第一行蓝色的PMAC帧先发送后,即使后面再来的EMAC帧也必须等待当前正在发送的PMAC帧发送完成后才能发送。但是应用了帧抢占后,EMAC帧可以打断PMAC帧进行发送,当EMAC帧发送完成后,剩余的PMAC帧再进行发送。这样一来就可以节约下了EMAC帧的等待时间。

 

图8 帧抢占举例

 

        除了帧抢占自己单独使用可降低延时之外。还可以与上面提到的TAS结合使用以减小Grandband的大小(如图9),从而在频繁开关门的情况下提高网络利用率。

 

图9 帧抢占结合TAS减小Grandband

 

        最后在应用帧抢占的时候有三点注意:

•  数据 “被且仅被” 分成两类:PMAC帧和EMAC帧

•  需要依赖底层支持,将原有的MAC层分为EMAC 和 PMAC

•  PMAC可被打断的最小帧长度为124Bytes 小于该长度不能被打断

 

IEEE 802.1Qci Per-Stream Filtering and Policing

        TSN协议族中的PSFP协议类似防火墙的机制,它可以对转发前的数据进行筛选和过滤,对特定标识的数据帧加以控制。以图10为例,正常情况下ECU1和ECU2各自发送20Mbps数据,但是由于ECU1受到网络攻击或者自身发生错误,导致发送90Mbps的数据。此时由于switch出口处支持100M带宽,那么ECU2至多能发送10Mbps的数据,因此无法正常工作。

 

        如果该系统中应用了PSFP,那么此机制可以提前根据数据流的特征(VLAN,MAC地址,IP地址等)识别出ECU1所允许发送的数据流仅能为20Mbps,因此就会对其进行错误处理,方式分为两种:

•  PSFP限制:限制数据流发送,降低到预设值

•  PSFP阻断:完全阻断错误数据流

 

        此外PSFP还可以防止网络攻击(例如ARP攻击),以及通过其中的门控机制确保被筛选出的数据在特定的时机进行发送等。

 

图10:PSFP举例

 

IEEE 802.1CB Frame Replication and Elimination for Reliability (FRER)

        802.1CB 协议主要负责数据的冗余备份传输,利用冗余机制解决环路网络拓扑中,可能由CRC、线路开路,连接器断开等导致的信息错误或丢失。如果应用了自动驾驶,并且有一个较高的功能安全等级,那么FRER几乎成为了一个关键的选择。

 

图11. R-tag 及序列号

 

        在发送时,其会为特定数据打上标签和序列码(如图11),并且在不同通路上复制传输。在链路汇聚点处,复制信息会被识别并消除,以防止接收节点的上层应用处理多个重复数据。其应用大致分为两种形式:终端节点承担FRER工作(如图12)或 Switch节点成端FRER工作(如图13)。后者相比于前者,实现起来难度较低,设计变更和复杂程度也会相对较小。

 

图12. 终端节点承担FRER功能

 

图13. Switch承担FRER功能

 

 

这篇关于快速了解时间敏感网络(TSN)_Part2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/203869

相关文章

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

hdu 4565 推倒公式+矩阵快速幂

题意 求下式的值: Sn=⌈ (a+b√)n⌉%m S_n = \lceil\ (a + \sqrt{b}) ^ n \rceil\% m 其中: 0<a,m<215 0< a, m < 2^{15} 0<b,n<231 0 < b, n < 2^{31} (a−1)2<b<a2 (a-1)^2< b < a^2 解析 令: An=(a+b√)n A_n = (a +

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

poj 2112 网络流+二分

题意: k台挤奶机,c头牛,每台挤奶机可以挤m头牛。 现在给出每只牛到挤奶机的距离矩阵,求最小化牛的最大路程。 解析: 最大值最小化,最小值最大化,用二分来做。 先求出两点之间的最短距离。 然后二分匹配牛到挤奶机的最大路程,匹配中的判断是在这个最大路程下,是否牛的数量达到c只。 如何求牛的数量呢,用网络流来做。 从源点到牛引一条容量为1的边,然后挤奶机到汇点引一条容量为m的边

v0.dev快速开发

探索v0.dev:次世代开发者之利器 今之技艺日新月异,开发者之工具亦随之进步不辍。v0.dev者,新兴之开发者利器也,迅速引起众多开发者之瞩目。本文将引汝探究v0.dev之基本功能与优势,助汝速速上手,提升开发之效率。 何谓v0.dev? v0.dev者,现代化之开发者工具也,旨在简化并加速软件开发之过程。其集多种功能于一体,助开发者高效编写、测试及部署代码。无论汝为前端开发者、后端开发者