ゼロックス・ネットワーク・システム
トランスポート層プロトコルには2つの主要なものがあり、どちらもPupの前身とは異なる:
シーケンスパケットプロトコル (Sequenced Packet Protocol=SPP) は、TCPに類似した定評あるトランスポートプロトコルである。主な技術的な違いは、シーケンス番号がTCPやPupのBSPのようにバイトではなく、パケットをカウントするという点で、Novellの IPX/SPX の直接の前身である。
パケット交換プロトコル (Packet Exchange Protocol=PEP)は、UDPと似た性質を持つコネクションレスの信頼できないプロトコルで、Novell のPXPの前身となっている。
XNSもまた、Pupと同様に、ドロップパケットなどの問題の報告システムとして、エラープロトコルであるEP(Error Protocol)を使用している。これにより、問題を探すためにフィルタリングできる独自のパケットセットが提供された。
元々のゼロックスのコンセプトでは、リモート・プリンティング、ファイリング、メーリングなどのアプリケーションプロトコルには、クーリエ(Courier)という名前のリモート・プロシージャ・コール(RPC)プロトコルが採用されていた。 クーリエには、ゼロックスのMesaプログラミング言語関数呼び出しのほとんどの機能を実装するためのプリミティブが含まれていた。アプリケーションは、クーリエで関数呼び出しを手動でシリアル化したり逆シリアル化しなければならなかった。関数実行フレームを自動的にRPCに変換する機能はなかった(つまり、「RPCコンパイラ」は利用できなかった)。 クーリエはすべてのアプリケーションで使用されるため、XNSアプリケーションプロトコル文書では、クーリエ関数呼び出しインタフェースとモジュール+関数バインディングタプルのみが指定されていた。 クーリエには、関数呼び出しでバルクデータの送受信を可能にする特別な機能があった。