QoS:服务与质量(Quality of Service)

QoS是一种非常复杂但应用非常广泛的技术。只要网络存在资源竞争,就存在对服务质量的需求。QoS可以有效控制网络资源及其使用来保障服务与质量。

QoS功能

  • 尽力避免网络拥塞
  • 在不能避免拥塞时对带宽进行有效处理
  • 降低报文丢包率
  • 调控IP网络流量
  • 为特定用户或特定业务提供专用带宽
  • 支撑网络上的实时性业务
  • QoS不能创造带宽,只能使带宽的分配更加合理

DS节点与域

  • DS节点:实现区分服务功能的网络节点。
  • DS域:一组使用相同的QoS策略和实现了相同的PHB的DS节点组成。一个DS域由相同管理部门的一个或多个网络组成。
    • 一个DS域可以是一个ISP,也可以是一个企业的内部网络。
  • DS内部节点:DS域内连接DS边界节点、其他内部节点的路由器。DS内部节点只需要根据DSCP/IPP、EXP、802.1P字段进行简单流分类,以及对相应的流进行流量控制。
  • DS边界节点:连接另一个DS域或连接一个没有DS功能的节点;负责将进入DS域的流量进行分类和流量调整。
  • DS信任边界:由DS边界节点组成。边界节点不信任DS域外的流量携带的标记,所以DS的边界节点需要对进入DS的报文进行重标记。

影响网络通行的因素(服务质量的衡量标准)

网络带宽(Bandwidth)

指单位时间内能传输的数据量。在一条端到端的链路中,最大可用带宽等于传输路径上最小的链路带宽。

时延(Delay)

指报文从网络的一端到另一端所需要的时间。

  • 串行化时延:将数据变成电信号或光信号发送出去所需要的时间。时延高低取决于设备的性能。
  • 传输时延:数据在传输介质上传输所需要的时间。比较稳定,带来的抖动较低,取决于传输介质的能力。
  • 处理时延:设备内部对数据报文进行处理的时间。时延高低取决于设备的性能。
  • 队列时延:数据包处理完毕之后,放到出口队列中缓存起来准备往外发送所需要等待的时间。可以通过技术手段(QoS)减少改善延时。

端到端的延迟等于所有传输途中链路和设备造成延迟的总和。

抖动(Jitter)

由于每个报文端到端时延不一样,就会导致报文不能相等间隔到达目的地。抖动是指数据包穿越网络时延迟的变化,是衡量网络延迟稳定性的指标。抖动是由于延迟的随机性造成的,主要原因是数据包排队延迟的不确定性。

丢包(Packet Loss)

丢失的报文占传送报文的百分比。丢包是指数据包在传输过程中的丢失,是衡量网络可靠性的重要指标。

丢包的主要原因:

  • 网络拥塞时,当队列满了后,后续的报文将由于无法入队而被丢弃。
  • 流量超过限制后,设备对其进行丢弃。

QoS三种服务模型

根据网络服务质量和用户需求,通过不同的服务模型为用户提供服务。

1. 尽力而为模型(Best-Effort)

所有数据进入同一个队列,采用FIFO(先进先出)队列和尾丢弃实现,是缺省服务模型。

  • 优点:实现机制简单。
  • 缺点:不能对业务进行区分对待,只能通过提升网络带宽或升级设备来优化(花钱解决),没有服务保证。

尾丢弃:队列拥塞时,将最后面的流量进行丢弃处理。

2. 综合服务模型(IntServ)

使用RSVP(资源预留)协议,基于数据流,向网络申请预留带宽。

  • 优点:可以提供带宽、延迟保证。
  • 缺点
    • 需要跟踪每个流的状态,实现复杂
    • 当无流量发送时,仍占用带宽,带宽利用率低
    • 需要端到端所有设备都支持并运行RSVP协议

3. 区分服务模型(DiffServ)

根据报文中QoS参数告知网络其QoS需求,网络的每一台路由器都可以根据不同的QoS需求提供相应的服务。这是基于数据包的端到端QoS,是目前主流的服务模型。

  • 优点
    • 不需要跟踪流状态,资源占用少,扩展性强
    • 可以对不同的流量提供不同的服务,可以基于流分类,也可以基于类分类
  • 缺点:需要进行端到端的手工部署,对人员要求较高

工作过程:

  1. 在网络入口对报文进行分类,完成对报文的标记
  2. 根据标记,将其映射成本地对其定义的服务等级值
  3. 根据不同的服务等级值进入相应的缓存队列,根据队列的调度机制,实现不同的转发服务

基于DiffServ模型的QoS技术分类

技术分类 作用 常用方向
分类和标记 根据一定的匹配规则识别出对象,是对网络业务进行区分服务统一部署的前提和基础 接口入方向
拥塞管理 当拥塞发生时如何指定一个资源的调度策略,以决定报文转发的处理次序 接口出方向
拥塞避免 监督网络资源的使用情况,当拥塞有加剧的趋势时采用主动丢弃报文的策略,通过调度队列长度来解除网络的过载 接口出方向
流量监管 对进入或流出设备的特定流量进行监管。当流量超出设定值时,可以采取限制或惩罚措施,以保护网络资源不受损害 接口入方向/出方向
流量整形 主动调度流的输出速率和流量控制措施,用来使流量适配下游设备可供给的网络资源,避免不必要的报文丢弃 接口出方向

QoS转发过程

在这里插入图片描述

  1. 流分类:首先通过流分类对各种业务进行识别和区分,它是后续各种动作的基础。
  2. 动作处理:通过各种动作对特定的业务进行处理。这些动作需要和流分类关联起来才有意义。具体采取何种动作,与所处的阶段以及网络当前的负载状况有关。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