QOS中的PHB到底是什么

2018年7月6日22:29:03

PHB

PHB是Per Hop Behavior的缩写,即每跳行为,即设备对报文的处理。可能有人理解为PHB就是调度、丢包、监管、整形、重标记等动作,实际上不完全是,这些动作是设备具体的行为,而PHB只定义了一些外部可见的转发行为,并没有指定特定的实现方式。说白了,PHB就是将各种行为,概括成几类。就如同星级酒店的标准,可以有3、4、5这样的星级。RFC定义了四类标准的PHB,并用CS、EF、AF、BE这些符号来表示,每类PHB都对应一组DSCP。其实,PHB这样分类,是根据那些可见的服务特征,如时延、抖动或丢包率。

CS、EF、AF、BE!没错,我们经常见到它们。

BE,没有质量保证,一般对应于传统的IP分组投递服务,只关注可达性,其他方面不做任何要求。IP网络中,缺省的PHB就是BE。任何路由器都必须支持BE PHB。

AF,代表带宽有保证、时延可控的服务,适用于视频、语音、企业VPN等业务 。

EF,低时延、低抖动、低丢包率,对应于实际应用中的视频、语音、会议电视等实时业务。

CS,因为现网有些存量设备不支持差分服务,只解析DSCP前3位,为了后向兼容,标准预留了所有格式为XXX000的DSCP值 ,这类值就对应为CS PHB。

可是,大家经常看到的是,AF带有后缀的,比如AF11、AF21等,CS也有CS6、CS7等,而BE、EF都不带后缀。这怎么回事呢?那是因为,BE和EF对应的只有唯一的一个DSCP值,CS和AF有多个DSCP值与之对应。例如AF,被细分为4个等级,且每个等级有3个丢弃优先级,其表达形式为:AF1x~AF4x(x代表丢弃优先级,取值为1~3)。

举个例子来说明AF怎么用。假设有4个小区的网络,接入到ISP的同一台边缘路由器。如果某个小区发送了大量的FTP数据,可能导致拥塞,干扰其他小区的FTP传输。为了公平,约定每个小区FTP总速率不能超过500Mbps。但有时他们可随意发送,甚至会超过1Gbps。怎么办呢?可以在每个入接口上(用CAR)监测FTP速率,并重标记报文的DSCP。如果速率小于等于500Mbps,标记为AF11,如果速率在500Mbps~1Gbps之间,标记为AF12,如果速率超过1Gbps,标记为AF13。当拥塞发生时,优先丢弃AF13,其次AF12,AF11就会在最后被丢弃。皆大欢喜。

 

PHB = 服务质量?
PHB体现的是等级的高低,而不是服务质量(QoS)的好坏,不能说CS的等级最高,服务质量最好;BE等级最低,质量最差。PHB只是逐跳行为,而服务质量是端到端的。服务质量,通常用如下参数来衡量:
- 带宽/吞吐量
- 时延
- 时延变化(抖动)
- 丢包率
- 可用性
除了PHB,还有很多个因素会影响服务质量,例如链路带宽、设备处理性能、网络的稳定性、传输距离,……


PHB = 队列?

华为路由器上的队列名称,也叫BE、AF1、AF2、AF3、AF4、EF、CS6、CS7。是否就是PHB?

其实,队列不等同于PHB,即队列的名称不代表服务等级的高低。举个例子,假如某车厢是硬座车厢,一开始被称为“硬座”车厢,如果把该车厢里的座椅全改装成硬卧铺位,那么该车厢虽然叫“硬座”车厢,实际的PHB是“硬卧”。
队列也可以做类似改装,例如将BE队列配置为SP调度(当然一般不会这么做^_^),其余队列配置为WFQ调度,则BE队列的服务等级比其余7个都高,其PHB不再是BE了(SP、WFQ的概念下面的“队列机制”会介绍)。是不是已经很晕了,既然队列名称不代表PHB,那为啥要这么要跟PHB取相似的名字呢?其实,这是为了更方便、更直观看出各队列优先级的相对高低。这总比队列1、队列2、……队列8这样命名强一些吧。


  • 更新时间:2018年7月6日22:29:03 ,共 1520 字。