PARC Universal Packet

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

The PARC Universal Packet (commonly abbreviated to PUP or PuP, although the original documents usually use Pup) was one of the two earliest internetworking protocol suites; it was created by researchers at Xerox PARC in the mid-1970s. (Technically, the name "PUP" only refers to the internetwork-level protocol, but it is also applied to the whole protocol suite.) The entire suite provided routing and packet delivery, as well as higher level functions such as a reliable byte stream, along with numerous applications.


The origins of the PUP suite lie in two developments; in the same events in the early 1970s as the very earliest stage of the development of TCP/IP (see History of the Internet), and the creation of the Ethernet local area network at PARC. However, the development of PUP split off because Xerox PARC wished to move ahead with implementation, for in-house use. The fundamental design of the PUP suite was substantially complete by 1974.

In the 1980s Xerox used PUP as the base for the Xerox Network Systems (XNS) protocol suite; some of the protocols in the XNS suite (such as the Internetwork Datagram Protocol) were lightly modified versions of the ones in the PUP suite, but others are quite different, reflecting the experience gained with PUP and IP.

Basic internetwork protocol[edit]

The main internetwork layer protocol is PUP, which roughly corresponds to the Internet Protocol (IP) layer in TCP/IP. A full PUP network address consists of an 8-bit network number, an 8-bit host number, and a 16-bit socket number. The network number has a particular special value which means 'this network', for use by hosts which do not (yet) know their network number.

Unlike TCP/IP, socket fields are part of the full network address in the PUP header, so that upper-layer protocols did not need to implement their own demultiplexing; PUP also supplies packet types (again, unlike IP). Also, an optional 2-byte checksum covers the entire packet.

PUP packets are up to 554 bytes long (including the 20 byte PUP header), and the checksum. This is a smaller packet size than IP, which requires all hosts to support a minimum of 576 bytes (but allows packets of up to 65K bytes, if the hosts support them); individual PUP host pairs on a particular network might use larger packets, but no PUP router is required to handle them. Larger packets can be fragmented.

A protocol named the Gateway Information Protocol (an ancestor of RIP) is used as both the routing protocol, and for hosts to discover routers.

PUP also includes a simple echo protocol at the internetwork layer, similar to IP's ping, but operating at a lower level.

Transport layer protocols[edit]

To establish a transport connection, two protocols came into play. The first, the Rendezvous and Termination Protocol (RTP), which was used to initiate communication between two entities, as well as manage and terminate the connection. The second was the primary transport layer protocol, Byte Stream Protocol (BSP), which was analogous to TCP.

Once RTP had started the connection, BSP took over and managed the data transfer. Like TCP, BSP's semantics and operation were in terms of bytes; this was discarded in favour of packets for the equivalent protocol in XNS, Sequenced Packet Protocol.

Application protocols[edit]

PUP supported a large number of applications. Some of them, such as Telnet and File Transfer Protocol, were basically the same protocols as used on the ARPANET (much as occurred with the TCP/IP suite).

Others were novel, including protocols for printer spooling, copying disk packs, page-level remote access to file servers, name lookup, remote management, etc. (although some of these capabilities had been seen before, e.g. the ARPANET already made heavy use of remote management for controlling the Interface Message Processors which made it up).


PuP showed that internetworking ideas were feasible, influenced the design work on TCP/IP, and laid a foundation for the later XNS protocols. At one point, Vint Cerf and Bob Kahn organized meetings at Stanford, and Xerox Researchers Bob Metcalfe and John Shoch attended. However, the Xerox attendees were told by a Xerox lawyer that they could not talk about PuP. During design discussions, the Xerox attendees kept pointing out flaws in the ideas that were suggested, until one of the Stanford researchers blurted out, "You guys have already done this, haven’t you?"[1]

The biggest impact of PuP was probably as a key component of the office of the future model first demonstrated at Xerox PARC; that demonstration would not have been anything like as powerful as it was without all the capabilities that a working internetwork provided.

The Gateway Information Protocol's descendant, RIP (with minor modifications to carry the addresses of any protocol family), remains in use today in other protocol suites, including TCP/IP. One version of RIP served as one of the initial so-called interior gateway protocols for the growing Internet, before the arrival of the more modern OSPF and IS-IS. It is still in use as an interior routing protocol, in small sites with simple requirements.

In terms of flaws, the PUP protocol family was not device independent, in modern terminology the IP and MAC layers were combined into a single layer, which made wide scale adoption difficult. PUP's 8-bit network and 8-bit host could scale to at most 64k machines, before an inter-network bridge or gateway would be needed. For this reason a successor, the XNS (Xerox Networking System) was developed by the Xerox Office Systems Division using many of the ideas of PUP, but also including a globally unique 48-bit host identifier (which became MAC address in DIX v2 and later IEEE 802.3) which solved these problems:[2]

  • Preventing Address collisions / duplicate address allocations. Xerox allocated 24-bit upper MAC address, and manufacturers allocated the lower 24 bits.
  • Allowing analog repeaters (which were very low cost) to be a more viable network scaling device
  • Allowing each network interface to generate globally unique id's (UIDs)

See also[edit]


  1. ^ Taylor, Bob (October 11, 2008), "Oral History of Robert (Bob) W. Taylor" (PDF), Computer History Museum Archive, CHM Reference number: X5059.2009
  2. ^ Yogen Dalal; Robert Printis (October 1981). "48-bit absolute internet and ethernet host numbers" (PDF). SIGCOMM '81 Proceedings of the seventh symposium on Data communications. pp. 240–245.

Further reading[edit]