[e2e] UDP Performance problem

Craig Partridge craig at aland.bbn.com
Thu Feb 10 06:12:17 PST 2005


>I am writing a a networking library to facilitate faster data transfers using
>UDP. The required level of performance is 120Mbps (at the minimum) on Gigabit
>Ethernet. 

TCP should be able to do that without difficulty.  Why use UDP???

>But at the moment what I am getting is around 32Mbps. I am using a 8kB packet
>size and using Redhat 2.4.21 kernel (Enterperise Linux). I am having 4X
>2.8GHz Intel Xeon CPUs with 4GB memory. Two identical machines are
>interconnected using an SMC switch (Gigabit Ethernet)

Not clear you've provided enough information here, particularly if you're
send back acks for the UDP datagrams.  Let's assume, for a moment, that
this is a naive implementation and you're just sending UDP packets as fast
as you can.

You're sending or receiving a packet roughly every 65 us.  How fast can
your machine take interrupts?  How fast can it copy memory through the
processor?  In short, what's your time budget and does it fit within
65us.  (My rough estimate says it may be close -- 60ns DRAM with 16-byte
chunks [128 bit bus] takes at least 30us to copy 8kB...)

Craig


More information about the end2end-interest mailing list