TSN 时间敏感网络

2024-03-19 16:36
文章标签 时间 网络 敏感 tsn

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

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

    TSN历史

    TSN是一项从音视频领域延伸至工业、汽车、移动通信领域的技术,最初来源于音视频领域的应用需求,当时该技术被称为AVB,由于针对音视频网络需要较高的带宽和最大限度的实时,借助AVB能较好地传输高质量音视频数据。

图片

    2005年,IEEE802.1工作组成立AVB音视频桥任务组,并在随后的几年里成功解决了音频视频网络中数据实时同步传输的问题。这一点立刻受到来自汽车和工业等领域人士的关注。2012年,AVB任务组在其章程中扩大了时间确定性以太网的应用需求和适用范围,并同时将任务组名称改为现在的TSN任务组。

    不论是AVB和TSN,都主要定位于数据链路层(如图1所示);物理层方面,IEEE也做了新标准:IEEE 802.3bp和IEEE 802.3bw。

图片

图1 传统以太网7层模型结构

    传统以太网

    以太网的概念是1973年提出的,使用CSMA/CD(载波监听多路访问和冲突检测)技术,通常使用双绞线(UTP线缆)进行组网。包含标准以太网(10Mbit/s)、快速以太网(100Mbit/s)、千兆网(1Gbit/s)和10G以太网(10Gbit/s)。它们符合IEEE802.3。

图片

图2 传统以太网数据帧传输随时间分布图

    以太网采用串行方式传输数据,但是带宽由多个设备共享,这也是以太网的优势所在。但是所有的发送端没有基于时间的流量控制,采用尽力而为(BestEffort)的转发机制,即这些发送端永远只是尽最大可能发送数据帧(如图2所示)。如果来自不同设备的数据流在时间上产生重叠,就会发生冲突。由于所有数据流重叠/冲突的部分会遵循QoS优先机制进行转发,这就会造成在网络负载提升以后部分数据包被延迟很久转发甚至被丢弃。在IT行业里有个不成文的规定:当某个交换机的带宽占用率超过40%后就必须要扩容,目的是通过提高带宽来避免拥堵产生。

    以太网在发明之时并未考虑实时信息的传输问题。尽管我们可能熟知的广泛应用于视频会议系统、IP电话产业的实时流媒体协议(RTP)能够在一定程度上保证实时数据的传输,但由于网络传输路径的不确定性和设备处理的并发机制导致不能按顺序传送数据包来提供可靠的传输机制。如若需要排序,就需要设置缓冲区来处理数据。但是一旦采用缓冲机制就会引入新的问题—延迟。即当数据包在以太网中传输的时候从不考虑延时、排序和可靠交付。其最大的缺点是不确定性或称之为非实时性。这种不确定性导致传统以太网并不能满足准确定时通信的实时性要求,一直被视为“非确定性”的网络。

    尽管传统二层网络已经引入了优先级(Priority)机制,三层网络也已内置了服务质量(QoS)机制,仍然无法满足实时性数据的传输。此外,在传统以太网中,只有当现有的包都处理完后才会处理新到的包,即使是在Gbit/s的速率下也需要几百微秒甚至更多的延迟,满足不了车内应用的需求。更何况目前是Mbit/s的速率,延迟最多可能达上百毫秒,这肯定是无法接受的。传统以太网采用的是事件触发传输模式,在该模式下端系统可以随时访问网络,对于端系统的服务也是先到先服务。事件触发模式的一个明显的缺点是当几个端系统需要在同一传输媒介上同时进行数据通讯时,所产生的传输时延和时间抖动会累积。

    TSN诱因

    2011年,美国汽车工程师学会(SAE)以TTEthernet【下简称为TTE】为核心跨界推出了AS6802标准,为了和TTE有所区别,称之为Deterministic Ethernet或 Time-Triggered Ethernet。它是飞机航天领域内的以太网应用标准,也可在汽车上使用。它将时间触发传输的实时性、确定性、容错能力与传统以太网“尽最大努力”传输的灵活性、动态性等特点相结合,可支持不同类型的应用业务。

    TSN发展

    IEEE受到了在2011年AS6802标准的推出的刺激,之后于2012年将AVB任务组改名为TSN,其目标不仅在车载领域,还包括专业音视频领域、工业自动化领域、移动通信领域。TSN的主要支持者包括思科、英特尔、瑞萨、德国工业机器人巨头KUKA、三星哈曼、宝马、通用汽车、现代汽车、博世、博通、德州仪器、恩智浦、三菱电机、LG、Marvell、通用电气等。

    TSN是一系列标准,非常庞大,也非常灵活,可以按需求选择,不过对技术的要求较高,不易抉择。它从四个方面(时间同步、延迟、可靠性、资源管理)考虑扩展传统以太网标准,以满足不同系统在时效性方面的需求。

    后记

    TSN已不再只是一个理想化项目,而是已成为被行业组织认证的广泛使用的标准。从2019年年初的汉诺威工博会可略见TSN对于工业领域的重要性。其主题为“融合的工业——工业智能”,作为“工业智能”的基石,智能化技术和网络化技术自然成为本届工业展的重中之重,涉及的内容包含工业人工智能、协作机器人、数字孪生、工业互联网平台、数字物流等范畴。

    在这个通信领域大军浩浩已临5G元年城下的年度,工业4.0与5G + TSN的融合是近几年的重点。TSN时间敏感网络作为在工业领域融合信息技术(Information Technology,简称为IT)和运营技术(OperationTechnology,简称为OT)的重要桥梁,由其掀起的改造工业互联网IIoT底层架构的浪潮持续演进,相关进展尤为值得关注。

    TSN(Time-Sensitive Networking)协议导读

    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 时间敏感网络的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自

Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

《Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码》:本文主要介绍Java中日期时间转换的多种方法,包括将Date转换为LocalD... 目录一、Date转LocalDateTime二、Date转LocalDate三、LocalDateTim

golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法

《golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法》:本文主要介绍golang获取当前时间、时间戳和时间字符串及它们之间的相互转换,本文通过实例代码给大家介绍的非常详细,感兴趣... 目录1、获取当前时间2、获取当前时间戳3、获取当前时间的字符串格式4、它们之间的相互转化上篇文章给大家介

Feign Client超时时间设置不生效的解决方法

《FeignClient超时时间设置不生效的解决方法》这篇文章主要为大家详细介绍了FeignClient超时时间设置不生效的原因与解决方法,具有一定的的参考价值,希望对大家有一定的帮助... 在使用Feign Client时,可以通过两种方式来设置超时时间:1.针对整个Feign Client设置超时时间

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp