HCIE之Qos(十七)

QoS

  • 一、哪些问题会影响网络的数据传输
  • 二、QoS服务模型
  • 三、IntServ
    • 3.1 资源预留的过程分为5步
    • 3.2 资源预留方式可分为两类:
  • 四、DiffServ
  • 五、分类和标识的方法
    • 5.1、二层标记方法
    • 5.2、三层标记方法
      • 5.2.1 传统的IPP方式
  • 六、拥塞管理(队列技术)
    • 6.1拥塞管理:
      • 6.1.1 FIFO(First In First Out Queue)队列:
      • 6.1.2 PQ队列:
      • 6.1.3 WRR( Weight Round Robin)队列:
      • 6.1.4 DRR(Deficit Round Robin)队列: Deficit 赤字; 亏损; 亏空; 不足额
      • 6.1.5 WFQ(Weight Fair Queuing)队列
      • 6.1.6 CBQ(Class-based Queueing)队列
  • 七、拥塞避免(丢包技术)
    • 7.1 拥塞避免(Congestion Avoidance):
      • 7.1.1 传统的尾部丢包策略
      • 7.1.2 RED丢弃策略
      • 7.1.3 WRED丢弃策略
  • 八、流量监管和流量整形
    • 8.1 流量的监管
      • 8.1.1 单速双桶三色
      • 8.1.2 双速双桶三色
    • 8.2 流量整形(Traffic shaping)

一、哪些问题会影响网络的数据传输

1、有限的带宽
2、延迟
3、抖动
4、丢包

解决可用带宽的方法:
1、升级带宽,增加链路带宽
2、让优先级高的流量先过
3、压缩二层的帧
4、压缩IP包的头部

延迟的分类:
1、处理延迟–网络设备将数据帧从入接口取出,将其放到接收队列,再放到出接口输出队列所需的时间
2、排队延迟–数据包在接口的输出队列中等待的时间
3、串行化延迟–将封装在数据帧中比特放到物理介质上的时间
4、传播延迟–通过物理介质传输数据帧中的比特所需的时间

注意:只有排队延迟可以通过使用QOS来进行控制

二、QoS服务模型

1、尽力而为的服务–没有应用QOS,网络的默认行为
2、集成服务–所有的中间系统和资源都显式的为流提供预定的服务,这种服务需要预留网络资源,确保网络能够满足通信流的特定服务要求。
3、区分服务–将根据服务要求将通信流分类,然后将它们加入到效率不同的队列中,使一些通信流优先于其他类别的通信流得到处理。

三、IntServ

集成服务是通过使用RSVP(Resource Reservation Protocol资源预留协议)实现的,在两个端点中间网络设备上都要启用RSVP。
工作原理–数据流在发送之前,起始节点会向网络请求特定类型的服务,并将其流量配置文件告诉网络中的每个中间节点,请求网络提供一种能够满足其带宽和延迟要求的服务。在从网络得到确认后,应用才开始发送数据。

3.1 资源预留的过程分为5步

1、数据发送方发送rsvp path控制消息,这种消息描述了将要被发送的数据的信息。
2、每个rsvp路由器收到path消息后,保存上一跳的IP地址,并继续向下发送。
3、接收站接收到rsvp path消息后,使用rsvp resv消息向上一跳路由器请求rsvp资源预留。rsvp resv消息从接收方到发送方所经过的路径与rsvp path消息到来时完全相同。
4、rsvp路由器确定是否可以满足这些rsvp请求,如果不能,则拒绝。如果可以,则预留出资源,并继续向上一跳发送出rsvp请求。
5、发送方收到rsvp请求,说明预留已经就绪,可以开始发送数据了。

路由器对数据包的处理过程:
1、准入控制
2、分类
3、策略
4、排队
5、调度

3.2 资源预留方式可分为两类:

1、独占式–适合于多个数据源同时发送的应用程序,针对每个发送方预留资源,且发送方是很清楚的。
2、共享式–适合于多个数据源不太可能同时发送的应用程序。
又可分为两种:
①共享显式(shard explicit SE)–为多个明确的源预留资源
②通配符过滤器(wildcard filter WF)–为所有源预留资源

四、DiffServ

区分服务–能够提供满足不同QOS需求的多种服务等级。不需要显示的通知网络设备。
路由器对数据包的处理是逐跳行为

缺点:没有绝对的服务保证,机制复杂。

语音进程的端口号:16384-32767之间的偶数 奇数的是控制端口,偶数的是数据端口

