Полезная информация


UNIX Unleashed, System Administrator's Edition

- 7 -

Communicating with Others

by Ron Dippold and Fred Trimble

From its inception, the purpose of the Internet has been to facilitate communication among people. It was originally developed by the military to provide a vast distributed communications network capable of continued operation in case of a nuclear attack. Its designers wanted a distributed network to eliminate the possibility of a "vulnerable central node." They also wanted a communications protocol that would be independent of any particular physical media. Despite its military roots, it has become characterized by the general public as the "Infobahn," "Information Superhighway," and "Cyberspace." Today, some twenty years later, the benefits of the Internet are being realized by many groups of people, including secondary schools, home users, and private industry. The Internet infrastructure was originally designed to support applications such as electronic mail and file transfer. Although electronic mail is still the most popular application on the Internet, other networking hardware and protocols continue to evolve so that they can support other types of communication, including real-time audio and video.

Throughout the history of the Internet, UNIX has certainly played a major role. Most early UNIX systems provided built-in support for the Internet's main protocol: TCP/IP (Transmission Control Protocol). Therefore, this chapter covers the following topics, with an emphasis on UNIX facilities where appropriate:

E-mail Electronic mail allows you to exchange messages with other people all over the world. Many electronic mail programs have extended features, such as the ability to attach binary files.
USENET USENET is the world's largest electronic discussion forum. One of the most popular features of the Internet, it allows people all over the world to discuss topics and exchange ideas on a wide variety of subjects.
Talk The talk command allows two people to exchange text messages in real-time.
IRC Internet Relay Chat extends the capabilities of the "talk" command. It provides a real-time multiple person discussion forum, much like a CB radio channel.
Multimedia The Internet allows real-time audio and video to be transmitted.
The Future This section provides a glimpse into the future of the Internet.

Electronic Mail (E-Mail)

Electronic mail is the most widely used application on the Internet. It is known as an asynchronous type of communication system, because after a mail message has been sent, it resides on the recipient's computer until the recipient logs on and retrieves the message. This section focuses on many facets of e-mail, including the structure of a mail message, sending binary data (such as a graphics file) with a mail message, e-mail addressing, how messages are sent over the Internet, and common end-user mail programs.

Components of a Mail Message

A mail message consists of two main sections: a message header and a message body. The header contains information such as who sent the message and when it was sent. The body contains the actual message text. Some people finish their messages with an optional third part known as a "signature." Each of these mail message sections is described in detail in the following sections.

Message Headers The message header consists of several lines at the top, formatted as "keyword: value" pairs. Messages sent to a user who is located on the same local UNIX host using the mail or mailx program have a very simple structure. For example:

From smithj Thu Apr 24 00:42 EDT 1997
To: jonest
Subject: Code Review Meeting
Status: R

Please plan on attending the code review
meeting tomorrow at 10:00am.

The message header of a mail message that ends up going over the Internet, however, is much more complex. For example:

From nihil@eniac.seas.void.edu Thu Apr  24 08:15:01 1997
Flags: 000000000015
Received: from phones.com (phones.com []) by
happy.phones.com (8.6.5/QC-BSD-2.1) via ESMTP;
id IAA13973 Thu, 24 Apr 1997 08:14:59 -0800 for
Received: from linc.cis.void.edu (root@LINC.CIS.VOID.EDU
[]) by phones.com (8.6.5/QC-main-2.3) via ESMTP;
id IAA14773 Thu, 24 Apr 1997 08:14:56 -0800 for
Received: from eniac.seas.void.edu (nihil@ENIAC.SEAS.VOID.EDU
[]) by linc.cis.void.edu (8.6.5/VOID 1.4) with
ESMTP id LAA17163 for <rdippold@phones.com>
Thu, 24 Apr 1997 11:14:45 -0500
Received: from localhost by eniac.seas.void.edu
id LAA24236; Thu, 24 Apr 1997 11:14:44 -0500
From: nihil@eniac.seas.void.edu [B Johnson]
Sender: nihil@ocean.void.edu
Reply-To: nihil@void.edu,nihil@freenet.com
Cc: group-stuff@uunet.UU.NET
Cc: james@foobar.com
Message-Id: <199302011614.LAA24236@eniac.seas.void.edu>
Subject: Re: Apple IIe/IIgs Software and books for SALE...
To: rdippold@phones.com (Ron Dippold)
Date: Thu, 24 Apr 97 11:14:44 EST
In-Reply-To:     <CMM.342342.rdippold@happy.phones.com>;
from "Ron Dippold" at Apr 24, 97 1:00 am
X-Mailer: ELM [version 2.3 PL11-void1.13]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 10234

Message headers are constructed for you automatically by mail software known as "mail user agents" (MUA) and "mail transport agents" (MTA). In fact, the presence of certain items in the header, such as carbon copies and receipt notification, depend on the sophistication of the mail software itself. These components of an electronic mail system are discussed in detail in a later section. Some header information is intuitive. Other sections require some explanation.

Here's the first line from the previous example:

From nihil@eniac.seas.void.edu Thu Apr  24 08:15:01 1997

This line was added by the MTA on the local system (sendmail). It is used as a quick message summary, noting who sent the message and when. Because many mail systems store all of a user's mail messages in a single text file, such summary lines are also used to separate messages within the file. This provides a way to tell the end of one message from the start of the next. For most mail programs, this is the text From at the start of a line. This also means that if you try to place a From at the start of a line of text in your actual message, your mail program should place a > or some other character before it, so that it doesn't falsely indicate the start of a new message.

Flags: 000000000015

The Flags field, which is specific to Berkeley mail and mailx, was also added by the local mail program. Each message can have several different statuses, such as deleted, unread, and flagged for further attention. This varies with the sophistication of the mail program.

Received: from phones.com (phones.com []) by
happy.phones.com (8.6.5/QC-BSD-2.1) via ESMTP;
id IAA13973 Thu, 24 Apr 1997 08:14:59 -0800 for

Each system that receives mail adds its own received header on top of the message. Because this is the first such header in the message, it must indicate the last mail transfer. The machine happy.phones.com (where my mail is located) received the message from phones.com (our company gateway) on April 24, 1997. The transfer was done using sendmail 8.6.5 (although you can't tell from this header that it was sendmail) and the protocol used was ESMTP. The intended recipient is listed last. This can change as the message goes through gateways, so it's helpful for tracking mail problems.

Received: from linc.cis.void.edu (root@LINC.CIS.VOID.EDU
[]) by phones.com (8.6.5/QC-main-2.3) via ESMTP;
id IAA14773 Thu, 24 Apr 1997 08:14:56 -0800 for

Here's the mail transfer that got the message from void.edu to my site. It's a direct connection with no intermediate hops.

Received: from eniac.seas.void.edu (nihil@ENIAC.SEAS.VOID.EDU
[]) by linc.cis.void.edu (8.6.5/VOID 1.4) with
ESMTP id LAA17163 for <rdippold@phones.com>
Thu, 24 Apr 1997 11:14:45 -0500

Here, the mail system (linc.cis) at void.edu received the mail from another system at void.edu (eniac.seas).

Received: from localhost by eniac.seas.void.edu
id LAA24236; Thu, 24 Apr 1997 11:14:44 -0500

Finally, here's the original sending of the message. One interesting piece of information that can be gleaned from this whole exchange is the amount of time that it took to transfer the message. The message was sent at 11:14:44 -0500 and was received at 08:14:59 -0800 on the same day. The -0500 and -0800 show the time zone differences. To get equivalent times for both messages, you add 5 hours to the time of the sending and 8 hours to the time of receipt, to get 16:14:44 and 16:14:59, respectively. The message arrived in 15 seconds!

From: nihil@eniac.seas.void.edu [B Johnson]

This is the sender of the message. The portion in parentheses is a comment. It usually contains the person's name.

Sender: nihil@ocean.void.edu

Sender is the authenticated identity of the person who sent the message. This is where the sending computer tells you, as nearly as it can determine, the account that actually sent the message, regardless of what the From header says. This is useful if one person, such as a secretary, is authorized to send mail for another or if one member of a group is sending a message on behalf of the whole group. If the Sender header is the same as the From header, it doesn't need to be added. In this case, Nihil sent mail from a machine within his organization different from the one given in his address. If the From and Sender headers are radically different, however, the mail could be a forgery.

Reply-To: nihil@void.edu,nihil@freenet.com

The Reply-To header specifies who your reply should go to if you respond. Most mail software is smart enough to do this automatically. There are usually two reasons for using a Reply-To header. The first is if the address given in the From header is broken and you can't fix it. The second is if the specified primary address is somewhat unreliable. Nihil has another mail account at freenet.com--if for some reason void.edu goes offline, he can still get much of his mail at his freenet account.

Cc: group-stuff@zznet.ZZ.NET
Cc: james@foobar.com

The message was also sent to group-stuff@zznet.ZZ.NET and james@foobar.com. You can choose whether to include them in your reply. This also could have been done in a single header statement:

Cc: group-stuff@zznet.ZZ.NET,james@foobar.com

Either form is acceptable. Headers such as From or Sender, however, should appear only once in the entire header.

Message-Id: <199302011614.LAA24236@eniac.seas.void.edu>

Message identification is very helpful when trying to track a message for debugging purposes. It can also be used for message cancellation on USENET. The method of generating this unique ID varies from site to site. There should never be another message with this specific ID generated by any machine anywhere on the network.

Subject: Re: Apple IIe/IIgs Software and books for SALE...

This is the subject of the message. My mail program shows me a one-line summary of each message, including the From, Date, and Subject headers.

To: rdippold@phones.com (Ron Dippold)

This is who the message was sent to. Sometimes your local computer will strip off the domain (@phones.com).

Date: Thu, 24 Apr 97 11:14:44 EST

This is the date the mail was originally sent. EST is Eastern Standard Time.

In-Reply-To:  <CMM.342342.rdippold@happy.phones.com>;
from "Ron Dippold" at Apr 24, 97 1:00 am

This message is a reply to a message that Ron sent with the message ID given above.

X-Mailer: ELM [version 2.3 PL11-void1.13]

The sender used the Elm Mail System to send this piece of mail. This information can also be useful in debugging.

Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

MIME message format is discussed later in the chapter. Briefly, this says that the message contains only 7-bit text.

Content-Length: 10234

The length of the body of the message (not shown here) is 10,234 characters.

There are some other header items that might be occasionally useful for you to know:

Bcc: recipient

Bcc is blind carbon copy. This is like the Cc header, except that those recipients listed in the To and Cc headers don't see that the message was sent to those specified in the Bcc header. Use this to send a copy of a message to someone without letting the others know you're sending it.

Encrypted: software keyhelp

This indicates that the message body is encrypted with encryption software, and the keyhelp option helps with selecting the key used to decode. Note that the header itself cannot be encrypted because it contains vital routing information.

Dates used in headers look like this:

Thu, 24 Apr 97 11:44 -500

The day of week (Thu) is optional. The time is given in 24-hour format (00:00--23:59) local time. The last field is the time zone in one of several formats.

UT or GMT      Universal/Greenwich Mean Time
EST or EDT     Eastern time zone
CST or CDT     Central time zone
MST or MDT     Mountain time zone
PST or PDT     Pacific time zone
-HHMM          HH hours and MM minutes earlier than UT
+HHMM          HH hours and MM minutes later than UT

RFC 822, which documents the standard format for Internet text messages, contains information about the header format.

NOTE: Throughout this chapter, reference will be made to RFCs. RFC stands for Request For Comments and is the means by which the research and development community has documented the standards that form the basis of the Internet. For example, RFC 821 documents the SMTP protocol for sending mail.

The Message Body The message body is separated from the message header by a single blank line. The message body contains the actual text of the message. Here, you are free to type whatever you want to the recipient. However, there are a few recommended guidelines to follow.

Many mail systems can only handle lines of up to 65 characters. It is usually a good idea to keep the number of characters on a line less than that amount. Also, try to use a good mix of upper and lower case characters. IF YOU USE ALL UPPER CASE CHARACTERS, IT LOOKS LIKE YOU'RE SHOUTING! In addition to text, the message body sometimes contains a special character sequence known as an emoticon, such as :-). If you view this emoticon sideways, it looks like a smiley face.

NOTE: When conversing with others, our body language, facial expressions, and tone of voice provide a framework for how our words are understood. Because this is not possible in an e-mail message, special character sequences called emoticons are used to embellish the text to connote emotion. Here is a list of some emoticons you might see, along with their usual meaning:

:-) humor, laughter, friendliness

