计算机网络-09 QoS服务质量

第九讲 QoS 服务质量

0x01 QoS基本概念

衡量指标:带宽、时延、丢包率等等

目标是避免网络拥塞,降低时延,减少丢包,调控流量,为特定用户或业务提供专用带宽,支撑实时业务

不能创造带宽,但是可以对网络资源进行管理

1 端到端时延

包括处理时延、传播时延、排队时延,传播时延固定(和链路长度有关),处理时延和排队时延可优化

处理时延:数据包从入端口被路由器接受到放到出端口队列等待转发的时间

排队时延:数据包在出端口队列到被发送的时间

传播时延:数据包在链路上发送和传播的时延

有的路由器在入口和出口有俩队列,大部分只有出端口一个队列

2 丢包

丢包通常发生在数据队列满的时候,有线链路的丢包发生在链路拥塞时,无线链路的丢包基本都是因为信道质量差

0x02 QoS三种服务模型

1 尽力而为服务模型best-effort service

单一、最简单,等于没有服务质量保障,尽最大能力发送报文,但是对带宽、延时等等不提供任何保障

通过FIFO队列来实现

2 综合服务模型intergrated service

传输前预留足够多的资源,发送报文前向网络申请特定服务,通过RSVP信令来完成

通知网络我的服务质量要求,包括带宽、时延等等,网络收到后回复确认信息,就代表已经给我预留了我要的这么多资源

RSVP协议

端到端的每个设备上,监视每个流,明确区分并保证每一个流的服务质量,非常细的粒度

特点是工作在IP层之上,属于传输层协议,不处理数据传输,只做服务质量控制,在点对点单播或组播中都可以做资源预留,单工协议,由数据的接收端来规定服务质量(比如视频用户自己选择码率),对不支持它的路由是透明的

工作原理

发送端定期发送path消息,描述业务流的特征SENDER_TSPEC,该消息沿路由选择的路径转发

每一个中间RSVP路由都截获path消息,建立软状态,记录这个特征SENDER_TSPEC和上一跳路由PREVIOUS_HOP

接收端收到消息之后回复Resv消息,指定自己的QoS需求FLOWSPEC和过滤数据包的对象FILTER_SPEC,Resv沿着刚刚的路径走,反方向逐跳传递,目的地址是刚刚获取到的PREVIOUS_HOP

发送端收到Resv消息,做资源预留,并回复确认消息

移动环境下的扩展

资源预留没法穿越移动IP的隧道,没有提前预留机制,没有资源浪费避免机制,不区分不同类型会话的预留请求

优缺点

优点:

QoS得到绝对保障(只要预留了,要多少我给你留多少)

缺点:

可扩展性差,需要端到端信令,为每一个会话都预留软状态

路由器要求高,只要路径上有一个不是RSVP路由,就相当于根本没做资源预留

不适合短生存期流,做资源预留的开销都够直接把它发完了的

3 区分服务模型differentiated service

起源于综合服务模型,但是是粗粒度

不需rsvp,不需要网络预留资源

不需要为每个流都维护状态,根据每个报文的差分服务类来提供特定的服务,用DS标记

基本思想是分类

工作原理

用户和ISP约定服务等级SLA,在ISP的入口根据SLA对流量做分类和整形,在核心路由器中通过粗粒度包分类来进行调度分配路由

优缺点

优点:

扩展性好,开销小,只标记类别数,状态信息数量和类别数而不是流数正相关

层次化结构,不同区域有不同服务策略

不影响路由,只影响队列调度和缓冲管理

缺点:

只能提供粗粒度的QoS保障

本质是一种相对优先级,不能提供端到端保障

组件分散,需要协同一致,统一策略管理

综合服务和区分服务的对比

综合服务:细粒度,严格质量保证,网络核心复杂,扩展性差,需要路由之间的信令,面向流(连接)

区分服务:粗粒度,相对质量保证,网络边缘复杂,扩展性好,不需要路由之间的信令,面向分组(分类)

0x03 流量整形和标记

实现区分服务模型的关键机制(涉及到流量分类)

MPLS EXP标识+diff-serv DS位

MPLS EXP标识:3位,采用标签转发机制

结合diff-serv位,有两种实现方法

E-LSP

队列和优先级标记基于MPLS标签和EXP位

将DS位映射到EXP位,最多可支持8种不同的服务等级

