SpaceFibre星载网络服务质量实现研究

2019-03-14 09:40伊小素王家兴姜梦茹董伟涛
宇航学报 2019年2期
关键词:优先权二进制延时

伊小素,王家兴,姜梦茹,董伟涛,刘 辉

(北京航空航天大学仪器科学与光电工程学院,北京 100191)

0 引 言

随着航天应用需求的提升,空间网络中的数据流也越来越复杂,英国邓迪大学针对这一情况在SpaceWire[1-2]基础上提出了新一代高速通信总线(SpaceFibre总线)。SpaceFibre[3-6]能够在电缆和光纤介质上工作,并支持超过2Gbit/s的传输速率,同时SpaceFibre以其高速远距离数据传输、高带宽、低串扰、低衰减等特点完美地满足了空间任务的需求。随着空间机器人[7]、合成孔径雷达(SAR)[8]和其他传感设备在航天任务中的应用,在短时间内传输大量实时数据流的能力变得越来越重要。空间任务的复杂性意味着每种不同类型的数据通信对不同的服务需求有不同的要求,因此SpaceFibre采用了虚拟通道(Virtual channel,VC)机制,将复杂的流量划分为不同的数据队列,每一类数据队列单独占用一路VC发送数据。

然而,多个虚拟通道的应用增加了在多个VC同时发送数据的情况下各VC对链路资源的竞争。为了解决数据流过载造成的网络冲突问题,SpaceFibre协议提出了服务质量(Quality of service,QoS)机制来管理这些复杂的数据流。作为一种网络安全机制,QoS技术已经在许多网络中得到了应用,特别是在广域网和无线网络中,在提高网络性能方面发挥了重要作用[9]。然而,与其他网络相比,星载网络的规模较小,但传输的数据量更多,对实时性和可靠性要求更高[10]。简单地使用其他网络所使用的QoS机制和算法是不合适的。另外,虽然在SpaceFibre协议中提出了三种QoS机制,包括优先权、带宽预留和时间槽调度机制,但很少有文献详细介绍这些机制的实现方式或算法。

本文提出一种基于二进制序列调度机制实现SpaceFibre中QoS功能的新算法。该算法根据空间网络中各类数据流量的特征生成对应的二进制调度序列来管理数据流的传输,针对不同的空间任务,调整调度矩阵中的数值,占用较少的存储器和计数器,不仅节省了硬件资源,而且保证了数据传输的稳定性,为SpaceFibre总线QoS机制的实现提供了一种的新的方法。

1 SpaceFibre中的QoS机制分析

在SpaceFibre网络中,所有的数据包都是通过虚拟通道(VC)传输的。VC的数量是由SpaceFibre数据链路上的负载决定的,最大值为32。每个VC都被分配一个从0到31的唯一号码,并且VC 0被用来配置每个网络节点的参数。所有VC通过三种QoS机制来竞争链路资源,保证数据传输的稳定性。

优先权机制是SpaceFibre中最基本的一种QoS机制,每个VC被分配一个优先权值,通常情况下,具有最高优先权的VC在准备就绪时被允许发送下一个数据帧。SpaceFibre中有16个优先权级别,可以将多个VC设置为相同的优先权,在这种情况下,VC将通过待发送时刻的优先级来竞争介质访问权。

系统在初始化过程中会根据每一路VC所承载数据的流量大小为其分配到对应的预留带宽,如果仅仅采用优先权机制,那么即使在分配给特定通道的带宽量被指定后,其他高优先权VC依然可以占用其带宽。因此需要采用一种带宽保护机制,当某一路VC连续发送数据时,该VC的优先级会不断减少,如果其优先级下降到最小限制值后,即使它拥有最高的优先权也会停止数据发送,如果该VC在之后一段时间没有占用链路带宽,那么它将累积优先级,从而保证该通道上承载的数据流量有效发送,这种保护机制称为带宽预留机制。带宽预留机制的提出是为了防止某一路VC在拥有高优先权的同时发送大量的数据而影响到其他VC的数据发送。优先权和优先级的关系[11]如图1所示。从图1可以看出,在优先权下降到最小限制值前,拥有较高优先权VC的优先级永远比低优先权VC的优先级高,而同一优先权的VC在不同时刻也会根据流量发送情况拥有不同的优先级。

图1 SpaceFibre协议中优先权和优先级的关系图Fig.1 Relationship between priority and precedence in SpaceFibre protocol

为了提供完全确定的数据传递,SpaceFibre制定了时间槽调度机制,以确保来自特定VC的数据可以在特定时间发送。这可以通过将时间周期切成一系列时间槽来完成,在某一个时间槽内,允许特定的VC发送数据。在文献[11]中,调度机制可以用Parkes等提供的调度表来描述,如图2所示。图2中给出了7个虚拟通道被随机分配在8个时间槽中的例子,其中,灰色填充表示该VC允许在指定的时间槽内发送数据,而空白填充则表示该VC禁止在该时间槽内发送数据,一个VC可以根据信息传输的需求被分配一个或者多个时间槽。当然,在不考虑优先权和带宽预留机制下,每一个时间槽最多只能被一个VC指定,从而保证在一个时间槽内只能发送一个VC的数据,避免数据冲突。

图2 时间槽调度表Fig.2 Time slot scheduling table

为了提供有保证和高质量的数据传输,这三种不同的QoS机制通常需要组合在一起工作才能发挥最佳的作用。图3是Parkes在SpaceWire会议上列出的三种QoS机制混合使用的例子。可以看出,对于VC1和VC2而言,仅仅使用时间槽调度机制就可以完成调度,而VC3到VC7则需要结合优先权和带宽预留机制才能完成调度。

图3 SpaceFibre QoS机制混用实例表Fig.3 SpaceFibre QoS mechanism mixed instance table

图4是SpaceFibre QoS机制的一种经典应用情况,顶层应用可以将调度表完全填满,仅仅依赖于优先权和带宽预留机制完成调度,此时,所有VC在任意时间槽下都可以竞争链路资源。

图4 经典调度机制Fig.4 Typical scheduling mechanism

从对上述QoS机制的分析中可以看出,优先级是作为待调度VC是否被允许发送数据的公共度量,如图5所示,不同虚拟通道的数据包进入自己的缓冲区等待仲裁,介质访问控制器(Medium access control,MAC)通过比较来自不同VC的优先级,具有最高优先级的VC将被允许发送下一帧数据。

图5 调度原理图Fig.5 Scheduling schematic diagram

2 QoS机制实现的算法设计

2.1 二进制序列调度机制的提出

SpaceFibre协议提供的三种QoS机制,为如何处理复杂的数据流提供了方向。然而,对于如何在复杂的空间网络中实现QoS机制的研究还很少。不同的空间任务或数据流量对QoS的要求是不同的。例如,应该以较小的带宽量为控制指令等数据传输分配最高的优先权,而视频流量就应该在普通优先权下为其分配更大的带宽。因此需要通过采取有效的方法来平衡QoS配置,使之更适合于复杂的数据流传输。

如果我们用数字1来代替图3中的灰色填充方框,用0来表示白色填充方框,就可以得到图6中的二进制调度表。表中使用数字0和1来表示当前VC是否被允许发送数据包。这样就可以通过一种算法生成一系列的二进制序列来实现对复杂数据流的管理。

图6 SpaceFibre总线网络二进制调度表Fig.6 SpaceFibre bus network binary scheduling table

为了方便讨论,假设系统在一个周期内划分的时间槽数量为L,虚拟通道的数量为K。则第i个二进制序列可以由一个行向量指定:

Si= (Si(0),Si(1),…,Si(L-1)),

Si(0),…,Si(L-1)∈{0,1}

因此可以通过以下二进制序列来代替图6中的二进制调度表:

S1=(10000000)
S2=(01001000)
S3=(00110111)
S4=(00110111)
S5=(00110111)
S6=(00110111)
S7=(00110111)

事实上,二进制序列不仅可以用来确定调度序列,还可以用来分配带宽。假设在每个时间槽中传输的最大带宽是Bunit,可以得到每个VC在一个时间周期内分配到的带宽Bi为

(1)

那么需要分配给每个VC的带宽比为Ri为

(2)

其中Btotal是指链路在一个时间周期内的总带宽。

在一个特定的星载网络中,网络中的节点和接入设备是确定性的,因此可以预先确定每个节点和设备的带宽需求。假设每个虚拟通道的带宽需求与系统的总链路带宽的比率为占空比F,并且满足Fi≤Ri。例如,一个用于空间网络中的高分辨摄像机,大约需要600 Mbps的吞吐量,SpaceFibre的链路传输速率可以预先确定,假设速率为2 GBit/s,则SpaceFibre的链路总带宽为2 Gbps。因此该相机的占空比为Fcam=600 M/2000 M=3/10。假设网络中的各个流量的占空比是Fj,满足Fj=Pj/Qj(j=1,2,…,K),且Pj/Qj是流量占空比的最简分式表达式,如果使用Dcmp来表示最小公倍数,指定一个调度周期中时间槽的数量L为

L=Dcmp{Q1,Q2,…,QK}

(3)

为了方便计算,指定Fj=Rj,可以得到第j路VC在一个时间周期中的有效时间槽数量计算式:

(4)

另外由于控制流量具有易突发、高优先权的特点,为了避免控制指令的传输延迟和丢失,让Scom=(1,1,…,1),这样控制流量在一个周期内所占用的时间槽个数是L。在网络中,控制指令是随机产生的,假设它的生成概率为p。由于分配给控制指令的VC允许在所有时间槽传输,并且假设它比其他VC具有更高的优先级,因此在传输发生冲突时,其他虚拟通道的带宽将被占用。针对这种情况,需要对其他VC的带宽进行补偿。

为了方便讨论,引入汉明互相关函数[12-13],汉明互相关函数的表达式为

(5)

以一个由四个二进制序列组成的集合为例。其优先权依次递减,且占空比(不包括控制流量)分别为1/8,1/4和1/4。

S1=(11111111)
S2=(10000000)
S3=(01010000)
S4=(00110000)

则可以得到:

H(t;{1,2})=1,H(t;{1,3})=2,H(t;{1,4})=2,由文献[12-13]可知,这些值分别表示VC2,VC3和VC4可能和控制流量发生碰撞的有效时间槽的数量。

在某种程度上,控制流量在每个时间槽中发送的概率是相等的。因此,其他各个VC可能与控制指令VC发生冲突的时间槽数量的期望是Ecol=Hp。则由于碰撞而需补偿的时间槽个数为Hp,因此可以通过调整二进制序列来补偿由于与控制流量的冲突而减小的带宽,则将式(4)调整为

(6)

在空间网络中,p的值相对于其他数据流量来说非常小,因此Hp满足0

(7)

因此示例中的四个二进制序列在带宽补偿机制下可以调整为:

在一个时间槽内,SpaceFibre只允许一个虚拟通道传输数据,那么当T4时间槽到来时,由于VC3的优先权高于VC4,因此VC4上承载的数据流量极易发生堵塞,这也是SpaceFibre中带宽预留机制想要避免的。因此可以对低优先权VC采用实时带宽补偿的方法,即在与高优先权VC冲突的时间槽之后增加一个有效时间槽的方式来保证数据实时发送。最终可以得到如下的二进制序列:

此时,每个VC都可以获得等价于自身承载数据量大小的有效时间槽,因此本文考虑制定一种二进制序列调度机制,通过生成一个完全确定的二进制调度序列配合每个序列的优先级来实现SpaceFibre中QoS机制的功能,当然这里的优先级仅仅是作为待调度VC是否被允许发送数据的公共度量值,它不会随着时间变化,且每一个序列的优先级是确定的、唯一的。

2.2 二进制序列调度算法设计

一个SpaceFibre网络通常由大量的控制流量、视频流量和传感流量等组成。为了保证SpaceFibre空间信息交互网络的性能,通常需要考虑以下技术参数:

1) 确保控制指令的传输时延;

2) 满足大容量数据流的及时传输,避免数据丢失和堵塞;

3) 避免多个VC同时发送数据,造成信道冲突;

4) 最大限度地减少指定的时间槽内无数据发送的现象,以及最大限度地利用链路带宽资源;

5) 尽可能满足符合实际带宽要求的链路带宽分配原则。

