Skip to content. | Skip to navigation

Personal tools

Navigation

You are here: Home / Wiki / Kb65

Kb65

Emulab FAQ: Troubleshooting: I wrote a small UDP application to test the bandwidth of a link/LAN, but I do not observe the bandwidth that I asked for.

Emulab FAQ: Troubleshooting: I wrote a small UDP application to test the bandwidth of a link/LAN, but I do not observe the bandwidth that I asked for.

Since UDP is unreliable and not flow controlled, you may just be trying to push packets out on the wire too fast. In this case packets will be dropped before even getting to the wire. You may also be dropping packets at the receiver side if the consumer cannot keep up.

If you are trying to saturate a 100Mb link and can't do it, it may be due to using too small a packet size. For small packet sizes, the limitation on a 100Mb link will be the packet rate, not the raw bandwidth. The eepro100 ethernet NICs in most of our machines can only generate a little over 100,000 packets per second (pps). With 64-byte packets, you will thus only see about 51.2Mb/sec of raw data or about 14.4Mb/sec of UDP payload (a 64 byte ethernet packet can hold only 18 bytes of UDP payload). Note that the theoretical max is less than 150,000 pps for 64-byte packets, so even better NICs would not change this.

Considering that stock FreeBSD and Linux can generate even fewer packets per second due to interrupt and scheduling overheads, you probably need to use at least 200-byte packets to saturate a 100Mb link.