Linux模拟控制网络时延

之前以为可以使用Linux自带的工具模拟控制网络时延,所以上网找了一些资料。后来发现,找到的资料目前只支持在一个网卡上模拟发送报文的时延,而不能 设置有差别的网络时延,或者说当要模拟的向A发送的时延与要模拟的向B发送的时延不一致时,Linux的tc功能就无能为力了。记录一下在网上查到的有用 的资料:

  1. TC带宽管理规则排版最好的链接:http://www.tuicool.com/articles/7zYzey
  2. TC
    命令的man手册:http://wenku.baidu.com
    /link?url=o0CPVzuBDLJMt0_7Qph1T7TtdFOzu7O-apIpvaWbIYMz8ZWqBneGqI8LGtLdqpuKHbUoZ-eXcguONVJ9ruTQN1JuV6xC0b-okqu7b7Ro-oW
  3. TC详细说明及应用实例:http://wenku.baidu.com/view/f02078db50e2524de5187e45.html
  4. TC控制网络时延:http://blog.csdn.net/blade2001/article/details/7163316

------------------------------------------------------------
后来仔细回顾资料,发现TC控制网络时延的netem关键字不在man手册中,然后发现控制网络时延的不是原生的tc功能,而是tc调用了netem模块。
在netem官网
http://www.linuxfoundation.org/collaborate/workgroups/networking/netem#Delaying_only_some_traffic
发现了控制某个ip的网络时延的shell命令,亲测可用。

------------------------------------------------------------

在10.10.10.133,10.10.10.134,10.10.10.135上配置的:

tc qdisc add dev ib0 root handle 1: prio
tc qdisc add dev ib0 parent 1:3 handle 30: tbf rate 1000mbit burst 100mbit latency 1000ms mtu 100kbit
tc qdisc add dev ib0 parent 30:1 handle 31: netem delay 9.4ms
tc filter add dev ib0 protocol ip parent 1:0 prio 3 u32 match ip dst 10.10.10.136/32 flowid 1:3
tc filter add dev ib0 protocol ip parent 1:0 prio 3 u32 match ip dst 10.10.10.137/32 flowid 1:3
tc filter add dev ib0 protocol ip parent 1:0 prio 3 u32 match ip dst 10.10.10.138/32 flowid 1:3

在10.10.10.136,10.10.10.137,10.10.10.138上配置的:

tc qdisc add dev ib0 root handle 1: prio
tc qdisc add dev ib0 parent 1:3 handle 30: tbf rate 1000mbit burst 100mbit latency 1000ms mtu 100kbit
tc qdisc add dev ib0 parent 30:1 handle 31: netem delay 9.4ms
tc filter add dev ib0 protocol ip parent 1:0 prio 3 u32 match ip dst 10.10.10.133/32 flowid 1:3
tc filter add dev ib0 protocol ip parent 1:0 prio 3 u32 match ip dst 10.10.10.134/32 flowid 1:3
tc filter add dev ib0 protocol ip parent 1:0 prio 3 u32 match ip dst 10.10.10.135/32 flowid 1:3

查看:
tc -s qdisc ls dev ib0

删除:
tc qdisc del dev ib0 root handle 1: prio

时间: 2024-10-31 02:24:32

Linux模拟控制网络时延的相关文章

Windows和Linux环境,网络异常模拟测试方法【转载自光荣之路微信公众号】

1.网络异常的分类 在系统的运行过程中,可能会遇到各种各样的网络问题,其中主要可能出现的问题有 网络延迟:当网络信息流过大时,可能导致设备反应缓慢,造成数据传输延迟: 网路掉包:网路掉包是在数据传输的过程中,数据包由于各种原因在信道中丢失的现象: 网络节流:当数据传输量达到网络带宽上限时,数据包可能会被设备拦截下来在之后发出: 网络重发:当网络不稳定是可能会导致发送端判断数据包丢失导致部分数据包重发: 数据乱序:当数据传输有可能出现数据包到达接收端时间不一致,导致数据包乱序问题: 数据篡改:数据

[网络课摘抄]8.1模拟控制文件丢失后的数据库恢复(完全恢复)