·确定数据流的优先顺序。对延迟敏感的流量赋予高的优先级。
 如果WAN链路不发生拥塞,没有必要划分数据流的优先顺序。
 如果WAN链路经常发生拥塞,划分数据流的优先顺序可能解决不了问题,更合适的解决方案是增加带宽。

·制定排队策略:
 1.为所有用户提供合适的服务级别
 2.节省昂贵的WAN费用

·RTP(Real-Time Protocol):实时传输协议
 RTP传输多媒体应用的数据流,包括IP语音和视频(对延迟比较敏感的)

·MQC–模块化的QOS命令行

华为Qos实现方式,分为三种:

  • 接口配置

    如LR(路由器出、交换机入和出)、Qos gts/car、Qos queue(交换机)、Traffic-limit(交换机)
    注:

  • Queue Profile
    老式的配置方式,路由器支持
    交换机不支持,使用接口的Qos queue实现相同的功能

  • 流策略MQC/CBQ :模块化的配置方式,推荐
    MQC基于模块化的QoS配置 CBQ基于分类的QoS配置
    流分类:根据报文的某些特性进行分类
    Traffic classifier ABC operator [AND | OR] AND表示if-match中的必须全部匹配,OR表示if-match中的任意匹配 一个或多个或全部都可以。单个if-match中的多个条件永远都是OR关系

流行为:对分类的报文所做的QoS动作,比如报文过滤、重标记、流量监管、流量整形和流量队列等

流策略:将流分类和流行为绑定后形成的完整的策略应用于接口、全局和VLAN等
注:MQC的配置可以被FR CLASS调用 为我们配置QOS提供了一个统一的格式标准

五、分类和标识的方法

  • 分类是以特定的优先级或预定的参数来区分帧或数据包

  • 标记就是对区分出来的数据包打上相应的优先级

5.1、二层标记方法

COS–二层的服务类别
7 保留
6 保留
5 语音流量
4 视频会议
3 呼叫信令
2 高优先级数据
1 中优先级数据
0 尽力而为的传输

在这里插入图片描述

5.2、三层标记方法

  • 有两个RFC,一个是RFC1349,只标识了前3个BIT;一个是RFC2474,使用了前6个BIT作为标识

5.2.1 传统的IPP方式

IP头部中的TOS字段
0          1         2          3         4       5       6      7
I1=】P    Precedence          D        T       R       C

IP Precedence取前面的3个bits;后面四位也有定义,但是从未使用
D比特表示延迟要求(Delay 0表示正常延迟;1表示低延迟)
T比特表示吞吐量(Throughput 0表示正常吞吐量;1表示高吞吐量)
R比特表示可靠性(Reliability 0表示正常可靠性;1表示高可靠性)
C比特表示开销 (Cost 0表示正常开销,1表示高开销)

IP优先级–共8个分类,从0-7,0级最低,7级最高。八个级别也赋予了名称,如下所示:
0 routine
1 priority
2 immediate
3 flash
4 flash-overide
5 critical
6 internet
7 network

IPP 6(DSCP 48)已经给系统的报文使用。一般情况下,IPP 5(DSCP 40)给语音使用,IPP 4给视频来用,IPP 3给信令来用。

5.2.2 新的DSCP方式

0          1         2          3         4       5       6      7
D   S   C  P

DSCP–区分服务代码点
使用ToS字段的前6个bit,共64个不同的优先级

PHB(Per Hop Behaviors)–逐跳行为,PHB是DS节点作用于数据流的行为(forwarding和queuing method)。
网络管理员可以配置DSCP到PHB的映射关系。如果DS节点接收到一个报文,检查其DSCP,发现未定义到PHB的映射,则DS节点将采用默认的PHB(即Best Effort,DSCP=000 000)进行转发处理。每个DS节点必须该支持缺省的PHB。

在这里插入图片描述

EF推荐行为
1、保证最小的延迟
2、保证带宽(带宽不足的情况下仍保持转发)
3、限制带宽(发生拥塞时,不允许超过限制的带宽,超过的流量被丢弃)

六、拥塞管理(队列技术)

6.1拥塞管理:

  • 1、当接口发生拥塞时,利用拥塞管理解决资源竞争问题
  • 2、拥塞管理利用队列调度策略来决定数据包处理的先后顺序
  • 3、常用的队列有FIFO、RR、WRR/DRR、PQ、CQ和WFQ、CBQ等

