ローカルコンピュータネットワークにおける
プロセス間通信方式の一検討
〔昭和59年5月30日 原稿受付)
li獺工学教劃大学院}小出 真
情報工学教室重松保弘
AStudy on Inter−Process Communication Systern
of Local Area Network
by Makoto KOIDE
Yasuhiro SHIGEMATSU
Abstract
One of the requirements in computer network architectures i5 to provide simple, nexible and re】iable lnter・process communication facilities. In this pap巳r, we propose the Extended Queue Technique, which is an illter・process comrnunication mechanism, and its protoco1. The tech−
11ique treats network communications as queuillg procedures, and it enables every process to communicate with each other with白ut knowing the cornrnunicaしion procedu1 es in detaiL Therefore, the procedures of inteFprocess communication are simplified and unified. The technique include5 a network management procedure. This leads to flexible and reliable
hlter−process communication.
ローカル(インハウス)・マイクロコンピュータネット 1.まえがき
ワークHOLENET(HDLC Oriented LGcal Area Exper・
ローカルコンピュータネットワークにおいて要求され ㎞1ental Microcomputer Nehvork)を開発し,そのモデ る基本的な通信機能の単位は、プロセス問通信である。 ルプロトコルを実現した[7][9]。
信頼性が高く効率的なプロセス問通信を実現するために HOLENETのモデルプロトコルには,基本的なプロ は,ネットワークに対して次のような巖能が要求され セス間通信の橿能として,バーチャルサーキット(Vir・
る。すなわち,1)信頼性の高い(論理)通信路を提供す tual Circuit),データグラム{Datagram),および,ブ る機能,2)プロセス問通信を円滑に行う機能,3)ネット ロードキャスト{Broadcast)から成る3つの通信方式が ワーク管理の機能,4)プロセス問通信の手順を簡単化す 含まれている。しかし,このモデルプロトコルには,
る機能,である[1コ[21[10]。 HOLENETを実用システムとして使用する際に要求さ 信頼性の高い逓信路を提供する機能とは,プロセス聞 れる上述の4つの機能について,いくつかの不十分な点 通信の開始や終了を確認する機能,フロー制御・誤り制 がある。すなわち,エラー回復の機能が不完全である,
御を行う機能などを指す。プロセス間通信を円滑に行う フロー制御が行われない,通信を行う際の手mが複雑 機能には,セグメンティング/アセンブリング機能や である,などの問題点である。
チェイニング機能がある。ネットワーク管理の機能に そこで,本稿では,これらの問題点を解決し,かつ,
は,ネットワークの障書管理,利用状況の管理などが含 上述の・iつの機能を実現する1つの方式として,拡張 まれている。 キューの手法を提案し,そのプロトコルについて述べ 我々の研究室では,すでに、教育,研究を目的として, る。
1⑪
2,拡張キ_の手法とその利点 ⑤拡張キューに対するアクセ肪式
⑥特定ユーザプロセスのアドレス ー般にプロセス間通信は,ファンクション呼出しに
よって実行される。この場合,バーチャルサーキット方 拡張キューは,その名前(①)と識別番号(②)によっ 式を例にとると,通信路の設定,メッセージの送信,メッ て識別され,区別される。
セージの受信,通信路の解放,の手順を踏む.また,デー アクセス方式(⑤)には,111方式とN:1方式がある。
タグラム方式を例にとると,送信先を指定してメッセー これは,HOLENETのモデルプロトコルで用意されて ジを迭信する,メッセージを受信する,といった手頓を1 @ いるパーチャルサーキットとデータグラムの通信方式 踏む[8]。以上の例では通信方式によって手碩が異な を,拡張キューの手法を利用したプロセス間通信に提供 る。このように,ファンクションの呼出し順序を制御す するために用意されたものである。拡張キューに対する ることによって適信を遂行する方式は,適信方式として アクセス方式のうち,1:1方式は,パーチャルサーキッ のコントロールフロー(control・flow)に着目したイン ト方式に対応するものである。すなわち,拡張キューの ターフェーシング(illterfacing)手法であると考えること オープンが成功した2つのプロセス(特定ユーザプロセ ができる。ここで提案する拡張キューの手法とは,ネッ ス(⑥)と1つのユーザプロセス〕にのみ,その拡張
トワーク全体をメッセージの待・ら行列機構として取り扱 キューのアクセスを許す方式である。
おうとするものである。すなわち,ユーザプロセスは, 一方,N:1方式は,データグラム方式に対応するもの 待ち行列機構を用意し,その待ち行列機構ヘメッセージ である。すなわち,複数のユーザプロセスがいつでも同
を書き込み,モこからメッセージを順次読み出すという 一の拡張キューをアクセスできる方式である。ただし,
.形で通信を行う。これは,メッセージの流れ,すなわち, こり場合,拡張キューをアクセスしてメッセージを受け データフロー(data−flow)に着目したインターフェーシ 取れるのは,特定ユーザプロセスのみである。
ング手法であるということができる。 1 以上のことからわかるように,拡張キューの属性の中 拡張キューの手法によるプロセス間通信は,次の手間 で指定されている特定ユーザプロセスは,いずれのアク によって実行される。 セス方式においても,その拡張キューを必ずアクセスす ることができる。
(1)拡張キューの作成手順 拡張キューを用いて通信を行おうとするユーザプロセ
(2)拡張キュー一のオープン手順 スは,まず,同じ拡張キューをオープンすることによっ
(3)拡張キューの読出し手順 て,その拡張キューの属性に従った通信を行うことがで
(4)拡張キューの書込み手順 きるようになる。メッセージを送信しようとする時は,
(5)拡張キューのクローズ手順 ユーザプロセスは,オープンした拡張キューに対し拡張
(6)拡張キューの消去手順 キューの書込み手順を実行する。また,メッセージを受 信しようとする時は,拡張キューの読出し手順を実行す 拡張キューの作成手順は,プロセス間通信に先立っ る。メッセージの通信が終わると,ユーザプロセスは,
て,それに必要な待ち行列機構(以下,これを拡張キュー 拡張キューのクローズ手頗を実行する。さらに,拡張 と呼ぶ)を用意するためのものである・任意のユーザプ キューの消去手碩を実行することによって,一連のプロ ロセスは,いつでも,同時に何個でも拡張キューを作成 セス問通信を終わることができる。
することができる。 以上のことからわかるように,拡張キューの手法は,
拡張キューには,次に示す属性が設定きれる。 次のような利点を持っている。
①拡張キューの名前 (1}プロセス問通信を,すべて,拡張キューに対するア
②拡張キューの識別番号 クセスという形で統一したため,111方式,Nl1方
③ ユーザプロセス間で受け渡されるメッセージの長さ 式という2つの異なったアクセス方式をまったく
④拡張キューに保持できるメッセージの個数 同じ手碩(すなわち,拡張キューに対する同じアク
セス方式}で取り扱える。 キューを登録管理する。
(2)プロセス問適信に必要な第1章で述べた機能,特に (2〕拡張キュー設定機構
信頼性の高い通信路を提供する機能,プロセス間 ・拡張キューの作成,オープン,クローズ,消去 通信を円滑に行う機能は,拡張キューの内部機構に を行う。
よって実現される。したがって,ユーザプロセスに (3)拡張キュー制御機構
対しては,これらの機能をまったく意識させるこ ・拡張キュー,および,拡張キュー内のメッセー となくプロセス間通信機能を提供することができ ジを制御管理する。
る。 ・この機構は,拡張キュー設定機構によって,拡
(3)ユーザプロセスは,固定された名前と識別番号が付 張キューのオープン時に生成され,クローズ時に けられた拡張キュ・一をアクセスすることで互いに 消去される。
通信を行うことができる。これによって,どのホス (4)拡張キュー監視機構
ト上で動作しているかわからないユーザプロセス ・モジュールを構成する各機構の状態を監視す とも容易に通信を行うことができる。 る。
(4)プロセス間通信に必要な情報,すなわち,メッセー (5)拡張キューインターフェース機構
ジ長、拡張キュー1こ対するアクセス方式などは,拡 ・ユーザプロセスからの拡張キューに対する指示 張キュ・一の属性として拡張キュー自身が持ってい を,(1)〜(4}の中の適当な機構に伝える。
る。したがって,ユーザプロセスは,それらの情報 ・ユーザプロセスとの問で,メッセージの受け渡 について知る必要がない。 しを行う。
3.2 プロトコル これらの利点のうち,〔1),(2)は,プロセス間通信の
手順を簡単化するうえで有効である。また,(3〕,(・1) 3.2.1拡張キュー作成時のプロトコル
は,ネットワークを統一的に管理するうえで有効であ ユーザプロセスが拡張キューの作成手碩を突行するよ る。HOLENETのホストマイクロコンピュータのモニ う指示すると,拡張キュー設定機構から,拡張キューの タであるMP/Mは,プロセス問におけるデータの受渡 識別番号を局アドレスとするホストの拡張キュー登録提 しのために待ち行列機構(キュー)を利用している。ま 構へMKEXQUEコマンドが送られる。また,拡張キュー た,MP/Mモニタカ{管理するプロセス問でのデータの受 の属性がコマンドのパラメータとして送られる。
渡しの方法と拡張キューの手法とは非常によく似てい MKEXQUEコマンドを受け取った拡張キュー登録機構 る。したがって,拡張キュー機構をHOLENETに組み込 は,パラメータとして受け取った拡張キューの属性を登 めば,MP/Mモニタの下でキュー機構を使って作成した 録・管理する。
プログラムを,拡張キュー機構を利用したネットワーク このプロトコルの特徴は,拡張キューを分散管理でき プログラムに容易に拡張できる。これは,プログラムの ることである。すなわち,すべての拡張キューは、1箇 開発上,非常に有効である。 所に集中的に登録・菅理されるのではなく,各々,いず
3.搬キューシステムのプ。ト。,、 れ力伽つのホス1の拡張キュー酬馴{こよって登
録・管理される。また,この拡張キュー登録機構が存在 3・1 モジュール構成の規定 するホストは,拡張キューの識別番号によって一意に決 各ホストに存在する拡張キューシステムのモジュール まる。
は,次の5つの機構で構成される。これらの機構の内, 3.2.2 拡張キューオープン時のプロトコル
(1)〜(4)は,拡張キューシステムのプロトコルに従っ ユーザプロセスが拡張キューのオーブン手顧を実行す て互いに通信を行うことによりその機能を果たす。 るよう指示すると,拡張キュー設定機構と拡張キュー登 録機構との問で,OPNEXQUE, SEQF, SEQ、 IPA, REQ
(1)拡張キュー登録機構 の5つのコマンドが受け渡される{図1)。その結県,
・拡張キューの作成手順によって用意された拡張 ユーザプロセスに対しオープンを許可するかどうかが決
12
定される。さらに,オープンが許可されたユーザプロセ ユーザプロセスが拡張キューをオープンしようとした スのために・拡張キュー制御機構と送受信用F工FOバッ 時,それを許可するかどうかは次のように決定される。
ファが生成される(図2)・ すなわち,特定ユーザプロセスに対しては,無条件に オープンが許可される。他のユーザプロセスに対して
:}コト2 ホスト1 ホスト3
特定ユー.
vロ七ス ユーザ
vロ七ス
己法キューの・㌔プン手日
フ」、行
杜誤キューの ヒ一プン手晒 フ日三行 虹.聖 ユー
=G1哩膚
己彊当・ニー
Ni熊掴
已聖8・ユー ン定撫珂
0州EX臼UE
+RSP 一フ「ンの
竄「合」,せ一一
F「一プン函号一一
ユ可きf1る
@ ,■ 一
@ ↓ ュ皇{・7ユーを ン主すろ・
@ 1s r・レ
SEQF
一、
@ヤ 可の浪定
@ノ螂
@ ザ
フ可の法定 1
@ 、」
OPNExqUE 才一プンの喝・一問い合力せ
+RSP ÷賠P
、 ㌔ 、 」 SEQ
IPA ÷拙P
一一:宇一プンが
@許可されろ
@㌔
互・㌔一を
}酬Jl目・Fが喝・
ハ知さねる 、 一一■一
信間古が+一
哩ツされろ 、 一一
÷貼P qEQ
一 一
ゥ一
黶@一 、
@ λ已鯵一 、一一
、 ■ 」
i叫_ノ
[一辿II燗笛が
?・一
→RsP
REQ
?5P
も,オープンしよっとする拡張キューのアクセス方式が N:1方式の時は,無条件に許可される。アクセス方式が 111方式の時は,最初にオープンしたユーザプロセス に対してのみ,オープンが許可される。この決定は,オー プンされる拡張キューを登録・管理している拡張キュー i登録機構が,OPNEXQUEコマンドを受け取った時行
う。
拡張キュー制御機構と送受信用FIFOバッファは,拡 張キューを使って実際にプロセス間通信を行う時必要な ものであり,オープンを行ったユーザプロセスが存在す るホストの拡張キューシステム内に生成される。拡張 キュー制御機構は,SEQF,あるいは, SEQコマンドを受 け取った拡張キュー設定機構によって生成される。送受 信用FIFOバッファは,その拡張キュー制御機構が生成
する。
送受信用FIFOバッファの大きさは,拡張キューの属 性に設定されている長さのメッセージを,そこに設定さ †RSP:碇1諾 れている個数の半分だけ保持できる大きさを持つ。
図一1 識別番号1の拡張キューをオープンする 拡張キューのアクセス方式が異なっても,拡張キュー 場合のプロトコル , のオープン時に受け渡されるコマンド/応答は同じであ る。ただし,オープンの許可,および,拡張キュー制御
「一一一一一一一{r凸≡Li』□■」一一己{己=一一一一一一; 機構,送受信用FIFOバッファの生成処理には,若干の違
1 ・・ 聾 脳 い 獺 鮒 七ス 1 3.2.3拡張キューに対する読み/書き時のプロトコル
ら
一一一一一一一一一一一一一一」一一一一一一一一一一一一一一 @ ユーザプロセスは,通信するメッセージが発生する
{1)「ト゜?竺ス方:tが1:1フ∫≒¶:の叫罪;
と,拡張キューの書込み手順を実行し,そのメッセージ
i・,...・ ] を送信用FIF・バッフ・に書き」±む・このメ・セージは・
L− ・ n㌧ ; 受信用FIFOバッファが空きしだい,送信用FIFOパッ
ド @ コ ト
1 、 臼 1 ファを制御菅理している拡張キュー制御機構(送信側拡
オ ニ エ
i . , 1 張キュー制御機構)によって,受信用FIFOバッファを制 一 一一一一一u;1二;二言4二:三㌫≡『一一一一一一一 御菅理している拡張キュー制御機構(受信側拡張キュー 制御機構)宛に送信される。受信側拡張キュー制御機構
團一FlF° 囲・・…一・ は,このメ。セージを受信すると,受信用FIF。パ。ファ
[i迩]一芝酬FIF⑪戸方 ⊆コ :蔑語㌧乳,∴ にメツセージを書き込む。この時,メッセージの通信を _一:㌔七一抽詣1 1…−i:庖_思スト1,…帆ジ.. 円滑†かつ,正確に行うために,拡張キューの読み/苦 1一ゴ… 吐中ツ了 き時のプロトコルとして,先に述ぺた,Dチェイニング 図一2オープン手順1、よって齪され砿張 機能に関するプ・ト・・レ・2)勘雷ll蹴関するプ・ト・
キューシステムの構成 ル,3)フロー制御に関するプロトコル,が必要となる。
チェイニング機能に関するプロトコルには,DCNAや {特に,データの再送要求,送遥確認)をも容易に行う SNAに採用されているものを用いる[6][10]。すなわ ことができる。拡張キューシステムは,種々の制御を ち,メッセージを分割したもの(データユニット)に付 メッセージ単位で行っているが,実際のデータ転送は,
けられるヘッダ(データユニットヘッダ〔附録参照〕)の データユニット単位に行われる。このため,このような 中にBCI(チェイン開始識別子)とECI(チェイン終了識 シーケンス番号の付与方法は有効である。
別子)を用意し,これらの識別子を次のように用いるこ シーケンス番号による誤り制御の例を示すと次のよう とによって,チェイニング機能を果たす(図3〕。 になる。受信側拡張キュー制御機構は,シーケンス番号 を調べ,データユニット抜けなどのエラーを発見する 剖1 刷 と,エラーが発生したことを通知する否定応答(NAK応 答)を送信側拡張キュー制御機構に返す。このNAK応答 には,最後に正確に受信したデータユニットに付けられ たシーケンス番号と同じ番号が付けられる。送信側拡張 キュー制御機構は,NAK応答を受け取ると,その番号か
rε昌 蹴 PI}三:!1 らエラーの発生したデータユニ・トを調礪送する・受
信側拡張キュー制御機構は,エラーが発生したデータユ
ロ==]澗鍵 二・トから,再送データユニ・トの直前に受信したデー 。.,。。小。。八。.,_.ト タユニ・トまでを麟する。
誤り制御で重要な送達確認を行うために,2つの方法 図一3 チェイニング機能に関するプロトコル が用意されている。1つは,CHECKコマン.ドを用いる方 法である。もう1つは,データユニ1ットヘッダの中のDR
①分割されたメッセージの最初のデ・一タユニットの場 (規定応答識別子)〔附録参照〕を用いる方法である[6]
台 : BCIニ 1㌔ECI= 0 [10〕。送信側拡張キュー制御機構は, CHECKコマンド,
②分割されたメッセージの途中のデータユニットの場 あるいは,DRを・11,にしたデータユニットを送ることに 台:BCI= 0 , ECI= 0† よって}受信側拡張キュー制御機構から,それが最後に
③分割されたメッセージの最後のデータユニットの場 正確に受信したデータユニットのシーケンス番号を確認 合 l BCI= 0 , ECI=1r 応答(ACK応答)として受け取ることができる。
④メッセージが分割されない場合: 誤り制御に閲するコマンドとして,cHECKコマンド
BCI= P, ECI= 11 の他に,メッセージの廃棄を要求するCANCELコマン ド,および,すべてのシーケンス番号を初}[目値に戻すこ すなわち,受信側拡張キュー制御機構は,BCIが・1・で とを要求するRESETコマンドが用意されている,
あるデータユニットからECIが 1・であるデータユニッ フロー制御に関するプロトコルとして,拡張キューシ トまでをユつのメッセージとみなせばよい。この方式の ステムでは,クレジット(credit}方式を中心とした方式 利点は.受信したデータユニットのヘッダを見るだけで を採用している[4][5〕。これは,送遠確認と送信許可 それがメッセージの途中であるかどうかを判断できる点 が区別されていないウィンドウ{willdow〕方式や,送信 にある。 を許可した場合に送られてくるメッセージの個数が固定 誤り制御に関するプロトコルとして,まず,シーケン されているペーシング(pacing)方式では,バッファの使 ス番号が挙げられる。一般的なネットワークシステムで 用効率に問題があると考えられるからである[1]{・1]
は・データユニット単位にのみシーケンス番号を用いて [5]。また,拡張キューのアク七ス方式が異なってもそ いる。これに対して,拡張キューシステムでは,メッセー のフロー制御に大差がないよう,プロトコルの設計がな ジ単位,データユニット単位,および,コマンド単位に, されている。すなわち,アクセス方式がN:1方式の拡 それぞれシーケンス番号を用いる。これによって,メッ 張キューに対するフロー制御は、111方式で行われて セージとデータユニットのいずれに着目した誤り制御 いるクレジット方式のフロー制御にバッファ予約方式を
メ ッ 七 一 ジ
データユニット データユニット データユニコト
14
組み合わせた方式となっている。
図4,図5に,拡張ヰユーのアクセス方式別に,フロー 制御に関するプロトコルを示す。なお,フロー制御は メッセージ単位に行われる。
アクセス方式が1:1方式の場合のフロー制御は,次 のようになる。受信側拡張キュー制御機構は,受信用 FIFOバッファに空きができると,送信側拡張キュー制 御機構へ,メッセージの送信を許可するCRED正Tコマン ドを送る。また,どのメッセージまでの送信を許可する のかを通知するため,そのメッセージに付けられるメッ セージ番号をパラメータとして送る。送信側拡張キュー 制御機構は,CREDITコマンドを受け取ると,それまで に送信したメッセージの次のメッセージから,パラメー タとして渡されたメッセージ番号を持つメッセージまで を送信することができる。なお,メッセージ番号とは,
送偲倒 受信倒
拡芸キュー 拡張キュー
制師翌構 莞咽酎邸
・メッ七一ジ岳号5までの メッ七一ジを曇阻苗み
・受伯てLさろメッセージの REQUEST{M=7) 個数は3倒
本要求された圭部のメツ CREDIT(M=η 七一ジの受口が可能
十プ ME5SAGE{M=61 MESSAGE(M=η
・メプセージ岳号7までの メッセージを受僧
・受個できるメツセージの 送田不可 REQUEST{M=9) 個数は1個
本要求された全部のメツ CREDIT{M=8} セージの受信 杯可能已←〆
MESSAGE{Mニ81 遣1・不汀
REQUEST(M=7):,{ツ七一ジ岳号7までのメ・ンセージを メッセージ単位に付けられるシーケンス番号のことであ 送18したいことを通知する旺QUESTコマンド 飢 図一5 アクセス方式が.N:1方式の場合のヴ
アクセス方式がN:ユ方式の場台のフロー制御は,次 フロー制御に関するプロトコル のようになる。送信側拡張キュー制御機構は,メッセー
ジを送信しようとする場合,まず,受信側拡張キュー制 御機構へ,メッセージの送信許可を要求するREQUEST コマンドを送る。また,どのメッセージまでを送信した いのかを通知するために,そのメッセージに付けられる メッセージ番号をパラメータとして送る。受信側拡張 キュー制御機構は,このコマンドを受け取ると,パラ メータとして受け取ったメッセージ番号までのメッセー ジを受信できるかどうかを調べる。その結果,メッセー ジを十分受信することができるならば,すぺてのメッ セージの送信を許可するCREDITコマンドを送る。も し,全部のメッセージを受信することができないなら ば,受信することができる数だけのメッセージの送信を 許可するCREDITコマンドを送る。送信側拡張キュー制 御機構は,CREDITコマンドを受け取ると,メッセージ の送信を行う。
3.2.4 拡張キュークローズ時のプロトコル
ユーザプロセスが拡張キューのクローズ手願を実行す ると,拡張キュー設定機構とクローズされる拡張キュー を登録・管理している拡張キュー登録機構との問で,
cREDIT(M=5]:メッ七_ジ岳号5までのメワセ_ジの CLSEXQUEコマンド,または・CEQコマンドが受け渡 送借を許可するCREDITゴマンF される巾
5i田s燗51=3):芸≡繊漂瀕㌶遍) 錨キュー設定酬から発†テされるCLSEXQUE・
図一4アクセ肪式が、、坊式の場合の マンドはぷ張キュ哨繊剛・対し搬キューをク
フロー制御のプロトコル . ローズすることを通知するためのものである。また,拡
送信餌 受恒側 受宿できる
若田キュー 拡張キュー メッセージの
割卸慢掴 書脚機構 個故
・メッセージ岳号2 までのメゥセージ を量口箭み
CREDIT【M=5) 3個
MESSAGE(M=3)
一一パツプアへ卸入 MESSAGE〔M=4} 2個
・一バツプアへ挿入 MESSAGE(M=5} ]個
一パツフアへ挿入
・黄信用FIFOパツフ o個
活借不可 ア1こ篁き領域が
できろ
CREDIT〔M=7} ∫ 2個 r司トz
MESSAGE〔M=助
中・パツフアへ挿入
・受信用FIFOパツ7 1個 アの空さ領域が増 えろ
CREDIT{M=9) ∫ 3個
r申・♂
MESSAGE{M=η
一一パワフアへ挿入 MESSAGE{M=8} 2園
一+パツフアへ卸入 MEsSAGE(M=9} 1個
送信訂 一+パツフアへ挿λ
o個
張キュー設定機構は,このコマンドの応答を受け取る ユーザプロセスが拡張キューの属性を通知するよう指示 と,拡張キュー制御機構と送受信用FIFOバッファを消 すると,その指示は拡張キコ.一設定機有薯に渡される。拡 去する。一 張キュー設定機構は,この指示が渡されると,ATREX・
拡張キュー登録機構から発行されるCEQコマンド QUEコマンドを拡張キュー登録機構へ送り,拡張キュー は,クローズ手碩を雲行したユーザプロセスと通信を の属性を応答として返すよう要求する。このコマンドの 行っていたユーザプロセスに対し,拡張キューをクロー パラメータは,属性を問い合わせる拡張キューの名前と ズすることを通知するためのものである。また,このコ 識別番号である。
マンドを受け取った拡張キュー設定提構は,拡張キュー
_ 4.あとがき 制御機構と送受信用FIFOパ・ッファを消去する。
CLSEXQUEコマンドは,送信用FIFOバッファの 本稿では,拡張キューの手法を用いたプロセス間通信 メッセージがすべて送信されるまで発行されない。ま の方式とそのプロトコルについて述べた。拡張キューの た,このコマンドの応答は,すぺての通信相手に拡張 手法は,データフローに着目した手法であり,その利点 キューをクローズすることが通知されるまで返されな として,1)プロセス間通信の手順が簡単で統一されてい い。これによって,プロセス間通信の終了を確認するこ る,2)プロセス間週信に必要な種々の機能を意識せずに とができる。 通信が行える,3}どのホストにいるかわからないユーザ 3.2.5拡張キュー消去時のプロトコル プロセスとも容易に通信が行える,4}ユーザプロセス ユーザプロセスが拡張キューの消去手順を実行する は,プロセス問通信に必要な詳細な手順を知らずに適信
と,拡張キュー設定機構から,消去される拡張キューを が行える,5)拡張キューのアクセス方式が異なってもプ 登録・管理している拡張キュー登録機構へDELEXQUE ロトコルに大差がない,6)拡張キューシステムのモ コマンドが送られる。DELEXQUEコマンドを受け取っ ジュー一ルを構成する各機構の通信相手が1つに決められ た拡張キュー登録機構は,消去される拡張キューをオー ている,などが挙げられる。
プンしているユーザプロセスが存在しないことを確認し このように,拡張キューの手法には数々の利点がある て肯定応答を返す。そして,拡張キューを消去する。も 反面,いくつかの問題点もある。問題の1つは,拡張 し,オープンしているユーザプロセスが存在する時は, キューの作成時に決定された拡張キューの属性を,ユー 否定応答を返す。 ザプロセスが変更できない点である。この問題は,サー 3.2.6拡張キュー監視プロトコル バの役割を果たすユーザプロセスが,拡張キューの作成 拡張キューシステムのモジュールを構成する各機構が を行う時,サービスを提供するのに最も適した拡張
正常に動作していることを確認するために,拡張キュー キューの属性を設定することで解決することができる。
監視プロトコルが用意されている。このプロトコルに関 もう1つの問題は,拡張キューのプロトコルが,すぺて 係するのは,拡張キュー監視機構である。拡張ヰユー監 のホストが稼動状態であることを前提として設計されてい 視機構は,それが存在するモジュールの各機構を常に監 る点である。もし,稼動状態でないホストが存在すれば,
視する。また,各ホストに存在する拡張キュー監視機構 拡張キューの作成の機能に支障を来たす。また,通信を 同士で,定期的に各機構の状態を通知し合いそれを保持 行っている時に,ユーザプロセスが存在するホストのみ する。各機構は,コマンドに対する応答が返ってこない ならず,拡張キューを登録管理している拡張キュー登録 など通信相手の状況が不明な時,それが存在するモ 機構が存在するホストが動1乍しなくなっても支障を来た ジュール内の拡張キュー監視機構に問い合わせることに す。このことは,ネットワークの信頼性を低下させる要 よってエラーの対策を行うことができる。なお,拡張 因となる。これについては,拡張キューシステムをフロ キュー監視機構同士で各機構の状態を通知し合うために ントエンドプロセッサ,あるいは,サプネット上に実現 STATUSコマンドが用意されている。 することにすれば解決できる。HOLENETの場合は,レ 3.2.7拡張キュー・サービスプロトコル イヤ1[7][9]の機能として実現することが,効率と信 拡張キュー・サービスプロトコルとして,拡張キュー 頼性の面から最も望ましいと思われる。
の属性を通知するためのプロトコルが用意されている。
16
[7 ]Y.Shigemaヒsu: HDLC Oriented Local Area Experim印・
謝 辞 ,、1Mi,,。,。mp、t,, N,t、,。,k・HOLENET・, Th, ApPli、、.
tion of Mini・and Micro・Computers in lnformatiDn, Docu・
日頃より御指導をいただく本学情報工学科の安在弘 mentati。n and Librarle豊, NDrth.H。lland,西721_727.
幸・教授に感謝します。 (1983)
[8 〕村井,所,寺岡,斉藤: Keio S&Tnet:Acknowledging Ethernetを用いたローカル・エリア・ネットワープ 、ローカ
参考文献 1㌶:認ワークシンボジウぷ輔報処糎PP
[1 〕松下1 コンピュータ・ネットワーグ,培風館・P・260・ [9 ]垂松、柴田,小出:・教育・研究用マイクロコシピュータネッ {1983) トワークHOLENET ,ローカルエリアネツトワークシンポ
[2摘瀬・苗村・臨浅野: ・ンピュータ ネ・トワーク技 ジウム齪集、欄処理学会,PP」15−122,(1983}
術 ・情報処理学会 P」05・〔1980) [10]℃CNA機能制御レベルプロトコル ,日本電信電話公社,
[3 ]P・B・Hansen,田中 訳: 並行動作プログラムの構造 1・日 P,392(1981}
本・ンピ・一タ協会・P・339・(1980) [llユ細:・輔・研究用マイク・コンビ。一タネ汁ワーク
[4]A・S・T・…b・・m:℃・mp・t・・N・ヒw。・k ・P…ti… HOLENET・,酬工業大学・情報工学‡糟士融. P.67,
Hal1.P・517・(1981) (1984)
[5 ]AS・Tanenbaum l uNetwork ProtocD15 , Computing [12 〕小出:・ローカルコンビュータネットワークに関する研究 、 Su「veysl l3・4 PP・453−489・(1981) 九州工業大学・情報工学科修±誼文, p.53,〔1984)
[6 ]V.LHoherecht: SNA Functi加Management ,1EEE Trans、〔ommun., COM・28,4,叩,594−603,(1980)
付録 衷一1 拡張キュニ股定機構から拡張キュー登録槻構へ渡されるコマンド コマンド 名 称 コード ノξラメータ 桂蛙 能
MKEXQUE Make dXtended pueue
xユo 1.拡張キューの属性 拡張キューの登録作成
CPNEXQUE Op印 dxtended pUEUε
X1111 1.拡張キューの名前 Q.拡張キューの識別番号 R、ユーザプロセスの
@アドレス
オープンの問い合わせ
CLSEXQUE Close
dxtended pueue
X†12 1.拡盟キューの名前 Q.拡張キューの識別番号 R.ユーザプロセスの
@アドレス
拡張キューのクローズ フ通知
DELEXQUE Delete
dxtellded pueue
Xユ3 1.拡張キューの名前 Q.拡張キューの識別番号
拡張キューの消去
衷一2 拡張キュー登録機構から拡張キュー設定機構へ渡されるコマンド
コマンド 名称 コード パラメータ 機 能
SEQF Set
dxtended pueue
?盾窒
eixed.
浮唐?u・
垂窒盾モ?Ts
x 20 L拡張キューの属性 Q.特定ユーザプロセスの
@アドレス
特定ユーザプロセスが g用する拡張キユーシ Xテムの殴定を指示
SEQ Set dxtended p雌ue
x 2r 1.拡張キューの属性 Q.ユーザプロセスの
@アドレス
拡張キューシステムの ン定を指示
lPA Imform
oaTヒner.
P」5eF 垂窒nCeSS
̀ddress
X「221 1.ユーザプロセスの
@アドレス
特定ユーザプロセスに ホし通倍相手のアドレ Xを通知
REQ Ready dxtended pueue
x 231 L拡張キューの名前 Q.拡嬰キューの識別責}号 R.ユーザプロセスの
@アドレス
通宿の許可
RSEQ Reset dxtended pueue
X 241 ユ.拡張キューの名前 Q.拡張キニーの識別番号 R、ユーザプロセスの
@アドレス
拡張キューシステムの ュ制消去
CEQ Clo§e
dxtended p1肥ue
X 25 1.拡弧キューの名前 Q.拡張キューの識別番号 R.ユーザプロセスの
@アドレス
拡ii長キュ・一のクローズ
フ通知
18
袈一3 拡張キュー制御機構向士で受け渡されるコマンド
コマンド 名称 コード パラメータ 機 能
CHECK Check X 3『 碓認応答(ACK応答)
フ要求
CANCEL CanceI X 31 1.メッセージ番号 メッセージの廃糞の要
RESET Reset x132 シーケンス岳号の初期
サの要求
CREDIT IC・・dit X 33 1.メッセージ番号 メッセージの送信許可 REQUEST Requeヨt X 341 1.メッセージ番号 メッセージの送倍許可
フ要求
衷一4 拡張キュー設定機構同士で受け渡されるコマンド
コマンド 名称 コード パラメ・一タ 機 能
STATUS Status x 40 拡張キューシステムモ
Wールの各機構の状態 フ通知を要求
Oデータユニ7トヘワグ、コマンドヘツダの詳日 1 2 3 ・1 5 6 7 8 1} IO ll l2 13{b]1e}
鷲:竺}繍鵠・一
鼠謂子
データユニゥト品引コマンドヘッダの坦合X DO } メフセージ岳号{コ ンド岳号}
コードげ一タユニットへ7ダの坦合x o助
o融 1子の討田
1 2 3 5 6 〒 81bil)
DR BCI ECI O O O O O
oコードの詳田
12345丘78{bit)
▲已=;1_、__
図 データユニットヘッダ、コマンドヘッダの構成