Extensive Definition
UUCP stands for Unix to Unix CoPy. The term
generally refers to a suite of computer
programs and protocols
allowing remote execution of commands and transfer of files,
email and netnews between computers. Specifically, uucp
is one of the programs in the suite; it provides a user interface
for requesting file copy operations. The UUCP suite also includes
uux (user interface for remote command execution), uucico
(communication program), uustat (reports statistics on recent
activity), uuxqt (execute commands sent from remote machines), and
uuname (reports the uucp name of the local system).
Although UUCP was originally developed on and is
most closely associated with Unix, UUCP
implementations exist for several other operating systems,
including Microsoft's MS-DOS, Digital's
VAX/VMS,
Commodore's AmigaOS, and
Mac
OS.
Technology
UUCP can use several different types of physical connections and link-layer protocols, but was most commonly used over dial-up connections. Before the widespread availability of Internet connectivity, computers were only connected by smaller private networks within a company or organization. They were also often equipped with modems so they could be used remotely from character-mode terminals via dial-up lines. UUCP uses the computers' modems to dial out to other computers, establishing temporary, point-to-point links between them. Each system in a UUCP network has a list of neighbor systems, with phone numbers, login names and passwords, etc. When work (file transfer or command execution requests) is queued for a neighbor system, the uucico program typically calls that system to process the work. The uucico program can also poll its neighbors periodically to check for work queued on their side; this permits neighbors without dial-out capability to participate.Today, UUCP is rarely used over dial-up links,
but is occasionally used over TCP/IP.
One example of the current use of UUCP is in the
retail industry by Epicor CRS Retail
Systems for transferring batch files between corporate and store
systems via
TCP and dial-up on SCO
OpenServer, Red Hat
Linux, and Microsoft
Windows (with Cygwin). The number
of systems involved, as of early 2006, ran between 1500 and 2000
sites across 60 enterprises. UUCP's longevity can be attributed to
its low/zero cost, extensive logging, native failover to dialup,
and persistent queue management. However, this technology is
anticipated to be retired in favor of other alternatives.
History
UUCP was originally written at AT&T Bell Laboratories, by Mike Lesk, and early versions of UUCP are sometimes referred to as System V UUCP. The original UUCP was rewritten by AT&T researchers Peter Honeyman, David A. Nowitz, and Brian E. Redman and the rewrite is referred to as HDB or HoneyDanBer uucp which was later enhanced, bug fixed, and repackaged as BNU UUCP ("Basic Network Utilities"). All of these versions had security holes which allowed some of the original internet worms to remotely execute unexpected shell commands, which inspired Ian Lance Taylor to write a new version from scratch. Taylor UUCP was released under the GNU General Public License and became the most stable and bug free version. Taylor UUCP also incorporates features of all previous versions of UUCP, allowing it to communicate with any other version with the greatest level of compatibility and even use similar config file formats from other versions. UUCP was also implemented for non-UNIX operating systems, most-notably MS-DOS systems. Packages such as UUSLAVE/GNUCICO (John Gilmore, Garry Paxinos, Tim Pozar), UUPC (Drew Derbyshire) and FSUUCP (Christopher Ambler), brought early Internet connectivity to personal computers, expanding the network beyond the interconnected university systems. FSUUCP formed the basis for many BBS packages such as Galacticomm's Major BBS and Mustang Software's Wildcat! BBS to connect to the UUCP network and exchange email and Usenet traffic. As an example, UFGATE (John Galvin, Garry Paxinos, Tim Pozar) was a package that provided a gateway between networks running Fidonet and UUCP protocols.FSUUCP was notable for being the only other
implementation of Taylor's enhanced 'i' protocol, a significant
improvement over the standard 'g' protocol used by most UUCP
implementations.
One surviving feature of uucp is the chat file
format, largely inherited by the expect software package.
UUCP for mail routing
The uucp and uuxqt capabilities could be used to send e-mail between machines, with suitable mail user interface and delivery agent programs. A simple uucp mail address was formed from the adjacent machine name, an exclamation mark or bang, followed by the user name on the adjacent machine. For example, the address barbox!user would refer to user user on adjacent machine barbox.Mail could furthermore be routed through the
network, traversing any number of intermediate nodes before
arriving at its destination. Initially, this had to be done by
specifying the complete path, with a list of intermediate host
names separated by bangs. For example, if machine barbox is not
connected to the local machine, but it is known that barbox is
connected to machine foovax which does communicate with the local
machine, the appropriate address to send mail to would be
foovax!barbox!user.
User barbox!user might publish their UUCP email
address in a form such as …!bigsite!foovax!barbox!user. This
directs people to route their mail to machine bigsite (presumably a
well-known and well-connected machine accessible to everybody) and
from there through the machine foovax to the account of user user
on barbox. Many users would suggest multiple routes from various
large well-known sites, providing even better and perhaps faster
connection service from the mail sender.
Bang paths of eight to ten machines (or hops)
were not uncommon in 1981, and late-night dial-up UUCP links would
cause week-long transmission times. Bang paths were often selected
by both transmission time and reliability, as messages would often
get lost. Some hosts went so far as to try to "rewrite" the
path, sending mail via "faster" routes — this practice tended to be
frowned upon.
The "pseudo-domain" ending .uucp was sometimes
used to designate a hostname as being reachable by UUCP networking,
although this was never formally in the Internet root as a top-level
domain.
UUCPNET and mapping
UUCPNET was the name for the totality of the network of computers connected through UUCP. This network was very informal, maintained in a spirit of mutual cooperation between systems owned by thousands of private companies, universities, and so on. Often, particularly in the private sector, UUCP links were established without official approval from the companies' upper management. The UUCP network was constantly changing as new systems and dial-up links were added, others were removed, etc.The UUCP Mapping Project was a volunteer, largely
successful effort to build a map of the connections between
machines that were open mail
relays and establish a managed namespace. Each system
administrator would submit, by e-mail, a list of the systems to
which theirs would connect, along with a ranking for each such
connection. These submitted map entries were processed by an
automatic program that combined them into a single set of files
describing all connections in the network. These files were then
published monthly in a newsgroup dedicated to this
purpose. The UUCP map files could then be used by software such as
"pathalias" to compute the best route path from one machine to
another for mail, and to supply this route automatically. The UUCP
maps also listed contact information for the sites, and so gave
sites seeking to join UUCPNET an easy way to find prospective
neighbors.
Connections with the Internet
Many uucp hosts, particularly those at universities, were also connected to the Internet in its early years, and e-mail gateways between Internet SMTP-based mail and UUCP mail were developed. A user at a system with UUCP connections could thereby exchange mail with Internet users, and the Internet links could be used to bypass large portions of the slow UUCP network. A "UUCP zone" was defined within the Internet domain namespace to facilitate these interfaces.With this infrastructure in place, UUCP's
strength was that it permitted a site to gain Internet e-mail and
Usenet
connectivity with only a dial-up modem link to another cooperating
computer. This was at a time when true Internet access required a
leased data line providing a connection to an Internet Point of
Presence, both of which were expensive and difficult to arrange. By
contrast, a link to the UUCP network could usually be established
with a few phone calls to the administrators of prospective
neighbor systems. Neighbor systems were often close enough to avoid
all but the most basic charges for telephone calls.
Decline
UUCP usage began to die out with the rise of ISPs offering inexpensive SLIP and PPP services. The UUCP Mapping Project was formally shut down in late 2000.Usenet traffic was
originally transmitted using the UUCP network, and bang paths are
still in use within Usenet message format Path header lines. They
now have only an informational purpose, and are not used for
routing, although they can be used to ensure that loops do not
occur. In general, this form of e-mail
address has now been superseded by the
SMTP "@
notation", even by sites still using uucp.
Currently UUCP is used mainly over high cost
links (e.g., marine satellite links). UUCP over TCP/IP (preferably
encrypted, such as via the SSH
protocol) can be used when a computer doesn't have any fixed
IP
addresses but is still willing to run a standard mail
transfer agent (MTA) like Sendmail or
Postfix.
See also
- routing
- sitename
- Wizzy Digital Courier — low-cost internet delivery system using UUCP
External links
- Using & Managing UUCP. Ed Ravin, Tim O'Reilly, Dale Doughtery, and Grace Todino. 1996, O'Reilly & Associates, Inc. ISBN 1-56592-153-4
- Mark Horton (1986). RFC 976: UUCP Mail Interchange Format Standard. Internet Engineering Task Force Requests for Comment.
- UUCP Internals Frequently Asked Questions
- Setting up Taylor UUCP + qmail on FreeBSD 5.1
- Taylor UUCP is a GPL licensed UUCP package.
- Taylor UUCP Documentation - useful information about UUCP in general and various uucp protocols.
- The UUCP Project: History
- The UUCP Mapping Project
uucp in German: Unix to Unix Copy
uucp in Spanish: Copiador de Unix a Unix
uucp in French: Unix to Unix Copy Protocol
uucp in Latvian: UUCP
uucp in Dutch: Unix to Unix Copy
uucp in Japanese: Unix to Unix Copy
Protocol
uucp in Polish: UUCP
uucp in Portuguese: UUCP
uucp in Russian: Uucp
uucp in Chinese: UUCP