6.1.1 FIFO(First In First Out Queue)队列:

  • 按照报文到达时间的先后决定分组的转发次序,先进的先出,后进的后出,不需要进行流分类和队列调度, FIFO 关心的只是队列的长度,
    队列的长度对延迟和丢包率的影响。
    用户的业务流在某个路由器能够获得的资源取决于分组的到达时机及当时的负载情况。所有报文的处理方式相同,简单、高效、没有附加开销。
    Best-Effort 报文传送方式采用的就是 FIFO 的排队策略。
  • 如果路由器的每个端口只有一个基于 FIFO 的输入或输出队列,那么恶性的应用可能会占用所有的网络资源, 严重影响关键业务数据的传送。
    所以还需要配置一些其它的队列调度机制与 FIFO 配合对流量进行调度和拥塞控制。
    在这里插入图片描述

6.1.2 PQ队列:

  • PQ 调度, 针对于关键业务类型应用设计, PQ调度算法维护一个优先级递减的队列系列并且只有当更高优先级的所有队列为空时才服务低优先级的队列。这样,将关键业务的分组放入较高优先级的队列,将非关键业务(如 E-Mail) 的分组放入较低优先级的队列, 可以保证关键业务的分组被优先传送,非关键业务的分组在处理关键业务数据的空闲间隙被传送。
  • Queue 7 比 Queue 6 具有更高的优先权, Queue 6 比 Queue 5 具有更高的优先权,依次类推。只要链路能够传输分组, Queue 7 尽可能快地被服务。只有当 Queue 7 为空, 调度器才考虑 Queue 6。当 Queue 6 有分组等待传输且 Queue7 为空时, Queue 6 以链路速率接受类似地服务。当 Queue 7 和 Queue 6 为空时,Queue 5 以链路速率接收服务,以此类推。
  • PQ 调度算法对低时延业务非常有用。假定数据流 X 在每一个节点都被映射到最高优先级队列,那么当数据流 X的分组到达时,则分组将得到优先服务。然而 PQ 调度机制会使低优先级队列中的报文由于得不到服务而“饿死”。例如,如果映射到 Queue 7的数据流在一段时间内以 100%的输出链路速率到达,调度器将从不为 Queue 6 及以下的队列服务。
    在这里插入图片描述

6.1.3 WRR( Weight Round Robin)队列:

  • WRR( Weight Round Robin)加权循环调度在 RR( Round Robin)调度的基础上演变而来,在队列之间进行轮流调度,根据每个队列的权重来调度各队列中的报文流。实际上, RR 调度相当于权值为 1 的 WRR 调度。
  • 统计上看, 各队列中的报文流被调度的次数与该队列的权值成正比,权值越大被调度的次数相对越多。由于 WRR调度的以报文为单位,因此每个队列没有固定的带宽,同等调度机会下大尺寸报文获得的实际带宽要大于小尺寸报文获得的带宽。
  • Deficit表示队列带宽的赤字,初始值为0。每次调度前,系统按权重为各队列分配带宽,计算Deficit值。如果队列的Deficit大于0,则参与此轮调度,发送一个报文,并根据所发送的报文的长度计算Deficit值,作为下一轮调度的依据。如果队列的Deficit下于0,则不参与此轮调度,当前的Deficit值作为下一轮调度的依据。
    在这里插入图片描述

6.1.4 DRR(Deficit Round Robin)队列: Deficit 赤字; 亏损; 亏空; 不足额

  • DRR( Deficit Round Robin)调度同样也是 RR 的扩展,相对于 WRR 来言,解决了WRR
    只关心报文,同等调度机会下大尺寸报文获得的实际带宽要大于小尺寸报文获得的带宽的问题, 通过调度过程中考虑了包长的因素,从而达到调度的速率公平性。

  • Deficit表示队列带宽的赤字,初始值为0。每次调度前,系统按权重为各队列分配带宽,计算Deficit值。如果队列的Deficit大于0,则参与此轮调度,发送一个报文,并根据所发送的报文的长度计算Deficit值,作为下一轮调度的依据。如果队列的Deficit下于0,则不参与此轮调度,当前的Deficit值作为下一轮调度的依据。

  • 但 DRR 调度仍然没有解决 WRR 调度中低延时需求业务得不到及时调度的问题。

6.1.5 WFQ(Weight Fair Queuing)队列

公平队列FQ(Fair Queuing)的目的是尽可能公平地分享网络资源,使所有流的延迟和抖动达到最优:
不同的队列获得公平的调度机会,从总体上均衡各个流的延迟。
短报文和长报文获得公平的调度:如果不同队列间同时存在多个长报文和短报文等待发送,让短报文优先获得调度,从而在总体上减少各个流的报文间的抖动。

