Cisco Bandwidth Testing
Have you ever wondered how to test the throughput of a Cisco Router? I tried to copy things with "copy tftp:/ /foo/bar null:", but Cisco's null-device is a bottleneck here.
I little search showed that Cisco implements a hidden command called "ttcp", at least with the bigger IOSse (SP=Service provider, IPplus) and recommends a Windows based client to test. Gnarf, I dont have Windows running here!
So I checked out, what Open-Source stuff exists, and found a Debian package called nttcp and after a little tryout I found that it works together:
On the Linux (server) side run:
# nttcp -p 5001 -v -i
On the Cisco CPE (client side) run:
transmit or receive [receive]: transmit
Target IP address: a.b.c.d
perform tcp half close [n]:
send buflen :
send nbuf :
buffering on writes [y]:
show tcp information at end [n]:
And you get a result like this:
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp -> a.b.c.d
ttcp-t: 16777216 bytes in 37456 ms (37.456 real seconds) (~436 kB/s) +++
ttcp-t: 2048 I/O calls
ttcp-t: 0 sleeps (0 ms total) (0 ms average)
A result oif 436 kB/s for a 4 Meg bundle is not bad for that case: There are TCP headers of 40 byte and PPP Multilink headers of 6 byte in the game. The throughput in ttcp is measured "net", so the pipe must have more bandwidth ...
As a curious person I also measured on the Linux machine acting as TTCP server the throughput via the iptraf tool (See pictures attached). That's about 3850 kbits/s incl. TCP header but Multilink already demultiplexed.
BTW: If you ever need to send a break to the Cisco (i.e. to interrupt the TTCP command), you'll see that CTRL-C does not work. Instead press ALT-6-X on a Linux ssh, and the Cisco will receive a CTRL-C ...
Further Reading: Network Performance Testing with TTCP