SR (stream reservation class)流预留类:可以为av流量预留带宽的流类。优先级值与每个SR类相关联。SR类由字母表中连续的字母表示,以A开头,最多持续七个类。
对时间敏感的流:要求以有限延迟交付的数据帧流。
1 转发过程
1.1 排队帧(Queuing frames)
转发过程为排队的帧提供存储,等待提交这些帧进行传输的机会。在同一桥接端口上接收的帧的顺序将被保留:
- 具有给定VID、优先级、目的地址和源地址组合的单播帧。
- 具有给定VID、优先级和目的地址的多播帧。
转发过程为一个给定的桥接端口提供一个或多个队列,每个队列对应一个不同的流量类别。每个帧使用端口的流量分类表和帧的优先级映射到一个流量类。流量分类表可以被管理。表8-3显示了在不支持基于信用的整形器传输选择算法的实现中实现的类数量的推荐映射。在支持基于信用的整形器传输选择算法的实现中,优先级到流量类映射的需求在34.5中定义。最多可支持8个流量类别,允许每个优先级单独的队列。
Note:不同的端口可以实现不同数量的流类。具有支持单一传输优先级的媒体访问方法的端口,如CSMA/CD,可以支持多个流量类别。
1.2 传输选择(Transmission selection)
对于每个端口,根据端口支持的流量类别和该端口上相应队列支持的传输选择算法的操作,选择帧进行传输。对于给定的端口和支持的流量等级值,当且仅当从相应的队列(如下)中选择帧进行传输:
- 该队列所支持的传输选择算法的操作确定有一个可供传输的帧
- 对于每个对应于端口支持的流量类别的数值较高的队列,该队列支持的传输选择算法的操作确定没有可供传输的帧。
在1.2.1 中定义的严格优先级传输选择算法应被所有网桥支持,作为传输帧选择的默认算法。除了严格的优先级算法,还可以支持1.2.2 中定义的基于信用的整形传输选择算法。只要满足1.1 的要求,可以支持通过管理手段选择的进一步传输选择算法作为实现选项。
给定端口的传输选择算法表为端口支持的每个流量类别分配传输选择算法,用于从相应的队列中选择帧进行传输。传输选择算法表可以被管理,并允许识别特定于供应商的传输选择算法。传输选择算法在传输选择算法表中用整数标识符标识,定义如表8-4所示。
在不支持基于信用的整形器传输选择算法的实现中,传输选择算法表的推荐默认配置是为所有支持的流量类分配严格的优先级传输选择算法。在支持基于信用的整形器传输选择算法的实现中,传输选择算法表的推荐默认配置定义在34.5中。
1.2.1 严格优先级算法(Strict priority algorithm)
对于一个支持严格优先级选择的队列,当队列中包含一个或多个帧时,算法确定有一个帧可以传输。从队列中选择帧进行传输的顺序应保持1.1中指定的顺序要求。
1.2.2 基于信用的整形算法(Credit-based shaper algorithm)
对于一个支持基于信用的整形传输选择的给定队列,如果以下条件都为真,算法将确定该帧可用于传输:
- 队列包含一个或多个帧。
- 队列的transmitAllowed信号为TRUE。
从队列中选择帧进行传输的顺序应保持1.1中指定的顺序要求。
以下外部参数与支持基于信用的整形算法操作的每个队列相关联:
- portTransmitRate:支持通过端口传输的底层MAC服务提供的传输速率(以比特/秒为单位)。该参数的取值由MAC的操作决定。
- idleSlope:当信用值增加时(即当transmit为FALSE时),信用的变化率,以比特/秒为单位。idleSlope的值永远不能超过portTransmitRate。给定队列的idleSlope值由该队列的operIdleSlope(操作值)参数的值决定,如34.3中定义的那样。
以下内部参数与支持基于信用的整形算法的每个队列相关联:
- transmit:从队列接收帧传输持续时间的值为TRUE。当队列中的任何帧传输已完成时,返回FALSE。
- credit:队列当前可用的传输信用(以比特为单位)。如果在任何时候,队列中没有帧,并且 transmit 参数为FALSE,并且credit为正,则credit被设置为零。
- sendSlope:当 credit 值减少时(即transmit为TRUE时),信用的变化率,以比特/秒为单位。sendSlope的值定义如下:sendSlope = (idleSlope - portTransmitRate)
- transmitAllowed:当 credit 参数为零或正时,取值TRUE,当credit参数为负时,取值为FALSE。
Note1:信用(credit)的价值自然受到算法运行参数的限制,也受到使用该算法的任何更高优先级队列的操作的限制。credit能达到的最小值取决于sendSlope和从队列传输的最大帧。这个最大的帧大小是使用队列传输的流量类型的结果,而不是由算法或管理强加的限制。信用(credit)中可以累积的最大值取决于idleSlope和当队列不为空且有其他流量通过端口传输时算法可能必须等待的时间长度;对于任何给定的队列,该时间长度是有限的,如附件L所述,其中还说明了算法如何在不同条件下运行,以及它的操作如何影响SR流量可能经历的最大延迟。
Note2:为了使基于信用的整形算法按预期运行,有必要让所有支持该算法的流量类别在数值上高于任何在8.6.8.1中支持定义的严格优先级算法的流量类别。优先级到流量类的映射,以及支持特定传输选择算法的流量类的选择,在34.5中定义。
3 基于信用的整形算法的操作
本附件从使用基于信用的成形队列的流量的角度,以及从与端口关联的其他队列的角度,更详细地分析了基于信用的成形算法(1.2.2)的操作方式,以及它的操作如何影响网络性能。
3.1 基于信用的整形器操作概述
基于信用的整形器算法有一个外部确定的参数idleSlope(参见1.2.2),它确定了与流量类(bandwidthFraction)相关的队列可用的portTransmitRate的最大比例,如下式(L.1)所示:
其中portTransmitRate是支持出站队列的端口能够传送的最大传输数据速率。式(L.1)的推导详见式(L.5)至式(L.8)。
如果基于信用的整形算法支持的流量类别使用的带宽小于分配给它的带宽,那么根据流量类别的相对优先级和与之关联的传输选择算法,其他流量类别可以使用未使用的带宽。
- idleSlope参数,连同使用队列传输的帧的大小,以及队列在能够传输队列帧之前可以经历的最大时间延迟,为使用该算法的队列可以传输的突发大小设置了上限。 为了描述算法的操作,除了在8.6.8.2中描述的算法的形式参数外,还需要定义以下值:
- maxFrameSize:可以通过端口为相关流量类别传输的最大帧大小。这个值可以由准入控制算法决定,也可以只是流量源的传输行为的函数。无论哪种方式,该值都可以小于底层MAC服务正常操作所允许的值。
- loCredit:信用参数中可以累积的最小值。loCredit的值是maxFrameSize、portTransmitRate和sendSlope值的函数,如式(L.2)所示
- maxInterferenceSize:任何突发流量的最大大小(以比特为单位),可以延迟可用于此流量类的帧的传输。对于数值上最高的流量类,maxInterferenceSize 恰好等于可以通过端口传输的最大帧大小(底层MAC支持的最大帧大小)。对于所有其他流量类,maxInterferenceSize 的派生变得更加复杂,因为任何支持基于信用的整形器算法的高级流量类都可能延迟帧的传输。maxInterferenceSize 还必须考虑任何媒体访问延迟,例如在节能以太网中的恢复时间。详细的分析可以在L.3.1.1中找到。Note:maxInterferenceSize的定义假设任何支持shaper算法的流量类在数值上都高于任何支持默认严格优先级算法的流量类。如果这不是真的,那么maxInterferenceSize的值是无限的,基于信用的整形器算法的操作不能提供为它保留的带宽。L.3中包含了如何为给定的流量类别确定maxInterferenceSize的详细分析。
hiCredit由干扰流量的最坏情况决定,如式(L.3)示。
因此,hiCredit的价值可以被视为“高水位标志”,算法的操作使信用参数的值永远不会超过hiCredit。
idleSlope值的选择和hiCredit的计算值可以用来确定队列可以输出的最大突发大小,如下式(L.4)所示。
Note:最大突发大小和流量类可用的缓冲区大小之间存在相互关系。在队列帧中积累超过流量类可以处理的信用是没有意义的,因为限制因素是当队列溢出时丢弃帧。这意味着可以在给定端口上为给定流量类别保留的带宽量取决于该流量类别可用的缓冲量。这反过来,结合端口的传输速率,将确定该端口上该流量等级所能支持的空闲坡度的最大值。
基于信用的shaper算法的操作如图L-1到图L-3所示的示例所示。
3.2 没有流量冲突情况
在图L-1中,一个帧在信用值为零的时候排队,并且没有冲突流量(没有高优先级的流量等待传输,并且端口上没有帧正在传输)。帧立即被选择用于传输,并且信用随着传输的进行以sendSlope的速率递减。一旦帧传输完成,信用以idleSlope的速率增加到零,此时,可以选择进一步的帧进行传输。
如果一个连续的帧流对整形器算法可用,也就是说,当信用值达到零时,总是有一个帧排队等待传输,那么队列可用的portTransmitRate的比例(bandwidthFraction)等于帧从队列传输的时间的比例。假设在每帧传输结束时,credit减小到值loCredit,则式(L.1)的详细推导如下:
3.3 存在流量冲突情况
这部分带宽即使在存在冲突流量的情况下也对流可用,如下面的示例所示。
在图L-2中,当端口传输冲突流量时,帧处于排队状态。当排队的帧等待端口变得可用时,信用值以idleSlope的速率增加。冲突流量的传输在信用值被hiCredit限制之前完成,并开始传输排队的帧。信贷价值开始以sendSlope的速率下降;然而,由于帧不够大,不足以消耗所有可用的信用,并且没有更多的帧排队,信用在传输完成时减少为零。
3.4
在图L-3中,端口在传输冲突流量时,有3帧在排队,信用以idleSlope的速率累积。一旦传输了冲突的流量,第一帧和第二帧将背靠背传输,因为传输第一帧的信用值 credit ≥ 0。然而,由于传输第二帧导致信用值变为负值,第三帧的传输被延迟,直到信用值返回零。
版权归原作者 深度不睡觉 所有, 如有侵权,请联系我们删除。