要想做限速,必须要知道以下几点:

首先要知道自己要限制什么的速度,谁的速度,于是需要用的标记,即Mangle。
其次要知道怎么限速,是限制上传,还是下载?
最后要知道所做的限速是否成功,即需要知道如何检查!
 
1、标记(mangle)
这是很有学问的一件事情,ros对数据包的标记不是很好,必须要通过标记连接以后再来标记数据包!
即,先通过mark connection,再通过connection来mark packet!(问:为什么非要标记成packet,不能直接用connection?)
mark的时候需注意passthrough,前面标记过的connection且勾选了passthrough,后面条件符合该连接的时候就会标记成后面的连接。
每个连接只会有一个标记!切记,切记!
 
2、Parent(父节点)
个人感觉很有意思的意见事情,因为ros的帮助文档中明确说明了,ros是管出不管入,而前面标记的都是整个连接的数据包(既有上行,又有下行!)
在设置htb的时候,父节点设置为wan口就为上行的流量,父节点为lan口就为下行的流量。(这点很重要,外网网卡和内网网关分别对应UP和DOWN!)
此外,父节点仅负责流量的整形与优先级的排队,并不存储任何数据包,即它是不存在任何队列的!(即在队列优先级里,父节点的优先级是没有意义的!!!)
 
3、firewall(防火墙)
通过ros所有的连接都是掌控在firewall的法眼中的,通过connection的标签可以很容易的观察到所有用户的连接情况。
在connection mark中很容易看到某条连接是被自己标记成了什么,最好的情况是所有的连接均被标记,这样后面的htb才比较准确!
这是至关重要的一步,如果connection都没有被打上标记,限速注定是失败的!
 
4、Queue Tree
只需要说一点,某个节点只要被其他节点认成parent,它就失去了packet mark的权利!
这也是第一点中为什么标记成packet而不直接用connection的原因!
只要叶子节点在packet mark中选中标记的packet才有效!
 
5、Limit At & Max Limit
很多人误解Max Limit是最好的限速工具,其实不然,在HTB中最重要的是limit At(个人简介)!
ros总是保证了Limit At以后才有闲心去检测Max Limit!
 
说的比较笼统,理解靠个人!

ROS HTB限速失败原因分析和需注意事项的更多相关文章

  1. HA切换失败原因分析

    1. 问题描述 redhat在进行HA切换时,需要先停止service,并释放调当前主机占有的资源,比如说IP Address和Filesystem,但今天我在验证HA切换时,发现service一直停 ...

  2. 百度编辑器(Ueditor)最新版(1.4.3.3)插入锚点失败原因分析及BUG修复

    用百度编辑器——Ueditor(版本1.4.3.3,2016-05-18日上线)插入锚点的时候,每次总是失败,百思不得其解.通过分析Ueditor的代码ueditor.all.js,可以看出Uedit ...

  3. dpdk组态 千兆网卡 驱动 失败 原因分析及 解决方案

    dpdk版本号是1.7.1稳定版,server它是ubuntu12.04LTS x86 64bit 绑定默认驱动程序千兆网卡ixgbe失败 # ./dpdk_nic_bind.py -b ixgbe ...

  4. RP4412开发板烧写Ubuntu12.04失败原因分析解决

    Ubuntu烧写失败可能是卡的问题 问:用RP4412开发板,卡烧了光盘中的fastboot失败,现在如何补救呢? 答:INAND格式化,利用usb来升级啊. 也有文档,看升级文档. 问:这个是怎么回 ...

  5. Linux suse x86_64 环境上部署Hadoop启动失败原因分析

    一.问题症状: 在安装hadoop的时候报类似如下的错误: # A fatal error has beendetected by the Java Runtime Environment: # #  ...

  6. centos7 sftp设置后 ssh 启动失败 原因分析

    大多数人 在 设置SFTP 使用时,会在 ../sshd_config中添加如下内容: ------------------------------- Subsystem sftp internal- ...

  7. virsh default启动失败原因分析及解决

    启动default时出现如下错误提示:[root@node1 ~]# virsh net-start defaulterror: Failed to start network defaulterro ...

  8. linux下使用crontab实现定时PHP计划任务失败的原因分析

    这篇文章主要介绍了linux下使用crontab实现定时PHP计划任务失败的原因分析,需要的朋友可以参考下   很多人在linux下使用crontab实现PHP执行定时任务却未能成功,不能生成缓存.本 ...

  9. ab输出信息解释以及Failed requests原因分析

    ab是apache自带的压力测试工具.ab进行的一切测试本质上是基于HTTP的.下面是对ab输出项信息的解释和出现Failed requests原因分析.测试实例:1. ab输出信息说明:   1 2 ...

随机推荐

  1. C++设计模式之-外观模式

    意图: 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一系统更加容易使用. 适用性: 1.在设计初期阶段,应该要有意识的将不同的两个层分离,比如经典的三层架构,就需要 ...

  2. cursor游标(mysql)

    /* 游标 cursor 什么是游标?为什么需要游标 使用存储过程对sql进行编程的时候,我们查询的语句可能是数据是多个,它总是一口气全部执行,我们无法针对每一条进行判断.也就是说,我们无法控制程序的 ...

  3. ant+jmeter+jenkins+git持续集成以及邮件报告展示

    前序准备工作: ant--下载地址:http://ant.apache.org/bindownload.cgi jmeter--下载地址:http://jmeter.apache.org/downlo ...

  4. Falsk项目cookie中的 csrf_token 和表单中的 csrf_token实现

    Flask中请求体的请求开启CSRF保护可以按以下配置 from flask_wtf.csrf import CSRFProtect app.config.from_object(Config) CS ...

  5. New Concept English three(19)

    27w/m 76words Kidnappers are rarely interested in Animals, but they recently took considerable inter ...

  6. 安装spring报错:Cannot complete the install because of a conflicting dependency.

    问题: 在Eclipse里安装Spring插件,help->install new software用端点安装,说是出现软件依赖错误报错如下: Cannot complete the insta ...

  7. uglify-es 解决webpack 不能压缩es6 的问题

    https://www.npmjs.com/package/uglify-es

  8. $.ajax 的速度要快于 angular 里 $http (个别情况)

    $.ajax: $http:

  9. [Python] 项目打包发布

    一.setuptools - 官方文档: Building and Distributing Packages with Setuptools- 中文文档: Python包管理工具setuptools ...

  10. Python中的collections模块

    Python中内置了4种数据类型,包括:list,tuple,set,dict,这些数据类型都有其各自的特点,但是这些特点(比如dict无序)在一定程度上对数据类型的使用产生了约束,在某些使用场景下效 ...