:-( sadness, anger, upset

:-O shocked

:-$ put your money where your mouth is

:-y said with a smile

:-T keeping a straight face

:-| no expression

(:-D has a big mouth

It is considered good practice not to overuse these symbols.

Signatures Some e-mail messages conclude with an optional signature. A signature is a brief description of who sent the message, such as full name, telephone and fax numbers, and e-mail address. Some signatures try to embellish this information with a picture drawn with ASCII characters. It is considered good practice to limit your signature to five lines or less. Most modern mail programs can be configured to automatically append your signature to the end of your message.

Sending Binary Data

The protocol for sending e-mail over the Internet (SMTP) allows only for the transmission of ASCII text characters. Therefore, binary files, such as audio or video files, are not directly supported. The preferred method for sending binary data is to use a mail program that supports Multi-purpose Internet Mail Extensions (MIME). This is discussed in a later section. Before the advent of MIME, a technique used to circumvent this restriction is to encode such data as ASCII text before sending it with a mailer program, such as elm or mailx. On UNIX systems, use the uuencode program to convert a binary file to ASCII text. On the receiving end, the uudecode program to convert the data back to binary. For example, the following command can be used to mail a graphics file to a remote user:

uuencode picture.tif picture.tif | mailx -s "image file" gcobb@netx.com

The first argument to uuencode is the image file that will be encoded. The second argument is the name of the file that will be created on the remote user's system when the recipient runs the uudecode program. Since uuencode writes directly to standard output, it is piped to the mailx program. The mailx program will send a message to the remote user with a subject line of image file.

NOTE: The uuencoded file will be about 35 percent larger than the original file. About 33 percent of that comes from converting 8-bit bytes to 6-bit bytes; the other 2 percent comes from control information in the encoding.

On the remote system, the mail recipient first saves the message to a file, for instance, mail.save. The following command converts the ASCII characters back into binary format:

uudecode mail.save

In addition to the encrypted binary data, the file contains the mail header information put there by the mailx program. It is also possible that the sender added a commentary before the encrypted data. Upon examination of the encrypted file, there should appear a mail header and any commentary added by the sender. The encrypted data begins directly after the line containing the word begin, followed by UNIX file permissions and a filename. After the section with the encrypted data the word end appears on a line by itself. This information is used by the uudecode program for creating the file. In the preceding example, the following line appeared directly after the mail header:

begin 777 picture.tif

Therefore, after the uudecode program is run against the mail.save file, a file named picture.tif with file permissions 777 is created. Using the begin and end keywords, the uudecode program is usually able to distinguish between the mail text and the encrypted data. If uudecode cannot handle the file properly, you can edit the file and remove all text before the begin keyword and after the end keyword. The uudecode program should then work as expected.

TIP: The technique specified above works okay for relatively small files, but what if you want to send someone a 10 megabyte file? Add 35 percent more for encryption overhead, and you have a hefty message by any estimation. Although you usually won't run into the problem with normal messages, a few sites running really old MTAs have a limit on message size, usually around 64,000 bytes. If you send your file as one big chunk, only a fourth of it may get there. What you need to do is split it into smaller chunks.

You can do this manually, but there's a nice UNIX utility that will do the job for you: split. Just tell split the number of lines you want in each piece, and it creates a file containing the specified number of lines. The number of lines doesn't tell you the size of each file exactly, but you can experiment. We find that using 800 lines per piece on average provides a nice, safe 50,000-byte chunks. Here's how it works:

uuencode bigfile bigfile > bigfile.uue
split -800 bigfile.uue splits
mail -s "Bigfile.uue 1 of 3" mybuddy < splitsaa
mail -s "Bigfile.uue 2 of 3" mybuddy < splitsab
mail -s "Bigfile.uue 3 of 3" mybuddy < splitsac
rm bigfile.uue splits??

The split command takes as arguments the number of lines and the file to split, as well as a base name for the output files. In the above example, splits was used as the base name. It then names the resulting files splitsaa, splitsab, splitsac, and if necessary, all the way up to splitszz. This gives you 676 pieces. If that's not enough, you should probably use another method to transfer the file. The subjects with 1 of 3, 2 of 3, and 3 of 3 are just to let the receiver know the total number of pieces, and their proper sequence.

Now the receiver has to save all the messages into a big file, edit out everything except the uuencoded stuff, and run uudecode on the resulting file. It is a cumbersome process, but it works. If you do this type of transfer, consider writing a UNIX shell script to automate the uuencode splitting, mailing, and recombining of the files.

If you're on a UNIX system, uuencode, uudecode, and split should be standard. If you're using DOS or a Mac, you can obtain a copy via anonymous ftp.

If you're using DOS, point your Web browser to http://oak.oakland.edu/pub/simtelnet/msdos/decode.. From here, download the file uuexe655.zip. This is a very nice uuencode and uudecode for the PC that is actually superior to the standard UNIX version. For instance, it automatically reorders the pieces of the file if they're out of order.

If you're using a Mac, point your Web browser to http://tucows.idirect.com/mac/comp.html and download the file for UULite version 3.0. It's a very full-featured uuencoder for the Mac.

For any computer for which you have a C compiler available, you can get the source code for uuencode.c and uudecode.c by pointing your Web browser to http://oak.oakland.edu/pub/misc/unix. This is the portable C source for the standard uuencode and uudecode and should work on almost any computer. The portable C versions of uuencode and uudecode are simple but are always there.

Mail programs such as mailx are also discussed in more detail later in the chapter.

Addressing Remote Systems To send a message over the Internet, you need to specify a specially formatted Internet address. It is composed of two major sections separated by an @ sign. The part of the address to the left of the @ sign is the Internet account that will receive the mail message. This is usually the login name of the mail recipient. The part of the address to the right of the @ sign is known as the domain name. It uniquely identifies a host on the Internet. All domain names on the Internet comprise the Domain Name System, which is a hierarchy that divides the Internet into logical groups (domains). The domain is read from right to left and specifies a series of progressively smaller logical domain names. Each part of the domain name is separated with a period. For example, note the following Internet address:


The rightmost portion of the domain, .com, indicates that this is a commercial site. The following list shows the most popular domains for the United States:

com commercial
edu education
gov government
mil military
net network
org organization

Outside of the United States, sites can be registered to .com, .net, and .org. In addition, the two-letter ISO country code can also be used. For example, "ca" for Canada, "uk" for the United Kingdom, and so on.

To the left of the highest level domain name (edu, org, and so on) can appear any number of logical subdomains. These are used to specify, in greater detail, the name of the host where the mail recipient can be found. By Internet convention, capitalization in the domain name is ignored. Therefore, the following Internet addresses are equivalent: ccarter@Minn.com, ccarter@MINN.com, and ccarter@MINN.COM). Most modern mail software ignores case in the username portion of the address for consistency. However, this is not a requirement. Therefore, it is considered good practice to preserve case for the username, just in case the recipient's system is using older mail software.

An older type of addressing scheme is known as a UUCP bang-path address (bang is computer jargon for an exclamation point). It is unlikely that you will see an address in this format, though, and is mentioned here for historical reasons. In this type of scheme, you must indicate each system you want the mail to pass through. For example, note the following address for user katherine:


This indicates that you want the mail to pass through systems named comp01, comp02, and comp03. Once the message has been delivered to comp03, it will be delivered to katherine.

How Messages Are Routed Over the Internet Before an Internet address in username@domain format can be used for transmission, it must be converted into an IP address. An IP address consists of four numbers, separated by dots, which uniquely identify a host on the Internet. For example, "" is an example of an IP address. Translating an Internet address to an IP address is the province of systems on the Internet known as name servers.

When a mail message is sent over the Internet, it is sent as a stream of packets, each containing a portion of the message. Each packet also contains the IP address of the destination. The packets are sent over the Internet using the IP protocol. Specialized networking systems on the Internet, known as routers, examine the IP address in each packet, and route it to the appropriate host. Many factors, such as network traffic volume, on various Internet backbones are taken into consideration in order to determine the best possible path. In fact, packets from the same mail message may take different routes. All packets are combined in the correct order on the receiving host using the TCP protocol.

Sending Mail to Other Networks In addition to sending e-mail over the Internet, it is possible to send mail to other networks, such as online services.

Internet E-Mail Gateways In theory, the Internet is a competitor with all the existing services such as AT&T Mail, CompuServe, and the rest. In practice, it's a neutral competitor. It's not some guided, malevolent entity that is trying to do away with any of the other services. Rather, it competes just by its existence; it offers more information and more connectivity than most of the services can ever hope to offer. Smart information services finally realized that this could be put to their advantage. Anyone who cares to can join the Internet, and a service that joins the Internet has advantages over its competitors.

One huge advantage is connectivity. As soon as a mail service adds a computer (known as a gateway) that can transfer from its system to the Internet and vice versa, its users can exchange mail with anyone on the service or with anyone on the Internet. That's a lot of people. So many services are now offering some sort of mail gateway. Even Prodigy, which was somewhat late to grasp the possibilities, has one now.

Instead of GEnie needing to install a special gateway to talk to Prodigy, and one to CompuServe, and one to SprintMail, and one to BubbaNet, it can set up and maintain just one gateway to the Internet, through which everything flows. Given the glacial speed with which most of the online services implement upgrades like this, requiring only a single gateway is a good thing.

So now anyone can send e-mail anywhere! Well, not exactly.

Addressing Issues It turns out that the services that connect to the Internet keep their same old account names and horrible mail systems. CompuServe's octal account addresses are as much an anachronism as punch cards, but because of the company's current investment, it isn't going to change them. And you can't just send a mail message to a CompuServe account using an Internet-style address. A CompuServe ID looks something like this:


In Internet addressing, a comma separates members of a list so you can't use the comma in the Compuserve address. There's a way around that (use a period instead of a comma) but you have to know that in advance. Someone trying to send mail to a system has to deal with those quirks. Hence this section, which details the translation that has to be done between the major networks.

Again, an Internet e-mail address looks something like this:


Any address to a mail gateway is going to be some variation (minor or major) on this theme.

X.400 Addressing The Internet uses what is formally known as RFC-822 addressing. Many large commercial services specializing in electronic mail use something known as an X.400 gateway to talk to the Internet. Those addresses look something like this:


This style is usable from the Internet, because RFC-822 allows slashes and equals signs. In fact, there's the opposite problem: RFC-822 allows many characters to be used in addressing that cause an X.400 gateway to go into convulsions, including the @ sign. Since this appears in all Internet-style mail addresses, there's an obvious problem.

Whenever the Internet address has a special character, you need to use the following translation table:

Internet X.400
@ (a)
% (p)
" (q)
_ (u)
( (l)
) (r)

For any other special character, such as #, substitute (xxx), where xxx is the three-digit decimal ASCII code for the character. For #, you would use (035).

For example, to convert the Internet address


into something that can be sent from an X.400 service such as MCI Mail, you need to turn it into this:


NOTE: The ! is replaced with because computer users like short names, and refer to an exclamation point as a bang.

Gateway Translation Specifics Using the following instructions should be fairly easy. To send mail to CompuServe from an Internet mail account, see the translation instructions in the "CompuServe" section later in this chapter.

Parts of the address that you have to replace with appropriate information are given in italics. For instance, with


you need to replace userid with the recipient's account name or number. domain is the part of the Internet address after the @.

If you are sending mail from one service to another through the Internet, for example from WWIVNet to CompuServe, you will have to do two translations. First, check the "CompuServe" section and see how to translate the ID "From Internet." Then check the "WWIVNet" section and see how to translate that address "To Internet." If you do this from one strange network to another, the name may be a crawling horror, but at least it should be possible.

America Online America Online (AOL) is a major commercial information system that recently joined the Internet (although it has had Internet e-mail for a while). Its Internet e-mail is seamless from an Internet point of view.

From Internet: America Online looks just like any other normal Internet site.


Example: jjones@aol.com

To Internet: There's no need to do anything special; just use the regular Internet format.


Example: bsmith@wubba.edu

To Others: America Online lets you use special abbreviated domains for mail to AppleLink, CompuServe, or GEnie. Send your mail to userid@applelink, userid@cis, or userid@genie, respectively.

Example: 11111.2222@cis

AT&T Mail From Internet: Use standard Internet addressing:


To Internet: Use the following. Note the backward order here--this is the old bang-path type addressing. Oh well.

Example: internet!wubba.edu!bsmith.

BIX BIX is the Byte magazine Information eXchange, a commercial service oriented toward techies and/or Byte magazine readers. It's been bought by Delphi, but still operates as a separate source.

From Internet: Use standard Internet addressing:


Example: jjones@bix.com

To Internet: You'll need to use the Internet Services menu option from the main menu, then use standard Internet addressing:


CompuServe CompuServe is a very large commercial system. It's so large that it hasn't yet felt the pressure to join the Internet except by offering a mail gateway.

From Internet: Use standard Internet addressing with one difference: CompuServe IDs are in the form 77777,7777. Because Internet dislikes commas in addresses, you need to change the comma to a period:


Example: 12345.677@compuserve.com

To Internet: You need to add a prefix to the standard Internet addressing:


Example: >INTERNET:bsmith@wubba.edu

Delphi Delphi was the first of the large commercial services to really embrace Internet. It looks like any standard Internet site as far as Internet Mail is concerned:

From Internet: Use the following addressing:


Example: jjones@delphi.com

To Internet: There's no need to do anything special; just use the regular Internet format:


Example: bsmith@wubba.edu

EasyLink This is a set of commercial Internet services from AT&T.

For more information on AT&T's EasyLink, you can contact them at http://www.att.com/easycommerce/easylink/mail.html.

Envoy-100 This is Telecom Canada's commercial service with X.400 gatewaying.

From Internet: Use the following addressing:


Remember that we told you the bang-path format is almost obsolete? That's not true here yet.

Example: uunet.uu.net!att!attmail!mhs!envoy!12345

To Internet: Brace yourself--you need to use the following addressing:


(a) replaces @ because X.400 doesn't like the @ character. For other special X.400 characters, see the "X.400 Addressing" section.

Example: [RFC-822="bsmith(a)wubba"]INTERNET/TELEMAIL/US

For more information on Envoy-100, contact http://library.usask.ca/~scottp/envoy.html.

FidoNet FidoNet is a large international BBS network--sort of the Internet for the BBSing crowd. It's not as fast as the Internet, but access is usually very cheap, and chances are there's a FidoNet BBS in your area.

Because it's run over phone lines, the BBS operators will rack up long-distance charges for any mail transferred, so please don't send large messages to FidoNet sites. Many sites will even chop your messages to 8,000 or 16,000 bytes, so much of your message won't get through.

From Internet: First, you need to know the network address of the BBS your recipient is on. It will be in a form such as Z:N/F.P. Then send the mail to the following address:


If the network address of the BBS doesn't have a P component, leave the pP. part out of the address. For the userid replace any non-alphanumeric characters (such as spaces) with periods (.).

Example: Jim_Jones@p4.f3.n2.z1.fidonet.org

To Internet: Use standard Internet addressing with a suffix:

userid@userid ON gateway

The gateway is a special FidoNet site that acts as a gateway to Internet. You can use 1:1/31 unless you find a better one.

Example: bsmith@wubba.edu ON 1:1/31

GEnie GEnie is General Electric's commercial information service.

From Internet: Use standard Internet addressing:


Example: jjones@genie.com

To Internet: Use standard Internet addressing with a suffix:


Example: bsmith@wubba.edu@INET#

Gold 400 Gold 400 is British Telecom's commercial X.400 system.

From Internet: Use the following addressing:


You'll need to have the recipient tell you his or her userid, org_unit (organization unit), org (organization), and prmd (private mail domain).

Example: jjones@foo.bar.baz.gold-400.gb

To Internet: Again, see the section "X.400 Addressing" to see how to handle nonstandard characters in addresses, but here's the format:

/DD.RFC-822=userid(a)domain%%/O=uknet/PRMD=uk.ac/ADMD=gold 400/C=GB

Example: /DD.RFC-822=bsmith(a)wubba.edu/O=uknet/PRMD=uk.ac/ADMD=gold 400/C=GB

KeyLink KeyLink is Telecom Australia's commercial X.400 mail service.

From Internet: Use the following addressing:


You'll need to have the recipient tell you his or her userid, org_unit (organization unit), and org (organization). The org_unit might not be used--in that case, just eliminate it and the period that follows it.

Example: jjones@froboz.grue.telememo.au

To Internet: Again, see the section "X.400 Addressing" to see how to handle nonstandard characters in addresses, but this is the general format:

 (C:au,A:telememo,P:oz.au,"RFC-822":"name - <userid(a)domain>")

name isn't actually used for delivery, just as a comment.

Example: (C:au,A:telememo,P:oz.au,"RFC-822":"Bubba Smith - <bsmith(a)wubba.edu>")

MCI Mail MCI Mail is MCI's commercial e-mail service.

From Internet: There are several options. Each MCI user has a name (Jim Jones) and a phone number (123-4567) associated with his or her account. The number is unique to that account, so you can always send mail to an address such as the following:


Example: 1234567@mcimail.com

If you know there is only one J Jones with an account at MCI Mail, you can send mail to


where F is the first initial and Last is the last name. Or, if you know there is only one Jim Jones you can send mail to


where First is the first name and Last is the last name. Note the underscore between them.

Example: Jim_Jones@mcimail.com

To Internet: When MCI prompts you with To: enter

$$name (EMS)

name isn't actually used for mail delivery, but you can put the person's real name here. MCI then prompts you with EMS:. Respond with


Then MCI asks for Mbx: and here you can enter the real Internet address:


Prodigy Prodigy is a large commercial service, Prodigy Information Services (jointly developed by Sears and IBM).

From Internet: Use standard Internet addressing:


Example: jone45a@prodigy.com

To Internet: When online, Jump to ABOUT MAIL MANAGER and proceed from there.

SprintMail Hmm... AT&T and MCI have commercial mail services. Sprint has to have one, if only for the principle of the matter. Actually, to be fair, Sprint has always been one of the more network-oriented phone companies. You may have used their Telenet network.

From Internet: Use this addressing:


first and last are the recipient's first and last names, of course, and organization is the recipient's SprintMail organization name.

Example: /G=Chris/S=Smith/O=FooInc/ADMD=TELEMAIL/C=US/@sprint.com

To Internet: Use this addressing:

C:USA,A:TELEMAIL,P:INTERNET,"RFC-822":<userid(a)domain>) DEL

