Transmission Control and the Internet Protocols

IN ORDER TO TRANSMIT data and have it arrive in its intended pattern, the Internet utilizes a system wide standard known as TCP/IP, or Transmission Control Protocol/Internet Protocol When a user sends data to another user, such as an email message, the email server transmits the data in snippets of information known as packets (packet transmission is much faster than sending one's data as a single chunk). Suppose you wanted to email a friend the following message:

I see you stand like greyhounds in the slips,
Straining upon the start. The game's afoot:
Follow your spirit, and upon this charge
Cry 'God for Harry, England, and Saint George!'

When you send this message, TCP transmits it in packets. In this particular case, each line could be divided into several packets. But due to numerous networking technical difficulties, the packets don't always arrive in the correct order. Without correction, your friend might get this message instead:
Follow your spirit, and Saint George!'
like greyhounds in the slips, The game's afoot:
and upon this charge I see you stand
Cry 'God for Harry, England, Straining upon the start.

While some might argue that revisionist Shakespeare can be fun, trying to sort out 256K of shuffled program code isn't. This is where TCP comes in. The protocol "memorizes" the data's original order; as the packets arrive at the other end, TCP makes sure everything fits back in the right order.

As for the IP part of TCP/IP, it's pretty simple. Every time data gets sent over a network, it has a sender's address and a receivers address. For example, my email address is IP is the standard formula for adressing messages - in this case, the message should be sent to acarvin, who uses a mail server called server, at an institution named CNIDR, which happens to be a non-profit organization. Every email address and computer on the network has a name based on IP. It's just like requiring a name, address, city, country and zip code on a regular piece of mail. Without a standardized protocol, messages would wander all over the place without knowing exactly where there destination is.

Additionally, in order to catch and correct errors in data transmission, TCP/IP creates what is known as a checksum. Let's say you're sending some more email to someone. Each character that you type in, when converted to code, is comprised of 8 bits of information (called a byte), in the form of either 0's or 1's. If a glitch occurs during the transmission and one of the 1's is converted into a 0 accidentally, the computer on the other end will reproduce the wrong letter. To avoid such mistakes, an extra bit, a checksum, is placed at the end of the 8 bits of data. The type of checksum - a 0 or a 1 - is determined by the total number of 1's in the byte, which must add up to either an odd or even number. This outcome is then called parity. The computer on the other end expects all bytes to have a certain parity, so if the outgoing byte of information does not equal that parity, a 1 is added to the data stream.

Granted, this can be a bit difficult to grasp. Take a look at this example. I want to send two bytes of information to another computer: 01110101 and 10000111. You'll notice the total number of 1's in the first byte is odd (five 1's) and in the second, it's even (four ones). To make sure they arrive as intended, my network assigns a parity to all data that is transmitted (it can be even or odd, but for example's sake, we'll use odd). This means for the first byte I send out, my computer would put a 0 at the end of the byte, so the total of 1's would remain the same and thus still be an odd number. The second byte, however, is even, so the computer will add a 1 at the end of the byte, changing the byte to odd. The computer receiving my data expects all of my transmission to have odd parity, so if a glitch changes a digit of data, it then changes that byte to even parity, which is incorrect. The receiving computer would then ask the computer to retransmit. (Note: If more than one bit of information gets messed up, you could end up with the wrong data but with the proper parity. Fortunately, this is fairly uncommon.)

In sum, IP/TCP is not unlike your friendly postman - it make sures your stuff gets to the right place and in one piece. It may not be a simple process, but it certainly makes the average user's life a lot less frustrating.

Tell me about the history of the Internet.
Tell me about the civic NII vision.
Tell me about the commercial NII vision.
I'd like to see some telecommunications resources.

Visit the Edweb DictionaryReturn to the EdWeb Home RoomSend comments to EdWeb

EdWeb: Exploring Technology and School Reform, by Andy Carvin. All rights reserved.