Hero image: introducting ICEPerf.com

We’re building a TURN Networks comparison tool

How do you choose your TURN network provider? Here at Nimble Ape, we often find ourselves working on TURN networks for our client projects. Also our sister company Everycast Labs’ product, Broadcast Bridge, utilises TURN networks: See Dan’s recent blog post about it to learn more.

Until recently, the market offering of TURN network providers was quite limited, but new players have now started popping up. We can now choose between:

Let us know if we’ve missed any!

We are often asked the question, which provider should I use? The answer depends on each specific needs, the quality of the network and, most importantly, the location. To our knowledge, there is no tool out there that helps you compare how each TURN provider will perform in each scenario, so we decided to build it! It’s called ICEPerf.

Inspired by DNSPerf.com, ICEPerf runs a series of tests with each of the TURN providers mentioned above and exports metrics to compare the results.

What can ICEPerf do (so far)?

The project is still very young and we’ve currently built in a series of basic tests, but we plan on expanding the list as we go along. So far, ICEPerf can measure:

  • The time to receive ICE candidates
  • Latency
  • Throughput capabilities

Each test is carried out, for each provider that supports them, over UDP, TCP and TLS with both STUN and TURN. Here’s an example:

Latency

Graphs comparing latency values for each provider in a test run

Time to receive first ICE candidate (STUN)

Graphs comparing the time to receive the first ICE candidate on STUN for each provider in a test run

Time to receive first ICE candidate (TURN)

Graphs comparing the time to receive the first ICE candidate on TURN for each provider in a test run

Throughput

Graphs comparing max throughput values for each provider in a test run

Graphs showing throughput trends over time for each provider in a test run

(Tests completed over home broadband connection, 1 Gbps down, 100 Mbps up, hardwired)

The preliminary data above show that, while it is normally expected that TCP and TLS perform worse than UDP, these protocols affect the providers differently. While in our initial tests Cloudflare still delivered the same throughput also on TCP and TLS, Metered fell to about 1 Mbps, while Twilio set at 11 Mbps.

Why is ICEPerf useful?

If your product or service needs to connect via WebRTC from a highly secure network such as a hospital, a government building or a financial institution, the choice of TURN network can be critical. This is also true when needing to push a lot of data through a TURN server, or even just to speed up those initial connections by milliseconds. Performance of all the parts impacts your application heavily. You need tools to help make the right decision.

However, when you need to compare how different TURN providers perform, there is really no simple option available. We’ve been in this situation before, and we know how hard it can be.

With ICEPerf, we’re addressing that.

What’s coming next?

We introduced ICEPerf at JanusCon 2024, and we have only just started! We plan on implementing more tests, collecting more data, and making more results widely available on ICEPerf.com. Down the line, we want to be able to run ICEPerf from multiple locations, different ISPs, different network conditions and more to see how this affects the performance of the different providers.

Stay tuned for updates

If you’d like to stay in the loop with ICEPerf updates and to be the first to know about our next releases, you can sign up to receive ICEPerf email updates.

We’ll also be posting updates on socials with the hashtag #ICEPerf, so be sure to follow that as well!

Have you got any questions or suggestions? Reach out to the team at [email protected].

A big thanks to Cloudflare, Twilio and Xirsys for giving us credit in order to be able to run the tests.

- Marco and the Nimble Ape team