Again, see the section "X.400 Addressing" to see how to handle nonstandard characters in addresses.

Example: C:USA,A:TELEMAIL,P:INTERNET,"RFC-822":<bsmith(a)wubba.edu>) DEL

Other Gateways There are other gateways around, and more are sure to appear. Most services offering this type of gateway should have at least some clue of how the address translation needs to be done--ask the service if you need to know.

Finding Addresses

There are many places on the World Wide Web that keep track of people's names and their corresponding e-mail addresses. There also exist many sites that provide a nice "front end" to these databases, allowing you to search for someone's e-mail address.

One such site is http://www.four11.com. It allows you to narrow your search based on geographic regions, such as country and state. It also has a handy "smart name" feature, that will expand a search for certain variations in a name (for instance, Robert = Bob). It currently contains over 6.5 million listings. Other worthwhile sites include http://www.iaf.net and www.bigfoot.com. Finally, be sure to check out http://www.starthere.com/index.html. It has links and descriptions of many sites which, in turn, do the actual e-mail address searches on the Web.

To find someone in the communications field, try RPI's address server. Send mail to Internet address comserve@vm.its.rpi.edu with help as the body of the message.

UNINNETT of Norway maintains an X.500 address registry service. Send mail to Internet address directory@uninett.no with help as the body of the message.

PSI runs an X.500 service at Internet address whitepages@wp.psi.com with help as the message body.

USENET Address Server MIT keeps track of every person who has ever posted an article to USENET since the late 1980s (many USENET readers would be shocked to know this). This includes those from other networks who use a news gateway. If the person you are looking for has posted an article to USENET since then, he or she might be in this database.

Send mail to the Internet address mail-server@rtfm.mit.edu. In the body of the message, put this:

send usenet-addresses/key1 key2 key...

The keys should include all the words you think might appear in the address, usually parts of the person's name. In many cases you will use only key1. The keys are case insensitive.

You can try the following:

send usenet-addresses/dippold

to return several entries. The server will return only 40 matches, so if your keys are overly general (Smith) you will need to give more keys, such as a first name, to narrow the search.

You can do several searches at once by placing several send usenet-addresses/keys lines in the message.

Your Address and Business Card

The business card of the 1990s includes your Internet address. E-mail is almost always cheaper, faster, and more convenient than a fax or snail mail. Putting your e-mail address on your business cards is one of the best ways to encourage people to use it.

How do you give your address on your business card? We've heard people recommend E-mail Address, E-mail, Internet, and other variations. My suggested solution is simple and elegant: just give your address without giving it any kind of label at all. The @ should give it away.

For best results, give the address in Internet format, even if your account is on another service. If you're on CompuServe as ID 11111,2222, give your address as 11111.2222@compuserve.com rather than as CompuServe ID: 11111,2222. With the first format anyone who can send Internet mail can reach you, and CompuServe users will be smart enough to realize that the first part is your CompuServe ID. The second format requires that someone know how to do the 11111,2222 to 11111.2222@compuserve.com conversion, and they haven't all read this book. Of course, this assumes that you want non-CompuServe people sending you mail.

Mail Programs

There are three main components involved in sending mail. First there's the link level transport layer. Directly above the transport layer is the mail transport agent (MTA). This layer is responsible for the movement and delivery of mail messages. An MTA has several components, including routing mechanisms, a local delivery agent, and a remote delivery agent. The MTA for most UNIX systems is the sendmail program. An MTA that takes liberties in modifying the contents of a message is known as a hostile MTA. Finally, there's the mail user agent (MUA) that provides the user interface. It allows you to read, send, and otherwise manipulate mail messages. This is what people usually mean when they talk about a mail program.

There are many mail programs from which to choose. The next section covers the elements that are common to them all.

Your Mail Files Normally, you have a mail account on whatever computer handles your mail. Often, you can do other things with your account besides access your mail, but that's not important for now. All your new mail, known as incoming mail, is kept in what is usually called a mail spool file. It's quite common for your computer to occasionally look at the spool file and notify you if you have new mail. This is your clue to run your mail program.

Your mail program then grabs all the incoming mail and displays it for your edification. If you don't delete the mail, it is placed in your mailbox file. This is not the same as your incoming mail file--the mailbox file holds all your old mail. Many users eventually outgrow the single mailbox and have several for different subjects, but there is almost always a default mailbox used whenever you run your mail program, and this is what is referred to as your mailbox.

If you send mail to someone else, it is sent directly to your site's mail computer, which can do what it pleases with the mail--it either sends it on immediately or saves the mail to send in batches.

Using Mail Programs As mentioned earlier, there are many mail programs, each with their own quirks. But they try to accomplish the same task and tend to present the messages in a similar format. Learning about one mail program will give you the concepts needed to use almost any program in existence.

Message Summaries Almost every mail program summarizes your messages like this:

FA    1) 14-Feb bfarve           Re: Congratulations! (2457 chars)
F     2) 15-Feb broth            requirements.doc (1/1) (17464 chars)
F     4) 18-Feb dgreen           Re: Sign Chester (2576 chars)
F D   5) 18-Feb clinton@whiteho  Re: Overnight Stay (13786 chars)
FA    6) 19-Feb Dwayne Rudd      Re: thank  you (1451 chars)
U     7) 21-Feb Eddie Lepman     noise (2653 chars)

There's one line per message. Again, the information for each message won't always be presented in exactly the same format, but the contents should be similar. From left to right for this mail program (named mm90), the lines give the following information:

  • Message flags. Each message has several state variables associated with it. In this case, the flags are whether the message is unread (U), whether I have answered the message (A), whether the message is deleted , and whether I have flagged the message for further attention . Some programs let you give each message one of several priority levels.

  • Message number. It helps to be able to refer to a message by a unique identifier for printing, reading, or deleting. Usually, the mail program just calls the first message in your mailbox 1 and counts up from there.

  • Date. This tells when the message was sent, from the Date header of the message.

  • Name. This is the name of the person who sent the mail, from the From header. If no name is given, the Internet address of the person is used.

  • Subject. When the sender entered the message, his or her mail program asked for a message subject. It's shown here. If there's not enough room, the subject is truncated.

  • Length. This shows how large the message is. Here it's given in characters--other programs give it in number of lines.

Reading New Messages All mail programs have a read new mail command. Usually, you use just r or press Enter for character-based interfaces, or "point and click" for graphical user interfaces. This shows you your new messages one at a time. When you're reading each message you have several options available, such as replying or deleting the message.

Operating on Old Messages The same functions that are available when you're reading a message are usually available when you're not reading any particular message, and can apply to a single old message or to a group of them. As an example, when you're reading a message, you can tell the mail program to delete the message. When you're not reading any messages you should be able to tell the mail program, "Delete messages 3, 6, 8, and 10 through 12."

Messages are usually given by number, but if you're using a mail program that uses a mouse, you may be able to select messages by clicking on them.

Common Mail Functions Here's the standard list of mail functions you should learn to use in your program:

  • Read message(s). Obviously, if you can't do this, not much else matters.

  • Delete message(s). Mailboxes can become very cluttered with old mail, and you can even lose important mail because it's so buried in junk. You need to be able to get rid of mail you don't care about.

  • Flag message(s). You should be able to flag messages as being important. The mail program should then make them stand out in some way so you remember to deal with them later.

  • Send message. You should be able to send mail to other people.

  • Reply to message. You should be able to easily send a response to the person who sent you a piece of mail, and include a portion of the sender's message text for reference.

  • Save message(s) to file. You'll probably get mail that contains important information you want to use in another program. You should be able to save the body of a message to file, which you can then manipulate at will.

  • Switch to other mailbox. If you start getting enough mail, you may find it handy to create other mailboxes. Perhaps one for the Bulgarian cooking mailing list of which you're a member. Your mail program should be able to handle several mailboxes.

  • Move message(s) to other mailbox. If you have multiple mailboxes, it should be possible to move mail from one to another.

Mail Configuration File Since how you handle your mail involves a lot of personal preference, almost all mail programs have many options that can be set. So that you don't have to set these every time you run your mail program, most mail programs have some sort of configuration file that is read every time the program starts.

You should definitely look into how to set this up for your mail program--while doing so, you will often find many options you didn't even know about. For instance, many programs will let you set aliases; for example, you can use just bill instead of wblowhard@longname.deep.stuff.edu. The mail program turns the alias into the full name.

Common UNIX Mail Programs There are dozens of mail programs available for UNIX systems. This chapter covers the most popular ones, including mail, mailx, elm, and PINE.

mail (Berkeley Mail) The mail program is a simple mail user agent that has its roots in the BSD (Berkeley Software Distribution) version of UNIX. It is sometimes referred to as Berkeley Mail. This program is minimal in both functionality and presentation, and is still in use at a few sites.

To send a message, type mail, followed by one or more user addresses (local or remote). For example, the following command will send mail to two different users:

mail ccarter jrandle

On the next line, start typing in the message. When you have finished, type a . or control-d on a line by itself to indicate that you are finished typing. The mail transport agent then delivers the message(s). For convenience, you can put the message text in a file and send it with the following one-line command:

mail ccarter jrandle < file

To read incoming mail, simply type in the command mail. Each mail message will be printed (last-in first-out order), followed by a question mark command prompt. To save the message, including the header, type s filename. To save the message without the header, type w filename. Use the d command to delete the message. Following is a summary of all the commands recognized:

q               quit
x               exit without changing mail
p               print
s [file]        save (default mbox)
w [file]        same without header
-               print previous
d               delete
+               next (no delete)
m user          mail to user
! cmd           execute cmd

See the manual page for mail(1) for more details.

TIP: Every time you log in to your UNIX system, you can customize your environment to inform you that you have mail waiting to be read. Both the mail and mailx programs can be invoked with the -e option. It returns a 0 if there is mail waiting to be read. It returns a 1 if there is no mail. Bourne and Korn shell users can put the following code in their .profile file:

if [ -f /bin/mail ]
if mail -e # notify if mail.
echo "You have mail."

A similar statement can be put in the .login file for C shell users. The C shell also allows you to be notified when new mail arrives while you are logged on. For example, the following statement in the .cshrc file checks for new mail every 60 seconds and prints the message "You have new mail." when it arrives. A utility called notify exists for some UNIX platforms that provides similar functionality, if you are not using the C shell.

The mailx command is an extended version of the Berkeley mail command. To send a mail message, type mailx followed by a list of local and/or remote users. For example:

mailx ccarter jrandle

Before typing the text for the message, your are prompted for a subject. You can type a one-line description for the subject, or simply type a carriage return to continue. After that, type in the text for the message, just like the mail command. You can also send mail by redirecting standard input from a file, as in the previous example for mail.

The mailx command provides some extended features for entering text into the message. For example, type ~v on a line by itself, and it will bring up the vi editor. When you are done composing the message within vi, type ESC and ZZ to get out of the editor, and you will go right back to the mailx command. This feature is available on Berkeley Mail.

