(57)【要約】【課題】輻輳が予測可能な場合には実際にキューに蓄積しているフレームがキューの長さ制限に達していなくてもフレーム廃棄制御を行うことにより、フレームバッファの使用量を抑制するフレーム転送装置を得ること。【解決手段】フロー制御検出部３１，３２が、ポート２１，２２から入力されたフレームからポーズフレームを検出し、輻輳予測部７１，７２が、ポーズフレーム内の送信停止時間から輻輳が発生すると予測して、出力キュー６１，６２へのフレームの蓄積を禁止する出力禁止通知および転送禁止通知を出力し、フレーム解析部５は、入力されたフレームが転送禁止通知を受けているポートへのフレームである場合には、フレームバッファ４のアドレスを開放して、フレームを廃棄する。【選択図】        図１
2005260839.tif 000002
【特許請求の範囲】
【請求項１】
複数のポートによってネットワークに接続されて、入力されたフレームを転送するフレーム転送装置において、
前記入力されたフレームの中からフレームの送信を所定の時間停止するフロー制御フレームを検出した場合には、このフロー制御フレームによって指定された送信停止時間の間フレームを出力することを停止するとともに、転送禁止通知を出力するポート処理部、
を前記複数のポート毎に備え、
前記入力されたフレームを解析してフロー種別と転送先ポートを選択して、選択したポートから前記転送禁止通知を受けていない場合には、前記入力されたフレームを決定したポートに出力するフレーム解析部、
を備えることを特徴とするフレーム転送装置。
【請求項２】
前記入力されたフレームを保持するフレームバッファ、
をさらに備え、
前記ポート処理部は、
前記入力されたフレームの中から前記フロー制御フレームを検出するフロー制御検出部と、
このフロー制御検出部によって検出されたフロー制御フレーム内の送信停止時間の間前記転送禁止通知および出力禁止通知を出力する輻輳予測部と、
前記フレームバッファに保持されているフレームが格納されているアドレスを蓄積し、前記出力禁止通知を受けていない場合には、前記フレームバッファに保持されているフレームから、順次蓄積しているアドレスが示すフレームを読み出して、この読み出したフレームを出力する出力キューと、
を備えることを特徴とする請求項１に記載のフレーム転送装置。
【請求項３】
前記輻輳予測部は、
前記フロー制御フレームが検出されると、前記出力キューが蓄積しているアドレスが示すフレームの長さの合計である滞留フレーム長が輻輳予測用閾値を超えている場合に、前記転送禁止通知および前記出力禁止通知を出力することを特徴とする請求項２に記載のフレーム転送装置。
【請求項４】
前記出力キューは、
一定時間ごとに入力レートを計測し、
前記輻輳予測部は、
前記出力キューが計測した入力レートと前記送信停止時間とによって滞留予測フレーム長を算出して、この算出した滞留予測フレーム長が輻輳予測用閾値を超えている場合に、前記転送禁止通知および前記出力禁止通知を出力することを特徴とする請求項２に記載のフレーム転送装置。
【請求項５】
前記輻輳予測部は、
前記転送禁止通知および前記出力禁止通知を出力した後に、前記滞留予測フレーム長を算出して、この算出した滞留予測フレーム長が輻輳予測解除用閾値よりも小さい場合には、前記転送禁止通知および前記出力禁止通知を解除することを特徴とする請求項４に記載のフレーム転送装置。
【請求項６】
前記フレーム解析部は、
前記入力されたフレームが前記転送禁止通知を受けているポートへのフレームであると判断した場合には、この入力されたフレームを保持しているフレームバッファを開放することを特徴とする請求項２〜５の何れか一つに記載のフレーム転送装置。
【請求項７】
前記出力キューは、
外部からの設定によって、前記出力禁止通知を受け付けるか否かを決定することを特徴とする請求項２〜６の何れか一つに記載のフレーム転送装置。
【請求項８】
前記輻輳予測部は、
前記送信停止時間を経過した場合には、前記出力禁止通知および前記転送禁止通知を解除することを特徴とする請求項２〜７の何れか一つに記載のフレーム転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上でフレームを転送するフレーム転送装置に関するものである。
【背景技術】
【０００２】
ネットワーク上でフレームを転送するフレーム転送装置は、一般的に、入力されたフレームをフレームの転送先に対応したポートに出力する際に、一旦入力フレームをキューに蓄積しておき、キューに蓄積されたフレームを転送する。その際に、フローの集中などによりキューに蓄積したフレームをすぐに転送することができないことがある。このような場合は、蓄積されたフレームの総フレーム長がキューの長さ制限を超えたことを検出すると、検出したキューにフレームが並ばないようにフレームを廃棄するといった輻輳制御を行っている。輻輳制御は、キューの長さの制限、すなわち、フレームを廃棄する条件によってその特徴が決定される。
【０００３】
キューの長さの制限の最大値を大きく設定すればフレームの廃棄を抑制することができるが、複数のポートを有するフレーム転送装置において、キューの長さ制限の最大値とポートの積に匹敵するほど多くのフレームバッファを備えると、装置のコストが高くなってしまう。そのため、一般的には、キュー毎に対応したフレームバッファを備えるのではなく、装置内のすべてのキューで１つのフレームバッファを共有する共有バッファ構成とすることが多い。共有バッファ構成のフレーム転送装置では、キューの長さ制限は固定的に設定されて、ポートやキュー毎に公平にフレームバッファを使用したり、重み付けによってフレームバッファを使用したりする輻輳制御が行われる。
【０００４】
動的にキューの長さ制限を設定する従来技術として特許文献１がある。特許文献１に記載の従来技術では、ＩＥＥＥ８０２．３Ｘに基づくポーズフレームの受信により送信が停止している際に、送信バッファキューの容量をポートごとに動的に割り当てることで、未使用のバッファキューを当該ポートの送信バッファキューに割り当てて、パケットバッファの容量を見かけ上増やすようにしている。すなわち、未使用のバッファキューをポーズフレームの受信によってフロー制御を検出したポートのバッファキューとして使用することでのキューの長さの制限を大きく設定することを可能とし、フレームの廃棄を抑制するようにしている。
【０００５】
【特許文献１】特開２０００−１１５２２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来技術では、設定した長さ制限に実際にフレームが溜まるまで輻輳制御を行うことができないため、多数のポートを有するフレーム転送装置の場合、任意のポートで輻輳が発生すると、この輻輳が発生したポートがフレームバッファを多く使用してしまい、他のポートに割り当てられるフレームバッファが少なくなってしまうという問題があった。
【０００７】
また、近年のインターネットの普及などにより、フレーム転送装置は、リアルタイム性よりはフレームの低損失性が要求されるファイル転送などのフローと、リアルタイム性が要求される音声や映像などのフローとを一緒に扱うようになっている。そのため、輻輳時にキューに溜まったフレームを輻輳が解除されてから出力するといった輻輳制御では、フレーム転送の遅延が大きくなってしまい、リアルタイム性が要求されるフローの転送には向いていないという問題があった。
【０００８】
後者の問題は、上記従来技術を応用して、フロー制御を検出したキューの長さ制限を提言とは逆に小さくすることで解決することが考えられる。しかしながら、この場合には、遅延を問題としないフローのフレームも廃棄してしまうため、リアルタイム性よりはフレームの低損失性が要求されるファイル転送などのフローの転送に向かなくなるという新たな問題が発生してしまう。
【０００９】
この発明は上記に鑑みてなされたもので、輻輳が予測可能な場合には実際にキューに蓄積しているフレームがキューの長さ制限に達していなくてもフレーム廃棄制御を行うことにより、フレームバッファの使用量を抑制するフレーム転送装置を得ることを第１の目的とする。
【００１０】
第２の目的は、輻輳を予測してフレーム廃棄を行うことで輻輳時にキューに蓄積しているフレーム数を抑制することで、輻輳解除時に出力するフレームの出力遅延を抑制するフレーム転送装置を得ることである。
【００１１】
第３の目的は、輻輳が発生することが予測される場合でも、フロー種別によってフレームの廃棄を行うか否かを判定することで、輻輳制御中に転送遅延を問題としないフローにフレームバッファの使用量を多く割り当てるフレーム転送装置を得ることである。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、この発明にかかるフレーム転送装置は、複数のポートによってネットワークに接続されて、入力されたフレームを転送するフレーム転送装置において、前記入力されたフレームの中からフレームの送信を所定の時間停止するフロー制御フレームを検出した場合には、このフロー制御フレームによって指定された送信停止時間の間フレームを出力することを停止するとともに、転送禁止通知を出力するポート処理部、を前記複数のポート毎に備え、前記入力されたフレームを解析してフロー種別と転送先ポートを選択して、選択したポートから前記転送禁止通知を受けていない場合には、前記入力されたフレームを決定したポートに出力するフレーム解析部、を備えることを特徴とする。
【００１３】
この発明によれば、複数のポートに対応したポート処理部が、入力されたフレームの中からフレームの送信を所定の時間停止するフロー制御フレームを検出した場合には、このフロー制御フレームによって指定された送信停止時間の間に入力されたフレームを受け付けないようにしている。
【発明の効果】
【００１４】
この発明にかかるフレーム転送装置によれば、複数のポートに対応したポート処理部が、入力されたフレームの中からフレームの送信を所定の時間停止するフロー制御フレームを検出した場合には、このフロー制御フレームによって指定された送信停止時間の間に入力されたフレームを受け付けないようにしているので、送信停止時間の間のフレームを蓄積する必要がなくなり、フレームを格納するフレームバッファの使用量を抑制することができる。
【発明を実施するための最良の形態】
【００１５】
以下に、この発明にかかるフレーム転送装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１６】
実施の形態１．
図１〜図５を用いてこの発明における実施の形態１を説明する。図１は、この発明における実施の形態１のフレーム転送装置の構成を示すブロック図である。この発明における実施の形態１のフレーム転送装置は、複数（この場合は２つ）のポート２１，２２と、ポート２１，２２に対応したポート処理部９１，９２と、フレームバッファ４と、フレーム解析部５とを備えている。なお、この発明における実施の形態１のフレーム転送装置は、ＩＥＥＥ８０２．３イーサネット（R）フレームを扱うフレーム転送装置であって、全二重通信を行うものとする。
【００１７】
ポート２１およびポート２２は同じ機能を備えている。ポート２１は、ネットワークから入力されるフレームを受信するとともに、受信したフレームを宛先ポートに対応してフレームをネットワークに送信する。
【００１８】
ポート処理部９１およびポート処理部９２は、同じ機能を備えており、ポート処理部９１はポート２１に対応した入出力制御を行い、ポート処理部９２はポート２２に対応した入出力制御を行う。
【００１９】
ポート処理部９１は、フロー制御検出部３１と、輻輳予測部７１と、出力制御部８１と、出力キュー６１とを備えている。
【００２０】
フロー制御検出部３１は、対応するポート２１から入力されたフレームがイーサネット（登録商標）の全二重通信に用いられるＩＥＥＥ８０２．３ｘポーズフレーム（以下、ポーズフレームとする）であるか否かを判定する。
【００２１】
ポーズフレームは、図２に示すように、フレームヘッダ１１と、データ１２と、フレームトレイラ１３とで構成され、データ１２内に、送信停止時間情報を含むポーズコマンド１４を有している。ＩＥＥＥ８０２．３ｘでは、ポーズフレームを受信したフレーム転送装置は、ポーズコマンド１４に含まれる送信停止時間情報に基づいて所定の時間送信を中止することが規定されている。フロー制御検出部３１は、ポート２１から入力されたフレームがポーズフレームであるか否かを判定して、受信したフレームがポーズフレームである場合には、送信停止時間とフロー制御受信とを輻輳予測部７１に通知する。フロー制御検出部３１は、ポート２１から入力されたフレームがポーズフレームではない場合には、入力されたフレームをフレームバッファ４とフレーム解析部５とに出力する。
【００２２】
輻輳予測部７１は、フロー制御検出部３１から通知される送信停止時間とフロー制御受信とに基づいて、輻輳が発生するか否かを予測する。輻輳予測部７１は、フロー制御受信が通知されて、かつ送信停止時間が「０」でない場合には、輻輳が発生すると予測して、ポート２１へのフレームの出力を禁止することを出力制御部８１に通知するとともに、フレーム転送装置内の計時機能によって送信停止時間の測定を開始する。輻輳予測部７１は、フロー制御受信が通知されて、かつ送信停止時間が「０」の場合には、輻輳が発生する状態が回避されたと予測して、出力を許可することを出力制御部８１に通知する。また、輻輳予測部７１は、計時機能によって送信停止時間が経過したことが通知された場合にも、輻輳が発生する状態が回避されたと予測して、出力を許可することを出力制御部８１に通知する。
【００２３】
出力制御部８１は、輻輳予測部７１から出力を禁止する通知を受けた場合、出力禁止通知を出力キュー６１に出力するとともに、出力キュー６１への転送禁止通知をフレーム解析部５に出力する。なお、転送禁止通知には、転送を禁止するフロー種別が含まれている。また、出力制御部８１は、輻輳予測部７１から出力を許可する通知を受けた場合、出力キュー６１に出力許可通知を出力するとともに、出力キュー６１への転送許可通知をフレーム解析部５に出力する。
【００２４】
出力キュー６１は、フレーム解析部５から入力されるアドレスを保持して、保持したアドレスに保持されているフレームをフレームバッファ４から読み出して、ポート２１に出力する。また、出力キュー６１は、ポーズフレームによって行われる予測輻輳制御とは異なる輻輳制御、たとえば、フレームの優先度によって出力キュー６１に蓄積されているフレームが格納されているアドレスの数が予め定められた閾値を超えた場合（出力キュー６１の長さの制限を超えた場合）には、優先度の低いフレームを廃棄するなどの一般的な輻輳制御の機能を備えている。
【００２５】
フロー制御検出部３１とフロー制御検出部３２、輻輳予測部７１と輻輳予測部７２、出力制御部８１と出力制御部８２、および出力キュー６１と出力キュー６２は、それぞれ同じ機能を備えているので、重複する説明は省略する。
【００２６】
フレームバッファ４は、ポート２１，２２から入力されたポーズフレームとは異なるフレームを格納するとともに、フレームを格納したアドレスをフレーム解析部５に通知する。
【００２７】
フレーム解析部５は、フロー制御検出部３１，３２から入力されたフレームを解析して、出力制御部８１，８２から入力される転送禁止通知または転送許可通知に基づいて、フレームバッファ４に格納されているフレームを廃棄するか否かを決定する。具体的には、フレームが格納されているフレームバッファ４のアドレスを開放することでフレームを廃棄する。
【００２８】
つぎに、図３〜図５のフローチャートを参照して、この発明における実施の形態１のフレーム転送装置の動作を説明する。ポート２１，２２からフレームが入力されると、ポート２１，２２に対応したフロー制御検出部３１，３２は、入力されたフレームがポーズフレームであるか否かを判定する。具体的には、フロー制御検出部３１，３２は、ポート２１，２２から入力されたフレームのフレームヘッダ１１とフレームトレイラ１３とを解析して、ポーズフレームであるか否かを判定する。入力されたフレームがポーズフレームである場合（図３のステップＳ１００，Ｙｅｓ）、フロー制御検出部３１，３２は、輻輳予測処理を実行する（図３のステップＳ１１０）。
【００２９】
ここで、ポート２１からポーズフレームが入力された場合を例に挙げて、図４のフローチャートを参照して、フレーム転送装置における輻輳予測処理の動作を説明する。フロー制御検出部３１は、ポート２１から入力されたフレームがポーズフレームであると判定すると、ポーズフレーム内のポーズコマンド１４に含まれる送信停止時間とフロー制御受信とを輻輳予測部７１に通知する（図４のステップＳ２００）。ポーズフレームは送信を一時停止するためのフレームであり、転送する必要のないフレームであるので、フロー制御検出部３１は、ポーズフレームを廃棄する（図４のステップＳ２１０）。
【００３０】
輻輳予測部７１は、通知された送信停止時間とフロー制御受信とに基づいて輻輳が発生するか否かを予測する。具体的には、輻輳予測部７１は、通知された送信停止時間が「０」であるか否かを判定する（図４のステップＳ２２０）。送信停止時間が「０」ではない場合、輻輳予測部７１は、輻輳が発生すると予測して、ポート２１へのフレームの出力を禁止することを出力制御部８１に通知する（図４のステップＳ２３０）。また、輻輳予測部７１は、フレーム転送装置内の計時機能によって送信停止時間の測定を開始する（図４のステップＳ２４０）。
【００３１】
出力制御部８１は、出力禁止通知を出力キュー６１に出力するとともに、転送禁止通知をフレーム解析部５に出力する（図４のステップＳ２５０）。
【００３２】
一方、送信停止時間が「０」である場合、輻輳予測部７１は、輻輳が発生する状態が回避されたと予測して、ポート２１へのフレームの出力を許可することを出力制御部８１に通知する（図４のステップＳ２６０）。また、輻輳予測部７１は、計時機能を停止して、送信停止時間の測定を終了する（図４のステップＳ２７０）。
【００３３】
出力制御部８１は、出力許可通知を出力キュー６１に出力するとともに、転送許可通知をフレーム解析部５に出力する（図４のステップＳ２８０）。
【００３４】
なお、ここではポート２１から入力されたフレームがポーズフレームである場合を例に挙げて輻輳予測処理の動作を説明したが、ポート２２から入力されたフレームがポーズフレームである場合は、ポート２２に対応するポート処理部９２によって上述した図４のフローチャートに示した輻輳予測処理が行われる。
【００３５】
図３に戻って、入力されたフレームがポーズフレームではない場合（図３のステップＳ１００，Ｎｏ）、フロー制御検出部３１，３２は、送信処理を実行する（図３のステップＳ１２０）。
【００３６】
ポート２１から入力されたフレームがポーズフレームではない場合を例に挙げて、図５のフローチャートを参照して、送信処理の動作を説明する。フロー制御検出部３１は、ポート２１から入力されたフレームがポーズフレームではないと判定すると、入力されたフレームをフレームバッファ４に格納するとともに、入力されたフレームをフレーム解析部５に出力する（図５のステップＳ３００）。フレームバッファ４は、フレームを格納したアドレスをフレーム解析部５に通知する（図５のステップＳ３１０）。
【００３７】
フレーム解析部５は、フロー制御検出部３１から入力されたフレームのフレームヘッダ１１およびフレームトレイラ１３に基づいて入力されたフレームが正常であるか否かを判定する。入力されたフレームに異常があると判定した場合には、フレーム解析部５は、判定したフレームを格納しているフレームバッファ４のアドレスを開放して（別のフレームを格納可能としてフレームを廃棄する）、処理を終了する。
【００３８】
入力されたフレームが正常であると判定した場合には、フレームのフレームヘッダ１１を解析して、フレームのフロー種別および宛先ポートを抽出する。フレーム解析部５は、抽出した宛先ポートからフレームを出力するべき出力キュー６を決定する（図５のステップＳ３２０）。フレーム解析部５は、たとえば、抽出した宛先ポートがポート２１を示している場合にはポート２１に対応する出力キュー６１にフレームを出力することを決定し、抽出した宛先ポートがポート２２を示している場合にはポート２２に対応する出力キュー６２にフレームを出力することを決定する。
【００３９】
フレーム解析部５は、抽出したフロー種別および決定した出力キューに基づいて予測輻輳制御の対象となるフレームであるか否かを判定して、フレームを廃棄するか否かを決定する（図５のステップＳ３３０）。具体的には、フレーム解析部５は、抽出したフロー種別が出力禁止通知に含まれているフロー種別であって、かつ決定した出力キューが出力を禁止されているか否かを判定する。抽出したフロー種別が出力禁止通知に含まれるフロー種別であって、かつ決定した出力キューが出力を禁止されている場合、すなわち、予測輻輳制御の対象となるフレームであると判定した場合、フレーム解析部５は、判定したフレームを格納しているフレームバッファ４のアドレスを開放して、処理を終了する（図５のステップＳ３４０）。たとえば、出力キュー６１にフレームを出力することを決定した場合、フレーム解析部５は、出力キュー６１へのフレームの転送が禁止されているか否かを判定する。出力キュー６１へのフレームの転送が禁止されている場合には、フレーム種別に基づいて処理中のフレームが予測輻輳制御の対象となるフレームであるか否かを判定する。そして、予測輻輳制御の対象となるフレームである場合には、このフレームを格納しているフレームバッファ４のアドレスを開放する。また、出力キュー６２にフレームを出力することを決定した場合には、出力キュー６２へのフレームの転送が禁止されていて、かつ処理中のフレームが予測輻輳制御の対象となるフレームであると判定した場合、フレーム解析部５は、このフレームを格納しているフレームバッファ４のアドレスを開放する。
【００４０】
抽出したフロー種別が出力禁止通知に含まれるフロー種別ではない場合、または決定した出力キューが出力を許可されている場合、すなわち予測輻輳制御の対象外のフレームであると判定した場合、フレーム解析部５は、判定したフレームを格納しているフレームバッファ４のアドレスを決定した出力キューに通知する（図５のステップＳ３５０）。たとえば、出力キュー６１にフレームを出力することを決定した場合には、出力キュー６１へのフレームの転送が許可されているか、または出力キュー６１へのフレームの転送は禁止されているが処理中のフレームが予測輻輳制御の対象外のフレームであると判断した場合に、フレーム解析部５は、フレームを格納しているフレームバッファ４のアドレスを出力キュー６１に通知する。また、出力キュー６２にフレームを出力することを決定した場合には、出力キュー６２へのフレームの転送が許可されているか、または出力キュー６２へのフレームの転送は禁止されているが処理中のフレームが予測輻輳制御の対象外のフレームであると判定した場合に、フレーム解析部５は、フレームを格納しているフレームバッファ４のアドレスを出力キュー６２に通知する。出力キュー６１は、予測輻輳制御とは異なる輻輳制御、たとえば、フレームの優先度によって出力キュー６１に蓄積されているフレームが格納されているアドレスの数が予め定められた閾値を超えた場合（出力キュー６１の長さの制限を超えた場合）には、優先度の低いフレームを廃棄するなどの一般的な輻輳制御が行われる。そのため、出力キュー６１に蓄積されているアドレスが出力キュー６１の長さの制限による輻輳制御が行われて、フレーム解析部５から通知されたアドレスのフレームが廃棄されることがある。
【００４１】
出力キュー６１は、入力されたアドレスに格納されているフレームを読み出して、読み出したフレームをポート２１を介してネットワークに送信して、処理を終了する（図５のステップＳ３６０）。
【００４２】
このようにこの実施の形態１では、ポーズフレームを受信した場合には、指定された送信停止時間の間に入力されたフレームのうち、ポーズフレームを受信したポートから出力すべきフレームを廃棄するようにしているので、フレームバッファの使用量を抑制することができるとともに、輻輳解除時に出力するフレームの出力遅延を抑えることができる。
【００４３】
また、この実施の形態１では、フローを識別してフレームを廃棄するか否かを決定するようにしているので、遅延時間を問題としないフローにフレームバッファの使用量を多く割り当てることができる。
【００４４】
実施の形態２．
図６および図７を用いて、この発明における実施の形態２を説明する。実施の形態１では、ポーズフレームによって予測輻輳制御を行った。この実施の形態２では、ポーズフレームを受信した時の出力キューに蓄積されているフレーム長の合計（滞留フレーム長）を考慮して、予測輻輳制御を行うものである。
【００４５】
図６は、この発明における実施の形態２のフレーム転送装置の構成を示すブロック図である。この発明における実施の形態２のフレーム転送装置は、図１に示した実施の形態１のフレーム転送装置の輻輳予測部７１，７２の代わりに輻輳予測部７１ａ，７２ａを備え、出力キュー６１，６２の代わりに出力キュー６１ａ，６２ａを備えている。図１に示した実施の形態１のフレーム転送装置と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
【００４６】
出力キュー６１ａと出力キュー６２ａは、同じ機能を備えている。出力キュー６１ａは、実施の形態１の出力キュー６１の機能に加えて、出力キュー６１ａに蓄積されている滞留フレーム長を輻輳予測部７１ａに通知する機能を備えている。
【００４７】
輻輳予測部７１ａと輻輳予測部７２ａは、同じ機能を備えている。輻輳予測部７１ａは、フロー制御検出部３１から通知される送信停止時間およびフロー制御受信と、出力キュー６１ａから通知される滞留フレーム長とに基づいて、輻輳が発生するか否かを予測する。輻輳予測部７１ａは、フロー制御受信が通知されて、かつ送信停止時間が「０」でない場合であって、かつ出力キュー６１ａから通知された滞留フレーム長が予め定められた輻輳予測用閾値を超えている場合には、輻輳が発生すると予測して、ポート２１へのフレームの出力を禁止することを出力制御部８１に通知するとともに、フレーム転送装置内の計時機能によって送信停止時間の測定を開始する。輻輳予測部７１ａは、フロー制御受信が通知されて、かつ送信停止時間が「０」の場合には、輻輳が発生する状態が回避されたと予測して、出力を許可することを出力制御部８１に通知する。また、輻輳予測部７１ａは、計時機能によって送信停止時間が経過したことが通知された場合にも、輻輳が発生する状態が回避されたと予測して、出力を許可することを出力制御部８１に通知する。
【００４８】
つぎに、この発明における実施の形態２のフレーム転送装置の動作を説明する。なお、フロー制御検出部３１，３２が、それぞれポート２１，２２から入力されたフレームがポーズフレームであるか否かを判定して、送信処理を行うのか、予測輻輳処理を行うのかを決定する動作と、送信処理の動作については、図３および図５のフローチャートを参照して実施の形態１で説明した動作と同じ動作となるので、ここではその説明を省略する。
【００４９】
図７のフローチャートを参照して、この発明における実施の形態２のフレーム転送装置の予測輻輳処理の動作を説明する。なお、フロー制御検出部３１，３２がポーズフレーム内の送信停止時間とフロー制御受信とを輻輳予測部７１ａ，７２ａに通知するとともにポーズフレームを廃棄するステップＳ４００，Ｓ４１０と、輻輳予測部７１ａ，７２ａが輻輳の発生を予測して出力を禁止することを出力制御部８１，８２に通知するとともに送信停止時間の計測を開始し、出力制御部８１，８２が出力禁止通知を出力キュー６１ａ，６２ａに出力するとともに転送禁止通知をフレーム解析部５に出力するステップＳ４４０〜４６０と、輻輳予測部７１ａ，７２ａが輻輳の発生が回避されたと判断して出力を許可することを出力制御部８１，８２に通知するとともに送信停止時間の計測を終了し、出力制御部８１，８２が出力許可通知を出力キュー６１ａ，６２ａに出力するとともに転送許可通知をフレーム解析部５に出力するステップＳ４７０〜Ｓ４９０については、実施の形態１の動作と同じであるので、ここではその詳細な説明を省略する。
【００５０】
フロー制御検出部３１，３２が入力されたポーズフレーム内の送信停止時間とフロー制御受信とを輻輳予測部７１，７２に通知し、ポーズフレームを廃棄する（ステップＳ４００，Ｓ４１０）。
【００５１】
輻輳予測部７１ａ，７２ａは、通知された送信停止時間とフロー制御受信とに基づいて輻輳が発生するか否かを予測する。具体的には、輻輳予測部７１ａ，７２ａは、通知された送信停止時間が「０」であるか否かを判定する（ステップＳ４２０）。通知された送信停止時間が「０」ではない場合、輻輳予測部７１ａ，７２ａは、出力キュー６１ａ，６２ａから通知された滞留フレーム長と輻輳予測用閾値とを比較する（ステップＳ４３０）。比較の結果、出力キュー６１ａから通知された滞留フレーム長が輻輳予測用閾値を超えていた場合には、輻輳予測部７１ａは、出力キュー６１ａに輻輳が発生すると予測し、出力キュー６２ａから通知された滞留フレーム長が輻輳予測用閾値を超えていた場合には、輻輳予測部７は、出力キュー６２ａに輻輳が発生すると予測する。輻輳が発生すると予測すると、輻輳予測部７１ａ，７２ａは、出力キュー６１，６２へのフレームの出力を禁止することを出力制御部８１，８２に通知するとともに送信停止時間の測定を開始し、出力制御部８１，８２は出力禁止通知を出力キュー６１ａ，６２ａに出力するとともに転送禁止通知をフレーム解析部５に出力する（ステップＳ４４０〜Ｓ４６０）。
【００５２】
比較の結果、出力キュー６１ａから通知された滞留フレーム長が輻輳予測用閾値より小さい場合には、輻輳予測部７１ａは、出力キュー６１ａに余裕があり輻輳は発生しないと予測して処理を終了し、出力キュー６２ａから通知された滞留フレーム長が輻輳予測用閾値より小さい場合には、輻輳予測部７２ａは、出力キュー６２ａに余裕があり輻輳は発生しないと予測して処理を終了する。
【００５３】
一方、送信停止時間が「０」である場合、輻輳予測部７１ａ，７２ａは、輻輳が発生する状態が回避されたと予測して、出力を許可することを出力制御部８１，８２に通知するとともに送信停止時間の計測を終了し、出力制御部８１，８２が出力許可通知を出力キュー６１ａ，６２ａに出力するとともに転送許可通知をフレーム解析部５に出力する（ステップＳ４７０〜Ｓ４９０）。
【００５４】
このようにこの実施の形態２では、ポーズフレームを受信した場合には、その時点でのキューに蓄積されているフレーム長を考慮した上で、ポーズフレームを受信したポートから出力すべきフレームを廃棄するようにしているので、フレームバッファの使用量を抑制することができるとともに、輻輳解除時に出力するフレームの出力遅延を抑えることができる。
【００５５】
また、この実施の形態２では、フローを識別してフレームを廃棄するか否かを決定するようにしているので、遅延時間を問題としないフローにフレームバッファの使用量を多く割り当てることができる。
【００５６】
なお、この実施の形態２では、輻輳予測部７１ａと輻輳予測部７２ａとで、同じ輻輳予測用閾値を用いて説明したが、輻輳予測部７１ａ，７２ａとで異なる値の輻輳予測用閾値を用いるようにしてもよい。
【００５７】
実施の形態３．
図８を用いて、この発明における実施の形態３を説明する。実施の形態２では、ポーズフレームを受信した時の出力キューに蓄積されているフレーム長の合計（滞留フレーム長）を考慮して、予測輻輳制御を行うようにした。この実施の形態３では、ポーズフレームを受信した時の出力キューの入力レートおよび滞留フレーム長に基づいて到着予測フレーム長を算出して、この到着予測フレーム長を考慮して予測輻輳制御を行うものである。
【００５８】
図８は、この発明における実施の形態３のフレーム転送装置の構成を示すブロック図である。この発明における実施の形態３のフレーム転送装置は、図１に示した実施の形態１のフレーム転送装置の輻輳予測部７１，７２の代わりに輻輳予測部７１ｂ，７２ｂを備え、出力制御部８１，８２の代わりに出力制御部８１ａ，８２ａを備えるとともに、ポート２１に出力するフレームが格納されているフレームバッファ４のアドレスを蓄積する複数（この場合は２つ）の出力キュー６１１，６１２と、ポート２２に出力するフレームが格納されているフレームバッファ４のアドレスを蓄積する複数（この場合は２つ）の出力キュー６２１，６２２とを備えている。図１に示した実施の形態１のフレーム転送装置と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
【００５９】
出力キュー６１１，６１２は、ポート２１に出力するフレームが格納されているフレームバッファ４のアドレスを蓄積する。そして、フレームバッファ４に格納されているフレームの中から、蓄積したアドレスに格納されているフレームを読み出して、読み出したフレームをポート２１に出力する。なお、同時刻においては出力キュー６１１と出力キュー６１２のどちらか一方がポート２１にフレームを出力する。また、出力キュー６１１，６１２は、それぞれに一定時間内に蓄積しているアドレス内のフレーム長から入力レートを計測するとともに、滞留フレーム長を算出して、計測した入力レートおよび算出滞留フレーム長を輻輳予測部７１ｂに通知する。また、出力キュー６１１，６１２は、それぞれ予測輻輳制御を受け付けるか否かを設定することができる。
【００６０】
出力キュー６２１，６２２は、ポート２２に出力するフレームが格納されているフレームバッファ４のアドレスを蓄積する。そして、フレームバッファ４に格納されているフレームの中から、蓄積したアドレスに格納されているフレームを読み出して、読み出したフレームをポート２２に出力する。なお、同時刻においては出力キュー６２１と出力キュー６２２のどちらか一方がポート２２にフレームを出力する。また、出力キュー６２１，６２２は、それぞれに一定時間内に蓄積しているアドレス内のフレーム長から入力レートを計測するとともに、滞留フレーム長を算出して、計測した入力レートおよび算出滞留フレーム長を輻輳予測部７１ｂに通知する。また、出力キュー６２１，６２２は、それぞれ予測輻輳制御を受け付けるか否かを設定することができる。
【００６１】
出力制御部８１ａは、出力キュー６１１，６１２のスケジューリングを行い、輻輳予測部７１ｂから出力を禁止する通知を受けた場合、出力禁止通知を出力キュー６１１，６１２に出力する。また、出力制御部８１ａは、輻輳予測部７１ｂから出力を許可する通知を受けた場合、出力キュー６１１，６１２に出力許可通知を出力する。
【００６２】
出力制御部８２ａは、出力キュー６２１，６２２のスケジューリングを行い、輻輳予測部７２ｂから出力を禁止する通知を受けた場合、出力禁止通知を出力キュー６２１，６２２に出力する。また、出力制御部８２ａは、輻輳予測部７２ｂから出力を許可する通知を受けた場合、出力キュー６２１，６２２に出力許可通知を出力する。
【００６３】
輻輳予測部７１ｂと輻輳予測部７２ｂは同じ機能を備えている。輻輳予測部７１ｂは、フロー制御検出部３１から通知される送信停止時間およびフロー制御受信と、出力キュー６１１，６１２からそれぞれ通知される滞留フレーム長および入力レートとに基づいて、輻輳が発生するか否かを予測する。
【００６４】
輻輳予測部７１ｂは、フロー制御受信通知が通知されて、かつ送信停止時間が「０」でない場合、出力キュー６１１，６１２から通知されたそれぞれの入力レートおよび滞留フレーム長に基づいて到着予想フレーム長を算出する。到着予想フレーム長は、
到着予想フレーム長  ＝  入力レート  ×  送信停止時間      ・・・  （式１）
によって算出される。
【００６５】
輻輳予測部７１ｂは、（式１）を用いて出力キュー６１１，６１２のそれぞれの到着予想フレーム長を算出して、算出した到着予想フレーム長が予め定められた輻輳予測用閾値を超えている場合には、輻輳が発生すると予測して、到着予想フレーム長が輻輳予測用閾値を超えた出力キュー６１１，６１２からポート２１へのフレームの出力を禁止することを出力制御部８１ａに通知するとともに、フレーム転送装置内の計時機能によって送信停止時間の計測を開始する。
【００６６】
輻輳予測部７１ｂは、フロー制御受信が通知されて、かつ送信停止時間が「０」の場合、または、出力キュー６１１，６１２から一定時間ごとに通知される入力レートおよび滞留フレーム長に基づいて（式１）によって算出した到着予想フレーム長が予め定められた予測輻輳解除用閾値よりも小さくなった場合には、輻輳が発生する状態が回避されたと予測して、出力キュー６１１，６１２からポート２１へのフレームの出力を許可することを出力制御部８１ａに通知する。
【００６７】
また、輻輳予測部７１ｂは、計時機能によって送信停止時間が経過したことが通知された場合にも、輻輳が発生する状態が回避されたと予測して、出力キュー６１１，６１２からポート２１へのフレームの出力を許可することを出力制御部８１ａに通知する。
【００６８】
なお、予測輻輳解除用閾値は、予測輻輳用閾値と同じ値であっても、異なる値であってもよいが、輻輳予測と輻輳解除とが頻繁に発生することを抑制するためには、予測輻輳解除用閾値の値を予測輻輳用閾値よりも小さい値に設定することが好ましい。
【００６９】
フレーム解析部５は、フロー制御検出部３１，３２から入力されたフレームを解析して、フレームの宛先ポートに対応する出力キュー６１１，６１２，６２１，６２２にフレームを出力する機能のみを備え、フレームの廃棄処理は行わない。
【００７０】
つぎに、この発明における実施の形態３のフレーム転送装置の動作を説明する。なお、この発明における実施の形態３のフレーム転送装置の輻輳予測処理の動作は、図７のフローチャートで説明した実施の形態２のフレーム転送装置の輻輳予測処理の動作と、輻輳が発生したか否か予測判定、および輻輳の発生が回避されたかの判定が異なるだけであるので、判定に関する動作のみを説明する。なお、出力キュー６１１，６２１には予測輻輳制御を受け付けることが設定されており、一定時間毎に入力レートおよび滞留フレーム長を輻輳予測部７１ｂ，７２ｂに通知しており、出力キュー６１２，６２２には予測輻輳制御を受け付けないことが設定されているものとする。
【００７１】
ポーズフレームが入力されてフロー制御検出部３からフロー制御受信と送信停止時間の通知を受けると、輻輳予測部７１ｂ，７２ｂは、それぞれ輻輳が発生するか否かを予測する。
【００７２】
通知された送信停止時間が「０」ではない場合、輻輳予測部７１ｂ，７２ｂは、出力キュー６１１，６２１から通知された入力レートおよび滞留フレーム長に基づいて（式１）によって滞留予想フレーム長を算出する。算出した滞留予想フレーム長が輻輳予測用閾値を超えている場合、輻輳予測部７１ｂ，７２ｂは、出力キュー６１１，６２１からポート２１，２２へのフレームの出力を禁止することを出力制御部８１ａ，８２ａに通知するとともに、フレーム転送装置内の計時機能によって送信停止時間の計測を開始する。出力制御部８１ａ，８２ａは、出力禁止通知を出力キュー６１１，６２１に出力するとともに、出力キュー６１１，６２１への転送禁止通知をフレーム解析部５に出力する。
【００７３】
算出した滞留予想フレーム長が輻輳予測用閾値よりも小さい場合、輻輳予測部７１ｂ，７２ｂは、輻輳は発生しないと予測して、処理を終了する。
【００７４】
通知された送信停止時間が「０」の場合、輻輳予測部７１ｂ，７２ｂは、輻輳が発生する状態は回避されたと予測して、出力キュー６１１，６２１からポート２１，２２へのフレームの出力を許可することを出力制御部８１ａ，８２ａに通知するとともに送信停止時間の計測を終了する。出力制御部８１ａ，８２ａは、出力許可通知を出力キュー６１１，６２１に出力するとともに出力キュー６１１，６２１への転送許可通知をフレーム解析部５に出力する。
【００７５】
一方、輻輳予測部７１ｂ，７２ｂには、一定時間ごとに出力キュー６１１，６２１から入力レートおよび滞留フレーム長が通知されている。輻輳予測部７１ｂ，７２ｂは、出力キュー６１１，６２１へのフレームの出力を禁止している場合、入力レートおよび滞留フレーム長が通知される毎に、（式１）を用いて滞留予想フレーム長を算出する。そして、算出した滞留予想フレーム長が輻輳予測解除用閾値より小さくなった場合、輻輳予測部７１ｂ，７２ｂは、輻輳が発生する状態は回避されたと予測して、出力キュー６１１，６２１からポート２１，２２へのフレームの出力を許可することを出力制御部８１ａ，８２ａに通知するとともに送信停止時間の計測を終了する。出力制御部８１ａ，８２ａは、出力許可通知を出力キュー６１１，６２１に出力するとともに出力キュー６１１，６２１への転送許可通知をフレーム解析部５に出力する。
【００７６】
つぎに、この発明における実施の形態３のフレーム転送装置の送信処理の動作を説明する。フロー制御検出部３１は、ポート２１から入力されたフレームがポーズフレームではないと判定すると、入力されたフレームをフレームバッファ４に格納するとともに、入力されたフレームをフレーム解析部５に出力する。フレームバッファ４は、フレームを格納したアドレスをフレーム解析部５に通知する。
【００７７】
フレーム解析部５は、フレームの宛先ポートからフレームを出力する出力キューを決定して、決定した出力キューにフレームを出力する。
【００７８】
フレーム解析部５からフレームを格納したフレームバッファ４のアドレスが入力されると、出力キュー６１１，６１２，６２１，６２２は、出力禁止通知を受けているのか出力許可通知を受けているのかを判定して、入力されたアドレスを開放してフレームを廃棄するか否かを決定する。出力キュー６１１，６２１は、輻輳予測制御を受け付ける設定がなされている。出力禁止通知を受けている場合、出力キュー６１１，６１２は、入力されたアドレスを開放してフレームを廃棄するとともに、入力されたアドレスを蓄積せずに廃棄する。出力許可通知を受けている場合、出力キュー６１１，６１２は、入力されたアドレスを蓄積し、出力制御部８１ａ，８２ａの指示によって蓄積したアドレスに格納されているフレームを読み出して、読み出したフレームをポート２１，２２を介してネットワークに送信する。出力許可通知を受けている場合、出力キュー６１１，６１２は、輻輳予測制御とは異なる輻輳制御によって制御される。
【００７９】
一方、出力キュー６１２，６２２は、輻輳予測制御を受け付けない設定がなされているので、輻輳予測制御とは異なる輻輳制御によって制御され、出力制御部８１ａ，８２ａの指示によって蓄積したアドレスに格納されているフレームを読み出して、読み出したフレームをポート２１，２２を介してネットワークに送信する。
【００８０】
このようにこの実施の形態３では、ポーズフレームを受信した場合に、送信停止時間内に入力される滞留予測フレーム長を算出して、この算出した滞留予測フレーム長を考慮して、指定された送信停止時間の間に入力されたフレームのうち、ポーズフレームを受信したポートから出力すべきフレームを廃棄するようにしているので、フレームバッファの使用量を抑制することができるとともに、輻輳解除時に出力するフレームの出力遅延を抑えることができる。
【００８１】
また、この実施の形態３では、フローを識別してフレームを廃棄するか否かを決定するようにしているので、遅延時間を問題としないフローにフレームバッファの使用量を多く割り当てることができる。
【産業上の利用可能性】
【００８２】
以上のように、この発明にかかるフレーム転送装置は、複数のポートを備えてリアルタイムを要求されるフレームと低損失性を要求されるフレームとの転送に有効であり、特に、ポーズフレームによって出力が制御されるプロトコルによるフレームの転送に適している。
【図面の簡単な説明】
【００８３】
【図１】この発明における実施の形態１のフレーム転送装置の構成を示すブロック図である。
【図２】この発明における実施の形態１のフレーム転送装置が扱うポーズフレームのフォーマットを示す図である。
【図３】この発明における実施の形態１のフレーム転送装置の動作を説明するためのフローチャートである。
【図４】この発明における実施の形態１のフレーム転送装置の動作を説明するためのフローチャートである。
【図５】この発明における実施の形態１のフレーム転送装置の動作を説明するためのフローチャートである。
【図６】この発明における実施の形態２のフレーム転送装置の構成を示すブロック図である。
【図７】この発明における実施の形態２のフレーム転送装置の動作を説明するためのフローチャートである。
【図８】この発明における実施の形態３のフレーム転送装置の構成を示すブロック図である。
【符号の説明】
【００８４】
４  フレームバッファ
５  フレーム解析部
１１  フレームヘッダ
１２  データ
１３  フレームトレイラ
１４  ポーズコマンド
２１，２２  ポート
３１，３２  フロー制御検出部
６１，６１ａ，６２，６２ａ，６１１，６１２，６２１，６２２  出力キュー
７１，７１ａ，７１ｂ，７２，７２ａ，７２ｂ  輻輳予測部
８１，８１ａ，８２，８２ａ  出力制御部
９１，９２  ポート処理部
【図１】
2005260839.tif 000003
【図２】
2005260839.tif 000004
【図３】
2005260839.tif 000005
【図４】
2005260839.tif 000006
【図５】
2005260839.tif 000007
【図６】
2005260839.tif 000008
【図７】
2005260839.tif 000009
【図８】
2005260839.tif 000010