PARCユニバーサルパケット(PUPまたはPuP、ただしオリジナルの文書では通常Pupが使用されている)は、初期の2つのインターネットワーキングプロトコルスイートの1つであり、 1970年代半ばにゼロックスPARCの研究者によって作成されました。(厳密には、 PUPという名称はインターネットワーキングレベルのプロトコルのみを指しますが、プロトコルスイート全体にも適用されます。)このスイート全体は、ルーティングとパケット配信に加え、信頼性の高いバイトストリームなどの高レベル機能、および多数のアプリケーションを提供しました。
PUPプロトコルは、インターネット向けTCP/IPの開発初期段階とほぼ同時期に作成され、 PARCにおける初期のイーサネットローカルエリアネットワークとも同じ時期に作成されました。 [ 1 ] PUPスイートの基本的な設計は1974年までにほぼ完成しました。PUPは、TCP/IPとインターネットの前身であるARPANETにイーサネットを接続するために設計されました。PUPは、 David Boggs、John Shoch、Edward Taft、およびRobert Metcalfeによって設計されました。[ 2 ]
1980年代、ゼロックスはPUPを基盤としてXerox Network Systems(XNS)プロトコルスイートを開発しました。XNSスイートに含まれるプロトコルの中には(例えばInternetwork Datagram Protocolなど)、PUPスイートのプロトコルを少し修正したものもありましたが、PUPとIPで得られた経験を反映して、かなり異なるものもありました。
主要なインターネットワーク層プロトコルはPUPであり、これはTCP/IPにおけるインターネットプロトコル(IP)層にほぼ相当します。完全なPUPネットワークアドレスは、8ビットのネットワーク番号、8ビットのホスト番号、および16ビットのソケット番号で構成されます。ネットワーク番号には、「このネットワーク」を意味する特別な値があり、自身のネットワーク番号を(まだ)知らないホストが使用します。
TCP/IPとは異なり、PUPヘッダーではソケットフィールドがネットワークアドレス全体に含まれているため、上位層プロトコルは独自の多重分離処理を実装する必要がありません。また、PUPはパケットタイプも提供します(これもIPとは異なります)。さらに、オプションの2バイトのチェックサムがパケット全体をカバーします。
PUPパケットは、最大554バイト(20バイトのPUPヘッダーとチェックサムを含む)の長さです。これは、すべてのホストが最低576バイトをサポートする必要があるIPよりも小さいパケットサイズです(ただし、ホストがサポートしていれば最大65Kバイトのパケットも許可されます)。特定のネットワーク上の個々のPUPホストペアは、より大きなパケットを使用する可能性がありますが、それらを処理するためのPUPルーターは必要ありません。より大きなパケットは断片化される可能性があります。
ゲートウェイ情報プロトコル( RIPの祖先)と呼ばれるプロトコルは、ルーティングプロトコルとして、またホストがルーターを検出するためのプロトコルとして使用されます。
PUPには、IPのpingに似た、ネットワーク間レイヤーにおけるシンプルなエコープロトコルも含まれているが、より低いレベルで動作する。
トランスポート接続を確立するために、2つのプロトコルが用いられた。1つ目は、ランデブーおよび終端プロトコル(RTP)で、2つのエンティティ間の通信を開始し、接続を管理および終了するために使用された。2つ目は、主要なトランスポート層プロトコルであるバイトストリームプロトコル(BSP)で、 TCPに類似していた。
RTPが接続を開始すると、BSPが引き継いでデータ転送を管理しました。TCPと同様に、BSPのセマンティクスと動作はバイト単位でした。これは、XNSの同等のプロトコルであるシーケンスパケットプロトコル(Sequenced Packet Protocol)ではパケット単位に変更されました。
PUPは多数のアプリケーションをサポートしていた。Telnetやファイル転送プロトコルなど、一部のアプリケーションは基本的にARPANETで使用されていたプロトコルと同じだった(TCP/IPスイートの場合と同様)。
その他には、プリンタのスプーリング、ディスクパックのコピー、ファイルサーバーへのページレベルのリモートアクセス、名前検索、リモート管理などのプロトコルといった斬新なものもあった(ただし、これらの機能の一部は以前にも見られたもので、例えばARPANETは、それを構成するインターフェースメッセージプロセッサ(IMP)を制御するためにリモート管理を多用していた)。
PUPはインターネットワーキングのアイデアが実現可能であることを示し、TCP/IPの設計作業に影響を与え、後のXNSプロトコルの基礎を築きました。1973年6月、ボブ・カーンと共同作業をしていたヴィント・サーフは、ニューヨークでINWGの会議を組織し、ゼロックスの研究者であるメトカーフとショックが出席しました。 [ 3 ]しかし、ゼロックスの出席者はゼロックスの弁護士からPUPについて話すことはできないと言われました。設計の議論中、ゼロックスの出席者は提案されたアイデアの欠陥を指摘し続け、ついにスタンフォードの研究者の1人が「あなたたちはすでにこれをやったでしょう?」と口走りました。[ 4 ]ショックはTCP/IPの開発に引き続き関与し、[ 5 ] [ 6 ] [ 7 ]タフトは電子メールに関する初期の議論に関与しました。[ 8 ]
PUPの最大の功績は、おそらくゼロックスPARCで初めて実証された未来のオフィスモデルの重要な構成要素としての役割だろう。機能的なインターネットワークが提供するあらゆる機能がなければ、あの実証実験はあれほど強力なものにはならなかったはずだ。
ゲートウェイ情報プロトコル(GIP)の後継であるRIP(あらゆるプロトコルファミリーのアドレスを伝送できるように若干の変更が加えられている)は、TCP/IPをはじめとする他のプロトコルスイートで現在も使用されている。RIPのあるバージョンは、より現代的なOSPFやIS-ISが登場する以前、成長著しいインターネットにおける初期のいわゆる内部ゲートウェイプロトコルの1つとして機能した。現在でも、シンプルな要件を持つ小規模なサイトでは内部ゲートウェイプロトコルとして使用されている。
欠点としては、PUP プロトコル ファミリーはデバイス非依存ではなく、現代の用語では IP 層と MAC 層が単一の層に統合されていたため、大規模な採用が困難でした。PUP の 8 ビット ネットワークと 8 ビット ホストは、ネットワーク間ブリッジまたはゲートウェイが必要になる前に、最大 64k 台のマシンまでしか拡張できませんでした。このため、これらの問題を解決するために、Xerox Office Systems Divisionは、PUP の多くのアイデアと、グローバルに一意な 48 ビット ホスト識別子 ( DIX v2 および後のIEEE 802.3のMAC アドレスになった) を使用して、後継のXerox Networking System (XNS ) を開発しました。[ 9 ]
Xerox Corporation (PUP を独自の商用ネットワーク製品の基盤にしようとしていた) の懸念にもかかわらず、ARPANET の先駆者である Robert Metcalfe と Yogen Dalal を含む Xerox PARC の研究者たちは、1976 年と 1977 年の TCP およびインターネット作業部会の会議で、研究の基本的な概要を同僚と共有した。
Pup (PARC Universal Packet) は、David R. Boggs、John F. Shoch、Edward A. Taft、および Robert M. Metcalfe によって設計され、最初に (BCPL で) 実装された一連のインターネットワーキング プロトコルおよびパケット フォーマットです。これは、後の TCP/IP の設計に大きな影響を与えました。