本发明属于通信,涉及一种时间敏感网络保序缓存方法。
背景技术:
1、tsn需要对一定数量的帧进行重新排序,如thomas等人研究指出,帧的复制与消除机制利用空间冗余实现帧的冗余传输的同时,由于交换机和路由器等网络元素的并行性,通过不同路径路由的帧或副本帧会引起帧的错误排序和突发性增加。对此通常的解决方案是在接收端设置缓冲区,在源端每帧的头部中添加了一个序列号,接收端根据该序列号对帧进行重排序。
2、但是这种重排序方案存在两个主要问题:一是缓冲区中提前到达的帧必须等到比该帧序列号小的所有帧到达才被转发,当网络因为高负载等原因发生拥塞时,容易造成缓冲区溢出而丢弃后来的所有帧;二是所有的无序帧均放在接收端缓冲区进行重排序处理,接收端缓冲区的负荷大,这也是问题一中发生网络拥塞进而缓冲区溢出的原因之一。缓冲区溢出如图1所示,序列号大于n+1的帧在缓冲区中排队等候,当缓冲区已满时序列号为n+1的帧还未到,新到达的所有其他帧均将被丢弃。
3、因此,一种新的重排序方法需要被设计,实现在接收端之前对帧的顺序提前进行调整,并重新规划重排序缓冲区中帧调度规则以解决缓冲区溢出导致的帧丢失问题。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种时间敏感网络保序缓存方法。
2、为达到上述目的,本发明提供如下技术方案:
3、一种时间敏感网络保序缓存方法,该方法包括:首先计算源节点和目的节点之间的路径对,在路径对的相交节点处设置保序缓冲区,由源节点在帧头部添加一个递增的序列号,帧到达保序缓冲区后根据保序缓冲区中的调度规则进行转发或排队,其中,对于按照期望序列号到达的期望帧,保序缓冲区直接将其转发;对于提前到达的提前帧,保序缓冲区为其设置一个定时器;当所有比该提前帧的序列号小的帧都已到达保序缓冲区时,该提前帧被释放,或者当该提前帧的定时器超时,该提前帧被释放;当保序缓冲区中比该提前帧的序列号大的帧定时器超时,该提前帧被释放;根据保序缓冲区的调度规则,保序缓冲区的调度规则触发事件包括帧到达事件和定时器超时事件。
4、进一步,帧到达事件触发保序缓冲区的调度规则按照如下方式实现:
5、采用变量buf代表一个保序缓冲区列表,包含所有正在等待更小序列号帧到达的帧,变量n代表该保序缓冲区期望接收的下一个序列号;
6、判断帧p的序列号pid是否大于等于n-1;若该判断不成立,则将该帧丢弃;若该判断成立,则继续执行;
7、判断帧p的序列号pid是否大于等于n;若该判断不成立,直接释放该帧;若该判断成立,则继续执行;
8、判断帧p的序列号pid是否大于n;若该判断不成立,则直接释放该帧,并将n增加1到下一个序列号,即n=n+1,并且在序列号n更新后,判断保序缓冲区中是否存在序列号为更新后的n的帧,若存在,则继续释放序列号为更新后的n的帧,并继续更新n和判断,直至保序缓冲区中不存在序列号与更新后的n相同的帧;
9、若帧p的序列号pid大于n,将该帧暂存于保序缓冲区中,等待序列号比该帧小的帧到达;并检查保序缓冲区当前长度,若保序缓冲区的大小能够容纳当前保序缓冲区长度加上该帧的长度,则启动该帧的定时器;若保序缓冲区没有足够的容量容纳该帧,则该帧将由于保序缓冲区溢出被丢弃。
10、进一步,定时器超时事件触发保序缓冲区的调度规则按照如下方式实现:
11、采用变量buf代表一个保序缓冲区列表,包含所有正在等待更小序列号帧到达的帧,变量n代表该保序缓冲区期望接收的下一个序列号;
12、当序列号为pid的帧定时器超时,保序缓冲区首先按顺序释放保序缓冲区中序列号小于等于pid的所有帧,利用函数buf.contains(n),将n增加到保序缓冲区中存储的帧的最小序列号,如果序列号为n的帧在保序缓冲区中,则返回true,否则返回false;
13、接着按顺序弹出保序缓冲区中排队的帧,停止对应的定时器,每次有帧从保序缓冲区中释放时,其对应的定时器被终止;
14、最后检查保序缓冲区以释放正在等待id为pid或更小帧的帧。
15、进一步,保序缓冲区的参数设置过程中,引入重排序时间偏移和重排序字节偏移对帧的重排序进行度量,定义如下:
16、令在源节点观察到的第n个帧为帧pn,en为在目的点观察到帧pn的时间;如果帧pn在两端点之间丢失,则en=+∞;则帧pn在时间上的偏移表示为:
17、
18、其中λn表示帧pn重排序时间偏移rto,即为序号大于n的帧比帧pn早到达的最大时间;若帧pn丢失,则λn无定义;
19、对于帧pn,如果存在帧pj使得j>n且ej<en,且帧pn没有丢失,则帧pn的重排序字节偏移量定义为:
20、
21、其中lj为帧的字节大小,所以πn表示帧pn的重排序字节偏移rbo,即为序列号大于n的帧比帧pn早到达的累计字节数;当帧pn后没有出现乱序时,重排序字节偏移量πn为0。
22、进一步,保序缓冲区的定时器超时值t满足以下条件:
23、t≥λ
24、其中,λ表示重排序时间偏移。
25、进一步,保序缓冲区大小b满足以下条件:
26、b≤π
27、其中,π表示重排序字节偏移。
28、本发明的有益效果在于:
29、本发明通过在流传输路径对中的相交节点上设置保序缓冲区提前进行重排序,以减少后续相交节点以及接收端处的帧重排序时间偏移。同时保序缓冲区中帧的调度规则用保序缓冲算法实现,分为帧到达事件触发与定时器超时事件触发。最后为了避免保序缓冲区中因缓冲区大小b或定时器t的设置过小导致的缓冲区溢出,利用帧重排序时间偏移和帧重排序字节偏移推导出了这两个参数的合理范围。本发明与在接收端处利用滑动窗口帧排序方法相比,提出的机制能明显降低帧丢失率,并且由于提前处理了帧的乱序问题,降低了后续相交节点上帧的重排序时间偏移,避免了帧重排序时间偏移的扩增,在时延和时延抖动上也有更好的表现。
30、本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
1.一种时间敏感网络保序缓存方法,其特征在于:所述方法包括:首先计算源节点和目的节点之间的路径对,在路径对的相交节点处设置保序缓冲区,由源节点在帧头部添加一个递增的序列号,帧到达保序缓冲区后根据保序缓冲区中的调度规则进行转发或排队,其中,
2.根据权利要求1所述的一种时间敏感网络保序缓存方法,其特征在于:所述帧到达事件触发保序缓冲区的调度规则按照如下方式实现:
3.根据权利要求1所述的一种时间敏感网络保序缓存方法,其特征在于:所述定时器超时事件触发保序缓冲区的调度规则按照如下方式实现:
4.根据权利要求1所述的一种时间敏感网络保序缓存方法,其特征在于:所述保序缓冲区的参数设置过程中,引入重排序时间偏移和重排序字节偏移对帧的重排序进行度量,定义如下:
5.根据权利要求4所述的一种时间敏感网络保序缓存方法,其特征在于:所述保序缓冲区的定时器超时值t满足以下条件:
6.根据权利要求4所述的一种时间敏感网络保序缓存方法,其特征在于:所述保序缓冲区大小b满足以下条件: