首页 > 范文大全 > 正文

网络流量管制令牌桶

开篇:润墨网以专业的文秘视角,为您筛选了一篇网络流量管制令牌桶范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

航空全双工交换以太网(AFDX)是在航空电子系统综合化不断提高、海量信息通信和信息融合迫切需求的背景下发展起来的,与传统点对点和集中控制型总线通信相比,AFDX网络具有通信带宽高、传输延迟确定、可靠性高、扩展能力强等特点,成为新一代综合化航空电子系统高速通信网络的典型代表。1流量管制技术AFDX端系统采用虚链路技术保证不同应用之间带宽隔离[1],并通过控制虚链路最大帧长Lmax和带宽分配间隔BAG特性参数,限制网络发送带宽和确定的时间特性。正常情况下,端系统中各个VL都根据BAG来控制帧的发送频率,实现流量整形(TrafficShaping)。但是,失效的端系统可能会发送超过设定流量的帧,进而引起交换机的拥塞,影响整个航空电子网络的时间确定性。

因此,在交换机上,应采用流量管制技术保证AFDX网络的容错能力,确保整个航空电子网络的有效工作。流量管制通过调整交换机接收端系统帧的速率,避免因为大量的帧传输导致网络拥塞。目前,常用的流量管制技术是漏桶算法和令牌桶算法。漏桶算法[2]将突发的数据流变成一个有规律的等间隔的数据流,即将不规则的数据流送到交换机的帧缓冲区,同时按照固定速率从缓冲区中将帧取出。缓冲区满时,后面到达的帧被丢弃。采用漏桶算法可以保证传送到网络中的帧速率不会比网络所要求的速率高。令牌桶算法[3]中,系统按照用户约定的速度向桶中放置令牌,当队列中的数据帧需要发送时,检查桶中是否有足够的令牌可供使用数据帧发送后,从令牌桶中减去相应数量的令牌令牌桶算法允许一段时间内的流量突发,但是从长时间内看,该算法具有稳定的平均传输速率。

2AFDX流量管制设计在AFDX网络中,交换机流量管制的目的是丢弃超流量的帧,而不是对输入帧进行严格的流量整形。)当端系统发送数据帧时,由于VL调度会产生抖动,实际发出的帧并不是严格符合BAG的,甚至同一个VL相邻2帧的最小间隔会小于BAG。因此,基于上述考虑,我们设计了基于帧的令牌桶算法。

2.1基本流量管制令牌桶有2个参数:

1)令牌桶尺寸(BucketSize,L):瞬间可用的最大令牌数量;

2)令牌流入速率(InboundRate,r):令牌进入令牌桶的设定速率。AFDX交换机令牌桶算法如图1所示。图1AFDX交换机令牌桶算法根据ARINC664规范定义的AFDX交换机令牌桶算法,ARINC664交换机设计的支持4096个VL,每个VL设计1个令牌桶。因此,AFDX交换机流量管制设计中,我们需要考虑多个VL时的令牌桶实现。设计流量管制功能包括3个部分:查找表、寄存器组和令牌桶组:

1)查找表用于根据接收帧VL的ID,查找对应的令牌桶,采用CAM表实现,以保证查找的效率,CAM表保存了4096个VL的ID;

2)寄存器组保存4096个VL的BAG、Jitter和Smax参数;

3)令牌桶组实现对4096个VL的流量管制,将令牌桶输出的帧传递给交换机的交换单元。如图2所示。图2AFDX交换机流量管制模块交换机初始化时,根据配置表将各个VL的ID依次写入查找表,将VL-ID和配置参数按照同样的次序写入寄存器组,令牌桶算法根据这些参数计算容量Li、初始值ACi和令牌流入速率γi,然后进入正常过程。由于ARINC664规范定义流量管制的分辨率不大于10μs,因此设计令牌为每20μs放置一次,每次放置令牌ti按照上述的规则进行判断:若令牌足够,则将帧交给交换单元,实现AFDX交换机的流量管制。

2.2Account共享流量管制AFDX交换机流量管制基于每个VL分配了一个令牌桶。然而,有些场景下会造成带宽浪费,例如1个数据加载器对多个端系统进行加卸载,这些端系统可以共享带宽。因此,ARINC664规范中还定义了一种Account共享的方式,即多个VL共用一个令牌桶。在设计中,可以为每个VL分配一个令牌桶组号ACGroupID。ACGroupID默认值为0,表示该VL不共享Ac-。因此,相对于每个VL设计1个令牌桶的情况,Account共享令牌桶可以作如下改进:1)将共享一个Account的VL配置参数比较,选择其中Jitter值最大的作为配置参数;2)共享Account的VL使用共享令牌桶。当有效帧输入流量管制模块时,根据ACGroupID值选择是否采用共享令牌桶进行流量管制。3)当共享Account的VL同时需要流量管制时,采用仲裁轮流策略。获得仲裁应答的VL使用令牌桶,其他的被挂起等待重新仲裁,避免引起冲突或者流量管制错误。

3验证

采用AIMGmbH的ATCS平台和测试用例对AFDX交换机流量管制进行了验证,包括基本管制和Account共享管制的验证。

3.1基本管制验证对于交换机的任意端口,每个VL采用配置参数:S1)验证场景一:在每个VL上发送100个数据帧,奇数帧发送的间隔为(2*BAG)ms,偶数帧发送的间隔为(2*BAG-Jitter)ms,流量管制验证结果情况如图3所示,即所有数据帧均被转发。图3数据帧均被转发根据图3,初始令牌桶满,即ACi=Li时,第1帧应该被转发。当第2帧到达时,令牌桶中令牌的数,则第2帧应该被转发。当第3帧到达时,令牌桶中令牌的数量为,则第3帧也应该被转发。该过程一直持续到所有的帧被转发完毕为止。2)验证场景二:奇数帧发送间隔为(2*BAG)ms,偶数帧发送间隔为(2*BAG-Jitter-0.1)ms,其余参数均与方法1)保持一致。流量管制验证情况如图4所示,即所有偶数帧被丢弃,而奇数帧均被转发。=Li时,第1帧应该被转发。当第2帧到达时,令牌桶中令牌的数量为,则第2帧应该被丢弃,接着Account将继续增长达到L。该过程一直持续到所有的奇数帧被转发,且所有偶数帧被丢弃为止。

3.2Account共享管制验证Account共享管制的验证也采用上述场景,配置采用Smax=1538字节,BAG=16ms,Jitter=0ms,每个端口选择一个VL共享Account。验证结果表明:对于场景一,所有数据帧均被转发;对于场景二,所有的奇数帧被转发,且所有偶数帧被丢弃。4结论本文基于ARINC664规范,提出一种AFDX网络交换机流量管制实验与验证的方法,并采用ATMGmbH的ATCS平台对AFDX交换机的流量管制功能进行了验证,结果表明该设计符合ARINC664规范要求。