Answers:
该netem内核模块,通过iproute控制。
您需要使用内核编译Netem:
Networking -->
Networking Options -->
QoS and/or fair queuing -->
Network emulator
一旦装载了netem模块,iproute的tc就可以让您执行以下操作:
tc qdisc add dev tap0 root netem delay 50ms loss 50%
(50%的数据包丢失,额外的延迟为50毫秒)
sch_netem
。通常,无需手动加载,它将根据需要自动加载。
rate
选项:tc qdisc add dev lo root handle 1:0 netem delay 10ms rate 1mbit limit 1000
。请注意,对于某些设备(例如lo
(用于访问localhost)),您还需要设置队列长度:ifconfig lo txqueuelen 1000
。请参阅serverfault.com/a/394949/76090
客户端,对不对?
细流应该做你想要的。如果您正在运行Ubuntu(我认为是Debian),则可以使用进行安装sudo apt-get install trickle
,然后运行。trickle -s -d 10 -u 10 firefox
(或者,我已经有一段时间没有使用它了)将运行firefox,将其下载和上传速度限制为每秒10 KB。
我找到了一种方法,可以使用ubuntu中的“ wondershaper”工具来避免盒子占用网络上所有可用带宽。我希望它也存在于其他Linux发行版中。我可以使用以下命令来限制我的Linux家庭PC可以消耗的带宽。
sudo wondershaper eth0 1000 200
这将下载限制限制为1000 kb,将下载限制限制为200 kb。有关更多信息/选项,请参见wondershaper的手册页。
wondershaper
Debian中的软件包。
sudo wondershaper clear eth0
NIST制作了一个称为NistNet的网络模拟器。
http://snad.ncsl.nist.gov/nistnet/(链接似乎已消失)
http://cs.ecs.baylor.edu/~donahoo/tools/nistnet/
NistNet使您可以制作模仿您选择的通讯链接的路由器。
对于最简单的操作,您可以将其放在两个网络之间的带有两个NIC的盒子中。
例如,我有一个必须在卫星链路上工作的应用程序。
数据可能会以2 Mbps的链接经过BIG延迟。控制必须经过128kbps的链路,并且具有相同的延迟。
NistNet帮助使它们全部以128kbps的速度工作。
使用NistNet,我不仅可以模拟带宽,还可以模拟延迟,它还可以为您丢弃数据包,模拟繁忙或不可靠的链接。
如果要模拟任意连接,则不仅要限制带宽,还要增加延迟。
也不要忘记对数据包进行分段。您可以在phony链接上设置漂亮的小型MTU。
IIRC添加数据包抖动将使您了解是否可以处理乱序数据包。
过去,我个人曾经使用过Wondershaper,尽管它是为相反的用例编写的-充分利用了ADSL连接。
我将不得不尝试这里提到的其他人。
您可以使用本地安装的鱿鱼代理来限制带宽,例如在慢速链接上测试网页:
从您的发行版安装squid代理 -在我的Fedora上就像一样容易yum install squid
。
将以下内容添加到/etc/squid/squid.conf
:
delay_pools 1
delay_class 1 1
delay_access 1 allow all
delay_parameters 1 16000/16000
这会将带宽限制为大约128 kbps(16000 Bps)。
开始鱿鱼:/etc/init.d/squid start
配置浏览器以使用代理服务器localhost
端口3128
。