(57)【特許請求の範囲】
【請求項１】
サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避する方法であって、
ターゲットノードがサービス不能な期間にあるとき、イニシエータノードからの要求に対し、該期間に応じた拒絶時期情報を付して拒絶応答するオペレーションと、
ターゲットノードがサービス可能な状態にあるとき、より古い拒絶時期情報を伴うリトライ要求を優先的に受諾するオペレーションと、
ターゲットノードがサービス可能な状態にあるとき、先に拒絶した全ての要求に対するリトライ要求を受諾する前には、最初の要求に対し、新たな拒絶時期情報を付して拒絶応答するオペレーションと、
を具備する方法。
【請求項２】
サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避する方法であって、
(a) サービス可能な状態にあるターゲットノードにおいて、最初の要求が受信されたとき、該最初の要求を受諾するオペレーションと、
(b) サービス不能な状態に移行したターゲットノードにおいて、最初の要求が受信されたとき、該最初の要求に対し、少なくとも１ビットの拒絶時期情報を付して拒絶応答するオペレーションと、
(c) サービス可能な状態に復帰したターゲットノードにおいて、リトライ要求が受信されたとき、該リトライ要求に付された拒絶時期情報に応じて該リトライ要求を受諾するオペレーションと、
(d) サービス可能な状態にあるターゲットノードにおいて、リトライ要求に対してはオペレーション(c) と同様に処理する一方、最初の要求に対しては拒絶時期情報を付して拒絶応答するオペレーションと、
を具備する方法。
【請求項３】
サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避する方法であって、
(a) ターゲットノードにおいて、少なくとも１ビットの第１のパラメータＣＥ、前記第１のパラメータと等しいビット数の第２のパラメータＳＥ、前記複数のイニシエータノードの数に応じて決定されるビット数の第３のパラメータＣＣ及び前記第３のパラメータと等しいビット数の第４のパラメータＳＣを、それぞれ、０に初期化するオペレーションと、
(b) イニシエータノードからターゲットノードへ最初の要求を送信するオペレーションと、
(c) ターゲットノードにおいて、最初の要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該最初の要求を受諾するオペレーションと、
(d) ターゲットノードにおいて、最初の要求が受信されたとき、ＣＥ＝ＳＥ及びＳＣ＞０であれば、又はＣＥ＝ＳＥ及びサービス提供不能であれば、ＣＥをインクリメントし、ＣＣに１をセットし、及び該最初の要求に対しＣＥの値を付して拒絶応答するオペレーションと、
(e) ターゲットノードにおいて、最初の要求が受信されたとき、ＣＥ≠ＳＥであれば、ＣＣをインクリメントし、及びＣＥの値を付して拒絶応答するオペレーションと、
(f) 拒絶応答を受信したイニシエータノードからターゲットノードへ、該拒絶応答に付されたＣＥの値と等しい値の第５のパラメータＲＥを付してリトライ要求を送信するオペレーションと、
(g) ターゲットノードにおいて、リトライ要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該リトライ要求を受諾するオペレーションと、
(h) ターゲットノードにおいて、リトライ要求が受信されたとき、ＲＥ＝ＳＥ＋１、ＳＣ＝０及びサービス提供可能であれば、ＳＥをインクリメントし、ＳＣにＣＣ−１をセットし、及び該リトライ要求を受諾するオペレーションと、
(i) ターゲットノードにおいて、リトライ要求が受信されたとき、ＲＥ＝ＳＥ、ＳＣ＞０及びサービス提供可能であれば、ＳＣをデクリメントし、及び該リトライ要求を受諾するオペレーションと、
(j) ターゲットノードにおいて、リトライ要求が受信されたとき、オペレーション(g) 、(i) 及び(j) のいずれの実行条件も満足されなければ、該リトライ要求に対しＲＥの値を付して拒絶応答するオペレーションと、
を具備する方法。
【請求項４】
サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避するためにターゲットノードにて実行される方法であって、
(a) 少なくとも１ビットの第１のパラメータＣＥ、前記第１のパラメータと等しいビット数の第２のパラメータＳＥ、前記複数のイニシエータノードの数に応じて決定されるビット数の第３のパラメータＣＣ及び前記第３のパラメータと等しいビット数の第４のパラメータＳＣを、それぞれ０に初期化するオペレーションと、
(b) 最初の要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該最初の要求を受諾するオペレーションと、
(c) 最初の要求が受信されたとき、ＣＥ＝ＳＥ及びＳＣ＞０であれば、又はＣＥ＝ＳＥ及びサービス提供不能であれば、ＣＥをインクリメントし、ＣＣに１をセットし、及び該最初の要求に対しＣＥの値を付して拒絶応答するオペレーションと、
(d) 最初の要求が受信されたとき、ＣＥ≠ＳＥであれば、ＣＣをインクリメントし、及びＣＥの値を付して拒絶応答するオペレーションと、
(e) リトライ要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該リトライ要求を受諾するオペレーションと、
(f) リトライ要求が受信されたとき、ＲＥ＝ＳＥ＋１、ＳＣ＝０及びサービス提供可能であれば、ＳＥをインクリメントし、ＳＣにＣＣ−１をセットし、及び該リトライ要求を受諾するオペレーションと、
(g) リトライ要求が受信されたとき、ＲＥ＝ＳＥ、ＳＣ＞０及びサービス提供可能であれば、ＳＣをデクリメントし、及び該リトライ要求を受諾するオペレーションと、
(h) リトライ要求が受信されたとき、オペレーション(e) 、(f) 及び(g) のいずれの実行条件も満足されなければ、該リトライ要求に対しＲＥの値を付して拒絶応答するオペレーションと、
を具備する方法。
【請求項５】
サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避するためにイニシエータノードにて実行される方法であって、
(a) ターゲットノードへ最初の要求を送信するオペレーションと、
(b) 最初の要求に対する拒絶応答を受信したとき、該拒絶応答に付された拒絶時期情報のパラメータの値と等しい値のパラメータを付してリトライ要求を送信するオペレーションと、
を具備する方法。
【請求項６】
サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避する装置であって、
ターゲットノードがサービス不能な期間にあるとき、イニシエータノードからの要求に対し、該期間に応じた拒絶時期情報を付して拒絶応答する手段と、
ターゲットノードがサービス可能な状態にあるとき、より古い拒絶時期情報を伴うリトライ要求を優先的に受諾する手段と、
ターゲットノードがサービス可能な状態にあるとき、先に拒絶した全ての要求に対するリトライ要求を受諾する前には、最初の要求に対し、新たな拒絶時期情報を付して拒絶応答する手段と、
を具備する装置。
【請求項７】
サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避するためにターゲットノードにおいて実装される装置であって、
少なくとも１ビットの第１のパラメータＣＥ、前記第１のパラメータと等しいビット数の第２のパラメータＳＥ、前記複数のイニシエータノードの数に応じて決定されるビット数の第３のパラメータＣＣ及び前記第３のパラメータと等しいビット数の第４のパラメータＳＣを、それぞれ０に初期化する第１手段と、
最初の要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該最初の要求を受諾する第２手段と、
最初の要求が受信されたとき、ＣＥ＝ＳＥ及びＳＣ＞０であれば、又はＣＥ＝ＳＥ及びサービス提供不能であれば、ＣＥをインクリメントし、ＣＣに１をセットし、及び該最初の要求に対しＣＥの値を付して拒絶応答する第３手段と、
最初の要求が受信されたとき、ＣＥ≠ＳＥであれば、ＣＣをインクリメントし、及びＣＥの値を付して拒絶応答する第４手段と、
リトライ要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該リトライ要求を受諾する第５手段と、
リトライ要求が受信されたとき、ＲＥ＝ＳＥ＋１、ＳＣ＝０及びサービス提供可能であれば、ＳＥをインクリメントし、ＳＣにＣＣ−１をセットし、及び該リトライ要求を受諾する第６手段と、
リトライ要求が受信されたとき、ＲＥ＝ＳＥ、ＳＣ＞０及びサービス提供可能であれば、ＳＣをデクリメントし、及び該リトライ要求を受諾する第７手段と、
リトライ要求が受信されたとき、第５手段、第６手段及び第７手段におけるいずれの動作条件も満足されなければ、該リトライ要求に対しＲＥの値を付して拒絶応答する第８手段と、
を具備する装置。
【請求項８】
サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避するためにイニシエータノードに実装される装置であって、
ターゲットノードへ最初の要求を送信する手段と、
最初の要求に対する拒絶応答を受信したとき、該拒絶応答に付された拒絶時期情報のパラメータの値と等しい値のパラメータを付してリトライ要求を送信する手段と、
を具備する装置。
【請求項９】
サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避する装置によって読み取り可能な記録媒体であって、
ターゲットノードがサービス不能な期間にあるとき、イニシエータノードからの要求に対し、該期間に応じた拒絶時期情報を付して拒絶応答する機能と、
ターゲットノードがサービス可能な状態にあるとき、より古い拒絶時期情報を伴うリトライ要求を優先的に受諾する機能と、
ターゲットノードがサービス可能な状態にあるとき、先に拒絶した全ての要求に対するリトライ要求を受諾する前には、最初の要求に対し、新たな拒絶時期情報を付して拒絶応答する機能と、
を実現させるプログラムを格納する記録媒体。
【請求項１０】
サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおけるターゲットノードによって読み取り可能な記録媒体であって、
少なくとも１ビットの第１のパラメータＣＥ、前記第１のパラメータと等しいビット数の第２のパラメータＳＥ、前記複数のイニシエータノードの数に応じて決定されるビット数の第３のパラメータＣＣ及び前記第３のパラメータと等しいビット数の第４のパラメータＳＣを、それぞれ０に初期化する第１機能と、
最初の要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該最初の要求を受諾する第２機能と、
最初の要求が受信されたとき、ＣＥ＝ＳＥ及びＳＣ＞０であれば、又はＣＥ＝ＳＥ及びサービス提供不能であれば、ＣＥをインクリメントし、ＣＣに１をセットし、及び該最初の要求に対しＣＥの値を付して拒絶応答する第３機能と、
最初の要求が受信されたとき、ＣＥ≠ＳＥであれば、ＣＣをインクリメントし、及びＣＥの値を付して拒絶応答する第４機能と、
リトライ要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該リトライ要求を受諾する第５機能と、
リトライ要求が受信されたとき、ＲＥ＝ＳＥ＋１、ＳＣ＝０及びサービス提供可能であれば、ＳＥをインクリメントし、ＳＣにＣＣ−１をセットし、及び該リトライ要求を受諾する第６機能と、
リトライ要求が受信されたとき、ＲＥ＝ＳＥ、ＳＣ＞０及びサービス提供可能であれば、ＳＣをデクリメントし、及び該リトライ要求を受諾する第７機能と、
リトライ要求が受信されたとき、第５機能、第６機能及び第７機能におけるいずれの動作条件も満足されなければ、該リトライ要求に対しＲＥの値を付して拒絶応答する第８機能と、
を実現させるスタベーション回避用プログラムを格納する記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータネットワークにおけるスタベーション(starvation)を回避(avoid) する方法及び装置に関する。
【０００２】
【従来の技術】
コンピュータネットワークにおいては、一般に、サービスを提供する少なくとも１つのターゲットノードと、そのターゲットノードに対しサービスを要求(request) する複数のイニシエータノードとが接続される。
【０００３】
かかるコンピュータネットワークにおいては、長時間にわたって特定のイニシエータノードが送信するサービス要求がターゲットノードで拒絶(reject)され続けて受諾(accept)されないという事態が発生することがある。このような事態は、スタベーションと呼ばれている。
【０００４】
かかるスタベーションを回避するための多くの方法が存在するが、いずれの方法を実施するにしても、ターゲットノードとイニシエータノードとの間で伝送されるパケットにスタベーション回避のための情報フィールドとしてある程度のビット数の領域を設ける必要がある。その結果、通信トラフィックの増大が招かれている。
【０００５】
【発明が解決しようとする課題】
本発明は、上述の問題点に鑑みてなされたものであり、その目的は、コンピュータネットワークにおけるスタベーションを回避する方法及び装置であってスタベーション回避のためにパケット内に設ける必要のあるフィールドのビット数を最小限に抑えることができるものを提供することにある。
【０００６】
【課題を解決するための手段】
上記目的を達成するため、本発明によれば、サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避する方法であって、ターゲットノードがサービス不能な期間にあるとき、イニシエータノードからの要求に対し、該期間に応じた拒絶時期情報を付して拒絶応答するオペレーションと、ターゲットノードがサービス可能な状態にあるとき、より古い拒絶時期情報を伴うリトライ要求を優先的に受諾するオペレーションと、ターゲットノードがサービス可能な状態にあるとき、先に拒絶した全ての要求に対するリトライ要求を受諾する前には、最初の要求に対し、新たな拒絶時期情報を付して拒絶応答するオペレーションと、を具備するもの、が提供される。
【０００７】
また、本発明によれば、サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避する方法であって、(a) サービス可能な状態にあるターゲットノードにおいて、最初の要求が受信されたとき、該最初の要求を受諾するオペレーションと、(b) サービス不能な状態に移行したターゲットノードにおいて、最初の要求が受信されたとき、該最初の要求に対し、少なくとも１ビットの拒絶時期情報を付して拒絶応答するオペレーションと、(c) サービス可能な状態に復帰したターゲットノードにおいて、リトライ要求が受信されたとき、該リトライ要求に付された拒絶時期情報に応じて該リトライ要求を受諾するオペレーションと、(d) サービス可能な状態にあるターゲットノードにおいて、リトライ要求に対してはオペレーション(c) と同様に処理する一方、最初の要求に対しては拒絶時期情報を付して拒絶応答するオペレーションと、を具備するもの、が提供される。
【０００８】
また、本発明によれば、サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避する方法であって、(a) ターゲットノードにおいて、少なくとも１ビットの第１のパラメータＣＥ、前記第１のパラメータと等しいビット数の第２のパラメータＳＥ、前記複数のイニシエータノードの数に応じて決定されるビット数の第３のパラメータＣＣ及び前記第３のパラメータと等しいビット数の第４のパラメータＳＣを、それぞれ、０に初期化するオペレーションと、(b) イニシエータノードからターゲットノードへ最初の要求を送信するオペレーションと、(c) ターゲットノードにおいて、最初の要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該最初の要求を受諾するオペレーションと、(d) ターゲットノードにおいて、最初の要求が受信されたとき、ＣＥ＝ＳＥ及びＳＣ＞０であれば、又はＣＥ＝ＳＥ及びサービス提供不能であれば、ＣＥをインクリメントし、ＣＣに１をセットし、及び該最初の要求に対しＣＥの値を付して拒絶応答するオペレーションと、(e) ターゲットノードにおいて、最初の要求が受信されたとき、ＣＥ≠ＳＥであれば、ＣＣをインクリメントし、及びＣＥの値を付して拒絶応答するオペレーションと、(f) 拒絶応答を受信したイニシエータノードからターゲットノードへ、該拒絶応答に付されたＣＥの値と等しい値の第５のパラメータＲＥを付してリトライ要求を送信するオペレーションと、(g) ターゲットノードにおいて、リトライ要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該リトライ要求を受諾するオペレーションと、(h) ターゲットノードにおいて、リトライ要求が受信されたとき、ＲＥ＝ＳＥ＋１、ＳＣ＝０及びサービス提供可能であれば、ＳＥをインクリメントし、ＳＣにＣＣ−１をセットし、及び該リトライ要求を受諾するオペレーションと、(i) ターゲットノードにおいて、リトライ要求が受信されたとき、ＲＥ＝ＳＥ、ＳＣ＞０及びサービス提供可能であれば、ＳＣをデクリメントし、及び該リトライ要求を受諾するオペレーションと、(j) ターゲットノードにおいて、リトライ要求が受信されたとき、オペレーション(g) 、(i) 及び(j) のいずれの実行条件も満足されなければ、該リトライ要求に対しＲＥの値を付して拒絶応答するオペレーションと、を具備するもの、が提供される。
【０００９】
また、本発明によれば、上記の各方法を実施する装置が提供される。また、本発明によれば、それらの装置によって読み取り可能な記録媒体であって上記の各方法を実現させるプログラムを格納するものが提供される。
【００１０】
【発明の実施の形態】
図１は、本発明が適用され得るコンピュータネットワーク１０を示す図である。コンピュータネットワーク１０には、サービスを提供する１つのターゲットノードとしてのコンピュータ１２と、そのターゲットノードに対しサービスを要求する複数のイニシエータノードとしてのコンピュータ１４とが接続されている。なお、図１に示されるコンピュータネットワーク１０は、リング形のトポロジーを有するが、本発明は、少なくとも１つのターゲットノードと複数のイニシエータノードとが接続されるものであれば、スター形、バス形等のコンピュータネットワークに対しても適用可能である。
【００１１】
図２は、図１におけるターゲットノード１２のハードウェア構成の一例を示す図である。この図に示されるように、ターゲットノード１２は、主として、中央処理装置（ＣＰＵ）２０と、メモリ２２と、ネットワークインタフェースユニット２４と、から構成される。ＣＰＵ２０は、各種の記録媒体からメモリ２２上にロードされたプログラムを実行する。
【００１２】
そして、ネットワークインタフェースユニット２４には、後述する処理で使用される少なくとも１ビットのパラメータであるコレクトエポック(collect epoch) （ＣＥ）を格納するレジスタと、そのＣＥと等しいビット数のパラメータであるサービスエポック(service epoch) （ＳＥ）を格納するレジスタとが設けられている。さらに、ネットワークインタフェースユニット２４には、ＣＥに対応するカウンタＣＣと、ＳＥに対応するカウンタＳＣとが設けられている。なお、カウンタＣＣのビット数とＳＣのビット数とは等しく、そのビット数はイニシエータノード１４の数に応じて決定される。
【００１３】
図３は、イニシエータノード１４からターゲットノード１２へ送信される要求パケットのフォーマットを示す図であり、本発明に関係する部分のみを示している。ＲＥＴＲＹフィールドは、１ビットで構成され、その値が０のときには、要求パケットが最初の要求(First Request) に係るものであることを示す一方、その値が１のときには、要求が拒絶された後に発行されるリトライ要求(Retry Request) であることを示す。また、ＥＰＯＣＨフィールドは、前述したコレクトエポックＣＥ及びサービスエポックＳＥのビット数に等しいビット数を有するフィールドであり、ＲＥＴＲＹビットが１のときのみ意味を持つ。各フィールドの意義は、後の説明で明らかにされる。
【００１４】
図４は、ターゲットノード１２からイニシエータノード１４に送信される応答パケットのフォーマットを示す図であり、本発明に関係する部分のみを示している。ＲＥＪＥＣＴフィールドは、１ビットで構成される。ターゲットノード１２は、イニシエータノード１４からの要求を受諾(accept)するとき、このＲＥＪＥＣＴビットを０にして応答する一方、その要求を拒絶(reject)するとき、このＲＥＪＥＣＴビットを１にして応答する。そして、図４におけるＥＰＯＣＨフィールドも、前述したコレクトエポックＣＥのビット数及びサービスエポックＳＥのビット数に等しいビット数を有するフィールドであり、ＲＥＪＥＣＴビットが１のときのみ意味を持つ。各フィールドの意義は、後の説明で明らかにされる。
【００１５】
図５及び図６は、ターゲットノード１２において要求の受信時に実行される処理の手順を示すフローチャートである。なお、ターゲットノード１２においては、前述のコレクトエポックＣＥ、サービスエポックＳＥ、コレクトカウンタＣＣ及びサービスカウンタＳＣは、システム立ち上げ時に、全て０に初期化されている。
【００１６】
あるイニシエータノード１４からの要求が受信されると、まず、オペレーション１０２では、その要求パケット（図３）中のＲＥＴＲＹビットが１であるか否かが判定される。ＲＥＴＲＹ＝１のとき、すなわち受信された要求がリトライ要求であるときには、オペレーション１１６に進む一方、ＲＥＴＲＹ＝０のとき、すなわち受信された要求が最初の要求であるときには、オペレーション１０４に進む。
【００１７】
オペレーション１０４では、コレクトエポックの値とサービスエポックの値とが等しいか否かが判定され、ＣＥ＝ＳＥのときにはオペレーション１０８に進む一方、ＣＥ≠ＳＥのときにはオペレーション１０６に進む。オペレーション１０８では、サービスカウンタが０でかつサービス提供可能か否かが判定される。なお、サービス提供可能であることを、ルーム・アベイラブル(room available)とも呼ぶこととする。オペレーション１０８の判定条件が成立するときには、オペレーション１１２に進み、最初の要求を受諾し、ＲＥＪＥＣＴビットを０にして応答パケット（図４）を要求元のイニシエータノード１４に送信する。
【００１８】
一方、オペレーション１０８の判定条件が成立しないときには、オペレーション１１０に進み、コレクトエポックＣＥをインクリメントし、コレクトカウンタＣＣに１をセットする。次いで、オペレーション１１４において、ＲＥＪＥＣＴビットを１にして応答パケット（図４）を要求元のイニシエータノード１４に送信する。なお、その際、応答パケット内のＥＰＯＣＨフィールドには、現在のコレクトエポックＣＥの値を設定する。
【００１９】
また、オペレーション１０４でＣＥ≠ＳＥと判定されたときに実行されるオペレーション１０６では、コレクトカウンタＣＣをインクリメントする。次いで、前述したオペレーション１１４の処理が実行される。
【００２０】
ここで、図６の処理について説明する前に、イニシエータノード１４において応答パケットの受信時に実行される処理について図７のフローチャートを用いて説明する。ターゲットノード１２からの応答を受信すると、まず、オペレーション２０２では、その応答パケット（図４）中のＲＥＪＥＣＴビットが１であるか否かが判定される。ＲＥＪＥＣＴ＝１のとき、すなわち先に送信した要求が拒絶されたときには、オペレーション２０４に進む一方、ＲＥＪＥＣＴ＝０のとき、すなわち要求が受諾されたときには、何も実行しない。
【００２１】
オペレーション２０４では、一定時間待機する。そして、次のオペレーション２０６では、リトライ要求を送信すべく、ＲＥＴＲＹビットを１にして要求パケット（図３）をターゲットノード１２へ送信する。なお、その際、要求パケット内のＥＰＯＣＨフィールドには、受信した拒絶応答パケット内に設定されたＥＰＯＣＨの値がコピーされる。
【００２２】
再び、図５及び図６に戻って説明を続ける。オペレーション１０２でＲＥＴＲＹ＝１と判定されたときに実行されるオペレーション１１６では、ルーム・アベイラブルか否かが判定され、判定結果がＹＥＳのときにはオペレーション１１８に進む一方、判定結果がＮＯのときにはオペレーション１２８に進む。
【００２３】
オペレーション１１８では、コレクトエポックＣＥの値とサービスエポックＳＥの値とが等しく、かつ、サービスカウンタＳＣが０であるか否かが判定される。判定結果がＹＥＳのとき、すなわちＣＥ＝ＳＥかつＳＣ＝０のときには、オペレーション１３０に進む一方、判定結果がＮＯのときには、オペレーション１２０に進む。オペレーション１３０では、当該リトライ要求を受諾し、すなわち、ＲＥＪＥＣＴビットを０にして応答パケット（図４）を要求元のイニシエータノード１４に送信する。
【００２４】
オペレーション１２０では、要求パケット内のＥＰＯＣＨフィールドに示された値をリクエストエポックＲＥとして、このＲＥがＳＥ＋１に等しく、かつ、サービスカウンタＳＣが０であるか否かが判定される。判定結果がＹＥＳのとき、すなわちＲＥ＝ＳＥ＋１かつＳＣ＝０のときには、オペレーション１２２に進む一方、判定結果がＮＯのときには、オペレーション１２４に進む。オペレーション１２２では、サービスエポックＳＥをインクリメントしかつサービスカウンタＳＣにＣＣ−１をセットして、オペレーション１３０に進む。オペレーション１３０では、前述のように、当該リトライ要求を受諾する。
【００２５】
オペレーション１２４では、ＲＥ＝ＳＥかつＳＣ＞０が成立するか否かが判定され、判定結果がＹＥＳのときにはオペレーション１２６に進む一方、判定結果がＮＯのときにはオペレーション１２８に進む。オペレーション１２６では、サービスカウンタＳＣをデクリメントしてオペレーション１３０に進む。オペレーション１３０では、前述のように、当該リトライ要求を受諾する。
【００２６】
一方、オペレーション１２８では、ＲＥＪＥＣＴビットを１にして応答パケット（図４）を要求元のイニシエータノード１４に送信する。なお、その際、応答パケット内のＥＰＯＣＨフィールドには、受信した要求パケット内のＥＰＯＣＨフィールドに示されていた値すなわちリクエストエポックＲＥの値をそのまま設定して戻す。かくして、最初の要求及びリトライ要求に対する一連の処理が終了する。
【００２７】
さて、図５及び図６のアルゴリズムによって、ターゲットノード１２がどのような状態をとることができ、そしてイニシエータノード１４の要求に応じてどのような動作及び状態遷移をするかについて、図８を用いて説明する。なお、図８において、“Ａ”はルーム・アベイラブル(Room Available)、“Ｎ”はルーム・ノット・アベイラブル(Room Not Available)、“Ｆ”は最初の要求(First Request) 、及び“Ｒ”はリトライ要求(Retry Request) を示す。
【００２８】
まず、初期化後においては、ＣＥ＝ＳＥかつＳＣ＝０であり、この状態をアイドル状態と称する。アイドル状態かつルーム・アベイラブルのときに最初の要求又はリトライ要求が来ると、ターゲットノードは要求を受諾して、アイドル状態に止まる。図８では、このような動作及び状態遷移をアイドル状態の円から出る矢印と、その矢印に付された、
A： F or R; ACCEPT
なる表記で示している。
【００２９】
また、アイドル状態かつルーム・ノット・アベイラブルのときにリトライ要求が来ると、ターゲットノードはリトライ要求に付されたリクエストエポックＲＥをそのまま用いて拒絶応答をする。これは、図８では、アイドル状態の円から出る矢印と、その矢印に付された、
N： R; REJECT(RE)
なる表記で示している。以下、同様に動作及び状態遷移が示される。
【００３０】
そして、アイドル状態かつルーム・ノット・アベイラブルのときに最初の要求が来ると、ＣＥをインクリメントし、ＣＣに１をセットし、現在のＣＥを付して拒絶応答をするとともに、コレクト(collect) 状態に移行する。なお、コレクト状態は、ＣＥ＝ＳＥ＋１かつＳＣ＝０である状態をいう。
【００３１】
ルーム・アベイラブル又はルーム・ノット・アベイラブルにかかわらず、コレクト状態にあるときに、最初の要求が来ると、ターゲットノードは、ＣＣをインクリメントし、現在のＣＥを付して拒絶応答をする。また、コレクト状態かつルーム・ノット・アベイラブルのときにリトライ要求が来ると、ターゲットノードはリトライ要求に付されたリクエストエポックＲＥをそのまま付して拒絶応答をする。また、コレクト状態かつルーム・アベイラブルのときに、現在のＣＥと等しくないＲＥを付したリトライ要求が来ると、ターゲットノードは、そのＲＥを付して拒絶応答をする。
【００３２】
そして、コレクト状態かつルーム・アベイラブルのときに、現在のＣＥと等しいＲＥを付したリトライ要求が来ると、ターゲットノードは、ＳＥをインクリメントし、ＳＣにＣＣ−１をセットし、当該リトライ要求を受諾して、サービス状態に移行する。なお、サービス状態は、ＣＥ＝ＳＥかつＳＣ＞０の状態をいう。図８において、この動作は、コレクト状態の円から出る矢印と、その矢印に付された、
A： R(RE=CE); SE ← SE+1, SC ←CC-1, ACCEPT
なる表記で示される。
【００３３】
サービス状態かつルーム・ノット・アベイラブルのときにリトライ要求が来ると、リトライ要求に付されたＲＥを付して拒絶応答をする。また、サービス状態かつルーム・アベイラブルのときに、現在のＳＥと等しくないＲＥを付したリトライ要求が来ると、ターゲットノードはそのＲＥを付して拒絶応答をする。
【００３４】
さらに、サービス状態かつルーム・アベイラブルのときに、現在のＳＥと等しいＲＥを付したリトライ要求が来ると、ターゲットノードは、ＳＣをデクリメントし、当該リトライ要求を受諾する。なお、ＳＣのデクリメントによってＳＣ＝０になると、アイドル状態へと移行することとなる。
【００３５】
そして、ルーム・アベイラブル又はルーム・ノット・アベイラブルにかかわらず、サービス状態にあるときに、最初の要求が来ると、ＣＥをインクリメントし、ＣＣに１をセットし、現在のＣＥを付して拒絶応答をするとともに、サービス及びコレクト(service & collect) 状態に移行する。サービス及びコレクト状態は、ＣＥ＝ＳＥ＋１かつＳＣ＞０の状態をいう。サービス及びコレクト状態では、ルーム・アベイラブルのときに現在のＳＥと等しくないＲＥを付したリトライ要求が来ると、ターゲットノードはそのＲＥを付して拒絶応答をする。また、ルーム・ノット・アベイラブルのときにリトライ要求が来ると、そのリトライ要求に付されたＲＥを付して拒絶応答をする。
【００３６】
また、サービス及びコレクト状態では、ルーム・アベイラブル又はルーム・ノット・アベイラブルにかかわらず、最初の要求が来ると、ターゲットノードは、ＣＣをインクリメントし、現在のＣＥを付して拒絶応答をする。ルーム・アベイラブルのときに、現在のＳＥと等しいＲＥを付したリトライ要求が来ると、ターゲットノードは、ＳＣをデクリメントし、当該リトライ要求を受諾する。なお、ＳＣのデクリメントによってＳＣ＝０になると、コレクト状態へと移行することとなる。
【００３７】
以上の説明からわかるように、ＣＥは、常に、ＳＥと等しいか又はＳＥより１だけ進んだ値をとることとなる。ＣＥがＳＥより１だけ進んだ値をとるコレクト状態又はサービス及びコレクト状態では、最初の要求を拒絶するとともに、その拒絶した要求の数がＣＣとしてカウントされる。また、ＳＣ＞０となるサービス状態又はサービス及びコレクト状態では、カウント結果たるＣＣを初期値とするＳＣが、ＳＥに等しいＲＥを有するリトライ要求を受諾する度に、デクリメントされていく。そして、サービス及びコレクト状態では、ＳＣ＝０となるまで、最初の要求は、現在のＣＥを付されて拒絶されていく。かくして、ターゲットノードは、以前に拒絶した要求を優先して処理していくこととなり、結果的にスタベーションが回避される。そして、エポックは、拒絶時期情報を示すパラメータとして機能している。
【００３８】
さらに、本発明の理解を容易にするため、典型的な動作例を図９及び図１０のシーケンスチャートに示す。まず、図９の例について説明する。コレクトエポックＣＥ、コレクトカウンタＣＣ、サービスエポックＳＥ及びサービスカウンタＳＣが初期化処理により全て０にされ、ターゲットノードがアイドル状態（ＣＥ＝ＳＥかつＳＣ＝０）にあるときに、最初の要求に係るパケットＦ1、Ｆ2及びＦ3が送信されて来て、それらが全て受諾される。
【００３９】
やがて、ターゲットノードにおいてルーム・ノット・アベイラブルとなり、最初の要求に係るパケットＦ4が来ると、ＣＥがインクリメントされて１となり、ＣＣに１がセットされるとともに、ＣＥ＝１が付されて拒絶応答がなされる。その結果、ターゲットノードは、コレクト状態（ＣＥ＝ＳＥ＋１かつＳＣ＝０）に移行する。
【００４０】
このコレクト状態において、更に最初の要求に係るパケットＦ5及びＦ6が来ると、やはりＣＥ＝１が付されて拒絶応答がなされるとともに、ＣＣが、１から２へ、２から３へとインクリメントされる。また、先に拒絶した最初の要求に係るパケットＦ4に対応するリトライ要求に係るパケットＲ4（ＲＥ＝１がセットされている）が来ると、そのＲＥをそのまま付して拒絶応答がなされる。
【００４１】
やがて、ターゲットノードはルーム・アベイラブルとなる。そして、先に拒絶したＦ5に対応するリトライ要求に係るパケットＲ5（ＲＥ＝１）が来ると、ＳＥがインクリメントされて１となり、ＳＣにＣＣ−１＝３−１＝２がセットされ、当該リトライ要求が受諾される。その結果、ターゲットノードは、サービス状態（ＣＥ＝ＳＥかつＳＣ＞０）に移行する。
【００４２】
このサービス状態において、更に先に拒絶したＦ4に対応するリトライ要求に係るパケットＲ4（ＲＥ＝１）が来ると、当該リトライ要求が受諾されるとともに、ＳＣがデクリメントされて１になる。次いで、同様に、更に先に拒絶したＦ6に対応するリトライ要求に係るパケットＲ6（ＲＥ＝１）が来ると、当該リトライ要求が受諾されるとともに、ＳＣがデクリメントされて０になる。その結果、ターゲットノードは、アイドル状態（ＣＥ＝ＳＥかつＳＣ＝０）に戻る。
【００４３】
次に、図１０のシーケンスチャートについて説明する。この例において、アイドル状態からコレクト状態、そしてサービス状態へと状態が変化していく様子は、図９の例と同様である。そして、この例では、サービス状態において、最初の要求に係るパケットＦ7が来たため、ＣＥがインクリメントされて２となり、ＣＣに１がセットされ、ＣＥ＝２が付されてその要求が拒絶される。そして、ターゲットノードは、サービス及びコレクト状態（ＣＥ＝ＳＥ＋１かつＳＣ＞０）に移行する。
【００４４】
このサービス及びコレクト状態では、現在のＳＥ＝１に等しいＲＥを付したリトライ要求が受諾されてＳＣがデクリメントされる一方、最初の要求はＣＥ＝２を付されて拒絶される。そして、ＳＣ＝０になると、ターゲットノードはコレクト状態（ＣＥ＝ＳＥ＋１かつＳＣ＝０）に移行する。その後の動作については、もはや説明は不要であろう。こうして、ターゲットノードは、４つの状態間を遷移することとなる。
【００４５】
さて、以上の説明によれば、必ず、先に拒絶した要求に対応するリトライ要求を全て受諾してから、即ちＳＣ＝０になってから、最初の要求が受諾されるようになっており、かかる場合にはエポックは１ビットで足りる。しかし、システムによっては、何らかの理由でリトライ要求がされない事態が想定される。そのような事態においては、ＳＣ＝０とならないために処理が先に進まなくなってしまう。
【００４６】
そこで、ＳＣ＝０になるまでの時間を監視するタイムアウト処理を設け、一定時間が経過したならば、強制的にＳＣに０をセットして処理を先に進ませることが有効である。そして、そのようなタイムアウト処理を設ける場合には、エポックを複数ビットで構成することが有意義となってくる。エポックが複数ビットを有していれば、リトライ要求が来たときに、いずれの時期に拒絶したものであるかを特定することができ、それに応じて適切な処理を施すことが可能となるからである。
【００４７】
以上、本発明を特にその好ましい実施の形態を参照して詳細に説明した。本発明の容易な理解のため、本発明の具体的な形態を以下に付記する。
【００４８】
（付記１）  サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避する方法であって、
ターゲットノードがサービス不能な期間にあるとき、イニシエータノードからの要求に対し、該期間に応じた拒絶時期情報を付して拒絶応答するオペレーションと、
ターゲットノードがサービス可能な状態にあるとき、より古い拒絶時期情報を伴うリトライ要求を優先的に受諾するオペレーションと、
ターゲットノードがサービス可能な状態にあるとき、先に拒絶した全ての要求に対するリトライ要求を受諾する前には、最初の要求に対し、新たな拒絶時期情報を付して拒絶応答するオペレーションと、
を具備する方法。
【００４９】
（付記２）  サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避する方法であって、
(a) サービス可能な状態にあるターゲットノードにおいて、最初の要求が受信されたとき、該最初の要求を受諾するオペレーションと、
(b) サービス不能な状態に移行したターゲットノードにおいて、最初の要求が受信されたとき、該最初の要求に対し、少なくとも１ビットの拒絶時期情報を付して拒絶応答するオペレーションと、
(c) サービス可能な状態に復帰したターゲットノードにおいて、リトライ要求が受信されたとき、該リトライ要求に付された拒絶時期情報に応じて該リトライ要求を受諾するオペレーションと、
(d) サービス可能な状態にあるターゲットノードにおいて、リトライ要求に対してはオペレーション(c) と同様に処理する一方、最初の要求に対しては拒絶時期情報を付して拒絶応答するオペレーションと、
を具備する方法。
【００５０】
（付記３）  サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避する方法であって、
(a) ターゲットノードにおいて、少なくとも１ビットの第１のパラメータＣＥ、前記第１のパラメータと等しいビット数の第２のパラメータＳＥ、前記複数のイニシエータノードの数に応じて決定されるビット数の第３のパラメータＣＣ及び前記第３のパラメータと等しいビット数の第４のパラメータＳＣを、それぞれ、０に初期化するオペレーションと、
(b) イニシエータノードからターゲットノードへ最初の要求を送信するオペレーションと、
(c) ターゲットノードにおいて、最初の要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該最初の要求を受諾するオペレーションと、
(d) ターゲットノードにおいて、最初の要求が受信されたとき、ＣＥ＝ＳＥ及びＳＣ＞０であれば、又はＣＥ＝ＳＥ及びサービス提供不能であれば、ＣＥをインクリメントし、ＣＣに１をセットし、及び該最初の要求に対しＣＥの値を付して拒絶応答するオペレーションと、
(e) ターゲットノードにおいて、最初の要求が受信されたとき、ＣＥ≠ＳＥであれば、ＣＣをインクリメントし、及びＣＥの値を付して拒絶応答するオペレーションと、
(f) 拒絶応答を受信したイニシエータノードからターゲットノードへ、該拒絶応答に付されたＣＥの値と等しい値の第５のパラメータＲＥを付してリトライ要求を送信するオペレーションと、
(g) ターゲットノードにおいて、リトライ要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該リトライ要求を受諾するオペレーションと、
(h) ターゲットノードにおいて、リトライ要求が受信されたとき、ＲＥ＝ＳＥ＋１、ＳＣ＝０及びサービス提供可能であれば、ＳＥをインクリメントし、ＳＣにＣＣ−１をセットし、及び該リトライ要求を受諾するオペレーションと、
(i) ターゲットノードにおいて、リトライ要求が受信されたとき、ＲＥ＝ＳＥ、ＳＣ＞０及びサービス提供可能であれば、ＳＣをデクリメントし、及び該リトライ要求を受諾するオペレーションと、
(j) ターゲットノードにおいて、リトライ要求が受信されたとき、オペレーション(g) 、(i) 及び(j) のいずれの実行条件も満足されなければ、該リトライ要求に対しＲＥの値を付して拒絶応答するオペレーションと、
を具備する方法。
【００５１】
（付記４）  サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避するためにターゲットノードにて実行される方法であって、
(a) 少なくとも１ビットの第１のパラメータＣＥ、前記第１のパラメータと等しいビット数の第２のパラメータＳＥ、前記複数のイニシエータノードの数に応じて決定されるビット数の第３のパラメータＣＣ及び前記第３のパラメータと等しいビット数の第４のパラメータＳＣを、それぞれ０に初期化するオペレーションと、
(b) 最初の要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該最初の要求を受諾するオペレーションと、
(c) 最初の要求が受信されたとき、ＣＥ＝ＳＥ及びＳＣ＞０であれば、又はＣＥ＝ＳＥ及びサービス提供不能であれば、ＣＥをインクリメントし、ＣＣに１をセットし、及び該最初の要求に対しＣＥの値を付して拒絶応答するオペレーションと、
(d) 最初の要求が受信されたとき、ＣＥ≠ＳＥであれば、ＣＣをインクリメントし、及びＣＥの値を付して拒絶応答するオペレーションと、
(e) リトライ要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該リトライ要求を受諾するオペレーションと、
(f) リトライ要求が受信されたとき、ＲＥ＝ＳＥ＋１、ＳＣ＝０及びサービス提供可能であれば、ＳＥをインクリメントし、ＳＣにＣＣ−１をセットし、及び該リトライ要求を受諾するオペレーションと、
(g) リトライ要求が受信されたとき、ＲＥ＝ＳＥ、ＳＣ＞０及びサービス提供可能であれば、ＳＣをデクリメントし、及び該リトライ要求を受諾するオペレーションと、
(h) リトライ要求が受信されたとき、オペレーション(e) 、(f) 及び(g) のいずれの実行条件も満足されなければ、該リトライ要求に対しＲＥの値を付して拒絶応答するオペレーションと、
を具備する方法。
【００５２】
（付記５）  サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避するためにイニシエータノードにて実行される方法であって、
(a) ターゲットノードへ最初の要求を送信するオペレーションと、
(b) 最初の要求に対する拒絶応答を受信したとき、該拒絶応答に付された拒絶時期情報のパラメータの値と等しい値のパラメータを付してリトライ要求を送信するオペレーションと、
を具備する方法。
【００５３】
（付記６）  サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避する装置であって、
ターゲットノードがサービス不能な期間にあるとき、イニシエータノードからの要求に対し、該期間に応じた拒絶時期情報を付して拒絶応答する手段と、
ターゲットノードがサービス可能な状態にあるとき、より古い拒絶時期情報を伴うリトライ要求を優先的に受諾する手段と、
ターゲットノードがサービス可能な状態にあるとき、先に拒絶した全ての要求に対するリトライ要求を受諾する前には、最初の要求に対し、新たな拒絶時期情報を付して拒絶応答する手段と、
を具備する装置。
【００５４】
（付記７）  サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避する装置であって、
サービス可能な状態にあるターゲットノードにおいて、最初の要求が受信されたとき、該最初の要求を受諾する第１手段と、
サービス不能な状態に移行したターゲットノードにおいて、最初の要求が受信されたとき、該最初の要求に対し、少なくとも１ビットの拒絶時期情報を付して拒絶応答する第２手段と、
サービス可能な状態に復帰したターゲットノードにおいて、リトライ要求が受信されたとき、該リトライ要求に付された拒絶時期情報に応じて該リトライ要求を受諾する第３手段と、
サービス可能な状態にあるターゲットノードにおいて、リトライ要求に対しては第３手段と同様に処理する一方、最初の要求に対しては拒絶時期情報を付して拒絶応答する第４手段と、
を具備する装置。
【００５５】
（付記８）  サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避する装置であって、
ターゲットノードにおいて、少なくとも１ビットの第１のパラメータＣＥ、前記第１のパラメータと等しいビット数の第２のパラメータＳＥ、前記複数のイニシエータノードの数に応じて決定されるビット数の第３のパラメータＣＣ及び前記第３のパラメータと等しいビット数の第４のパラメータＳＣを、それぞれ、０に初期化する第１手段と、
イニシエータノードからターゲットノードへ最初の要求を送信する第２手段と、
ターゲットノードにおいて、最初の要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該最初の要求を受諾する第３手段と、
ターゲットノードにおいて、最初の要求が受信されたとき、ＣＥ＝ＳＥ及びＳＣ＞０であれば、又はＣＥ＝ＳＥ及びサービス提供不能であれば、ＣＥをインクリメントし、ＣＣに１をセットし、及び該最初の要求に対しＣＥの値を付して拒絶応答する第４手段と、
ターゲットノードにおいて、最初の要求が受信されたとき、ＣＥ≠ＳＥであれば、ＣＣをインクリメントし、及びＣＥの値を付して拒絶応答する第５手段と、
拒絶応答を受信したイニシエータノードからターゲットノードへ、該拒絶応答に付されたＣＥの値と等しい値の第５のパラメータＲＥを付してリトライ要求を送信する第６手段と、
ターゲットノードにおいて、リトライ要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該リトライ要求を受諾する第７手段と、ターゲットノードにおいて、リトライ要求が受信されたとき、ＲＥ＝ＳＥ＋１、ＳＣ＝０及びサービス提供可能であれば、ＳＥをインクリメントし、ＳＣにＣＣ−１をセットし、及び該リトライ要求を受諾する第８手段と、
ターゲットノードにおいて、リトライ要求が受信されたとき、ＲＥ＝ＳＥ、ＳＣ＞０及びサービス提供可能であれば、ＳＣをデクリメントし、及び該リトライ要求を受諾する第９手段と、
ターゲットノードにおいて、リトライ要求が受信されたとき、第７手段、第８手段及び第９手段におけるいずれの動作条件も満足されなければ、該リトライ要求に対しＲＥの値を付して拒絶応答する第１０手段と、
を具備する装置。
【００５６】
（付記９）  サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避するためにターゲットノードにおいて実装される装置であって、
少なくとも１ビットの第１のパラメータＣＥ、前記第１のパラメータと等しいビット数の第２のパラメータＳＥ、前記複数のイニシエータノードの数に応じて決定されるビット数の第３のパラメータＣＣ及び前記第３のパラメータと等しいビット数の第４のパラメータＳＣを、それぞれ０に初期化する第１手段と、
最初の要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該最初の要求を受諾する第２手段と、
最初の要求が受信されたとき、ＣＥ＝ＳＥ及びＳＣ＞０であれば、又はＣＥ＝ＳＥ及びサービス提供不能であれば、ＣＥをインクリメントし、ＣＣに１をセットし、及び該最初の要求に対しＣＥの値を付して拒絶応答する第３手段と、
最初の要求が受信されたとき、ＣＥ≠ＳＥであれば、ＣＣをインクリメントし、及びＣＥの値を付して拒絶応答する第４手段と、
リトライ要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該リトライ要求を受諾する第５手段と、
リトライ要求が受信されたとき、ＲＥ＝ＳＥ＋１、ＳＣ＝０及びサービス提供可能であれば、ＳＥをインクリメントし、ＳＣにＣＣ−１をセットし、及び該リトライ要求を受諾する第６手段と、
リトライ要求が受信されたとき、ＲＥ＝ＳＥ、ＳＣ＞０及びサービス提供可能であれば、ＳＣをデクリメントし、及び該リトライ要求を受諾する第７手段と、
リトライ要求が受信されたとき、第５手段、第６手段及び第７手段におけるいずれの動作条件も満足されなければ、該リトライ要求に対しＲＥの値を付して拒絶応答する第８手段と、
を具備する装置。
【００５７】
（付記１０）  サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避するためにイニシエータノードに実装される装置であって、
ターゲットノードへ最初の要求を送信する手段と、
最初の要求に対する拒絶応答を受信したとき、該拒絶応答に付された拒絶時期情報のパラメータの値と等しい値のパラメータを付してリトライ要求を送信する手段と、
を具備する装置。
【００５８】
（付記１１）  サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避する装置によって読み取り可能な記録媒体であって、
ターゲットノードがサービス不能な期間にあるとき、イニシエータノードからの要求に対し、該期間に応じた拒絶時期情報を付して拒絶応答する機能と、
ターゲットノードがサービス可能な状態にあるとき、より古い拒絶時期情報を伴うリトライ要求を優先的に受諾する機能と、
ターゲットノードがサービス可能な状態にあるとき、先に拒絶した全ての要求に対するリトライ要求を受諾する前には、最初の要求に対し、新たな拒絶時期情報を付して拒絶応答する機能と、
を実現させるプログラムを格納する記録媒体。
【００５９】
（付記１２）  サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避する装置によって読み取り可能な記録媒体であって、
サービス可能な状態にあるターゲットノードにおいて、最初の要求が受信されたとき、該最初の要求を受諾する第１機能と、
サービス不能な状態に移行したターゲットノードにおいて、最初の要求が受信されたとき、該最初の要求に対し、少なくとも１ビットの拒絶時期情報を付して拒絶応答する第２機能と、
サービス可能な状態に復帰したターゲットノードにおいて、リトライ要求が受信されたとき、該リトライ要求に付された拒絶時期情報に応じて該リトライ要求を受諾する第３機能と、
サービス可能な状態にあるターゲットノードにおいて、リトライ要求に対しては第３機能と同様に処理する一方、最初の要求に対しては拒絶時期情報を付して拒絶応答する第４機能と、
を実現させるプログラムを格納する記録媒体。
【００６０】
（付記１３）  サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおいて、イニシエータノードのスタベーションを回避する装置によって読み取り可能な記録媒体であって、
ターゲットノードにおいて、少なくとも１ビットの第１のパラメータＣＥ、前記第１のパラメータと等しいビット数の第２のパラメータＳＥ、前記複数のイニシエータノードの数に応じて決定されるビット数の第３のパラメータＣＣ及び前記第３のパラメータと等しいビット数の第４のパラメータＳＣを、それぞれ、０に初期化する第１機能と、
イニシエータノードからターゲットノードへ最初の要求を送信する第２機能と、
ターゲットノードにおいて、最初の要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該最初の要求を受諾する第３機能と、
ターゲットノードにおいて、最初の要求が受信されたとき、ＣＥ＝ＳＥ及びＳＣ＞０であれば、又はＣＥ＝ＳＥ及びサービス提供不能であれば、ＣＥをインクリメントし、ＣＣに１をセットし、及び該最初の要求に対しＣＥの値を付して拒絶応答する第４機能と、
ターゲットノードにおいて、最初の要求が受信されたとき、ＣＥ≠ＳＥであれば、ＣＣをインクリメントし、及びＣＥの値を付して拒絶応答する第５機能と、
拒絶応答を受信したイニシエータノードからターゲットノードへ、該拒絶応答に付されたＣＥの値と等しい値の第５のパラメータＲＥを付してリトライ要求を送信する第６機能と、
ターゲットノードにおいて、リトライ要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該リトライ要求を受諾する第７機能と、
ターゲットノードにおいて、リトライ要求が受信されたとき、ＲＥ＝ＳＥ＋１、ＳＣ＝０及びサービス提供可能であれば、ＳＥをインクリメントし、ＳＣにＣＣ−１をセットし、及び該リトライ要求を受諾する第８機能と、
ターゲットノードにおいて、リトライ要求が受信されたとき、ＲＥ＝ＳＥ、ＳＣ＞０及びサービス提供可能であれば、ＳＣをデクリメントし、及び該リトライ要求を受諾する第９機能と、
ターゲットノードにおいて、リトライ要求が受信されたとき、第７機能、第８機能及び第９機能におけるいずれの動作条件も満足されなければ、該リトライ要求に対しＲＥの値を付して拒絶応答する第１０機能と、
を実現させるプログラムを格納する記録媒体。
【００６１】
（付記１４）  サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおけるターゲットノードによって読み取り可能な記録媒体であって、
少なくとも１ビットの第１のパラメータＣＥ、前記第１のパラメータと等しいビット数の第２のパラメータＳＥ、前記複数のイニシエータノードの数に応じて決定されるビット数の第３のパラメータＣＣ及び前記第３のパラメータと等しいビット数の第４のパラメータＳＣを、それぞれ０に初期化する第１機能と、
最初の要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該最初の要求を受諾する第２機能と、
最初の要求が受信されたとき、ＣＥ＝ＳＥ及びＳＣ＞０であれば、又はＣＥ＝ＳＥ及びサービス提供不能であれば、ＣＥをインクリメントし、ＣＣに１をセットし、及び該最初の要求に対しＣＥの値を付して拒絶応答する第３機能と、
最初の要求が受信されたとき、ＣＥ≠ＳＥであれば、ＣＣをインクリメントし、及びＣＥの値を付して拒絶応答する第４機能と、
リトライ要求が受信されたとき、ＣＥ＝ＳＥ、ＳＣ＝０及びサービス提供可能であれば、該リトライ要求を受諾する第５機能と、
リトライ要求が受信されたとき、ＲＥ＝ＳＥ＋１、ＳＣ＝０及びサービス提供可能であれば、ＳＥをインクリメントし、ＳＣにＣＣ−１をセットし、及び該リトライ要求を受諾する第６機能と、
リトライ要求が受信されたとき、ＲＥ＝ＳＥ、ＳＣ＞０及びサービス提供可能であれば、ＳＣをデクリメントし、及び該リトライ要求を受諾する第７機能と、
リトライ要求が受信されたとき、第５機能、第６機能及び第７機能におけるいずれの動作条件も満足されなければ、該リトライ要求に対しＲＥの値を付して拒絶応答する第８機能と、
を実現させるスタベーション回避用プログラムを格納する記録媒体。
【００６２】
（付記１５）  サービスを提供する少なくとも１つのターゲットノード及び該ターゲットノードに対しサービスを要求する複数のイニシエータノードが接続されるコンピュータネットワークにおけるイニシエータノードによって読み取り可能な記録媒体であって、
ターゲットノードへ最初の要求を送信する機能と、
最初の要求に対する拒絶応答を受信したとき、該拒絶応答に付された拒絶時期情報のパラメータの値と等しい値のパラメータを付してリトライ要求を送信する機能と、
を実現させるスタベーション回避用プログラムを格納する記録媒体。
【００６３】
【発明の効果】
以上説明したように、本発明によれば、コンピュータネットワークにおけるスタベーションを回避する方法及び装置であってスタベーション回避のためにパケット内に設ける必要のあるフィールドのビット数を最小限に抑えることができるものが提供される。
【図面の簡単な説明】
【図１】図１は、本発明が適用され得るコンピュータネットワークの一例を示す図である。
【図２】図２は、本発明を実施するターゲットノードのハードウェア構成の一例を示す図である。
【図３】図３は、イニシエータノードからターゲットノードへ送信される要求パケットのフォーマットを示す図である。
【図４】図４は、ターゲットノードからイニシエータノードに送信される応答パケットのフォーマットを示す図である。
【図５】図５は、ターゲットノードにおいて要求の受信時に実行される処理の手順を示すフローチャート（１／２）である。
【図６】図６は、ターゲットノードにおいて要求の受信時に実行される処理の手順を示すフローチャート（２／２）である。
【図７】図７は、イニシエータノードにおいて応答パケットの受信時に実行される処理の手順を示すフローチャートである。
【図８】図８は、ターゲットノードの各状態、動作及び状態遷移を示す図である。
【図９】図９は、典型的な動作の一例を示すシーケンスチャートである。
【図１０】図１０は、典型的な動作の他の例を示すシーケンスチャートである。
【符号の説明】
１０…コンピュータネットワーク
１２…ターゲットノード
１４…イニシエータノード
２０…中央処理装置（ＣＰＵ）
２２…メモリ
２４…ネットワークインタフェースユニット
【図１】
0003759708.tif 000002
【図２】
0003759708.tif 000003
【図３】
0003759708.tif 000004
【図４】
0003759708.tif 000005
【図５】
0003759708.tif 000006
【図６】
0003759708.tif 000007
【図７】
0003759708.tif 000008
【図８】
0003759708.tif 000009
【図９】
0003759708.tif 000010
【図１０】
0003759708.tif 000011