与Dummynet进行突发数据传输

时间:2013-11-13 02:29:08

标签: linux networking network-programming freebsd

我正在尝试使用Dummynet来测试我的网络应用程序在各种网络条件下的行为。模拟器已编译并安装在Ubuntu 12.04盒子上。当我减少链路/路径的带宽时,我遇到了一种奇怪的行为。

出于某种原因,而不是下载速度慢。似乎下载正在爆发!一部分数据以高速下载,然后数据传输停止一段时间,然后再次恢复(依此类推)。有谁知道可能是什么原因?或者这甚至是预料到的?

1 个答案:

答案 0 :(得分:0)

我猜你已经这样做了,但为了确保你必须这样做:

编译一个支持IPFW和Dummynet的新内核,将这些行放在你的内核配置文件中:

options IPDIVERT
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_FORWARD
options DUMMYNET
options HZ=1000

之后编译并安装新内核。为此,请按照Building and Installing a Custom Kernel

上的步骤操作

这样做,使用以下行配置rc.conf文件:

firewall_enable="YES"
firewall_type="OPEN"

如果你没有使用默认的防火墙配置文件/etc/rc.firewall,那么把你的配置文件改为“打开”:

firewall_type="/your/firewall/config.file"

出于测试目的,您可以直接在控制台上编写您的规则,看看会发生什么,并在您的配置文件上写这个以保留规则。

对于基本带宽限制,此规则必须足够:

ipfw pipe 1 config bw 1Mbit
ipfw pipe 2 config bw 1Mbit

现在你有两个带有1Mbit带宽的管道,让我们把流量放在这个管道上。

ipfw add pipe 1 tcp from any to me
ipfw add pipe 2 tcp from me to any

这样做可以限制你以前创建的管道。

这是Dummynet带宽控制的基础。