前言

上一个主题我们介绍了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中相对成熟的子协议进行了解释。更多相关内容,欢迎大家与我们进行探讨交流,后续我们也将分享更多相关技术干货,敬请关注!

TSN(Time-Sensitive Networking)协议导读的更多相关文章

  1. 时间同步——TSN协议802.1AS介绍

    前言之前的主题TSN的发展历史和协议族现状介绍了TSN技术的缘起,最近一期的主题TSN协议导读从定时与同步.延时.可靠性.资源管理四个方面,帮助大家了解TSN协议族包含哪些子协议,以及这些子协议的作用 ...

  2. 【转载】TSN简介及相关资源

    原文:https://blog.csdn.net/u012692537/article/details/86188392 一.简介 1.1 什么是TSN TSN(Time Sensitive Netw ...

  3. 下一代工业通信—TSN(时间敏感网络),工业物联网的助推器

    随着工业物联网(IIoT)的兴起和工业4.0的提出,越来越多的设计师.工程师和最终用户关注TSN(Time-Sensitive Networking,时间敏感网络).TSN为以太网提供确定性性能,本质 ...

  4. 【转载】传统以太网和时间敏感网络TSN的区别

    转载连接:http://www.proav-china.com/News/16800.html ——Biamp亚太区高级工程师   Kane Zhang [专业视听网报道]:[摘要]AVB-Audio ...

  5. TSN 时间敏感网络:缘起 (TSN历史与现状)

    前言 随着工业物联网(IIoT)的兴起和工业4.0的提出,越来越多的设计师.工程师和最终用户关注时间敏感网络(Time-Sensitive Networking,下简称为TSN).TSN为以太网提供确 ...

  6. TSN(时间敏感网络)测试、仿真、分析平台应用攻略

    前言 在汽车领域,近几年车内网络通讯方式的变革诉求,期望能够有更高的数据传输速率,以及保证实时性的通讯方式引入.例如对于ADAS而言,传统的CAN总线已经远远不能满足其对通讯的要求,而基于车载以太网的 ...

  7. A-论文一些好的句子

    Using our techniques, task set transformation is performed by modifying the parameters related to ea ...

  8. 车载以太网第二弹|测试之实锤-AVB测试实践

    背景 AVB(Audio Video Bridging)音视频桥接,是由IEEE 802.1标准委员会的IEEE AVB任务组制定的一组技术标准,包括精确时钟同步.带宽预留和流量调度等协议规范,用于构 ...

  9. 非常不错的LTE架构讲解

    <LTE系统协议架构---通俗易懂超经典> <3GPP协议导读> <3GPP协议36211-850中文翻译> <LTE全套协议汇总> <NB-IO ...

随机推荐

  1. POI 4.0 读取Excel

    ... package POIXLS; import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; ...

  2. 微信小程序(三)开发框架

    基本构成: 数据绑定: 例: <!--index.hxml--> <view> <text data-name="{{theName}}">&l ...

  3. 面霸篇:Java 集合容器大满贯(卷二)

    面霸篇,从面试角度作为切入点提升大家的 Java 内功,所谓根基不牢,地动山摇. 码哥在 <Redis 系列>的开篇 Redis 为什么这么快中说过:学习一个技术,通常只接触了零散的技术点 ...

  4. WPF仿Tabcontrol加载切换多个不同View

    在同一块区域显示不同的视图内容,直接使用Tabcontrol,可能要重写TabItem的控件模板,最直接的方法通过按钮的切换,控制一个ContentControl的Content值,实现切换不同的视图 ...

  5. spring boot(三)整合 redis

    Spring boot 集成redis 为什么要用redis,它解决了什么问题? Redis 是一个高性能的key-value内存数据库.它支持常用的5种数据结构:String字符串.Hash哈希表. ...

  6. LifseaOS 悄然来袭,一款为云原生而生的 OS

    作者:黄韶宇.初扬 审核&校对:溪洋.海珠 编辑&排版:雯燕 LifseaOS 在刚刚过去的云栖大会上,一款新的 Linux Base 操作系统悄悄发布,它就是 LifseaOS(Li ...

  7. 面向对象中static的理解(2) (单例模式)

    作用:只产生一个对象 1 class Yoshi { 2 public: 3 //外界只能通过这种方式调用这一个对象,返回必须是引用 4 static Yoshi& getInstance() ...

  8. FVCOM泥沙模块河流边界处理

    简介 入流河流携带泥沙可以按照节点和边界两种形式给定,这两种方法都是在相关的节点上进行直接赋值,并不能保证进入计算域内泥沙总体积. 相关设置 XX_run.nml 河流参数设置 &NML_RI ...

  9. miRAN 分析以及mRNA分析

    一些参考资料 http://www.360doc.com/content/17/0528/22/19913717_658086490.shtml https://www.cnblogs.com/tri ...

  10. 8.7 进程间的通讯:管道、消息队列、共享内存、信号量、信号、Socket

    进程间的通讯 进程间为什么需要通讯? 共享数据.数据传输.消息通知.进程控制 进程间的通讯有哪些类型? 首先,联系前面讲过的知识,进程之间的用户地址空间是相互独立的,不能进行互相访问,但是,内核空间却 ...