> Hi there,
> I am looking for information regarding TCP/IP stack performance in
> I am interested in knowing IP forwarding performance when a Linux
> machine acts as a router (assuming UDP over IP traffic). Of interest
> are - any measurements or research done on the sequence of events that
> occur (from the time the packet arrives till it leaves on another
> interface) and also the performance in terms of MIPS when a
> uniprocessor is used.
> Any articles or links in this regard would be of great help.
I did some digging around on the net trying to find out about IP routing
performance earlier this year. It's pretty hard to come up with meaningful
figures, especially when MIPs isn't a very scientific measure. Here are some
notes I made back then with a few links that may be useful.
"Discussions on the Internet show that the performance of (for example) IP
routing on a Linux PC is very dependent on the Ethernet card driver. Most
drivers seem to swamp the system at a certain packet rate, such that almost
all packets are dropped! (See
http://robur.slu.se/Linux/net-development/jamal/FF-html/). Comparisons are
also difficult, because it is not always possible to determine the effective
MIPs rating of the system that the performance figures are given for.
According to the Intel White Paper "Entry-Level Communications Appliance for
Security: Effect of Network Configuration on Performance" an Intel Celeron
300MHz processor, running RedHat Linux 6.1 and used as a gateway, can handle
a throughput of 98.5 Mbps with NAT and Firewall running. An Intel Celeron
300 is rated at about 350 MIPs (integer operations), so this corresponds to
1823 instructions per 64 byte packet (192kpps).
According to http://robur.slu.se/Linux/net-development/experiments/000605 A
350MHz Pentium II showed a 33% CPU load while routing 21429 pps. At 411 MIPs
this corresponds to 6329 instructions per 64 byte packet.
A Pentium Pro 200MHz processor running FreeBSD can handle 40kpps (see
http://search.luky.org/linux-kernel.2001/msg03170.html). At 250 MIPs this
corresponds to 6250 instructions per 64 byte packet.
Linux Journal, August 2002, "The Linux Router" reports the following
performance: Pentium 133 (219 MIPs) 52 Mbps (101.5 kpps) and Pentium 200
(300 MIPs) 82.5 Mbps (161 kpps). These figures correspond to 2157 and 1863
instructions per packet (for 64 byte packet), but the article does not
specify what size packets were being sent."