TSN(Time-Sensitive Networking)时间敏感网络 | 协议导读

TSN(Time-Sensitive Networking)时间敏感网络 | 协议导读前言上一个主题我们介绍了TSN的发展历史和协议族现状,它为建立统一的确定性网络传输基础设施提供了有力保障。TSN是一套协议标准,以保证确定性信息在标准以太网的不同场景下的顺利传输。TSN协议族本身具有很高的灵活性,用户可以根据应用的具体需求来选择相应的协议组合。TSN协议族包含了定时与同步、延时、可靠性、资源管理这四个类别的子协议,我们借用下图来简要叙述TSN各个子协议的作用和功能。时间同步此部分仅包含一份协议,即IEEESTD802.1AS(最新版本已于2020年6月发布),此协议包含

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

前言

上一个主题我们介绍了TSN的发展历史和协议族现状,它为建立统一的确定性网络传输基础设施提供了有力保障。

TSN是一套协议标准,以保证确定性信息在标准以太网的不同场景下的顺利传输。TSN协议族本身具有很高的灵活性,用户可以根据应用的具体需求来选择相应的协议组合。

TSN协议族包含了定时与同步、延时、可靠性、资源管理这四个类别的子协议,我们借用下图来简要叙述TSN各个子协议的作用和功能。

在这里插入图片描述

时间同步

此部分仅包含一份协议,即IEEE STD 802.1AS(最新版本已于2020年6月发布),此协议包含两部分内容:定时与同步,这是实现确定性通信的重要机制,它具有以下特点:

· 是IEEE 1588 PTP同步协议的Profile,支持不同的TSN器件实现同步兼容性

· 为TSN网络中每个节点参与流量调度提供了时间基准

· 此协议增加了对容错和多个Grand Master主时钟源的支持,使时钟同步系统具备更强的鲁棒性

· 可以在主时钟源失效的情况下,无缝切换至冗余时钟源

延时

此部分通过定义不同的整形机制将数据流的延时限定在一定范围内,以此满足不同的低延时场景需求。在传统以太网中,数据流的通信延时是不确定的,由于这种不确定性,数据接收端通常需要预置大缓冲区来缓冲输出,但是这样会导致数据流,例如音视频流,缺失了实时方面的特性。

TSN不仅要保证时间敏感据流的到达,同时也要保证这些数据流的低时延传输。

通过优化控制时间敏感流和best-effort流、以及不同时间敏感流之间在网络中的传输过程,来保证对数据流的传输时间要求,这个优化控制的方式就是整形。

在这里插入图片描述

802.1Qav

此协议制定初衷是确保传统的异步以太网数据流不会干扰到AVB的实时数据流传输。现在Qav不再局限于音视频的传输。

此协议规定了每类优先级的入口计量、优先级再生以及处理时间感知队列的算法(CBS,效果如下图)。

其利用IEEE 802.1AS协议生成的定时信息,和VLAN优先级来隔离受控和非受控队列之间的帧,同时支持时间敏感流量在有线或无线局域网之间传输。

在这里插入图片描述

802.1Qch

由于Qav中定义的CBS机制实现的仅是软实时级别机制,但网络传输路径拓扑的复杂和各种干扰会导致持续的延时增加,而最差延时情况与拓扑、跳数、交换机的缓冲都有相关性,802.1Qch(循环队列转发机制或蠕动整形)就是用于改善这些状况。

通过同步控制入队和出队的策略,使得转发过程得以在一个周期内实现,以便使数据流经过交换机的时间更具确定性。

在这里插入图片描述

802.1Qch协议还定义了CQF(需与Qci协议配合使用),其中Qci标准会根据达到时间、速度、带宽,对Bridge节点输入的每个队列进行过滤和监管,用于保护带宽、增加对Burst流以及错误的处理。

802.1Qbv

流量调度是TSN的核心概念,根据时间同步协议802.1AS提供的全局时间基准,创建调度任务并将其分发给参与的网络器件。

802.1Qbv定义了通过控制TSN交换机出口处闸门的开关来控制排队流量的机制,这些队列中的消息将在预设的时间窗口中进行传输。

通常,在这些时间窗口内,其他队列的传输将被阻止,从而避免被调度流量被非调度流量阻塞,这样保证数据通过交换机的延迟是确定的。

在这里插入图片描述

802.1Qbu

尽管Qbv的机制可以保护关键消息免受其他流量的干扰,但不一定能够实现最佳带宽使用和最小通讯延迟。如果这些因素对于需要传输的数据很重要,可以采用802.1Qbu + 802.3br所定义的帧抢占机制来保障。

802.1Qbu协议中定义了中断标准以太网帧和巨型帧的传输,使高优先级帧优先通过的机制,同时可以恢复先前被中断的帧的传输。

如下所示,通过缩减为干扰帧所设置的保护区域的大小、对干扰帧进行合理切片来达到目的。

在这里插入图片描述

802.1Qcr

Qch和Qbv中设计的整形算法主要用于超低延时的数据,其高度依赖网络时间同步,以及在强制的周期中增强的包传输,但是对带宽的利用率并不高,因此有了Qcr(也叫ATS)用于异步流调度。

通过此整形方式,Bridge和终端节点无需时间同步,可以更加高效的利用带宽传输混合周期和非周期数据流的应用。

可靠性

对数据传输实时性要求高的应用除了需要保证数据传输的时效性,同时也需要高可靠的数据传输机制以便应对Bridge节点失效、线路断路和外部攻击带来的各种问题,来确保功能安全和网络安全。

802.1CB

为了减少由于链路和节点失效对网络造成的影响,通过冗余消息以及在网络中设置冗余链路进行并行传输来提高可靠性。