与FQ相比,WFQ(Weighted Fair Queue)在计算报文调度次序时增加了优先权方面的考虑。从统计上,WFQ使高优先权的报文获得优先调度的机会多于低优先权的报文。
WFQ调度在报文入队列之前,先对流量进行分类,有两种分类方式:
按流的“会话”信息分类:

  • 根据报文的协议类型、源和目的TCP或UDP端口号、源和目的IP地址、ToS域中的优先级位等自动进行流分类,并且尽可能多地提供队列,以将每个流均匀地放入不同队列中,从而在总体上均衡各个流的延迟。在出队的时候,WFQ按流的优先级(precedence)来分配每个流应占有带宽。优先级的数值越小,所得的带宽越少。优先级的数值越大,所得的带宽越多。这种方式只有CBQ的default-class支持。

  • 每当报文进入接口时,将上述6个因素取出来HASH,若和前面的HASH一样,则放入同一个队列。队列是否优先,取决于TOS字段的值和报文的大小。TOS值越大,报文越小,则权重越高,会优先进入到高优先级队列调度。

按优先级分类:

  • 通过优先级映射把流量标记为本地优先级,每个本地优先级对应一个队列号。每个接口预分配8个队列,报文根据队列号进入队列。默认情况,队列的WFQ权重相同,流量平均分配接口带宽。用户可以通过配置修改权重,高优先权和低优先权按权重比例分配带宽。
    在这里插入图片描述
    WFQ 特点:无需用户干预,队列有多少不好说
    1、基于流的队列
    2、队列是动态队列
    3、队列是流队列:业务流存在,队列就存在
    WFQ调度特点:
    1、报文size偏小
    2、报文的IP precedence偏大
    符合上述两个条件,优先调度。

6.1.6 CBQ(Class-based Queueing)队列

  • 基于类的加权公平队列是对WFQ功能的扩展,为用户提供了定义类的支持。CBQ首先根据IP优先级或者DSCP优先级、输入接口、IP报文的五元组等规则来对报文进行分类,然后让不同类别的报文进入不同的队列。对于不匹配任何类别的报文,送入系统定义的缺省类。
    在这里插入图片描述
    CBQ提供三类队列:
    EF队列:满足低时延业务
    AF队列:满足需要带宽保证的关键数据业务
    BE队列:满足不需要严格QoS保证的尽力发送业务

    EF队列
    EF队列是具有高优先级的队列,一个或多个类的报文可以被设定进入EF队列,不同类别的报文可设定占用不同的带宽。
    在调度出队的时候,若EF队列中有报文,会优先得到调度,以保证其获得低时延。当接口发生拥塞时,EF队列的报文会优先发送,但为了防止低优先级队列(AF、BE队列)得不到调度,EF队列以设置的带宽限速。当接口不拥塞时,EF队列可以占用AF、BE的空闲带宽。这样,属于EF队列的报文既可以获得空闲的带宽,又不会占用超出规定的带宽,保护了其他报文的应得带宽。
    除了提供普通的EF队列,还支持一种特殊的EF队列—LLQ队列。两种队列都采用绝对优先调度,但是LLQ队列使用流量监管实现,不论接口是否拥塞,流量都不会超过设置的带宽,LLQ队列不缓存报文,可以将报文被发送的时延降低为最低限度。这为对时延敏感的应用(如VoIP业务)提供了良好的服务质量保证。

    AF队列
    每个AF队列分别对应一类报文,用户可以设定每类报文占用的带宽。在系统调度报文出队的时候,按用户为各类报文设定的带宽将报文出队发送,可以实现各个类的队列的公平调度。当接口有剩余带宽时,AF队列按照权重分享剩余带宽。同时,在接口拥塞的时候,仍然能保证各类报文得到用户设定的最小带宽。
    对于AF队列,当队列的长度达到队列的最大长度时,缺省采用尾丢弃的策略,但用户还可以选择用WRED丢弃策略。

    BE队列
    当报文不匹配用户设定的所有类别时,报文被送入系统定义的缺省类。虽然允许为缺省类配置AF队列,并配置带宽,但是更多的情况是为缺省类配置BE队列。BE队列使用WFQ调度,使所有进入缺省类的报文进行基于流的队列调度。
    对于BE队列,当队列的长度达到队列的最大长度时,缺省采用尾丢弃的策略,但用户还可以选择用WRED丢弃策略。

