Sunday, August 28, 2011

The Internet: how are those tubes working anyway?

I am finding myself dealing with an unexpected question. Does the Internet work? You know, the whole moving data from place to place. Is it really working?

Well, of course it is. But perhaps not for everyone. I am trying to find out why we often have problems reaching our data centers. The company I work for sells software for people learning English. I think this is the root of the problem. There might be 2 billion people on the planet with an interest in learning English, but not too many of them live near a T1. Why can't I reach my data centers? Maybe because they are in places like Ulan Bator and Ho Chi Minh City.

Why do we need all these data centers? Often it is because we have to have an in-country data center to avoid having all of our customers take a "Golden Shield" hit. If customers in China, or Vietnam or Saudi Arabia, or other places, need to get content from outside the country, the latency turns out to be very high. Get the content into an in-country data center and your performance problems go away.

But here is an odd thing. We have customers in Jakarta that have connect problems. Getting an ISP in Jakarta does not fix it. Turns out that a connection from one part of Jakarta to another part of Jakarta is slow and unreliable. Serving data from Tokyo to Jakarta, however, is fast and reliable. Hm.

Actually I am interested if anyone has ideas about how to measure connectivity more broadly. One might think the net would have distributed sources of information about connectivity, but it does not seem to be so. One can measure pings, but one needs to keep track of a lot of pings to figure anything out. One can run traceroutes. Or not. Somebody in Mongolia blocks traceroutes, for example. And traceroutes do not necessarily follow the same routes that regular traffic will. Or you can buy reports about connectivity, if you have spend tens of thousands on them or sign up for fairly expensive services. And Akamai and other services work great, assuming you want to sell something to the creme de la creme of the First World. And that is, after all, most of the businesses out there.

I wonder if there is a way to collect connectivity information in a distributed, peer-to-peer manner. Perhaps we can use this Internet thing for that, too. Or is something available and I just have not hit upon it? Does anyone run "weather reports" for the Internet? Could it be accessed as a utility? Looking for suggestions, questions, thoughts, ridicule, insults, jibes, or whatever works for you.