来源:TSNLAB 微信公众号
TSN的端到端应用到底需不需要专用的TSN端侧设备?现有的端设备要升级成所谓的TSN端需要软件升级 or 软件+硬件升级?
这是本文试图回答的问题。
从技术的角度,TSN分为有界时延、资源管理、高可靠性、时间同步四大部分(相关细节如不清楚,请读者查阅其它文章)。先捏后三个软柿子:
资源管理:如果使用纯分布式架构,则端侧需要通过资源预留协议(MSRP或RAP)与TSN网络设备进行信息交互,完成资源预留的过程;如果使用分布式用户、集中式网络架构,则端侧也需要通过资源预留协议或其它方式完成与网络的信息交互。所以对于这两种情况,端侧需要软件升级。如果使用纯集中式架构,则端侧不需要额外的工作。
高可靠性:涉及端设备的一个是多发选收(FRER),如果复制点需要在端上,则需要硬件+软件支持,不过这种情况下,这个端是bridged end-station,即包含多个网络接口的、带有桥接功能的端。另一个是基于流的过滤和策略(PSFP),这里指端侧根据网络的反馈,在报文的特定字段携带特定信息,当然这不是必需的能力。综上,可以简单理解为,端侧没有必需的升级要求。
时间同步:首先看应用场景有没有精准时间同步的需求。如果有,一般来讲软件升级即可(如Linux支持标准PTP),而硬件仅会影响时间同步的效果。不排除有时间同步的实现方案设计成硬件依赖的模式。
最后,我们来讲有界时延。既然是“时间敏感网络”,保障端到端有界时延肯定是核心。这里的端到端,指从发送端设备的网络接口发出,到抵达接收端设备的网络接口。当TSN网络设备使用CBS、ATS等调度方案时,对端侧的发送行为没有额外的要求。换言之,网络需要了解端侧的行为(资源管理的部分),但不需要端侧去定制自己的行为。仅当TSN网络设备上使用基于时间门控(Qbv)的调度方案时(CQF也属于时间门控调度方案),对端侧的发送行为的协同会有一定额外的要求。这个要求也不是必需的,只是如果端侧无法协同,则端到端时延上界无法达到最佳效果。
展开来讲,如果网络和端侧间有精准时间同步,且网络了解端侧发送关键报文的周期和相位,就可以精准地设计门控,在关键报文抵达时,把其它非关键报文队列关闭,防止对关键报文排队调度造成干扰。由于我们这篇文章讲的是端,那我们看看这时端需要做什么。我们这里假设端设备同时存在实时应用和非实时应用。看下图:

1. 如果端侧没有实时内核(在系统调度里实时应用无法抢占非实时应用),则实时应用的发包抖动可能是ms级别的。也就是说,即使有us级甚至ns级的时间同步,应用想在1点1分1.000000秒发送报文,结果实际报文发出网口的时间会有ms级别的抖动。这对于ms级的TSN门控就会有非常大的影响,而us级的TSN门控则几乎不可行。
2. 如果端侧有实时内核,实时应用可以抢占非实时应用,则实际发包的抖动可能有几十到几百us,比前一种情况好得多。
3. 如果硬件(比如网卡)有队列能力(可以类比成单队列Qbv来理解),按照精准时间同步的时间,开门发送报文,这时实际发包的抖动就可以达到近似于时间同步的精度,即ns级。
4. 如果硬件支持多队列,则虽然发包抖动的精度相比于情况3不会再提高,但可以实现多种业务的灵活调度。
综上所述,如果对端侧发送报文的时间精度有ns或个位数us级别的要求,则这时需使用的TSN端对硬件有要求。