qos数据包协议 (基于qos需求的路由协议)

DSCP

DSCP,全称叫做差分服务代码点 (DifferentiatedServices Code Point),由RFC2474定义,它重新命名了IPv4报头中TOS使用的那1字节和IPv6报头中数据类(Traffic Class)那1字节,新的名字称为DS字段(DifferentiatedServices Field)。该字段的作用没有变,仍然被QoS工具用来标记数据。不同的是IPv4使用3比特,而DSCP使用6比特,最低2比特不用。

RFC2474 定义最高3比特为级别/类别选择代码 (Class Selector Codepoints,CS),其意义和IPv4报头中IP优先级的定义是相同的,CS0 ~ CS7的级别相等于IP优先级0 ~ 7。但它并没有定义第3到第5比特的具体含义以及使用规则。DSCP使用6比特,可以定义64个优先级(0-63)。

AF 保证转发 (Assured Forwarding, AF)由RFC2597对CS1~CS4进行进一步定义。它使用第3和第4比特做丢弃优先级标志。01-低丢弃优先级;10-中丢弃优先级;11-高丢弃优先级。这样,在同一类数据中,又根据被丢弃的可能性划分出3档。下表列出了AF服务等级及其对应的DSCP值:

qos数据包协议,路由器qos协议

AF的定义为数据分类提供了方便,比如,运营商可以向用户提供4中服务协约 (SLA):白金,金,银,铜,并为每一种服务的数据分配一定的带宽。当然,不同服务的收费标准也是不同的。

EF 无阻碍转发 (Expedited Forwarding, EF)由RFC2598定义,DSCP值为46 (101110)。EF服务适用于低丢包率,低延迟,低抖动及保证带宽的业务,如VOIP。

其他 DSCP= 000000 尽力转发服务等级 (EF); CS = 6 网间控制(InternetworkControl),DSCP= 48 (110000) CS = 7 网内控制 (Intranetwork Control),DSCP= 56(111000) 在配置命令中,既可以使用十进制数值,也可以使用二进制数值,还可以使用名称。例如,28,011100, AF32 三个写法意义相同。

实际中0-63并没有完全规定。

802.1Q与802.1P

802.1Q协议定义了基于接口的VLAN模型.802.1p规范使第2层交换具有以优先级区分信息流的能力,完成动态多波过滤。

二层数据帧里有4个字节的802.1q标签头,包含2字节的标签和2字节的控制信息,在控制信息 (vlan tag的TCI区域)的前3位,就定义为802.1p优先级。它指明帧的优先级。一共有8 种优先级,主要用于当交换机阻塞时,优先发送优先级高的数据包。

IPV6QOS定义

IPQoS的实现,需要网络中所有相关元素的全面支持,包括应用、终端和网络设备等。在基本的IP协议层面,提供一些字段的定义,用于支持QoS的实现。IPv6同样如此。

IPv6报头格式

IPv6的报头格式和IPv4相比,IPv6采用更规整的结构,便于使用硬件进行高速处理。IPv6定义了一个固定长度的基本报头,其他的一些选项归类为扩展报头,其中包括每一个网络节点都必须处理的HopbyHop报头等。

可以看出,IPv6有两个字段与QoS有关,分别为流量类别 (TrafficClass,TC)和流标签(FlowLabel,FL)字段。流量类 别字段有8位,和IPv4的服务类型(TOS)字段功能相同,用于对报文的业务类别进行标识;流标签字段有20位,用于标识属于同一业务流的包。流标签和 源、目的地址一起,惟一标识了一个业务流。同一个流中的所有包具有相同的流标签,以便对有同样QoS要求的流进行快速、相同的处理。

IPv6QOS信令的定义还处于探讨阶段,具体的内容包括可用带宽、保证带宽、优先级以及与报文处理有关的一些定义字段等。

建设IP网络,QOS是一个非常重要的方面。而IPv6在未来的2~5年内,必然会成为网络建设的主流,因此,探讨IPv6QOS有其现实的意义,对IP网络向电信级过渡以及相关产品的研发均能提供有效的线索。

目前,IPv4QoS已经获得比较好的发展,因此在IPv6大规模部署之前,可以先借助IPv4QoS的成果,进一步研究FlowLabel机制的使用。从目前情况看,可以通过Diff-Serv实现QOS,以后随着技术的发展和标准的成熟,可以逐渐引入其他更有效的方法。而终结目标是,伴随着ITU-T 的QOS架构和实现方法的成熟,最终解决IPv6 QOS。

QOS相关技术-TC用Linux内核的流量控制

流量控制包括以下几种方式:

SHAPING(限制)

当流量被限制,它的传输速率就被控制在某个值以下。限制值可以大大小于有效带宽,这样可以平滑突发数据流量,使网络更为稳定。shaping (限制)只适用于向外的流量。

SCHEDULING(调度)

通过调度数据包的传输,可以在带宽范围内,按照优先级分配带宽。SCHEDULING(调度)也只适于向外的流量。

POLICING(策略)SHAPING用于处理向外的流量,而POLICIING(策略)用于处理接收到的数据。

DROPPING(丢弃)如果流量超过某个设定的带宽,就丢弃数据包,不管是向内还是向外。

流量的处理由三种对象控制:

QDISC(排队规则)

QDisc (排队规则)是queueing discipline的简写,它是理解流量控制(traffic control)的基础。无论何时,内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的qdisc(排队规则)把数据包加入队列。然后,内核会尽可能多地从qdisc里面取出数据包,把它们交给网络适配器驱动模块。

最简单的QDisc是pfifo它不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列。不过,它会保存网络接口一时无法处理的数据包。

CLASS (类)

某些QDisc (排队规则)可以包含一些类别,不同的类别中可以包含更深入的QDisc(排队规则),通过这些细分的QDisc还可以为进入的队列的数据包排队。通过设置各种类别数据包的离队次序,QDisc可以为设置网络数据流量的优先级

FILTER(过滤器)

filter (过滤器)用于为数据包分类,决定它们按照何种QDisc进入队列。无论何时数据包进入一个划分子类的类别中,都需要进行分类。分类的方法可以有多种,使用fileter(过滤器)就是其中之一。使用filter(过滤器)分类时,内核会调用附属于这个类(class)的所有过滤器,直到返回一个判决。如果没有判决返回,就作进一步的处理,而处理方式和QDISC有关。

需要注意的是,filter (过滤器)是在QDisc内部,它们不能作为主体。