- 文献综述(或调研报告):
网络中数据包的传递有三种服务类型[1],一是最常见的尽力而为(Best Effort)的服务,即完全不提供任何的可靠性和实时性保证,性能只能是统计性的,并且有小概率出现很高时延的情况;二是恒定比特率传递,通常由时分复用(TDM)设施提供,延迟是固定的,抖动基本上为零;三是时间敏感网络服务,与尽力而为的服务不同的是,网络和应用有一系列约定,其规定了TSN流拥有一个特定的带宽,网络为其预留带宽、缓存和调度资源。因此对于TSN流,这些约定提供了有界的延迟和零拥塞。
IEEE 802.1Q(Bridges and Bridged Networks)的中的一系列TSN相关协议详细的定义了TSN的各个组成部分:
时钟同步是TSN的基础,只有通过同步后的时钟,所有的网络设备才可能一致的运行,并且恰好在所需的时间点执行所需的操作。时钟同步的精度直接影响时间敏感流的时延。TSN通常使用由一个中心时间源分发给各个网络设备的方式来同步时间。IEEE 802.1AS-2011[2]定义了通用精确时间协议(Generic Precision Time Protocol, gPTP),它通过发送UDP消息来建立时钟层级,并在一个gPTP域内同步时间。
因为时间敏感网络需要避免缓存溢出和拥塞造成的丢包,因此有时需要流量整形来是流量变得更加平滑,减小猝发。IEEE 802.1Qav[3]定义了采用优先级的流量整形,它采用了一种基于信用的公平队列(Credit-based Shaper, CBS),是一种“泄露桶”的思想,设置发送斜率、闲置斜率和信用等几个参数。简单的说,当没有包发送时,信用以闲置斜率增长,有包发送时则以发送斜率下降,信用为负则不能发送包,通过这种方式来对流进行整形。
IEEE 802.1Qci[4]定义了流的过滤和管制,当数据流从入端口进入时,对流进行过滤和分类,从而使其进入不同优先级的队列。
TSN的调度算法是实现有限时延的关键,通过调度算法来实现时间敏感流固定带宽的传输才能保证时延的确定性。IEEE Qbv[5]定义了时间敏感调度器(Time-aware Shaper, TAS),它的基本思想是时分多路访问,将发出端口的调度周期分为多个时隙,将不同优先级的流分到若干队列当中,不同的时隙分配给不同优先级的队列,从而保证时间敏感流具有固定的带宽。然而,由于到达时间敏感流所在时隙时,可能会出现有包正在传输而带宽被占用的情况,使得时间敏感流无法在时隙内传输。一种解决方案是保护带,当即将到达时间敏感流的发送时隙时(一个最大包发送周期之前),停止发送其他优先级的包,这样可以保证时间敏感流带宽不被占用,但是也造成了带宽的浪费。
IEEE 802.1Qbu/802.3br 帧抢占是不同于保护带的另一种保护时间敏感流带宽的方式。该方法的含义是,在一个门控周期中,如果到达时间敏感流所在的时隙,有包正在传输则立刻中断传输当前的包,转而发送时间敏感流的数据包。当该流所在时隙到来时,再继续发送之前未发送完的包,该数据包在下一个交换机处进行重组。由于不需要这种方法改善了带宽的利用率,但实现较复杂,计算成本较高。
配置协议用于定义TSN如何在网络中进行配置,如预留带宽。IEEE 802.1Qcc[6]定义了流预留协议用于时隙配置,由于该协议实现起来较为复杂,可以采用离线配置的方式进行手动配置来进行其他部分的仿真。
之前已经有一些TSN的相关仿真工作:
Heise等人[7]提出了TSimNet,他们的仿真基于OMNeT 平台,主要研究了TSN的非基于时间的特性,没有包含TSN的最重要特性。
