Routing





Routing

An address does you no good if you have no way of getting there. You need wheels (and likely gas money).

The "wheels" of the Internet is the Transport Control Protocol/Internet Protocol, or as it is more commonly known, TCP/IP.

TCP/IP sees everything in terms of packets. Instead of moving data in a long stream like unraveling a roll of movie film, the protocol breaks it into pieces. Having a bunch of short chunks automatically ensures that there will be breaks in the flow of data during which other computers can negotiate for time to send their own packets. At the distant end of the connection, the packets get reassembled to put the data back into its original form.

Each has a predefined structure, with a header that contains address, routing, and control information and a payload of data. The payload moves through the network intact and unexamined, so its content is irrelevant to the network. Packets might contain anything, from program code for Unix computers, to bits of video images, to cream cheese on celery (if you could fit that into computer data).

Moving packets around the Internet is a lot like modern psychotherapy. It is nondirected. The packets simply ramble around until they happen upon the place where they are going. They may follow any one of a near infinite number of paths between the two communicating computers. The Internet imposes no fixed structure. That's one of its greatest strengths—because messages don't have an assigned path, an interrupt of any path won't stop data from flowing. It simply finds another path to its destination.

Of course, having packets floating all over the Internet is not the most efficient way of moving information. Consequently, servers build tables of paths to send the messages along, routing them according to IP address. When a message first goes to an IP address, an Internet server checks the path it followed and can reuse the same path (or start the packet along its way using the same path) for subsequent packets.

The wonderful thing about TCP/IP is that any computer system can use it. Microprocessor types, architectures, and programming languages mean nothing to TCP/IP. Think of TCP/IP packets as being the shipping containers of the Internet. A computer at one end of the connection fills a packet up, and another machine at the far end of the connection empties it out. It doesn't matter to the freight line what's inside (although customs may take a peek if it crosses borders—the Internet's equivalent of customs is the firewall). Using TCP/IP, the Internet will carry anything. It doesn't matter whether it's useful or even compatible with the recipient system. That's a matter left to the two communicating systems. The network doesn't care.


     Python   SQL   Java   php   Perl 
     game development   web development   internet   *nix   graphics   hardware 
     telecommunications   C++ 
     Flash   Active Directory   Windows