01
什么是时延敏感网络
时延敏感网络(TSN, Time Sensitive Network)是指能保证时延敏感流的服务质量,实现低时延、低抖动和零丢包率的网络。
时延敏感流可分为周期时延敏感流(PTS, Periodic Time Sensitive),比如工厂里的循环控制指令、同步信息,和非周期/零星时延敏感流(STS,Sporadic Time Sensitive),比如事件告警信息。
对于周期时延敏感流,一般采用同步的调度整形机制,即要求全网设备进行精准的纳秒级时钟同步,其最早的思想来自时间触发以太网(TTE, Time-Triggered Ethernet),当前研究的机制包括时间感知整形(TAS)、循环排队转发(CQF)、基于信用整形(CBS)。
对于零星时延敏感流,一般采用异步的调度整形机制,即不需要全网时钟同步,当前的研究机制包括基于紧急度的调度(Urgency-Based Scheduler,UBS)、帕特诺斯特机制(Paternoster)和帧抢占(Frame Preemption)。
看到这么多机制和新名词,它们各自有什么作用,又有什么关联和区别,大脑已经反应不过来了对不对?没关系,忘掉以上名词,接下来小编将带领大家化繁为简、抽丝剥茧、拨云见日,直击时延敏感网络调度整形机制的本质。
02
什么是调度整形机制
调度整形机制是交换机中的两种服务质量保障机制,调度是指队列调度,一般实现在交换机的出端口,包含进入队列、根据调度算法选择发送队列、出队传输三个部分;整形是指流量整形,通过限制端口的转发速率从而防止交换机内部或下一跳出现拥塞。
由于异步调度整形机制无法保证包的最坏时延满足一定阈值,只能保证包的平均时延和同步方法相当,且时延抖动比较大,在网络拥塞的情况下时延敏感流很容易产生丢包,当前的异步机制并不成熟,为更好的阐明时延敏感网络的本质,后文主要先讨论使用同步机制传输周期时延敏感流(PTS)的场景。
03
如何实现低时延、低抖动和零丢包率
那么时延敏感网络如何才能实现低时延呢?首先,网络的每跳时延可分为链路传播时延、交换机处理时延、出端口排队时延三部分,而端到端时延为逐跳时延求和。链路时延和处理时延基本为固定值,所以减少时延必须要减少排队时延,即时延敏感网络的本质就是不排队:先通过优先级队列将时延敏感流和尽力而为流隔开,再从时间上(划分时隙)或空间上(规划路由)将同样的时延敏感流隔开。
实现低时延后,包在交换机里的停留时间很短,包的累积不会超过队列缓冲区大小,从而实现零丢包率;同时,抖动是指时延的变化差值,低时延降低了最坏时延,让时延上界靠近时延下界,减小了时延的变化区间,从而也实现了低抖动。
04
PTS的头号问题:配置时隙
传统的以太网采用“尽力而为”的转发,无法保证包的端到端最坏时延,时延敏感网络采用类似时分复用的方式,为每一个包配置时隙,保证其有足够的时间进行转发。以下总结三种基于时间的调度整形机制和一个时隙配置模型。
- 时间触发以太网(TTE):把时间戳打在包上,通过时间表控制包的发送,让每个包自己知道自己的发送时间,在发包侧就将各个包的发送时间隔开,严格保证时延抖动满足要求。
- 时间感知整形(TAS):利用优先级门控队列,即在优先级队列后加上门控开关,通过门控时间表控制门控开关的打开闭合来保证时延抖动要求。其可以阻断尽力而为流的持续转发,让高优先级的包得到稳定的间隔转发时间,同时PTS流之间依然要将发包时间隔开,时延抖动保证效果才最好。比如每跳时延为T,共有n跳,则可保证端到端时延最大为nT。和TTE相比,让优先级队列决定包何时被转发,降低了对发端的要求,同时时延抖动保证粒度也会弱一些。
- 循环排队转发(CQF):把TAS里只用一个最高优先级队列来接收时延敏感流,变为用奇偶两个队列循环接收,即所谓的乒乓队列。其可以用于解决流聚合问题,如果两个PTS流同时到达了,必有一个PTS要等待转发,循环排队转发可以保证等待的流只等待前一个PTS流转发,即一个周期T,自己再转发一个周期T,假设共有n跳,则端到端时延可保证最大为2nT。
时隙配置模型:时隙的配置问题等同于二进制背包问题,是一个NP-hard问题,时延敏感网络的流量调度和时隙配置架构流程如下图所示,首先需要确定合适的转发平面调度整形机制,然后中心化用户配置(CUC)采集各个发端的发包周期、包大小、流大小、对时延抖动的要求等信息,以及网络的拓扑信息,并将这些信息作为输入,放入时隙配置模型中;模型包含一系列的多项式约束条件,可采用整数线性规划(ILP)或可满足性模理论(SMT)等方式进行建模,然后用解析器工具或者蚁群算法、模拟退火算法、遗传算法、禁忌搜索算法等启发式算法进行求解,最后输出为满足这些约束条件的一个时隙配置方案,并可采用离线静态或者在线增量式的方法进行配置下发。
05
PTS的衍生问题:流聚合、流增量、流突发
流聚合:当拓扑复杂、拓扑不对称、存在多个分支节点时,得到毫无排队的时隙配置会非常困难,下游聚合节点会产生流聚合现象,导致PTS流排队。CQF是一种解决流聚合的机制。
流增量:一般的配置方案是离线的静态配置方案,每次计算出方案可能需要花费数个小时,然后进行部署,当有新的设备加入网络时,需要考虑逐个的规划时延敏感流的时隙配置,同时保证已下发的配置不受影响。目前结合SDN进行时延敏感网络增量调度是一个比较火的方向,叫TSSDN(Time-sensitive Software-defined Network )。
流突发:当网络中有零星时延敏感流时,很有可能与周期时延敏感流的转发产生冲突,扰乱已有的时隙配置。混合时延敏感流调度是当前还没有解决的一个问题。
06
PTS的共流问题:考虑混合流的QoS和网络利用率
共流问题也叫做混合流问题,时延敏感网络的流量可以分为三类:时延敏感流(TS),速率限制流(RT)和尽力而为流(BE)。其中时延敏感流已在第一节介绍;速率限制流是指专业音视频等有一定时延抖动要求,同时占用带宽大,需要进行速率限制的流量;尽力而为流是普通的可以随意转发的以太网流量。
优先级等级上,TS > RT > BE,一般是转发完TS流后,剩余的时隙用来转发RT和BE流,并设立保护带宽隔离三种流量。保证了PTS流的服务质量后,从网络整体性能出发,还需要考虑保证RT和BE流的服务质量,降低其丢包率,并尽量提高整个网络的带宽资源利用率。
07
PTS的隐藏问题:时钟漂移、广域时钟同步、复杂度和扩展性
PTS调度整形机制的实现都有一个大前提,那就是严格的全网时钟同步,但由于温度等原因,时钟会产生漂移,一次时隙没有对齐,就会导致包无法在预计的时刻被发送完,导致整个调度出现严重问题,只能重启设备。
同时,当前的时钟同步机制只能保证7跳以内大小的局域网内的时钟同步,如何实现广域的时钟同步,在更大的范围内实现时延抖动的保障,同时还要考虑实现的复杂度和实现成本,这些问题都有待讨论。