(57)【要約】      （修正有）【課題】輻輳に関係しない通信がＰＡＵＳＥフレームにより停止されることを防ぐ中継装置、方法及びプログラムを提供する。【解決手段】中継装置であるスイッチ１ａは、中継装置に接続されている他の中継装置から、輻輳が発生した、他の中継装置の第１ポートの識別情報を受信した場合、未割り当ての第１の仮想出力キューの識別情報を、第１ポートの識別情報に関連付けて第１データ格納部１０３に格納する第１管理部１０１と、第１の仮想出力キューからのパケットの出力を停止する第２管理部１０５と、アドレスに関連付けて他の中継装置のポートの識別情報を格納する第２データ格納部１１を用いて、受信したパケットのうち、第１ポートの識別情報に関連付けられているアドレスを宛先とする第１のパケットを特定し、特定した当該第１のパケットを、第１の仮想出力キューにエンキューさせる第３管理部１０７とを有する。【選択図】図３
2018117196.tif 000002
【特許請求の範囲】
【請求項１】
中継装置であって、
前記中継装置に接続されている他の中継装置から、輻輳が発生した、前記他の中継装置の第１ポートの識別情報を受信した場合、未割り当ての第１の仮想出力キューの識別情報を、前記第１ポートの識別情報に関連付けて第１データ格納部に格納する第１管理部と、
前記第１の仮想出力キューからのパケットの出力を停止する第２管理部と、
アドレスに関連付けて前記他の中継装置のポートの識別情報を格納する第２データ格納部を用いて、受信したパケットのうち、前記第１ポートの識別情報に関連付けられているアドレスを宛先とする第１のパケットを特定し、特定した当該第１のパケットを、前記第１の仮想出力キューにエンキューさせる第３管理部と、
を有する中継装置。
【請求項２】
前記中継装置の第２ポートにおいて輻輳が発生した場合、前記第２ポートの識別情報を前記他の中継装置に送信する通信部
をさらに有する請求項１記載の中継装置。
【請求項３】
前記第２管理部は、
前記第１の仮想出力キューからのパケットの出力を再開後、前記第１の仮想出力キューが空になった場合、前記第１データ格納部に格納された前記第１の仮想出力キューの識別情報を、デフォルトの仮想出力キューの識別情報に変更する、
請求項１又は２記載の中継装置。
【請求項４】
前記第１管理部は、
前記他の中継装置とは異なる他の第２中継装置又は他の端末から前記他の中継装置が第２のパケットを受信した第３ポートの識別情報と、前記第２のパケットとを、前記他の中継装置から受信した場合、前記第３ポートの識別情報を、前記第２のパケットの送信元のアドレスに関連付けて前記第２データ格納部に格納する、
請求項１乃至３のいずれか１つ記載の中継装置。
【請求項５】
前記第３管理部は、
前記第１のパケットを受信した第４ポートの識別情報を含む外部ヘッダを前記第１のパケットに付加し、当該外部ヘッダが付加された前記第１のパケットを前記他の中継装置に送信する、
請求項１乃至４のいずれか１つ記載の中継装置。
【請求項６】
他の中継装置から、輻輳が発生した、前記他の中継装置の第１ポートの識別情報を受信した場合、未割り当ての第１の仮想出力キューの識別情報を、前記第１ポートの識別情報に関連付けて第１データ格納部に格納し、
前記第１の仮想出力キューからのパケットの出力を停止し、
アドレスに関連付けて前記他の中継装置のポートの識別情報を格納する第２データ格納部を用いて、受信したパケットのうち、前記第１ポートの識別情報に関連付けられているアドレスを宛先とする第１のパケットを特定し、特定した当該第１のパケットを、前記第１の仮想出力キューにエンキューさせる、
処理を中継装置が実行する中継方法。
【請求項７】
他の中継装置から、輻輳が発生した、前記他の中継装置の第１ポートの識別情報を受信した場合、未割り当ての第１の仮想出力キューの識別情報を、前記第１ポートの識別情報に関連付けて第１データ格納部に格納し、
前記第１の仮想出力キューからのパケットの出力を停止し、
アドレスに関連付けて前記他の中継装置のポートの識別情報を格納する第２データ格納部を用いて、受信したパケットのうち、前記第１ポートの識別情報に関連付けられているアドレスを宛先とする第１のパケットを特定し、特定した当該第１のパケットを、前記第１の仮想出力キューにエンキューさせる、
処理を中継装置に実行させる中継プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットの中継技術に関する。
【背景技術】
【０００２】
イーサネット（登録商標）のネットワークはパケットネットワークであり、バッファにより一時的な出力競合が緩和される。但し、競合状態が継続した場合には使用可能なバッファの量が減少し、バッファが枯渇するとパケットは廃棄される。
【０００３】
イーサネット上で実現される一般的なＴＣＰ／ＩＰ（Transmission Control Protocol／Internet Protocol）通信であれば、パケットの廃棄が発生したとしても端末側が再送することで通信を継続することができる。これに対し、ＦＣ（Fibre Channel）及びＲＤＭＡ（Remote Direct Memory Access）等の場合、パケットの廃棄が発生すると極端に転送性能が悪化するため、イーサネット上であってもロスレスで通信が行われることが好ましい。
【０００４】
ロスレス通信を実現するための技術として、ＰＡＵＳＥフレームの送信技術が知られている。図１を用いて、ＰＡＵＳＥフレームの送信について説明する。図１においては、スイッチＳＷ１のポート＃２において輻輳が発生しており、ポート＃２に対応するバッファの量が減少している。このとき、スイッチＳＷ１は、各ポートからＰＡＵＳＥフレームを送信する。ＰＡＵＳＥフレームを受信したスイッチＳＷ２乃至ＳＷ４は、ＰＡＵＳＥフレームにおいて指定された時間だけフレームの送信を停止する。
【０００５】
ＰＡＵＳＥフレームを利用することでロスレス通信を実現することができるが、スイッチＳＷ１は各ポートからＰＡＵＳＥを送信するため輻輳が伝搬する。また、輻輳に関係しないトラフィックをも止めてしまうという問題（ＨＯＬ（Head-Of-Line blocking）と呼ばれる）が発生することがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１４−５０２０８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、１つの側面では、輻輳に関係しない通信がＰＡＵＳＥフレームにより停止されることを防ぐための技術を提供することである。
【課題を解決するための手段】
【０００８】
一態様に係る中継装置は、中継装置に接続されている他の中継装置から、輻輳が発生した、他の中継装置の第１ポートの識別情報を受信した場合、未割り当ての第１の仮想出力キューの識別情報を、第１ポートの識別情報に関連付けて第１データ格納部に格納する第１管理部と、第１の仮想出力キューからのパケットの出力を停止する第２管理部と、アドレスに関連付けて他の中継装置のポートの識別情報を格納する第２データ格納部を用いて、受信したパケットのうち、第１ポートの識別情報に関連付けられているアドレスを宛先とする第１のパケットを特定し、特定した当該第１のパケットを、第１の仮想出力キューにエンキューさせる第３管理部とを有する。
【発明の効果】
【０００９】
１つの側面では、輻輳に関係しない通信がＰＡＵＳＥフレームにより停止されることを防げるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、ＰＡＵＳＥフレームの送信について説明するための図である。
【図２】図２は、本実施の形態のネットワーク構成を示す図である。
【図３】図３は、スイッチのブロック図である。
【図４】図４は、後段スイッチおよび後段出力ポートについて説明するための図である。
【図５】図５は、宛先テーブル格納部に格納される宛先テーブルの一例を示す図である。
【図６】図６は、キュー管理テーブル格納部に格納されるキュー管理テーブルの一例を示す図である。
【図７】図７は、ＶｏＱからの読み出しを制御する処理の処理フローを示す図である。
【図８】図８は、通常のＰＡＵＳＥ及びＰＦＣについて説明するための図である。
【図９】図９は、本実施の形態のＰＡＵＳＥフレームについて説明するための図である。
【図１０】図１０は、ＶｏＱへのエンキューについて説明するための図である。
【図１１】図１１は、ＶｏＱへのエンキューについて説明するための図である。
【図１２】図１２は、ＶｏＱからの読み出しの制御について説明するための図である。
【図１３】図１３は、ＶｏＱからの読み出しの制御について説明するための図である。
【図１４】図１４は、ＶｏＱからの読み出しの制御について説明するための図である。
【図１５】図１５は、ＶｏＱからの読み出しの制御について説明するための図である。
【図１６】図１６は、パケット受信時の処理の処理フローを示す図である。
【図１７】図１７は、第１の実施の形態における、後段出力ポートの学習の概要を示す図である。
【図１８】図１８は、外部ＭＡＣヘッダが付加されたパケットの構造を示す図である。
【図１９】図１９は、宛先ＭＡＣアドレス毎の役割について説明するための図である。
【図２０】図２０は、第２の実施の形態のシステム構成図を示す図である。
【図２１】図２１は、第３の実施の形態における、後段出力ポートの学習の概要を示す図である。
【図２２】図２２は、宛先テーブルとキュー管理テーブルとが統合されたテーブルを示す図である。
【図２３】図２３は、スイッチのハードウエア構成図である。
【発明を実施するための形態】
【００１１】
［実施の形態１］
図２に、本実施の形態のネットワーク構成を示す。本実施の形態のネットワークは、例えばイーサネットのネットワークであり、イーサネットスイッチである複数のスイッチ１ａ乃至１ｈが配置されている。スイッチ１ａ乃至１ｃ及びスイッチ１ｆ乃至１ｈは、図示されていない他の装置（例えばイーサネットスイッチ又は端末装置等）に接続されてもよい。
【００１２】
図３に、スイッチ１ａのブロック図を示す。スイッチ１ａは、管理部１０と、宛先テーブル格納部１１と、スイッチングモジュールであるスイッチ部１２と、物理ポートであるポート１３ａ及び１３ｂとを有する。ポート１３ａ及び１３ｂの各々には、複数（例えば８つ）のＶｏＱ（Virtual Output Queue）が設けられる。スイッチ部１２は、宛先テーブル格納部１１に格納されているデータ及び管理部１０から受け取ったデータに基づき、パケットを中継する処理を実行する。なお、スイッチ１ｂ乃至１ｈのブロック構成はスイッチ１ａのブロック構成と同じであるので説明を省略する。
【００１３】
管理部１０は、ポーズ管理部１０１と、キュー管理テーブル格納部１０３と、キュー管理部１０５と、アドレス解決部１０７とを有する。ポーズ管理部１０１、キュー管理部１０５及びアドレス解決部１０７は、図２３におけるメモリ２６０１にロードされたプログラムがＣＰＵ（Central Processing Unit）２６０３により実行されることで実現される。キュー管理テーブル格納部１０３は、図２３におけるメモリ２６０１又はＨＤＤ（Hard Disk Drive）２６０５に設けられる。
【００１４】
ポーズ管理部１０１は、スイッチ１ａが他のスイッチから受信したＰＡＵＳＥフレームに含まれる情報に基づき、キュー管理テーブル格納部１０３に格納されているデータを更新する。キュー管理部１０５は、ＶｏＱからのパケットの出力を制御する。アドレス解決部１０７は、パケットの宛先アドレスと宛先テーブル格納部１１に格納されているデータとキュー管理テーブル格納部１０３に格納されているデータとに基づきパケットの出力先のＶｏＱを特定する。そして、アドレス解決部１０７は、特定したＶｏＱの識別情報をスイッチ部１２に通知する。
【００１５】
なお、本実施の形態においては、図４に示すように、或るスイッチから見て隣接するスイッチであってパケットの送信先になる可能性があるスイッチのことを後段スイッチと呼ぶ。そして、後段スイッチの出力ポートのことを後段出力ポートと呼ぶ。
【００１６】
図５に、宛先テーブル格納部１１に格納される宛先テーブルの一例を示す。図５の例では、宛先ＭＡＣアドレスと、出力ポートの識別情報と、後段出力ポートの識別情報とが格納されている。このように、本実施の形態においては、宛先ＭＡＣアドレスから、パケットを受信したスイッチの出力ポートだけではなくそのパケットを次に受け取るスイッチ（すなわち後段スイッチ）の出力ポートも特定される。
【００１７】
図６に、キュー管理テーブル格納部１０３に格納されるキュー管理テーブルの一例を示す。図６の例では、出力ポートの識別情報および後段出力ポートの識別情報と、パケットがエンキューされるＶｏＱの識別情報とが格納される。本実施の形態においては、デフォルトのＶｏＱの識別情報を「０」とする。
【００１８】
次に、図７乃至図１１を用いて、ＶｏＱからの読み出しを制御する処理について説明する。
【００１９】
まず、ポーズ管理部１０１は、本実施の形態のＰＡＵＳＥフレームを後段スイッチから受信したか判定する（図７：ステップＳ１）。
【００２０】
図８を用いて、通常のＰＡＵＳＥ及びＰＦＣ（Priority Flow Control）について説明する。通常のＰＡＵＳＥはＩＥＥＥ（Institute of Electrical and Electronics Engineers）８０２．３Ｘに規定されており、輻輳を検出したスイッチが当該スイッチのそれぞれのポートからＰＡＵＳＥフレームを出力する。ＰＦＣはＩＥＥＥ８０２．１Ｑｂｂに規定されており、ＰＦＣのフレームは、図８に示すように、１バイトのClass-Enable-Vectorフィールドと、８つのクラスのそれぞれに対応するTimeフィールドとを有する。Class-Enable-Vectorフィールドには、８つのクラスのうちどのクラスについてＰＡＵＳＥフレームを送信するかを示す情報が書き込まれる。Timeフィールドには、送信を停止する時間の情報が書き込まれる。
【００２１】
本実施の形態のＰＡＵＳＥフレームは、上記ＰＦＣのフレームの一部のフィールドが変更されたフレームに相当する。具体的には、図９に示すように、Class-Enable-Vectorフィールドは、後段出力ポートの番号を書き込むためのフィールドとして利用され、８つのTimeフィールドのうち所定のTimeフィールドに、送信を停止する時間の情報が書き込まれる。図９の例は、１８番のポートへの出力を６５５３６＊５１２（ナノ秒）だけ停止することを表す。
【００２２】
図７の説明に戻り、本実施の形態のＰＡＵＳＥフレームを後段スイッチから受信していない場合（ステップＳ１：Ｎｏルート）、ポーズ管理部１０１は、いずれかのＶｏＱの読み出しを制御中である（すなわち、いずれかのＶｏＱからの出力が停止されている）か判定する（ステップＳ３）。
【００２３】
いずれのＶｏＱの読み出しも制御中ではない場合（ステップＳ３：Ｎｏルート）、処理はステップＳ１に戻る。一方、いずれかのＶｏＱの読み出しを制御中である場合（ステップＳ３：Ｙｅｓルート）、処理はステップＳ１１に移行する。
【００２４】
一方、本実施の形態のＰＡＵＳＥフレームを後段スイッチから受信した場合（ステップＳ１：Ｙｅｓルート）、ポーズ管理部１０１は、ＰＡＵＳＥフレームを受信したポートに対応するＶｏＱの中に空きＶｏＱが有るか判定する（ステップＳ５）。
【００２５】
空きＶｏＱが無い場合（ステップＳ５：Ｎｏルート）、処理はステップＳ１に戻る。一方、空きＶｏＱが有る場合（ステップＳ５：Ｙｅｓルート）、ポーズ管理部１０１は、以下の処理を実行する。具体的には、ポーズ管理部１０１は、空きＶｏＱのいずれか１つを特定し、特定したＶｏＱの識別情報を、ＰＡＵＳＥフレームに含まれる後段出力ポートの識別情報及びＰＡＵＳＥフレームの受信ポートの識別情報に関連付けてキュー管理テーブル格納部１０３に格納する（ステップＳ７）。
【００２６】
本実施の形態においては、図１０に示すように、ＰＡＵＳＥフレームを受信していない場合には各宛先のパケットがデフォルトのＶｏＱ（図１０におけるＶｏＱ＃０）へエンキューされる。一方、ＰＡＵＳＥフレームを受信した場合、図１１に示すように、輻輳が発生した後段出力ポート（図１１における後段出力ポート＃１８）へ出力されるパケットは、読み出しが停止されているＶｏＱ（図１１におけるＶｏＱ＃７）へエンキューされる。読み出しは、ＰＡＵＳＥフレームにおいて指定された時間だけ停止される。
【００２７】
図７の説明に戻り、キュー管理部１０５は、ステップＳ７において特定されたＶｏＱからの読み出しを停止するための設定をし、且つ、停止タイマを開始する（ステップＳ９）。停止タイマは、ＰＡＵＳＥフレームにおいて指定された時間が経過するとタイムアウトする。
【００２８】
キュー管理部１０５は、停止タイマがタイムアウトしたか判定する（ステップＳ１１）。停止タイマがタイムアウトしていない場合（ステップＳ１１：Ｎｏルート）、処理はステップＳ１に戻る。一方、停止タイマがタイムアウトした場合（ステップＳ１１：Ｙｅｓルート）、キュー管理部１０５は、以下の処理を実行する。具体的には、キュー管理部１０５は、タイムアウトした停止タイマに係るＶｏＱからのパケットの読み出しを開始する（ステップＳ１３）。
【００２９】
キュー管理部１０５は、読み出しの開始後空になったＶｏＱが有るか判定する（ステップＳ１５）。読み出しの開始後空になったＶｏＱが無い場合（ステップＳ１５：Ｎｏルート）、処理はステップＳ１に戻る。一方、読み出しの開始後空になったＶｏＱが有る場合（ステップＳ１５：Ｙｅｓルート）、ポーズ管理部１０１は、以下の処理を実行する。具体的には、ポーズ管理部１０１は、空になったＶｏＱに関連付けられている後段出力ポートに、デフォルトのＶｏＱを関連付けるようにキュー管理テーブル格納部１０３に格納されているデータを更新する（ステップＳ１７）。
【００３０】
ポーズ管理部１０１は、処理終了の指示（例えば、シャットダウンの指示）を受け付けたか判定する（ステップＳ１９）。処理終了の指示を受け付けていない場合（ステップＳ１９：Ｎｏルート）、処理はステップＳ１に戻る。一方、処理終了の指示を受け付けた場合（ステップＳ１９：Ｙｅｓルート）、処理は終了する。
【００３１】
以上のような処理を実行すれば、輻輳が発生した後段出力ポートへ出力されるパケットのみＶｏＱからの読み出しを一時的に停止することができるようになる。これにより、輻輳が悪化することを抑制できるようになる。
【００３２】
図１２乃至図１５を用いて、ＶｏＱからの読み出しの制御について説明を追加する。ＰＡＵＳＥフレームを受信していない場合、図１２に示すように、各パケットはデフォルトのＶｏＱであるＶｏＱ＃０へエンキューされ、後段スイッチに送信される。ＰＡＵＳＥフレームを受信した場合、図１３に示すように、ＰＡＵＳＥフレームにおいて指定された後段出力ポートに出力されるパケットは、未割当のＶｏＱであるＶｏＱ＃７にエンキューされ、パケットの読み出しは一時的に停止される。ＶｏＱ＃７からの読み出しを停止後、ＰＡＵＳＥフレームにおいて指定された時間が経過した場合、図１４に示すように、ＶｏＱ＃７からの読み出しも開始される。例えばラウンドロビンによって、ＶｏＱ＃０及びＶｏＱ＃７から交互にパケットが読み出される。但し、その他のアルゴリズムによって読み出されてもよい。ＶｏＱ＃７が空いた場合、図１５に示すように、デフォルトのキューのみからパケットが読み出される。すなわち、図１２と同じ状態に戻る。
【００３３】
従って、本実施の形態の方法であれば、輻輳が発生した後段出力ポートに関係しないパケットの転送を継続することができるようになる。そして、ネットワーク全体として転送可能な情報量が増加し、ネットワークインフラを効率的に使用することができるようになる。
【００３４】
次に、図１６乃至図１９を用いて、パケット受信時の処理について説明する。本実施の形態においては、各スイッチが後段スイッチの出力ポートを学習するが、学習は図１７に示すような方法で行われる。スイッチＳＷ１０は、ペイロードと、宛先ＭＡＣアドレス「Ｂ」および送信元ＭＡＣアドレス「Ａ」を含むヘッダとを含むパケットを或る端末Ａから受信した場合、宛先の端末Ｂへの経路上の次のスイッチであるスイッチＳＷ１１にパケットを転送する。このとき、スイッチＳＷ１０は、スイッチＳＷ１０がパケットを受信したポートの識別情報「１０」と所定の宛先ＭＡＣアドレス「Ｘ」とを含む外部ＭＡＣヘッダをパケットに付加し、外部ＭＡＣヘッダが付加されたパケットをスイッチＳＷ１１に転送する。
【００３５】
スイッチＳＷ１１は、受信したパケットの内部ＭＡＣヘッダに含まれる送信元ＭＡＣアドレスに関連付けて、パケットを受信したポートの識別情報と外部ＭＡＣヘッダに含まれるポート（このポートは後段出力ポートに相当する）の識別情報とを宛先テーブル格納部１１に格納する。また、スイッチＳＷ１１は、パケットを受信したポートの識別情報及び外部ＭＡＣヘッダに含まれる後段出力ポートの識別情報に関連付けて、デフォルトのＶｏＱの識別情報をキュー管理テーブル格納部１０３に格納する。さらに、スイッチＳＷ１１は、受信したパケットの外部ＭＡＣヘッダに含まれるポートの識別情報を、スイッチＳＷ１１がパケットを受信したポートの識別情報に書き換える。そして、スイッチＳＷ１１は、パケットをスイッチＳＷ１２へ転送する。
【００３６】
スイッチＳＷ１２は、受信したパケットの内部ＭＡＣヘッダに含まれる送信元ＭＡＣアドレスに関連付けて、パケットを受信したポートの識別情報と外部ＭＡＣヘッダに含まれるポート（このポートは後段出力ポートに相当する）の識別情報とを宛先テーブル格納部１１に格納する。また、スイッチＳＷ１２は、パケットを受信したポートの識別情報及び外部ＭＡＣヘッダに含まれる後段出力ポートの識別情報に関連付けて、デフォルトのＶｏＱの識別情報をキュー管理テーブル格納部１０３に格納する。さらに、スイッチＳＷ１２は、受信したパケットの外部ＭＡＣヘッダに含まれるポートの識別情報を、スイッチＳＷ１２がパケットを受信したポートの識別情報に書き換える。そして、スイッチＳＷ１２は、パケットを端末Ｂに転送する。なお、端末Ｂは外部ＭＡＣヘッダが付加されたパケットを処理可能であるとする。
【００３７】
図１８に、外部ＭＡＣヘッダが付加されたパケットの構造を示す。上で述べたように、外部ＭＡＣヘッダは、所定の宛先ＭＡＣアドレス（ここでは、「０１−８０−２ｃ−００−００−０４」）と、送信元ＭＡＣアドレスとして後段出力ポートの識別情報とを含み、さらにパケットタイプの情報を含む。
【００３８】
図１９に示すように、「０１−８０−２ｃ−００−００−００」から「０１−８０−２ｃ−００−００−０ｄ」までのＭＡＣアドレスは隣接スイッチへパケットを送信するためのアドレスとして予め用途が定められている。本実施の形態においては、所定の宛先ＭＡＣアドレス「Ｘ」として「０１−８−０２ｃ−００−００−０４」が使用され、このＭＡＣアドレスを含む外部ＭＡＣヘッダが付加されたパケットは後段出力ポートの学習用のパケットであると認識される。
【００３９】
まず、スイッチ部１２は、受信したパケットの宛先ＭＡＣアドレス（ここでは、最も外側のヘッダに含まれる宛先ＭＡＣアドレス）は後段出力ポートの学習用アドレス以外の所定のアドレス（すなわち、図１９における「０１−８０−２ｃ−００−００−０４」以外のＭＡＣアドレス）であるか判定する（図１６：ステップＳ２１）。
【００４０】
受信したパケットの宛先ＭＡＣアドレスは後段出力ポートの学習用アドレス以外の所定のアドレスである場合（ステップＳ２１：Ｙｅｓルート）、スイッチ部１２は、パケットを管理部１０に出力する。これに応じ、管理部１０は、宛先ＭＡＣアドレスに応じた処理を実行する（ステップＳ２３）。そして処理はステップＳ２１に戻る。
【００４１】
受信したパケットの宛先ＭＡＣアドレスは後段出力ポートの学習用アドレス以外の所定のアドレスではない場合（ステップＳ２１：Ｎｏルート）、スイッチ部１２は、宛先ＭＡＣアドレスは後段出力ポートの学習用のＭＡＣアドレス（すなわち「０１−８０−２ｃ−００−００−０４」）であるか判定する（ステップＳ２５）。
【００４２】
宛先ＭＡＣアドレスは後段出力ポートの学習用のＭＡＣアドレスではない場合（ステップＳ２５：Ｎｏルート）、パケットには外部ＭＡＣヘッダが付加されていない。従って、スイッチ部１２は、パケットの送信元ＭＡＣアドレスに関連付けてパケットの受信ポートを宛先テーブル格納部１１に登録する（ステップＳ２７）。そして処理はステップＳ３３に移行する。
【００４３】
一方、宛先ＭＡＣアドレスは後段出力ポートの学習用のＭＡＣアドレスである場合（ステップＳ２５：Ｙｅｓルート）、スイッチ部１２は、以下の処理を実行する。具体的には、スイッチ部１２は、パケットの内部ＭＡＣヘッダに含まれる送信元ＭＡＣアドレスに関連付けてパケットの受信ポートを宛先テーブル格納部１１に登録する（ステップＳ２９）。
【００４４】
スイッチ部１２は、パケットの内部ＭＡＣヘッダに含まれる送信元ＭＡＣアドレスに関連付けて、パケットの外部ＭＡＣヘッダに含まれる後段出力ポートの識別情報を宛先テーブル格納部１１に登録する（ステップＳ３１）。後段出力ポートの識別情報は、外部ＭＡＣヘッダの送信元ＭＡＣアドレスのフィールドに含まれる。また、ポーズ管理部１０１により、パケットの受信ポート及び後段出力ポートの識別情報に関連付けてデフォルトのＶｏＱの識別情報がキュー管理テーブル格納部１０３に登録される。
【００４５】
スイッチ部１２は、宛先への経路上の次の受信者は、後段出力ポートの識別情報を含む外部ＭＡＣヘッダを有するパケットを処理可能であるか判定する（ステップＳ３３）。本実施の形態においては、例えばＬＬＤＰ（Link Layer Discovery Protocol）によって隣接する装置から取得した情報を各装置が管理しているため、ステップＳ３３の判定においてはその情報が使用される。
【００４６】
宛先への経路上の次の受信者は、後段出力ポートの識別情報を含む外部ＭＡＣヘッダを有するパケットを処理可能ではない場合（ステップＳ３３：Ｎｏルート）、処理はステップＳ３９に移行する。
【００４７】
宛先への経路上の次の受信者は、後段出力ポートの識別情報を含む外部ＭＡＣヘッダを有するパケットを処理可能である場合（ステップＳ３３：Ｙｅｓルート）、アドレス解決部１０７は、以下の処理を実行する。具体的には、アドレス解決部１０７は、パケットの内部ＭＡＣヘッダに含まれる宛先ＭＡＣアドレスに対応する出力ポート及び後段出力ポートに関連付けられているＶｏＱの識別情報をキュー管理部１０５から特定する。そして、アドレス解決部１０７は、特定したＶｏＱの識別情報をスイッチ部１２に通知する。
【００４８】
スイッチ部１２は、パケットの外部ＭＡＣヘッダに、宛先ＭＡＣアドレスとして後段出力ポートの学習用ＭＡＣアドレス（すなわち「０１−８０−２ｃ−００−００−０４」）をセットし且つ送信元ＭＡＣアドレスとしてパケットを受信したポートの識別情報をセットする（ステップＳ３５）。なお、パケットの外部ＭＡＣヘッダに後段出力ポートの学習アドレスが既にセットされている場合には、前者の処理は省略される。
【００４９】
スイッチ部１２は、ステップＳ３５において後段出力ポートの学習用ＭＡＣアドレスおよびパケットを受信したポートの識別情報がセットされたパケットをＶｏＱにエンキューする（ステップＳ３７）。ＶｏＱは、パケットの内部ＭＡＣヘッダに含まれる宛先ＭＡＣアドレスに対応する出力ポートのＶｏＱのうち、キュー管理部１０５から通知されたＶｏＱの識別情報により特定されるＶｏＱである。
【００５０】
スイッチ部１２は、処理終了の指示（例えば、シャットダウンの指示）を受け付けたか判定する（ステップＳ３９）。処理終了の指示を受け付けていない場合（ステップＳ３９：Ｎｏルート）、処理はステップＳ２１に戻る。一方、処理終了の指示を受け付けた場合（ステップＳ３９：Ｙｅｓルート）、処理は終了する。
【００５１】
以上のような処理を実行すれば、各スイッチは通常の通信を利用して後段出力ポートの学習を行うことができるようになる。
【００５２】
［実施の形態２］
第２の実施の形態においては、１台のスイッチとして動作するシステムに分散配備された複数台のスイッチが、同じシステムに含まれる後段スイッチの出力ポートの輻輳に応じてＶｏＱを切り替える。
【００５３】
図２０に、第２の実施の形態のシステムの構成図を示す。第２の実施の形態のシステムは、スイッチＳＷ２１乃至ＳＷ２４を有し、スイッチＳＷ２１乃至ＳＷ２４の各々は、ポート＃１乃至＃５を有している。スイッチＳＷ２１乃至ＳＷ２４は相互に接続されており通信が可能である。
【００５４】
スイッチＳＷ２１乃至ＳＷ２４は同じシステム内に存在するため、外部ＭＡＣヘッダを用いたカプセル化をする必要はなく、各スイッチにおいて学習された出力ポートの情報は宛先管理部２０１において統合されてから各スイッチに分配される。
【００５５】
例えば端末Ａから端末Ｂにパケットが転送される場合、まずスイッチＳＷ２４においてポート＃０に端末＃Ａが接続されていることが学習される。スイッチＳＷ２４のポート＃０と端末Ａとの関係についての情報は宛先管理部２０１に通知される。次に、スイッチＳＷ２２においてポート＃３の先に端末Ａが存在することが学習される。スイッチＳＷ２２のポート＃３と端末Ａとの関係についての情報は、宛先管理部２０１に通知される。
【００５６】
宛先管理部２０１は、スイッチＳＷ２４のポート＃０と端末Ａとの関係についての情報とスイッチＳＷ２２のポート＃３と端末Ａとの関係についての情報とを管理するとともに、これらの情報をスイッチＳＷ２２に送信する。これにより、スイッチＳＷ２２は、スイッチＳＷ２２のポート＃３の先に端末Ａが存在することを把握することができる。そして、スイッチＳＷ２２は、宛先テーブルに、出力ポートとしてポート＃３を登録し且つ後段出力ポートとしてスイッチＳＷ２４のポート＃０を登録する。
【００５７】
実際に端末Ａからのパケットを受信したスイッチＳＷ２２は、宛先テーブルを用いて出力ポート及び後段出力ポートを特定し、パケットに出力ポートの識別情報及び後段出力ポートの識別情報を含むメタデータを付加してスイッチＳＷ２２のポート＃３から出力する。後段スイッチであるスイッチＳＷ２４においては、宛先テーブルの検索は行われず、メタデータに含まれる後段出力ポートの識別情報が示すポートからパケットが出力される。
【００５８】
以上のようにすれば、複数台のスイッチを含むシステムにおいても、輻輳に関係するパケットのみについてＶｏＱからの出力を停止することができるようになる。
【００５９】
［実施の形態３］
第１の実施の形態の後段出力ポートの学習方法は、端末Ｂが外部ＭＡＣヘッダが付加されたパケットを処理可能であることを前提としているが、第３の実施の形態の方法であれば、端末Ｂが外部ＭＡＣヘッダが付加されたパケットを処理可能でなくてもよい。
【００６０】
具体的には、図２１に示すように、外部ＭＡＣヘッダが付加されたパケットを処理できない端末Ｂに接続されたスイッチは、端末Ｂに送信するパケットから外部ＭＡＣヘッダを取り除く。これにより、端末Ｂが外部ＭＡＣヘッダが付加されたパケットを処理可能でない場合にも対処可能になる。なお、上で述べたように、端末Ｂが外部ＭＡＣヘッダが付加されたパケットを処理可能であるか否かは、例えばＬＬＤＰ等によって取得された情報によって確認することができる。
【００６１】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したスイッチ１ａの機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００６２】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００６３】
また、第１の実施の形態においては、宛先テーブルとキュー管理テーブルとが別々のテーブルとして用意されているが、図２２に示すように、１つのテーブルに統合してもよい。
【００６４】
また、上で述べたスイッチ１ａ乃至１ｈは、図２３に示すように、メモリ２６０１とＣＰＵ２６０３とハードディスク・ドライブ（ＨＤＤ）２６０５と表示装置２６０９に接続される表示制御部２６０７とリムーバブル・ディスク２６１１用のドライブ装置２６１３と入力装置２６１５とネットワークに接続するための通信制御部２６１７（図２３では、２６１７ａ乃至２６１７ｃ）とがバス２６１９で接続されている構成の場合もある。なお、場合によっては、表示制御部２６０７、表示装置２６０９、ドライブ装置２６１３、入力装置２６１５は含まれない場合もある。また、スイッチ部１２としてのスイッチングモジュールがさらに含まれる場合もある。オペレーティング・システム（ＯＳ：Operating System）及び本実施の形態における処理を実行するためのプログラムは、ＨＤＤ２６０５に格納されており、ＣＰＵ２６０３により実行される際にはＨＤＤ２６０５からメモリ２６０１に読み出される。必要に応じてＣＰＵ２６０３は、表示制御部２６０７、通信制御部２６１７、ドライブ装置２６１３を制御して、必要な動作を行わせる。なお、通信制御部２６１７のいずれかを介して入力されたデータは、他の通信制御部２６１７を介して出力される。ＣＰＵ２６０３は、通信制御部２６１７を制御して、適切に出力先を切り替える。また、処理途中のデータについては、メモリ２６０１に格納され、必要があればＨＤＤ２６０５に格納される。本技術の実施例では、上で述べた処理を実行するためのプログラムはコンピュータ読み取り可能なリムーバブル・ディスク２６１１に格納されて頒布され、ドライブ装置２６１３からＨＤＤ２６０５にインストールされる。インターネットなどのネットワーク及び通信制御部２６１７を経由して、ＨＤＤ２６０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２６０３、メモリ２６０１などのハードウエアとＯＳ及び必要なプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００６５】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００６６】
本実施の形態の第１の態様に係る中継装置は、（Ａ）中継装置に接続されている他の中継装置から、輻輳が発生した、他の中継装置の第１ポートの識別情報を受信した場合、未割り当ての第１の仮想出力キューの識別情報を、第１ポートの識別情報に関連付けて第１データ格納部（例えばキュー管理テーブル格納部１０３）に格納する第１管理部（例えばポーズ管理部１０１）と、（Ｂ）第１の仮想出力キューからのパケットの出力を停止する第２管理部（例えばキュー管理部１０５）と、（Ｃ）パケットの宛先アドレスに関連付けて、他の中継装置のポートのうち当該パケットを出力するポートの識別情報を格納する第２データ格納部（例えば宛先テーブル格納部１１）を用いて、受信したパケットのうち、第１ポートの識別情報に関連付けられているアドレスを宛先とする第１のパケットを特定し、特定した当該第１のパケットを、第１の仮想出力キューにエンキューさせる第３管理部（例えばアドレス解決部１０７）とを有する。
【００６７】
他の中継装置の輻輳に関係する第１のパケットのみ出力を停止し、輻輳に関係しない他のパケットについては出力を継続することができるようになる。
【００６８】
また、本中継装置は、（Ｄ）中継装置の第２ポートにおいて輻輳が発生した場合、第２ポートの識別情報を他の中継装置に送信する通信部をさらに有してもよい。
【００６９】
中継装置に接続されている他の中継装置において、適切な出力停止を行えるようになる。
【００７０】
また、第２管理部は、（ｂ１）第１の仮想出力キューからのパケットの出力を再開後、第１の仮想出力キューが空になった場合、第１データ格納部に格納された第１の仮想出力キューの識別情報を、デフォルトの仮想出力キューの識別情報に変更してもよい。
【００７１】
空になった第１の仮想出力キューを、他の中継装置の別のポートに関連付けることができるようになる。
【００７２】
また、第１管理部は、（ａ１）他の中継装置とは異なる他の第２中継装置又は他の端末から他の中継装置が第２のパケットを受信した第３ポートの識別情報と、第２のパケットとを、他の中継装置から受信した場合、第３ポートの識別情報を、第２のパケットの送信元のアドレスに関連付けて第２データ格納部に格納してもよい。
【００７３】
通常のパケット転送を利用して、他の中継装置の各ポートについての情報を第２データ格納部に登録できるようになる。
【００７４】
また、第３管理部は、（ｃ１）第１のパケットを受信した第４ポートの識別情報を含む外部ヘッダを第１のパケットに付加し、当該外部ヘッダが付加された第１のパケットを他の中継装置に送信してもよい。
【００７５】
通常のパケット転送を利用して、中継装置の各ポートについての情報を他の中継装置が登録できるようになる。
【００７６】
本実施の形態の第２の態様に係る中継方法は、（Ｅ）他の中継装置から、輻輳が発生した、他の中継装置の第１ポートの識別情報を受信した場合、未割り当ての第１の仮想出力キューの識別情報を、第１ポートの識別情報に関連付けて第１データ格納部に格納し、（Ｆ）第１の仮想出力キューからのパケットの出力を停止し、（Ｇ）アドレスに関連付けて他の中継装置のポートの識別情報を格納する第２データ格納部を用いて、受信したパケットのうち、第１ポートの識別情報に関連付けられているアドレスを宛先とする第１のパケットを特定し、特定した当該第１のパケットを、第１の仮想出力キューにエンキューさせる処理を含む。
【００７７】
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００７８】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７９】
（付記１）
中継装置であって、
前記中継装置に接続されている他の中継装置から、輻輳が発生した、前記他の中継装置の第１ポートの識別情報を受信した場合、未割り当ての第１の仮想出力キューの識別情報を、前記第１ポートの識別情報に関連付けて第１データ格納部に格納する第１管理部と、
前記第１の仮想出力キューからのパケットの出力を停止する第２管理部と、
アドレスに関連付けて前記他の中継装置のポートの識別情報を格納する第２データ格納部を用いて、受信したパケットのうち、前記第１ポートの識別情報に関連付けられているアドレスを宛先とする第１のパケットを特定し、特定した当該第１のパケットを、前記第１の仮想出力キューにエンキューさせる第３管理部と、
を有する中継装置。
【００８０】
（付記２）
前記中継装置の第２ポートにおいて輻輳が発生した場合、前記第２ポートの識別情報を前記他の中継装置に送信する通信部
をさらに有する付記１記載の中継装置。
【００８１】
（付記３）
前記第２管理部は、
前記第１の仮想出力キューからのパケットの出力を再開後、前記第１の仮想出力キューが空になった場合、前記第１データ格納部に格納された前記第１の仮想出力キューの識別情報を、デフォルトの仮想出力キューの識別情報に変更する、
付記１又は２記載の中継装置。
【００８２】
（付記４）
前記第１管理部は、
前記他の中継装置とは異なる他の第２中継装置又は他の端末から前記他の中継装置が第２のパケットを受信した第３ポートの識別情報と、前記第２のパケットとを、前記他の中継装置から受信した場合、前記第３ポートの識別情報を、前記第２のパケットの送信元のアドレスに関連付けて前記第２データ格納部に格納する、
付記１乃至３のいずれか１つ記載の中継装置。
【００８３】
（付記５）
前記第３管理部は、
前記第１のパケットを受信した第４ポートの識別情報を含む外部ヘッダを前記第１のパケットに付加し、当該外部ヘッダが付加された前記第１のパケットを前記他の中継装置に送信する、
付記１乃至４のいずれか１つ記載の中継装置。
【００８４】
（付記６）
他の中継装置から、輻輳が発生した、前記他の中継装置の第１ポートの識別情報を受信した場合、未割り当ての第１の仮想出力キューの識別情報を、前記第１ポートの識別情報に関連付けて第１データ格納部に格納し、
前記第１の仮想出力キューからのパケットの出力を停止し、
アドレスに関連付けて前記他の中継装置のポートの識別情報を格納する第２データ格納部を用いて、受信したパケットのうち、前記第１ポートの識別情報に関連付けられているアドレスを宛先とする第１のパケットを特定し、特定した当該第１のパケットを、前記第１の仮想出力キューにエンキューさせる、
処理を中継装置が実行する中継方法。
【００８５】
（付記７）
他の中継装置から、輻輳が発生した、前記他の中継装置の第１ポートの識別情報を受信した場合、未割り当ての第１の仮想出力キューの識別情報を、前記第１ポートの識別情報に関連付けて第１データ格納部に格納し、
前記第１の仮想出力キューからのパケットの出力を停止し、
アドレスに関連付けて前記他の中継装置のポートの識別情報を格納する第２データ格納部を用いて、受信したパケットのうち、前記第１ポートの識別情報に関連付けられているアドレスを宛先とする第１のパケットを特定し、特定した当該第１のパケットを、前記第１の仮想出力キューにエンキューさせる、
処理を中継装置に実行させる中継プログラム。
【符号の説明】
【００８６】
１ａ，１ｂ，１ｃ，１ｄ，１ｅ，１ｆ，１ｇ，１ｈ  スイッチ
１０  管理部    １１  宛先テーブル格納部
１２  スイッチ部    １３ａ，１３ｂ  ポート
１０１  ポーズ管理部    １０３  キュー管理テーブル格納部
１０５  キュー管理部    １０７  アドレス解決部
２０１  宛先管理部
【図１】
2018117196.tif 000003
【図２】
2018117196.tif 000004
【図３】
2018117196.tif 000005
【図４】
2018117196.tif 000006
【図５】
2018117196.tif 000007
【図６】
2018117196.tif 000008
【図７】
2018117196.tif 000009
【図８】
2018117196.tif 000010
【図９】
2018117196.tif 000011
【図１０】
2018117196.tif 000012
【図１１】
2018117196.tif 000013
【図１２】
2018117196.tif 000014
【図１３】
2018117196.tif 000015
【図１４】
2018117196.tif 000016
【図１５】
2018117196.tif 000017
【図１６】
2018117196.tif 000018
【図１７】
2018117196.tif 000019
【図１８】
2018117196.tif 000020
【図１９】
2018117196.tif 000021
【図２０】
2018117196.tif 000022
【図２１】
2018117196.tif 000023
【図２２】
2018117196.tif 000024
【図２３】
2018117196.tif 000025