我想在我们的互联网线路上添加一些流量管理.在阅读了大量文档之后,我认为HFSC对我来说太复杂了(我不了解所有曲线的东西,我担心我永远不会把它弄好),CBQ不推荐,基本上HTB就是通往适合大多数人.

我们的内部网络有三个“段”,我想在这些段之间或多或少地分享带宽(至少在开始时).此外,我必须根据至少三种流量(实时流量,标准流量和批量流量)确定流量的优先级.带宽共享并不像实际流量应尽可能始终被视为高级流量那样重要,但当然也没有其他流量类别可能会饿死.

问题是,什么更有意义,也保证更好的实时吞吐量:

>每个段创建一个类,每个具有相同的速率(根据HTB开发人员,优先级对于没有叶子的类没有关系),并且这些类中的每一个都有3个子类(叶子)用于3个优先级(具有不同的优先事项和不同的费率).

>每个优先级有一个类,每个具有不同的速率(再次优先级无关紧要),每个具有3个子类,每个段一个,而实时类中的所有3个具有最高的prio,最低的prio批量类,等等.

我将尝试使用以下ASCII艺术图像使其更清晰:

Case 1:

root --+--> Segment A

| +--> High Prio

| +--> Normal Prio

| +--> Low Prio

|

+--> Segment B

| +--> High Prio

| +--> Normal Prio

| +--> Low Prio

|

+--> Segment C

+--> High Prio

+--> Normal Prio

+--> Low Prio

Case 2:

root --+--> High Prio

| +--> Segment A

| +--> Segment B

| +--> Segment C

|

+--> Normal Prio

| +--> Segment A

| +--> Segment B

| +--> Segment C

|

+--> Low Prio

+--> Segment A

+--> Segment B

+--> Segment C

案例1似乎大多数人都会这样做,但除非我没有正确阅读HTB实施细节,否则案例2可能会提供更好的优先级.

HTB手册说,如果一个类已经达到它的速率,它可以从其父级借用,并且在借用时,具有更高优先级的类总是首先获得带宽.但是,它还说,无论优先级如何,在较低树级别上具有可用带宽的类总是优先于较高树级别的类.

让我们假设以下情况:段C不发送任何流量.段A只能尽可能快地发送实时流量(足以使链路单独饱和),而段B只发送大量流量,速度尽可能快(再次,足以使单独的完整链路饱和).会发生什么?

情况1:

段A->高Prio和段B-> Low Prio都有要发送的数据包,因为A-> High Prio具有更高的优先级,它将始终首先被调度,直到它达到其速率.现在它试图从A段借款,但由于A段处于较高水平而且B段> Low Prio尚未达到其速率,因此该类现在首先服务,直到它也达到该速率并且想要借入从B段开始.一旦两者都达到了他们的费率,两者都再次处于同一水平,现在A – >&High Prio将再次获胜,直到它达到A段的速度.现在它试图从根借(由于段C没有使用任何保证的流量,因此它有足够的流量备用,但同样,它必须等待段B->低Prio也达到根级别.一旦发生这种情况,将再次考虑优先级,此时段A-> High Prio将获得段C留下的所有带宽.

案例2:

高Prio->段A和低Prio->段B都有要发送的数据包,再次高Prio->段A将获胜,因为它具有更高的优先级.一旦它达到它的速率,它试图借用具有带宽备用的High Prio,但是在更高的水平上,它必须再次等待低Prio-> B段B也达到它的速率.一旦两者都达到了他们的速度并且都必须借用,高Prio-> A段将再次获胜,直到它达到High Prio级别的速度.一旦发生这种情况,它会尝试从root中借用,这又剩下足够的带宽(此时Normal PRo的所有带宽都没有使用),但它必须再次等待,直到低Prio-> B段达到速率限制为止Low Prio类,也试图从root借用.最后,两个类都试图从root中借用,优先级被考虑在内,而High Prio-> Segment A获得所有带宽已经剩下的.

这两种情况看起来都是次优的,因为实时流量有时必须等待大量流量,即使有足够的带宽可以借用.但是,在情况2中,实时流量似乎必须等于情况1,因为它只需要等到达到批量流量速率,这很可能小于整个流量的速率(以防万一) 1这是它必须等待的速度).或者我在这里完全错了?

我想到了更简单的设置,使用优先级qdisc.但优先队列有一个很大的问题,即如果它们不受某种限制,就会导致饥饿.饥饿是不可接受的.当然,可以将TBF(令牌桶过滤器)放入每个优先级以限制速率,从而避免饥饿,但是这样做时,单个优先级类不能再自行饱和链接,即使所有其他优先级类别也是如此是空的,TBF将防止这种情况发生.这也是次优的,因为如果没有其他类目前需要其中任何一个类,为什么一个类不能获得100%的线路带宽?