从第2.1节可以看出,二进制序列调度机制可以满足各个VC的带宽要求,此外,对于星载网络而言,延时性能也是需要考虑的一个关键因素。对于连续数据流而言,要想使生成的二进制调度序列达到最佳的延时性能,应当在保证每个时间槽不被浪费的情况下使相邻两个时间槽间距尽可能短。根据上述讨论,二进制序列调度算法的实现可以归纳为如图7所示。

使用二进制序列调度机制有两个主要优点。一个是在不修改底层通信协议的情况下,仅仅通过改变调度表中的值来调整流量调度,节约了硬件资源。另一个是这种机制可以保证数据传输的稳定性,在数据流连续的情况下,当MAC采用二进制序列调度机制时,除了控制流量带来的不确定性外,所有VC可以发送数据的有效时间槽都是完全确定的,因此不会发生数据传输冲突的情况。

可以说,具有QoS功能的二进制序列调度机制可以解决复杂数据流量的调度与不同数据流量带宽需求之间的权衡问题。

图7 二进制序列调度算法Fig.7 Binary sequence scheduling algorithm

3 延时分析与仿真

3.1 排队时延分析

对于星载网络来说,实时性能是决定航天任务能否成功执行的关键因素。当采用二进制序列来调度多个VC的数据传输时,对于处在有效时间槽之外的VC必然会产生一个附加的排队延迟[14-15],即两次有效时间槽发送间隔的等待时间。

根据二进制序列调度算法的设计思想,允许发送数据的两个相邻时间槽的时间间隔用占空比的倒数1/F来衡量。在不考虑有效时间槽被控制流量和高优先级流量占用的情况下,由有效时间槽间隔造成的排队延时d为

(8)

式中:v表示链路的速率,vf表示流量生成的速率,L表示时间槽数量,T表示一个调度轮询周期的时间(T作为系统级参数,决定了单个时间槽的大小)。根据式(8),排队延迟与单个时间槽大小T/L和流量生成速率有关。

当然,在极端情况下,最大传输延迟发生在当数据流在有效时间槽的右边界到达,下一个给定的时间槽又被优先级较高的控制流量占用,如图8所示。此时最大排队延时为

(9)

图8 最大排队延迟Fig.8 Maximum queuing delay

其中,由于控制流量的特殊性,控制指令在下达后会立即占用即将到来的下一个时间槽发送数据,因此控制流量的最大排队延迟发生在当控制指令在某一个时间槽的左边界到达时,当前时间槽恰好被其他流量占用,此时控制流量只能等待下一个时间槽到来发送,如图9所示,即控制流量由于等待有效时间槽而产生的最大延时为dcom=T/L,可以看出控制流量的最大排队延时等于一个时间槽的时间。当然在实际传输过程中,控制流量的平均排队延时肯定要小于这个值。

图9 控制指令最大排队延时Fig.9 Maximum queuing delay of control instruction

3.2 实例仿真

假设存在一个SpaceFibre星载网络,如图10所示,指定VC1发送控制流量,VC2发送视频流量,VC3发送雷达流量,VC4发送地面流量,VC5发送传感流量,VC6发送卫星流量,并且网络流量的特征见表1。

图10 SpaceFibre网络流量示意图Fig.10 SpaceFibre network traffic schematic diagram

流量类型生成速率占空比优先级控制流量随机1/L1级视频流量600 Mbit/s3/102级雷达流量480 Mbit/s6/253级地面流量400 Mbit/s1/54级传感流量15 Mbit/s3/4005级卫星流量120 Mbit/s3/506级

由式(3)可知,如果完全按照上述流量的占空比来计算时间槽个数的话,那么得到的时间槽数量将达到400,过多的时间槽数量无疑会影响系统调度效率,同时也不便于处理。因此,在不影响数据有效传输的前提下,可以考虑将部分流量的占空比作近似放大处理。在上面给出的实例中,如果将传感流量的占空比由3/400调整为1/50,那么重新计算得到的时间槽数量L就等于50,这是一个比较合适的数值。

确定完所有流量的占空比后,根据二进制序列调度算法可以得到以下调度序列(以16进制表示)。

