- 浏览: 864187 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (280)
- java相关 (29)
- linux系统 (55)
- ipsec (0)
- ssl (3)
- 信息安全 (13)
- web相关 (35)
- windows (9)
- c,c++ (14)
- log4j (3)
- hibernate (8)
- sqlite (1)
- 程序人生 (2)
- js (2)
- 生活点滴 (3)
- 网络相关 (14)
- 问题积累 (15)
- 数据库相关 (27)
- 软件测试 (2)
- PKI相关 (2)
- 程序设计 (7)
- 犄角旮旯 (0)
- 杂七杂八 (0)
- 硬件相关 (14)
- 防火墙 (2)
- 电子商务 (2)
- 多媒体相关 (1)
- 内存管理 (4)
- 面向对象 (1)
- csp (1)
- 驱动开发 (3)
- 移动开发 (2)
- openssl多线程实例 (1)
最新评论
-
xiaoyao3857:
博主很有探索精神嘛,学习了
Linux主机名Hostname详解 -
hiskyrisa:
言简意赅,好文章。
Flex是什么 -
layznet:
犯了类似错误。使用的是derby数据库。driverClass ...
java.sql.SQLException: No suitable driver -
idision:
你好,文章有一句createSubjectKeyId(keyT ...
bouncycastle 产生证书 -
zheng12tian:
代码有全的不?只贴一部分,,,,
在LOG4J中把日志写入远程数据库
先假设一个简单的环境
流量控制器上的以太网卡(eth0) 的IP地址为192.168.1.66,在其上建立一个CBQ队列。假设包的平均大小为1000字节,包间隔发送单元的大小为8字节,可接收冲突的发送最长包数目为20字节。
假如有三种类型的流量需要控制:
1) 是发往主机1的,其IP地址为192.168.1.24。其流量带宽控制在8Mbit,优先级为2;
2) 是发往主机2的,其IP地址为192.168.1.26。其流量带宽控制在1Mbit,优先级为1;
3) 是发往子网1的,其子网号为192.168.1.0,子网掩码为255.255.255.0。流量带宽控制在1Mbit,优先级为6。
1. 建立队列
一般情况下,针对一个网卡只需建立一个队列。
将一个cbq队列绑定到网络物理设备eth0上,其编号为1:0;网络物理设备eth0的实际带宽为10 Mbit,包的平均大小为1000字节;包间隔发送单元的大小为8字节,最小传输包大小为64字节。
·tc qdisc add dev eth0 root handle 1: cbq bandwidth 10Mbit avpkt 1000 cell 8 mpu 64
2. 建立分类
分类建立在队列之上。一般情况下,针对一个队列需建立一个根分类,然后再在其上建立子分类。对于分类,按其分类的编号顺序起作用,编号小的优先;一旦符合某个分类匹配规则,通过该分类发送数据包,则其后的分类不再起作用。
1) 创建根分类1:1;分配带宽为10Mbit,优先级别为8。
·tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 10Mbit
rate 10Mbit maxburst 20 allot 1514 prio 8 avpkt 1000 cell 8 weight
1Mbit
该队列的最大可用带宽为10Mbit,实际分配的带宽为10Mbit,可接收冲突的发送最长包数目为20字节;最大传
输单元加MAC头的大小为1514字节,优先级别为8,包的平均大小为1000字节,包间隔发送单元的大小为8字节,相应于实际带宽的加权速率为
1Mbit。
2)创建分类1:2,其父分类为1:1,分配带宽为8Mbit,优先级别为2。
·tc
class add dev eth0 parent 1:1 classid 1:2 cbq bandwidth 10Mbit rate
8Mbit maxburst 20 allot 1514 prio 2 avpkt 1000 cell 8 weight 800Kbit
split 1:0 bounded
该队列的最大可用带宽为10Mbit,实际分配的带宽为
8Mbit,可接收冲突的发送最长包数目为20字节;最大传输单元加MAC头的大小为1514字节,优先级别为1,包的平均大小为1000字节,包间隔发
送单元的大小为8字节,相应于实际带宽的加权速率为800Kbit,分类的分离点为1:0,且不可借用未使用带宽。
3)创建分类1:3,其父分类为1:1,分配带宽为1Mbit,优先级别为1。
·tc class add dev eth0 parent 1:1 classid 1:3 cbq bandwidth 10Mbit
rate 1Mbit maxburst 20 allot 1514 prio 1 avpkt 1000 cell 8 weight
100Kbit split 1:0
该队列的最大可用带宽为10Mbit,实际分配的带宽为
1Mbit,可接收冲突的发送最长包数目为20字节;最大传输单元加MAC头的大小为1514字节,优先级别为2,包的平均大小为1000字节,包间隔发
送单元的大小为8字节,相应于实际带宽的加权速率为100Kbit,分类的分离点为1:0。
4)创建分类1:4,其父分类为1:1,分配带宽为1Mbit,优先级别为6。
·tc class add dev eth0 parent 1:1 classid 1:4 cbq bandwidth 10Mbit
rate 1Mbit maxburst 20 allot 1514 prio 6 avpkt 1000 cell 8 weight
100Kbit split 1:0
该队列的最大可用带宽为10Mbit,实际分配的带宽为
64Kbit,可接收冲突的发送最长包数目为20字节;最大传输单元加MAC头的大小为1514字节,优先级别为1,包的平均大小为1000字节,包间隔
发送单元的大小为8字节,相应于实际带宽的加权速率为100Kbit,分类的分离点为1:0。
3. 建立过滤器
过滤器主要服务于分类。一般只需针对根分类提供一个过滤器,然后为每个子分类提供路由映射。
1) 应用路由分类器到cbq队列的根,父分类编号为1:0;过滤协议为ip,优先级别为100,过滤器为基于路由表。
·tc filter add dev eth0 parent 1:0 protocol ip prio 100 route
2) 建立路由映射分类1:2, 1:3, 1:4
·tc filter add dev eth0 parent 1:0 protocol ip prio 100 route to 2 flowid 1:2
·tc filter add dev eth0 parent 1:0 protocol ip prio 100 route to 3 flowid 1:3
·tc filter add dev eth0 parent 1:0 protocol ip prio 100 route to 4 flowid 1:4
4.建立路由
该路由是与前面所建立的路由映射一一对应。
1) 发往主机192.168.1.24的数据包通过分类2转发(分类2的速率8Mbit)
·ip route add 192.168.1.24 dev eth0 via 192.168.1.66 realm 2
2) 发往主机192.168.1.30的数据包通过分类3转发(分类3的速率1Mbit)
·ip route add 192.168.1.30 dev eth0 via 192.168.1.66 realm 3
3)发往子网192.168.1.0/24的数据包通过分类4转发(分类4的速率1Mbit)
·ip route add 192.168.1.0/24 dev eth0 via 192.168.1.66 realm 4
注:一般对于流量控制器所直接连接的网段建议使用IP主机地址流量控制限制,不要使用子网流量控制限制。如一定需要对直连子网使用子网流量控制限制,则在建立该子网的路由映射前,需将原先由系统建立的路由删除,才可完成相应步骤。
5. 监视
主要包括对现有队列、分类、过滤器和路由的状况进行监视。
1)显示队列的状况
简单显示指定设备(这里为eth0)的队列状况
·tc qdisc ls dev eth0
qdisc cbq 1: rate 10Mbit (bounded,isolated) prio no-transmit
详细显示指定设备(这里为eth0)的队列状况
·tc -s qdisc ls dev eth0
qdisc cbq 1: rate 10Mbit (bounded,isolated) prio no-transmit
Sent 7646731 bytes 13232 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 31 undertime 0
这里主要显示了通过该队列发送了13232个数据包,数据流量为7646731个字节,丢弃的包数目为0,超过速率限制的包数目为0。
2)显示分类的状况
简单显示指定设备(这里为eth0)的分类状况
·tc class ls dev eth0
class cbq 1: root rate 10Mbit (bounded,isolated) prio no-transmit
class cbq 1:1 parent 1: rate 10Mbit prio no-transmit #no-transmit表示优先级为8
class cbq 1:2 parent 1:1 rate 8Mbit prio 2
class cbq 1:3 parent 1:1 rate 1Mbit prio 1
class cbq 1:4 parent 1:1 rate 1Mbit prio 6
详细显示指定设备(这里为eth0)的分类状况
·tc -s class ls dev eth0
class cbq 1: root rate 10Mbit (bounded,isolated) prio no-transmit
Sent 17725304 bytes 32088 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 31 undertime 0
class cbq 1:1 parent 1: rate 10Mbit prio no-transmit
Sent 16627774 bytes 28884 pkts (dropped 0, overlimits 0)
borrowed 16163 overactions 0 avgidle 587 undertime 0
class cbq 1:2 parent 1:1 rate 8Mbit prio 2
Sent 628829 bytes 3130 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 4137 undertime 0
class cbq 1:3 parent 1:1 rate 1Mbit prio 1
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 159654 undertime 0
class cbq 1:4 parent 1:1 rate 1Mbit prio 6
Sent 5552879 bytes 8076 pkts (dropped 0, overlimits 0)
borrowed 3797 overactions 0 avgidle 159557 undertime 0
这里主要显示了通过不同分类发送的数据包,数据流量,丢弃的包数目,超过速率限制的包数目等等。其中根分类(class cbq 1:0)的状况应与队列的状况类似。
例如,分类class cbq 1:4发送了8076个数据包,数据流量为5552879个字节,丢弃的包数目为0,超过速率限制的包数目为0。
显示过滤器的状况
·tc -s filter ls dev eth0
filter parent 1: protocol ip pref 100 route
filter parent 1: protocol ip pref 100 route fh 0xffff0002 flowid 1:2 to 2
filter parent 1: protocol ip pref 100 route fh 0xffff0003 flowid 1:3 to 3
filter parent 1: protocol ip pref 100 route fh 0xffff0004 flowid 1:4 to 4
发表评论
-
Linux c的多线程编程实例
2011-07-19 17:28 1970通过创建两个线程来实现对一个数的递加。或许这个实例没有实际运用 ... -
linux下进程的最大线程数、进程最大数、进程打开的文件数
2011-06-22 17:35 1945linux 系统中单个进程的 ... -
Linux中dos2unix的批量转换命令
2011-01-05 10:31 6973在Linux中将DOS 格式转换为Unix格式的文件可以使用d ... -
linux双网关双线路网络设置
2010-08-03 19:10 2009由于电信和网通之间互联互通 的问题,很多 ... -
syslog-ng学习心得之二
2010-07-06 08:58 2438在[url]http://coolerfeng.blog.51 ... -
syslog-ng学习心得之一
2010-07-06 08:58 2743转载一篇syslog-ng的文章的,本来是想打算自己写一篇 ... -
Linux用户进程是如何释放内存
2009-12-25 17:16 2058Linux进程使用内存的基本流程: 见图1 从 ... -
Linux内存使用详解
2009-12-25 16:56 2375一提到内存管理,我们 ... -
linux下查看内存使用情况
2009-12-25 14:56 1992在Linux下查看内存我们 ... -
Linux编程C++内存管理之内存分配详解
2009-12-21 21:33 1756程序员们经常编写内存 ... -
内核模块调试方法
2009-11-17 11:23 2581对 于任何一位内核代 ... -
Linux操作系统下以太网卡的安装及配置
2009-11-11 17:18 1677Linux操作系统以其 独有的开放性、稳定性、高 ... -
跟我一起写 Makefile(3)
2009-11-03 14:38 635“-s” “--silent” “--quiet” 在命 ... -
跟我一起写 Makefile(2)
2009-11-03 14:35 956书写命令 ———— 每 ... -
跟我一起写 Makefile(1)
2009-11-03 14:32 981陈皓 (CSDN) 概述 — ... -
CC与GCC的区别概括介绍
2009-11-03 14:29 1451从名字上看,老的unix系统 的CC程序叫做C Comp ... -
linux内核模块管理命令
2009-10-30 10:54 17091. lsmod 列出已经加载的内核模块 lsmo ... -
分区修复软件Testdisk 安装使用
2009-08-26 14:23 4916linux下超帅的分区表修复软件.以前用过n多的window ... -
Linux下的分区修复软件Testdisk
2009-08-26 10:40 1855好了,这个软件叫testdisk.很帅的。。 如果你是使 ... -
Linux分区数据恢复
2009-08-26 10:18 1445公司的一台redhat机器启动不了了,是由于多次非正常关机造成 ...
相关推荐
本篇将围绕“Linux流量控制TC使用说明”这一主题,深入探讨相关知识点。 首先,`netem`是Network Emulation(网络模拟)的缩写,它是TC工具的一部分,用于模拟网络环境,例如延迟、丢包、重复包等,这对于测试应用...
linux平台tc命令使用说明,包括查看网卡、模拟时延、模拟丢包、模拟乱序、模拟重包、网卡配置管理等
TC(Linux 下流量控制工具)详细说明及应用实例 TC 是 Linux 下的一种流量控制工具,用于控制和管理网络流量。它提供了一个灵活的方式来管理网络带宽、延迟和丢包率等网络性能参数,以满足不同应用场景的需求。 TC...
TC(Linux 下流量控制工具)详细说明及应用实例 TC 是 Linux 操作系统下的流量控制工具,用于控制网络流量的速率、延迟、 Packet loss 等参数,以确保网络资源的合理分配和优化。下面是对 TC 的详细说明及应用实例...
TC(Traffic Control,流量控制)是Linux内核中的一种网络管理工具,用于对流入和流出系统的网络流量进行精细控制。这个技术允许系统管理员设定规则,限制特定类型或特定来源的流量,以保持网络的稳定性和优化带宽...
TC是Linux提供的一种强大的流量控制手段,通常与网络队列调度器(qdisc)和类别(class)相关联。 qdisc是Linux流量控制的基础构件,全称是queueing discipline,它定义了流量如何被排队处理。Linux支持多种qdisc,...
TC(Linux 下流量控制工具)详细说明及应用实例 TC(Traffic Control)是 Linux 操作系统下的流量控制工具,用于控制和管理网络流量。TC 工具可以对网络流量进行监控、限制和调整,以确保网络资源的合理分配和使用...
本篇文章将深入探讨一种基于Linux下的TC流量控制管理架构,帮助理解如何利用TC来优化网络性能。 TC,全称Traffic Control,是Linux内核的一部分,提供了对网络数据传输速率、延迟和带宽利用率的精确控制。通过TC,...
tc流量控制参数详解及实例,涉及到网络通信中非常重要的一环,即网络资源的合理分配。 首先,我们要理解流量控制的必要性。在Internet中,由于TCP/IP协议的存在,数据传输的速度会根据网络状况自动调整,当网络拥塞...
流量控制的实现依赖于多个组件和技术,其中最核心的命令行工具是tc(traffic control)。 流量控制的核心思想是通过对网络流量的管理,解决网络拥塞和数据包延迟等问题。在分组交换网络中,由于缺乏对流经网络的...
QoS分为入口(Ingress)和出口(Egress)两个部分,分别针对数据包进入和离开网络接口时的流量控制。 **入口流量控制(Ingress Traffic Control)** 入口流量控制主要负责限制进入网络接口的流量速率,通常用于实现...
### 基于Linux下TC的流量控制管理架构解析 #### 一、引言与背景 随着互联网技术的迅猛发展,网络流量控制与带宽管理的重要性日益凸显。尤其是在大规模网络环境中,合理分配与管理网络资源成为了提升网络性能的关键...
Linux下的TC(traffic control)和HTB(Hierarchical Token Bucket)流量控制是网络管理中的关键工具,主要用于优化网络带宽的分配和确保服务质量(QoS)。它们可以帮助管理员在多用户环境中控制不同类型的网络流量,避免...
linux下的基于链接的流量控制。主要应用TC编写完成,功能强大,在工作中完全用的上
使用TC-htb对IPv6流量包进行带宽控制,三行命令即可实现
Linux下利用TC实现P2P流量控制.pdf
Linux TC流量控制是Linux操作系统中用于管理网络流量的一种机制,它是Traffic Control的简称。Linux TC提供了丰富的工具和选项,使得管理员能够对网络设备的输入和输出流量进行精细化的控制,从而实现带宽限制、延迟...
一、TC的安装 二、TC原来介绍 三、TC规则 四、TC命令 五、具体操作 基本实现步骤 环境模拟实例 建立队列 建立分类 建立过滤器 监视 维护 六、dms小组应用场景一个实例
Linux流量控制的方法有多种,常用的方法包括Linux Traffic Control(TC)命令和IPTABLES。但是,这些方法存在着一些缺陷,例如结构繁琐、效率低下等。 第三个知识点:LQL库的应用 LQL库是一个开源的流量控制库,...