Openwrt常用软件模块之QOS

Openwrt常用软件模块之QOS

服务质量(Quality of Service,QoS)就是指网络通信过程中,保障用户业务在带宽、 时延、抖动和丢包率等方面获得可预期的服务水平。家庭网内部的QoS主要指保证用户实时交互的业务符合用户的要求

服务模型

  • QoS 服务模型是指一组实现端到端服务质量保证的方式,QoS 服务模型主要有如下3种:

尽力而为服务模型(Best-Effort service)

  • 尽力而为服务模型是一个单一的服务模型,也是最简单的服务模型。
  • 对尽力而为服务模型,网络尽最大的可能性来发送报文,但对时延、可靠性等性能不提供任何保证
  • 尽力而为服务模型是Linux网络的缺省服务模型,通过先进先出队列来实现
  • 它适用于绝大多数网络应用,如HTTP、FTP和 E-Mail等

综合服务模型型(Integrated service)

  • 综合服务模型,它可以满足多种QoS需求。
  • 该模型使用资源预留协议(RSVP),RSVP 运行在从源端到目的端的每个设备上,可以监视每个流,以防止其消耗资源过多
  • 这种体系能够明确区分并保证每一个业务流的服务质量,为网络提供最细粒度化的服务质量区分。
  • 但是综合服务模型对设备的要求很高,当网络中的数据流数量很大时,设备的存储和处理能力会遇到很大的压力。
  • 综合服务模型可扩展性很差,难以在互联网的核心网络实施。它仅适合在专用网络上实施

区分服务模型(Differentiated service)

  • 区分服务模型如下图所示,是IETF工作组为了克服综合服务模型的可扩展性差而在1998年提出的另一个服务模型,目的是制定一个可扩展性相对较强的方法来保证 IP的服务质量
  • 在区分服务模型中,根据服务要求对不同业务的数据进行分类,对报文按类进行优先级标记,然后有差别地提供服务

Openwrt常用软件模块之QOS

OpenWrt的服务模型

  • OpenWrt 采用区分服务模型来提供QoS。区分服务模型是一个多服务模型,它可以满足不同的QoS需求,例如优先保证通过HTTP上网流量##

  • 它采用流量分类、流量整形、拥塞管理和拥塞避免机制来进行QoS

  • 流量分类: 采用一定的规则识别符合某类特征的报文,它是对网络业务进行区分服务 的前提和基础。一般使用 Iptables 来根据端口和报文特征进行分类

  • 流量整形: 当流量被整形时,其传输速率是受到控制。整形可以大大降低使用的带宽,这样是为了更好的网络效应。它也被用来平滑流量的突发大流量。流量整形发生在出口处

  • **调度:**通过调度数据包的传输,可以在提高流量的交互性的同时,仍然保证大容量传 输的带宽。重新排序也被称为划分优先顺序,并且只发生在出口处
  • 带宽控制用于QoS时,一般用于保障某一类用户的服务质量,在家庭网内部常用于保 障主人的带宽,限制访客的带宽

工具

  • OpenWrt采用qos-Script来实现QoS,内部使用Iptables和Tc工具来实现QoS
    • Iptables工具实现数据报文的分类
    • Tc工具来实现配置Linux内核中优先级队列。Tc工具在iproute2代码包中。Tc的一个关键的概念是QDISC。QDISC 是“queueing discipline”的缩写,是指报文的排队规则,这是理解流量控制的基础

报文排队规则

  • 当内核需要发送一个数据包到一个接口时,它被排入到配置该接口的队列中。紧接着, 内核试图从队列获得尽可能多的数据包,把它们交由网络适配器驱动程序来处理。一个最 简单的 QDISC 队列是“PFIFO”,它根本没有特别处理,是一个纯粹的先进先出队列。当 网络接口不能瞬间处理完成时,它能存储部分流量
  • 类别:一些排队规则可以包含类,这些类又进一步包含了另外的排队规 则——流量可以在任何类内部排队规则。当内核试图取出一个数据包时,就可以来自任 何一个类的分类排队规则。排队规则可以在特定类别的队列中优先处理某些特定类型的 流量
  • 过滤器用于数据包分类,以确定哪一类数据包将加入队列中。当流量到达带有子类的 类时,数据包需要进行分类。各种方法都可以这样做,其中一个是过滤器。附着在类中的 所有过滤器被调用,直到其中一个返回一个决定。如果没有判决做出,其他标准可能是可 用的。每一个排队规则都是不同的处理。需要注意,过滤器位于排队规则内部,它们不能 独立存在。详细内容请参考Tc手册

配置文件

在 menuconfig 时,选择 qos-scripts 软件包,在 Base-file/Qos-scripts 中,源代码目录在package/network/config/qos-scripts 下,编译后生成的软件包为 qos-scripts。在 OpenWrt 中至少还有其他两个 QoS 软件包分别为 sqm-scripts 和 wshaper。不能同时安装两个 QoS 软件包,因为它们均使用了 Tc 和 iptables,并且按照不同的标准进行报文分类。QoS 的 UCI 配置文件为,如何进行报文分类才能得到好的性能,这取决于应用程序。

通常有两个处理原则

  • 优先处理小包。例如 TCP-ACKs 和 DNS 等

  • 优先处理用户交互的报文。例如 SSH 等协议

QoS-script的默认配置将域名请求和SSH访问作为优先规则。通常域名请求负载非常小,并且用户在上网时的第一步请求动作,用户通常会等待上网请求页面,因此设置为最 高优先级。SSH也是同样的原因,用户和服务器之间交互,用户等待服务器的响应。这样将对用户非常友好。QoS配置非常复杂,此处不再讲述

来源:hzlarm

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月16日
下一篇 2020年10月16日

相关推荐