这里测试系统为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和具体进程)的更多相关文章

  1. TC命令流量控制测试(针对具体IP地址和IP协议)

    这里测试系统为Linux操作系统,通过简单的TC命令来实现对带宽的控制. 1对具体IP地址的流量控制 这里采用iperf来进行带宽的测试,首先在服务器和客户端都安装上iperf软件,通过该软件下的命令 ...

  2. 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 ...

  3. I.MX6 Android CAN 命令行测试

    /********************************************************************* * I.MX6 Android CAN 命令行测试 * 说 ...

  4. 1.网络工具:ifconfig,ping,netstate,Redhat命令和图形化设置ip,finger,nslookup

     1 ip ad查看网卡编号 2.ifconfig查看网卡信息 3.关闭网卡 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcX ...

  5. ab命令压力测试

    网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环.只有让服务器处在高压情况下,才能真正体现出软件.硬件等各种设置不当所暴露出的问题. 性能测试工具目前最常见的有以下几种:ab.http_lo ...

  6. Linux命令行测试网速speedtest.net

    Linux命令行测试网速speedtest.net 当发现上网速度变慢时,人们通常会先首先测试自己的电脑到网络服务提供商(通常被称为"最后一公里")的网络连接速度.在可用于测试宽带 ...

  7. Shell 命令行获取本机IP,grep的练习

    Shell 命令行获取本机IP,grep的练习 在 mac 下面输入 ifconfig 或者在 linux 下面输入 ip a 就可以得到我们的网卡信息.不过通常情况下,我们需要查看的是我们的IP地址 ...

  8. Bash命令查找本机公网IP

    用Bash命令查找本机公网IP wget -qO - http://ipecho.net/plain; echo

  9. @vue/cli3+配置build命令构建测试包&正式包

    上一篇博客介绍了vue-cli2.x配置build命令构建测试包和正式包,但现在前端开发vue项目大多数使用新版@vue/cli脚手架搭建vue项目(vue create project-name) ...

随机推荐

  1. php详细学习1

    PHP中的引用 $a="now magic"; $b=&$a; $b="abc"; echo $b.$a; 结果:abcabc $a="now ...

  2. 表的操作(Oracle和DB2)

    asc和desc 分别表示升序和降序 select * from tablename order by id desc :根据id字段按照降序排列,从大到小 select * from tablena ...

  3. NoSQL性能测试工具YCSB-Running a Workload

    写在前面 目前,在系统设计中引入了越来越多的NoSQL产品,例如Redis/ MongoDB/ HBase等,其中性能指标往往会成为权衡不同NoSQL产品的关键因素.对这些产品在性能表现和产品选择上的 ...

  4. java 中对对象的调用

    java程序设计语言对对象采用的不是引用的调用,实际上对象引用进行的是值得传递.(from:核心卷1  page:123)

  5. Ubuntu14.04+Nginx+MySql+PHP环境配置

    http://www.cnblogs.com/gophper/p/4793711.html

  6. 一个简单清晰的Redis操作类

    <?php /** * redis处理的二次封装 * */ class Redis{ private $_redis; private $_config; public function __c ...

  7. PHP 支持加解密的函数

    function encrypt($string,$operation,$key=''){ $key=md5($key); $key_length=strlen($key); $string=$ope ...

  8. Linux的内核和权限

    1.内核包括的子系统是 : 进程管理系统 . 内存管理系统 . I/O管理系统 和文件管理系统  等四个子系统. 2.Linux系统中某个可执行文件属于root并且有setid,当一个普通用户 mik ...

  9. MySQL 5.7 多主一丛同步的数据库配置(将多处数据源合并到一点)

    工作需要,笔记之用.文章很长,倒一杯茶慢慢看. 数据库的应用场景颇多,如 数据库双机同步,一主多从,多主多从,多主一从等:下文记录多主一从的配置及测试. 大多数复制场景中是一主或者一主多从.这种拓扑用 ...

  10. Nginx 开启gzip压缩(图片,文件,css)

    1.Vim打开Nginx配置文件 vim /usr/local/nginx/conf/nginx.conf 2.找到如下一段,进行修改 gzip on; gzip_min_length 1k; gzi ...