LSR(标记交换路由)根据LABEL和EXP对分组进行队列调度,根据EXP选择性丢包,同一LSP(标记交换路径)的流可能被分到不同的队列,从而实现不同等级控制

是通过标签分发协议建立的普通LSP

L-LSP

队列和优先级标记基于MPLS标签和EXP位之外

将DSCP映射为一个LSP,通过LABEL和EXP向LSR标识QoS要求,一个LSP支持一个QoS等级

LSR根据LABEL对分组进行队列调度,根据EXP选择性丢包,同一LSP的分组被分到同一个队列

通过约束路由标签分发协议或RSVP-TE建立,有一定的QoS能力

QoS策略路由PBR

policy based router,不仅根据目的ip进行路由

主要也是设立一些规则,手工配置,需要同时优化多个参数,调参难,多业务并存难以优化,节点状态信息存储太大,不准确

0x04 拥塞控制和调度策略

不同等级的包被放在不同的队列中,路由器按照一定的AQM进行管理并决定服务的先后顺序

AQM直接影响路由器性能和QoS

队列分硬件队列和软件队列,硬件队列永远FIFO,软件队列有策略,每个队列机制包括分类、排队策略、服务策略三种

队列机制主要有FIFO、PQ、CQ、WFQ、CBWFQ五种

FIFO

first in first out,先进先出

基本上是硬件FIFO的扩展,不提供QoS多级服务

优点:简单快速,支持性好

缺点:流之间没有带宽公平,不分优先级,没法保证重要业务

PQ

priviledge queue,优先级队列

分类标准包括:路由器源端口、IP access list、包大小、分片、TCP源/目的端口、UDP源/目的端口

转发时按照分级从高到低轮询,高的只要不空就永远发不到底的头上

优点:算法简单,可以保障高优先级业务的QoS

缺点:欠公平,低优先级队列饥饿

CQ

customised queue,定制队列

提供16个FIFO定制队列,用户自定义traffic类别

分类标准和PQ一样

队列调度使用轮询算法,每个队列都只能发送规定的字节数,给第一类发N1个,给第二类发N2个,…,给第十六类发N16个,给第一类发N1个,…

优点:可以保障每种等级的带宽,防止出现饥饿

缺点:单一队列仍然是FIFO,需要在每一跳手工配置,容易产生高时延抖动,16种粒度太粗,没办法精细化控制,轮询不能保证最高等级的QoS

改进:加入抢占机制:加一个0队列,只要0有就发0,没有再说

WFQ

weighted fair queue,加权公平队列

解决CQ粗粒度的问题

根据每个流来共享带宽,调度单位是每条流,防止大流量会话独占端口,引入权重,高权重的流会获得更多的带宽

同一个流的数据一般会排到同一个queue中,也可以划到不同队列(比如视频中的基本帧优先级高,增强帧优先级低)

在包加入和包丢弃的环节,考虑HQO和CDT

HQO是硬件允许的最大排队数量,可以理解为buffer的总大小,CDT是可能产生拥塞的阈值,达到这个阈值之后开始尝试丢包

超过HQO,并且这个包的等级是系统要发送的最后一个包,那就直接扔了

超过HQO,但这个包的等级不是系统要发送的最后一个包,那就让它进来,把最后一个包扔了

超过CDT但没超过HQO,并且这个包的等级是系统要发送的最后一个包,那就直接扔了

超过CDT但没超过HQO,这个包的等级也不是系统要发送的最后一个包,那就让它进来,这次不丢包

空队列永远不丢包,每个包进来的时候都被打上finish time标签,按finish time标签依次发送

优点:配置简单,兼顾所有流的带宽,优先保障高优先级流的QoS

缺点:不能对流进行客户化定制,不能提供固定带宽保障(严格按用户要求提供服务)

CBWFQ

0x05 流量监管和流量整形

限速:超过带宽限额的突发数据丢弃或降为低等级流量转发

整形:超过带宽限额的突发数据缓冲起来,等流量下降以后再发送,做平滑处理

测量流量速率的方法:令牌桶

令牌桶中放的有令牌,数据接口每通过一个Bit或者一个byte都要花掉一个令牌,桶里没有令牌的时候不能发送,令牌会定期向桶里添加,也就是加令牌的速度决定了数据通过接口的速度,通过控制这个速度来控制用户流量带宽,这个速率称为承诺信息速率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值