队列优缺点比较:
FIFO:队列数 1个
优点:
不需要配置,易于使用。
处理简单,延迟小。
缺点:
所有的报文,无论紧急与否,语音还是数据,均进入一个“先进先出”的队列,发送报文所占用的带宽、延迟时间、丢失的概率均由报文到达队列的先后顺序决定。
对不配合的数据源(如UDP报文发送)无约束力,不配合的数据源会造成配合的数据源(如TCP报文发送)带宽受损失。
对时间敏感的实时应用(如VoIP)的延迟得不到保证。
PQ :队列数 4个(老版本) 新版本 8个
优点:
可对不同业务的数据提供绝对的优先,对时间敏感的实时应用(如VoIP)的延迟可以得到保证。对优先业务的报文的带宽占用可以绝对优先。
缺点:
需配置,处理速度慢。
如果不对高优先级的报文的带宽加限制,会造成低优先级的报文得不到带宽。
RR :队列数 8个
优点:
可对不同业务的报文按带宽比例分配带宽。
当没有某些类别的报文时,能自动增加现存类别的报文可占的带宽。
缺点:
需配置,处理速度慢。
RR/WRR/DRR调度无法使低延时需求业务得到及时调度。
CBQ : 队列数 可配置
优点:
可对不同业务的数据提供绝对的优先,对时间敏感的实时应用(如VoIP)的延迟可以得到保证。对优先业务的报文的带宽占用可以绝对优先。
可对不同业务的报文按带宽比例分配带宽。
当没有某些类别的报文时,能自动增加现存类别的报文可占的带宽。
缺点:
需要详细的规划、后期观测经验总结(在一些复杂流量场合流量的大小是可变的),根据观察结果调整流量的带宽比例等,配置复杂。

交换机上的推荐部署方式:
PQ+WRR
PQ+DRR
PQ+WFQ
CBQ
交换机上只支持8个队列,可以将2个队列划为PQ,其它划分为WRR或DRR

路由器上的推荐部署方式:
PQ+WFQ
CBQ
路由器上IP可以支持64个队列,MPLS支持8个队列。
IP流量可以根据不同需求划分比较细致的流分类和流队列调度,灵活多变。

还有一些队列技术,可以了解一下:
如CQ、LLQ等
注:AR2220目前仅支持PQ、WFQ或PQ+WFQ

七、拥塞避免(丢包技术)

7.1 拥塞避免(Congestion Avoidance):

  • 在拥塞发生或有加剧的趋势时主动丢弃报文,避免TCP的全局同步现象

  • 包括尾丢弃、RED、WRED

    拥塞避免主要用于RR和WFQ中,PQ是尽量避免丢包的。拥塞避免必须先有队列,才能涉及到拥塞避免。

7.1.1 传统的尾部丢包策略

传统的丢包策略采用尾部丢弃(Tail-Drop)的方法。当队列的长度达到最大值后,所有新入队列的报文(缓存在队列尾部)都将被丢弃。

这种丢弃策略会引发TCP全局同步现象,导致TCP连接始终无法建立。所谓TCP全局同步现象如图,三种颜色表示三条TCP连接,当同时丢弃多个TCP连接的报文时,将造成多个TCP连接同时进入拥塞避免和慢启动状态而导致流量降低,之后又会在某个时间同时出现流量高峰,如此反复,使网络流量忽大忽小。
在这里插入图片描述
特点

  • 1、不加区分的丢包
  • 2、引起全局同步化:多个TCP session同时发包,一旦发现有丢包,源端将速率慢慢调至原来的一半(窗口调小)。队列空闲后,多个TCP
    session又开始将速率调高, 一旦丢包,又将速率降下来,周而复始。
  • 3、TCP队列利用率不高,导致TCP"饥饿":TCP速率都降低后,UDP报文依然源源充斥队列,导致TCP报文数量无法进入队列。
  • 4、高延迟和高抖动

7.1.2 RED丢弃策略

为避免TCP全局同步现象,出现了RED(Random Early Detection)技术。RED通过随机地丢弃数据报文,让多个TCP连接不同时降低发送速度,从而避免了TCP的全局同步现象。使TCP速率及网络流量都趋于稳定。
在这里插入图片描述

7.1.3 WRED丢弃策略

流队列支持基于DSCP或IP优先级进行WRED丢弃。每一种优先级都可以独立设置报文的丢包的高门限、低门限及丢包率,报文到达低门限时,开始丢包,到达高门限时丢弃所有的报文,随着门限的增高,丢包率不断增加,最高丢包率不超过设置的丢包率,直至到达高门限,报文全部丢弃,这样按照一定的丢弃概率主动丢弃队列中的报文,从而一定的程度上避免拥塞问题。

八、流量监管和流量整形