802.1Qca路径控制和预留标准定义了设置此类路径的方式,然后冗余管理机制将这些冗余消息组合在一起,以生成发送方至接收方的单个信息流。

在这里插入图片描述

802.1Qci

802.1Qci为了防止网络故障影响或恶意攻击对网络造成的干扰,将故障隔离到网络中的特定区域。它工作于交换机的入口,通过各种约束来监管每个流的输入,以防止出站队列被非法帧淹没。

在这里插入图片描述

资源管理

在TSN网络中,每一种实时应用都有特定的网络性能需求。

使能TSN网络的某个特性是对可用的网络资源进行配置和管理的过程,其允许在同一网络中通过配置一系列TSN子协议,来合理分配网络路径上的资源,以确保它们能够按照预期正常运行。

802.1Qat

流预留协议(SRP)。它根据流的资源要求和可用的网络资源情况指定准入控制,保留资源并通告从数据源发送端至数据接收端之间的所有网络节点,确保指定流在整条传输路径上有充足的网络资源可用。

802.1Qcc

此协议为流预留协议(802.1Qat)的增强,包含对更多流的支持、可配置的流预留类与流、更完善的流特征识别、对高层流的支持、确定性流预留融合以及用于路由和预留的用户网络接口(UNI)。

802.1Qcc支持TSN网络调度的离线或在线配置。

802.1Qcp

YANG数据模型。其定义了基于统一建模语言(UML)的信息模型和YANG数据模型,该模型允许对Bridge节点进行配置和状态报告。

它同时也定义了信息和数据模型之间的关系,协议中指定的其他管理功能以及IEEE Std 802.1AX和IEEE Std 802.1X的模型。

小结

由于篇幅有限,文中仅摘录了TSN中相对成熟的子协议进行了解释。更多相关内容,欢迎大家与我们进行探讨交流,后续我们也将分享更多相关技术干货,敬请关注!


———————————————————————————————————————-

喜欢此篇文章的话欢迎一键三联支持小编吧~!

更多相关资讯及业务介绍,欢迎访问上海北汇信息官方网站:上海北汇信息科技有限公司
北汇官方知乎账号:北汇信息-知乎
更多技术干货,行业前沿动态,请关注上海北汇信息官方公众号:
在这里插入图片描述

联系方式:

电话:021-34716271

邮箱:info@polelink.com

北汇信息成立于2010年,是一家技术驱动的创新型服务企业。北汇信息始终专注于汽车电子领域的新技术和新产品,为整车厂和零部件企业提供完整的研发、测试解决方案。从测试工具、专用测试设备、完整测试方案到实车测试服务,我们与我们的客户一起努力,让中国的汽车变得越来越安全、越来越舒适、越来越智能。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210435.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java 标识符,分隔符,关键字[通俗易懂]

    java 标识符,分隔符,关键字[通俗易懂](一)标识符的介绍   Java语言中,对于变量,常量,函数,语句块也有名字,我们统统称之为Java标识符.标识符是用来给类、对象、方法、变量、接口和自定义数据类型命名的。  Java标识符由数字,字母和下划线(_),美元符号($)或人民币符号(¥)组成。在Java中是区分大小写的,而且还要求首位不能是数字。最重要的是,Java关键字不能当作Java标识符。下面的标识符是合法…

    2022年7月7日
    21
  • c+ explicit_staticint与int的区别

    c+ explicit_staticint与int的区别C++ explicit关键字详解首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的例子:class CxString // 没有使用…

    2022年8月18日
    5
  • 冯诺依曼与哈佛结构的区别[通俗易懂]

    冯诺依曼与哈佛结构的区别[通俗易懂]cortexM3,M4主要采用哈弗结构       个人理解:最主要的区别在于程序空间和数据空间是否是一体的,冯·诺依曼结构数据空间和地址空间是不分开的,而哈佛结构数据空间和地址空间是分开的      哈弗结构的优势:如果采用流水线设计,如三级流水线:取指,译指,…

    2022年10月4日
    2
  • 明德云课堂计算机应用基础,旻德云课堂官网版app「建议收藏」

    明德云课堂计算机应用基础,旻德云课堂官网版app「建议收藏」旻德云课堂app在线快速提供各种云课堂教学软件。该软件使用户可以更好地教云教室。它还提供了各种不同的云端课程,使每个人都可以更好地享受在线云课堂教学,也是最近非常热门的线上云课堂app!软件介绍旻德云课堂app课堂教学的便利性还使老师和同学之间可以更好地进行在线互动,使两方之间的交流变得更加无忧,同时,还可以提高课堂效率,使两方之间的交流更加畅通。简单快捷。旻德云课堂app怎么样?不同的课程都有详…

    2022年6月12日
    86
  • ubuntu eclipse 乱码「建议收藏」

    ubuntu eclipse 乱码「建议收藏」今天,把windows下的工程导入到了Linux下eclipse中,由于以前的工程代码,都是GBK编码的(Windows下的Eclipse默认会去读取系统的编码,所以Widnwos下的Eclipse的编码为GBK),而Ubuntu默认是不支持GBK编码的。所以,首先我们要先让Ubuntu支持GBK,方法如下:修改/var/lib/locales/supported.d/local文

    2022年5月25日
    36
  • python标识符可以使用关键字_printf是关键字还是标识符

    python标识符可以使用关键字_printf是关键字还是标识符一、标识符用户自定义的、由程序使用的符号。不能是关键字由字母、数字、下划线组成。开头只能是字母和下划线。如:widthheightnamestudent二、关键字python预先定义了一部分具有特殊意义的标识符,用于自身使用,成为关键字或保留字。python常用关键字:33个…

    2025年10月10日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号