Here’s an idea that didn’t work out. I’m documenting it anyway in hopes that someone else can do a better job, or salvage something useful.
Let’s talk about traceroutes. Any two computers on the internet are connected by at least one path: that’s what makes them on the internet. A path is some way for Internet Protocol data to move. The radio connection between a laptop and a wireless router is a path; a cable between a server and the network hardware in its data center is a path; with enough effort, pigeons are a path. Everything that goes over the internet uses a chain of links like these.
Looking at the chain is called tracerouting. If I traceroute the official site of Kyzylorda, Kazakhstan, from this coffeeshop in Portland, we can see the data go from Portland to Seattle to Denver to Chicago to DC to Paris to Frankfurt to Düsseldorf to Astana to Almaty. That’s just what’s clear from looking; if we dug deeper we could probably find out where some of the points listed as only IP addresses (e.g., 184.108.40.206) are.
How can we dig deeper? What I tried was the free, city-level version of the MaxMind GeoIP database. It lists a place for about 1.7 million IP ranges. I fired up a little EC2 instance in US-East (Virginia) and tracerouted the first address in each range. With some light postgres/postgis work I made a linestring from each traceroute, leaving out places for which the geoIP database didn’t list a specific city – they tended to be countries or other large regions, where the lat/lon had a lot of false precision.
Like pretty much everyone who hears about them, I’m fascinated by long fiber optic cables. My favorite prose treatment yet is by the London-based code artist James Bridle in The Secure Transport of Light. These are the trunk lines of the intercontinental internet, but we – I, as an ordinary citizen without special access or a solid week of research – don’t know exactly where they run or which IP addresses correspond to which.
One called SEA-ME-WE 3 is half as long as the radius of Jupiter and makes 39 connections between northern Germany, Western Australia, and South Korea. So far as I know, there is no public, authoritative chart of its route. We have heard that its Burmese branch was damaged this summer; we have heard that the Five Eyes tapped it. But even if we happened to know IP addresses on either end of it, we would not know how to draw it on a map as more than an educated guess.
This is one big problem with using the free geoIP database as my only source of location. The other is that even with 1.7 million places, it’s missing a lot. I certainly can’t blame the database maintainers for this; they provide the data for free, and have no plausible way of getting a good geotag for data centers owned by reflexively secretive corporations.
And so the map I made doesn’t ask or answer anything particularly interesting for me. There are things I could fix to make it less of an information-design joke: figure out why more traffic than seems plausible uses Seattle, fade the lines into each other more smoothly, perhaps leave off the first hop, perhaps bundle the lines, and so on. But I think this is a failed experiment.
Maybe it’s an illustration of partialness: how we see the ends of many strings, and know they connect, but can’t see exactly how.
I think there’s something here. I can’t find it right now. I hope you do.