8.1 流量的监管

  • 流量监管 TP( Traffic Policing)就是对流量进行控制,通过监督进入网络的流量速率,对超出部分的流量进行“惩罚”,
    使进入的流量被限制在一个合理的范围之内 ,从而保护网络资源和运营商的利益。
    在这里插入图片描述
  • Meter:通过令牌桶机制对网络流量进行度量,向 Maker 输出度量结果。
  • Maker:根据 Meter 的度量结果对报文进行染色, 报文会被染成 green、 yellow、 red三种颜色。
  • Action:根据 Maker 对报文的染色结果,对报文进行一些动作,动作包括:
    • forward:对测量结果为“符合”的报文继续转发。
    • remark+forward:修改报文内部优先级后再转发。
    • drop:对测量结果为“不符合”的报文进行丢弃。
  • 默认情况下, green、 yellow 进行转发, red 报文丢弃。
    令牌桶术语:
    1、Tc,C桶中的令牌数量
    2、Te,E桶中的令牌数量
    3、CIR:承诺信息速率,表示向C桶投放令牌的速率,即C桶允许传输或转发报文的平均速率。
    4、CBS:承诺突发尺寸,表示C桶的容量,即C桶瞬间能够通过的承诺突发流量。
    5、EBS:超额突发尺寸,表示E桶的容量,即E桶瞬间能够通过的超出突发流量。

8.1.1 单速双桶三色

  • 单速双桶采用RFC2697的单速三色标记器srTCM(A Single Rate Three Color Marker)算法对流量进行测评,根据评估结果为报文打颜色标记,即绿色、黄色和红色。
    在这里插入图片描述
    如图1所示,为方便描述将两个令牌桶称为C桶和E桶,用Tc和Te表示桶中的令牌数量。单速双桶有3个参数:
    CIR:承诺信息速率,表示向C桶中投放令牌的速率,即C桶允许传输或转发报文的平均速率;
    CBS:承诺突发尺寸,表示C桶的容量,即C桶瞬间能够通过的承诺突发流量;
    EBS(Excess Burst Size):超额突发尺寸,表示E桶的容量,即E桶瞬间能够通过的超出突发流量。
    系统按照CIR速率向桶中投放令牌:
    若Tc<CBS,Tc增加;
    若Tc=CBS,Te<EBS,Te增加;
    若Tc=CBS,Te=EBS,则都不增加。
    对于到达的报文,用B表示报文的大小:
    若B≤Tc,报文被标记为绿色,且Tc减少B;
    若Tc<B≤Te,报文被标记为黄色,且Te减少B;
    若Te<B,报文被标记为红色,且Tc和Te都不减少。

8.1.2 双速双桶三色

  • 双速双桶采用RFC2698的双速三色标记器trTCM(A Two Rate Three Color Marker)算法对流量进行测评,根据评估结果为报文打颜色标记,即绿色、黄色和红色。
    在这里插入图片描述
    如图2所示,为方便描述将两个令牌桶称为P桶和C桶,用Tp和Tc表示桶中的令牌数量。双速双桶有4个参数:
    PIR(Peak information rate):峰值信息速率,表示向P桶中投放令牌的速率,即P桶允许传输或转发报文的峰值速率,PIR大于CIR;
    CIR:承诺信息速率,表示向C桶中投放令牌的速率,即C桶允许传输或转发报文的平均速率;
    PBS(Peak Burst Size):峰值突发尺寸,表示P桶的容量,即P桶瞬间能够通过的峰值突发流量;
    CBS:承诺突发尺寸,表示C桶的容量,即C桶瞬间能够通过的承诺突发流量。
    系统按照PIR速率向P桶中投放令牌,按照CIR速率向C桶中投放令牌:
    当Tp<PBS时,P桶中令牌数增加,否则不增加。
    当Tc<CBS时,C桶中令牌数增加,否则不增加。
    对于到达的报文,用B表示报文的大小:
    若Tp<B,报文被标记为红色;
    若Tc<B≤Tp,报文被标记为黄色,且Tp减少B;
    若B≤Tc,报文被标记为绿色,且Tp和Tc都减少B。

8.2 流量整形(Traffic shaping)

  • 流量整形是一种主动调整流量输出速率的措施,其作用是限制流量与突发,使这类报文以比较均匀的速率向外发送。流量整形通常使用缓冲区和令牌桶来完成。当报文的发送速率过快时,首先在缓冲区缓冲,在令牌桶的控制下,再均匀地发送这些缓冲的报文。

  • 当下游设备接口速率小于上游设备接口速率时,在下游设备接口处可能出现流量拥塞的情况,此时用户可以通过在上游设备接口的出方向配置流量整形,将上游不规整的流量削峰填谷,输出一条比较平整的流量,从而解决下游设备拥塞问题。

    处理过程
    流量整形是一种用于接口、子接口或队列的流量控制技术。可以对从接口上经过的所有报文或某类报文进行速率限制。

