1. 概述
众所周知,通用以太网是以非同步方式工作的,网络中任何设备都可以随时发送数据,因此在数据的传输时间上既不精准,也不确定。同时,广播数据或视频等大规模数据的传输,也会因网络负载的增加而导致通讯的延迟甚至瘫痪。因此,通用以太网技术仅仅是解决了许多设备共享网络基础设施和数据连接的问题,但却并没有很好的实现设备之间实时、确定和可靠的数据传输。
2006年,ieee802.1工作组成立avb音频视频桥接任务组,并在随后的几年里成功解决了音频视频网络中数据实时同步传输的问题。这一点立刻受到来自汽车和工业等领域人士的关注。2012年,avb任务组在其章程中扩大了时间确定性以太网的应用需求和适用范围,并同时将任务组名称改为现在的tsn任务组。
tsn(time-sensitive networking)是在非确定的以太网中实现确定性最小时延的协议族,是ieee 802.1开发的一套协议标准,为以太网协议的数据链路层提供一套通用的时间敏感机制,为标准以太网提供了确定性和可靠性。
tsn是关于以太网通讯协议模型中的数据链路层(mac层)的协议标准。tsn是一套协议标准,而不是一种协议,即,tsn为mac层提供一套通用的时间敏感机制,在确保以太网数据通讯的时间确定性的同时,为不同协议网络之间的互操作提供了可能性。
tsn能实现时间敏感性(对实时性要求高)数据和非时间敏感性数据在同一网络的传输,即tsn可以与非 tsn 设备互操作,但确定性通信仅可在启用 tsn 的设备之间进行。
tsn协议族本身具有很高的灵活性,用户可以根据应用的具体需求来选择相应的协议组合。tsn标准有许多协议还在制定中,不过这并不妨碍tsn在汽车领域的应用,只要有tsn的核心组件即可投入使用。tsn有4个核心组件,分别是时间同步、低延迟、可靠性和资源管理。
2. tsn协议族
tsn协议族包含了时钟同步、低延迟(数据调度及流量整形)、可靠性、资源管理这四个类别的子协议。
2.1 时钟同步
所有通信问题均基于时钟,确保时钟同步精度是最为基础的问题,tsn工作组开发基于ieee1588的时钟,并制定新的标准ieee802.1as-rev,它用于实现高精度的时钟同步。
- as – 时钟同步
ieee1588协议,又称ptp(precise time protocol,精确时间协议),可以达到亚微秒级别时间同步精度。
ptp的主要原理是延时响应机制(delay request-response mechanism),如图所示:
ieee802.1as-rev针对ieee1588规范进行了扩展,扩展的内容包括:
- 所有域常用peer延迟服务;
- 支持精细时间测量ftm;
- 对链路聚合(802.1ax)的支持;
- 改善的使用范围-包括1步时间戳标准化处理以及针对长链、环的支持;
- 更好的响应能力,这包括了更快的主站交互、降低bmca收敛时间;
- 支持了多域的同步信息传输以及冗余支持能力(可配置冗余路径和冗余主站);
- 对无线网络采用时间测量提供更好的支持;
2.2 低延迟
汽车中传输的数据可以分为三种,scheduled traffic、reserved traffic、best-effort traffic,他们对于延迟的要求越来越低。
- scheduled traffic:如底盘控制数据,必须按照严格的时间要求送达,这类数据延迟一般要求不超过5毫秒,甚至有些不超过1毫秒。
- reserved traffic:预留数据。这类数据延迟可以根据需要适当放宽。
- best-effort traffic:只需要尽力而为的传输,例如娱乐系统数据,对于延迟要求最低。
tsn通过定义不同的数据调度及流量整形,优化上述三种类型数据在网络中的传输过程,将数据流的时延限定在一定范围内,以此来保证不同类型数据流对的传输延迟的不同要求。
下表是tsn中几种主要的整形方法的对比:
- qav – 循环排队和转发
qav是基于信用的整形器,即cbs(credit based shaper)。qav采用“信用(credit)”机制在时间上均匀地分配帧以避免突发,主要特点是:
- 每个队列都可以分配有cbs整形器,拥有cbs整形器的队列也有各自的信用;
- 在预留带宽(idleslope)内提供平滑的数据流,使其在时间上均匀地分配帧;
- 保证较低优先级流量(如best-effort流量)的一定带宽,也有传输的机会;
- 避免缓冲区溢出和报文丢失;
此协议制定初衷是确保传统的异步以太网数据流不会干扰到avb的实时数据流传输。现在qav不再局限于音视频的传输。此协议规定了每类优先级的入口计量、优先级再生以及处理时间感知队列的算法,示例如下。
- qbv – 时间感知整形器 (tas)
调度流量(scheduled traffic)对于低延迟抖动有比较高的要求,而严格优先级(spq)和基于信用的整形器(cbs)均无法保证数据在网络中的延迟抖动。
qbv定义了时间感知整形器(tas,time-aware shaper)。tas使以太网帧被标识并指派给基于优先级的vlan tag,每个队列在一个时间表中定义,然后这些数据队列报文在预定时间窗口在出口执行传输,同时,其它队列将被锁定在规定时间窗口里。tas避免了周期性数据被非周期性数据所影响,使得每个交换机的延迟是确定的,因此,在tsn网络的数据报文延时被得到保障。
ieee 802.1qbv定义了通过调度算法启用或禁用帧传输的门,将以太网通信划分为固定长度、连续重复的周期。这些周期被分成时隙,在每个时隙中,数据通过被赋予不同的优先级实现在指定时隙中的传输。由于此操作,时间敏感流可以拥有专用时隙,从而确保此流量在传统以太网网络上的确定性传输。另一方面,预留流量和best-effort流被容纳在每个周期的剩余时隙中。预留流量保证有专用带宽,而best-effort流可以使用剩余的带宽。
通过time aware shaper为优先级较高的时间敏感型关键数据分配特定的时间槽,并且在规定的时间节点,网络中所有节点都必须优先确保重要数据帧的通过。
由于tas的运行基于不同的时间时隙发送不同类型的流量,因此所有网络设备必须在纳秒级范围内同步。
qbv主要为那些时间严苛型应用而设计,其必须确保非常低的抖动和延时。qbv确保了实时数据的传输,以及其它非实时数据的交换。不过,tas不一定具备最佳的带宽使用。
- qbu和br – 抢占
对于特别重要的数据,tsn定义了抢占机制,它由802.1qbu/802.3br共同构成。
- ieee802.1qbu:将在队列排队中报文等级进行分类,按等级可被分为可被抢占帧和抢占帧。
- ieee802.1br:设计了快速帧(express frame,通过emac发送)的mac数据通道,快速帧可以抢占可抢占帧(preemptable frame,通过pmac发送)。当低优先级帧的传输过程中有高优先级帧可传输时,以太网mac可以中断低优先级帧的传输,立即开始发送高优先级帧。当高优先级帧结束时,mac 可以从中断处继续传输低优先级帧,最终以两个(或更多)片段发送低优先级帧。
- qch – 循环排队和转发
由于qav中定义的cbs是通过软实时进行实现,但网络传输路径的复杂(例如拓扑、跳数、交换机缓冲等)和各种干扰会导致持续的延时增加,802.1qch(循环队列转发机制或蠕动整形)就是用于改善这些状况。
qch通过同步控制入队和出队的策略,使得转发过程得以在一个周期内实现,以便使数据流经过交换机的时间更具确定性。802.1qch协议还定义了cqf(需与qci协议配合使用),其中qci标准会根据达到时间、速度、带宽,对bridge节点输入的每个队列进行过滤和监管,用于保护带宽、增加对burst流以及错误的处理。
- qcr – 异步流量整形
qch和qbv中设计的整形算法主要用于超低延时的数据,其高度依赖网络时间同步,以及在强制的周期中增强的包传输,但是对带宽的利用率并不高,因此有了qcr(也叫ats)用于异步流调度。
通过此整形方式,bridge和终端节点无需时间同步,可以更加高效的利用带宽传输混合周期和非周期数据流的应用。
2.3 可靠性
为了应对网桥节点失效、线路断路和外部攻击带来的各种问题,tsn还设计了高可靠的数据传输机制,来确保功能安全和网络安全。tsn的可靠性特性,可以协助高级别自动驾驶系统(l3级及以上)达到asil d的功能安全等级。
tsn的可靠性主要依靠ieee 802.1cb、ieee 802.1qca和ieee 802.1qci来实现。
- cb –冗余
ieee 802.1cb为以太网提供双链冗余特性,通过在网络的源端系统和中继系统中对每个数据帧进行序列编号和复制,并在目标端系统和其他中继系统中消除这些复制帧,确保仅有一份数据帧被接收。
cb可用来防止由于拥塞导致的丢包情况,也可以降低由于设备故障造成分组丢失的概率及故障恢复时间,提高网络可靠性。
- qci – 每个数据流的过滤和控制
为了防止网络故障影响或恶意攻击对网络造成的干扰,802.1qci将故障隔离到网络中的特定区域。
802.1qci又称之为ingress policing,工作于交换机的入口,它对每个流量都进行过滤和管理,简称psfr。数据流滤波器包括数据id、优先权、滤波值、meter(计量)id、计数器。
qci通过各种约束来监管每个流的输入,以防止出站队列被非法帧淹没。qci专门对付ddos这样的网络攻击,假如一个数据流流量突然增大,有可能挤压另一个数据流的带宽时,入口管理政策会将数据流整形,强制回到数据流爆发前的状态。
此外,802.1qci还可以对付arp(address resolution protocol)欺骗攻击。802.1qci可以识别这种欺骗,并阻止错误信息的发送。
arp欺骗攻击:arp是根据ip地址获取物理地址的一个tcp/ip协议。主机发送信息时将包含目标ip地址的arp请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该ip地址和物理地址存入本机arp缓存中并保留一定时间,下次请求时直接查询arp缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送arp应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机arp缓存。由此攻击者就可以向某一主机发送伪arp应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个arp欺骗。
2.4 资源管理
在tsn网络中,每一种实时应用都有特定的网络性能需求。使能tsn网络的某个特性是对可用的网络资源进行配置和管理的过程,其允许在同一网络中通过配置一系列tsn子协议,来合理分配网络路径上的资源,以确保它们能够按照预期正常运行。
tsn资源管理子协议包括ieee 802.1qat协议和ieee 802.1qcc协议。
ieee802.1qat即流预留协议。根据流的资源要求和可用的网络资源情况指定数据准入控制,保留资源并通告从数据源发送端至数据接收端之间的所有网络节点,确保指定流在整条传输路径上有充足的网络资源可用。 qat协议解决网络中音视频实时流量与普通异步数据流量之间的竞争问题。通过协商机制,在音视频流从源设备到不同交换机,再到终端设备的整个路径上,预留出所需的带宽资源,以提供端到端(end-to-end)的服务质量及延迟保障。
qcc协议是qat协议的增强,是tsn的网络资源管理的主要协议,用于实现对网络参数的动态配置,以满足设备节点和数据需求的各种变化。
3. tsn的开发
3.1 tsn的开发流程
tsn可以参照“v”模型进行tsn的设计、开发和测试:
- 数据流定义及分析。分析实际场景中的数据流和延迟需求,制定合适的tsn系统策略。
- tsn网络设计。包括:1)基于标准、需求规范、应用场景分析,依据数据流分析的结果和车型网络拓扑,选择网络协议,设计各tsn协议配置参数,输出tsn系统配置文档。2)结合车载网络业务场景,设计tsn参数并进行仿真测试,主要参数包括:mac/vlan、静态流预留配置参数、时钟同步参数、cbs整形参数、tas整形参数、流量监管参数、数据流传输协议参数,等等。
- tsn开发。包括tsn协议栈的开发、配置和部署,tsn原型验证平台搭建。
- tsn零部件和系统测试。对网络性能进行仿真分析,定量评估网络设计参数。
3.2 tsn的主要车载交换机芯片
全部tsn相关标准还在持续更新中,芯片的开发周期通常都要3-4年,目前主要有三款车载tsn交换机芯片:
- nxp的sja1105tel,支持802.1qav/qbv,802.1as,还支持802.1qci;
- 博通的bcm53162,支持802.1qav/qbv,802.1as,还支持802.1qci;
- marvell的88q5152,支持:802.1as-2020/qat/qav/qbu/qbv/qci/qcr/cb
我是雪岭飞花,汽车行业24年开发经验,自动驾驶行业发展的见证者和参与者,自动驾驶感知和控制系统资深专家。做有深度、高质量的技术分享,推动自动驾驶技术的普及和发展。
更多文章请参考:雪岭飞花:文章索引 - 知乎
如果文章对您有帮助,还请关注、点赞、收藏。如有疏漏或者错误,还请批评指正。
微信公众号:雪岭飞花
微信: maxhnnl
知乎: https://www.zhihu.com/people/lwascl-73
发表评论