メインコンテンツまでスキップ

II. 環境

ホストは、CPU を複数のプロセスで共有するタイムシェアリングオペレーティングシステムを備えているものと仮定する。

各プロセスにはユーザ番号が付与されているものと想定する。同じユーザ番号を持つプロセスが複数存在してもよく、その場合、それらはすべてネットワークの利用に関して協調していなければならない。

各プロセスは、そのプロセスに固有のポートの集合を持つものと想定する。これらのポートは、ファイル、デバイス、または他のプロセスとの間で、プロセスへの入力またはプロセスからの出力に用いられる。

また、プロセスが LISTEN または CONNECT を試みたときにスリープさせられる(すなわちブロックまたはディスミスされる)ことはないと想定する。代わりに、何らかの動作が完了したときに通知を受ける。もちろん、プロセスは自らディスミスし、何らかの外部事象が発生したときにのみ起動されるようにしてもよい。

ネットワーク活動に参加するため、プロセスはローカルソケットを自身のポートの 1 つに接続する。ソケットはユーザ番号、ホスト、AEN によって識別される。両者のユーザ番号が一致し、かつ同じホスト上にある場合、そのソケットはそのプロセスにとってローカルである。したがって、プロセスがローカルソケットを参照する際には AEN を指定するだけでよい。

各ポートはステータスを持ち、それはシステムコールや、プロセス外部で並行して発生する事象(例えば外部ホストからの「接続切断」コマンド)によって変更される。プロセスはいつでも(STATUS システムコールによって)ポートのステータスを参照できる。

ポートとソケットは 1 対 1 に対応すると仮定する。