I compiled some statistics about the distribution of one-way minimum latencies across the network for different network sizes in hope that it may serve as a helpful reference when certain design decisions are considered.
SAFE, with 8 close-node connections, forms a random 8-regular graph, and from this recent paper and these slides it seems that 1) the right way to compute the average hop count for such a network of size n
is x = log(n)/log(8)
, and that 2) it will be more and more narrowly centered around x
for sufficiently large networks (i.e. most nodes are almost exactly the same distance away from each other) so we can model the distribution of the hop counts very simply.
Methodology. I distributed one million nodes across the globe based on population (I used the quarter-degree grid from here), then I measured the distance between ten million randomly selected pairs to acquire a sufficiently large sample of distances to draw from. Please note that those one million nodes are not about the network size.
After this, I generated ten million samples for each network sizes: for each sample, I took a normally distributed random number with mean set to the average hop count and standard deviation set to 1, rounded it, and then I summed up this many random samples from my previously generated 10 million random distances.
I may update this post with proper density graphs later.
Caveats:
-
I didn’t account for differences in access to technology (i.e. wealth)
-
I pretended there was a direct telecommunication line between any two nodes, the shortest possible around the globe, which I treated as a perfect sphere.
-
I set the speed to the speed of light in vacuum, so I worked with the lowest latencies that are physically possible without crossing the earth’s body. For realistic values, these numbers must be multiplied with the velocity factor of copper or fiber optics (the latter of which is especially low, around 0.7), and IP routing delays must also be taken into account.
-
The average hop distance calculation only works for larger networks, so the values for smaller ones (under a few hundred thousands maybe?) are not to be trusted much.
1,000 2,500 5,000 ---------------- ---------------- ---------------- hop: 3.322 hop: 3.763 hop: 4.096 min: 0.000 ms min: 0.000 ms min: 0.000 ms 05%: 22.660 ms 05%: 30.565 ms 05%: 36.636 ms 10%: 32.340 ms 10%: 40.971 ms 10%: 47.533 ms med: 75.177 ms med: 85.701 ms med: 93.662 ms avg: 78.245 ms avg: 88.634 ms avg: 96.518 ms 90%: 127.885 ms 90%: 139.927 ms 90%: 149.046 ms 95%: 144.227 ms 95%: 156.679 ms 95%: 166.048 ms 97%: 155.098 ms 97%: 167.812 ms 97%: 177.427 ms 99%: 176.191 ms 99%: 189.340 ms 99%: 199.358 ms max: 334.499 ms max: 359.320 ms max: 371.453 ms std: 37.107 ms std: 38.470 ms std: 39.472 ms 10,000 25,000 50,000 ---------------- ---------------- ---------------- hop: 4.429 hop: 4.870 hop: 5.203 min: 0.000 ms min: 0.000 ms min: 0.000 ms 05%: 42.754 ms 05%: 50.913 ms 05%: 57.205 ms 10%: 54.093 ms 10%: 62.851 ms 10%: 69.516 ms med: 101.563 ms med: 111.980 ms med: 119.939 ms avg: 104.337 ms avg: 114.700 ms avg: 122.579 ms 90%: 158.072 ms 90%: 169.980 ms 90%: 178.985 ms 95%: 175.388 ms 95%: 187.689 ms 95%: 196.997 ms 97%: 186.946 ms 97%: 199.435 ms 97%: 208.927 ms 99%: 209.149 ms 99%: 222.139 ms 99%: 231.969 ms max: 348.279 ms max: 377.982 ms max: 389.120 ms std: 40.433 ms std: 41.684 ms std: 42.604 ms 100,000 250,000 500,000 ---------------- ---------------- ---------------- hop: 5.537 hop: 5.977 hop: 6.311 min: 0.000 ms min: 0.383 ms min: 2.609 ms 05%: 63.392 ms 05%: 71.767 ms 05%: 78.097 ms 10%: 76.118 ms 10%: 84.995 ms 10%: 91.715 ms med: 127.805 ms med: 138.273 ms med: 146.143 ms avg: 130.397 ms avg: 140.819 ms avg: 148.645 ms 90%: 187.989 ms 90%: 199.868 ms 90%: 208.735 ms 95%: 206.237 ms 95%: 218.468 ms 95%: 227.720 ms 97%: 218.358 ms 97%: 230.836 ms 97%: 240.195 ms 99%: 241.756 ms 99%: 254.605 ms 99%: 264.315 ms max: 424.117 ms max: 413.486 ms max: 416.820 ms std: 43.526 ms std: 44.687 ms std: 45.549 ms 1 million 2.5 million 5 million ---------------- ---------------- ---------------- hop: 6.644 hop: 7.084 hop: 7.418 min: 4.094 ms min: 8.333 ms min: 10.930 ms 05%: 84.533 ms 05%: 92.949 ms 05%: 99.410 ms 10%: 98.478 ms 10%: 107.367 ms 10%: 114.139 ms med: 154.081 ms med: 164.477 ms med: 172.324 ms avg: 156.531 ms avg: 166.891 ms avg: 174.716 ms 90%: 217.665 ms 90%: 229.456 ms 90%: 238.314 ms 95%: 236.881 ms 95%: 249.055 ms 95%: 258.164 ms 97%: 249.553 ms 97%: 262.029 ms 97%: 271.274 ms 99%: 274.005 ms 99%: 286.877 ms 99%: 296.459 ms max: 477.599 ms max: 449.907 ms max: 473.298 ms std: 46.382 ms std: 47.513 ms std: 48.315 ms 10 million 25 million 50 million ---------------- ---------------- ---------------- hop: 7.751 hop: 8.192 hop: 8.525 min: 13.118 ms min: 14.255 ms min: 20.720 ms 05%: 105.935 ms 05%: 114.545 ms 05%: 121.092 ms 10%: 121.035 ms 10%: 130.041 ms 10%: 136.894 ms med: 180.303 ms med: 190.642 ms med: 198.541 ms avg: 182.630 ms avg: 192.960 ms avg: 200.830 ms 90%: 247.259 ms 90%: 258.833 ms 90%: 267.686 ms 95%: 267.321 ms 95%: 279.270 ms 95%: 288.401 ms 97%: 280.607 ms 97%: 292.761 ms 97%: 302.036 ms 99%: 306.161 ms 99%: 318.727 ms 99%: 328.219 ms max: 485.252 ms max: 490.940 ms max: 513.454 ms std: 49.125 ms std: 50.130 ms std: 50.907 ms 100 million 250 million 500 million ---------------- ---------------- ---------------- hop: 8.858 hop: 9.299 hop: 9.632 min: 20.335 ms min: 12.439 ms min: 27.559 ms 05%: 127.585 ms 05%: 136.357 ms 05%: 142.971 ms 10%: 143.732 ms 10%: 152.845 ms 10%: 159.746 ms med: 206.431 ms med: 216.840 ms med: 224.698 ms avg: 208.677 ms avg: 219.068 ms avg: 226.901 ms 90%: 276.473 ms 90%: 288.148 ms 90%: 296.859 ms 95%: 297.393 ms 95%: 309.409 ms 95%: 318.388 ms 97%: 311.207 ms 97%: 323.509 ms 97%: 332.605 ms 99%: 337.736 ms 99%: 350.449 ms 99%: 359.818 ms max: 526.276 ms max: 541.583 ms max: 562.844 ms std: 51.672 ms std: 52.667 ms std: 53.374 ms 1 billion 2.5 billion 5 billion ---------------- ---------------- ---------------- hop: 9.966 hop: 10.406 hop: 10.740 min: 35.537 ms min: 40.018 ms min: 42.853 ms 05%: 149.582 ms 05%: 158.358 ms 05%: 164.969 ms 10%: 166.688 ms 10%: 175.805 ms 10%: 182.750 ms med: 232.587 ms med: 242.949 ms med: 250.882 ms avg: 234.768 ms avg: 245.134 ms avg: 253.011 ms 90%: 305.638 ms 90%: 317.235 ms 90%: 326.001 ms 95%: 327.385 ms 95%: 339.334 ms 95%: 348.350 ms 97%: 341.777 ms 97%: 353.901 ms 97%: 363.060 ms 99%: 369.208 ms 99%: 381.737 ms 99%: 391.377 ms max: 581.850 ms max: 564.087 ms max: 595.455 ms std: 54.092 ms std: 55.053 ms std: 55.780 ms