Using "delay" to emulate a satellite link

Dave Raven dave at raven.za.net
Fri Mar 30 09:09:26 UTC 2007


Hi Luigi,
	Thanks for the reply -- these are my related send/recv space
settings on all of the boxes involved --

net.local.stream.sendspace: 65535
net.local.stream.recvspace: 65535
net.local.dgram.recvspace: 4096
net.inet.tcp.sendspace: 65535
net.inet.tcp.recvspace: 65535
net.inet.udp.recvspace: 65535
net.inet.raw.recvspace: 8192

What I have done is put 3 freebsd units plugged into eath other with
crossover cables, like so --

BOX 1 ----- BOX 2 ----- BOX 3

Box 3 has a 500meg /dev/urandom text file on a webserver. Box 1 wget's that
file. Box 2 has the ipfw delay setup. If I ping from BOX 1 to BOX 3 I get
+/-1000ms of delay. When I download I get less than half of the link speed
(1meg limited by box 2).

The latency directly affects the throughput - but my question is this -- If
I download something from a web server on the internet that I have 500ms of
delay to, I can get 1meg (on a 1meg link). When I emulate that delay with
dummynet I can't -- is there a difference in the type of delay experienced?

Really anyone can - most people have delay of at least 300-500ms to remote
webservers (e.g. from me in Africa to America); but it doesn't hamper
download speed?

Thanks again
Dave 



-----Original Message-----
From: Luigi Rizzo [mailto:rizzo at icir.org] 
Sent: Friday, March 30, 2007 9:59 AM
To: Dave Raven
Cc: freebsd-ipfw at freebsd.org
Subject: Re: Using "delay" to emulate a satellite link

On Fri, Mar 30, 2007 at 08:49:19AM +0200, Dave Raven wrote:
> Hi all,
> 	I've been looking at the ipfw (dummynet) ability to do delay and
> have a few questions - I hope this is the right list. I want to simulate a
> 1000ms RTT on a satellite link. To do that I've created an inbound and
> outbound pipe and given each 1mb and 500ms of delay.
> 
> However, I'm unable to get anywhere near 1mb of throughput on it until I
> drop the delay. I believe I understand the slowdown due to the latency,
but
> my question is this - an http download through a 500ms "emulated" link
> that's running 1 mb can't get 1mb, yet if I download over the internet on
a
> site that's pinging 500ms, it goes 1mb 
> 
> Whats the difference between dummynet delay and real life distance delay?

first make sure you are not comparing apples and oranges.
what sender and receiver are you using to get 1Mbit/s on a 500ms link ?
and, are you sure that if you ping from the source to the destination
you are using for your tests with dummynet you get the delay
you are expecting (1000ms as you configured it, and not 2000 ?)

500ms of delay on each pipe give at least 1000ms total
delay (assuming you have not misconfigured your dummynet box).
In order to fill the pipe you need at least 1Mbit worth of data
in the socket buffer/tcp window - the default on FreeBSD is
32kbytes sending, 64Kbytes receiving, so you won't be
able to achieve that unless you increase these two sysctls:

	net.inet.tcp.sendspace: 32768
	net.inet.tcp.recvspace: 65536

if you draw the bw vs delay that you achieve on your connection
you will likely find that either the limit is your socket
buffers or a misconfigured ipfw which results in twice the delay

	cheers
	luigi



More information about the freebsd-ipfw mailing list