分类: WINDOWS
2009-06-29 14:16:00
QOS的概述; Quality of service (服务质量保证)
QOS的定义; 在网络通信过程中允许用户在丢包率. 延迟抖动, 带宽等方面可得到一个预期的服务水准.
IP QOS实现的目标. ;
一; 避免并管理IP网络拥塞.
二; 减少IP报文的丢失率.
三; 调控IP网络的流量.
四; 为特定用户或特定业务提供专用带宽.
五; 支持IP网络上的实时业务.
延迟; delany 标识数据穿越网络所经历的时间. 衡量网络所传输时间的长短.的指标.
延迟是一个性能指标, 它是由传输延迟, 调度延迟, 串行延迟所组成.
服务类型(TOS type of service)
服务等级及启用的QOS的功能;
尽力而为的服务, 基于连接.
区分服务, COS承诺的接入速度(CAR),加权公平排队,(WFQ),加权随机预侦测(WRED)
集成服务. 资源预留协议(RSVP)
QOS的功能;
分组分类器和标识器; 网络边界上的路由器根据TCP/IP分组报文头中的一个或多个字段,使用分类器功能来标识属于特定通信类的分组,然后用标记器功能标记已被分类的通信,这是通过设置IP优先字段或区分服务代码点(DSCP)字段来实现的.
资源分配;
先进先出(FIFO)调度是一种被当前的internet路由器和交换机所广泛采用的传统排队机制,虽然先进先出调度部署起来很简单,但是在提供QOS时有一些基本的问题,它没有提供优先处理对延迟敏感的通信并将其移至队列开头的手段; 对所有的通信都完全同等地对待,不存在通信区分或服务区分的概念.
对于提供QOS的调度算法,至少要能够区分队列中的不同分组,并知道每个分组的服务等级,调度算法决定接下来处理队列中的哪一个分组,而流分组获得服务的频度决定了为这个流分配的带宽或资源.
尾部丢弃; (tail drop); 当队列中的分组数量达到队列的最大长度后,将到达的分组全部丢弃.
QOS信令协议; RSVP是在internet上提供端到端QOS的IETF Intserv体系结构的一部分,它使得应用程序可以向网络提出每个流的服务质量要求,服务参数用来量化这些要求, 供管理控制使用.
注; 基于拓扑的转发机制被称做 cisco快速转发(CEF) ………基于拓扑的转发方法通过建立一个与路由器路由表完全相同的转发表,解决了基于缓存的转发机制中存在的问题.
IETF工作组定义的DSCP如下;
默认DSCP; 定义为000 000;
类选择器DSCP; 定义为向后与IP优先级兼容.
选择器DSCP;
类选择器 |
DSCP |
优先级一 |
001000 |
优先级二 |
010000 |
优先级三 |
011000 |
优先级四 |
100000 |
优先级五 |
101000 |
优先级六 |
110000 |
优先级七 |
111000 |
加速转发; (EF) PHB; 它定义了奖赏服务,推荐的DSCP是101110
确定转发(AF)PHB; 它定义了四个服务等级.其中每个服务等级有三个分组丢弃优先级,所有AF关PHB推荐使用12个码点,
AF PHB
丢弃优先级 |
等级一 |
等级二 |
等级三 |
等级四 |
低 |
001010(10)AF11 |
010010(18)AF21 |
011010(26)AF31 |
100010(34)AF41 |
中 |
001100(12)AF12 |
010100(20)AF22 |
011100(28)AF32 |
100100(36)AF42 |
高 |
001110(14)AF13 |
010110(22)AF23 |
011110(30)AF33 |
100110(38)AF43 |
注; 上表显示如何使用DSCP来制定AF类别和丢弃概率.
DSCP的前三位用于制定类别, 后二\位制定丢弃概率,最后一位为0
EF对应的DSCP 101110也就是46
注; EF match packets with EF dscp (101110)
Ef对应的IP precedence 的确\ 5
DSCP标记器的功能或执行整形器或丢弃器操作的流量测量功能,;
分类器; 分类器根据报头中的某些部分挑选在通信流中的分组,最常见的方式是根据DSCP字段进行分类,但也可以根据报头中的其他字段来分类,该功能标识分组所属的通信类.
标记器; 该功能有助于根据通信类来写/改定分组的DSCP字段.
测量; 测量功能根据通信描述符检查通信量是否与配置文件相符,并将结果传递给出标记器功能. 然后根据分绷带 是否符合 配置文件,丢弃器或整形器将触发特定的操作.
整形器; 整形器功能通过将一些分组保存在缓冲区中来延迟通信,以便使它们与配置文件相符这种操作又称为流量整形.
丢弃器; 丢弃器功能丢掉所有与配置文件不符的通信,这种操作又称为流量控制.
DSCP和COS的对应关系;
默认的DSCP和COS的对应关系;
修改以后的DSCP和COS的对应关系.
QOS的分类,标记.
在实际的网络应用中, 无论是packet,还是frame,实际上都是没有优先级的. 000000
如果不做任何设置,优先级等于. 0.
注; 这里的match-all表示必须抓住class-map内的所有条件.
Match-any 表示至少有其中一条匹配件.
Class-map 的配置;
Policy-map的QOS策略参数;
bandwidth 限制带宽为kib/s
set ip dscp 用一个指定的IP优先权值标记帧.
set ip precedence 用一个指定的IP优先权值标记帧.
trust cos 信任帧的COS
trust dscp 信任分组的DSCP
ip-precedence 信任分组的IP优先权.
police 在流量上执行带宽和流特性.
service-policy 命令将用policy-map 命令指定的流量策略添加到一个接口上.
配置; class-map match-any cisco -----为class-map起一个名和定义一个策略.
match access-list name 100 -----------匹配列表.
match input-interface f0/1 ------------匹配进入的接口.
policy-map ciscoaaa ---------为策略map起一个名称.
class cisco ------------------进入class cisco
bandwidth 3000kbit/s ------------限制带宽为3000kbit/
clsass class-default -----------进入默认class-default
bandwidth 2000 ------------限制带宽为2000
interface f0/1
service-policy output ciscoaaa ---------------应用策略在接口上.
交换机全局启用QOS ; mls qos
交换机的信任边界;
配置命令为; 在入向接口; mls qos trust (dscp/ cos/ip precedence).
Class-map的配置案例;
把来自192.168.10.0/24 的出站telnet 流量的IP优先级设置为5,其他的出站流量的IP优先级设置为1:
access-list 133 permit tcp 192.168.10.0
(ACL133定义特定流量)
class-map match-all telnet
(telnet是class map的名称,而不是什么协议噢)
match access-group 133 (调用ACL133)
policy-map kkblue (kkblue是policy map的名称)
class telnet (policy调用名字叫做telnet的class map)
set ip precedence 5 (把优先级修改成5)
class class-default (class-default指的就是其他的数据)
set ip precedence 1 (优先级次修改为1)
interface Serial1
ip address
service-policy output kkblue (在接口上执行)
这就是一个简单的分类标记工作,实际工程中可能会命令会多一点,复杂一点,但是道理都是一样的。
关于class-map 嵌套的原理与配置;
嵌套class-map的几点配置;
class-map match-any parent (parent是class map名称)
match access-group 1
match class-map child (调用child这个class map)
class-map match-all child (child是class map名称)
match input-interface Serial0
match destination-address mac
!
policy-map kkblue (kkblue是policy map的名称)
class parent (调用parent这个class map)
police 8000 2000 4000 conform-action transmit exceed-action set-qos-transmit 25
violate-action drop (其余的是策略,可以先不看)
!
interface Serial1
ip address 172.16.0.1 255.255.255.252
service-policy input kkblue (接口上加载kkblue)
点评:实际上parent使用的是match any,要么符合access-group ,要么符合class map child。Child中的要求match any。
!
class-map match-all kkblue (class map的名称是kkblue)
match access-group 1
!
policy-map parent (policy map名称是parent)
class class-default
police 8000 2000 4000 conform-action transmit exceed-action set-qos-transmit 25
violate-action drop (执行的策略先不去考虑,后面有介绍)
service-policy child (policy map调用了child这个policy map)
policy-map child (创建child这个class map)
class kkblue (加载映射class map)
shape average 10000000 (策略,先不研究)
!
interface Serial1
ip address 172.16.0.1 255.255.255.252
service-policy input parent (加载接口上)
!
access-list 1 permit 192.168.0.0
嵌套,就是套着用,体现出灵活
令牌桶;
首先令牌桶只是一个计数工具不是什么缓存./
WFQ;
l 接口下启用WFQ: cisco(config-if)#fair-queue
l 显示公平队列的配置状态:cisco#show queueing fair
l 显示接口的队列信息: Router#show queue serial0
WFQ的配置;
WFQ的机制;
WFQ采用HASA算法. 尽量将不同的流分入不同的队列.用户无法配置.
l 在保证公平(带宽、延迟)的基础上体现权值,权值依赖于IP报文头中携带的IP优先级体现公平队列
l 队列长度和带宽配额可配置
l WFQ队列机制是在传输速率小于2.048的串行链路默认的队列机制。
l WFQ:加权公平队列,保证不同数据流之间的公平,同时体现权值。
l 当一个流量,从传播延迟到内部设备的交换延迟,进而把数据包,转发到目的地的出方向端口的串行延迟中. 进行队列调度的拥塞避免的机制。
l 排队机制.就是一个拥塞避免,调度机制。
l 拥塞的时候,默认为此接口的1024 流(5元素)去动态的产生基于每个流的一个队列!
PQ静态队列; 需要手动配置.
配置命令如下;
Access-list 100 permit tcp host
Priority-list 1 protocol ip high tcp telnet
Priority-list 1 protocol ip high list 100
Priority-list 1 protocol ip medium it 1000
Priority-list 1 interface e0/0 medium
Priority-list 1 default low
Int s1/0
Priority-group 1 将PQ的队列应用在s2/0接口.
CBWFQ 的配置;
l 配置步骤和命令
l 一、定义分类的策略,即class map
l 二、设置策略,即定义policy map {bandwidth, priority}
l 三、把policy map 应用在相关接口上