By using a software-based measurements platform, we could get latency information about regional connectivity in the LAC region and get a list of countries which are better connected between them than to the rest of the region. Results show a strong geographical component and open some questions regarding connectivity, what it is, and how we measure it.
Regional connectivity is not an easy metric to measure, as to do it properly you require measurements generated by multiple vantage points, located in as many places as possible (both geographically and logically). Besides, connectivity is not something strictly defined, as it has no standard definition (as opposed to many metric we measure in today's Internet). RIPE Atlas is a great option where it has a considerable amount of probes, but what to do when RIPE Atlas is not enough? For measuring connectivity in the Latin America and the Caribbean region, we first had to define what connectivity really means to us, and then find a way to perform distributed large-scale measurements. To accomplish that, we used a worldwide platform, composed by thousands of virtual probes (which are eaasily deployable), called Speedchecker. Based on the measurements collected, we analyzed a network graph and grouped the data into country clusters. This post describes the results and the method we followed to get to those results and get a perspective of what connectivity is for us and in which state it is in the LAC region.
By performing around 200 daily ICMP pings through 12 months, we built a latecy dataset that covered 21 LAC region countries. Out of this dataset, we built a network graph which represented the latency relations between the countries. The geolocation information regarding each measurement is taken from Mozilla Geolocation API and Maxmind Lite databse.
Each measurement has its own minimum, maximum, average, and median RTT values. Measurements are built by about 10 samples each, distanced sequentially about one second apart between them (in a traditional ping fashion).
By grouping all the results by country, we built a graph having countries as nodes and measurements as edges. The edge connecting nodes A and B is the average minimum measurement taken for that subset of measurements. That means that from the k samples taken between node A and node B, we filter the minimum value for each sample and we take the grand average over that population. As a result, the graph is based on the best latency measurements that could be achieved during the time the experiment was conducted.
By looking the same clusters in a map, we can easily see a strong geographical component.
The first new insight about connectivity was getting a new definition, or at least a more formal approach to the term. Based on our cluster analysis, we could define connectivity based in three metrics: the amount of clusters found by the communities clustering algorithm, the intra-cluster latency, and the inter-cluster latency. We could start building metrics based on these numbers, but having those three metrics already gives a clear view of how close countries and clusters are between them. In the case of the LAC region, 4 clusters were found. Building new metrics is definitely useful in the cases of having a greater amount of clusters (and therefore an even greater amount of edges).
In the case of the LAC region, we can see that
Cluster #2 (Chile, Peru, and Bolivia) has weak intra-cluster connectivity, almost the same as its averge inter-cluster connectivity. That means that latency between these countries is not clearly better than to other countries; in this case operators from those countries should start thinking about getting better intra-cluster connectivity, or choose to join another cluster. At a glace we can say that region 2 has the weakest connectivity of all.
Additionaly, by looking at cluster #3, we can see that it has good intra-cluster latency values, but high inter-cluster ones. This means that the countries belonging to this cluster (Argentina, Brazil, Paraguay, and Uruguay) have good connectivity between them, but still need to get the cluster closer to the region (cluster #3 is at ～215 ms from the rest of the clusters).
Finally, clusters #0 and #1 don't have a clear boundary between them, as their inter-cluster and the edge 0 <--> 1 have very similar values. Looking at the map we see that geographically they are very close and with the geographic boundaries not well defined, as the rest of the cases. That means clusters in Central America and the Caribbean have good ICMP connectivity!
By looking at the graph's edge values you could draw similar conclusions.
We thought about a way to get a clear view of how bad connectivity links could be detected, as our connectivity graph G only clustered based on good connectivity relationships. Based on the fact that G has its edges (relations) with RTT values, we transformed it in a new graph H, having its edges with 1/RTT values. In this way, the by feeding the same clustering algorithm with graph H we could find relationships between countries which are poorly connected between them. Some interesting cases were found, including a couple of neghbouring countries that show poor connectivity between them:
Argentina and Chile
Colombia and Venezuela
Brazil and Peru
Still, despite being neighbours, the pairs of countries mentioned above don't share the coast between them. The connectivity between these pairs of countries is most likely following well-known "coast" cables, which connect countries belonging to the same coast. That means that part of its traffic is being routed somewhere far, and that direct connections are not present or are not being used.
This study leaves us with some open questions regarding connectivity...Is there one index that could summarize country-level connectivity health, based on our measurements? Do you see any physical connections that are not being fully used? Are there any links that are escaping our measurements platform? Are software probes worth using (I think they are, specially in regions that are under-represented in mainstream platforms such as Atlas or M Lab)? Please comment!