TC命令流量控制测试(针对具体IP和具体进程)
这里测试系统为Linux操作系统,通过简单的TC命令来实现对带宽的控制.
1对具体IP地址的流量控制
这里采用iperf来进行带宽的测试,首先在服务器和客户端都安装上iperf软件,通过该软件下的命令来进行通讯和测试.
1.1测试正常情况下的带宽
1)服务器设置端口:
[root@docker117 ~]# iperf -s -p #设置端口为7000,端口号不要设置成容易被占用的,比如XShell占用端口为22,此处倘若设置为22,就会发生冲突.

2)客户端连接服务器:
[root@localhost src]# ./iperf -c 192.168.48.117 -p -n #192.168.. 117为服务器地址,7000为其端口;-n规定了发送字节的个数.
3)服务器结果显示:

1.2根据IP对流量进行控制
1)客户端根据服务器的ip及其端口来限制网速:
tc qdisc add dev eth0 root handle : htb default
#在网卡eth0上添加队列规则htb(分层令牌桶),其主序列号为10:,default 12表示当某个ip流不满足任何已设定的filter规则时,将自动归入class 中 tc class add dev eth0 parent : classid : htb rate 100kbit ceil 1000kbit burst 100k
#在队列规则下添加类型,以便有更深入的qdisc,这里所添加的类仍为htb,rate是一个类保证得到的带宽值,ceil是该类能最大能得到的带宽值,burst是令牌桶的大小
tc filter add dev eth0 protocol ip parent : prio u32 match ip dst 192.168.48.117/ match ip dport 0xffff flowid :1
#添加过滤器,满足后面的筛选条件进入到类10:1中.其中,prio代表优先级,u32是选择器,后面的是服务器的ip地址和端口. 0xffff是defmap字段值,数据包的优先权位
与defmap字段的值进行"或"运算来决定是否存在这样的匹配,如果是0xffff代表匹配所有包,0则代表不匹配
2)服务器结果显示:

可看出限制后带宽由13.8Mbits/s降至403Kbits/s,证明了流量控制命令的有效性.
2对具体IP协议的流量控制
这里采用CentOS下的firefox浏览器作为研究对象,在其上开启流量测量网页,在流量控制前后分别进行测量,以检验TC命令的效果.
2.1测试正常情况下网速

2.2通过命令限制浏览器网速
1)利用TC命令限制TCP协议下的网速:
tc qdisc add dev eth0 root handle : htb default tc class add dev eth0 parent : classid : htb rate 100kbit ceil 100kbit burst 1000k tc filter add dev eth0 protocol ip parent : prio u32 match ip protocol 0xff flowid :
#浏览器测速时对应的协议为TCP协议,对应的ip protocol为6
2)测试限制后浏览器网速:

限制后,下载和上传速度均有所下降,其中上传速度下降尤为显著,说明限制策略有效.
TC命令流量控制测试(针对具体IP和具体进程)的更多相关文章
- TC命令流量控制测试(针对具体IP地址和IP协议)
这里测试系统为Linux操作系统,通过简单的TC命令来实现对带宽的控制. 1对具体IP地址的流量控制 这里采用iperf来进行带宽的测试,首先在服务器和客户端都安装上iperf软件,通过该软件下的命令 ...
- centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课
centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB ...
- I.MX6 Android CAN 命令行测试
/********************************************************************* * I.MX6 Android CAN 命令行测试 * 说 ...
- 1.网络工具:ifconfig,ping,netstate,Redhat命令和图形化设置ip,finger,nslookup
1 ip ad查看网卡编号 2.ifconfig查看网卡信息 3.关闭网卡 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcX ...
- ab命令压力测试
网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环.只有让服务器处在高压情况下,才能真正体现出软件.硬件等各种设置不当所暴露出的问题. 性能测试工具目前最常见的有以下几种:ab.http_lo ...
- Linux命令行测试网速speedtest.net
Linux命令行测试网速speedtest.net 当发现上网速度变慢时,人们通常会先首先测试自己的电脑到网络服务提供商(通常被称为"最后一公里")的网络连接速度.在可用于测试宽带 ...
- Shell 命令行获取本机IP,grep的练习
Shell 命令行获取本机IP,grep的练习 在 mac 下面输入 ifconfig 或者在 linux 下面输入 ip a 就可以得到我们的网卡信息.不过通常情况下,我们需要查看的是我们的IP地址 ...
- Bash命令查找本机公网IP
用Bash命令查找本机公网IP wget -qO - http://ipecho.net/plain; echo
- @vue/cli3+配置build命令构建测试包&正式包
上一篇博客介绍了vue-cli2.x配置build命令构建测试包和正式包,但现在前端开发vue项目大多数使用新版@vue/cli脚手架搭建vue项目(vue create project-name) ...
随机推荐
- php详细学习1
PHP中的引用 $a="now magic"; $b=&$a; $b="abc"; echo $b.$a; 结果:abcabc $a="now ...
- 表的操作(Oracle和DB2)
asc和desc 分别表示升序和降序 select * from tablename order by id desc :根据id字段按照降序排列,从大到小 select * from tablena ...
- NoSQL性能测试工具YCSB-Running a Workload
写在前面 目前,在系统设计中引入了越来越多的NoSQL产品,例如Redis/ MongoDB/ HBase等,其中性能指标往往会成为权衡不同NoSQL产品的关键因素.对这些产品在性能表现和产品选择上的 ...
- java 中对对象的调用
java程序设计语言对对象采用的不是引用的调用,实际上对象引用进行的是值得传递.(from:核心卷1 page:123)
- Ubuntu14.04+Nginx+MySql+PHP环境配置
http://www.cnblogs.com/gophper/p/4793711.html
- 一个简单清晰的Redis操作类
<?php /** * redis处理的二次封装 * */ class Redis{ private $_redis; private $_config; public function __c ...
- PHP 支持加解密的函数
function encrypt($string,$operation,$key=''){ $key=md5($key); $key_length=strlen($key); $string=$ope ...
- Linux的内核和权限
1.内核包括的子系统是 : 进程管理系统 . 内存管理系统 . I/O管理系统 和文件管理系统 等四个子系统. 2.Linux系统中某个可执行文件属于root并且有setid,当一个普通用户 mik ...
- MySQL 5.7 多主一丛同步的数据库配置(将多处数据源合并到一点)
工作需要,笔记之用.文章很长,倒一杯茶慢慢看. 数据库的应用场景颇多,如 数据库双机同步,一主多从,多主多从,多主一从等:下文记录多主一从的配置及测试. 大多数复制场景中是一主或者一主多从.这种拓扑用 ...
- Nginx 开启gzip压缩(图片,文件,css)
1.Vim打开Nginx配置文件 vim /usr/local/nginx/conf/nginx.conf 2.找到如下一段,进行修改 gzip on; gzip_min_length 1k; gzi ...