Another useful feature is to import the contents of a file into the message body. Type ~r filename, and a line appears showing the filename, along with the number of lines and characters in the file. The following example shows how to use this option to import the results of a command (uuencode) into a mail message. This feature is available on Berkeley Mail as well.

$ mailx trimblef
Subject: tif file

Here is the tif file that I promised you.

~r !uuencode picture.tif picture.tif
"uuencode picture.tif picture.tif" 368/22606

The following set of commands shows how the mail recipient can save and uudecode the contents of the file:

$ mailx
mailx Revision: 70.7    Date: 92/04/16 15:39:44    Type ? for help.
"/usr/mail/trimblef": 1 message 1 new
>N  1 trimblef           Sun Apr 27 14:36  376/22723 tif file
? s file.tif
"file.tif" [New file] 376/22723
? q
$ uudecode file.tif
$ ls -l
total 260
-rw-rw-rw-   1 trimblef users      22733 Apr 27 14:38 file.tif
-rwxrwxrwx   1 trimblef users      16384 Apr 27 14:40 picture.tif

At the question mark prompt, the command s file.tif was used to save the contents of the message, which is the uuencoded tif file. After running the uudecode program, the picture.tif file is created.

The preceding example also illustrates how to read mail. Simply type mailx, and the message header is displayed for each message in your mail box. The first field indicates the status of the message (N for new messages and U for unread messages). The second field is the message number in the queue. The third field is the address of the sender. The next field is the date the message was received. Finally, the last field indicates the number of lines/characters in the message. At the question mark prompt, you can type p to print the next message, s filename to save the contents to a file, or n to read the next message. If you want to respond to the sender from within the mailx program, type r.

NOTE: On Ultrix, HP-UX, and AIX systems, the r command is used to reply to everyone in the "To:" and "CC:" sections of the header, and R is used to reply to the sender only. However, on SunOS, the reverse occurs. Read the manual page to clarify the behavior on your system.

For a complete list of commands, see the manual page for mailx.

The mailx environment can also be customized. When the mailx command is invoked, it first executes commands in a global configuration file named /usr/lib/mailx/mailx.rc. Here are the contents of a typical mailx.rc file:

set asksub
set dot
set crt=23
set PAGER=more

The asksub option tells the mailx program to prompt the user for a subject line if the -s option is not specified when sending mail. The dot option allows a user to type a . on a line by itself to end a message, just like the mail command. The crt option specifies the number of lines to display from a message to pipe to the program specified in the PAGER setting. In the above example, 23 lines of output at a time will be sent to the more command. After reading the global configuration file, the mailx command reads the user's local configuration file in $HOME/.mailrc. The most common types of entries in a local configuration file are display options and defining user aliases. The complete set of configuration options is documented in the manual page for mailx.

TIP: Some UNIX systems have a very useful program called vacation that allows you to respond to e-mail automatically with a pre-defined message. This is useful when you do not intend to respond to e-mail for an extended period of time, hence the program name. The program sends mail to each person you specify in the vacation command. The vacation command was intended to be put in the $HOME/.forward file. Another good use of the vacation program is to forward all of your mail to another e-mail address, while sending a message back to the sender indicating your new e-mail address. The following commands can be used to set up the vacation command to respond to your e-mail:

$ cd $HOME
$ rm .forward
$ vacation -I
$ vi .forward

\username, "| vacation username"

$ vi .vacation.msg

I'll be out of the office until 5/20/97 ...


When you are able to respond to e-mail and want to disable forwarding, simply remove the .forward file. It is a good idea to test this command to make sure it is in proper working order. See the manual page for the vacation(1) command for details.

elm In contrast to the mail and mailx programs, elm provides a full-screen and menu-driven interface. It was created as an easy-to-use UNIX mail program but actually has a fair amount of configurability and power. The support programs that come with it might be worth getting on their own. If you like printed manuals, it comes with over a hundred pages of documentation in PostScript format.

The elm program is probably not standard on your system, so you'll have to get it yourself. Fortunately, it is available via anonymous ftp it from ftp://ftp.uu.net under /networking/mail/elm, or from ftp://wuarchive.wustl.edu under /packages/mail/elm. The packed source code is about a megabyte. In order to install the package, you'll have to compile it and answer a few system configuration questions.

The menu displayed by elm appears as follows:

Mailbox is '/usr/mail/trimblef' with 3 message(s) [Elm revision: 70.85]

     1   Apr 27 trimblef           (9)    Project status
  N  2   Apr 27 trimblef           (10)   Flyers tickets
  N  3   Apr 27 trimblef           (10)   Going away party

   You can use any of the following commands by pressing the first character;
 D)elete or U)ndelete mail,  M)ail a message,  R)eply or F)orward mail,  Q)uit
    To read a message, press <return>.  j = move down, k = move up, ? = help


Messages are displayed in a format similar to mailx. In order to access help, press ? at any time.

TIP: elm tip 1: Press o from the main menu to get the options screen. Press > and Elm creates a file named .elm/elmrc--this is a special options file that you can edit with vi or emacs (or whatever you use). Most of these options aren't easily set from inside Elm. Be sure to read the Ref.guide file for more information on these options.

TIP: elm tip 2: Elm can act as a command-line mailer just as Berkeley mail does--it even uses the same syntax:

elm -s "subject" recipient < messagefile


TIP: elm tip 3: Don't ignore the support programs that come with Elm. A few of the most useful ones are the following:

autoreply answers all your incoming e-mail with an automatic reply. This is good if your mailbox is backlogged, or if you go on vacation or otherwise want to let people know that you're behind on reading your mail.

filter saves your incoming e-mail to different incoming mailboxes, deletes it, forwards it, and so on, based on the content of the e-mail message or its headers. This is useful if you subscribe to a mailing list or get lots of mail on a particular subject.

frm lists From and Subject headers for each message, one line per message. This is useful for quickly checking your incoming e-mail.

messages gives a quick count of the messages in your mailbox.

newmail and wnewmail are programs that immediately inform you when new e-mail has arrived. wnewmail runs in a window.

readmsg takes selected messages from a mailbox and sends them to standard output. This is good for quickly extracting and processing mail messages in bizarre ways.

There's even a USENET group for elm: comp.mail.elm.

PINE Another mail program available for UNIX systems is PINE. PINE stands for Program for Internet News and E-mail (Early in its history, some referred to PINE as Pine Is Not Elm, since the original source code for elm was used as a starting point!). It was developed at the University of Washington with naive users in mind. These users could navigate the program without fear of making mistakes. Along with a forgiving user interface, it contains a number of options for sophisticated users too.

PINE's's user interface is very similar to Elm's. However, the number of features is less overwhelming, and there's a concerted effort to keep the same keys performing the same functions from screen to screen. PINE even comes with its own text editor, Pico, which can be used as a general text editor. For the faint of heart, it's certainly an improvement over emacs or vi.

Pre-compiled versions of PINE are available for certain UNIX platforms. You can anonymous ftp to ftp://ftp.cac.washington.edu and look in the /mail directory. Pre-compiled versions for AIX3.2, HP/UX 9.01, Linux, NeXTstep, Solaris 2.2 (SPARC), and SunOS 4.1.3 (SPARC) are available in the unix-bin subdirectory under the pine directory. If not, you'll need to compile your own version. The source code is available in the pine.tar.Z file.

To customize PINE's behavior, edit the file .pinerc in your home directory. The configuration items are explained fairly well. There's not a whole lot to do here, but make sure you set personal-name, smtp-server (if you're using SMTP), and inbox-path (usually /usr/spool/mail/yourid).

Remote Mail Clients The "Common UNIX Mail Programs" section has generally assumed that you will run your mail program on the computer that contains your Internet mail. In many cases, however, you will wish to do all your mail reading on your personal computer, both because you may be charged for all the time you are logged onto your mail account, and because the programs on Macs and PCs are much friendlier than those on many UNIX systems.

What you want is a program that will call the system that receives your mail (or that will connect to it by whatever means necessary), grab all your new mail, and disconnect. Then you can read your mail at your leisure and enter new messages. If there are any new messages, the program should call your mail system and give it the new messages for delivery. As you have probably guessed, these programs exist and are known as mail clients.

The big difference between this approach and the "read your mail on your Internet computer" approach is that your mailbox is kept on your personal computer instead of on the Internet computer.

Obviously, there has to be a way for your mail client to talk to your Internet computer and transfer messages. There are several standards for this.

SMTP--Simple Mail Transfer Protocol Simple Mail Transfer Protocol (SMTP), or some variation of it (such as Extended SMTP) is used by computers on the Internet that handle mail to transfer messages from one machine to another. It's a one-way protocol--the SMTP client contacts the SMTP server and gives it a mail message.

Most mail client programs support SMTP for sending outgoing mail, simply because it's very easy to implement. Few mail clients support SMTP for incoming mail, because normally your mail computer can't contact your personal computer at will to give it mail. It's possible if your personal computer happens to be permanently networked to the mail computer via EtherNet, for instance, or if your mail computer knows how to use a modem to call your personal computer, but in most cases this isn't done.

POP3 (Post Office Protocol 3) The standard protocol used by most mail clients to retrieve mail from a remote system is the post office protocol POP3. This protocol enables your mail client to grab new messages, delete messages, and do other things necessary for reading your incoming mail. POP only requires a rather "stupid" mail server in the sense that your mail client needs to have most of the intelligence needed for managing mail. It's a very simple protocol, and is offered by most mail clients.

POP3 is somewhat insecure in that your mail client needs to send your account name and password every time it calls. The more you do this, the greater the chance that someone with a network snooper might get both. (We're not trying to scare you, but it's possible.) An extension known as APOP uses a secure algorithm known as MD5 to encrypt your password for each session.

Finally, note that standard POP3 has no way to send mail back to the mail server. There is an optional extension to POP3 known as XTND XMIT that allows this, but both the client and the server have to support it. Generally, a mail client uses SMTP to send messages and POP3 to retrieve them.

Desirable Features in Mail Clients Here are some useful features to look for when shopping for a mail client:

  • Delete on retrieve. The client should have the option to automatically delete mail on the server after it has been downloaded. If you only read mail using your client, you don't want a huge mail file building up on the server. On the other hand, if you only occasionally use your mail client you might want to leave your mail messages on the host so you can access them with your UNIX mail program.

  • Header only retrieve. You can tell quite a bit about a message just by looking at the message header. If reconnecting to your server is easy, you might want to have your mail program download only the header. Then, if you want to see the actual text of the message, the program will download that. This can be very useful if someone mails you a large file--you can be spared the time it takes to download the whole thing to your computer.

  • Name server support. A machine name such as mailserv.bozo.edu is actually just a logical name for a computer that is truly identified by its IP number, something that looks like Obviously, the machine name is easier to remember, and if anything happens to mailserv that requires the machine to move to a new IP address (such as a hardware upgrade), the administrators can map the name to the new IP address and you won't even notice. Those who are accessing the machine by number will have to find the new number and enter it. To turn the name into an IP number, though, your client needs to be smart enough to use a domain name server, which keeps track of what numbers go to what names.

  • POP3. This is the standard way for a mail client to retrieve mail from the mail server. If your client doesn't support this, it darn well better have some way to retrieve mail that your mail server understands (for example, IMAP).

  • Retrieve on start-up. The client should enable you to immediately contact your mail server and retrieve all unread mail whenever you start it, because this will probably be your most common operation.

  • Separate SMTP server. In some cases you will need to use a different machine to send mail (using SMTP) than you use to retrieve mail (using POP3). A good mail client should let you specify a different server for each.

  • SMTP. This is the standard way for a mail client to give mail to the mail server. If your mail client doesn't understand SMTP, it should have some special protocol that your mail server understands to do the same thing (unless you don't want to send mail, of course). Some mail clients support SMTP connections as a way to receive messages, which can be useful if you expect your computer to be hooked up to the network all the time.

  • TCP/IP, SLIP, or PPP. Your client should be able to access whatever network your mail host is on. Otherwise you'll just be talking to yourself. TCP/IP is the most common network protocol mail programs are likely to need, and PPP is becoming more popular. SLIP, on the other hand, is becoming less popular. If you have a SLIP or PPP driver that looks like TCP/IP to your mail program, all it needs is TCP/IP support.

  • Timed retrieval. The client should be able to automatically connect to your mail server and check for new mail every so often, and beep if it finds new mail. If you're calling in using a modem, you might want to make this every few hours, or even once a day, but if you're directly networked with the server (perhaps via EtherNet), you might want to check every five minutes.

  • Other mail items. A good mail client makes reading your mail as easy as possible. You shouldn't have to give up any of the features you enjoy under a UNIX mail program. These include a good text editor, header field filtering, an address book (aliases), and multiple mailboxes.

A Few Mail Clients Again, there are dozens of mail clients available. If your organization has standardized on one of the big ones, such as cc:Mail, Microsoft Mail, Lotus Notes, or BeyondMail, you're already familiar with one. These clients are a bit more "homegrown" on the Internet and have at least a demo version you can try first, before you buy the real (and expensive) program.

Eudora Eudora is a full-featured mail client for Macs or PCs running Windows. It comes in two sub-flavors: Version 1 of Eudora is free, and Version 2 and above are commercial. Obviously, Version 2 has nifty features not available in 1, but 1 is pretty powerful by itself.

Eudora is fully windows-, menu-, and icon-driven, so you are bound to like this program. Eudora pretty much has it all--features galore. The only thing we could ask for is a native OS/2 versionÉ

You can download a copy of Eudora Lite software for Macintosh and Windows platforms by pointing your Web browser at http://www.eudora.com/freeware. To use Eudora Lite, you must have a mail account on a POP server to receive mail, and access to an SMTP server to send mail.

Eudora Pro Mail is sold in a variety of pricing plans, starting at $89.00 for a single user license. Check out the QualComm website at http://www.qualcomm.com for more information, or call 1-800-2-Eudora.

Pegasus Mail Pegasus Mail runs on Novell and supports MHS and SMTP. It has DOS, Windows, and Macintosh versions, which gives you a wide range of platforms with a single program. There are a number of utilities available for use with it, such as Mercury, which is an SMTP gateway for Novell. It's fairly flexible in allowing you to set up user-defined mail gateways and has a large features list.

