Lake Tarfala. Credits: Nina Kirchner

More serverreflexive ICE candidate pairs

Chrome 54 recently rolled out and brought, as usual, some WebRTC changes. Including some changes that were not part of the release notes for that version which turned out to have a bigger impact than anyone expected. By Philipp Hancke.

Philipp Hancke

--

I recently got a question regarding TURN servers and connectivity in Chrome 54, which had rolled out in mid-october. So I checked the numbers we gather at appear.in with respect to the first candidate pair after the connection was established.

SELECT [day], count(*), firstcandidatepairtype from features_permanent where iceconnectedorcompleted = ‘t’ group by day, firstcandidatepairtype order by day asc

Unlike ICE failure rates this is a secondary metric that I don’t look at very often. The result looked somewhat worrisome:

What we see in this first graph is that the number of calls where the first candidate pair is of type host-serverreflexive drops after October 24.

It does so at the same time and rate as the Chrome 53 usage drops as we can see in the graph below. And the number of serverreflexive-serverreflexive calls increases at the same rate that the Chrome 54 usage increases:

Something changed. I checked failure ratios. They were ok, no changes there and we did not get more complaints from our users.

I could track this down to a date when it first occured:

It showed up on August 13th as a new local type preference 100 that I had not seen before. And I found a the change on August 11th where the commit message said:

upon receiving a binding response with a srflx mapped address attribute, the local candidate was not updated from local to srflx.

Which is exactly what I can see in the stats. So the WebRTC team fixed a bug their ICE engine and it makes the statistics more reasonable. The majority of calls is now reported with a serverreflexive-serverreflxive candidate pair, i.e. two browsers behind a NAT router talking to each other.

Awesome, thanks a bunch! It would be nice if changes like this were mentioned in the changelog too. They might not seem revelvant but in this case turned out to have quite some impact.

--

--