(57)【特許請求の範囲】
【請求項１】
複数のグループをグループ識別子により多重可能な入力ポート及び出力ポートを有するハブが階層構造で接続されたネットワークにおけるフロー制御装置において、
前記ハブが前記ポートの出力ポート側において端末グループ毎に輻輳を判断する輻輳判断手段と、
前記輻輳判断手段により輻輳と判断したグループに関するパケットのみ送信を停止することを通知する、ポーズタイム値を含む輻輳通知パケットを出力する輻輳通知パケット出力手段とを有し、
前記輻輳判断手段は、出力ポート側における輻輳の度合いを２以上の段階に区分し、単独のポートに対して輻輳通知パケットを送信する第１段階と、単独のポート若しくは複数のポートに対して輻輳通知パケットを送信する第２段階を有するとともに、出力ポートにおいて端末グループ毎にデータ出力バッファを更に有し、前記データ出力バッファ毎の使用率が輻輳の第１段階を超える場合、さらに使用率が前記輻輳の第１段階より大きい輻輳の第２段階を超える場合を判断することを特徴とするフロー制御装置。
【請求項２】
前記第１段階の輻輳通知パケットは、宛先アドレスにより個別端末を特定可能な個別輻輳通知パケットであることを特徴とする請求項１に記載のフロー制御装置。
【請求項３】
前記第２段階の輻輳通知パケットは、グループ識別子によりグループを特定可能なグループ別輻輳通知パケットであることを特徴とする請求項１に記載のフロー制御装置。
【請求項４】
前記グループ別輻輳通知パケットの宛先アドレスは、ブロードキャストアドレスを使用することを特徴とする請求項３に記載のフロー制御装置。
【請求項５】
複数のグループをグループ識別子により多重可能な入力ポート及び出力ポートを有するハブが階層構造で接続されたネットワークにおけるフロー制御装置において、
前記ハブが前記ポートの出力ポート側において端末グループ毎に輻輳を判断する輻輳判断手段と、
前記輻輳判断手段により輻輳と判断したグループに関するパケットのみ送信を停止することを通知する、ポーズタイム値を含む輻輳通知パケットを出力する輻輳通知パケット出力手段とを有し、
前記輻輳判断手段は、各出力ポート別に全グループ共用のデータ出力バッファを有し、前記各出力ポート別の前記全グループ共用のデータ出力バッファ毎に、グループ別のデータ転送流量としてフロー制御装置内部で単位時間当たりに転送されたパケット量を算出する転送流量算出処理部を有し、その全グループのデータ転送流量が出力ポートの帯域を超え、かつ、該当グループのデータ転送流量が当該出力ポートを同時に使用するグループ数で割った帯域を超えた場合に輻輳と判断することを特徴とするフロー制御装置。
【請求項６】
前記流量の算出においてグループ別転送流量に、各グループ毎の輻輳通知パケットを含めることを特徴とする請求項５に記載のフロー制御装置。
【請求項７】
前記輻輳通知パケットの転送によりグループ別転送流量の判断で輻輳と判断されても、輻輳通知パケットは生成しないことを特徴とする請求項５に記載のフロー制御装置。
【請求項８】
前記輻輳判断手段は、輻輳の度合いを２以上の段階に区分し、前記グループ別の転送流量に基づいて判断される輻輳の第１段階に加え、前記全グループ共用のデータ出力バッファの使用率が所定の輻輳の閾値を超えた場合を輻輳の第２段階と判断し、前記輻輳の第２段階における輻輳通知パケットを送信する場合、該当ポートに送信可能性のある全グループに対してグループ別輻輳通知パケットを生成して送信することを特徴とする請求項５に記載のフロー制御装置。
【請求項９】
前記輻輳通知パケットを受信したハブが、受信ポートにおいてグループ別送信停止処理を行い、グループ別輻輳通知パケットを受信した場合に、必ずそのパケット内のポーズタイム値を送信停止タイマーにセットして再スタートさせることを特徴とする請求項１又は５に記載のフロー制御装置。
【請求項１０】
グループ別輻輳通知パケットによる送信停止中に個別輻輳通知パケットを受信しても無視することを特徴とする請求項９に記載のフロー制御装置。
【請求項１１】
前記輻輳通知パケットを受信したハブが、輻輳通知パケットの転送先を判断する転送先判断手段を有し、輻輳通知パケットを転送することを特徴とする請求項１又は５に記載のフロー制御装置。
【請求項１２】
前記転送先判断手段は、転送先がグループを多重したポートの場合、輻輳通知パケットを転送し、転送先がグループを多重しないポートの場合、ポーズパケットを生成して送信することを特徴とする請求項１１に記載のフロー制御装置。
【請求項１３】
輻輳通知パケットを受信したポートと輻輳通知パケットを転送する宛先ポートの伝送速度が異なる場合、ポーズタイム値を変換して送信することを特徴とする請求項１又は５に記載のフロー制御装置。
【請求項１４】
個別端末に対する輻輳通知パケットを送信する場合にはデータパケット受信時の輻輳状態を契機に行うことで再送をしないことを特徴とする請求項１又は５に記載のフロー制御装置。
【請求項１５】
グループに対する輻輳通知パケットを送信する場合には、タイマー監視により輻輳状態の低減が無い場合再送を行うことを特徴とする請求項１又は５に記載のフロー制御装置。
【請求項１６】
グループに対する輻輳通知パケット送信後のタイマー監視中に受信したパケットに関しては、輻輳通知パケットの送信を行わないことを特徴とする請求項１又は５に記載のフロー制御装置。
【請求項１７】
複数のグループをグループ識別子により物理リンクに多重するハブを有するネットワークシステムにおいて、
前記ハブの出力ポートにおいて端末グループ毎の輻輳を判断する輻輳判断ステップと、
前記輻輳判断ステップにより輻輳と判断された端末グループに関するパケットのみ送信を所定の停止することをポーズタイム値と共に通知する輻輳通知を行う輻輳通知ステップとを有し、
前記輻輳判断ステップは、出力ポートの輻輳の度合いを２以上の段階に区分して判断するステップを有し、出力ポートのグループ毎データ出力バッファの使用率が輻輳の第１段階を超える場合、さらに使用率が前記輻輳の第１段階より大きい輻輳の第２段階を超える場合を判断することを特徴とするフロー制御方法。
【請求項１８】
前記輻輳通知ステップは、輻輳の原因となるパケットを送信してきた単独のポートからの輻輳通知と、輻輳しているグループが属する全ポートからの輻輳通知の２種類を行うことを特徴とする請求項１７に記載のフロー制御方法。
【請求項１９】
前記２以上の段階の第１の段階の輻輳通知は、グループを特定し、さらにパケットを送信した送信元端末を特定した個別輻輳通知であることを特徴とする請求項１７又は１８に記載のフロー制御方法。
【請求項２０】
前記２以上の段階の第２の段階の輻輳通知は、グループのみを特定したグループ別輻輳通知であることを特徴とする請求項１７又は１８に記載のフロー制御方法。
【請求項２１】
複数のグループをグループ識別子により物理リンクに多重するハブを有するネットワークシステムにおいて、
前記ハブの出力ポートにおいて端末グループ毎の輻輳を判断する輻輳判断ステップと、
前記輻輳判断ステップにより輻輳と判断された端末グループに関するパケットのみ送信を所定の停止することをポーズタイム値と共に通知する輻輳通知を行う輻輳通知ステップとを有し、
前記輻輳判断ステップは、各出力ポートに対し、グループ別のデータ転送流量を算出する転送流量算出ステップを有し、そのデータ転送流量が出力ポートの帯域をその出力ポートを同時に使用するグループ数で割った帯域を超えた場合に輻輳と判断することを特徴とするフロー制御方法。
【請求項２２】
前記転送流量算出ステップにおけるグループ別のデータ転送流量は、各グループの輻輳通知パケットの転送流量を含むことを特徴とする請求項２１に記載のフロー制御方法。
【請求項２３】
前記輻輳判断ステップにおいて輻輳通知パケットの転送によりグループ別のデータ転送流量の判断で輻輳と判断されても、輻輳通知ステップでは輻輳通知を行わないことを特徴とする請求項２２に記載のフロー制御方法。
【請求項２４】
前記輻輳判断ステップは、前記転送流量算出ステップにおいて算出したデータ転送流量に基づいて輻輳の第１段階を判断し、出力ポートにおける複数の端末グループに対して共通のデータ出力バッファの使用量に基づいて輻輳の第２段階を判断することを特徴とする請求項２１に記載のフロー制御方法。
【請求項２５】
前記輻輳の第２段階による輻輳通知ステップは、該当ポートに送信可能性のある全グループが属するポートからグループ別輻輳通知を送信することを特徴とする請求項２４に記載のフロー制御方法。
【請求項２６】
前記ハブが輻輳通知を受信した場合に、そのポートから該当グループのパケットの送信を停止する送信停止ステップを有し、
前記送信停止ステップは、グループ別輻輳通知を受信した場合に、必ずそのパケット内のポーズタイム値から送信停止時間の計時を再スタートすることを特徴とする請求項１７又は２１に記載のフロー制御方法。
【請求項２７】
前記送信停止ステップは、グループ別輻輳通知による送信停止中に個別輻輳通知を受信しても無視することを特徴とする請求項２６に記載のフロー制御方法。
【請求項２８】
前記ハブが輻輳通知を受信した場合に、輻輳通知の転送先を判断してその転送先に転送するステップを有することを特徴とする請求項１７又は２１に記載のフロー制御方法。
【請求項２９】
前記輻輳通知をインバンドの輻輳通知パケットにより行うことを特徴とする請求項１８に記載のフロー制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の端末グループをグループ識別子により多重可能な入力ポート及び出力ポートを有するスイッチングハブが階層構造で接続されたネットワークにおけるフロー制御装置及び方法に関する。
【０００２】
【従来の技術】
図３３(１)は従来例として、スイッチングハブにおけるフロー制御を説明する図であり、スイッチングハブＳＷ１とスイッチングハブＳＷ１の個々のポートＰ１〜Ｐ４にそれぞれ接続されたイーサネット（登録商標）端末Ａ〜ＤはIEEE802.3xの全二重フロー制御に対応している。今、スイッチングハブＳＷ１が端末Ｂから端末Ａ宛てのパケットを転送し、さらに端末Ｃが同じく端末Ａ宛てのパケットを送信したとして、スイッチングハブＳＷ１の端末Ｂからのパケットと端末Ｃからのパケットの受信量が端末Ａへの送信量を上回ると、そのパケットはスイッチングハブＳＷ１内部のそれぞれの入力バッファに蓄積される。
【０００３】
このようにして長時間パケットが入力バッファに蓄積されていくと、入力バッファはオーバーフローし、あふれたパケットは破棄されてしまう。このため、スイッチングハブＳＷ１は入力バッファがオーバーフローしそうになると、該当の入力ポートＰ３に対し、送信停止時間を規定したポーズパケットを送信し、これを受信した端末Ｃは、規定された送信停止時間の間、パケットの送信を停止する。その結果、スイッチングハブＳＷ１は入力バッファのオーバーフローを回避できる。
【０００４】
しかし、このポーズパケットによる送信停止は、スイッチングハブＳＷ１のポートＰ１〜Ｐ４を単位として制御されるため、図３３(２)に示すような、複数の端末グループを多重したスイッチングハブＳＷ２〜ＳＷ５が階層構造で接続されたネットワークにおいては、同一スイッチングハブに接続された異なるグループに属する他の端末に対しても影響を与える。
【０００５】
ここで、スイッチングハブＳＷ２は複数のグループを多重したスイッチングハブＳＷ３〜ＳＷ５を束ねるバックボーンのスイッチングハブであり、スイッチングハブＳＷ３〜ＳＷ５はイーサネット（登録商標）対応の端末機器Ａ〜Ｉを収容するフロントエンドのスイッチングハブである。また、各端末Ａ〜ＩはフロントエンドのスイッチングハブＳＷ３〜ＳＷ５のポートで端末グループとして認識されており、複数の端末グループをグループ識別子により多重したバックボーンのスイッチングハブＳＷ２へ接続される。スイッチングハブＳＷ２のポートＰ２３からポーズパケットがスイッチングハブＳＷ５に出力された場合、スイッチングハブＳＷ５からスイッチングハブＳＷ２に送信するパケットは全て送信停止になるため、スイッチングハブＳＷ５に接続された端末Ｉから、スイッチングハブＳＷ４に接続された端末Ｆへの送信も停止してしまうことになる。
【０００６】
そこで、このような課題に対し、特開平９−１４９０６５号公報で示された特定の端末に対するバックプレッシャーを送信するフロー制御の考えを応用すると、入力バッファが閾値を超えた場合に、入力バッファに入力された最新のパケットの送信元アドレスを元に、このパケットを送信した該当端末のみに、送信を停止させるためのポーズパケットを送信することが可能である。
【０００７】
【発明が解決しようとする課題】
しかし、この入力バッファに入力された端末を特定した個別フロー制御方法を用いた場合、パケットロスの可能性や、輻輳の原因とならないグループの端末に対してもフロー制御を行う可能性があるという問題がある。
【０００８】
図３４を用いて具体的に説明する。図３４(１)は図３３(２)の構成に特開平９−１４９０６５号公報で示された方式を適用した形態を示している。今、同じグループ＃１であって、スイッチングハブＳＷ４のポートＰ４１に接続された端末ＤとスイッチングハブＳＷ５のポートＰ５１に接続された端末ＧがそれぞれスイッチングハブＳＷ２のポートＰ２２、Ｐ２３を経由して、スイッチングハブＳＷ３に接続された端末Ａにパケットを送信した結果、スイッチングハブＳＷ２のポートＰ２３の入力バッファが閾値を上回り、オーバーフロー通知用パケットが入力時のパケットの送信元である端末Ｇ宛てに送信されたとする。
【０００９】
スイッチングハブＳＷ５はこのパケットを受信すると、該当端末Ｇが接続されるポートＰ５１に対してポーズパケットを送信する。このような方式により輻輳の原因となった端末Ｇのみがパケットの送信を停止することになる。この結果、スイッチングハブＳＷ５はそのポートＰ５３に接続された端末Ｉより、スイッチングハブＳＷ４のポートＰ４３に接続された端末Ｆ宛てのパケットをスイッチングハブＳＷ２宛てに送信可能となる。
【００１０】
しかし、スイッチングハブＳＷ２のポートＰ２３の入力バッファがまだ閾値を上回っている場合、この端末Ｆ宛てのパケットを送信してきたグループ＃４の端末Ｉ宛て、すなわち直接輻輳と関係のない端末Ｉ宛てにオーバーフロー通知用パケットを送信することになる。このように複数のグループを多重したポートの入力バッファで判断を行う場合、直接輻輳と関係のないＬＡＮに属する端末宛てにフロー制御を行う可能性があるという問題点がある。
【００１１】
また図３４(２)は、スイッチングハブＳＷ５の各ポートに同一のグループ＃１に属する端末が多数（図ではＧ〜Ｍ）接続された構成を示している。この場合にも、スイッチングハブＳＷ５が複数の端末Ｇ〜ＭからのパケットをスイッチングハブＳＷ２への送信時、スイッチングハブＳＷ２のポートＰ２３の入力バッファが閾値を上回ると、スイッチングハブＳＷ２は順時、オーバーフロー通知用パケットを各端末Ｇ〜Ｍ宛てに送信することになる。これにより全端末Ｇ〜Ｍが送信を停止するまでにスイッチングハブＳＷ２が受信したパケットにより、スイッチングハブＳＷ２のポートＰ２３の入力バッファはフロー制御を行っているにも関わらず、オーバーフローする可能性があるという問題点がある。
【００１２】
本発明は上記の問題点を解決するもので、輻輳時に他のグループに与える影響を極力少なくし、通信を制限したい機器にのみ送信を制限することができるフロー制御装置及び方法を提供することを目的とする。
本発明はまた、輻輳の状態によって出力する輻輳通知パケットの種類を個別端末宛てとグループ宛てに変更することができるフロー制御装置及び方法を提供することを目的とする。
【００１３】
【課題を解決するための手段】
本発明は上記目的を達成するために、複数のグループをグループ識別子により多重可能な入力ポート及び出力ポートを有するハブが階層構造で接続されたネットワークにおけるフロー制御装置において、
前記ハブが前記ポートの出力ポート側において端末グループ毎に輻輳を判断する輻輳判断手段と、
前記輻輳判断手段により輻輳と判断したグループに関するパケットのみ送信を停止することを通知する、ポーズタイム値を含む輻輳通知パケットを出力する輻輳通知パケット出力手段とを有し、
前記輻輳判断手段は、出力ポート側における輻輳の度合いを２以上の段階に区分し、単独のポートに対して輻輳通知パケットを送信する第１段階と、単独のポート若しくは複数のポートに対して輻輳通知パケットを送信する第２段階を有するとともに、出力ポートにおいて端末グループ毎にデータ出力バッファを更に有し、前記データ出力バッファ毎の使用率が輻輳の第１段階を超える場合、さらに使用率が前記輻輳の第１段階より大きい輻輳の第２段階を超える場合を判断することを特徴とする構成とした。
【００１４】
本発明はまた、前記第１段階の輻輳通知パケットは、宛先アドレスにより個別端末を特定可能な個別輻輳通知パケットであることを特徴とする。
【００１５】
本発明はまた、前記第２段階の輻輳通知パケットは、グループ識別子によりグループを特定可能なグループ別輻輳通知パケットであることを特徴とする。
【００１６】
本発明はまた、前記グループ別輻輳通知パケットの宛先アドレスは、ブロードキャストアドレスを使用することを特徴とする。
【００１７】
また本発明は上記目的を達成するために、複数のグループをグループ識別子により多重可能な入力ポート及び出力ポートを有するハブが階層構造で接続されたネットワークにおけるフロー制御装置において、
前記ハブが前記ポートの出力ポート側において端末グループ毎に輻輳を判断する輻輳判断手段と、
前記輻輳判断手段により輻輳と判断したグループに関するパケットのみ送信を停止することを通知するポーズタイム値を含む輻輳通知パケットを出力する輻輳通知パケット出力手段とを有し、
前記輻輳判断手段は、各出力ポート別に全グループ共用のデータ出力バッファを有し、前記各出力ポート別の前記全グループ共用のデータ出力バッファ毎に、グループ別のデータ転送流量としてフロー制御装置内部で単位時間当たりに転送されたパケット量を算出する転送流量算出処理部を有し、その全グループのデータ転送流量が出力ポートの帯域を超え、かつ、該当グループのデータ転送流量が当該出力ポートを同時に使用するグループ数で割った帯域を超えた場合に輻輳と判断することを特徴とする。
【００１８】
本発明はまた、前記流量の算出においてグループ別転送流量に、各グループ毎の輻輳通知パケットを含めることを特徴とする。
【００１９】
本発明はまた、前記輻輳通知パケットの転送によりグループ別転送流量の判断で輻輳と判断されても、輻輳通知パケットは生成しないことを特徴とする。
【００２０】
本発明はまた、前記輻輳判断手段は、輻輳の度合いを２以上の段階に区分し、前記グループ別の転送流量に基づいて判断される輻輳の第１段階に加え、前記全グループ共用のデータ出力バッファの使用率が所定の輻輳の閾値を超えた場合を輻輳の第２段階と判断し、前記輻輳の第２段階における輻輳通知パケットを送信する場合、該当ポートに送信可能性のある全グループに対してグループ別輻輳通知パケットを生成して送信することを特徴とする。
【００２１】
本発明はまた、前記輻輳通知パケットを受信したハブが、受信ポートにおいてグループ別送信停止処理を行い、グループ別輻輳通知パケットを受信した場合に、必ずそのパケット内のポーズタイム値を送信停止タイマーにセットして再スタートさせることを特徴とする。
【００２２】
本発明はまた、グループ別輻輳通知パケットによる送信停止中に個別輻輳通知パケットを受信しても無視することを特徴とする。
【００２３】
本発明はまた、前記輻輳通知パケットを受信したハブが、輻輳通知パケットの転送先を判断する転送先判断手段を有し、輻輳通知パケットを転送することを特徴とする。
【００２４】
本発明はまた、前記転送先判断手段は、転送先がグループを多重したポートの場合、輻輳通知パケットを転送し、転送先がグループを多重しないポートの場合、ポーズパケットを生成して送信することを特徴とする。
【００２５】
本発明はまた、輻輳通知パケットを受信したポートと輻輳通知パケットを転送する宛先ポートの伝送速度が異なる場合、ポーズタイム値を変換して送信することを特徴とする。
【００２６】
本発明はまた、個別端末に対する輻輳通知パケットを送信する場合にはデータパケット受信時の輻輳状態を契機に行うことで再送をしないことを特徴とする。
【００２７】
本発明はまた、グループに対する輻輳通知パケットを送信する場合には、タイマー監視により輻輳状態の低減が無い場合再送を行うことを特徴とする。
【００２８】
本発明はまた、グループに対する輻輳通知パケット送信後のタイマー監視中に受信したパケットに関しては、輻輳通知パケットの送信を行わないことを特徴とする。
【００３６】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。
＜目次＞
第１の実施の形態：図１−図１４
第２の実施の形態：図１５−図２５
第３の実施の形態：図２６−図３２
【００３７】
＜第１の実施の形態＞
図１は本発明に係るフロー制御装置の第１の実施の形態の概要を示したブロック図である。
【００３８】
ここで、第１の実施の形態を要約すると、
・スイッチングハブの出力ポートにおいて、グループ別の輻輳判断を行い、輻輳と判断されたグループにのみ、輻輳通知パケットを出力する。
・輻輳判断は、出力ポートに設けたグループ別のバッファ使用量によって行う。
・また、輻輳の状態を２段階に判断し、単独のポート、複数のポートに対しフロー制御を行う。
【００３９】
図１(１)は複数のグループ＃１、＃２・・・をグループ識別子により多重可能なポートを有するスイッチングハブＳＷ２〜ＳＷ５が階層構造で構成されたネットワークを示している。スイッチングハブＳＷ２は複数のグループ＃１・・・を多重したスイッチングハブＳＷ３〜ＳＷ５を束ねるバックボーンのスイッチングハブであり、スイッチングハブＳＷ３〜ＳＷ５はイーサネット（登録商標）対応の端末機器Ａ〜Ｉを収容するフロントエンドのスイッチングハブである。
【００４０】
この例では、スイッチングハブＳＷ２のポートＰ２１、Ｐ２２、Ｐ２３にそれぞれスイッチングハブＳＷ３、ＳＷ４、ＳＷ５が接続されている。また、スイッチングハブＳＷ３のポートＰ３１、Ｐ３２、Ｐ３３にそれぞれ端末Ａ、Ｂ、Ｃが、スイッチングハブＳＷ４のポートＰ４１、Ｐ４２、Ｐ４３にそれぞれ端末Ｄ、Ｅ、Ｆが、スイッチングハブＳＷ５のポートＰ５１、Ｐ５２、Ｐ５３にそれぞれ端末Ｇ、Ｈ、Ｉが接続されている。
【００４１】
各端末Ａ〜ＩはフロントエンドのスイッチングハブＳＷ３〜ＳＷ５のポート単位でグループとして認識されており、複数のグループをグループ識別子により多重してバックボーンのスイッチングハブＳＷ２へ接続される。ここで、スイッチングハブＳＷ４に接続された端末Ｄと、スイッチングハブＳＷ５に接続された端末Ｇ、Ｈは同じグループ＃１に属し、スイッチングハブＳＷ４、ＳＷ５にそれぞれ接続された端末Ｅ、Ｉは他のグループ＃２、＃４に属するものとする。
【００４２】
ここで、この第１の実施の形態では、バックボーンのスイッチングハブＳＷ２の出力ポートには、端末グループ毎に出力バッファが設けられている。今、同じグループ＃１の、スイッチングハブＳＷ４に接続された端末ＤとスイッチングハブＳＷ５に接続された端末ＧがバックボーンのスイッチングハブＳＷ２を介して、スイッチングハブＳＷ３に接続された端末Ａにパケットを送信した結果、バックボーンのスイッチングハブＳＷ２の端末Ｄ、Ｇからのデータ受信速度がポートＰ２１の出力速度を上回ったとする。このとき、本発明のスイッチングハブＳＷ２では、出力先ポートとなるポートＰ２１側においてパケットのバッファ管理をグループ別に行う。
【００４３】
また、グループ＃１の出力バッファが輻輳段階１の閾値を上回ったとき、グループ＃１の出力バッファにパケットを送信してきた端末が端末Ｇだったとすると、オーバーフロー通知用パケットが入力時のパケットの送信元である端末Ｇ宛てに送信される。このパケットがスイッチングハブＳＷ５で受信されると、該当端末Ｇが接続されるポートＰ３１に対し、ポーズパケットを送信する。このような方式により、輻輳の原因となった端末Ｇのみがパケットの送信を停止することになる。
【００４４】
このとき、ハブＳＷ２の出力ポートにおいて、輻輳と無関係なグループ＃２のバッファは空いているため、グループ＃２に属する端末Ｅから端末Ｂ宛てのポートＰ３１を経由するパケットは、グループ＃１の輻輳によらず、転送が可能となる。
【００４５】
次にグループ＃１の各端末に輻輳通知パケットを送信する場合、接続される端末が多く、ポートＰ３１におけるグループ＃１の出力バッファが輻輳段階２の閾値を上回る場合を図１（２）を用いて説明する。この場合、スイッチングハブＳＷ２はグループ＃１の接続されている全てのポートＰ２２、Ｐ２３に対して、グループ別輻輳通知パケットを出力する。グループ別輻輳通知パケットを受信したスイッチングハブＳＷ４、ＳＷ５は、グループ＃１の端末Ｄ、Ｇ、Ｈが接続された全ポートＰ４１、Ｐ５１、Ｐ５２に対してポーズパケットを送信する。
【００４６】
このような方法により、多数の端末による輻輳時においても、１度の制御で同一グループの全端末からの送信を停止することが可能となり、バックボーンのスイッチングハブＳＷ２においてパケットロスを防止することが可能となる。このとき、図１（１）と同様に、スイッチングハブＳＷ４に接続された他のグループ＃２の端末Ｅから、スイッチングハブＳＷ３に接続された端末Ｂへのパケットの転送は可能である。
【００４７】
上記のパケットの転送に関してのスイッチングハブＳＷの構成及び動作を以下に説明する。図２は本発明のフロー制御を実現するスイッチングハブＳＷの構成を示した図である。スイッチングハブＳＷは端末のアドレス（アドレステーブル１ａ）およびグループ（グループテーブル１ｂ）を管理する端末管理部１と転送制御部２を有し、転送制御部２はパケットの転送先を制御するパケット転送制御部２ａと、輻輳状態を管理するための輻輳状態テーブル２ｂと、輻輳状態通知パケットの送信を制御する輻輳通知パケット送信制御部２ｃにより構成される。
【００４８】
スイッチングハブＳＷはまた、ポート＃０〜＃ｎ毎のポート制御部３（ポート＃０制御部３０〜ポート＃ｎ制御部３ｎ）を有し、ポート制御部３はパケット受信制御部３ａと、図３に詳しく示すパケット送信制御部３ｂにより構成されている。転送制御部２とポート制御部３は制御バスとデータバスを介して接続されている。ポート＃０〜＃ｎ別のパケット受信制御部３ａでは、パケット受信時にアドレス解析処理を行い、輻輳通知パケットを識別している。
【００４９】
パケット送信制御部３ｂは図３に詳しく示すように、出力バッファ１１として各端末グループ＃１〜＃ｍ別のデータ用バッファ１１１〜１１ｍ及び輻輳通知パケットを一時格納して出力するための転送通知用バッファ１１０を有する。パケット送信制御部３ｂはまた、この出力バッファ１１の使用状態を監視する出力バッファ監視部１２と、転送制御部２より指示のあった場合に輻輳通知パケットを生成する輻輳通知パケット生成部１３と、輻輳パケット及び各グループのデータパケットの出力順を制御する送信処理部１４より構成される。
【００５０】
図４は輻輳状態テーブル２ｂの構成例を示す。輻輳状態テーブル２ｂでは、各グループ＃１〜＃ｍ及びポート＃１〜＃ｎ毎に輻輳の状況（Flow Status）と輻 輳通知パケットの再送タイマーの動作状況（Timer Status）が管理される。Flow Statusは２ビットで構成され、未接続のポート＝００ｂ、輻輳していないポー ト＝０１ｂ、個別輻輳通知パケットを送信する状態である輻輳状態１のポート＝１０ｂ、グループ別輻輳通知パケットの送信をする状態である輻輳状態２のポート＝１１ｂを識別している。また、Timer Statusは２ビットで構成され、各グループのポート別に保持する再送タイマーが動作中＝１ｂか停止中＝０ｂかをしめすStatusである。
【００５１】
図５は個別輻輳通知パケットのＭＡＣフレームフォーマットを示す。このフレームは通常のEthernet（登録商標）ＩＩおよび、IEEE802.3のフレームフォーマットに準拠し ている。またグループ識別子はIEEE802.1Qで示されるフォーマットに準拠している。宛先アドレスにはフロー制御の対象となる端末のＭＡＣアドレスが設定される。送信元アドレスには、通常送信元端末のＭＡＣアドレスが設定されるが、輻輳通知パケットであることを示すユニークなアドレスを使用する。
【００５２】
図６はグループ別輻輳通知パケットのＭＡＣフレームフォーマットを示す。グループ別輻輳通知パケットでは、宛先アドレスにブロードキャストアドレスを使用し、他のデータは図５に示す個別輻輳通知パケットと同じである。図７はグループ別輻輳通知パケットのポーズタイム値の導出式（１）を示し、ポートの出力速度により導出されたポーズタイム値に対して、最大３０％程度のランダムな値を付加している。図８は基準ポーズタイム値から自ポートポーズタイム値を導出する式（２）を示す。
【００５３】
図９はパケット受信制御部３ａのパケット受信処理を示している。まず、あるポートでパケットを受信したとすると、パケット受信制御部３ａはそのパケットの解析を行い（ステップＳ１）、通常のポーズパケットであることを確認すると、転送制御部２に宛先アドレス、送信元アドレス、グループ識別子をヘッダ情報として送信する（ステップＳ２→Ｓ３）。転送制御部２はこれらの情報を元に、端末管理部１のテーブルを参照して、パケットを転送すべきポートを決定し、これをパケット受信制御部３ａに通知する。これを受けたパケット受信制御部３ａは、該当ポートのグループの出力バッファ１１へパケットを転送する（ステップＳ３、Ｓ４、Ｓ５→Ｓ６）。パケット転送は上記一連の動作によって行われる。
【００５４】
このときの転送制御部２の動作を図１０に示す。まず、ユニキャストパケットの転送処理の説明を行う。パケット転送処理部２ａはパケット受信制御部３ａよりパケットのヘッダ情報を受信すると（ステップＳ１１）、転送先の出力ポートを端末管理部１のアドレステーブル１ａより決定し、パケット受信制御部３ａへ通知するとともに、パケットのヘッダ情報と送信先ポート、受信ポートを輻輳通知パケット送信制御部２ｃへ通知する（ステップＳ１２→Ｓ１３〜Ｓ１６）。
【００５５】
次いでマルチキャストパケットの転送処理の説明を行う。パケット転送制御部２ａはパケット受信制御部３ａよりパケットのヘッダ情報を受信すると（ステップＳ１１）、グループテーブル１ｂより送信するべきポートを抽出し、転送先ポート一覧を作成する（ステップＳ１２→Ｓ１７）。その後、各ポートの輻輳状態を輻輳状態テーブル２ｂより判断する（ステップＳ１８→Ｓ１９）。そして、輻輳状態にあるポートは転送先ポート一覧より削除する（ステップＳ２０）。この結果、同一グループが接続されたポートで輻輳していないポートのみ転送先をパケット受信制御部３ａに転送する。これによりパケット受信制御部３ａは、輻輳していないポートにのみデータを転送する。
【００５６】
次に図１１を用いて各輻輳状態における輻輳通知パケット送信までの処理を説明する。輻輳通知パケット送信制御部２ｃはパケット転送制御部２ａより転送の情報（パケットのヘッダ情報と、受信転送先ポート情報）を受けると、転送先ポート及びグループ別識別子により輻輳状態テーブル２ｂの輻輳の状態（ステップＳ３２、Ｓ３４ではFlow Status、ス テップＳ３５ではTimer Status）を判断する。
【００５７】
そして、Flow Statusが０１の場合、なにも行わないで処理を終了する（ステッ プＳ３４→Ｓ４１）。Flow Statusが１０の場合、パケットを受信した受信ポー トの輻輳通知パケット生成部１３に対し、輻輳通知パケット種別（個別輻輳通知パケット）と、宛先アドレス、グループ識別子、10Mbpsのときのポーズタイム値である基準ポーズタイム値Ａ（個別輻輳通知パケット用）、ポート速度（内部生成時10Mbps）を含んだパケット生成情報を通知する（ステップＳ３２→Ｓ３３）。
【００５８】
Flow Statusが１１（ステップＳ３４でＹ）で、Timer Statusが０（ステップ Ｓ３５でＹ）の場合、つまり輻輳の第二段階になって初めての転送となるが、この場合には同一グループの接続ポートを抽出し（ステップＳ３６）、パケットを転送する先のポートを除く全抽出ポートの輻輳通知パケット生成部１３に対し、輻輳通知パケット種別（グループ別輻輳通知パケット）の生成の指示と、宛先アドレス（ブロードキャストアドレス）、グループ識別子、基準ポーズタイム値B（グループ輻輳通知パケット用）を含んだパケット生成情報を通知する（ステップＳ３７）。これにより同一グループの端末からのパケットの送信は停止するはずであるので、バッファ使用量は低減するはずである。
【００５９】
そして、基準ポーズタイム値で設定される値より時間を算出し、この時間をセットしたタイマーを起動し、Timer Statusを１に変更する（ステップＳ３８）。タイマー終了時、Flow Statusが０１であれば、バッファ使用量の低減により輻 輳状態が改善されたとしてTimer Statusを０にする（ステップＳ３９→Ｓ４０）。タイマー終了時、Flow Statusが１１であれば輻輳状態が続いているので、再 度、パケット生成情報（グループ用）を通知する（ステップＳ３９→Ｓ３７）。
【００６０】
転送情報受信時、Flow Statusが１１（ステップＳ３４でＹ）でTimer Statusが１（ステップＳ３５でＮ）の場合は、グループ別輻輳通知パケットを送信して、再送タイマー動作中であるため、何も行わない（ステップＳ４１）。この状態は、グループ別輻輳通知パケットにより停止するまでの間にパケットを受信することにより起きるが、この状態で受信したパケットに対しては、送信元の端末は、グループ別輻輳通知パケットを受信した時点で送信を必ず停止するはずなので、さらなる輻輳通知パケットの生成は行わず、これにより輻輳通知パケットの生成を減らし、ネットワークの負荷を低減することになる。
【００６１】
次に、図１２を用いて出力バッファ監視部１２の動作を説明する。出力バッファ監視部１２では常時各グループ＃１〜＃ｍのデータ用出力バッファ（以下、簡単に出力バッファ、バッファとも言う）１１１〜１１ｍの使用率を監視している（ステップＳ２１）。パケットの転送により、ある出力バッファ１１ｋ（ｋ＝１〜ｍ）の使用率が輻輳の第１段階（閾値th1）を超えた場合、該当する輻輳状態テーブル２ｂのFlow Statusを１０に変更する（ステップＳ２３→Ｓ２５）。 この結果、このポートにパケットを転送するパケットがあれば、個別輻輳通知パケットによりフロー制御が行われることになる。
【００６２】
多数のポートや端末が接続された結果、送信が、そのまま続いて使用率が輻輳の第２段階（閾値th2）を超えた場合（ステップＳ２２でＹ）、該当する輻輳状 態テーブルのFlow Statusを１１に変更する（ステップＳ２９）。この結果、こ の後このポートにパケットを転送することがあれば、グループ別輻輳通知パケットが出力され、同一グループの全端末からの出力が停止するため、速やかにバッファの使用率が減少する。またこのとき内部変数ＦＬ＝１とする（ステップＳ２８）。
【００６３】
グループ別輻輳通知パケットの送信によりパケットの転送が止まり、出力バッファ１１１〜１１ｍの使用率が減少した場合でも、輻輳の第１段階（閾値th1）を下回るまで、Flow Statusは変更しない。これは内部変数ＦＬ＝１により判断する（ステップＳ２４）。使用率が閾値th1を下回ると（ステップＳ２３でＮ）、Flow Statusを０１に変更し（ステップＳ２７）、内部変数ＦＬ＝０とする（ステップＳ２６）。このような処理により、複数のグループ＃１〜＃ｍの出力バッファ１１１〜１１ｍが使用され、該当ポートの出力バッファ１１ｋ（ｋ＝１〜ｍ）の使用率が一度のグループ別輻輳通知パケットの送信によりあまり減少しなかった場合、再びグループ別輻輳通知パケットを使用することができ、ポートの輻輳状態を早く改善することができる。
【００６４】
次に、図１３を用いてパケット送信制御部３ｂの輻輳通知パケット生成の動作を説明する。輻輳通知パケット生成部１３は輻輳通知パケット送信制御部２ｃまたはパケット受信制御部３ａからパケット生成情報を受信すると（ステップＳ５１）、まず、基準ポーズタイム値（Pause time  typ）とポート速度（Port Output Speed）より図８に示す式（２）を用いて自ポートのポーズタイム値（Pause time x）を導出する（ステップＳ５２）。これによりポート速度の異なるポートへの転送であっても、ポーズタイム値を変更することで、実際にポートが停止する時間を同じにすることが可能となる。
【００６５】
次いで自ポートがグループを多重しないポートの場合、ポーズパケットを生成し、輻輳通知用バッファに転送する（ステップＳ５３→Ｓ５４）。自ポートがグループを多重したポートの場合、個別輻輳通知パケットの生成の通知であれば、図５に示す個別輻輳通知パケット（Pause time x）を生成し、輻輳通知用バッファに転送する（ステップＳ５３→Ｓ５５→Ｓ５６）。グループ別輻輳通知パケットの生成の通知であれば（ステップＳ５５でＮ）、図６に示すグループ別輻輳通知パケットを生成する（ステップＳ５８）。このとき、生成するパケットに設定するポーズタイム値は前述の導出した自ポートのポーズタイム値（Pause time x）に対して、図７に示す式（１）を用いてランダムな値を付加した値（Pause time set）を設定し、輻輳通知用出力バッファ１１０に転送する（ステップＳ５７、Ｓ５８）。
【００６６】
このようにグループ別輻輳通知パケットに含まれるポーズタイム値に関しては、基準ポーズタイム値に対しある値以上の値が付加された時間が設定されることになる。このため、基準ポーズタイム値より設定した再送タイマよりも停止時間が長くなるため、再送タイマー終了時、バッファ使用量があまり減少せず、再びグループ別輻輳通知パケットを送信したときに、完全に送信を停止したままにすることができる。これによりさらに輻輳の改善を早めることができる。また、設定値がランダム化されるため、各端末において、送信を開始する時間にばらつきが発生する。これによりポーズが解除されると同時にパケットが送信され、再び輻輳状態になるという現象に陥ることが少なくなる。図７におけるグループ別輻輳通知パケットのポーズタイム値の導出式（１）では、ポートの出力速度により導出されたポーズタイム値に対して、５〜５０％程度のランダムな値を付加している。
【００６７】
次に図１４を用いてパケット送信制御部３ｂのパケット送信処理に関して説明する。送信処理部１４では、グループ別データ用バッファ１１１〜１１ｍと輻輳通知用バッファ１１０の読み出し制御を行っている。輻輳通知用出力バッファ１１０にデータが存在する場合、これを優先的に送信する（ステップＳ６２→Ｓ６１）。輻輳通知用バッファにデータが無い場合のみ、読み出し制御をグループ別データ用出力バッファ１１１〜１１ｍに切り替える（ステップＳ６２→Ｓ６３）。複数のグループの出力バッファ１１ｋにデータの蓄積がある場合、各バッファ１１ｋの中から読み出すグループを選定する（ステップＳ６４→Ｓ６５、Ｓ６６）。選定方法に関してはラウンドロビンや、ＷＦＱなど方法がいくつか考えられるが、本発明では選定方法を特に規定しない。
【００６８】
次に、輻輳通知パケット及びポーズパケットの受信処理に関して図９を再度参照して説明する。あるポートより輻輳通知パケット及びポーズパケットを受信したとする。パケット受信制御部は宛先アドレスの解析を行い（ステップＳ１）、ポーズパケットであると認識すると、自ポートの送信制御部３ｂに対し、ポーズタイム値と送信停止を通知する（ステップＳ９）。この通知を受けた送信制御部３ｂはデータパケットの全出力バッファ１１１〜１１ｍからの読み出しをポーズタイム値から導出する送信停止時間だけ停止する。パケット受信制御部３ａはポーズパケットでない（データパケット又は輻輳通知パケット）と認識すると、転送制御部２ａに、パケット識別情報、宛先アドレス、送信元アドレス、グループ識別子を示した情報を送信する（ステップＳ３、Ｓ４、Ｓ５→Ｓ７、Ｓ８）。
【００６９】
転送制御部２ａはこれらの情報を元に、端末管理部１のグループテーブル１ｂを参照し、パケットを転送すべきポートを決定し、これをパケット受信制御部３ａに通知する。これを受けたパケット受信制御部３ａは、データパケットの種類を判断し（ステップＳ５）、輻輳通知パケットの場合、転送ポートの輻輳通知パケット生成部１３にパケット生成情報を送信する（ステップＳ７）。受信パケットは廃棄される（ステップＳ８）。このように輻輳通知パケット転送は通常のパケット転送と同様の一連の動作によって行われ、転送先が決定されることになる。
【００７０】
このときのパケット転送制御部２ａの動作を図１０を再度用いて説明する。パケット転送制御部２ａは、パケット受信制御部３ａよりパケット識別情報、ヘッダ情報を受信すると（ステップＳ１１）、通常のデータパケットと同様に、パケットの送信先アドレスにより、個別輻輳通知パケットかグループ別輻輳通知パケットかを識別する（ステップＳ１２）。これは、それぞれのパケットがユニキャストかブロードキャストかを判断するだけである。
【００７１】
個別輻輳通知パケットの場合、送信先アドレスより転送先ポートを抽出し（ステップＳ１３）、パケット受信制御部３ａへ転送先ポートを通知する（ステップＳ１６）。このとき、データパケットと異なり、輻輳通知パケット送信制御部２ｃへヘッダ情報などを通知することはない。パケットがグループ別輻輳通知パケットの場合、グループ識別子より転送先ポート一覧を作成し（ステップＳ１７）、パケット受信制御部３ａへ通知する（ステップＳ１６）。このとき、データパケットと異なり、ポートの輻輳状態とは無関係に、接続されたポート全てが転送先一覧となる。このように、輻輳通知パケットは個別、グループ別ともに、通常のパケットの転送と同様に処理することが可能であり、特別なプロトコル処理などを必要とすることなく、効率的に各グループ別にフロー制御を実行することができる。
【００７２】
なお、上記実施の形態では、出力バッファ１１の管理はグループ別に説明したが、これは、各端末のアドレス別に実施してもかまわない。また輻輳管理を出力バッファ１１の使用量で判断したが、物理バッファを固定長のブロックで管理する場合などにおいては、各グループの出力をキューにより管理しても良い。
【００７３】
第１の実施の形態によれば、輻輳時に他のグループに影響を与えることなく、通信を制限したい機器にのみ送信を制限することを通知する制御パケットを送出し、接続される端末が多い場合でもパケットロスすることのないネットワークを実現することができる。
【００７４】
＜第２の実施の形態＞
次に図１５〜図２５を参照して本発明の第２の実施の形態について説明する。ここで、第２の実施の形態を要約すると、
・スイッチングハブの出力ポートにおいて、グループ別の輻輳判断を行い、輻輳と判断されたグループにのみ、輻輳通知パケットを出力する。
・輻輳判断は、単位時間あたりに出力ポートに転送するグループ別のバイト数をカウントし、ポートを同時に使用するグループで公平になるよう制御する。
・また、輻輳の状態を２段階に判断し、単独のポート、複数のポートに対しフロー制御を行う。
【００７５】
第２の実施の形態では、図１５に示すように、ハブＳＷ内に各ポート別に各グループの転送した流量を保持する転送レートテーブル２１ａと、この流量を算出するための転送流量算出処理部２１ｂより構成される流量制御部２１を設ける。これにより、第１の実施の形態では各出力ポートでグループ別のバッファ１１１・・・を監視することにより輻輳を判断していた輻輳判断を、第２の実施の形態では流量制御部２１によって輻輳を判断する。このため、図１６に示すように、出力ポート（パケット送信制御部３０ｂ）にグループ別に設けていたバッファ１１１・・・を統合して１つのデータ用バッファ３１１として出力バッファ３１の有効活用を行う。
【００７６】
全体の動作に関しては、第１の実施の形態とは輻輳の判断方法が異なるのみで、他は同様の動作となる。図１７（１）を用いて説明すると、今、同じグループ＃１であって、ハブＳＷ４に接続された端末ＤとハブＳＷ５に接続された端末ＧがハブＳＷ２を介して、ハブＳＷ３に接続された端末Ａにパケットを送信した結果、端末Ｄ、Ｇからのデータ受信速度がハブＳＷ２のポートＰ２１の出力速度を上回ったとする。
【００７７】
このときハブＳＷ２では、出力先ポートとなるポートＰ２１に転送したバイト数をグループ別に管理する。グループ＃１の単位時間当たりの転送レートが割当レートを上回ったとき、出力バッファ３１１にパケットを送信してきた端末が端末Ｇだったとすると、個別輻輳通知用パケットが入力時のパケットの送信元である端末Ｇ宛てに送信される。このパケットがハブＳＷ５で受信されると、ハブＳＷ５は該当端末Ｇが接続されているポートＰ５１に対し、ポーズパケットを出力する。このような方式により輻輳の原因となった端末Ｇのみがパケットの送信を停止することになる。また、第１の実施の形態のように出力バッファ３１１の蓄積で輻輳を判断しないため、データ用出力バッファを１つに共有して有効にバッファを利用することが可能となる。このとき、輻輳と無関係なグループ＃２がデータを送信したとしても、単位時間当たりの転送レートが割当を下回っていれば、パケットの転送は可能である。
【００７８】
また、第１の実施の形態と同様に、同じグループ＃１の各端末Ｄ、Ｇ、Ｈに輻輳通知パケットを送信する。接続される端末が多く、ハブＳＷ２のポートＰ２１のデータ用出力バッファ３１１がバッファ閾値を上回る場合を図１７（２）を参照して説明する。この場合、ハブＳＷ２は輻輳している出力ポートＰ２１に対し、パケットを送信してくる可能性のあるグループ全てに対してグループ別輻輳通知パケットを送信する。つまり、該当ポートに設定された全てのグループが接続されるポートＰ２１、Ｐ２２、Ｐ２３に対して、各グループの輻輳通知パケットを送信する。このような方法により、多数の端末による輻輳時においても、該当ポートに出力する可能性のあるポートを全て停止することができるので、ハブＳＷ２でのパケットロスを防止することが可能となる。この場合にも、該当ポートに関係するグループ以外の端末間の通信は可能である。
【００７９】
第２の実施の形態では、図１８に示す流量転送レートテーブル２１ａと、これを算出する転送流量算出処理部２１ｂにより、各グループ＃０〜＃ｍの輻輳状態を判断する。図１８に示す転送レートテーブル２１ａにおいて、rate countは各ポート＃０〜＃ｎ別に各グループ＃０〜＃ｍが単位時間当たりに出力ポート＃０〜＃ｎのデータ用出力バッファ３０１に転送したパケットのバイト数である。また、Time Stampはその出力ポート＃０〜＃ｎのデータ用出力バッファ３０１に最後に転送された時間が保持されている。Total rateは各グループrate countの合計である。
【００８０】
図１９は第２の実施の形態における輻輳状態テーブル２０ｂの例を示す。この輻輳状態テーブル２０ｂは、各グループ＃１〜＃ｍ別に、接続されるポートＰ０〜Ｐｎと、流量による輻輳の状況（rate Status）とデータ用出力バッファ３０１の使用量による輻輳の状況（Buffer Status）により構成される。rate Statusは割当レートを超えない状態（０１）と割当レートを超えた状態（１０：個別輻輳通知パケットの送信）を示す。またBuffer Statusはバッファの使用量が閾値を超えない場合（０）と閾値を超えて使用されている状態（１：グループ別輻輳通知パケットの送信）を示す。
【００８１】
次に、パケット受信時の動作を図２０（及び第１の実施の形態における図９）を用いて説明する。パケット受信時、パケット受信制御部３０ａによりパケット長のカウントが行われ（ステップＳ１ａ）、次いでパケットのヘッダの解析が行われる（ステップＳ１ｂ）。次いでパケットの種類がポーズパケットである場合、第１の実施の形態と同様の処理が行われる（ステップＳ９、Ｓ１０）。パケットの種類がデータパケット、輻輳通知パケットの場合、パケット識別情報と、ヘッダ情報に加えパケット長を転送制御部に送信する（ステップＳ３ａ）。あとのパケット受信制御部３０ａでの処理（ステップＳ４〜Ｓ８）は第１の実施の形態と同じである。
【００８２】
次に、パケット転送処理に関して図２１（及び第１の実施の形態における図１０）を用いて説明する。パケット識別情報、ヘッダ情報とパケット長を受信した転送制御部２０では、転送先を決定するステップＳ１１ａ、Ｓ１２〜Ｓ１５、Ｓ１７〜Ｓ２０は第１の実施の形態と同様になる。第２の実施の形態では、パケット受信制御部３０ａへ転送先ポートを通知する（ステップＳ１６２）とともに、パケットのヘッダ情報、送信元、転送先ポート、パケット長を転送流量算出処理部２１ｂへ通知する（ステップＳ１６１）。このとき、マルチキャスト/ブ ロードキャストパケットと、輻輳状態通知パケットの転送情報も通知される。
【００８３】
次に、図２２（及び第１の実施の形態における図１１）を用いて、輻輳通知パケットを送信するまでの処理を説明する。パケットのヘッダ情報と送信元、転送先ポート情報を受信したとき（ステップＳ１３１）、Buffer Statusが１であれ ば（ステップＳ１３２でＹ）、該当出力ポートに接続されている全グループを抽出し（ステップＳ１３３）、各グループに対してそれぞれ、接続先ポート一覧を作成する（ステップＳ１３４）。そして、転送先のポートを除く全抽出ポートの輻輳通知パケット生成部３３にパケット生成情報をグループの数だけ送信する（ステップＳ１３５）。Buffer Statusが０（ステップＳ１３２でＮ）でFlow Statusが '１０ 'の場合（ステップＳ１３６でＹ）、受信ポートの輻輳通知パケット生成部３３にパケット生成情報を通知する（ステップＳ１３７）。Buffer Statusが０でFlow Statusが'０１'の場合、何もしない（ステップＳ１３８）。
【００８４】
次に、図２３を用いてパケット転送時の転送流量の算出に関して説明する。転送制御部２０より、パケットのヘッダ情報、受信、転送先ポート、パケット長を受信すると（ステップＳ２０１）、転送先ポートの該当グループのrate countを再計算し、また、Total countも更新する（ステップＳ２０２）。rate countの 再計算は、該当グループのTime stampにより時間経過を算出し、単位時間当たりのrate countに再計算しなおされる。
【００８５】
このとき、Total countが該当ポートの流量閾値を超えていなければ（ステッ プＳ２０３でＮ）、該当ポートに接続される全てのグループのFlow Statusを’０１’に変更する（ステップＳ２０４）。ポートの流量閾値は、単位時間にポートが出力可能なバイト数を元に算出される。例えば、単位時間を100ms、ポートの出力速度が10Mbpsであったとすると、ポートの流量閾値は約122kbyteとなる。
【００８６】
Total countが流量閾値を超えていた場合（ステップＳ２０３でＹ）、このポ ートの閾値を単位時間当たりに使用したグループの数で割った値をグループの割当流量とし、更新したグループのrate countが前記グループの割当流量を超えていた場合（ステップＳ２０５でＹ）、該当グループは輻輳と判断し、Flow Statusを'１０'に変更する（ステップＳ２０６）。グループのrate countがグループ の割当流量を超えていない場合（ステップＳ２０５でＮ）、該当グループのFlow Statusを'０１'に変更する（ステップＳ２０７）。
【００８７】
次に、各グループで共用となった出力バッファ３１１の流量監視処理に関して図２４を用いて説明する。第２の実施の形態においては、輻輳の度合いは流量により判断するので、出力バッファ監視処理は、最終的なバッファあふれによるパケットロスを防止することが目的となる。このため、閾値は１つのみ設定し、これを監視する（ステップＳ１２１）。出力バッファ３１１の使用が閾値th1を超えた場合（ステップＳ１２２でＹ）、該当ポートのBuffer Statusを１に変更する（ステップＳ１２３）。これは、グループ別輻輳通知パケットの送信の段階に入ったことを示している。
【００８８】
第２の実施の形態においては、Buffer Status＝１における輻輳制御は、該当 ポートに転送の可能性のある全グループに対して、グループ別輻輳通知パケットが送信されるため、必ずバッファ３１１の使用量は減少する。バッファの使用量が閾値th1を下回ると（ステップＳ１２２でＮ）、Buffer Statusを０に変更する（ステップＳ１２４）。
【００８９】
最後に、パケット送信処理に関して図２５（及び第１の実施の形態における図１４）を用いて説明する。パケット送信処理は輻輳通知用出力バッファ３１０とデータ用バッファ３１１の読出し制御を行うのみとなり、輻輳制御通知用出力バッファ３１０にデータが存在しない場合のみ（ステップＳ６２でＮ）、データ用バッファ３１１からの読出しを行う（ステップＳ６３、Ｓ６４）。データ用バッファ３１１はグループ＃０〜＃ｍで共用するため、グループ＃０〜＃ｍ間の読出し制御（図１４におけるステップＳ６４、Ｓ６５）を行う必要も無く、バッファ３１１からの読出しを行うのみとなり、処理が簡略化される。
【００９０】
ここで、輻輳通知パケットの生成処理は、第１の実施の形態（図１３参照）と同じであるので、図面及び説明を省略する。
【００９１】
第２の実施の形態によれば、各パケット送信制御部３０ｂにおいて、図３に示すような複数のバッファ１１１〜１１ｍの管理をする必要はなくなるとともに、読出しの制御も簡略化される。また、データ出力バッファをグループ＃０〜＃ｍ別に用意する必要がなくなるため、トータルのバッファ量を削減することが可能である。また、グループ＃０〜＃ｍを多重したポートでは、輻輳通知パケットを受信しても転送するのみで、受信ポートの出力を停止することは無いので、出力バッファ３１１に転送する流量をグループ＃０〜＃ｍ別に制御することで、実際のポートの出力を制御することができる。なお、この第２の実施の形態においては、流量制御を各グループ＃０〜＃ｍの使用状況でリアルタイムに割り当てたが、ピークレートなどの設定を保持し、この値を使用して、流量制御を行うことで帯域制限を行うことも可能である。
【００９２】
＜第３の実施の形態＞
次に図２６〜図３２を参照して第３の実施の形態について説明する。ここで、第３の実施の形態を要約すると、
・スイッチングハブの出力ポートにおいて、グループ別の輻輳判断を行い、輻輳と判断されたグループにのみ、輻輳通知パケットを出力する。
・輻輳判断は、出力ポートに設けたグループ別のバッファによって行う。
・また、輻輳の状態を２段階に判断し、単独のポート、複数のポートに対しフロー制御を行う。
・輻輳制御パケットを転送することは無く、受信ポートのグループ別バッファの読み出しを停止することで制御する。
【００９３】
第３の実施の形態では、図２６（ａ）、（ｂ）に示すように第１の実施の形態に対してパケット送信制御部３ｂａ内に送信停止処理部１６と出力管理テーブル１５を追加して設ける。これにより、輻輳通知パケットを受信した場合に、輻輳通知パケットを転送することなく、自ポートの該当グループの読出しを停止することによりフロー制御を実施する。
【００９４】
全体の動作に関して図２７（１）を用いて説明する。今、同じグループ＃１の、ハブＳＷ４に接続されている端末ＤとハブＳＷ５に接続されている端末ＧがハブＳＷ２を介して、ハブＳＷ５に接続されている端末Ａにパケットを送信した結果、端末Ｄ、Ｇからのデータ受信速度がハブＳＷ２のポートＰ２１の出力速度を上回ったとする。このときハブＳＷ２では出力先ポートとなるポートＰ２１でパケットのバッファ管理をグループ別に行う。グループ＃１のデータ用出力バッファ１１１が輻輳段階１の閾値を上回ったとき、グループ＃１のバッファ１１１にパケットを送信してきた端末が端末Ｇだったとすると、個別輻輳通知用パケットが入力時のパケットの送信元である端末Ｇ宛てに送信される。
【００９５】
このパケットがハブＳＷ５で受信されると、該当端末Ｇが所属するグループ  ＃１のバッファに対し、出力バッファ１１１からの読出しを停止する。この結果、ハブＳＷ５の端末ＧからのパケットはハブＳＷ５のグループ＃１用のバッファ１１１に蓄積されることになり、ハブＳＷ５の輻輳判断により端末Ｇにポーズパケットが出力される。このような方式により輻輳の原因となった端末Ｇのみがパケットの送信を停止することになる。このとき、輻輳と無関係なグループ＃２のバッファ１１２は空いているため、グループ＃２の端末Ｅから端末Ｂ宛てのパケットは、グループ＃１の輻輳によらず転送が可能となる。また、ハブＳＷ５においても、送信を停止するバッファはグループ＃１のみであるので、ハブＳＷ５に接続される別のグループ＃４の端末Ｉから端末Ｆへの通信も可能である。
【００９６】
次にハブＳＷ２の接続ポート数が多く、ポートＰ２１のグループ＃１のバッファ１１１が輻輳段階２の閾値を上回る場合を図２７（２）を用いて説明する。この場合、ハブＳＷ２はグループ＃１の接続されているポートＰ２２〜Ｐ２ｎ（Ｐ２３）の全てに対してグループ別輻輳通知パケットを出力する。グループ別輻輳通知パケットを受信したハブＳＷ４〜ＳＷN（ＳＷ５）は、グループ＃１の バッファ１１１に対し、出力バッファ１１からの読出しを停止する。この結果、ハブＳＷ２に対してグループ＃１のパケットを送信する可能性があるのはポートＰ２１のハブＳＷ３からのみとなり、このため、ポートＰ２１のグループ＃１の出力バッファ１１１に転送するパケットを無くし、早急に輻輳状態を回復することが可能となる。このとき図２７（１）と同様に、各ハブＳＷにおける出力バッファ１１の停止はグループ＃１のみであることから、この間の他のグループ＃２、＃４の通信は可能となっている。
【００９７】
上記の動作に関して、スイッチングハブの構成及び動作を以下に説明する。第３の実施の形態では、パケット送信制御部３ｂａ内に、輻輳通知パケットを受信したときに、タイマー動作により各グループの読出の可/不可を変更する送信停 止処理部１６と読出しの状態を保持する出力管理テーブル１５を設けている。図２８はPort＃nの出力管理テーブル１５の例を示す。図２８において、ポートの 多重するグループ＃１〜＃ｍ別にRead StatusとPause Statusを管理する。Read Statusは該当グループ＃ｋ（ｋ＝１、２〜ｍ）の出力バッファ１１ｋからの読出しを許可するか、読出しを停止するかを示している。Pause Statusは輻輳通知パケットにより各グループ＃１〜＃ｍ別に保持するパケット送信停止タイマーが未動作（Status:0）か、個別輻輳通知パケットによるタイマー動作中（Status:1）か、グループ別輻輳通知パケットによるタイマー動作中（Status:2）かを示している。
【００９８】
次に、パケット受信時の動作を図２９（及び第１の実施の形態における図９）を用いて説明する。パケット受信時、パケット受信制御部３ａによりパケットのヘッダの解析が行われる（ステップＳ１）。パケットの種類がデータパケット、ポーズパケットである場合、第１の実施の形態と同様の処理（データパケット：ステップＳ３〜Ｓ５、ポーズパケット：ステップＳ９、Ｓ１０）が行われる。パケットの種類が輻輳通知パケットの場合、自ポートの送信制御部３ｂへポーズタイム値、グループ識別子、輻輳通知パケット種別を通知して（ステップＳ７ａ）、受信パケットは廃棄する（ステップＳ１０）。
【００９９】
上記図２９の説明のように、輻輳通知パケットはパケット受信制御部３ａで処理が完了し、パケット転送処理は行わない。このため、パケット転送制御部２ａでは、第１の実施の形態にあった、輻輳通知パケットの転送処理（図９に示すステップＳ７）はなくなる。
【０１００】
次に図３０（及び第１の実施の形態における図１０）を参照してパケット転送処理について説明する。図３０では図１０におけるデータパケット判定ステップＳ１８が省略されている。
【０１０１】
次に送信制御部３ｂａ内の送信停止処理部１６の動作を図３１を用いて説明する。送信停止処理部１６は輻輳通知パケットの通知を受信すると（ステップＳ３０１）、受信した輻輳通知パケットがグループ用輻輳通知パケットの場合（ステップＳ３０２でＹ）、状態の如何に関わらず、通知されたポーズタイム値でタイマーを再スタートさせ（ステップＳ３０３）、グループのRead Statusを１にPause Statusを２へ変更する（ステップＳ３０４）。
【０１０２】
受信した輻輳通知パケットが個別輻輳通知パケットの場合（ステップＳ３０２でＮ）、Read Statusが０か１のとき（ステップＳ３０５でＮ）、受信ポーズタイム値でタイマーを再スタートさせ（ステップＳ３０６）、グループのRead Statusを１に、Pause Statusを１へ変更する（ステップＳ３０７）。受信時のRead Statusが２の場合（ステップＳ３０５でＹ）何も処理を行わない。各グループの再送タイマーを処理し、各グループの再送タイマーが終了した場合（ステップＳ３０８でＮ）、該当グループのRead StatusとPause Statusを０に変更する（ステップＳ３０９）。
【０１０３】
このような処理により、例えば輻輳の第二段階であるグループ用輻輳通知パケットのポーズタイム値を、輻輳の第１段階である個別輻輳通知パケットのポーズタイム値より大きくした場合、後から受信したポーズタイム値の小さな個別輻輳通知パケットにより上書きされることが無くなり、確実にパケットロスを防ぐことが可能になる。
【０１０４】
出力管理テーブル１５により読出しの状態が変わるため、第３の実施の形態でのパケット送信処理のフローチャートは、図３２に示すように第１の実施の形態（図１４参照）に対してステップＳ６５ａが追加される。このパケット送信処理では、輻輳通知用パケットが存在する場合、優先的に処理することは、第１の実施の形態と同様である（ステップＳ６１〜Ｓ６２）。データ用バッファにデータが存在する場合、出力として選択されたグループのRead Statusが０の場合のみ （ステップＳ６５ａでＹ）バッファ１１より読出しを行う（ステップＳ６６）。Read Statusが１のグループであった場合（ステップＳ６５ａでＮ）、複数のグ ループのデータが存在する場合は次のグループ選定に移る。
【０１０５】
第３の実施の形態によれば、パケットの転送処理を行うことなく、グループ単位でのフロー制御を行うことが可能である。また、第１、第２の実施の形態と同様のフレームフォーマットの輻輳通知パケットにより処理が行われるため、各実施の形態のポートを持つスイッチングハブを組み合わせて使用しても、問題無くグループ間に影響を与えないフロー制御を実現することができる。
【０１０６】
【発明の効果】
以上説明したように本発明によれば、ハブの出力ポート側において端末グループ毎に輻輳を判断して、輻輳と判断したグループのみに輻輳通知パケットを出力するようにしたので、輻輳時に他の端末グループに与える影響を極力少なくし、通信を制限したい機器にのみ送信を制限することができる。
本発明はまた、輻輳の状態によって出力する輻輳通知パケットの種類を個別端末宛てとグループ宛てに変更することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態のフロー制御装置を要約して示す説明図
【図２】本発明の第１の実施の形態のフロー制御装置を詳しく示すブロック図
【図３】図２のパケット送信制御部を詳しく示すブロック図
【図４】図２の輻輳状態テーブルを詳しく示す説明図
【図５】個別輻輳通知パケットのＭＡＣフレームフォーマットの構成を示す説明図
【図６】グループ別輻輳通知パケットのＭＡＣフレームフォーマットの構成を示す説明図
【図７】図６のグループ別輻輳通知パケットのポーズタイム値の導出式を示す説明図
【図８】基準ポーズタイム値より自ポートポーズタイム値を導出する式を示す説明図
【図９】図２のパケット受信制御部の処理を示すフローチャート
【図１０】図２の転送制御部の処理を示すフローチャート
【図１１】図２の輻輳通知パケット送信制御部の処理を示すフローチャート
【図１２】図３の出力バッファ監視部の処理を示すフローチャート
【図１３】図３の輻輳通知パケット生成部の処理を示すフローチャート
【図１４】図３のパケット送信制御部の処理を示すフローチャート
【図１５】本発明の第２の実施の形態のフロー制御装置を詳しく示すブロック図
【図１６】図１５のパケット送信制御部を詳しく示すブロック図
【図１７】第２の実施の形態のフロー制御装置を要約して示す説明図
【図１８】図１５の転送レートテーブルを詳しく示す説明図
【図１９】図１５の輻輳状態テーブルを詳しく示す説明図
【図２０】図１５のパケット受信制御部の処理を示すフローチャート
【図２１】図１５の転送制御部の処理を示すフローチャート
【図２２】図１５の輻輳通知パケット送信制御部の処理を示すフローチャート
【図２３】図１５の転送流量算出処理部の処理を示すフローチャート
【図２４】図１５の出力バッファ監視部の処理を示すフローチャート
【図２５】図１５のパケット送信制御部の処理を示すフローチャート
【図２６】（ａ）本発明の第３の実施の形態のフロー制御装置を詳しく示すブロック図
（ｂ）図２６（ａ）のパケット送信制御部を詳しく示すブロック図
【図２７】本発明の第３の実施の形態のフロー制御装置を要約して示す説明図
【図２８】図２６の出力管理テーブルを詳しく示す説明図
【図２９】図２６のパケット受信制御部の処理を示すフローチャート
【図３０】図２６のパケット転送制御部の処理を示すフローチャート
【図３１】読み出し停止処理を示すフローチャート
【図３２】図２６のパケット送信制御部の処理を示すフローチャート
【図３３】従来のフロー制御装置を要約して示す説明図
【図３４】他の従来のフロー制御装置を要約して示す説明図
【符号の説明】
ＳＷ２〜ＳＷ５  スイッチングハブ
１１  出力バッファ
１２  出力バッファ監視部
１３  輻輳通知パケット生成部
【図１】
0003934915.tif 000002
【図２】
0003934915.tif 000003
【図３】
0003934915.tif 000004
【図４】
0003934915.tif 000005
【図５】
0003934915.tif 000006
【図６】
0003934915.tif 000007
【図７】
0003934915.tif 000008
【図８】
0003934915.tif 000009
【図９】
0003934915.tif 000010
【図１０】
0003934915.tif 000011
【図１１】
0003934915.tif 000012
【図１２】
0003934915.tif 000013
【図１３】
0003934915.tif 000014
【図１４】
0003934915.tif 000015
【図１５】
0003934915.tif 000016
【図１６】
0003934915.tif 000017
【図１７】
0003934915.tif 000018
【図１８】
0003934915.tif 000019
【図１９】
0003934915.tif 000020
【図２０】
0003934915.tif 000021
【図２１】
0003934915.tif 000022
【図２２】
0003934915.tif 000023
【図２３】
0003934915.tif 000024
【図２４】
0003934915.tif 000025
【図２５】
0003934915.tif 000026
【図２６】
0003934915.tif 000027
【図２７】
0003934915.tif 000028
【図２８】
0003934915.tif 000029
【図２９】
0003934915.tif 000030
【図３０】
0003934915.tif 000031
【図３１】
0003934915.tif 000032
【図３２】
0003934915.tif 000033
【図３３】
0003934915.tif 000034
【図３４】
0003934915.tif 000035