具体处理流程如下:

  • 当报文到来的时候,首先对报文进行分类,使报文进入不同的端口队列。
  • 若报文进入的端口队列没有配置队列整形功能, 则直接发送该端口队列的报文;否则,进入下一步处理。
  • 按用户设定的队列整形速率( CIR)向令牌桶中放置令牌:
    如果令牌桶中有足够的令牌可以用来发送报文,则报文直接被发送,在报文被发送的同时,令牌做相应的减少。
    如果令牌桶中没有足够的令牌,则将报文放入缓存队列,如果报文放入缓存队列时,缓存队列已满,则丢弃报文。
  • 缓存队列中有报文的时候, 系统按一定的周期从缓存队列中取出报文进行发送,每次发送都会与令牌桶中的令牌数作比较, 直到令牌桶中的令牌数减少到缓存队列中的报文不能再发送或缓存队列中的报文全部发送完毕为止。
    端口队列整形后, 如果该端口同时配置了端口整形, 则系统还要按照端口整形速率对报文流进行速率控制。其处理流程与端口队列整形相似,但不需要步骤1和步骤2。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/47199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytorch-pytorch之LSTM

目录 1. nn.LSTM2. nn.LSTMCell 1. nn.LSTM 初始化函数输入参数与RNN相同&#xff0c;分别是input_size&#xff0c;hidden_size和num_layer foward函数也与RNN类似&#xff0c;只不过返回值除了out外&#xff0c;ht变为(ht,ct) 代码见下图&#xff1a; 2. nn.LSTMCell 初…

【保姆级】Python项目部署到Linux生产环境(uwsgi+python+flask+nginx服务器)

1.安装python 我这里是3.9.5版本 安装依赖&#xff1a; yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make -y 根据自己的需要下载对应的python版本&#xff1a; cd /usr/local wget https://www.python.or…

利用联邦学习和基于自动编码器模型的分布式学习架构

首先&#xff0c;在每个训练回合中&#xff0c;随机选择一个客户子集&#x1d45a; &#x1d45a;&#x1d44e;&#x1d465;(&#x1d436;&#x1d43e;, 1)参加当前回合&#xff0c;使得 C 是被选中参与的客户的比例&#xff1b; 其次&#xff0c;每个客户端接收全局模型…

SAP ABAP性能优化

1.前言 ABAP作为SAP的专用的开发语言&#xff0c;衡量其性能的指标主要有以下两个方面&#xff1a; 响应时间&#xff1a;对于某项特定的业务请求&#xff0c;系统在收到请求后需要多久返回结果 吞吐量&#xff1a;在给定的时间能&#xff0c;系统能够处理的数据量 2. ABAP语…

虚拟专用服务器有哪些应用?

虚拟化技术是一种可以让多个用户共享服务器资源的工具。它通过创建虚拟服务器来实现&#xff0c;这些虚拟服务器被分配了一定数量的内存、磁盘和 CPU 时间以便运行。这些虚拟服务器彼此独立&#xff0c;并为用户提供专用服务器的所有选项。这些虚拟专用服务器有许多名称&#x…

LabVIEW鼠标悬停在波形图上的曲线来自动显示相应点的坐标

步骤 创建事件结构&#xff1a; 打开LabVIEW&#xff0c;创建一个新的VI。 在前面板上添加一个Waveform Graph控件。 在后面板上添加一个While Loop和一个事件结构&#xff08;Event Structure&#xff09;。 配置事件结构&#xff0c;选择Waveform Graph作为事件源&#xf…

利用 VAE、GAN 和 Transformer 释放生成式 AI

利用 VAE、GAN 和 Transformer 释放生成式 AI 文章目录 一、介绍1.1 学习目标1.2 定义生成式 AI 二、生成式 AI 的力量三、变分自动编码器 &#xff08;VAE&#xff09;3.1 定义编码器和解码器模型3.2 定义采样函数3.3 定义损失函数3.4 编译和训练模型 四、生成对抗网络 &#…

Spring Framework各种jar包官网下载2024年最新下载官方渠道。

Spring其实就是一个大家族&#xff0c;它包含了Spring Framework&#xff0c;Spring Boot等一系列技术&#xff0c;它其实就是由许许多多的jar包构成&#xff0c;我们要使用Spring的框架&#xff0c;就要去下载支持这个框架的jar包即可。 1.官网下载Spring Framework的jar包 官…

java通过jwt生成Token

定义 JWT&#xff08;JSON Web Token&#xff09;简而言之&#xff0c;JWT是一个加密的字符串&#xff0c;JWT传输的信息经过了数字签名&#xff0c;因此传输的信息可以被验证和信任。一般被用来在身份提供者和服务提供者间传递被认证用户的身份信息&#xff0c;以便于从资源服…

