image provider

Faster Internet Routing


Disclaimer

This essay does not describe an existing computer program, just one that should exist. This essay is about a suggested student project in Java programming. This essay gives a rough overview of how it might work. I have no source, object, specifications, file layouts or anything else useful to implementing this project. Everything I have prepared to help you is right here.

This project outline is not like the artificial, tidy little problems you are spoon-fed in school, when all the facts you need are included, nothing extraneous is mentioned, the answer is fully specified, along with hints to nudge you toward a single expected canonical solution. This project is much more like the real world of messy problems where it is up to you to fully the define the end point, or a series of ever more difficult versions of this project and research the information yourself to solve them.

Everything I have to say to help you with this project is written below. I am not prepared to help you implement it; or give you any additional materials. I have too many other projects of my own.

Though I am a programmer by profession, I don’t do people’s homework for them. That just robs them of an education.

You have my full permission to implement this project in any way you please and to keep all the profits from your endeavour.

Please do not email me about this project without reading the disclaimer above.

This is an unusual project is that it requires more the skills of a salesman than a programmer. In fact, you could complete it successfully without any programming skills at all.

How Things Work Now

The Problems

Solutions

My solution has four parts:

  1. Creation of a new .global TLD (Top Level Domain), e.g. google.global which explicitly requests automatic server selection. Only companies with servers in more than one country would be allowed to use it. It would thus have the prestige of an international company.
  2. Modifying the DNS (Domain Name Service) protocol to arrange that traffic to the same domain e.g. google.global would be routed directly to the corresponding server for the geographical region (usually country). In other words different routers would have different destinations for the same domain. Routers would look at the routing rules and figure out which one applied to it. Presumably it would take decades before all routers became compliant, so servers would still have to handle legacy misdirected traffic and manually reroute it.
  3. Until such DNS-based auto-routing is available, write some localisation classes for JSP to configure links to google, blogger and other major international players so that the link to the server closest to the client. HTTP (Hypertext Transfer Protocol) will tell you the country of your client. There also ways to glean geographical information from the client’s IP (Internet Protocol).
  4. Another approach would be to get browsers to keep track of permanent redirects and automatically apply them. That way google.com would only need no redirect once to google.ca. You would have to convince all the browser makers to include this feature. With BrokenLinks, I am inching toward a fully automatic system to apply permanent redirects to my website. But this does not help when different clients need different servers for the same service.

Each of the four parts is useful in its own right. (1), (2) and (4) are primarily lobbying. Studying DNS to see precisely how the extension would be implemented would help. The features may already exist, but lie largely unused. Modifying BIND to support it on a demo network would help convince people the change was not that disruptive. You have to design it so that all still works with non-compliant routers and servers. (3) is a fairly simple programming project that requires no political finagling. It is mainly a matter of maintaining the tables of all the servers.

I think the way to approach this would be to sell the idea to a few people in various international companies such as Google, then have them lobby for the changes to DNS

You may have to get a job at a company with international servers, then seed the idea. You probably will not get far persuading on the grounds of halving acceses time or halving number of transactions that need to be processed. Most people say think to themselves. It is good enough now. Don’t change anything. It might break. There are more important priorities. You will have to sell the idea on increased reliability. Even if hackers take down the centrol server, the international network keeps on chugging.

Extensions

This same idea, of putting more intelligent by-country routing out onto the net could have other applications such as load balancing. If you are going to go to all the work of modifying DNS, perhaps you need to think about other ways of distributing intelligent routing decisions to more directly route messages.

I have been told people are already using DNS to direct requests to the nearest server and to do load balancing tricks. Oddly though, Google does not appear to use them. Similarly many sites with mirrors make you manually select the mirror. So there may still be merit is localising links to multiple servers in your JSP apps.

SPDY

This page is posted
on the web at:

http://mindprod.com/project/routing.html

Optional Replicator mirror
of mindprod.com
on local hard disk J:

J:\mindprod\project\routing.html
Canadian Mind Products
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

IP:[65.110.21.43]
Your face IP:[3.89.56.228]
You are visitor number