QoS基础框架

交换机支持QoS功能,能够提供传输品质服务。针对某种类别的数据流,您可以为它赋予某个级别的传输优先级,来标识它的相对重要性,并使用设备所提供的各种优先级转发策略、拥塞避免等机制为这些数据流提供特殊的传输服务。配置了QoS的网络环境,增加了网络的性能可预知性,并能够有效地分配网络带宽,更加合理地利用网络资源。

 

交换机的QoS符合IEEE 802.1p标准并能应用到IETF(Internet Engineering Task Force)的DiffServ(Differentiated Servece Mode),差分服务模型体系中。在支持QoS的网络中传输的每一个报文将被划分成不同的QoS类别,在报文中包含了相应的分类信息。一般来说,附带在报文中的分类信息有:

·    携带在 802.1Q 帧头的Tag Control Information中的前3个比特,它包含了8个类别的优先级信息,通常称为802.1p Priority。

 

·    携带在IPv4报文头中的TOS或者IPv6报文头中的Traffic Class字段的前3个比特,称作IPprecedence value; 或者携带在IPv4报文头中的TOS或  者IPv6报文头中的Traffic Class字段的前6个比特,称作Differentiated Services Code Point (DSCP) value。

 

在遵循DiffServ体系的网络中,各设备对包含相同分类信息的报文采取相同的传输服务策略,对包含不同分类信息的报文采取不同的传输服务策略。报文的分类信息可以由网络上的主机、设备或者其它网络设备赋予。可以基于不同的应用策略或者基于报文内容的不同为报文赋予类别信息。识别报文的内容以便为报文赋予类别信息的做法往往需要消耗网络设备的大量处理资源,为了减少骨干网络的处理开销,一般这种赋予类别信息的方式都使用在网络边界。设备根据报文所携带的类别信息,为各种交通流提供不同的传输优先级,或者为某种交通流预留带宽,或者适当地丢弃一些优先级较低的报文、或者采取其他一些操作等等。这些独立设备的这种行为在DiffServ体系中被称作每跳行为(Per-hop Behavior)。

 

如果网络上的所有设备提供了一致的每跳行为,那么对于DiffServ体系来说,这个网络就可以构成End-to-end QoS solution。

 

QoS处理流程

Classifying

Classifying即分类,其过程是根据信任策略或者根据分析每个报文的内容来确定将这些报文归类到以CoS值来表示的各个数据流中,因此分类动作的核心任务是确定输入报文的CoS值。分类发生在端口接收输入报文阶段。

 

对于一般非IP报文,设备将根据以下准则来归类报文:

 

·    如果报文本身不包含QoS信息,即报文的第二层报文头中不包含802.1p Priority,那么可以根据报文输入端口的缺省Priority值来获得报文的QoS信息。端口的缺省Priority值和报文的802.1p Priority一样,取值范围为 0~7。

 

·    如果报文本身包含QoS信息,报文的第二层报文头中包含802.1p Priority,那么可以直接从报文中获得CoS值。

 

注意:以上两种归类准则只有当端口的DSCP信任模式关闭,也就是端口工作在QoS信任模式下的时候才起作用。端口工作在QoS信任模式下意味着不通过分析报文的内容,而直接从报文中或报文的输入端口上获得报文QoS信息。

 

如果端口使用了ACLs归类,那么在该端口上,将通过提取报文相应字段匹配关联的ACLs,以确定报文的802.1p Priority值。要注意的是,如果端口使用了ACLs,但又没有为其设置相应的802.1p Priority值,则设备将按照缺省行为为符合这种归类的报文分配优先级:即根据报文第二层报文头中包含的优先级信息或端口的缺省优先级。

 

上面三种归类准则可能会同时作用于一个端口上。在这种情况下,上面三种归类准则按3、2、1的优先级起作用。 即先根据ACLs归类,在归类失败的情况下,才有可能选择归类准则2、1。

 

对于 IP 报文,可以将根据以下准则来归类报文:

 

·    如果端口信任模式为Trust DSCP,则根据IP报文的DSCP字段(6个比特)通过DSCP to 802.1p Priority Mapping映射到输出报文的CoS字段(3个比特)。

 

·    如果端口信任模式为Trust cos,则按照一般非IP报文归类准则1和2处理。

 

·    如果端口使用了ACLs归类,那么在该端口上,将通过提取报文的相应字段来匹配相关联的ACLs,以确定报 文的DSCP值。要注意的是,如果端口使用了ACLs,但又没有为其设置相应的DSCP值,则设备将按照前面的规则 1、2 确定优先级。

 

和非IP报文归类准则一样,以上几种归类准则同样可以同时作用于一个端口上。在这种情况下,上面的归类准则按照3、 2、1的优先级起作用。

 

Metering

Metering发生在数据流分类完成后,用于约束被分类的数据流所占用的传输带宽。Metering动作检查被归类的数据流中的每一个报文,如果该报文超出了作用于该数据流所允许的限制带宽,那么该报文将会被做特殊处理,它或者要被丢弃,或者要被赋予另外的DSCP值。

在QoS处理流程中,Metering动作是可选的。

 

Marking

Marking即标识,经过Classifying和Metering动作处理之后,为了确保被分类报文的QoS信息能够传递给网络上的下一跳设备,需要通过Marking动作将为报文写入QoS信息,该动作可以通过ACLs完成。

 

Queueing

Queueing即队列,负责将数据流中报文送往端口的某个输出队列中,送往端口的不同输出队列的报文将获得不同等级和性质的传输服务策略。

每一个端口上都拥有8个输出队列,通过设备上配置的Priority-to-Queue映射表来将报文的802.1p Priority 值转化成输出队列号,以便确定报文应该被送往的输出队列。

 

Scheduling

Scheduling即调度,为QoS流程的最后一个环节。当报文被送到端口的不同输出队列上之后,设备将采用 WRR或者严格优先级调度算法发送8个队列中的报文。

 

对于WRR调度算法,可以通过设置权重值来配置各个输出队列在输出报文的时候所占用的每循环发送报文个数,从而影响传输带宽。

 

严格优先级调度算法按照输出队列优先级从高到低(7~0)发送报文,只有高优先级队列的报文全部发送完毕才会对下一队列中的报文进行发送。