Interlisp was first developed on large timesharing machines which provided each user with access to large amounts of disk storage, printers, mail systems, etc.  Interlisp-D, however, was designed to run on smaller, single-user machines without these facilities.  In order to provide Interlisp-D users with access to all of these services, Interlisp-D supports the Ethernet communications network, which allows multiple Interlisp-D machines to share common printers, file servers, etc.

Interlisp-D supports the Experimental Ethernet (3 Megabits per second) and the Ethernet (10 Megabits per second) local communications networks.
These networks may be used for accessing file servers, remote printers, mail servers, or other machines.
This chapter is divided into three sections:  First, an overview of the various Ethernet and Experimental Ethernet protocols is presented.  Then follow sections documenting the functions used for implementing PUP and NS protocols at various levels.


{Begin SubSec Ethernet Protocols}
{Title Ethernet Protocols}
{Text

The members of the Xerox 1100 family (1100, 1108, 1132), Xerox file servers and laser xerographic printers, along with machines made by other manufacturers (most notably DEC) have the capability of communicating over 3 Megabit per second Experimental Ethernets, 10 Megabit per second Ethernets and telephone lines.

Xerox pioneered its work with Ethernet using a set of protocols known as PARC Universal Packet (PUP) computer communication protocols.  The architecture has evolved into  the newer Network Systems (NS) protocols developed for use in Xerox office products. 
All of the members of the Xerox 1100 family can use both NS and PUP protocols.


{Begin SubSec Protocol Layering}
{Title Protocol Layering}
{Text

The communication protocols used by the members of the Xerox 1100 family are implemented in a "layered" fashion, which means that different levels of communication are implemented as different protocol layers.  Protocol Layering allows implementations of specific layers to be changed without requiring changes to any other layers.  The layering also allows use of the same higher level software with different lower levels of protocols.  Protocol designers can implement new types of protocols at the correct protocol level for their specific application in a layered system.  

At the bottom level, level zero, there is a need to physically transmit data from one point to another.  This level is highly dependent on the particular transmission medium involved.  There are many different level zero protocols, and some of them may contain several internal levels.
At level one, there is a need to decide where the data should go.  This level is concerned with how to address a source and destination, and how to choose the correct transmission medium to use in order to route the packet towards its destination.  A level one packet is transmitted by {it encapsulating} it in the level zero packet appropriate for the transmission medium selected.  For each independent communication protocol system, a single level one protocol is defined.  The rule for delivery of a level one packet is that the communication system must only make a best effort to deliver the packet.  There is no guarantee that the packet is delivered, that the packet is not duplicated and delivered twice, or that the packets will be delivered in the same order as they were sent.

The addresses used in level zero and level one packets are not necessarily the same.  Level zero packets are specific to a particular transmission medium.  For example, the destination address of a level zero packet transmitted on one of the two kinds of Ethernet is the Ethernet address (host number) of a machine on the particular network.  Level one packets specify addresses meaningful to the particular class of protocols being implemented.  For the PUP and NS protocols, the destination address comprises a network number, host number (not necessarily the same as the level zero host number), and a socket number.  The socket number is a higher-level protocol concept, used to multiplex packets arriving at a single machine destined for separate logical processes on the machine.

Protocols in level two add order and reliability to the level one facilities.  They suppress duplicate packets, and are responsible for retransmission of packets for which acknowledgement has not been received.  The protocol layers above level two add conventions for data structuring, and implement application specific protocols.

}{End SubSec Protocol Layering}


{Begin SubSec Level Zero Protocols}
{Title Level Zero Protocols}
{Text

Level zero protocols are used to physically connect computers.  The addresses used in level zero protocols are protocol specific.  The Ethernet and Experimental Ethernet level zero protocols use host numbers, but level zero phone line protocols contain less addressing information since there are only two hosts connected to the telephone line, one at each end.  As noted above, a level zero protocol does not include network numbers.

The 3MB Experimental Ethernet [1] was developed at PARC.
Each Experimental Ethernet packet includes a source and destination host address of eight bits.  The Experimental Ethernet standard is used by any machine attached to an Experimental Ethernet.

The 10MB Ethernet [2]  was jointly developed and standardized by Digital, Intel, and Xerox.  Each Ethernet level zero packet includes a source and destination host address that is 48 bits long.  The Ethernet standard is used by any machine attached to an Ethernet.


Both of the level one protocols described later (PUP and NS) can be transported on any of the level zero protocols described above.

The Ethernet and Experimental Ethernet protocols are broadcast mediums.  Data packets can be sent on these networks to every host attached to the net.  A packet directed at every host on a network is a broadcast packet.

Other Level 0 protocols in use in industry include X.25, broadband networks, and Chaosnet.  In addition, by using the notion of "mutual encapsulation",{note reference?} it is possible to treat a higher-level protocol (e.g. ARPANET) as if it were a Level Zero Protocol.

}{End SubSec Level Zero Protocols}



{Begin SubSec Level One Protocols}
{Title Level One Protocols}
{Text

Two Level One Protocols are used in the Xerox 1100 Family, the PUP and the NS protocols.  With the proper software, computers attached to Ethernets or Experimental Ethernets can send PUPs and NS packets to other computers on the same network, and to computers attached to other Ethernets or Experimental Ethernets.


The PUP protocols [3] were designed by Xerox computer scientists at the Palo Alto Research Center.    The destination and source addresses in a PUP packet are specified using an 8-bit network number, an 8-bit host number, and a 32-bit socket number.  The 8-bit network number allows an absolute maximum of 256 PUP networks in an internet.{note how much should/can we say about internet?}  The 8-bit host number is network relative.  That is, there may be many host number "1"s, but only one per network.  8 bits for the host number limits the number of hosts per network to 256.  The socket number is used for further levels of addressing within a specific machine.

The Network Systems (NS) protocols [4, 5] were developed by the Xerox Office Products Division.  Each NS packet address includes a 32-bit network number, a 48-bit host number, and a 16-bit socket number.  The NS host and network numbers are unique through all space and time.  A specific NS host number is generally assigned to a machine when it is manufactured, and is never changed.  In the same fashion, all networks (including those sold by Xerox and those used within Xerox) use the same network numbering space---there is only one network "74".

}{End SubSec Level One Protocols}



{Begin SubSec Higher Level Protocols}
{Title Higher Level Protocols}
{Text

The higher level PUP protocols include the File Transfer Protocol (FTP) and the Leaf Protocol used to send and retrieve files from Interim File Servers (IFSs) and DEC File Servers, the Telnet protocol implemented by "Chat" windows and servers, and the EFTP protocol used to communicate with the laser xerographic printers developed by PARC ("Dovers" and "Penguins").

The higher level NS protocols include the Filing Protocol which allows workstations to access the product File Services sold by Xerox, the Clearinghouse Protocol used to access product Clearinghouse Services, and the TelePress Protocol used to communicate with the Xerox model 8044 Print Server.

}{End SubSec Higher Level Protocols}





{Begin SubSec Connecting Networks:  Routers and Gateways}
{Title Connecting Networks:  Routers and Gateways}
{Text

When a level one packet is sent from one machine to another, and the two machines are not on the same network, the packet must be passed between networks.  Computers that are connected to two or more level zero mediums are used for this function.  In the PUP world, these machines have been historically called "Gateways."  In the NS world these machines are called Internetwork Routers (Routers), and the function is packaged and sold by Xerox as the Internetwork Routing Service (IRS).


Every host that uses the PUP protocols requires a PUP address;  NS Hosts require NS addresses.  An address consists of two parts: the host number and the network number.  A computer learns its network number by communicating with a Router or Gateway that is attached to the same network.  Host number determination is dependent on the hardware and the type of host number, PUP or NS.

}{End SubSec Connecting Networks:  Routers and Gateways}

{Begin SubSec Addressing Conflicts with Level Zero Mediums}
{Title Addressing Conflicts with Level Zero Mediums}
{Text

For convenience in the respective protocols, a level one PUP (8-bit) host number is the same as a level zero Experimental Ethernet host number; i.e., when a PUP level one packet is transported by an Experimental Ethernet to another host on the same network, the level zero packet specifies the same host number as the level one packet.  Similarly, a level one NS (48-bit) host number is the same as a level zero Ethernet host number.

When a PUP level one packet is transported by an Ethernet, or an NS level one packet is sent on Experimental Ethernet, the level one host number cannot be used as the level zero address, but rather some means must be provided to determine the correct level zero address.  Xerox solved this problem by specifying another level-one protocol called {it translation} to allow hosts on an Experimental Ethernet to announce their NS host numbers, or hosts on an Ethernet to announce their PUP host numbers.  Thus, both the Ethernet and Experimental Ethernet Level Zero Protocols totally support both families of higher level protocols.

}{End SubSec Addressing Conflicts with Level Zero Mediums}


{Begin SubSec References}
{Title References}
{Text

{Tag EtherReferences}

[1]	Robert M. Metcalfe and David R. Boggs, Ethernet:  Distributed Packet Switching for Local Computer Networks, {it Communications of the ACM}, vol. 19 no. 7, July 1976.

[2]	Digital Equipment Corporation, Intel Corporation, Xerox Corporation.  The Ethernet, A Local Area Network: Data Link Layer and Physical Layer Specifications.  September 30, 1980, Version 1.0

[3]	D. R. Boggs, J. F. Shoch, E. A. Taft, and R. M. Metcalfe, PUP:  An Internetwork Architecture, {it IEEE Transactions on Communications}, com-28:4, April 1980.

[4]	Xerox Corporation. Courier:  The Remote Procedure Call Protocol.  Xerox System Integration Standard.  Stamford, Connecticut, December, 1981, XSIS 038112.

[5]	Xerox Corporation. Internet Transport Protocols.  Xerox System Integration Standard.  Stamford, Connecticut, December, 1981, XSIS 028112.

}{End SubSec References}


}{End SubSec Ethernet Protocols}