有关此设置的任何意见或想法?使用标准的tc qdiscs似乎很难.作为程序员,如果我可以简单地编写自己的调度程序(我不允许这样做),这是一项非常容易的任务.

手机流量共享 linux,linux – 通过HTB共享带宽和优先处理实时流量,哪种方案更好?...相关推荐

  1. linux共享usb设备,USB设备共享步骤教程

    最近收到共享设备之家反馈,手机连接电脑开启USB共享后,无法将手机网络分享给电脑使用,到底是什么原因呢?今天小编带大家一探究竟! 使用条件 手机连接电脑后开启USB网络共享: 电脑安装网络驱动: 网络 ...

  2. linux进程间通信:POSIX 共享内存

    文章目录 思维导图 通信原理 优势 POSIX 共享内存 编程接口 编程案例 思维导图 之前学习过sysemV 的共享内存的实现及使用原理,参考linux进程间通信:system V 共享内存 POS ...

  3. 共享windows目录给vm linux,将windows中的文件夹共享给Linux虚拟机

    按正常步骤安装Linux 安装完成后在Linux系统中安装vmware-tools工具. 选择"编辑虚拟机设置" 4.选择"选项"然后点击"共享文件夹 ...

  4. linux系统中 库分为静态库和,你知道linux 静态库和共享库?

    1.静态库和共享库 静态库和共享库(动态库),二者的不同点在于代码被载入的时刻不同. 静态库的代码在编译过程中已经被载入可执行程序,因此体积较大. 共享库的代码是在可执行程序运行时才载入内存的,在编译 ...

  5. Linux双网卡NAT共享上网

    Linux双网卡NAT共享上网 阅读目录(Content) 服务器设置: 1.激活IP转发 2.NAT配置 客户端设置 1.NAT方法: 2.网桥方法: linux双网卡NAT共享上网 术语字汇 私有 ...

  6. 【转】Linux 静态库与共享库的使用

    原文网址:http://blog.csdn.net/heyabo/article/details/11688517 申明: 正如题如示,本篇讲的是Linux下是静态库与共享库,而Window下的动态链 ...

  7. Linux应用编程之共享内存实例

    1共享内存实例 01 主要内容     上一小节小哥跟大家介绍了一下共享内存的知识,今天主要是做一个实战的演示,从而更好的理解共享内存的原理和实际应用. 02 程序示例    1#include &l ...

  8. linux的常用操作——共享库

    1.共享库的命名规则 \qquad共享库,即动态库.库名: lib+库名+.so 2.共享库的制作 2.1生成与位置无关的.o文件 gcc -fpic -c filename.c -I 头文件路径 2 ...

  9. Linux下最快速共享目录的方法

    Linux下最快速共享目录的方法 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 搭建FTP,或者是搭建网络文件系统,这 ...

最新文章

  1. 西湖大学鞠峰组招聘“污水处理”与“微生物组”方向博士后与科研助理
  2. 【风控模型】融合模型Boosting构建信用评分卡模型
  3. Java源码解读--CopyOnWriteList写时复制集合容器
  4. 编写干净的测试–从配置开始
  5. java三板斧_Java 枚举使用三板斧
  6. 天池 在线编程 求和查找
  7. 别说我不懂排序!几种常见排序算法(一)
  8. 大国崛起(四)————英国
  9. uniapp-mixpanel用户行为分析埋点统计插件
  10. 【C语言】 《弹跳的小球》游戏编写过程及思路,清屏函数、Sleep()函数的应用
  11. mysql按月份分组查询_mysql如何按月份分组查询
  12. LSTM长短记,长序依赖可追忆(深度学习入门系列之十四)
  13. 生命,感情,谁之脆弱
  14. 简单制作一个Python聊天机器人
  15. 【推荐系统】协同过滤
  16. 传Facebook来华招聘:年薪20万美元+美国绿卡
  17. python怎么表示不等于_Python关系运算符中表示“不等于”的是哪个?________
  18. Linux-Shell(六)
  19. k近邻算法_图穷匕见:K近邻算法与手写数字识别
  20. 《你好,数智新世界》系列访谈 对话数睿数据总裁刘超|企业级无代码赋能软件产业变革...

热门文章

  1. neo4j cypher_Neo4j:Cypher –避免热切
  2. JDK 15中的确切绝对整数
  3. activemq 内存_ActiveMQ中的温度,存储和内存使用百分比
  4. 从Java应用程序中消除Null指针异常
  5. java依赖注入_Java依赖注入选项
  6. apache camel_探索Apache Camel Core –文件组件
  7. 在JDK 11中启动单文件源代码程序
  8. 配置Jenkins以连续交付Spring Boot应用程序
  9. Neo4j:动态添加属性/设置动态属性
  10. 使用Java更新DynamoDB项