Past Issues of Government Technology

Computer Talk

Decoding the secret language of computers.

by / October 31, 1998 0
On the face of it, it seems so simple. It started with stand-alone fax machines. Place the paper in the slot, type in the phone number and press the start button. The paper runs through and a copy spits out on the other end. Simple. On most machines you could hear the dialing and that odd static sound followed by a series of other strange noises. It sounded like the two machines were talking to each other; in fact, they were. Did you ever wonder why your fax machine could call a machine made by another vendor, send it a document ... and it worked?

In the early days of fax machines, you may have had this experience: You were certain you did everything right. You cautiously stuck the papers in the correct way. You dialed that number several times, very carefully. You heard the right noises on the phone line. But for some reason the magic just didn't happen.

You may not have realized it at the time, but you were experiencing the wonderful world of network and communications protocols. The sending fax machine upon connection attempts to "talk" to the receiving machine. If the receiving machine understands what the sending machine is saying, it cooperates and receives the fax.

Definitions

Let's take a look at some definitions for the word protocol. These are from :

1. (Computer science) rules determining the format and transmission of data (synonym: communications protocol).

2. Forms of ceremony and etiquette obs-erved by diplomats and heads of state.

3. Code of correct conduct, e.g. safety protocols or academic protocol.

From is this information on protocol: A set of formal rules describing how to transmit data between devices, especially across a network. Low-level protocols define the electrical and physical standards to be observed, such as error detection and correction of the data stream. Higher protocols deal with the data formatting, including the syntax of messages, the terminal-to-computer dialogue, character sets, sequencing of messages and so on.

A protocol is a sort of language by which devices communicate with each other. A device is any machine or component connected to a computer or telecommunication machine (such as a fax machine). In the context of protocols, we're specifically talking about devices communicating with other devices, with the protocol facilitating the exchange of communication.

In the case of fax machines and computers, two common communications devices are modems and network cards. The modem (short for modulation-demodulation, see "A History of Communications Networks," Gover-nment Technology, July 1998) is used to exchange communications across telephone lines. The network card (Network Interface Card or NIC) allows the exchange of data between computers that are linked via network cables into a local area network (LAN) or other kind of network.

Like any communication, a modem or network communication starts with two devices -- the one wishing to send the communication and the one intended to receive it. The sending device (modem) uses a channel (the telephone line and telecommunications network it is connected to) to initiate a communication to the intended receiving device. The sending device follows rules governing how it converts data for transmission down the channel. It expects the receiving device to understand these rules and uses them to accept the data and decode it after reception.

If a channel does not support the protocol used by the sending device, no transmission occurs. As a practical matter, this is rather unlikely. At this level, we're talking about something like buying a modem for your computer and plugging it into your stereo system, assuming you could jam that plug in there somewhere. Devices are generally standardized for the channels on which they are expected to be used.

Phone lines and network cables are designed
to be able to carry many different protocols. Assuming a device is connected to the expected channel, the likelier source of problems is that the sending device may be using a protocol that the receiving device doesn't understand. Hence no communication and no data transfer.

The Nitty Gritty

A protocol usually contains the following elements:

* The type of error checking to be used. "Error checking" is a set of complicated computations that automatically check for errors in the integrity of the data being passed. Usually an attempt is made to correct or otherwise account for any errors detected. These techniques can get very sophisticated.

* Data compression method. Data compression is a technique for squeezing information into chunks smaller than the original for transmission over a channel. The protocol governs how this is done, how small the chunks will be, and how the data will be "unpacked" at the receiving end. Different protocols will handle the compressing and decompressing differently and with varying efficiency.
* How the sending device will indicate that it has finished sending a message.
* How the receiving device will indicate that it has received a message.

Communications protocols, which are often built into modems, include elements that define such things as transmission speed and whether the devices are capable of one- or two-way communication.

Protocols to Know and Love

While there are various modem-specific protocols, with Tolkienesque names such as Xmodem and Kermit, their functionality is usually transparent, and today's user is unlikely to directly encounter them. Other protocols, in particular those that operate on the World Wide Web, are far more likely to make your acquaintance. Some of these are:

* Internet Protocol (IP), which works with chunks of data called packets. The sending device breaks the information to be sent into a number of these packets and pushes them into an IP channel. Each packet contains the address to which it is being sent and information that allows the receiving device to tell whether it has received all the packets. The IP-compatible receiving device then assembles all the packets into the original form. One aspect of this approach is that each packet can move through the channel independent of the other packets.

* TCP/IP (Transmission Control Protocol/Internet Protocol), a "multi-protocol" protocol. The TCP establishes a connection between two devices to exchange IP-compliant packets. TCP guarantees both the delivery of data back and forth and that the packets will be delivered in the same order they were sent. TCP/IP is built into the UNIX operating system. It's the protocol of the Internet, and most network operating systems support it. As such, the argument could be made that it has become the standard protocol for transmitting data over networks.