It's got its own text editor, which is integrated with the rest of the program, although if you're attached to your text editor (Ron couldn't give up QEdit), you can define your own external editor.

To find all the versions and add-on utilities, you can access the Web site http://risc.ua.edu/pub/network/pegasus. The software is free! However, there is a charge for printed documentation. Please see the Web site http://risc.ua.edu/pub/network/pegasus/FAQs/manuals.faq for more information. You can contact David Harris by fax in New Zealand at (+64) 3 453-6612.

This is a DOS version of the UNIX PINE mail program. You can have the same mail interface on your UNIX and DOS platforms. PINE's big limitation is that it doesn't support POP3--it only supports IMAP and SMTP. For more information on PINE, see the "Common UNIX Mail Programs" section where the UNIX version is discussed.

To get it, anonymous ftp to ftp://ftp.cac.washington.edu and look in the /mail/pine/pcpine directory. Grab the file that's appropriate for your networking software: 32-bit Windows and NT (pcp_32.zip), 16-bit Windows version 3.x (pcp_w16.zip), FTP Inc's PC-TCP (pcp_pct.zip), Novell's LAN Workplace for DOS (pcp_lwp.zip), Sun's PC-NFS (pcp_pcn.zip),and the WATTCP/Packet Driver (pcp_wat.zip). It should be noted that the Winsock versions are not complete Windows application, with a detailed graphical user interface (GUI). The interface is similar to the UNIX and DOS interfaces with a modest GUI.

Simeon Simeon, formerly known as ECSMail, is impressive for its wide range of support. It includes not only a mail client, but a mail transport and handling service known as Simeon MessageStore, so you can build a complete mail system. It includes a number of features, including sharing of user documents, address books, and folders, as well as cross-platform compatibility and Kerberos and PGP security options. The server currently runs in Solaris, AIX, IRIX, HP/UX, Digital UNIX, SunOS, and Linux environments. The client is available on Windows, Macintosh, and UNIX environents. We're talking enterprise-wide solution here, if you're into that level of standardization.

For more information, visit ESYS Corporation at http://www.esys.com.

Other Mail Programs/Clients This isn't all that's available for mail, by a long shot. Read the USENET group comp.mail.misc for more information.

Mailing Lists

With e-mail you can carry on a conversation with another person. But why not with three others? Easy enough--just use the Cc header or specify multiple recipients on the To header. What about hundreds? Well, that might be tough. But what if there were enough interest in something (such as the band REM) that someone agreed to serve as a central dispatch point? All mail to that account would be sent to all other people in the discussion. This is known as a mailing list, and they are quite popular. The REM list mentioned has over 800 subscribers.

Clutter The first thing you have to realize is that when you join (subscribe to) a mailing list, all of a sudden you're going to have a lot of messages in your mailbox. Can you handle the extra time it's going to take to read these new messages? Are you paying for mail? Many people don't comprehend exactly what they're getting into when they sign up for a mailing list. Remember to save the instructions on how to un-subscribe from the group, so you don't send your un-subscribe request to all the members of the group and feel like a fool.

Finding Lists First you need to find some lists. Every month several informative postings are made to the USENET group news.answers, describing hundreds of mailing lists and how to subscribe to them. For example, Stephanie da Silva posts "Publicly Accessible Mailing Lists." If you have USENET access, news.answers is your best bet. Perhaps some of the people you correspond with know of some lists.

If neither approach works, you can use the uga.cc.uga.edu mailserver described in the following section.

LISTSERV Sites LISTSERVers are nifty automatic programs that handle much of the drudgery involved in maintaining a mailing list. There are several such LISTSERVs, but you need only one to get started. We suggest you use listserv@uga.cc.uga.edu. Others include listserv@mizzou1.missouri.edu, listserv@jhuvm.bitnet, listserv@vm1.nodak.edu, listserv@ucsd.edu, listserv@unl.edu, LISTSERV@PSUVM.PSU.EDU, and LISTSERV@SJSUVM1.SJSU.EDU.

Commands to these sites are simple. You can give a new instruction on each line of the body if you like, although generally most of your requests will consist of a single line.

To start with, try sending mail to listserv@uga.cc.uga.edu with only the text help in the body of the message (the subject doesn't matter). You should get back a list of valid commands. Probably the most interesting for you will be listserv refcard, which returns a reference card and lists global, which returns a big list of all known mailing lists on many LISTSERVers--it's over 300,000 bytes. You're in mailing list heaven! If that's too big, try just lists.

Joining and Dropping If your mailing list is managed by a LISTSERVer, joining a list is easy. Send mail to listserv@domain, with the following message line:

SUB LISTNAME Firstname Lastname

LISTNAME is the name of the list, such as HUMOR. Firstname and Lastname are your first and last names.

To sign off the list, use this:


Do not send your un-subscribe request to the mailing list itself. You'll just irritate people and they'll laugh at you.

If you would rather get one mailing a day--consisting of all the posts to the mailing list in one big chunk--rather than receiving dozens of little messages during the day, use this:


To get each piece as it is sent, use this:


There are other commands--the help command should get them for you.

If the mailing list isn't being handled by a LISTSERVer, you're at the mercy of the mailing list maintainer as to how subscriptions are handled.

Generally, the address to send messages to for a mailing list is this:


The address to send messages to for subscribing and un-subscribing is this:


However, you can't always count on these. Sigh. In this case you have to rely on the instructions for the specific list, which you need to get from the maintainer or a friend.

Automatic Mail Sorting

We're not going to go into too much detail about mail sorting because it's a rather complex subject, but sometimes you get to the point where you can't treat your incoming mail file as a single entity.

We get literally hundreds of messages a day, and we would go insane if we didn't use a program known as a mail filter. These look at your incoming mail, and based on criteria you set regarding the contents of header items or message text, they sort the mail into several mailboxes before you even see them.

For instance, Ron subscribes to several mailing lists. He routes messages from each of these into a separate mailbox for reading at his leisure. He has USENET voting ballots arriving all the time--these go into a special voting file for processing by the voting software. Everything that's left goes into my general mailbox for normal reading.

Actually, mail filters can often do more than this. You can use them to selectively forward mail to other users, or to send automatic responses to certain messages. You can even have them send only a single informational message to anyone who mails you while you're on vacation, no matter how many messages they send you during that time.

The drawback to a filter program is that they can be tough to set up, unless you're using a mail client with the capability built in (for example, Eudora). You need to carefully check your configuration files to make sure you aren't accidentally dropping messages on the floor!

procmail procmail is probably the most popular of the mail filters. You have quite a bit of control over your messages, and can even pass them through other programs, such as a formatter, before they are saved. It can execute other programs on demand, and can be used to run simple mailing lists or mail servers. It's been extensively tested, it is stable, and it is fast. Be careful, though, that you don't accidentally tell it to send some of your mail into a black hole.

You can get the latest version by anonymous ftp to ftp://ftp.informatik.rwth-aachen.de as /pub/packages/procmail.

deliver Although procmail is the king of the hill for mail filter programs, we personally like deliver. You write shell scripts to handle all incoming messages. This requires more work on your part, usually, than would procmail, but it's very clean, almost infinitely flexible, and limits what you can do with your e-mail only to how well you can program scripts. The speed shouldn't be too much of a concern on that fast machine of yours.

We found deliver by anonymous ftp at sunsite.unc.edu as ftp://sunsite.unc.edu/pub/Linux/distributions/slackware/contrib/deliver.tgz .

mailagent mailagent is another well-known e-mail filter. This one is written in the perl language, which again means that you can do anything with your e-mail by extending mailagent yourself (if you know perl). It comes with quite a few built-in features. We would suggest this if you know perl. Anonymous ftp to ftp://ftp.foretune.co.jp and get /pub/network/mail/mailagent .

elm elm comes with a support program named filter, which does mail filtering.


As described in the introduction, USENET is the world's largest electronic discussion forum. One of the most popular features of the Internet, it allows people all over the world to discuss topics and exchange ideas on a wide variety of subjects.

One way to describe USENET is in terms of e-mail. Think of your mailbox, with all its new and old messages. Imagine what it might be like if everyone on Internet could read that mailbox, enter new messages, and leave replies. Now imagine having 20,000 mailboxes. This is analogous to how USENET works.

USENET is a huge public messaging system. It is divided into thousands of discussions of different subjects--each separate piece is known as a newsgroup, or group. When someone enters a message while "in" a group, that message goes to all other USENET sites in the world, and people reading that same group can read the message and reply to it if they care to. Generally, there are dozens of different conversations (also known as "threads") going on in any particular group--each is distinguished by a subject name, much like the Subject in a mail message. There are thousands of new messages posted each day.

USENET is commonly thought of as being the same thing as the Internet, but they're not the same thing. The Internet is an international network of computers tied together via dedicated lines. USENET is just one of the services that uses the Internet. If you're familiar with bulletin board systems (BBSes), you might think of the Internet as the BBS hardware, and USENET as the message bases.

Not all computers on the Internet have USENET (it can take a lot of space!). Not all computers carrying USENET groups are on the Internet--like e-mail, some systems call Internet systems to exchange USENET messages.

USENET Is Usenet Is NetNews Frankly, capitalization standards on Internet are quite relaxed. You can call it USENET, you can call it Usenet, you can call it UseNet. People will know what you mean. If you call it UsEnEt, people will start edging nervously for the exits. You can even refer to it by the ancient moniker Netnews (or NetNews). People will understand what you mean.

You can call the subject groupings into which USENET is divided groups or newsgroups. Please don't call them BBoards, as, for some reason, this upsets some inhabitants.

USENET Is Too Big USENET comprises gigabytes of new posts a day and thousands of groups. Your goal is to find as much possible useful information on subjects that interest you in the time you allot for yourself each day.

USENET Is an Information Bonanza If you're interested in something, it's probably talked about in some group on USENET, and the amount of information is staggering. It can quickly become your prime information source for several of your interest areas.

USENET Is a Noise Overload That information is buried among lots of noise--things you aren't interested in or posts that are of no use to anybody and may even be designed to confuse. Your goal is to separate the wheat from the chaff with maximum efficiency--hopefully keeping the wheat.

USENET Is a Controlled Anarchy USENET isn't an anarchy in the popular sense of being total chaos. But while anarchy excludes outside control, it doesn't preclude self-control, and USENET is a Web of written and unwritten agreements on the proper rules of behavior. Your goal is to avoid violating these codes of behavior until you know enough about them to decide when they can be broken.

USENET Messages USENET messages are much like the Internet mail messages described earlier in this chapter--they consist of a header, which has information about the message, and the body, which has the actual message. They even use the same format as mail messages, and most of the same headers are valid. There are a few new ones, which are covered in the following sections.

The USENET Distribution Model Every computer that gets USENET keeps a database of USENET messages. When a new message is entered, it is sent to neighboring USENET sites using NNTP (Network News Transfer Protocol). These distribute the post to other sites, until it is on every machine on USENET. There are various mechanisms to prevent a message from showing up on the same machine more than once, which we don't need to get into here. Only occasionally does a broken machine (usually a FidoNet gateway) regurgitate old articles back onto the Net.

Because posts can take different paths to reach different machines, there's no guarantee that you'll see a specific post before you see the reply to the post. For example, someone posts a message from Machine A, which sends the post through slow Machine B to get to your machine. It also sends the post to another machine, C, which gets it immediately. Someone there replies to it quickly, and C sends out the post to its neighbors, including Machine D. Machine D sends the reply on to you, where you see it immediately. In the meantime, the original post still hasn't gotten past Machine B to your computer. This is fairly common, although the scenario is usually more complicated. Don't be alarmed.

We said that all machines get all posts. Well, sort of--because USENET is so huge, many sites only carry a subset of all the available groups. A site won't get posts for groups it doesn't care about, or if it does, it won't keep them. In addition, there's something called a Distribution header that you can put in your message to try to restrict its distribution to a geographical area, such as San Diego. This is useful for messages that affect only San Diego.

Newsgroup Names Newsgroups are named like this:


This is a hierarchy reading down from left to right. Reading the group name, you have a computer group for computer systems from IBM, the PCs to be exact. You're talking about games for those systems, more specifically action games.

Here's another one:


You have a group for talk about politics, more specifically gun control. We'll talk more about these hierarchies later.

The newsgroup with which your post is associated is given in the header of the message, in the Newsgroups item. It looks like this:

Newsgroups: news.announce.newgroups

Unlike traditional bulletin board systems, each post can go in multiple groups! If we do this:

Newsgroups: alt.usenet.future,news.groups

my post will appear in both groups. This is known as crossposting. While you should know it is possible, you shouldn't actually do this until you've looked around a while, because frivolous crossposting is frowned on.

In fact, there's another header that can be used to send any replies back to a specific group. For instance, you might make a wide informational post to several groups, but specify that the discussion (if any) should be only in a single group. This is the Followup-To header. Together, the headers look like this:

Newsgroups: rec.arts.comics.misc,rec.arts.comics.strips,
Followup-To: rec.arts.comics.animation

Remember from the e-mail header discussion that one header can spread over several lines, as long as succeeding lines are indented. That's what you did to split Newsgroups over two lines. All replies to the post will go to rec.arts.comics.animation, unless the person replying overrides that.

Crossposting can be abused, but more on that later.

Threads An original post and all the replies to it are considered to be a single "thread" of conversation. This can actually look more like a Christmas tree than a straight line, as there are replies to replies, and replies to those replies, which branch off until each sub-branch dies of finality or boredom.

Each USENET message has a Subject associated with it that is supposed to summarize the contents of the message (although this is often not the case). One way to track a thread is to note the message subjects, which those who reply to the post are supposed to preserve until the discussion wanders too far from the original subject. The only way to fully keep track of threads is to use a threaded newsreader, which is discussed in the next section.


The first item of business is which program you will use to read USENET. Your choice of these programs (known as newsreaders) can hugely impact how you read the Net, how much information you get out of it, and how much garbage you have to sludge through.

rn (readnews) rn is free, so there's a good chance the system you use to read mail has it, and a good chance that it will be offered to you as your default newsreader. Avoid using it if you can!

Back when rn was first written, one person could read every single message posted to USENET and still have time for a life. It reflects those simpler times--its default is to dive in and show you all the messages in the group, one at a time.

This sounds reasonable, but it's a fact that the majority of the posts on most newsgroups you will read are of no interest to you. There will come a time when you no longer wish to slog through every post on the group and become choosy about which posts you read. rn does not let you do this easily. Since popular groups can get over 100 messages a day, rn's preference for showing you every single message really wastes your time.

Message Overview and Threading Just how much of your time rn wastes is evident the first time you run another news program that first gives you an overview of the group. It provides you with a summary line for each post, just as a mail program does--it gives you the poster's name, the subject, and possibly the message size. Scroll through the pages of summaries and choose which posts look interesting. When you're done choosing, read the posts you've selected.

This is already a major shift in concept--instead of having to read everything to decide what you don't want to read, you are choosing which few posts look interesting.

Now we'll add another concept to that--the newsreader should keep track of which posts are related to each other and group them, so you can select or ignore whole groups of posts at once. It can do this by noticing the threads and subject names mentioned before.

These two changes account for an almost unbelievable difference in speed between a good threaded newsreader and something like rn. Now that we've gotten good at determining which threads look promising and which don't, we can read USENET literally 100 times faster than I could before. we'll recommend some right after this.

Kill Files What if you knew a particular subject were of no interest to you, and that you would never read a post by that name again? It's a waste of time for the newsreader to even offer it to you. This goes doubly for certain people who do nothing but generate noise on USENET. It'd be nice never to see any of their posts.

This is the purpose of a kill file. In its most primitive form, you give it a subject or poster whom you never wish to hear from again. Usually you'll be allowed a little bit of fine-tuning--you may wish to kill that subject only in one particular newsgroup.

In a group where over half the discussion is about something you don't care about (for instance, a particular author on a fantasy group), having the newsreader kill all articles relating to that author can save you time and make you less likely to lose valuable articles in the crush.

There's also the opposite of a kill file. If you know you will want to read every posting on a particular subject or from a particular person, a selection file lets you have the newsreader automatically mark them for reading. This isn't quite as common as the kill file.

Which Newsreader? This is one of those religious preference questions, similar to "What's the best editor?" We would say that any newsreader that has the following features is a contender:

  • Offers a message overview that lets you select messages to read before actually reading any.

  • Enables you to group posts together by common subject and/or thread.

  • Lets you specify authors or subjects that will be automatically killed by the newsreader so you never see them. You should be able to do this for one group or for all groups.

  • Lets you do the opposite--automatically select certain authors or subjects.

The rest is just gravy, although we're tempted to add "Is very configurable" to the list.

Unfortunately, compiling and configuring a new newsreader can be a very hairy business, especially if you're new to USENET. For now, you might have to use whatever your system has available--if there's nothing but rn, pester your administrator.

NN (No News) NN is fast, flexible, very configurable, has very nice kill and selection options, sorts messages in several ways, and offers several ways to manage the old messages. It even has its own group, news.software.nn. This is definitely worth a look.

Other UNIX Readers Other UNIX readers that are worth looking at (if your site offers them) are TRN, STRN, and TIN. TIN happens to have the largest number of UNIX readers at this time. They meet or exceed the criteria given. You can also read the USENET group news.software.readers for the latest information.

Netscape The Netscape Web browser provides facilities for tracking, replying to, and initiating user group postings. To access a particular news group, invoke the "File" and "Open Location" menu items, and enter the URL for the news group. The URL for a news group consists of the word news, followed by a colon (:) and the name of the group. For example, to access the Oracle database news group, you would enter news:comp.databases.oracle. You can even use an asterisk (*) to display all items at a particular level in the hierarchy. For example, the URL news:comp.databases.* would list all database discussion groups.

When you have opened a particular group, a set of command buttons appear that perform some common Usenet functions. For example, buttons are available to subscribe/unsubscribe to groups, as well as initiate and receive postings.

When you subscribe to a newsgroup, the entry is maintained for future use by the Netscape software. The list of all of your newsgroups can be accessed by selecting the "Directory" and "Go To Newsgroups" menu options.

Other Readers For other systems, you should be reading the USENET groups comp.os.msdos.mail-news and news.software.readers. There are, most likely, programs out there for your system. For instance, there's Trumpet for DOS and WinTrumpet for Windows. If you have a complete TCP/IP package, you might want to see if it includes a mail reader (other than rn).

Offline Readers Just as you can use a mail client to do your mail processing off-line, you can use an off-line reader to do your USENET processing off-line. This is useful if you're paying by the minute for your connect time. See the group alt.usenet.offline-reader for help with these.

Finding Your Groups

There are literally thousands of newsgroups in which you can participate. This section helps you find the groups in which you are interested.

The Hierarchies As mentioned earlier, group names are arranged in hierarchies from left to right. The left item is known as the top-level of the hierarchy. In the case of a group such as this:


it is said that the group is "in the alt hierarchy" (or "alt. hierarchy"). The Net is organized into eight major hierarchies, one anarchic hierarchy, and a bunch of smaller, less important hierarchies.

The Big Eight Hierarchies The big eight hierarchies are the following:

comp. Computer topics. This ranges from programming to hardware to peripherals to folklore. Most popular computer systems and operating systems have their own set of groups here.
misc. Miscellaneous. When nobody can figure out where to put a new group, it often ends up under misc.. For example, the misc.jobs groups don't clearly belong in any of the other six hierarchies, so they go under misc..
news. The business of USENET. This is where people talk about USENET administration, propose new groups, and argue about when USENET is going to die of its own excesses.
rec. Recreational topics. This is where most of the hobbyist stuff, such as rec.crafts.jewelry, goes. It also contains artistic and music discussions, crafts, and more in that vein.
sci. Science. This is where the math and physics types hang out. Medical, too, such as sci.med.radiology.
soc. Social topics. This is a grab bag of many cultural groups for different regions, such as soc.culture.chile, social research groups, religious discussion groups, and alternative lifestyle groups. It's something of a milder version of the talk hierarchy.
talk. Heated debate. Incredibly vicious personal attacks by people (most of whom seemingly haven't even heard of the concept of "critical thinking") that go on interminably about all the things you would expect--politics and religion. See talk.politics.mideast, for example. No debate here is ever really ended.
humanities. Literature and fine arts. This hierarchy contains a wealth of discussion regarding music,philosophy, and fine art. For example, see humanities.lit.author.shakespeare.

These hierarchies are sometimes known as USENET proper and are considered by many news administrators to be the only "real" hierarchies. For a new group to be created in any of these eight hierarchies, it has to go through a group interest polling procedure that discourages overly frivolous group creation. More on this later.

The Sewer of alt. Actually, some of my favorite groups are in the alt. hierarchy, but it has a mixed reputation. Unlike the big eight hierarchies, anyone who cares to send a group creation message for a new group can make an .alt group. This is often followed by someone else sending out a group removal message if they consider the group outrageous, but still it's a lot looser than the big eight groups. For instance, one group in the alt. hierarchy is alt.elvis.sightings. The alt. hierarchy is also controversial because groups such as alt.sex.stories reside here, and because of the alt.binaries.pictures groups, which involve huge amounts of message space chewed up by pictures. Because of all the hassles involved with alt., many sites don't carry any of the groups.

We consider that a shame, because alt. is also a haven for groups that can't find a home in the big eight hierarchies. For instance, discussions of TV shows are generally considered transitory, since interest in the show will probably eventually die out. For this reason, people are unwilling to vote to place a group for a show such as "Twin Peaks" in the big eight hierarchies, so they end up in the fertile alt.tv section of the alt. hierarchy, where they are the source of years of enjoyment to many (we feel like a commercial).

alt. is also nice because groups can be quickly created, unlike in the big eight, where it takes two months. So a group such as alt.current-events.la-quake can be created overnight in response to special situations.

alt. has become somewhat more organized in recent years. Anyone can create a new group, but anyone can also send out a removal message, and there are several alt. volunteer police who will summarily do so if the group hasn't been proposed on alt.config or if it's clearly a joke group. This has cut down on the number of "triple-word" joke groups, such as alt.french.captain.borg.borg.borg, which were first made popular by the group alt.swedish.chef.bork.bork.bork. But it isn't the big eight by a long shot, and we'd hate to see the day when it is.

The Other Hierarchies Anybody can create a hierarchy for a specialized reason (all you have to do is persuade other sites to carry the groups), and there are often good reasons for doing so. Especially useful are hierarchies for regional groups. For instance, there are many ca. groups for discussion of California topics (for example, ca.politics). This keeps local stuff where the rest of the Net doesn't have to read it. Cities that have active Net communities often have their own hierarchies, such as sdnet. for San Diego. The same goes for universities (ucsd.) and companies.

There are other hierarchies that are intended to be more widely spread, but are limited for other reasons. Many of the BITNET mailing lists are echoed on USENET in the bit. groups. Much child education discussion goes on in the k12. groups.

A few hierarchies have made a bid for the big eight but have failed. trial. and us. both failed from lack of interest, although at this time people are trying to resurrect the us. hierarchy.

Where Do I Go? Back to your original question--how do you know where to go for a particular subject? There are several ways.

First, your newsreader may be smart enough to find part of a group name. If I tell NN to go to group beer, for instance, it asks me if I mean alt.beer or rec.food.drink.beer. In this way I just found two groups, and if I look for brewing I'll find more.

Dave Lawrence posts "List of Active Newsgroups" and "Alternative Newsgroup Hierarchies" to news.groups and news.answers. This is the mother lode--all "official" groups (although with alt. "official" doesn't mean much), each with a short description. Get it if you can.

Your newsreader probably has a way to show you a list of all groups. This might take some digging to find. (It's :show groups all in NN.)

Next, you can look through a file your newsreader leaves in your home directory, named .newsrc or something similar. This is just a list of group names, but they might give you some hints.

You can always ask for help on the group news.groups.questions, which is just for this sort of question.


This is perhaps the most important piece of this USENET section. You can muddle through the rest, but your use of netiquette (Net etiquette --more geek hilarity) determines how you are percieved by others on the Net--and a reputation can be a very hard thing lose. You may be shocked to engage in a debate and find someone dredging up a post that you submitted six months ago.

Newbie If you're reading this, you're probably a newbie. That's USENET slang for "new person." It's not a bad thing to be a newbie, nor is it a hanging offense (or even something most people will look down at you for). People just treat newbies with a bit more caution, because they know that people who haven't grasped the local customs are more likely to commit a faux pas.

Even if you've been posting on your local BBS or FidoNet for 10 years, you're still a newbie. The customs are unique. Welcome to the Jungle; please obey our laws.

Newbie No More The best way to learn the customs of USENET is just to read it without posting for six weeks. You also get the feel of each group--each one has its own special ambiance.

The length of time you should read before posting varies according to what you feel comfortable with. Most people on USENET are actually full-time "lurkers"--they just read and don't post. Sometimes this is by choice, sometimes it's due to software or administrative limitations. But it's estimated that there are more than 100 readers of a group for every person who posts to it.

Signature Files Most newsreaders enable you to attach a signature to every post you make. It takes the contents of the file .signature in your home directory and attaches it to the end of the post. This is intended to be used for identification purposes--perhaps your name and place of work if it's not obvious from the header. Or sometimes it's used for disclaimers.

By far, the most common use is as a small personality statement--this usually involves your name, Internet address, a favorite quote, and maybe a small picture drawn with text characters. We often identify people by their signatures, rather than by looking at the header, since they're immediately recognizable by general look.

Excessive Quoting Because of the nature of the Net, it's easy to lose track of where you were in a conversation or debate. If someone just replies, "That's the stupidest thing I ever heard!" you may have a hard time determining just who they were talking about or which side they're taking. Comments need a bit of context.

For that reason, most news software "quotes" the entire previous message into your editor for you. It does this by putting a quote character, usually a >, to the left of each line of text. You are supposed to trim this message down to the bare essentials necessary for context to be established for your following comments.

A lot of people seem to be incapable of grasping this concept. In the most heinous cases, they quote pages and pages of a previous message, including the person's signature, only to add a single line comment such as "This is stupid." Please trim your quotes. It means less space spent storing redundant data, it means people can read your message quicker, which makes them happier, and it makes your comments much more understandable.

It's up to your personal preference, but we've generally found that we never need more than about four lines of text from the previous message for any point we wish to make. In responding to a complex message it's quite acceptable to quote some text, reply to it, quote some more text, reply to it, and so on. You can even quote the entire message doing this in a few cases, but since you're doing it to establish context for each of your quotes, it's considered acceptable.

Also, watch how deep the quotes go. Someone quoting your message will also quote text you quoted--that text then has a >> in front of it. Too many levels of this gets confusing and makes it more likely that someone will be mis-attributed.

One final caution--while your quoting doesn't have to preserve the full context of the person's message, using "selective quoting" to make it appear that someone argued a point they did not make is also frowned upon.

Pyramid Schemes Occasionally, you'll see something about "Make Money Fast," or some other type of get rich scheme. Don't Do It!

This chain letter never goes away, and since the people who post it tend to be very obnoxious about where they post it (some even post it to every single group on USENET--think about that), people are not tolerant of this at all. You'll get a few thousand upset e-mail messages that will probably shut down your machine and make your administrator less than amiable. Also, it may be illegal.

Excessive Crossposting Earlier, we showed how to make a post go to several groups at once, which is known as crossposting. Crossposting is hardly ever necessary, and only once in a blue moon is it necessary to crosspost to more than four groups at once except for special informational USENET postings.

Newbies usually mess up on crossposting a plea for help--they're not sure where to ask for it, so they crosspost to any group that looks like it might have something to do with it. They always manage to hit a few inappropriate groups, and between the complaints about the crossposting and the alienation of those who might have helped due to the crossposting, the newbie doesn't get the question answered.

Take the time to look at a few messages in each group to see if it looks appropriate. If you find one that looks right, post to that one group asking your question. You can note that you're not 100 percent sure if you're in the right place and ask for better directions. People are usually very friendly to this type of posting. And, of course, you can ask on the group news.groups.questions where you should direct your questions.

Read the FAQ! One day, the people of USENET noted that new users all tended to ask the same few questions. They decided to create a Frequently Asked Questions List (FAQ--the L just didn't sound good), which would present the answers to these questions, just preventing them from being asked over and over and over and over and over and over and, wellÉ

That worked pretty well, and now many groups have FAQs. This means that if you pop up on a group and ask a question that is in the FAQ, you're going to get some very negative responses ("Read the FAQing FAQ!") If you enter a new group for the purpose of asking a question, make sure you look for a post with "FAQ" in the title. If you find any, read them first. Your answers (and answers to questions you hadn't even thought of yet) may be in there.

If you're looking for information in general, most FAQs are posted to news.answers. You can go there and browse all the beautiful FAQs.

Keep the Flaming to a Minimum In Net parlance, a flame is a heated attack on someone or something. An extended series of exchanged flames (flames are catching, it seems) is a flamewar.

An occasional flame is usually warranted and cleans out your system, but be careful of letting it get away with you. Some people have a reputation of being much too quick to flame--even an honest mistake might earn you a litany of your mother's dating habits from this kind of person. Others have the reputation of enjoying flaming just for the sake of doing it. Actually, there's a whole group for these people (alt.flame).

If you ever want to acquire a reputation as being a cool-headed, capable debater, however, watch yourself. We find it useful to let the message sit for five minutes, then come back to it. You may find, as we do, that a non-antagonistic-appearing message is actually more damaging to the other person's case. And if you watch carefully, you can see what the Net pros have learned: how to flame with a precise acetylene torch, deftly vaporizing someone's ill-thought post with facts, style, and wit. This is much more devastating than the standard "Oh, yeah? Moron!" type of argument.

Don't Bluff Trying to pretend you know something you don't is bound for failure on the Net much more often than you might think. There are a large number of well-informed people on the Net (some seem to be virtual information sinks on certain subjects), and chances are good that someone who knows more than you do is going to call your bluff.

This extends to less drastic claims as well--if you're going to make a claim, you had better be prepared to back it up. It's not known as the Net of a Million Lies for nothing, and most users who have been there awhile tend to be a bit skeptical. And then there are the people who actively oppose your position and have the facts to argue their sideÉ

It's somewhat sad to see someone backing down from an ill-advised position, so be careful. And if you should ever be caught in an out-and-out falsehood, you might as well start humming a funeral march.

Whew! Looking back on that list of "Don't do this," "Beware of that" is a bit exhausting. Again, we don't want you to be afraid of USENET--the worst that will probably happen if you do screw up royally is that someone writes you a nasty letter. Remember, you can absorb all this without risk just by reading newsgroups for a period of time before you post to them.

USENET Miscellany

Wait, we're not done with you yet--we have so much more to give! This section contains some random bits of advice and frequently asked questions.

Creating a New Group This one comes up often. "Hey, there's no group for discussing indigo feebles! How do I start one?"

In this case, we doubly recommend reading both news.announce.newgroups and news.groups for a three-month period before you try to create your own group. This seems extreme, but it's a whole new level of politics, written and unwritten rules, and various subtleties.

To help, you should grab "How to Create a USENET Newsgroup" and the "USENET Newsgroup Creation Companion" from http://www.uvv.org. The first is the official guidelines, the second is a helper written by Ron.

Basically, creating a new group boils down to this: You issue a Request for Discussion (RFD), crossposted to news.announce.newgroups, news.groups, and any interested groups. For more information on RFDs, see http://www.uvv.org/rfd-info.html. It should give the proposed name of your group, its charter, and why it should be created. Follow-up discussion will take place in news.groups. To facilitate this process, fill out the questionaire at http://www.uvv.org/cfv-questions.html. If you need any assistance, contact the Usenet group mentor program at http://www.uvv.org/uvv/group-mentors.html.

If the discussion yields any major changes to the name or charter, you'll need to issue a second RFD explaining the changes. This repeats until a consensus is reached.

The Call for Votes (CFV) can be held 30 days after the first RFD. You should contact the USENET Volunteer Votetakers (UVV) at contact@uvv.org to have your vote run by an experienced group of neutral votetakers. The UVV will take care of the voting, which runs 22 days. At the end of this time, the votes are tallied. If your proposed group has at least 100 more YES votes regarding its creation than it has NO votes, and if there are twice as many YES votes as NO votes, then the group passes and will be created by the news.announce.newgroups moderator after five days or so.

All this is a massive oversimplification, but it gives you some idea of the work involved, and the time period (two months). You might consider whether you want an alt. hierarchy group instead (read alt.config) or if you want to start a mailing list.

How Can I Get That Person Off the Net? Uh oh... someone called you some nasty names or said something you consider offensive. Now what? Well, now you deal with it by yourself. Among the advantages of the Net is that someone with an unpopular viewpoint can't be kicked off just because their philosophy isn't in line with what the Acceptable Opinions Squad has decided are the required ways of thinking this year. This is somewhat of a disadvantage in that some people use it as just an excuse to be rude. You're an adult--you can presumably figure out some way to deal with it, such as just ignoring the person. If you go complaining to someone's administrator just because they called you a name, you're probably going to be disappointed, not to mention mocked.

There are a few situations in which it is considered okay to contact someone's administrator: if you receive an actual threat of violence and think it's serious, or if you are clearly defrauded by said person in a transaction that was arranged on the Net. You can probably see the trend here--if there was actual (or threatened) damage that occurred in the real world, you certainly might be justified.

Recommend Some Newsgroups! We showed you earlier how to retrieve the posting of all the newsgroups and their short descriptions. We could really send our page count through the roof by just including that here, but we'll settle for recommending a few varied ones that might interest you:

alt.binaries.* This is where all the pictures and other data are posted. You can get pictures, sounds, and music files among these groups.
alt.comic.dilbert Discussion group for the comic strip popular in the data processing community.
alt.fan.dave_barry Discussion group for humorist and syndicated columnist Dave Barry.
alt.folklore.computers This is anything you wanted to know (or didn't) about the history of computers. Some of it is even true.
alt.folklore.urban Randy Beaman knew this kid who drank Pop Rocks and soda at the same time, and his head exploded! Okay, bye. Folk tales.
alt.internet.services This shows what's where on the Internet.
alt.quotations This is just what it looks like--lots of quotations.
alt.support.stop_smoking Online assistance to help you kick the habit.
comp.lang.java This group discusses programming in Java, the popular programming language for the Internet.
comp.risks This is the RISKS digest--examining the risks involved with technology.
comp.sys.* Do you have a computer? It's probably got its own groups under comp.sys. Even the redoubtable HP 48 calculator has its own.
control This is where newsgroup creation and removal actually takes place. It's interesting to watch if you read alt.config or news.groups.
news.answers All the FAQs get posted here. It's information central.
news.future Shows the future of the Net--a bit whiny, but sometimes interesting.
news.groups This is for the discussion of USENET group creation and is the focus of a lot of USENET politics.
news.newusers.questions This is just what it looks like. Ask away! Or at least read this for a while.
news.software.readers Is your newsreader up to snuff?
rec.arts.movies There's lots of information here about, like, movies.
rec.humor.oracle This is the USENET oracle. It's definitely something different.
soc.genealogy If you are interested in tracing your roots, this group can be a big help.
talk.politics.misc Newbies seem to like to talk politics, but be careful! This is one of the most cutthroat groups on the Net.

Watch Out for Pranks

You may take USENET utterly seriously, or you may treat is as a playground for pranks. Most people fall somewhere in between, but there are a lot of people who lean towards the latter.

If you see something that seems too strange to be true, it probably is. Check the Newsgroups header line and look at the crossposts--if it's posted to a bizarre group, chances are someone's being funny. If you post a heated response, you'll just end up looking silly.

Look carefully at the Followup-To header--a favorite of those soft in the head is to send your reply to misc.test, alt.dev.null, or some totally inappropriate group. Whenever you reply to a message, you should always get in the habit of noticing which Newsgroups your message is being sent to so you don't get caught by something like this.

This baiting of the gullible is known as "trolling" and is quite a pastime on some groups, such as alt.folklore.urban. Basically, there are subjects that have come up so often that they're beyond Frequently Asked Questions and into "Good Grief!" status. After the subject has been dormant for awhile, someone who's been on the group awhile will make a post that ostensibly asks for information or makes a claim related to the subject. It'll be a post of the type that will make all newbies immediately want to write "Geesh, what are you? Stupid?" The group oldies will, of course, obtain great entertainment value from these posts. The more insulting, the better. You've been reeled in. How do you tell a troll from someone actually saying something stupid? Often, you can't unless you've been reading the group for awhile.


Talk is a program which allows two users to communicate in real-time using a split screen interface. A user "talks" to another user by typing text in one area of the split screen, and "listens" as the other user's text appears in another area of the screen. It can be used for users on the same system, or over a TCP/IP network.

Before initiating a talk session, you will need the other person's address. If the user is connected to the same local machine as you, the login name will suffice.

Next, you need to make sure that the other user is logged in. You can find out with the finger command. For example:

$ finger userid
leibniz 24: finger trimblef
Login name: trimblef                    In real life: Frederick Trimble
Directory: /users/leibniz/INFO780-543/trimblef  Shell: /bin/csh
On since Apr 28 00:21:37 on pty/ttys0 from ts2.noc.drexel.e

No Plan.

In the above example, the finger command indicates that user trimblef is logged on to the system on pseudo-terminal pty/ttys0. The finger command can also determine whether a remote user is logged in by specifying a remote address. For example:

finger userid@domain

After you verify that the user with whom you wish to speak is logged on, he must agree to talk with you. To initiate a talk session, first issue the talk command:

talk userid@domain

On the talk initiator's screen, the screen will clear, and the talk header will appear at the top of the screen:

[Waiting for connection...]

On the other screen, the following text will appear:

talk: connection requested by username@host
talk: respond with: ntalk username@host

After the user responds with the appropriate message, the connection is established. Everything that is typed at this point will appear on the other terminal, until the connection is terminated. The talk session is terminated when one of the users types control-c.

In certain situations, receiving a talk connect request can be disrupting. You can use the following command to disable any such request from a remote user:

mesg n

To enable such requests, use the mesg command with the y option:

mesg y

To see the current status of your talk request mode, use the mesg command with no options.

The talk command is based on a set of protocols that allows communication to take place. There are two protocols for the talk command: One is based on version 4.2 BSD UNIX, and the other on version 4.3 BSD UNIX. Unfortunately, these versions are not compatible. Therefore, you cannot establish a talk session between UNIX systems whose talk command is based on different versions of the protocol.

Another variation of the talk command is the ytalk command. The most interesting feature of ytalk is that it allows more than two users to partake in a conversation. In addition, it supports both versions of talk protocols. Therefore, the ytalk command can establish a connection with either version of the talk command.

To establish a ytalk session with multiple users, type the address of each user on the command line. For example:

ytalk mary@gwyned.edu fred@drexel.edu katherine@nova.edu

The ytalk command then splits the screen into several panes. Each screen is labeled with the corresponding user, so you always know who is typing.

If you need assistance with any ytalk options, simply hit the ESC key. A small menu of ytalk commands appears as follows:

    # a) add a new user to session                  #
    # b) delete a user from session                 #
    # c) output a user to a file                    #
    # Your choice:                                  #

TIP: Since typing is slow compared to real conversation, it can be annoying watching the other party backspacing over misspelled words. If you feel the other party should be able to figure out the intention of the misspelled word, it is considered acceptable to continue typing after a spelling mistake.
Also, it is not uncommon for more experienced users to abbreviate commonly used phrases. Here is a list of abbreviations that you may encounter:
BCNU Be seeing you
BRB Be right back
BTW By the way
BYE Good-bye
CU See you
CUL See you later
FYI for your information
FWIW For what it's worth
GA Go ahead and type
IMHO In my humble opinion
IMO In my opinion
JAM Just a minute
O Over
OO Over & out
OBTW Oh, by the way
ROTFL Rolling on the floor laughing
R U THERE Are you there
SEC... Wait a second
WRT With respect to

Internet Relay Chat (IRC)

Each day, thousands of people world-wide hold "keyboard conversations" using Internet Relay Chat (IRC). Like the ytalk facility, it allows multiple people to converse at the same time. When it is your turn to type, the characters appear on all other workstations that are logged in to the same channel.

NOTE: During the attempted Communist coup in Russia in 1993, an IRC channel was set up in order to relay eyewitness accounts of the event. IRC channels have also been set up during other natural disasters, such as earthquakes and hurricanes.

Basic IRC Structure

IRC uses a client-server model. The IRC "universe" consists of hundreds of channels with names such as #initgame. Users join (using their client software) in a channel that interests them and are then in conversation with everyone else who is on that same channel. You can talk with everyone or direct your comments to certain individuals. This is a flexible format that allows something as free form as a general babble to many pairs of private conversations to a game of IRC Jeopardy, which plays much like the TV show. Some channels are private.

In addition, IRC users have their own nicknames and become quite attached to them (since your reputation goes with your nickname, this is quite understandable).

Getting IRC Clients

Before you can do anything, you'll need an IRC client. You'll need to grab the source code appropriate for your machine and compile it.

You can get the UNIX IRC client by pointing your Web browser to ftp://cs-ftp.bu.edu. The software is located in the irc/clients directory. Look to see which file the symbolic link CURRENT points to--it will be linked to the latest UNIX source code for ircII.

A PC client running under MS-DOS, OS/2, or Windows can anonymous ftp to ftp://cs-ftp.bu.edu and look under /irc/clients/pc. You'll have your choice of several for each operating system. MIRC is now the most popular client for the Windows environment.

A Mac client can also anonymous ftp to ftp://cs-ftp.bu.edu and look under /irc/clients/macintosh. Grab the latest version of Homer you find there.

Connecting to a Server

Once you have your client, you need to figure out which IRC server you will be talking to. Anonymous ftp to cs.bu.edu and look under /irc/support. There should be a file named servers.950301 (the last number is the date, so that part will change). Grab this and look for a server that's close to you.

Then tell your client to connect to this server. With luck, it'll talk back to you and you'll be in the world of IRC.

Choosing Channels

Once you get on an IRC server, all commands start with a /.

/help gives you a list of commands. To get the new user help, do /help intro then /help newuser.

/list shows all the current IRC channels. It looks something like this, except that there will be a heck of a lot more channels:

*** Channel    Users  Topic
*** #wubba     3     Wherefore the wubba?
*** #hoffa     5     i know where the body is
*** #litldog   2     where oh where has he gone

/names might be more interesting. It shows who's logged on each channel and whether it's a private or public channel:

Pub: #wubba      @wubba jblow jdoe
Prv: *    marla donald ivana bill hillary
Pub: #litldog   @yakko dot

Then use /join channel to participate on channel. Here you might do a /join #wubba.

/nick nickname enables you to change to a new nickname in case your old one is too stodgy.

/msg nickname message enables you to send a private message to nickname. Use the /query nickname to enter a private conversation with nickname. Use /query to exit it.

If you get ambitious and create a channel (using /join on a nonexistent channel creates it), be sure to look at the /mode command, which lets you determine the behavior of the channel.

Need Help?

/join #Twilight_zone is where IRC operators often hang out, and some are willing to help. Just ask your question--don't announce that you need to ask a question first.

Bad Moves

Don't use someone else's nickname if you can help it--people are very protective about them.

Never type anything that someone asks you to type if you aren't sure what it does. You might find that you've just given someone else control of your client!

Don't abuse the telnet server. If you're going to IRC a lot, get your own client.

Further Info

More information on IRC can be found via anonymous ftp on ftp://cs-ftp.bu.edu in the /irc/support directory. IRC also has several alt. groups dedicated to it: alt.irc.corruption, alt.irc.ircii, alt.irc.lamers, alt.irc.opers, alt.irc.questions, alt.irc.recovery, and alt.irc.undernet.


Multimedia is defined as the presentation of information in which more than one medium is used at a time. Using animation and sound in addition to ordinary text is such an example. By using more than one medium, multimedia enhances our ability to communicate and understand one another. The advent of powerful desk top computers equipped with high resolution color monitors and stereo sound has increased the demand.

Internet Infrastructure

Delivering multimedia to the desktop over the Internet presents several obstacles. First, the Internet and its supporting protocols were designed to transmit 7-bit ASCII text in order to support e-mail and file transfer. Second, the original NSFNET was made up of 56K data communication lines. (The Internet backbone has been upgraded in recent years with higher network speeds). Although this was sufficient for its original purpose of supporting e-mail and file transfer, it is not adequate for supporting the growing demand for multimedia.

Files containing multimedia data require large amounts of disk space. When such files are transferred across a network, they require large amounts of network bandwidth. When a router handles a packet of data, it has no knowledge of data flow. It only sees individual packets and handles them separately. When transferred across a network using a connectionless oriented protocol like IP, individual packets of data may arrive out of order. The TCP protocol is responsible for reassembling the packets before they are made available to an application. There is also no priority information specified in the IP packet, so that real-time data could take precedence over other types of data with a lower priority. This type of protocol was fine for supporting applications such as e-mail and text-based chat sessions. It is not acceptable, however, for packets of data that are sensitive to time delay, such as real-time audio and video. Thus, in order to support large-scale multimedia, fundamental changes in the Internet infrastructure are necessary, including the data communication lines, routers, and protocols.

MIME Remember the technique used for sending binary data, such as graphics or sound files, over the Internet? Before it was sent over the Internet, it was converted to ASCII characters using uuencode. Although this technique works much of the time, there are instances where it can fail. For example, mail gateways that convert between EBCDIC and ASCII character formats have been known to modify some of the characters in uuencode format. While most versions of uuencode are interoperable, there is no one clear standard. As previously mentioned, e-mail headers undergo modification by MUAs and MTAs during the transport process. Occasionally, this header modification can corrupt what has been uuencoded. The MIME specification is more robust in that it is better able to survive header modification.

A specification known as MIME (Multi-purpose Internet Mail Extensions) was developed to enhance the multimedia capabilities of e-mail. MIME effectively extends e-mail capabilities, including:

  • Multiple objects within a mail message
  • Text with unlimited line lengths
  • Character sets other than 7-bit ASCII
  • Multi-font messages
  • Image, audio, and video data
  • Binary files

Mime handles encryption using a technique known as base64. This encoding scheme is designed to represent arbitrary sequences of octets in a 65-character subset of ASCII characters, including A-Z, a-z, 0-9, +,/, and =.

Most mail programs, including Eudora, elm, and mh, are MIME-aware. Most mail programs that support MIME perform encryption/decryption for you. If you receive a message in MIME format but don't have a MIME-aware mail program, you can decode it with the munpack utility. If you want to send a message to someone who has a MIME-aware mail program, you can encode it with the mpack utility. Both of these utilities are available for many platforms over the Internet free of charge. They can be retrieved via anonymous ftp from ftp://ftp.andrew.cmu.edu under the directory /pub/mpack. Please note that if you must resort to unpacking the MIME data yourself, you are still responsible for extracting the appropriate portion of the mail, say, with a text editor.

For more information, consult the Usenet group comp.mail.mime. The FAQ list is an excellent starting point. The detailed specification for MIME is described in RFC 1521.

NOTE: Although MIME is able to preserve the integrity of data during transport, it was never meant to translate data for compatibility between platforms. For example, the non-standard ASCII character for a bullet item with a word processor document is different on an Amiga than on a Macintosh. It is important to be aware of the target system to which you send data.

Delivering Multimedia Over the Internet As mentioned previously, the current Internet infrastructure is not adequate for supporting multimedia. This section examines two attempts at updating the infrastructure in order to deliver large scale multimedia.

RTP/RSVP The connectionless nature of the IP protocol does not lend itself to the time-sensitive nature of data packets carrying real-time audio and video. The Real-Time Transport Protocol (RTP) and the ReSerVation Setup Protocol (RSVP) protocols are currently being developed by the IETF (Internet Engineering Task Force) to make such multimedia support a reality. One of the major challenges of this effort is to minimize the amount of change in the existing Internet infrastructure to support them.

The initial specification of RSVP defines four levels of Quality of Service (QoS) without requiring wholesale changes to the Internet:

  • Guaranteed delay
  • Controlled delay
  • Predictive service
  • Controlled load

While these QoS specifications vary in the priority in which they are handled, each adds a higher degree of determinism to the time in which packets will be routed. RSVP/RTP advocates claim that this is sufficient for meeting the needs of multimedia applications.

The fundamental idea behind RSVP is to create a reservation with each router through which the data packets will pass. This reservation consists of a flow identifier, in order to identify the data stream, and a flow specification, which identifies the QoS that must be provided to the data flow. In essence, the reservation defines a contract for service between the network and the requesting application.

Multimedia applications will be able to access these protocols by using a WINSOCK version 2 compliant application programming interface (API). The interface calls will even allow specification of the QoS. Changing the API to support new features, while minimizing the amount of changes that need to be made to existing software will not be easy.

Another issue that will need to be resolved is payment for additional services. How will users be billed for specifying a higher level of service?

Multicast Backbone

As previously mentioned, the backbone of the Internet consists of high speed data comunication lines.. Many experiments are being conducted to find ways of upgrading the physical hardware to support the transmission of real-time audio and video. One such experiment is known as the Multicast Backbone (MBONE). MBONE is not separate from the Internet. Rather, it is a set of Internet sites with powerful hosts and high speed connections between them.

Unfortunately, MBONE is able to handle the display of only three to five frames per second. Full-motion video, on the other hand, requires the display of thirty frames per second. While its potential does not approach broadcast quality, it is sufficient for a number of useful applications, such as teleconferencing. For more information, you can visit the http://www.mbone.com website.

NOTE: On July 20th, 1996, the National Science Foundation and NASA sponsored a live broadcast over the MBONE. The presentation, given to commemorate the 20th anniversary of the Mars Viking Landings, discussed the Mars Pathfinder and Mars Global Surveyor missions.

Audio Over the Internet

At this moment in time, there are two methods for handling audio data over the Internet. The first technique requires that an audio data file be transferred to a workstation, which is then handled by the appropriate audio player. The second technique does not require the complete file to be transferred before the file can begin to be played.

Audio File Transfer There are many sound files on the Internet in a variety of formats. Each format has a unique file extension associated with it, such as .wav or .au. The following list shows file extensions that you are likely to see, along with their associated platform:

File Extension Platform
SND Macintosh
AIF, AIFF Macintosh
RA (Real Audio) Macintosh, PC, UNIX

Each file type requires a special "player" utility. In most cases, these utilities can be configured to work with your favorite Web browser, so that they can be played automatically when referenced within the browser. These are known as "helper" applications in Web terminology.

The major disadvantage of this technique, however, is the amount of time it takes to transfer the files. Even though the files are usually compressed, they are still quite large.

Streaming Audio A technique known as streaming audio was developed to improve the performance of the plain file transfer method. This method allows the file to be played at the same time that the file is being transferred. To utilize this technique, you must use audio files and a player application capable of supporting streaming audio. The most popular audio streaming technology today is RealAudio.

While the audio file is being played, the audio server and audio player exchange information about the connection. If it is a low speed connection, a smaller version of the file is sent. If it is a high speed connection, a larger, higher quality version of the file will be used.

In order to reduce the amount of time necessary to transfer the data over the Internet, the file is compressed. The User Datagram Protocol (UDP) is used in conjunction with the IP protocol to transfer the data packets. Unlike TCP, UDP will not resend packets if problems in the transmission occur. If this were the case, the sound player would not be able to play the file due to frequent interruptions.

Phone Calls Over the Internet Another form of audio over the Internet is making phone calls. Technically speaking, you can call anyone who has an e-mail address. All that is needed are a speaker and microphone for your desktop computer, along with software to interpret the digitized packets of data. There are a number of competing companies that make phone products for the Internet, including "WebTalk" by Quarterdeck, "NetPhone" by Electric Magic, and "Internet Phone" from VocalTec.

The main benefit of making phone calls over the Internet is the price. The only charge incurred is the cost of an Internet connection. The main disadvantages are voice quality and compatibility between Internet phone products. Other users must have the same exact software as you in order to have a phone conversation.

Video Over the Internet

Just like audio, there are two primary methods for handling video data over the Internet. The first technique requires that a video data file be transferred to a workstation, which is then handled by the appropriate video player. The second technique does not require the complete file to be transferred before the file is processed.

Video File Transfer There are many video files on the Internet in a variety of formats. Each format has a unique file extension associated with it. The following list shows file extensions for video files that you are likely to see, along with their associated platform:

File Extension Platform
QT (QuickTime) Macintosh, PC
MPG, MPEG Macintosh, PC, UNIX
MOV Macintosh, PC

Just like audio files, there are corresponding "player" applications for each file type. Even when compressed, they suffer from the same problem as audio files: They are simply too large.

Streaming Video Conceptually, streaming video works in the same way as streaming audio. That is, compressed files are transferred over the Internet using the UDP/IP protocol. The user actually sees the file being played before the file transfer is complete. This can deliver reasonable performance when sent over a high speed network, such as the MBONE.

The first attempt at implementing streaming video over the Internet is a product called VDOLive. Just like RealAudio, it tries to adjust the quality of the video based on speed of the connection. VDOLive is able to deliver 10 to 15 frames per second on a two-inch section of the screen over a 28.8 Kbps line. Over an ISDN line, 30 frames per second are possible. Before video data is transmitted, it must be compressed. Therefore, it does not lend itself to live broadcasts. Despite these limitations, VDOLive has a lot of potential.

Two newer products are RealPlayer and Streamworks. They are able to combine both audio and video.

Video Conferencing An application that uses both audio and video over the Internet is video conferencing. In addition to a specially equipped workstation, including a microphone and a video camera, special software is needed as well.

The most popular video conferencing software in use to date is a product called CU-SeeMe. This technology works much like streaming audio and video. When someone wants to participate in a video conference, she or he first must log into a special system on the Internet known as a reflector. A reflector hosts many video conferences that you can join. After you log in, voice and video data are digitized and compressed before transport over the Internet. For efficiency reasons, the UDP protocol is used instead of TCP. Any missing packets are ignored by the application.

CU-SeeMe also tries to reduce the amount of network bandwidth needed by only sending relevant portions of the images. For example, if someone is speaking, but rarely makes any motion in the field of the camera, only the changes from previous video frames need to be sent.

It is also possible to have a video conference without a reflector site. If you know the other person's IP address, you can contact them directly and have a two-way conference.

NOTE: NASA has quite a few reflector sites from which live videos can be seen using CU-SeeMe. They also have an excellent collection of audio and video clips that are available for downloading. See http://www.nasa.gov for details.

Future Directions

The Internet, also known as the Information Superhighway, is still evolving. It was built to support applications such as e-mail and file transfer. In order for it to support multimedia, such as audio and video, the infrastructure will need to be upgraded. Researchers are busy at work trying to figure out how to upgrade the infrastructure without requiring a major overhaul. Efforts such as RSVP/RTP are promising, but are still on the horizon.

A more compelling problem is the data communications structure in place that connects to our homes and schools. In order to support multimedia, more bandwidth will be needed at this juncture. This is known as the "last mile" problem.

It spite of these physical limitations, technology is still growing by leaps and bounds. Once these bottlenecks are removed, a whole new world of possibilities for communicating with others will be at our fingertips.


©Copyright, Macmillan Computer Publishing. All rights reserved.