为了校验上述二进制序列的延时性能,使用网络分析软件OPNET[16]对调度机制进行了仿真。仿真模块包括四个部分:信息源、buffer缓冲区、介质访问控制器(MAC)和发射器。表1中列出的六种类型的数据流是由六个独立的连续信息源生成,不同的数据包存储在各自的缓冲器中,接受MAC的调度,最终由发射机发送到网络链路。作为对比,MAC采用两种不同的调度机制,二进制序列调度机制和图4中所示的完全依赖于优先权和带宽预留机制的经典调度机制(VC1到VC6的优先权递减)。利用OPNET软件中的仿真器计算了两种机制在不同参数T下的的平均端到端传输延迟。仿真结果如图11所示,图11中列出了在两种机制下优先级最高的控制流量、流量较多的视频流量以及流量较少的卫星流量来说明,其中带*标识的表示采用的二进制序列调度机制。

仿真结果可以看出,两种调度机制下的相同之处在于所有信息流的延时都会随着调度周期的增大而增大,当T大于100 μs时,平均端到端延时几乎随着T呈线性增加,而当T小于100 μs时,尤其是当T在50 μs内时,延时曲线的斜率随着T增大在逐渐变大,这表明,当T较小时,系统的附加延时较大。主要原因是SpaceFibre标准指定所有数据包都封装在一种称为数据帧的固定格式中,一个数据帧的最大长度为64字(或256字节),SpaceFibre采用一个数据帧的长度作为在时间槽中发送数据的最小单元。当T较小时,对应的每个时间槽可以发送的最大数据量就会变小,因此外部数据包就需要执行更多的拆包与封帧操作,从而增加了平均延时。

从两种调度机制延时性能的角度来分析,可以看出,对于对延时要求比较高的控制指令,两种调度机制下的延时曲线几乎重叠,且都维持在一个非常低的数量值。而在视频流量和卫星流量方面,情况就有所不同,从前面的分析可以看出,当采用二进制序列调度时,系统延时与流量生成速率密切相关,在仿真中也体现出了这一点,视频流量的平均端到端延时要远高于卫星流量。而采用完全依赖于优先权与带宽预留机制的调度机制时,由于视频流量的优先权更高,MAC总是优先为视频流量分配链路资源,因此它的传输延时非常小,而卫星流量的优先权较低,只能通过带宽预留机制获得抢占链路资源的机会,因此延时相比于二进制序列调度机制来说要大的多。

两种调度机制无法直接评价孰优孰劣。当采用完全依赖于优先权和带宽预留机制的经典调度机制时,可以省去人为分配时间槽的过程,且对于优先权较高流量的延时可以得到保障,当然这会极大增加低优先权流量的通信延时,从而增加系统缓存负担。当采用二进制序列调度机制时,由于这种机制的调度过程更加确定,因此各个流量的延时更加可控,且不同优先级流量的延时更加均衡。

图11 两种调度机制下的平均端到端延时Fig.11 Average end to end delay under two scheduling mechanisms

4 结 论

本文提出了一种在SpaceFibre协议框架上实现QoS功能的新方法。该方法利用二进制序列来实现各种数据流量的调度。二进制序列调度机制规定了时间槽的使用,以及各种流量的优先级和带宽要求,可有效的利用SpaceFibre星载网络资源,并保证各个信息流对传输时延的要求,从而很好地解决了SpaceFibre网络中的VC传输冲突和关键数据包的及时传输问题。

本文的研究成果为利用QoS机制提高星载网络的性能提供了一个新的思路。另外,本研究的工作是在提前已知每个流量的性能要求的情况下,设置网络参数。因此,在网络流量特性不确定或者各个数据流量的占空比是动态的情况下,需要进行进一步的研究,以提高二进制序列调度算法的普适性。

猜你喜欢
优先权二进制延时
重新确定申请日对优先权审查的影响
课后延时服务
课后延时中如何优化不同年级学生活动效果
有用的二进制
用Scratch把十进制转为二进制
有趣的进度
民法典中优先权制度构建研究
进入欧洲专利区域阶段的优先权文件要求
一种“死时间”少和自动校准容易的Wave Union TDC
宋湘延时答妙对