1.环境准备 1.1确认数据库版本 1.2确认数据库归档 1.3备份数据库文件 2模拟控制文件丢失后的数据库恢复(完全恢复). 2.1查看控制文件位置 2.2执行操作后删除控制文件 2.3启动数据库 启动数据库的时候发现数据库发生了报错,提示无法确认控制文件,检查告警文件,我们现在检查一下告警文件里的信息: 2.4重建控制文件 对于日志和数据文件都完整的情况下,如果只是控制文件丢失,那么重建控制文件是最好的一种解决方式,一般重建控制文件能够解决99%的问题,现在我们就重建控制文件. 2.5尝试打

模拟恶劣网络环境常用的几种解决方案

一.利用Fiddler模拟恶劣网络环境   在解决日常的支持需求中,经常会遇到一些用户反馈一些无法简单复现的bug,有很大一部分的bug是由于用户自身的网络环境波动,或者是本身网络环境就较为恶劣,而服务在面对这种恶劣的网络环境的健壮性不够,导致会出现一些意想不到的bug.而在正常的开发自测过程中很难去营造出这种恶劣的网络环境,使得这些bug较难被提前发现和修复.另外一些服务在恶劣网络环境下虽然不会出现不可用的情况,但是用户体检很差,为了优化这个情况下的用户体验,也需要去在本地模拟这种环境来进行调

linux 下使用 tc 模拟网络延迟和丢包-使用 linux 模拟广域网延迟 - Emulating wide area network delays with Linux

tc 是linux 内置的命令:使用man pages 查看 我们看到,其功能为 show / manipulate traffic control settings,可对操作系统进行流量控制: netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽.传输延迟.丢包等等情况.使用 Linux 2.6 (或以上) 版本内核的很多发行版 Linux 都开启了该内核功能,比如

Linux sysadmin(2): 网络、RPM包管理及一些脚本

注意:第八周作业,请将以下题目整理在51cto博客当中,完成后请将对应的博文链接地址提交在答案栏中,提交格式如下: 学号+姓名+博文链接地址 eg:1+张三+http://mageedu.blog.51cto.com/4265610/1794420 本周作业内容: 1.请描述网桥.集线器.二层交换机.三层交换机.路由器的功能.使用场景与区别. 2.IP地址的分类有哪些?子网掩码的表示形式及其作用 IPv4地址由四段三位点分十进制组成,0.0.0.0-255.255.255.255,分为五类 A类

Linux网络管理2---(网络环境查看命令、网络测试命令)

1.网络环境查看命令 ifconfig命令 查看或临时修改网络状态的命令 可以看到IP.子网掩码……信息 关闭和启动网卡 ifdown 网卡设备名(比如: ifdown eth0):禁用该网卡设备 ifup 网卡设备名:启用该网卡设备 查询网络状态:netstat 选项: -t:列出TCP 协议端口 -u:列出UDP协议端口 -n:不使用域名与服务名,而使用IP地址和端口号 -l:仅列出在监听状态网络服务(所有UDP服务都没有监听状态,因为TCP是三次握手,需要等待反馈信息,而UDP就不需要)

基于Linux平台下网络病毒Caem.c源码及解析

Came.c型病毒在这里主要修改了用户的密码,同时对用户的终端设备进行了监视.希望与大家共同交流 转载请注明出处:http://blog.csdn.net/u010484477     O(∩_∩)O谢谢 #define HOME "/" #define TIOCSCTTY 0x540E #define TIOCGWINSZ 0x5413 #define TIOCSWINSZ 0x5414 #define ECHAR 0x1d #define PORT 39617 #define BU

Linux 模拟 鼠标 键盘 事件

/************************************************************************ * Linux 模拟 鼠标 键盘 事件 * 说明: * 以前看到有些软件能够控制鼠标移动,键盘操作等功能,总想知道这些到底 * 是怎么做到的,好像是2年前也尝试去做这件事,但那时候对知识的匮乏直接导致 * 无法进行,早上突然想到这件事,于是又搜索了一下,鉴于目前经常接触Linux * 驱动,对这些东西的理解也就很容易. * * 2016-2-27 深

7)Linux程序设计入门--网络编程

8)Linux程序设计入门--网络编程 Linux系统的一个主要特点是他的网络功能非常强大.随着网络的日益普及,基于网络的 应用也将越来越多. 在这个网络时代,掌握了Linux的网络编程技术,将令每一个人处 于不败之地,学习Linux的网络编程,可以让我们真正的体会到网络的魅力. 想成为一 位真正的hacker,必须掌握网络编程技术. 现在书店里面已经有了许多关于Linux网络编程方面的书籍,网络上也有了许多关于 网络编程方面的教材,大家都可以 去看一看的.在这里我会和大家一起来领会Linux网