QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。QoS的保证对于容量有限的网络来说是十分重要的,特别是对于流多媒体应用,例如VoIP和IPTV等,因为这些应用常常需要固定的传输率,对延时也比较敏感。
定义
当网络发生拥塞的时候,所有的数据流都有可能被丢弃;为满足用户对不同应用不同服务质量的要求,就需要网络能根据用户的要求分配和调度资源,对不同的数据流提供不同的服务质量:对实时性强且重要的数据报文优先处理;对于实时性不强的普通数据报文,提供较低的处理优先级,网络拥塞时甚至丢弃。QoS应运而生。支持QoS功能的设备,能够提供传输品质服务;针对某种类别的数据流,可以为它赋予某个级别的传输优先级,来标识它的相对重要性,并使用设备所提供的各种优先级转发策略、拥塞避免等机制为这些数据流提供特殊的传输服务。配置了QoS的网络环境,增加了网络性能的可预知性,并能够有效地分配网络带宽,更加合理地利用网络资源。
处理流程
分类
Classifying即分类,其过程是根据信任策略或者根据分析每个报文的内容来确定将这些报文归类到以CoS值来表示的各个数据流中,因此分类动作的核心任务是确定输入报文的CoS值。分类发生在端口接收输入报文阶段,当某个端口关联了一个表示QoS策略的Policy-map后,分类就在该端口上生效,它对所有从该端口输入的报文起作用。
(1) 协议
有些协议非常“健谈”,只要它们存在就会导致业务延迟,因此根据协议对数据包进行识别和优先级处理可以降低延迟。应用可以通过它们的EtherType进行识别。譬如,AppleTalk协议采用0x809B,IPX使用0x8137。根据协议进行优先级处理是控制或阻止少数较老设备所使用的“健谈”协议的一种强有力方法。
(2) TCP和UDP端口号码
许多应用都采用一些TCP或UDP端口进行通信,如HTTP采用TCP端口80。通过检查IP数据包的端口号码,智能网络可以确定数据包是由哪类应用产生的,这种方法也称为第四层交换,因为TCP和UDP都位于OSI模型的第四层。
(3) 源IP地址
许多应用都是通过其源IP地址进行识别的。由于服务器有时是专门针对单一应用而配置的,如电子邮件服务器,所以分析数据包的源IP地址可以识别该数据包是由什么应用产生的。当识别交换机与应用服务器不直接相连,而且许多不同服务器的数据流都到达该交换机时,这种方法就非常有用。
(4) 物理端口号码
与源IP地址类似,物理端口号码可以指示哪个服务器正在发送数据。这种方法取决于交换机物理端口和应用服务器的映射关系。虽然这是最简单的分类形式,但是它依赖于直接与该交换机连接的服务器。
策略
Policing 即策略,发生在数据流分类完成后,用于约束被分类的数据流所占用的传输带宽。Policing动作检查被归类的数据流中的每一个报文,如果该报文超出了作用于该数据流的Police所允许的限制带宽,那么该报文将会被做特殊处理,它或者要被丢弃,或者要被赋予另外的DSCP 值。
在QoS 处理流程中,Policing 动作是可选的。如果没有Policing 动作,那么被分类的数据流中的报文的DSCP 值将不会作任何修改,报文也不会在送往Marking 动作之前被丢弃。
标识
Marking即标识,经过Classifying 和Policing 动作处理之后,为了确保被分类报文对应DSCP的值能够传递给网络上的下一跳设备,需要通过Marking 动作将为报文写入QoS 信息,可以使用QoS ACLs 改变报文的QoS信息,也可以使用Trust 方式直接保留报文中QoS 信息,例如,选择Trust DSCP 从而保留IP 报文头的DSCP 信息。
队列
Queueing即队列,负责将数据流中报文送往端口的某个输出队列中,送往端口的不同输出队列的报文将获得不同等级和性质的传输服务策略。
每一个端口上都拥有8 个输出队列,通过设备上配置的DSCP-to-CoS Map 和Cos-to-Queue Map 两张映射表来将报文的DSCP 值转化成输出队列号,以便确定报文应该被送往的输出队列。
调度
Scheduling即调度,为QoS 流程的最后一个环节。当报文被送到端口的不同输出队列上之后,设备将采用WRR 或者其它算法发送8 个队列中的报文。
可以通过设置WRR算法的权重值来配置各个输出队列在输出报文的时候所占用的每循环发送报文个数,从而影响传输带宽。或通过设置DRR算法的权重值来配置各个输出队列在输出报文的时候所占用的每循环发送报文字节数,从而影响传输带宽。
小生不才,文笔不好,还请多多包涵!