(57)【要約】   【課題】  高速ノードからのトラフィックフローを、それと比較して低速な従来のノードで受信する際に、パケットロスや処理遅延を最小化し、スムーズで安定したパケットの授受が行える。  【解決手段】  送信ノード１２におけるパケット送信のための複数の開口部３０−０、１、・・・、ｎを有する送出バッファ２０は、上流側から下流側に至るまで隣接する開口部を接続するパケット伝送路と、各開口部からのパケット送信先である他のノードからそれぞれ受信した、当該他のノードが受信可能なバーストサイズを考慮して、パケットを、当該開口部から、他のノードに送信すべきか、或いは、パケット伝送路を介して下流側に隣接する開口部に送るべきかを判断する判断手段とを有する。【選択図】  図１
2004282688.tif 000002
【特許請求の範囲】
【請求項１】
送信ノードから受信ノードへのパケット送信の際に、フローを抑制する方法であって、
前記受信ノードにおいて、ある時間「ｔ」における当該受信ノードが受信可能なバーストサイズＢ（ｔ）を算出して、前記送信ノードに伝達するステップと、
前記送信ノードにおいて、伝達されたＢ（ｔ）に基づいて、前記受信ノードにパケットを送信するステップとを備え、
前記バーストサイズＢ（ｔ）を算出するステップが、前記受信ノードにおけるキューサイズの増加率、および、当該バーストサイズＢ（ｔ）の通知が送信ノードに到達するまでに受信する可能性のあるバーストパケット数を考慮したことを特徴とする方法。
【請求項２】
前記送信ノードが受信ノードよりも十分に高速である場合に、
前記送信ノードにおいて、送信ノードから受信ノードへの返送要求のパケットを送信し、その返答を受信する時間を計測するステップと、
前記受信ノードに対して、バーストパケット数として利用すべく、前記計測された時間を送信するステップとを備えたことを特徴とする請求項１に記載の方法。
【請求項３】
前記バーストサイズＢ（ｔ）が、
Ｂ（ｔ）＝（ＱMAX−ｋ）−
Ｃ×ｑ（ｔ）×（ｑ（ｔ）／ｑ（ｔ−Δｔ））ｎ
Ｂ（ｔ）：ｔにおける受信可能なバーストサイズ
ｋ：キューバッファサイズに見込む余裕度
ｎ：抑制通知が送信ノードに到達するまでに受信する可能性のあるバーストパケット数
Ｃ：増加率調整係数
ｔ：キューサイズ測定時間
Δｔ：測定時間間隔
ＱMAX：キューの最大値
ｑ（ｔ）：ｔにおけるキューサイズ
であることを特徴とする請求項１または２に記載の方法。
【請求項４】
送信ノードから受信ノードへのパケット送信の際に、フローを抑制する方法であって、
前記受信ノードにおいて、キューバッファ情報を、前記送信ノードに伝達するステップと、
前記送信ノードにおいて、伝達されたキューバッファ情報に基づいて、前記受信ノードにパケットを送信するステップとを備えたことを特徴とする方法。
【請求項５】
前記キューバッファ情報が、受信ノードのキューバッファ中のパケット数を含み、
前記送信ノードにおいて、伝達されたキューバッファ情報に含まれるパケット数を参照して、前記受信ノード宛てのパケットの送信間隔を調整するステップを備えたことを特徴とする請求項４に記載の方法。
【請求項６】
さらに、前記送信ノードにおいて、初期的に、送信ノードから受信ノードへの返送要求のパケットを、複数個連続して送信するステップと、
前記受信ノードにおいて、パケットの受信に応じて、それぞれ、リプライパケットを前記送信ノードに送信するステップと、
前記送信ノードにおいて、前記連続して送信されたパケットに対するリプライパケットの受信間隔に基づき、前記パケットの送信間隔の初期値を設定するステップと、
前記連続したパケットの送信後、前記初期値が設定されるまで、前記受信ノードへのパケット送信を停止するステップとを備えたことを特徴とする請求項５に記載の方法。
【請求項７】
前回に受信したリプライパケットから得られた、前記受信ノードのキューバッファにバッファされていたパケット数と、今回受信したリプライパケットから得られた、バッファされているパケット数との相違に基づき、前記送信間隔が調整されることを特徴とする請求項５または６に記載の方法。
【請求項８】
前記受信ノードにおいて、バッファされているパケット数の増減が所定の範囲を超えた場合に、前記送信ノードに対して、キューバッファ情報を送信することを特徴とする請求項５ないし７の何れか一項に記載の方法。
【請求項９】
パケット送信のための複数の開口部、および、隣接する開口部を接続するパケット伝送路を有する送出バッファを備えた高速の送信ノードと、他のノードとを備えたネットワークにおいて、前記送信ノードから他のノードにパケットが送信される際のフロー制御を実行するノード間のデータ伝達方法であって、
送信ノードのそれぞれの開口部において、当該開口部からのパケット送信先である他のノードからそれぞれ伝達された、当該他のノードのパケット受信許容度を示す情報を考慮して、当該開口部から、前記送信先である他のノード、或いは、前記パケット伝送路を通じてパケットが送られる方向である下流側に隣接する他の開口部に、パケットを送るステップを備えたことを特徴とする方法。
【請求項１０】
前記パケット受信許容度が、他のノードが受信可能なバーストサイズに基づくことを特徴とする請求項９に記載の方法。
【請求項１１】
前記パケット受信許容度が、他のノードにおけるキューバッファ情報に基づくことを特徴とする請求項９に記載の方法。
【請求項１２】
パケット送信のための複数の開口部、および、隣接する開口部を接続するパケット伝送路を有する送出バッファを備えた高速の送信ノード、パケット受信のための複数の受信口、および、隣接する受信口を接続するパケット伝送路を有する受信バッファを備えた高速の受信ノード、および、これらの間に介在する他のノードを備えたネットワークにおいて、前記送信ノード、他のノードおよび受信ノードにパケットが順次送信される際のフロー制御を実行するノード間のデータ伝達方法であって、
送信ノードにおいて、同一フローを構成するパケットにシーケンス番号を付与するステップと、
送信ノードのそれぞれの開口部において、当該開口部からのパケット送信先である他のノードから伝達された当該他のノードのパケット受信許容度を示す情報を考慮して、当該開口部から、前記送信先である他のノード、或いは、パケット伝送路を通じてパケットが送られる方向である下流側に隣接する他の開口部に、パケットを送るステップと、
前記受信ノードのそれぞれの受信口において、それぞれの他のノードから受信した、シーケンス番号付きのパケットを、前記パケット伝送路を通じてパケットが送られる方向である下流側に隣接する他の受信口に送ることにより、受信したパケットを循環させるステップと、
前記シーケンス番号にしたがって、パケットを出力するステップとを備えたことを特徴とする方法。
【請求項１３】
さらに、前記受信ノードにおいて、出力されるパケットのシーケンス番号から所定範囲のシーケンス番号を有するパケットを一時的にバッファに記憶するステップと、
前記バッファ中に、出力されたパケットのシーケンス番号から連続するシーケンス番号を有するパケットが存在する場合に、当該パケットを順次出力するステップとを備えたことを特徴とする請求項１２に記載の方法。
【請求項１４】
さらに、前記受信ノードにおいて、あるパケットの循環回数が所定数を超えた場合に、当該パケットを破棄するステップを備えたことを特徴とする請求項１２または１３に記載の方法。
【請求項１５】
さらに、前記受信ノードにおいて、あるパケットの循環回数が所定数を超えた場合に、前記シーケンス番号にかかわらず出力させるステップを備えたことを特徴とする請求項１２または１３に記載の方法。
【請求項１６】
パケット送信のための複数の開口部を有する送出バッファを備えた送信ノードであって、
前記送出バッファが、
上流側から下流側に至るまで隣接する開口部を接続するパケット伝送路と、
各開口部からのパケット送信先である他のノードからそれぞれ伝達された、当該他のノードのパケット受信許容度を考慮して、パケットを、当該開口部から、前記他のノードに送信すべきか、或いは、パケット伝送路を介して、パケットの送られる方向である下流側に隣接する開口部に送るべきかを判断する判断手段とを備えたことを特徴とする送信ノード。
【請求項１７】
前記パケット受信許容度が、他のノードが受信可能なバーストサイズに基づくことを特徴とする請求項１６に記載の送信ノード。
【請求項１８】
前記パケット受信許容度が、他のノードにおけるキューバッファ情報に基づくことを特徴とする請求項１６に記載の送信ノード。
【請求項１９】
さらに、入力した、同一フローを構成するパケットにシーケンス番号を付与するエンカウンタ手段を備えたことを特徴とする請求項１６ないし１８の何れか一項に記載の送信ノード。
【請求項２０】
請求項１９に記載の送信ノードと協働して、他のノードを介して送信されたパケットをそれぞれ受信する複数の受信口を有する受信バッファを備えた高速の受信ノードであって、
前記受信バッファが、上流側から下流側に至るまで隣接する受信口を接続するとともに、パケットの出口を介して最下流の受信口と最上流の受信口を接続するパケット伝送路と、
前記出口において、前記パケットに付与されたシーケンス番号を考慮して、パケットを出口から出力させるか、或いは、最上流の受信口に戻して循環させるかを判断する判断手段とを備えたことを特徴とする受信ノード。
【請求項２１】
さらに、出力されるパケットのシーケンス番号から所定範囲のシーケンス番号を有するパケットを一時的に記憶するバッファを備え、
前記判断手段が、前記バッファ中に、出力されたパケットのシーケンス番号から連続するシーケンス番号を有するパケットが存在する場合に、当該パケットを順次出力することを特徴とする請求項２０に記載の受信ノード。
【請求項２２】
前記判断手段が、あるパケットの循環回数が所定数を超えた場合に、当該パケットを破棄することを特徴とする請求項２０または２１に記載の受信ノード。
【請求項２３】
前記判断手段が、あるパケットの循環回数が所定数を超えた場合に、前記シーケンス番号にかかわらず出口から出力させることを特徴とする請求項２０または２１に記載の受信ノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、新規ノードと従来のノードが共存した状態で、高性能の新規ノードが有益に活用されるシステムに関する。
【背景技術】
【０００２】
ノード技術の進展の結果、大容量伝送路をインタフェースするため高速化の一途をたどる新規ノードと、従来のノードとが共存し、これらのノード間の処理能力に歴然たる差を生じている。この処理能力格差の状況は、今後もノード技術が革新し続けていくことが明らかであり、将来に渡って存在し、さらに拡大していくことも考えられる。
【０００３】
高速化されたノードから、その処理能力に依存したバーストトラフィックが転送される場合、従来のノードではそのフローを受けきれずに、パケットロスを生じ、あるいは、このノード自体がオーバーロードしてフリーズすることがある。一部のネットワークノードの高速化が、反して、ボトルネックを発生させ、ネットワーク全体の性能を劣化させるという矛盾した現象が起こってきている。
【０００４】
このような問題点を解決するために、たとえば、特許文献１には、ＲＭセル用のセル伝送レート情報を生成するＲＭセル情報生成器を備えた出力ポートモジュールを用いて、ネットワーク資源の輻輳を抑える技術が開示されている。
【０００５】
【特許文献１】特開平１０−６５７１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、単に、高速化されたノードから、低速のノードへのレートを制限するだけでは、輻輳を抑制できるものの、送信元である高速ノードでは、本来のパフォーマンスを十分に発揮できず、低速のノード向けフローを抑制して送出することを強いられることとなる。すなわち、ネットワークリソースを十分活用できないという問題が残される。
【０００７】
本発明は、高速ノードからのトラフィックフローを、それと比較して低速な従来のノードで受信する際に、パケットロスや処理遅延を最小化し、スムーズで安定したパケットの授受が行えるようにし、本来期待されていたフローの品質を確保することを目的とする。また、高速ノードからのトラフィックフローを、より適切に制御し、パケットロスを最小化することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の目的は、送信ノードから受信ノードへのパケット送信の際に、フローを抑制する方法であって、前記受信ノードにおいて、ある時間「ｔ」における当該受信ノードが受信可能なバーストサイズＢ（ｔ）を算出して、前記送信ノードに伝達するステップと、前記送信ノードにおいて、伝達されたＢ（ｔ）に基づいて、前記受信ノードにパケットを送信するステップとを備え、前記バーストサイズＢ（ｔ）を算出するステップが、前記受信ノードにおけるキューサイズの増加率、および、当該バーストサイズＢ（ｔ）の通知が送信ノードに到達するまでに受信する可能性のあるバーストパケット数を考慮したことを特徴とする方法により達成される。
【０００９】
本発明によれば、キューサイズの増加率、および、Ｂ（ｔ）を通知する間に受信する可能性のあるバーストパケット数を考慮することにより、より適切で緻密なフロー制御を実現することが可能となる。なお、本明細書において、「ノード」は、ルータおよびスイッチを含む。
【００１０】
好ましい実施態様においては、前記送信ノードが受信ノードよりも十分に高速である場合に、前記送信ノードにおいて、送信ノードから受信ノードへの返送要求のパケットを送信し、その返答を受信する時間を計測するステップと、前記受信ノードに対して、バーストパケット数として利用すべく、前記計測された時間を送信するステップとを備えている。
【００１１】
より好ましい実施態様においては、前記バーストサイズＢ（ｔ）が、
Ｂ（ｔ）＝（ＱMAX−ｋ）−
Ｃ×ｑ（ｔ）×（ｑ（ｔ）／ｑ（ｔ−Δｔ））ｎ
Ｂ（ｔ）：ｔにおける受信可能なバーストサイズ
ｋ：キューバッファサイズに見込む余裕度
ｎ：抑制通知が送信ノードに到達するまでに受信する可能性のあるバーストパケット数
Ｃ：増加率調整係数  ｔ：キューサイズ測定時間
Δｔ：測定時間間隔
ＱMAX：キューの最大値
ｑ（ｔ）：ｔにおけるキューサイズ
である。
【００１２】
他の実施形態において、送信ノードから受信ノードへのパケット送信の際に、フローを抑制する方法は、前記受信ノードにおいて、キューバッファ情報を、前記送信ノードに伝達するステップと、前記送信ノードにおいて、伝達されたキューバッファ情報に基づいて、前記受信ノードにパケットを送信するステップとを備えている。
この実施態様によれば、受信ノードにおける連続バッファリングを解消させることが可能となる。
【００１３】
より好ましい実施態様においては、前記キューバッファ情報が、受信ノードのキューバッファ中のパケット数を含み、前記送信ノードにおいて、伝達されたキューバッファ情報に含まれるパケット数を参照して、前記受信ノード宛てのパケットの送信間隔を調整する。
【００１４】
また、好ましい実施態様においては、さらに、前記送信ノードにおいて、初期的に、送信ノードから受信ノードへの返送要求のパケットを、複数個連続して送信するステップと、前記受信ノードにおいて、パケットの受信に応じて、それぞれ、リプライパケットを前記送信ノードに送信するステップと、前記送信ノードにおいて、前記連続して送信されたパケットに対するリプライパケットの受信間隔に基づき、前記パケットの送信間隔の初期値を設定するステップと、前記連続したパケットの送信後、前記初期値が設定されるまで、前記受信ノードへのパケット送信を停止するステップとを備えている。たとえば、前回に受信したリプライパケットから得られた、前記受信ノードのキューバッファにバッファされていたパケット数と、今回受信したリプライパケットから得られた、バッファされているパケット数との相違に基づき、前記送信間隔が調整されても良い。
【００１５】
また、前記受信ノードにおいて、バッファされているパケット数の増減が所定の範囲を超えた場合に、前記送信ノードに対して、リプライパケットを送信し、キューバッファ情報を伝達するように構成しても良い。
【００１６】
また、本発明の目的は、パケット送信のための複数の開口部、および、隣接する開口部を接続するパケット伝送路を有する送出バッファを備えた高速の送信ノードと、他のノードとを備えたネットワークにおいて、前記送信ノードから他のノードにパケットが送信される際のフロー制御を実行するノード間のデータ伝達方法であって、送信ノードのそれぞれの開口部において、当該開口部からのパケット送信先である他のノードからそれぞれ伝達された、当該他のノードのパケット受信許容度を示す情報を考慮して、当該開口部から、前記送信先である他のノード、或いは、前記パケット伝送路を通じてパケットが送られる方向である下流側に隣接する他の開口部に、パケットを送るステップを備えたことを特徴とする方法により達成される。
【００１７】
たとえば、パケット受信許容度は、他のノードが受信可能なバーストサイズに基づくものであっても良いし、他のノードにおけるキューバッファ情報に基づくものであっても良い。
【００１８】
この発明によれば、ある開口部から他のノードへのフローが抑制された場合、その下流側に隣接する他の開口部から、その送信先であるノード（さらに他のノード）へのパケット送信が実現される。これにより、高速な送信ノードは、低速の従来のノードでの輻輳の問題を解決しつつ、そのパフォーマンスを十分に発揮することが可能となる。
【００１９】
別の好ましい実施態様において、パケット送信のための複数の開口部、および、隣接する開口部を接続するパケット伝送路を有する送出バッファを備えた高速の送信ノード、パケット受信のための複数の受信口、および、隣接する受信口を接続するパケット伝送路を有する受信バッファを備えた高速の受信ノード、および、これらの間に介在する他のノードを備えたネットワークにおいて、前記送信ノード、他のノードおよび受信ノードにパケットが順次送信される際のフロー制御を実行するノード間のデータ伝達方法は、送信ノードにおいて、同一フローを構成するパケットにシーケンス番号を付与するステップと、送信ノードのそれぞれの開口部において、当該開口部からのパケット送信先である他のノードから伝達された当該他のノードのパケット受信許容度を示す情報を考慮して、当該開口部から、前記送信先である他のノード、或いは、前記パケット伝送路を通じてパケットが送られる方向である下流側に隣接する他の開口部に、パケットを送るステップと、前記受信ノードのそれぞれの受信口において、それぞれの他のノードから受信した、シーケンス番号付きのパケットを、前記パケット伝送路を通じてパケットが送られる方向である下流側に隣接する他の受信口に送ることにより、受信したパケットを循環させるステップと、前記シーケンス番号にしたがって、パケットを出力するステップとを備えたことを特徴とする。
【００２０】
この実施態様によれば、送信ノードの複数の開口部から、それぞれの他のノードを介して、受信ノードの受信口で受信したパケットを、そのシーケンス番号にしたがって出力することが可能となる。
好ましい実施態様においては、さらに、前記受信ノードにおいて、出力されるパケットのシーケンス番号から所定範囲のシーケンス番号を有するパケットを一時的にバッファに記憶するステップと、前記バッファ中に、出力されたパケットのシーケンス番号から連続するシーケンス番号を有するパケットが存在する場合に、当該パケットを順次出力するステップとを備えている。
【００２１】
たとえば、フローの微小な変動によって、受信口のそれぞれで受信したパケットの循環する順序が僅差で逆転した場合に、先に、次に出力すべきパケットのシーケンス番号より僅かに大きなシーケンス番号を有するパケットが、出力させるべきかどうかチェックされる。その結果、この僅かに大きなシーケンス番号を有するパケットは、パケット伝送路を経由して周回を余儀なくされる。この周回遅延の蓄積によりフロー全体の遅延増加が生じるおそれもある。上記実施態様によれば、所定の範囲のシーケンス番号を有するパケットを、パケット伝送路を経由して周回させずに、バッファに一時的に記憶しておくことで、パケット出力の遅延を抑制することができる。
【００２２】
上記実施態様において、たとえば、前記受信ノードにおいて、あるパケットの循環回数が所定数を超えた場合に、当該パケットを破棄するステップを備えていても良い。また、前記受信ノードにおいて、あるパケットの循環回数が所定数を超えた場合に、前記シーケンス番号にかかわらず出力させてもよい。このような構成により、受信バッファ中に過度に多数のパケットが循環することを防止できる。
【００２３】
また、本発明の目的は、パケット送信のための複数の開口部を有する送出バッファを備えた送信ノードであって、前記送出バッファが、上流側から下流側に至るまで隣接する開口部を接続するパケット伝送路と、各開口部からのパケット送信先である他のノードからそれぞれ伝達された、当該他のノードのパケット受信許容度を考慮して、パケットを、当該開口部から、前記他のノードに送信すべきか、或いは、パケット伝送路を介して、当該パケットが送られる方向である下流側に隣接する開口部に送るべきかを判断する判断手段とを備えたことを特徴とする送信ノードによっても達成される。
【００２４】
たとえば、パケット受信許容度は、他のノードが受信可能なバーストサイズに基づいても良いし、他のノードにおけるキューバッファ情報に基づいても良い。
この送信ノードにおいては、さらに、入力した、同一フローを構成するパケットにシーケンス番号を付与するエンカウンタ手段を備えるのが望ましい。
【００２５】
また、本発明の目的は、上記送信ノードと協働して、他のノードを介して送信されたパケットをそれぞれ受信する複数の受信口を有する受信バッファを備えた高速の受信ノードであって、前記受信バッファが、上流側から下流側に至るまで隣接する受信口を接続するとともに、パケットの出口を介して最下流の受信口と最上流の受信口を接続するパケット伝送路と、前記出口において、前記パケットに付与されたシーケンス番号を考慮して、パケットを出口から出力させるか、或いは、最上流の受信口に戻して循環させるかを判断する判断手段とを備えたことを特徴とする受信ノードによっても達成される。
【００２６】
好ましい実施態様においては、さらに、出力されるパケットのシーケンス番号から所定範囲のシーケンス番号を有するパケットを一時的に記憶するバッファを備え、前記判断手段が、前記バッファ中に、出力されたパケットのシーケンス番号から連続するシーケンス番号を有するパケットが存在する場合に、当該パケットを順次出力する。
さらに、前記判断手段が、あるパケットの循環回数が所定数を超えた場合に、当該パケットを破棄するように構成されていても良い。或いは、前記判断手段が、あるパケットの循環回数が所定数を超えた場合に、前記シーケンス番号にかかわらず出口から出力させるように構成されていても良い。
【発明の効果】
【００２７】
本発明によれば、高速ノードからのトラフィックフローを、それと比較して低速な従来のノードで受信する際に、パケットロスや処理遅延を最小化し、スムーズで安定したパケットの授受が行えるようにし、本来期待されていたフローの品質を確保することが可能となる。
【発明を実施するための最良の形態】
【００２８】
以下、添付図面を参照して、本発明の実施の形態について説明する。図１は、本発明の第１の実施の形態にかかる自律抑制型フロー制御方法を採用したシステムの例を示す図である。図１において、高速ノードとして、後述する溢れ型送出バッファ２０を備えた高速ノード１２と、後述する環状型受信バッファ２４を備えた高速ノード１４が示されている。図１の例では、高速ノード１２から、高速ノード１４への、他のノード（従来のノード）１６−０等を介したパケット送信を考えているため、送信側において溢れ型送出バッファ２０を備え、その一方、受信側において環状型受信バッファ２４を備えているが、無論、高速ノードは、これら双方のバッファを備えていて良いことはいうまでもない。なお、この従来のノードは、溢れ型送出バッファ２０や循環型受信バッファ２４を備えた高速ノード以外のノードを意味し、便宜上「従来のノード」と称している。また、従来のノードは、場合によって、「低速ノード」とも称する。
【００２９】
この例において、高速ノード１２からのパケットは、基本的には、従来のノード１６−０を介して高速ノード１４に送信される。また、従来のノード１６−０、・・・、ｎは、以下に詳述するように、受信可能なバーストサイズを算出し、これを送信元のノード（この例では高速ノード１２）に伝達できるようになっている。
【００３０】
まず、本実施の形態にかかる自律抑制フロー制御について、その概略を示した図２を参照して説明する。パケットロスや受信ノードのオーバーフローは、受信ノードの処理能力ボトルネック（図２の符号２０１参照）や、当該ノードから送信先へのリンクの帯域不足（符号２０２参照）に依存する。これらのボトルネックは、結果的に当該ノードのキューバッファサイズの上昇を導く（符号２０３参照）。なお、図中において、「キューサイズ」とは、キューに収容されているパケットサイズの合計を意味している。したがって、本実施の形態においては、キューバッファサイズの管理、および、これから得られるパラメータによって計算を行い、ボトルネックを検出の際には、必要に応じて送信ノードにフローの抑制を通知する（符号２０６参照）。
【００３１】
特に、本実施の形態においては、キューサイズの増加（符号２０３参照）だけでなく、キューサイズの増加率の増加（符号２０４）を考慮して、受信ノードにおける受信可能なパケットサイズが算出される（符号２０５参照）。すなわち、第１の実施の形態においては、パケット受信許容度は、受信ノードにおける受信可能なパケットサイズに基づくものとなる。
【００３２】
従来のノード１６は、自己のキューサイズなどにしたがって、以下の計算式を算出することができるようになっている。
Ｂ（ｔ）＝（ＱMAX−ｋ）−
Ｃ×ｑ（ｔ）×（ｑ（ｔ）／ｑ（ｔ−Δｔ））ｎ    ・・・（Ｉ）  
ここに、
Ｂ（ｔ）：ｔにおける受信可能なバーストサイズ
ｋ：キューバッファサイズに見込む余裕度
ｎ：抑制通知が送信ノードに到達するまでに受信する可能性のあるバーストパケット数
Ｃ：増加率調整係数
ｔ：キューサイズ測定時間
Δｔ：測定時間間隔
ＱMAX：キューの最大値
ｑ（ｔ）：ｔにおけるキューサイズ
である。
【００３３】
図３に示すように、従来のノード１６は、高速ノード１２からのパケットを受信すると、新たなタイミング「ｔ」でのキューサイズｑ（ｔ）を算出し（符号３０１参照）、次いで、従来のノード１６は、たとえば、上記（Ｉ）式にしたがって、当該従来のノード１６が受信可能なバーストサイズＢ（ｔ）を算出する（符号３０２参照）。次いで、算出されたバーストサイズＢ（ｔ）が、送信元のノード、ここでは高速ノード１２に伝達される。なお、このバーストサイズＢ（ｔ）は、測定時間間隔で伝達されても良いし、或いは、従来のノード１６において閾値を設定しておき、これを超えたときに、送信元のノードに伝達するようにしても良い。
【００３４】
これにより、送信元のノード、本実施の形態では高速ノード１２は、バーストサイズＢ（ｔ）を知ることにより、パケットの送信先のノード（従来のノード）に送信できるパケットサイズを知ることが可能となる。
【００３５】
ここに、上記バーストパケット数ｎは、以下のように算出され得る。図４は、ノード間の伝送時間を概略的に表した図である。
（１）従来のノード１６から高速ノード１２へPingのような返送を要求するパケットを送信することを考える。このときの返答までに要する時間を、ｔ１＋Ｔ４＋ｔ２（＝ａ）とする。
（２）また、高速ノード１２から従来のノード１６へ返送要求のパケットを送信することを考える。このときの返答までに要する時間を、ｔ２＋Ｔ３＋ｔ１（＝ｂ）とする。
【００３６】
（１）、（２）から、Ｔ３−Ｔ４＝ｂ−ａとなる。ここで、高速ノード１２の性能が、従来のノード１６の性能に比べて十分高いとすると、
Ｔ３＞＞Ｔ４なので、Ｔ３≒ｂ−ａとなる。
【００３７】
（３）従来ノード１６が、バースト許容値を通知してから反映されるまでの遅延時間は、Ｔ３＋ｔ１＋Ｔ４＋ｔ２＝ａ＋（ｂ−ａ）＝ｂ
【００３８】
したがって、（２）の測定時間、つまり、高速ノード１２から従来のノード１６へ返送要求のパケットを送信し、返答までに要する時間を、従来のノード１６に通知すれば良い。従来のノード１６では、この「ｂ」の間にバーストパケットが続くと想定し、上記（Ｉ）式の「ｎ」に、「ｎ＝ｂ／Δｔ」を代入すればいいことになる。これは、（Ｉ）式では、バーストパケットの単位を測定時間Δｔに到着したパケット群とした式であることによる。
【００３９】
上述の手続きにより、高速ノード１２からの送信フローを受信する低速ノード１６でのパケットロスやオーバーロードが解消されることが期待できる。しかしながら、送信元の高速ノード１２では、本来のパフォーマンスを十分に発揮できず、低速ノード１６向けにフローを抑制して送信することを強いられることとなる。すなわち、これでは、ネットワークリソースを十分活用できないという問題が残されている。
【００４０】
この問題を解決するために、本実施の形態においては、高速ノード１２に、溢れ型送出バッファ２０を設けることとした。溢れ型送出バッファ２０により、高速ノード１２から転送されるトラフィックを複数の低速ノード（図１において、従来のノード１６−０、１６−１、・・・）で受信することにより、高速ノード１２の本来の性能を十分発揮できることを提示する。溢れ型送出バッファ２０は、上流側から順次パケット伝送路により接続された溢れ型開口部を備えている。各溢れ開口部（たとえば、図１の符号３０−０、３０−１、・・・参照）では低速ノードからの抑制バーストパケットサイズの指定を受け（矢印１００、１０１参照）、送信の過程で当該指定サイズを溢れることとなったパケットは下流側の溢れ型開口部へ送られることになる。
【００４１】
このような制御方式を採り入れる事により、高速ノード１２の処理性能に応じて、並列接続する低速ノードの数が決定され、ネットワークリソースの有効活用が可能となる。
【００４２】
図５は、本実施の形態にかかる溢れ型送出バッファ２０をより詳細に示すダイヤグラムである。図５に示すように、バッファ入力部３２に入力されたパケットには、エンカウンタ２２（図１参照）から与えられたカウンタ値「ｉ」が付与され、最上流の溢れ型開口部３０−０に与えられる。なお、カウンタ値「ｉ」が付与されると、エンカウンタ２２は、カウンタ値をインクリメントする（ｉ＝ｉ＋１）。
【００４３】
溢れ型開口部３０−０においては、後述する判断ロジックにより、当該溢れ型開口部３０−０からパケットを送信すべきか、或いは、溢れ型送出バッファ２０において、当該溢れ型開口部３０−０からパケット伝送路を通じてパケットが送られる方向である下流側に隣接する溢れ型開口部３０−１にパケットを送るべきかを判断する。他の溢れ型開口部３０−１、・・・、３０−ｎにおいても同様である。また、それぞれの溢れ型開口部３０−０、３０−１、・・・、３０−ｎには、当該溢れ型開口部のそれぞれからパケットを送信する宛先のノード（従来のノード）から、バーストサイズＢ（ｔ）０、Ｂ（ｔ）１、・・・、Ｂ（ｔ）ｎが与えられるようになっている。
【００４４】
図６は、ある溢れ型開口部３０−ｉの構成をより詳細に示すブロックダイヤグラムである。本実施の形態において、以下の点を除き、溢れ型開口部３０−１、・・・、ｎは、それぞれ同様の構成となっている。すなわち、最上流の溢れ型開口部３０−０には、バッファ入力部からのパケットが与えられ、その一方、最下流の溢れ型開口部３０−ｎから溢れ出たパケットは廃棄される。図６に示すように、溢れ型開口部３０−ｉは、上流に位置する溢れ型開口部３０−(i-1)から与えられたパケットの、単位時間内のパケット長を加算して、そのレート「Rate」を算出するレート計測部６０１を備える。取得されたレート「Rate」は、溢れ型開口部３０−ｉからパケットを送信すべきノード（従来のノード１６−ｉ）から与えられたバーストサイズＢ（ｔ）ｉと比較される（符号６０２参照）。ここで、「Rate≦Ｂ（ｔ）ｉ」であれば(YES)、パケットは、この溢れ型開口部３０−ｉから、宛先である従来のノード１６−ｉに送信される。その一方、「Rate＞Ｂ（ｔ）ｉ」であれば（No）、このパケットは、下流の溢れ型開口部３０−(i+1)に送られる。
【００４５】
溢れ型送出バッファ２０において、同一フローのパケット群が各々異なる経路を通る場合に、順序逆転が起こる可能性がある。順序逆転が生じたフローを補償するために、送信側の高速ノード１２にはエンカウンタ機能（図１の符号２２参照）を設け、同一フローのパケットにシーケンス番号を付与する。受信側の高速ノード１４では、エンカウンタされたパケットの順序補償を効率よく行うため、環状型受信バッファ２４が設けられる。この受信バッファ２４の出力判定にカウンタチェック機能（図１の符号２６参照）を設け、シーケンス番号が連続していないパケットは再循環させ、シーケンス番号の連続するパケットを先に出力させる。ただし、パケット損失の可能性を考慮して、パケットの循環回数は規定しておき、規定回数を超えたパケットはシーケンス番号の連続性によらず出力させる。
【００４６】
図７は、本実施の形態にかかる環状型受信バッファ２４をより詳細に示すブロックダイヤグラムである。図７に示すように、環状型受信バッファ２４は、上流側から順次パケット伝送路により接続された複数の受信口３４−０、３４−１、・・・、３４−ｎを備えている。各受信口は、それぞれ、従来のノード１６−０、１６−１、・・・、１６−ｎからのパケットを受信できるようになっている。また、各受信口は、従来のノードから新たに受信したパケットに、マーキングの初期値「M＝０」を付与するマーキング付与部（たとえば、符号７０１−０、７０１−１参照）を備えている。なお、前記溢れ型送出バッファ２０に関連して説明したように、各受信口に受信されるパケットには、エンカウンタから与えられたカウンタ値「ｉ」（ｉ＝１、２、・・・）が付与されている。
【００４７】
ある受信口３４−ｉに受信されたパケットは、マーキングの初期値「M＝０」を付与され、伝送路を経由して下流側の受信口３４−(i+1)に送られる。その後、このパケットは下流側の受信口へ繰り返し送られ、最下流の受信口３４−ｎに達すると、次いで、パケットが、カウンタチェック部２６に送られる。カウンタチェック部２６において、所定の処理の後、出力すべきパケットは、外部に出力され、それ以外のパケットは、再度、最上流の受信口３４−０に送られる。
【００４８】
なお、本実施の形態において、受信口間および受信口とカウンタチェック部の間の伝送路は、全ての受信口の総リンク容量Lの２倍（２L）であるのが望ましい。
【００４９】
図８は、本実施の形態にかかるカウンタチェック部２６をより詳細に示すブロックダイヤグラムである。カウンタチェック部２６においては、パケットに付与された値を新たなカウンタ値「ＮＣ」とし（符号８０１参照）、この「ＮＣ」と、カウンタチェック部２６が保持していたもとのカウンタ値「ＢＣ」に「１」を加えたもの「ＢＣ＋１」とを比較する（符号８０２参照）。両者が一致しない場合には、パケットに付与されたマーキング「Ｍ」と、定められた許容巡回数「Ｔ」とを比較する（符号８０３参照）。
【００５０】
「ＮＣ＝ＢＣ＋１」である場合（YES）、或いは、「Ｍ＞Ｔ」である場合には、そのパケットを出力し、次いで、新たなカウンタ値「ＮＣ」で、カウンタ値「ＢＣ」を更新する（符号８０４参照）。その一方、「ＮＣ≠ＢＣ＋１」でかつ「Ｍ≦Ｔ」であれば、そのパケットのマーキング「Ｍ」がインクリメントされる（符号８０５参照）。つまり、パケットのマーキング「Ｍ」は、パケットが環状型受信バッファ２４を循環する回数を示す。
【００５１】
たとえば、既にカウンタ値「ｋ」のパケットが出力されている場合に、カウンタ値「ＢＣ＝ｋ」となる。したがって、カウンタ値「ｋ＋１」付きのパケットが送られてきた場合、このパケットが出力されるとともに、カウンタ値「ＢＣ＝ｋ＋１」に更新される。その一方、カウンタ値「ｋ」のパケットが送られて来ないまま、他のパケット（カウンタ値「ｋ＋１」以上のパケット）の、環状型受信バッファ２４中の循環回数が、規定回数「Ｔ」を超えた場合、当該カウンタ値「ｋ」のパケットは何れかのノードで廃棄された可能性があると判断し、他のパケットを出力するとともに、出力するパケットのカウンタ値でＢＣを更新する。
【００５２】
このように、本実施の形態においては、順序逆転が起きないように、循環型受信バッファにおいて、基本的に、カウンタ値を参照して、カウンタ値にしたがってパケットを出力することができる。また、パケットの循環回数の上限を規定しておくことにより、受信バッファ中に過度に多数のパケットが循環することを防止することが可能となる。
【００５３】
なお、以下に、溢れ型送出バッファ２０を備えた高速ノード１２における、パケット送信先であるノード（従来のノード１６−０、１６−１、・・・）の決定について簡単に説明する。図９（ａ）は、送り先ＩＰアドレスと、高速ノード１２の出力ポートとの関係を示すテーブルの例を示す図である。このテーブルにおいて、送り先のＩＰアドレスと第１ポートのポート番号との組み合わせは従来のノードと同様である。本実施の形態においては、第２ポート、第３ポート、・・・として利用されるポート番号がテーブルに含まれる。したがって、下流側の溢れ型開口部からパケットを送信すべき場合には、第２ポート、第３ポート、・・・が、それぞれ、下流側の溢れ型開口部３０−１、３０−２、・・・に割り当てられる。
【００５４】
また、図９（ｂ）に示すように、溢れ型開口部が割り当てられた各ポートに与えられるＢ（ｔ）（Ｂ（ｔ）０、Ｂ（ｔ）１、・・・）をテーブル化して、ダイナミックに変化するＢ（ｔ）を参照して、各溢れ型開口部から送信すべきパケットの容量を決定しても良い。
【００５５】
本発明は、上記第１の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
たとえば、前記実施の形態において、測定時間「ｔ」における送信可能なバーストサイズを、
【００５６】
Ｂ（ｔ）＝（ＱMAX−ｋ）−
Ｃ×ｑ（ｔ）×（ｑ（ｔ）／ｑ（ｔ−Δｔ））ｎ
としたが、これに限定されるものではなく、以下のような他の手法を採用しても良い。
【００５７】
（１）従来のノードからの要求を受けて、高速ノードからトラフィックが送信される。この場合には、従来のノード（受信ノード）が、高速ノード（送信ノード）に送信要求を送信する前に、最大バーストサイズを指定する。送信ノードは、この最大バーストサイズにしたがって抑制したトラフィック送信を行なう。
（２）あるノードからの転送要求にしたがって、高速ノードが従来のノードにトラフィックを転送する。この場合、高速ノード（送信ノード）は、情報リクエストパケットを送信した後、徐々にスループットを上げながら、従来のノード（受信ノード）にトラフィックを送信する。受信ノードからの情報リプライパケットにより最大バーストサイズの指定を受けると、抑制した送信モードとなる。
【００５８】
また、送信可能なバーストサイズＢ（ｔ）も、上記（Ｉ）式に限定されるものではない。しかしながら、キューサイズの増加率（ｑ（ｔ）／ｑ（ｔ−Δｔ））を考慮するものであることが望ましい。
【００５９】
次に、本発明の第２の実施の形態について説明する。第２の実施の形態にかかる自律抑制型フロー制御方法を採用したシステムの概略構成は、図１に示すものと、以下の点を除きほぼ同様である。第２の実施の形態においては、送信側の高速ノード１２から低速ノード１６−１、１６−２、・・・の何れにパケットを送信するかを判断するために利用されるパケット受信許容度が、第１の実施の形態のものと異なる。
【００６０】
また、第２の実施の形態では、受信側の高速ノード１４のカウンタチェック部２６にバッファが設けられ、受信したパケットを一時的に保持できるようになっている。
【００６１】
まず、高速ノード１２における、低速ノード１６−１、１６−２、・・・の転送能力推定アルゴリズムについて説明する。本実施の形態では、低速ノードのキューバッファに収容されるパケットの増減を観察する簡易な手法を採用している。キューバッファ内のパケット数が増大するのは、低速ノード１６の転送能力を超えて、高速ノード１２からパケットが送信されているためである。その一方、パケット数が減少するのは、まだ低速ノードの転送能力に余裕があることを示す。したがって、高速ノード１２が、低速ノード１６からキューバッファ情報のリプライを受信し、当該低速ノード１６向けのパケット送信間隔ＳＩを増大させるか減少させるかを判断すれば良い。すなわち、第２の実施の形態においては、パケット受信許容度は、パケット送信間隔ＳＩに相当する。
【００６２】
より具体的に、低速ノードにおける転送能力の推定について、図１０を参照して説明する。まず、高速ノード１２は、初期的に、送信間隔ＳＩが設定されていない開口部に接続される低速ノード１６に対して、自己の転送能力にしたがって数個（２個以上）のパケット（たとえば符号１００１、１００２参照）を連続して送信する。低速ノード１６は、それぞれのパケットの受信に応じて、キューバッファ情報を含むリプライパケットを生成して、高速ノード１２に返送する。高速ノード１２は、送信した数個のパケットに対応する２つのリプライパケット（たとえば符号１０１１、１０１２参照）を受信すると、リプライパケットの受信間隔ＲＩを計測する。初期的には、高速ノード１２から低速ノード１６には、この数個の連続パケットのみを送信し、この数個の連続パケットを送信した後、リプライパケットを受信するまでは、当該低速ノード１６に対する開口部からのパケット送信を停止する。これにより、当該低速ノード１６において、リプライパケットは、低速ノード１６自身の転送能力に依存した間隔で高速ノード１２に返されると考えることができる。したがって、受信したリプライパケットの間隔ＲＩを、当該低速ノード１６に関するＳＩの初期値として利用することができる。
【００６３】
このような処理を、高速ノード１２からパケットを送信し得る全ての低速ノードに対して実行する。これにより、低速ノード１６−１、１６−２、・・・、１６−ｎのそれぞれの、初期的なパケット送信間隔ＳＩ１、ＳＩ２、・・・、ＳＩｎを得ることができる。
【００６４】
次に、パケット送信間隔ＳＩの更新について、図１１（ａ）を参照して説明する。高速ノード１２は、後述するタイミングで、ある低速ノード１６に向けてパケットを送信する（ステップ１１０１）。このパケットの受信時に、低速ノード１６は、リプライパケットを高速ノード１２に対して返送しても良いし、或いは、所定の場合に、返送しても良い。
【００６５】
高速ノード１２は、低速ノード１６から、キューバッファ内にバッファされているパケット数を示すキューバッファ情報を含むリプライパケットを受信すると（ステップ１１０２）、リプライパケットに含まれるキューバッファ情報中のバッファされているパケット数を参照して、予め記憶装置（図示せず）に記憶しておいた、先のリプライパケットに含まれるキューバッファ情報中のバッファされているパケット数と比較する（ステップ１１０３）。ここで、バッファされているパケット数が増大している場合には（ステップ１１０３でイエス(Yes)）、高速ノード１２は、パケット送信間隔ＳＩを増大させ（ステップ１１０４）、バッファされているパケット数が減少している場合には（ステップ１１０３でノー(No)）、パケット送信間隔ＳＩを減少させる（ステップ１１０５）。次いで、今回受信した、バッファされているパケット数が、記憶装置に記憶される（ステップ１１０６）。このパケット送信間隔の増減は、たとえば、ＳＩをインクリメント或いはデクリメントすることにより実現される。
【００６６】
或いは、図１１（ｂ）に示すように、前回のパケット送信およびリプライパケットの受信（符号１１１１、１１１２参照）で得たバッファされているパケット数ｑｉと、今回のパケット送信おおびリプライパケットの受信（符号１１２１、１１２２参照）で得たバッファされているパケット数ｑｉ＋１との差異(ｑｉ＋１−ｑｉ)を算出し、これを、ＳＩに加えることにより（ＳＩ＝ＳＩ＋(ｑｉ＋１−ｑｉ)）、パケット送信間隔ＳＩの増減を実現しても良い。
【００６７】
上記パケット送信間隔ＳＩの更新処理は、高速ノード１２からパケットを送信し得る全ての低速ノード１６−１、１６−１、・・・、１６−ｎに関して実行される。図１２（ａ）は、上記パケット送信間隔を利用してパケットを送信する、第２の実施の形態にかかる溢れ型送出バッファ２０をより詳細に示すダイヤグラムである。図１２（ａ）に示すように、溢れ型送出バッファは、溢れ型開口部３３０−０、３０−１、・・・、３０−ｎのそれぞれのパケット送信先に関するパケット送信間隔ＳＩ０〜ＳＩｎがリプライパケットの情報から計算され、設定される点を除き、図５に示すものと同様の構成である。再度簡単に説明すると、溢れ型開口部３０−ｉにおいては、判断ロジックにより、当該溢れ型開口部からパケットを送信すべきか否かを判断し、送信すべきでない場合には、パケットを下流側に隣接する溢れ型開口部３０−(i+1)に送る。
【００６８】
図１２（ｂ）は、ある溢れ型開口部３０−ｉにおけるパケット送信の判断ロジックを説明する図である。溢れ型開口部３０−ｉは、上流に位置する溢れ型開口部３０−(i-1)から与えられると、間隔計測部１２０１が、前回、溢れ型開口部３０−ｉからパケットを送信したタイミングと、今回のタイミングとの間隔Intを算出し、当該間隔Intと、パケット送信間隔ＳＩｉとを比較する（符号１２０参照）。
【００６９】
「Int≧ＳＩｉ」であれば(Yes)、パケットは、溢れ型開口部３０−ｉから、宛先となる低速ノード１６−ｉに送信される。その一方、「Int＞ＳＩｉ」であれば（No）、このパケットは、下流の溢れ型開口部３０−(i+1)に与えられる。
次に、リプライパケットについて説明する。高速ノード１２からのパケット送信および低速ノード１６からのリプライパケット送信は、たとえば、ＩＣＭＰ(Internet Control Message Protocol)を利用することにより実現できる。また、パケットは双方向に流れているため、高速ノード１２に向けて流れるパケットのＩＰヘッダにオプションをつけてキュー情報をリプライしても良い。この場合、低速ノード１６から高速ノード１２に流すデータパケットとのタイミングが合わなければ、ＩＰヘッダのオプションがあり、データ部分がないようなリプライパケットが送信されても良い。
【００７０】
また、高速ノード１２からの要求に応答して、低速ノード１６によりリプライパケットが送信されても良い。この場合には、高速ノード１２は、設定されたタイミングで要求、たとえば、ＩＣＭＰパケットを低速ノード１６に送信すればよい。低速ノード１６から高速ノード１２にリプライパケットを送信する場合には、低速ノード１６中のキューの変化に応じて、動的に送信タイミングを変更できるのが望ましい。たとえば、低速ノード１６が自身のキューにバッファされているパケットの変化の度合いに閾値を設け、これを越えた場合に、高速ノード１２に対してリプライパケットを返すように構成すれば良い。より具体的には、前回のリプライパケットの送信時から、キューに「±ａ：ａは設定された数」の変化があった場合に、ＩＰヘッダのオプションにキュー情報を付加して高速ノード１２に送信すればよい。
【００７１】
次に、第２の実施の形態にかかる環状型受信バッファについてより詳細に説明する。図１３は、第２の実施の形態にかかる環状型受信バッファ２４をより詳細に示すブロックダイヤグラムである。図１３に示すように、この環状型受信バッファ２４は、カウンタチェック部２６に、バッファ１３００が設けられている点およびカウンタチェック部２６にて実行される処理が異なる点を除き、図７に示すものと同様である。
【００７２】
図１４は、第２の実施の形態にかかるカウンタチェック部２６をより詳細に示すブロックダイヤグラムである。カウンタチェック部２６は、パケットに付与された値「ｉ」を新たなカウンタ値「ＮＣ」として（符号１４０１）、「ＮＣ」と、保持していたもとのカウンタ値「ＢＣ」に「１」を加えた値「ＢＣ＋１」とを比較する（符号１４０２）。両者が一致する場合には（Yes）、「ＢＣ」を「ＮＣ」に設定した上で、パケットを出力する（符号１４０３）。
【００７３】
その一方、「ＮＣ＝ＢＣ＋１」でない場合には、「ＮＣ」が、「ＢＣ」に予め定められた数「Ｎ」を加えた値以下であるかが判断される（符号１４０４参照）。「ＮＣ≦ＢＣ＋Ｎ」である場合（Yes）には、パケットをバッファする（符号１４０５）。その一方、「ＮＣ＞ＢＣ＋Ｎ」である場合（No）には、マーキング「Ｍ」をインクリメントする（符号１４０６）。次いで、マーキング「Ｍ」の値が、定められた許容巡回数「Ｔ」より上回っているかを判断する（符号１４０７）。「Ｍ≦Ｔ」である場合（No）には、パケットは受信口３４−０に送信される。その一方、「Ｍ＞Ｔ」である場合（Yes）には、そのパケットは廃棄される（符号１４０８）。次いで、廃棄されるパケットのカウンタ値「ＮＣ」が記録される（符号１４０９）。これは、パケットを収容するバッファとは異なる、つまり分けられている他のバッファにカウンタ値「ＮＣ」を記憶することにより実現される。
【００７４】
次に、「ＮＣ＝ＢＣ＋１（符号１２０２で(Yes)）」でパケットが出力された後について説明する。カウンタ値「ｉ（＝ＮＣ＝ＢＣ）」のパケットが出力されると、カウンタチェック部２６は、カウンタ値「ＢＣ＋１」を有するパケットがバッファ内に存在するか否かを判断する（符号１４１０）。バッファ内に存在すれば（Yes）、バッファからパケットを取得し、これを出力するとともに、「ＢＣ」をインクリメントする（符号１４０１）。このような処理が繰り返され、バッファ中に一時的に記憶された、カウンタ値「ｉ」から連続した番号を持つパケットが順次出力される。たとえば、バッファに、カウンタ値「ｉ＋１」、「ｉ＋２」、「ｉ＋３」および「ｉ＋５」のパケットが一時的に記憶されていれば、これらパケットのうち、カウンタ値「ｉ＋１」、「ｉ＋２」および「ｉ＋３」を有するパケットが順次出力される。
【００７５】
カウンタ値「ＢＣ＋１」を有するパケットがバッファに存在しない場合（１４１０でノー(No)）、カウンタ値「ＢＣ＋１」が、廃棄されたパケットのカウンタ値「ＮＣ」として記録されているか否かが判断される（符号１４１２参照）。ここで、カウンタ値「ＢＣ」が記録されていなければ（No）、何も行なわれない。その一方、カウンタ値「ＢＣ」が記録されていれば（Yes）、「ＢＣ」をインクリメントして（符号１４１３）、さらに、カウンタ値「ＢＣ＋１」を有するパケットがバッファに存在しているかどうかを判断する（符号１４１０参照）。
【００７６】
このように、第２の実施の形態においては、バッファ中に出力可能なパケットがあるか否かを判断した後、出力可能なパケットが存在しない状態となると、その次のカウンタ値のパケットが廃棄されていないか否かが確認される。もし、次のパケットが廃棄されていれば、既に処理済みであるものとして、処理対象となるパケットのカウンタ値を進め、再度、バッファ内に出力可能なパケットがあるか否かが確認される。これをバッファ内のパケットのカウンタ値と、廃棄され、カウンタ値が記録されたパケットのカウンタ値の双方について、処理対象となるカウンタ値と連続性がなくなるまで繰り返される。
【００７７】
図１４に示す例においては、マーキング「Ｍ」の値が、定められた許容巡回数「Ｔ」より上回っている場合には、パケットを破棄しているが、このような構成に限定されるものではなく、以下のような構成を採用しても良い。図１５は、第２の実施の形態にかかるカウンタチェック部の他の例を詳細に示すブロックダイヤグラムである。図１５において、図１４と同一の構成部分には同一の符号を付している。図１５に示すように、この例では、マーキング「Ｍ」の値が、定められた許容巡回数「Ｔ」より上回っている場合に、そのパケットを廃棄せずに出力するとともに、出力されるパケットのカウンタ値「ＮＣ」が記憶される。この点が、図１４に示す例とは相違する。
【図面の簡単な説明】
【００７８】
【図１】図１は、本発明の第１実施の形態にかかる自律抑制型フロー制御方法を採用したシステムの例を示す図である。
【図２】図２は、第１の実施の形態にかかる本実施の形態にかかる自律抑制フロー制御の概略を示す図である。
【図３】図３は、第１の実施の形態において、従来のノードにて実行される処理の概略を示すブロックダイヤグラムである。
【図４】図４は、ノード間の伝送時間を概略的に表した図である。
【図５】図５は、第１の実施の形態にかかる溢れ型送出バッファ２０をより詳細に示すダイヤグラムである。
【図６】図６は、第１の実施の形態にかかる溢れ型開口部の構成をより詳細に示すブロックダイヤグラムである。
【図７】図７は、第１の実施の形態にかかる環状型受信バッファをより詳細に示すブロックダイヤグラムである。
【図８】図８は、第１の実施の形態にかかるカウンタチェック部をより詳細に示すブロックダイヤグラムである。
【図９】図９（ａ）は、送り先ＩＰアドレスと、高速ノード１２の出力ポートとの関係を示すテーブルの例を示す図、図９（ｂ）は、ポートと送信可能なバーストサイズとのテーブルの例を示す図である。
【図１０】図１０は、低速ノードにおける転送能力の推定を説明するための図である。
【図１１】図１１（ａ）は、第２の実施の形態にかかるパケット送信間隔ＳＩの更新を示すフローチャート。図１１（ｂ）は、パケット送信間隔の更新の他の例を説明するための図である。
【図１２】図１２（ａ）は、第２の実施の形態にかかる溢れ型送出バッファをより詳細に示すダイヤグラムであり、図１２（ｂ）は、ある溢れ型開口部におけるパケット送信の判断ロジックを説明する図である。
【図１３】図１３は、第２の実施の形態にかかる環状型受信バッファ２４をより詳細に示すブロックダイヤグラムである。
【図１４】図１４は、第２の実施の形態にかかるカウンタチェック部をより詳細に示すブロックダイヤグラムである。
【図１５】図１５は、第２の実施の形態にかかるカウンタチェック部の他の例を詳細に示すブロックダイヤグラムである。
【符号の説明】
【００７９】
１２      高速ノード
１４      高速ノード
１６      従来のノード（低速ノード）
２０      溢れ型送出バッファ
２２      エンカウンタ部
２４      環状型受信バッファ
２６      カウンタチェック部
３０      溢れ型開口部
３２      バッファ入力部
３４      受信口
【図１】
2004282688.tif 000003
【図２】
2004282688.tif 000004
【図３】
2004282688.tif 000005
【図４】
2004282688.tif 000006
【図５】
2004282688.tif 000007
【図６】
2004282688.tif 000008
【図７】
2004282688.tif 000009
【図８】
2004282688.tif 000010
【図９】
2004282688.tif 000011
【図１０】
2004282688.tif 000012
【図１１】
2004282688.tif 000013
【図１２】
2004282688.tif 000014
【図１３】
2004282688.tif 000015
【図１４】
2004282688.tif 000016
【図１５】
2004282688.tif 000017