The Map of the Internet

Some additional information on the map in today’s comic:

The labeled websites (“Google”, “Flickr”, “Slashdot”, etc) are just based on the location of the particular server I got when I pinged the site from my home machine on the day I was working on the map. Each site there has many servers and mirrors, and the IP of each may change from day to day. But their location is actually based on both the first and second quad — although the map is drawn in the style of a geographic map, with wobbly borders, it’s laid atop a regular grid which can be extended fractally downward. When I was putting down the location of a server for a particular website, I worked out where within the grid it should fall. This isn’t really for the purpose of telling you anything useful about that website, but rather to suggest that IPs can be placed as unique points on this map. Everything here was done by hand across a couple large sheets of paper, and it’s not trying to be completely accurate in all the details (although I did my best). It’s more of a survey than a practical road map.

The fractal behind the comic is a mapping of the integers to a plane (it could be extended, I assume, to the real numbers). I came up with it in 1999 when I was trying to figure out a way to graphically show the contents of long blocks of computer memory, which is basically linear. I wanted a mapping that would show strings of consecutive addresses as contiguous, compact blobs, and that would work on all scales. I played with and coded a couple mappings, but this was the only one I found that really fit that qualification.

Edit: The fractal is the Hilbert Curve, discovered in 1887. I had done some poking around but had never seen it before. Thank you, folks here and on IRC. It cannot be extended to the reals, but rather to the binary fractions (a subset of the rationals). This lets you get arbitrarially close to any number you want (and cover all the IEEE floating points).

I never come up with an algorithm to do the mapping — that is, a function that would take an integer and return the pair of coordinates. Years later, several months ago, I remembered the mapping and showed it to my cousin, who looked at it for a while and worked out a Scheme algorithm to do the mapping both ways.

Edit: I will be posting a version of the algorithm ASAP.

However, I also posed the problem as a puzzle to the forums: (Problem) (Solution)

I posted a sample of the mapping mangled into an integer-to-integer function and asked people to come up with the next set of numbers. The mangling was in part to make it less obvious what they were playing with and in part to encourage a different way of thinking about the problem. I informally offered two xkcd t-shirts as prizes for whoever provided the first correct answer and the most elegant algorithm. BaldAdonis very quickly took apart the problem (very impressively) and will — once I’m finished with this batch of shipping — get at least one t-shirt (depending on whether someone else finds an algorithm to do the mapping more elegantly). The other shirt is still up in the air. I’ll leave it open for the next week or two, and if you want to send me a piece of elegant and easily-executed code that does this mapping — taking in a number and returning the coordinates (bonus points for the reverse operation) — you’ll have a shot at winning a free xkcd t-shirt of your choice. (Note: for the next few days I’ll be working on t-shirt orders and then I have a wedding to go to, so I may not be able to check over your code until next this week.)

Suggestions for future work: When I was constructing the map, I also did some ping surveys of the various /8 networks to see how densely populated with active hosts each one was. The density data didn’t make it into the simpler final map, but that’s just one of many data sets one could slap up on a map like this to visualize the ‘net in an interesting way.

141 thoughts on “The Map of the Internet

  1. I was searching for an article for my research and i suddenly visited this website and got a lot of informative data from here which proved quiet helpful for me, i am glad to get it.

  2. Der Bye Bra Klebe-BH besteht aus selbstklebender Folie in
    Hufeisenform, welche es ermöglicht die Brustwarzen um einige
    Zentimeter nach oben zu positionieren

  3. Der Bye Bra Klebe-BH besteht aus selbstklebender Folie in

    Hufeisenform, welche es ermöglicht die Brustwarzen um einige

    Zentimeter nach oben zu positionieren

  4. All in all, this isn’t a big deal and I don’t think there’s anything particularly evil about it. It does make it hard to use Google hits as an accurate gauge of anything, but I suppose if you’re trying to study something by seriously analyzing Google result counts, you have bigger methodological problems to worry about.

  5. Partition Do you know what I want to talk a little bit about it. Partition is a wall that separates space from each other, if you want to gain more information go to the following website

  6. individuals to come up with the next set of figures. The mangling was in aspect to create it less apparent what they were enjoying with and in aspect to motivate. executive desk

  7. The marked si are just in accordance with the place of the particular server I got when I pinged the website from my house device on the day I was operating on the map. official sites

  8. I have been an active customer of for many years and have NEVER been anything but well pleased with their prices and service. very good value for your money. It will do a few, then has problems. I really wanted to like these headphones, and I was uncomfortable with the price. all of these for sale

  9. This is admittedly annoying, but not impossible to deal with. I have had Buck knives for a long time. His assuredly manipulative means of extracting the story from convicted murderer, Perry Smith, doesn’t so much question the ethics of a reporter butter stroking his subject in exchange for information, as I have heard of this film, but instead justifies a very excellent investigative reporter feeding the public’s insatiable desire to know what happened that night in November, 1959. I use this until my children are at least 4 years old. Now swimming, so these putty buddies fit firmly and stop water getting in which can be painful. Surprise! The indicator said that my filter was in perfect working order. I ordered 1 6.5 oz but received 3!!! That was awesome. It worked like a charm. This was and interesting and captivating story which I really enjoyed and hope everyone else does now, and in the future. ***update on this problem*** I sent an email to get it returned through BabyAge and because it was two days past the 30 day return policy they wouldn’t do anything.

  10. i really enjoyed to visit this is a very nice site and i book mark ur site.

    This is a nice content with lots of information. It’s a very excellent idea for raising money for charity. I think honest review is more important for authors. I like your whole discussion. Keep it up.
    Keep blogging.ur site is good.and finelly ur site going to in high position

    This is a really good read for me. Must agree that you are one of the coolest blogger I ever saw.
    Thank you for this very interesting infographic ! I’m talking about Google Venice on my blog.

  11. Still, #xkcd-signal is a community path — if you just want to execute actions with the moderator/concept, please use #moderator-sandbox. visit the website

  12. Good post on the map of the internet and the schema that they used. It is a safe guess that the items you have linked to gives us more explanations. Well done.

  13. Years later, several months ago, I remembered the mapping and showed it to my cousin, who looked at it for a while and worked out a Scheme algorithm to do the mapping both ways. Scott Stratten

  14. This could be one specific with the most beneficial blogs We have ever arrive across on this subject. Really Wonderful. I’m also an expert in this topic so I can understand your hard work.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>