I have a requirement to provide an accurate means to demonstrate line performance over a flat layer2 1Gb point-to-point Ethernet circuit, approx 100 miles apart that seemingly goes through a number of hops over the distance.

The business requirement will need to demonstrate performance with an accuracy of min 8ms latency. The link will carry voice and data traffic whereby the service SLA should guarantee 1000Mb bandwidth.

What are the known accurate methods of measuring performance given these requirements?
I am aware of a number of metrics available that might possible form a test strategy but having Googled a bunch of info it can get overwhelming and i'm unclear of whether software like iPerth should be used, what's the benchmark for this scenario etc?

  • This question is very unclear. What do you mean by "measuring performance over this type of connection"? As you mentioned, there are a number of performance metrics you could measure... (i.e. network latency, jitter, bandwidth, bit error rate). You need to clarify which metrics to test with the person that gave you the requirement to measure performance. May 29, 2013 at 19:28
  • 2
    I think this is a valid question. It's not as if there are 1000 ways to figure out if a link is performing as it should. There are set metrics which will give you the health of the link.
    – bigmstone
    May 29, 2013 at 19:33
  • Mike - I think this is clear enough albeit i take on board the agreed metrics will need to be settled upon. I wanted some answers regarding their experience of what strategies they have employed successfully and already have some great info, thank you all. Happy to edit if you want to suggest something more concise?
    – MattE
    May 29, 2013 at 19:48
  • @MattEarp, I'm saying that you're asking a question we can't answer (most accurate way to measure performance)... having done significant network testing in my career, we don't know enough to really help unless you say... "This circuit will carry financial trading traffic. How can I test non-drop rate performance and measure latency with 1ms accuracy" then we have something to work from. Based on the needs of the original requester and the circuit SLA parameters, we can help build a test strategy... but there isn't enough info now. Please define use case, metrics, and accuracy requirements May 29, 2013 at 20:00
  • @MikePennington - I have edited the question with an understanding of what needs to be measured in terms of min latency which hopefully you can better answer.
    – MattE
    May 29, 2013 at 20:49

7 Answers 7


If you're trying to test 1xGE No Drop Rate and measure circuit delay within 8ms, I would use nuttcp to test bandwidth and iperf2 / mtr to test delay.

I would do the following...

  1. Find two linux desktop PCs, if possible (laptops are sometimes acceptable, but you might run into issues with chipset or bus performance at 1GE speeds). You can boot into a Performance Sonar toolkit CD, if you don't want a permanent linux install on these boxes
  2. Select packet sizes for your test. Since you need voice support on the circuit, you should test streams with smaller frames, such as 128-byte ethernet frames. If I was running the test, I would choose 128, 256, 768 and 1514 byte ethernet frames.
  3. Test nuttcp UDP bandwidth performance of your linux PCs connected back to back before shipping one of them 100 miles away. You want to ensure that you can measure 1000 Mbps at various packet sizes. Be sure to account for the Inter-Frame Gap when you calculate expected throughput rates... for instance the best possible throughput you can expect on an untagged gige circuit at a 128-byte average ethernet frame size is 864.9 Mbps.
  4. Use iperf2 or mtr to test circuit delay...
  5. Pick a test window. I think it's best to test circuits continuously for at least a day... two days to a week are preferable if you need to get a sense for potential oversubscription within your carrier's network.
  6. Ship one of the PCs off to the remote site, preconfigured for the IP addressing you need on the link.

Misc thoughts

Other answers have suggested using iperf2 alone; however, it doesn't have CLI options to adjust the UDP packet size. It also tends to demonstrate flaky performance at high speeds under MS Windows.

This Metro Ethernet Forum paper on testing carrier ethernet circuits will help provide a general understanding some of the tradeoffs you take when testing circuits.

  • iperf has actually moved to v3 on a new site - code.google.com/p/iperf - or did you intenionally link to the v2 one?
    – pauska
    May 29, 2013 at 23:08
  • I have tested with v3, but v2 seems more stable in my experience May 29, 2013 at 23:30
  • Excellent point on testing back to back first before shipping. Jun 4, 2013 at 4:38

iperf can do that job. Just ensure you test your devices back to back first so you know the capabilities of the devices.

Of course there are more professional tools as well.

This is a good RFC to read up proper methology: http://www.ietf.org/rfc/rfc2544.txt


If you have PCs at both ends then you could run xjperf, Qcheck from Ixia or other tools. You might get different results depending on if you use UDP or TCP and the number of sessions.

For a distance over 100 miles you are looking at a minimum RTT of 1.6 ms at the speed of light in fibre/copper. So your RTT should be very low, maybe only a couple of ms. Say that you have a RTT of 6 ms. With default window size options on Windows you might only get around 85 Mbps of throughput. You would need a window size of at least 768 kbyte to send a gig worth of traffic.

You can use Throughput Calculator TCP to do your own calculations.

Ixia has more highend tools but they cost money which the above tools do not.


Here is an article that explains why iperf2 alone cannot answer the question for you: http://bradhedlund.com/2008/12/19/how-to-calculate-tcp-throughput-for-long-distance-links/

I never truly understood this concept until I read that article. Hope it helps.


Since you are wanting to measure a layer 2 circuit, I'd like to shamelessly push some free software that I have been writing. It's still in beta but does exactly what you want based on the information in your question.

Unlike nuttcp, iPerf, jPerf et al, Etherate runs directly over layer 2 designed specifically for Ethernet testing. Like the others a laptop on each is all that is required and my Intel i3 laptop can max out a gig link with ease.

Since it’s in beta stage the more advanced features aren’t ready yet like MPLS testing but throughput, latency and MTU testing (all directly on layer 2 Ethernet) are implemented.



In order to get a full "health profile" of a link you'll need to consider several different metrics.

  • Latency
  • Jitter
  • Throughput
  • Loss

The best way to measure these metrics accurately is with a device dedicated for testing. Exfo, JDSU, and Fluke are several large companies that manufacture devices like this.

A PC /can/ test these metrics but you have to make sure there is nothing on the computer skewing the numbers and that the application you're using is accurate.

iperf will measure bandwidth throughput but won't measure much else. Ping will measure moment in time latency, but not jitter. Also ICMP echo is only really accurate to 1ms. If you are trying to get an actual latency measurement then you'll need to decide if 1ms of granularity is enough for you/your applications.


Iperf and mtr to do specific test. And smokeping to have a simple history of the link performance using fping probe.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.