[Click] generating artificial delay

Simon Schuetz simon.schuetz at netlab.nec.de
Fri Mar 19 16:24:07 EST 2004


Hi,
I am using the following configuration
FromDevice(eth0) -> Queue -> DelayUnqueue(0.05) -> ToHost(eth0)
FromDevice(eth2) -> Queue -> DelayUnqueue(0.05) -> ToHost(eth2)
This implies a round trip delay of 100ms.
It works, but I experience severe performance problems.
I tried to used only
FromDevice(eth2) -> Queue -> DelayUnqueue(0.1) -> ToHost(eth2)
so that there is only one queue to handle (but same round trip delay),
and got the same results. The maximum TCP throughput I measured using
IPerf is about 2.3 MBit/s. If I unload the click router module, I have a
round-trip delay of less than 1ms, and a throughput of about 70MBit/s.

When I use a TCP window size of 16kB, the theoratical max. throughput is
16kB/0.1s = 160kB/s = 1.28 MBit/s. With this configuration I reach
exactly this throughput, but the click routers CPU is already running
with 100% usage. But I wanted to have higher throughput, so I increased
the window size. 
When I use a TCP window size of 128kB, the theoratical max. throughput
is roughly 128kB / 0.1s = 1.28MB/s = 10Mbit/s. With this configuration I
only measured a throughput of 2.3MBit/s !! Increasing the Queue size of
the click router did not improve performance.

My Network looks as follows:
A Server is connected via one interface to the router.
A Client is connected to the router via two different interfaces (of
different subnets), but only one of them is active at a time.

I installed the click router version 1.4 on the router between server
and client.
The click router has a CPU usage (System usage) of nearly 100%. It is a
Pentium IV machine running on 2,8GHz. 

Any experiences about max. throughput using click router?

Thanks
Simon

> Message: 1
> Date: Tue, 16 Mar 2004 09:10:20 +0100
> From: Brecht Vermeulen <brecht.vermeulen at UGent.be>
> Subject: Re: [Click] generating artificial delay
> To: Simon Schuetz <simon.schuetz at netlab.nec.de>
> Cc: click at amsterdam.lcs.mit.edu
> Message-ID: <4056B66C.30009 at UGent.be>
> Content-Type: text/plain; charset=us-ascii; format=flowed
> 
> 
> Hi,
> 
> never tried this, but I guess it should work with some small 
> modifications to your configuration:
> FromDevice(eth0) -> Queue -> DelayUnqueue(0.100) -> ToHost(eth0)
> 
> (delay is in seconds, and the queue must be added so the packets can 
> wait somewhere. DelayUnqueue instead of Delayshaper because ToHost is a 
> push element)
> 
> let us know how it works.
> 
> What we tried was an impairment node (so an extra PC with two network 
> cards in the middle) based on click, say
> FromDevice(eth0) -> Queue -> DelayShaper(0.100) -> ToDevice(eth1);
> and this works perfectly.
> 
> but never tried to delay packets and then hand them to the kernel itself.
> 
> regards,
> Brecht
> 
> 
> 
> Simon Schuetz wrote:
> 
> > Hi,
> > I am doing some network testings and I need a tool to generate some
> > artificial delay on the intermediate router (lets say 100ms from
> > incoming to outgoing) to simulate some sort of network. I need the
> > support for Linux IPv6.
> > Is it possible to do this using the click router (either userlevel or
> > kernel modules) with a configuration like
> > FromDevice(eth0) -> DelayShaper(100) -> ToHost(eth0) ??
> > 
> > If not, any other known tools that support such a scenario?
> > (Dummynet is for BSD only, NISTnet does not support IPv6)
> > 
> > Thanks 
> > Simon
> > 
> > _______________________________________________
> > click mailing list
> > click at amsterdam.lcs.mit.edu
> > https://amsterdam.lcs.mit.edu/mailman/listinfo/click



More information about the click mailing list