* HTTP (HyperText Transfer Pro-tocol), the underlying protocol used by the World Wide Web. It is compatible with and runs over TCP/IP channels. HTTP provides the rules that define how messages are formatted and transmitted across the Web. It also controls how Web browsers respond to various commands, such as when entering a uniform resource locator (URL), the addressing system for Web servers, into the browser. Submitting a URL via a Web browser actually sends an HTTP request across the Internet to the selected address (a Web server), which tells the server what page is being requested.

One downside to this protocol is that it is stateless -- once a request is made to the Web server and a response is received, the server has no memory of the request or where it came from. A second request following immediately from the same browser is treated as a new request. This makes it difficult to deploy interactive applications on the Internet. This has spawned many other products and solutions to get around this limitation.
able to carry many different protocols. Assuming a device is connected to the expected channel, the likelier source of problems is that the sending device may be using a protocol that the receiving device doesn't understand. Hence no communication and no data transfer.

The Nitty Gritty

A protocol usually contains the following elements:

* The type of error checking to be used. "Error checking" is a set of complicated computations that automatically check for errors in the integrity of the data being passed. Usually an attempt is made to correct or otherwise account for any errors detected. These techniques can get very sophisticated.

* Data compression method. Data compression is a technique for squeezing information into chunks smaller than the original for transmission over a channel. The protocol governs how this is done, how small the chunks will be, and how the data will be "unpacked" at the receiving end. Different protocols will handle the compressing and decompressing differently and with varying efficiency.
* How the sending device will indicate that it has finished sending a message.
* How the receiving device will indicate that it has received a message.

Communications protocols, which are often built into modems, include elements that define such things as transmission speed and whether the devices are capable of one- or two-way communication.

Protocols to Know and Love

While there are various modem-specific protocols, with Tolkienesque names such as Xmodem and Kermit, their functionality is usually transparent, and today's user is unlikely to directly encounter them. Other protocols, in particular those that operate on the World Wide Web, are far more likely to make your acquaintance. Some of these are:

* Internet Protocol (IP), which works with chunks of data called packets. The sending device breaks the information to be sent into a number of these packets and pushes them into an IP channel. Each packet contains the address to which it is being sent and information that allows the receiving device to tell whether it has received all the packets. The IP-compatible receiving device then assembles all the packets into the original form. One aspect of this approach is that each packet can move through the channel independent of the other packets.

* TCP/IP (Transmission Control Protocol/Internet Protocol), a "multi-protocol" protocol. The TCP establishes a connection between two devices to exchange IP-compliant packets. TCP guarantees both the delivery of data back and forth and that the packets will be delivered in the same order they were sent. TCP/IP is built into the UNIX operating system. It's the protocol of the Internet, and most network operating systems support it. As such, the argument could be made that it has become the standard protocol for transmitting data over networks.

* HTTP (HyperText Transfer Pro-tocol), the underlying protocol used by the World Wide Web. It is compatible with and runs over TCP/IP channels. HTTP provides the rules that define how messages are formatted and transmitted across the Web. It also controls how Web browsers respond to various commands, such as when entering a uniform resource locator (URL), the addressing system for Web servers, into the browser. Submitting a URL via a Web browser actually sends an HTTP request across the Internet to the selected address (a Web server), which tells the server what page is being requested.

One downside to this protocol is that it is stateless -- once a request is made to the Web server and a response is received, the server has no memory of the request or where it came from. A second request following immediately from the same browser is treated as a new request. This makes it difficult to deploy interactive applications on the Internet. This has spawned many other products and solutions to get around this limitation.

* FTP (File Transfer Protocol), one of the first to be used on TCP/IP networks and precedes the use of HTTP. It has no capacity to display graphics, as is possible on the Web under HTTP, but excels at transferring files between machines, which is why it remains in regular use today. Some browsers have the ability to run FTP, and fully featured FTP freeware and shareware is readily available at places like and .

* NNTP (Network News Transport Protocol), used to post and retrieve messages from USENET, a global bulletin board system that can be accessed through the Internet (TCP/IP). Most modern Web browsers have NNTP-capable "news reader" software built in. USENET contains thousands of topic-oriented discussion "newsgroups" accessed by millions of people a day.

This overview is intended to strip some of the mystery from protocols. As you can see, protocols are the lifeblood of modern communications networks, governing everything from Internet addresses to downloading files.

John Stanard is a senior consultant with webworld studios inc., of Arlington, Va., a Web-application development consulting company.

|
November Table of Contents