Ever since the RIPE Atlas anchor network went online, the RIPE NCC has been scheduling anchoring measurements to provide a clear overview of the health of the network. Over time, however, a certain imbalance has crept into such measurements. Here's a look at the problem along with our solution.
At regular intervals, a specific set of measurements gets executed against each anchor on the network by all anchors on the network, plus a number of probes. These are known as anchoring measurements, and their purpose is to exploit the stability of RIPE Atlas anchors to generate a reliable, objective overview of the health of the network as a whole.
Anchoring probes and probing anchors
As stated, aside from anchors, anchoring measurements also make use of regular RIPE Atlas probes (note that when we say 'probes' here, we mean non-anchor probes). Why so? Well, when anchoring measurements were first introduced, it was decided that the number of devices used to perform the relevant measurements ought to be (i) high enough to produce robust results, and (ii) more or less equal for all anchors.
To meet these requirements, each anchoring measurement is performed by a total of 400 devices, where this number is made up of the total number of anchors on the network plus whatever number of probes might be needed to make up the difference. An algorithm determines precisely which set of probes targets which anchor, with any overlap between the relevant sets being ruled out. Hence, each anchor is effectively assigned its very own fixed set of probes dedicated to performing routine anchoring measurements against it.
To illustrate, when the twentieth anchor (anchor #20) was added to the network, all 20 anchors plus 380 probes were initially set to perform anchoring measurements against it. And ever since then, precisely the same set of probes has continued to be used for all routine anchoring measurements performed against that anchor.
All of the above makes sense, but for one slight issue. As mentioned, each anchoring measurement is performed by a select set of probes plus all anchors on the network. But whereas the set of probes used to perform these measurements against a given anchor is fixed when the anchor is added to the network, the set of anchors itself continues to expand over time.
As a result, anchoring measurements carried out against anchor #20 continue to be performed by the first 20 anchors and a specific set of probes chosen the day that anchor went online - but they're also being performed by the 200+ extra anchors that have been added since. This makes for a total of 600+ devices making anchoring measurements towards anchor #20.
Compare this to anchor #200. At the time of writing, anchoring measurements against this anchor are performed by those 200 anchors that were online the day it went online, plus an extra 200 probes assigned to it (by algorithm) back then, plus the 67 anchors that have gone online since - bringing its total to 467.
Following this trend, here's where we're at today:
Number of anchors and probes dedicated to anchor measurements for each anchor on the network: as we see, the percentage of probes continues to descend for anchors added after a certain time
The number of devices used to perform anchoring measurements thus varies depending on when the anchor went online. Whilst perhaps not ideal, this is not such a big issue in and of itself. Yet as we can see from above, the percentage of probes used in anchoring measurements has continued, and will continue, to get lower for each new anchor added.
The eventual outcome of this is that, by the time anchor #400 is introduced to the network, anchoring measurements toward anchor #20 will use 400 anchors and 380 probes, whereas anchoring measurements toward anchor #400 itself will use 400 anchors and zero probes. Here lies the imbalance! What would make sense would be to keep the number of probes and anchors used in anchoring measurement at least roughly equal so as to ensure equal reliability across anchoring measurements.
Having identified the problem, the solution we've come up with is straightforward. Rather than keep having anchoring measurements performed by both anchors and probes, the time has come to split things up. This means:
- We'll have a full anchor mesh, with all and only the anchors performing measurements against all other anchors.
- We'll have an independent set of measurements made by regular probes - i.e. each anchor will have a dedicated set of exactly 400 probes making measurements against it.
By splitting things up in this way, not only do we even out the number of anchors and probes used, but we also make it easier to distinguish the different sources of the measurements, which we believe will be useful for many researchers in the field.
These changes will be rolled out over the coming days, as it will take quite a bit of time before the measurements are all balanced again. Of course, all changes will be appropriately reflected in the UI/API. If you have any comments on any of this, or notice anything strange that you think might be due to the relevant changes, please leave a comment!
Comments are disabled on articles published more than a year ago. If you'd like to inform us of any issues, please reach out to us via the contact form here.