React@16.x(60)Redux@4.x(9)- 实现 applyMiddleware

目录 1&#xff0c;applyMiddleware 原理2&#xff0c;实现2.1&#xff0c;applyMiddleware2.1.1&#xff0c;compose 方法2.1.2&#xff0c;applyMiddleware 2.2&#xff0c;修改 createStore 接上篇文章&#xff1a;Redux中间件介绍。 1&#xff0c;applyMiddleware 原理 R…

iOS——MRC与ARC以及自动释放池深入底层学习

MRC与ARC再回顾 在前面&#xff0c;我们简单学了MRC与ARC。MRC指手动内存管理&#xff0c;需要开发者使用retain、release等手动管理对象的引用计数&#xff0c;确保对象在必要时被释放。ARC指自动内存管理&#xff0c;由编译器自动管理对象的引用计数&#xff0c;开发者不需要…

基于springboot和mybatis的RealWorld后端项目实战一之hello-springboot

新建Maven项目 注意archetype选择quickstart pom.xml 修改App.java App.java同级目录新增controller包 HelloController.java package org.example.controller;import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotatio…

浅析stm32启动文件

浅析stm32启动文件 文章目录 浅析stm32启动文件1.什么是启动文件&#xff1f;2.启动文件的命名规则3.stm32芯片的命名规则 1.什么是启动文件&#xff1f; 我们来看gpt给出的答案&#xff1a; STM32的启动文件是一个关键的汇编语言源文件&#xff0c;它负责在微控制器上电或复位…

【简历】惠州某二本学院:前端简历指导,秋招面试通过率为0

注&#xff1a;为保证用户信息安全&#xff0c;姓名和学校等信息已经进行同层次变更&#xff0c;内容部分细节也进行了部分隐藏 简历说明 这是一份25届二本同学&#xff0c;投递前端职位的简历&#xff0c;那么在校招环节二本同学主要针对的还是小公司&#xff0c;这个学校因为…

LVS+Nginx高可用集群---搭建高可用集群负载均衡

1.LVS简介 Lvs(Linux Virtual Server)&#xff1a;使用集群&#xff0c;对于整个用户来说是透明&#xff0c;用户访问的时候是单个高性能的整体。道理与nginx类似 LVS网络拓扑图&#xff1a;是基于四层。 用户通过浏览器发送请求&#xff0c;然后到达LVS.Lvs根据相应算法将…

AI PC创造新商机,ISP与HPD集成单芯片方案受欢迎

今年以来&#xff0c;AI PC逐渐成为市场的焦点&#xff0c;因为AI PC给多年一成不变的PC市场带来了新的看点&#xff0c;也给了消费者升级的理由。今年是AI PC的元年&#xff0c;上半年不论是芯片厂商&#xff0c;还是PC厂商都在AI PC市场快速布局。AI PC相关的大模型、生态&am…

ollama + fastgpt 搭建免费本地知识库

目录 1、ollama ollama的一些操作命令: 使用的方式: 2、fastgpt 快速部署: 修改配置: config.json: docker-compose.yml: 运行fastgpt: 访问OneApi: 添加令牌和渠道: 登陆fastgpt,创建知识库和应用 3、总结: 附录: 1. 11434是ollama的端口: 2. m3e 测…

处理多维特征的输入(Multiple Dimension Input)

输入x有多个特征features&#xff0c;最终得到输出y的类别。 在上一节提到&#xff0c;左边是我们最开始了解的线性回归&#xff0c;右边是我们的logistics回归&#xff08;返回值为一个离散的集合&#xff09;。对于本节&#xff0c;就是在logistics回归输入x的基础上让其多一…

中伟视界:矿山智能化——AI引领创新,行车不行人检测算法实现实时预警,防范行车不行人事故发生

行车不行人检测AI分析算法通过利用人工智能和深度学习技术&#xff0c;对井下行人和车辆的行驶情况进行实时检测和识别。该算法在提升矿山安全管理、减少事故发生方面具有重要作用。本文将详细介绍该AI算法的识别过程、应用场景及其技术特点。 一、识别过程 行车不行人检测AI分…

Hadoop安装报错

报错&#xff1a;ERROR 2023-03-09 21:33:00,178 NetUtil.py:97 - SSLError: Failed to connect. Please check openssl library versions. 解决方案: 在安装失败得客户端执行 编辑 /etc/python/cert-verification.cfg 配置文件&#xff0c;将 [https] 节的 verify 项 设为禁用…