QOS (Quality of service )
服务质量:是用来解决网络延迟和阻塞等问题的一种安全机制。
网络传输的影响因素:1.带宽 2.时延 3.丢包 4.抖动 5.吞吐量
带宽:表示占用了多少资源
吞吐量:表示实际处理的量
抖动:时延不一致
时延:总时延=发送时延+传播时延+排队时延+处理时延
其中发送时延和处理时延都是由客户端的机器性能决定的,传播的速度是光速,所以一般传播的时延都忽略不计,那么作为网络管理者,想要在已有设备的基础上改善网络传输质量,就只能在数据在网络中的排队时延上下手。
首先先了解分作交换器的构造和工作流程
所有的网络设备都可以简化成,端口模块+交换模块
常见的分组交换器有:路由器(包交换)、交换机(帧交换)
路由器简易图交换机简易图
交换机没有数据拆开再封装,路由器再转发过程中需要将数据拆开再封装(拆开再封装的过程中只修改物理地址,逻辑地址始终不变),这样路由器就要比交换机多一个处理模块,从而使路由器比交换机慢。
所有的网络设备的数据转发都是两个行为:1.匹配行为 2.动作行为
交换机匹配的是MAC地址(一次匹配多次交换)
路由器匹配的是IP(CEF表也是一次匹配多次路由)
防火墙匹配的是会话表(源、目IP,源、目端口,FLAG字段等)
负载均衡设备则是根据负载均衡算法,匹配多个端口转发流量
所以我们接触一个陌生设备时就看两个方面:1.该设备匹配什么 2.该设备有没有接口调优
所有网络设备的交换模块大同小异,不同的是它们的端口模块,端口模块越是复杂,该设备处理数据的速率就越慢。
所以大型企业一般不会把防火墙部署在内网边界,而是在服务器旁边,因为防火墙的端口模块很复杂,需要匹配的东西太多,会严重影响数据传输速率。
经过前面的分析,我们作为网络的管理者想要在已有设备条件下提高数据转发质量,就只能在数据的排队过程中做策略,让对时延敏感(或重要)的流量先走,其它流量等会再走。
QOS的工作过程
1.分类,标记
2.队列机制
3.拥塞避免
4.流量整形、监管(都是限速行为)
整形一般用于大带宽和小带宽的接口处。
5.数据压缩、链路捆绑(针对的是语音、视屏流量)
技术实现:
1.流量标记,将不同的流量打上不同的标记,让转发设备可以按策略转发。
二层标记:EXP(MPLS数据包中的标记字段)、COS、DE
三层标记:TOS (1. IP precedence 2. DSCP)
IP 优先权
TOS字段的前三位为IP precedence,划分为8个优先级,即:IP优先级字段。
可以用于流分类,数值越大表示优先级越高。
7 :预留(Reserved)
6 :预留(Reserved)
5 :语音 (Voice)
4 :视频会议(Video Conference)
3 :呼叫信号 (Call Signaling)
2 :高优先级数据(High-priority Data)
1 :中优先级数据(Medium-priority Data)
0 :尽力服务数据(Best-priority Data)
缺点:只能决定先调用谁,不能决定先丢弃谁
DSCP
由于IP 优先权的缺陷,满足不了实际的策略部署,于是RCF又将TOS的前六位定义成DSCP差分服务代码点,后两位保留。高三位表示先调用谁,低三位表示先丢弃谁。
规则:调度优先级越大,越先被调用
丢弃优先级越大,越先被丢弃(语音流量的丢弃优先级和调度优先级都很大)
每个DSCP编码值都被映射到一个已定义的PHB(Per-Hop-Behavior)标识码,通过键入DSCP值,电话、Windows客户端设备也可以对流量进行识别。
令牌桶技术
令牌桶就是存放令牌的桶,令牌桶算法网络流量整形和速率限制中最常用的一种算法。
原理:系统以特定的速率向桶中下发令牌,桶满了之后令牌丢弃。有流量来时,系统规定一个令牌只允许固定大小的流量通过(eg:1bit/令牌),相应大小的流量通过时,令牌桶中的令牌数会相应的减少。令牌桶本身是没有存储能力的,所以,当令牌桶中的令牌数为0时,来的流量就再没令牌可拿,就会被系统丢弃。
CIR=Bc/Tc
承诺信息速率=单次添加令牌数量/添加令牌的周期
演进过程:
单速率单桶双色:只有一个令牌桶,该桶加入令牌的速率恒定,假设拿到令牌的流量为绿色,没拿到令牌的流量为灰色。
单速率双桶三色:有两个信令桶,但是只往A桶中以恒定速率添加令牌,B桶中放的是A桶中上次剩余的令牌。当流量再次到来时,取的令牌数时A+B的令牌数之和。这样造成流量忽上忽下。其中拿到A桶令牌的流量为绿色,B桶中的流量为红色,没拿到令牌的流量为灰色。
双速率双通三色:有两个信令桶,系统同时往两个信令桶中下放信令,A桶的速率为0.2,B桶的速率为0.25,当流量过来,系统会判断流量的速率x,若x<0.2,就在A桶中取令牌,若x>0.2就去B桶中取令牌。(只能取一个信令桶,随时获得转发)
调度算法
FIFO: 先进先出。
PQ:有高优先级的流量先走,当所有的高优先级流量都走完了,再轮到中优先级,高优先级和中优先级流量都走完了,再轮到低优先级流量。
如果一直有高队列流量时,低队列流量将一直都不能转发。
CQ:轮循发送,人人平等(只有0队列优先),当重要流量再来时,不能及时发送,只能等下个循环到来。
WFQ:共256个队列,自动根据五元组自动分配队列,高优先权的分组获得优先调度的机会多于低优先权的分组。
缺点:是全自动队列。
CBWFQ:是对WFQ功能的扩展,为用户提供了定义类的支持。它是一个符合队列,也是最复杂的队列技术,它由FIFO、LLQ、WFQ队列组成。
LLQ:低延迟队列,为语音分组这样的对延迟敏感的数据流提供严格优先发送服务。
QOS服务类型:
1.Int-Serv 模式(全局模式):该模式的特点是,发送分组前要先向网络提出资源申请。所有的设备都要做资源预留。这样会造成资源浪费,而且对设备的要求高,部署困难。
2.Diff-serv 模式(分区模式):发送分组前无须预先向网络申请带宽资源,他通过携带在IP分组头部的QOS参数信息,来通告自身的服务类别。网络中的各个节点秩序根据这个分组头中的QOS字段的信息进行相应的处理。Diff-serv 中定义了3类服务,EF类(Expedited Forwarding,加速转发类)这个分组有着最高的优先级,得到最优先转发处理;AF类(Assured Forwarding,保证转发类)这个分组有着较高的优先级,将得到保证转发处理;BF类(Best Forwarding)这个分组的优先级最低,只做尽力而为的转发。在提供服务时,为属于同一服务类别的分组提供同样的服务策略。
Diff-serv 将DSCP中的高三位的服务类别(决定先调用谁部分)分为了三类,5-7为EF,1-4为AF,0为BF。
3.什么都不做(FIFO)