要約

  • RFC 871は、ARPANETの参照モデルを、異なるOSの資源共有を目指して実際のプロトコルを作る中で培われた判断の再構成として示した。
  • 特に重要なのはホスト間の公平さだった。一方で不要に見えるログイン手順が、他方では認証と会計を動かしていた。

受信メールに料金をかけたくない。ならばFTPのログイン命令を省こう。話は一行で済みそうだった。Michael A. Padlipskyは1982年9月のRFC 871で、その一行を止めた事情を記した。別のOSでは、同じ命令が会計だけでなく認証も開始していた。あるホストの親切な近道が、別のホストの入口を壊す。文書によれば、ログインを要求できる仕組みは残し、受信メール用の共通の無料アカウントを知らせることで折り合った。

Padlipskyは、こうした配慮を公平さと呼んだ。自分の機械では自然な仕組みが同僚の機械に無理を強いるなら、その同僚の実装経験を聞く。異なるOSを結ぶネットワークでは、相手の内部事情を紙の図から消しても、実行時には戻ってくる。会計、認証、特権を持つプロセスは図の欄外にいても、動くシステムの中心にいた。

RFCが書かれた頃、ISOの参照モデルはネットワークを説明する有名な図になっていた。Padlipskyは、ARPANET Network Working Groupにも以前から設計の枠組みがあったと述べ、それを動いているプロトコルの歴史から言葉にしようとした。最初から正式な図面を掲げて作業していた、という話ではない。1982年に参加者が振り返り、何を目標にし、どの選択がその目標に役立ったかを示した文書である。

目標は資源共有だった。遠くのホストにログインするだけでは、別々のコンピューター上にあるプログラムとデータの協力は実現しない。実行中のプロセスどうしが通信し、論理的な接続で会話を区別する必要がある。よく知られたソケット番号はサービスの場所を示し、別の番号は新しい試みの余地を残す。住所には、どのサービスを使うかという意味も入っていた。

端末の種類が増えると、もう一つの問題が見えた。ホストの全種類が端末の全種類を直接理解するなら、組み合わせの数だけ手間が増える。ネットワーク仮想端末は、間に共通の表現を置いた。各ホストは自分の方式から共通方式へ、またその逆へ変換する。ファイル転送にも同じ発想を使える。全員に全員の方言を教えるより、境界で使う共通語を決めるほうが安く済む。

Padlipskyは機能をネットワークインターフェース、ホスト間通信、プロセス・アプリケーションという大きな三群で説明した。同じ群に複数のプロトコルが入る。階層化の狙いは、一つの仕組みを変えても他の仕組みの内部まで書き換えずに済むことだった。彼は、参照モデルの箱をすべて通過必須の関所として扱う考えを批判した。隣室へ行くのに一階まで下り、また上る必要はない。図が立派なほど、階段を増やしたくなる人には注意が要る。

効率も設計条件だった。CPU時間、メモリ、不要な変換は実際のホストが負担する。そして公平さは、プロトコルが各OSの既存の仕組みと共存できるかを問う。ISOモデルへの厳しい評はPadlipskyの当時の見方である。FTPメールの小さな事件は、それ以上に具体的だった。料金を消すための改変が、他の機械の認証を消してしまうなら、改変の場所を変えるべきだった。

RFC 871が描いたARPANET参照モデルは、三つの機能群だけでできていない。資源共有、プロセス通信、意味のある接続、共通表現、効率、異なるホストへの公平さが一緒に働く。箱を並べるのは簡単だ。箱の下にいる違うOSを、互いに使えるままにしておくほうが難しい。