TC命令流量控制测试(针对具体IP地址和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地址和IP协议)的更多相关文章
- TC命令流量控制测试(针对具体IP和具体进程)
TC命令流量控制测试 这里测试系统为Linux操作系统,通过简单的TC命令来实现对带宽的控制. 1对具体IP地址的流量控制 这里采用iperf来进行带宽的测试,首先在服务器和客户端都安装上iperf软 ...
- 包格式及IP地址,网络层协议
包格式及IP地址,网络层协议 案例1:配置静态路由 案例2:配置浮动路由 案例3:配置多路由的静态路由 案例4:配置默认路由 1 案例1:配置静态路由 1.1 问题 配置路由接口IP地址并通过静态路由 ...
- Windows:查看IP地址,IP地址对应的机器名,占用的端口,以及占用该端口的应用程
Windows 服务器系列: Windows:查看IP地址,IP地址对应的机器名,占用的端口,以及占用该端口的应用程 Windows:使用Dos命令管理服务(Services) Windows:任务调 ...
- 获取IP地址 & 伪装IP地址发送请求
//获取请求客户端IP地址 public final static String getIpAddress(HttpServletRequest request) throws IOExcepti ...
- 根据IP地址获取IP的详细信息
<?php header('Content-Type:text/html; charset=utf-8'); function ip_data() { $ip = GetIP(); $url = ...
- linux修改主机名,关闭图形化界面,绑定ip地址,修改ip地址
1关闭图形化界面 vi /etc/inittab 改成id:3:initdefault: 注意:不要选0或6 2.修改主机名 vi /etc/sysconfig/network 修改即可 3,修改ip ...
- IP地址分类/IP地址10开头和172开头和192开头的区别/判断是否同一网段(A、B、C三类地址)【转】
简单来说在公司或企业内部看到的就基本都是内网IP,ABC三类IP地址里的常见IP段. 每个IP地址都包含两部分,即网络号和主机号. InterNIC将IP地址分为五类:A类保留给ZF或大型企业,B类分 ...
- 服务器ip地址 服务器ip登录方法
服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器.其中域名必须对应一个IP地址,一个域名可以有多个IP地址,而IP地址不一定有域名. 简单的解释就是:服 ...
- [Swift]LeetCode93. 复原IP地址 | Restore IP Addresses
Given a string containing only digits, restore it by returning all possible valid IP address combina ...
随机推荐
- Java网络编程之查找Internet地址
一.概述 连接到Internet上计算机都有一个称为Internet地址或IP地址的唯一的数来标识.由于IP很难记住,人们设计了域名系统(DNS),DNS可以将人们可以记忆的主机名与计算机可以记忆的I ...
- iOS - UIScrollView 相关属性代理详解
一.UIScrollView的属性和代理方法详解 属性: - (void)viewDidLoad { [super viewDidLoad]; _scrollView.backgroundColor ...
- jQuery Sizzle选择器(二)
自己开始尝试读Sizzle源码. 1.Sizzle同过自执行函数的方式为自己创建了一个独立的作用域,它可以不依赖于jQuery的大环境而独立存在.因此它可以被应用到其它js库中.实现如下:(fun ...
- HDU 2199 Can you solve this equation(二分答案)
Can you solve this equation? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- C语言程序设计--字符串与指针及数组与指针
数组的基本知识 数组的定义 #define SIZE 5 int array_int[5]; //未声明初始化,默认填零 float array_float[5] = {1.01, 2.23, 3.1 ...
- 解决-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variabl
1.添加M2_HOME的环境变量 2.Preference->Java->Installed JREs->Edit 选择一个jdk, 添加 -Dmaven.multiModuleP ...
- Unity3D笔记 Collect
一.输入轴 默认输入轴: Horizontal 和 Vertical被映射到w, a, s, d键和方向键 Fire1, Fire2, Fire3被分别映射到Ctrl,Option(Alt)和Comm ...
- Spring Boot 商城项目
Spring Boot 商城项目 angularJS Demo1 <html> <head> <title>angularJS Demo1</title> ...
- windows下的zookeeper安装
先在官网下载安装包(https://www.apache.org/dyn/closer.cgi/zookeeper/),单机安装非常简单,只要获取到 Zookeeper 的压缩包并解压到某个目录如:C ...
- Spark2 oneHot编码--标准化--主成分--聚类
1.导入包 import org.apache.spark.sql.SparkSession import org.apache.spark.sql.Dataset import org.apache ...