(57)【要約】      （修正有）【課題】ネットワークスイッチを含む通信システムにおいて輻輳の発生を抑制する装置及び方法を提供する。【解決手段】基地局において、輻輳制御装置であるスイッチ部１は、各２つの装置間に２以上の経路が存在する複数の装置間の複数の経路を保持し、複数の経路の中から、所定の２つの装置間の使用経路として選択されていた経路に代わって、所定の２つの装置間の使用経路に選択された第１の経路と一部が重複する経路を、輻輳予備群として保持するルートＩＤ設定テーブル１４Ｂと、複数の装置のいずれかの２つの装置間において使用経路が変更される場合に、輻輳予備群に含まれる経路以外から使用経路を選択する輻輳制御部１４と、を備える。【選択図】図３
2019004375.tif 000002
【特許請求の範囲】
【請求項１】
各２つの装置間に２以上の経路が存在する複数の装置間の複数の経路を保持し、
前記複数の経路の中から、所定の２つの装置間の使用経路として選択されていた経路に代わって前記所定の２つの装置間の使用経路に選択された第１の経路と一部が重複する経路を輻輳予備群として保持する記憶部と、
前記複数の装置のいずれかの２つの装置間において使用経路が変更される場合に、前記輻輳予備群に含まれる経路以外から使用経路を選択する制御部と、
を備える輻輳制御装置。
【請求項２】
前記複数の装置それぞれは複数のスイッチのいずれかに接続し、前記複数の経路のそれぞれには前記複数のスイッチのうちの２以上のスイッチと前記２以上のスイッチ間を接続する少なくとも１つのリンクを含み、
前記輻輳制御装置は、輻輳検出の条件を満たすリンクを検出する検出部をさらに含み、
前記記憶部は、前記第１の経路に含まれるリンクと重複するリンクを含む経路を前記輻輳予備群として保持し、
前記制御部は、前記複数の装置のいずれかの２つの装置間における使用経路に含まれるリンクが前記輻輳検出の条件を満たすリンクとして検出された場合に、前記輻輳予備群に含まれる経路以外から使用経路を選択する、
請求項１に記載の輻輳制御装置。
【請求項３】
前記複数のスイッチのそれぞれについて、スイッチに入力される前に、パケットのヘッダ内の宛先情報のフィールドの未使用領域に、前記パケットのヘッダ内の宛先情報に応じた経路の識別情報を書き込む、複数の変換部をさらに備え、
前記制御部は、前記複数の装置のいずれかの２つの装置間において使用経路の変更が発生した場合に、新たに使用経路として選択された経路を前記複数の変換部に通知し、
前記複数のスイッチそれぞれは、複数のポートと、入力ポートと宛先情報と出力ポートとの対応付けを記憶する第１の記憶部とを備え、前記第１の記憶部から取得される、入力パケットの入力ポートと前記入力パケットのヘッダ内の前記経路の識別情報を含む宛先情報とに対応する出力ポートに前記入力パケットを出力する、
請求項２に記載の輻輳制御装置。
【請求項４】
前記複数の変換部それぞれは、宛先情報と優先度と経路の識別情報との対応付けを記憶する第２の記憶部を備え、前記パケットのヘッダ内の宛先情報のフィールドの未使用領域に、前記第２の記憶部において前記パケットのヘッダ内の宛先情報と優先度とに対応する経路の識別情報を書き込む、
請求項３に記載の輻輳制御装置。
【請求項５】
前記輻輳検出の条件は、単位時間当たりのリンクの送信側のスイッチにおいて送信パケットの廃棄が発生したことである、
請求項２から４のいずれか一項に記載の輻輳制御装置。
【請求項６】
各２つの装置間に２以上の経路が存在する複数の装置間の複数の経路を保持し、前記複数の経路の中から、所定の２つの装置間の使用経路として選択されていた経路に代わって前記所定の２つの装置間の使用経路に選択された第１の経路と一部が重複する経路を輻輳予備群として記憶部に保持し、
前記複数の装置のいずれかの２つの装置間において使用経路が変更される場合に、前記輻輳予備群に含まれる経路以外から使用経路を選択する、
輻輳制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、輻輳制御装置及び輻輳制御方法に関する。
【背景技術】
【０００２】
例えば、ｅＮｏｄｅＢと呼ばれる基地局には、異なる機能を備える複数のユニットカードが実装されている。ユニットカード間のスイッチングを行うスイッチカードには、例えば、複数のｓＲＩＯ（Serial Rapid IO（Input Output））スイッチが搭載されている。
ユニットカードはｓＲＩＯスイッチに接続されており、ユニットカード間のデータ通信はｓＲＩＯスイッチによって中継される。ｓＲＩＯスイッチに接続されるユニットカード等の装置は、エンドポイントと称される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−４１８８１号公報
【特許文献２】特開平９−２４７１５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ネットワークスイッチを含む通信システムにおいてネットワークスイッチ間で輻輳が発生することがあるように、ｓＲＩＯスイッチ間でも輻輳が発生する可能性がある。例えば、通信回線、ネットワークスイッチ、又は、エンドポイントの故障等によってトラフィックの通信経路が変わり、ｓＲＩＯスイッチを搭載する装置内で、トラフィックが出力されるエンドポイントが変更になると、特定のｓＲＩＯスイッチ間の回線にデータが集中する可能性がある。
【０００５】
例えば、送信元エンドポイント＃Ｘから宛先エンドポイント＃Ａの経路＃１を通過するトラフィックが、宛先エンドポイント＃Ａの故障等によって、送信元エンドポイント＃Ｘから宛先エンドポイント＃Ｂの経路＃２に変更されることがある。この場合、経路＃２上のｓＲＩＯスイッチ間の回線上を流れるデータ量が、送信元エンドポイント＃Ｘから宛先エンドポイント＃Ａに流れていたトラフィックの分増えるので、経路＃２上のｓＲＩＯスイッチ間の回線の使用帯域が上限値を超える可能性がある。
【０００６】
ｓＲＩＯスイッチ間の回線の使用帯域が上限値を超えると、回線の帯域超過分のトラフィックのパケットはｓＲＩＯスイッチにおいて廃棄される。パケットの廃棄に伴い、再送処理等が発生するので、スイッチカード全体の性能が劣化する可能性がある。輻輳の発生によりパケット廃棄が発生し、装置又はシステム全体の性能が劣化するという問題は、ｓＲＩＯスイッチを含むシステムに限定されず、ネットワークスイッチを含む通信システムでも共通の問題である。
【０００７】
本発明は、輻輳の発生を抑制可能な輻輳制御装置及び輻輳制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の態様の一つは、記憶部と制御部とを備える輻輳制御装置である。記憶部は、複数の装置間の複数の経路を保持し、当該複数の経路のうち、所定の２つの装置間の使用経路として選択されていた経路に代わって所定の２つの装置間の使用経路に選択された第１の経路と一部が重複する経路を輻輳予備群として保持する。複数の装置のうちの各２つの
装置間には２以上の経路が存在する。制御部は、複数の装置のいずれかの２つの装置間において使用経路が変更される場合に、輻輳予備群に含まれる経路以外から使用経路を選択する。
【発明の効果】
【０００９】
開示の輻輳制御装置及び輻輳制御方法によれば、輻輳の発生を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、基地局の構成の一例を示す図である。
【図２】図２は、第１実施形態に係るスイッチ部の機能構成を示す図である。
【図３】図３は、スイッチ部のハードウェア構成の一例を示す図である。
【図４】図４は、リンクの輻輳度の検出条件の一例を示す図である。
【図５】図５は、ｓＲＩＯパケットのヘッダのフォーマットの一例を示す図である。
【図６】図６は、リンク状態管理テーブルの一例である。
【図７】図７は、ルートＩＤ設定テーブルの一例である。
【図８】図８は、関連付けテーブルの一例である。
【図９】図９は、ｓＲＩＯスイッチのルーティングテーブルの一例である。
【図１０】図１０は、輻輳監視部の処理のフローチャートの一例である。
【図１１Ａ】図１１Ａは、輻輳制御部の処理のフローチャートの一例である。
【図１１Ｂ】図１１Ｂは、輻輳制御部の処理のフローチャートの一例である。
【図１２】図１２は、輻輳制御部の使用経路選択処理のフローチャートの一例である。
【図１３】図１３は、ルートＩＤ変換部の使用経路の通知の受信時の処理のフローチャートの一例である。
【図１４】図１４は、ルートＩＤ変換部のパケット受信時の処理のフローチャートの一例である。
【図１５】図１５は、具体例に係るスイッチ部におけるトラフィックの流れの一例を示す図である。
【図１６】図１６は、輻輳制御部が輻輳監視部＃ＡＢからリンク＃ＡＢの輻輳度“Ｈｉｇｈ”の通知を受信した場合の輻輳制御部による処理実行後のルートＩＤ設定テーブルの一例を示す図である。
【図１７】図１７は、送信元エンドポイント＃Ａ１と宛先エンドポイント＃Ｂ１との間の使用経路の変更後の関連付けテーブルの一例である。
【図１８】図１８は、送信元エンドポイント＃Ａ１から宛先エンドポイント＃Ｂ１へのトラフィックの経路の切替後のスイッチ部におけるトラフィックの流れの一例を示す図である。
【図１９】図１９は、輻輳制御部が輻輳監視部＃ＤＣからリンク＃ＤＣの輻輳度“Ｈｉｇｈ”の通知を受信した場合の輻輳制御部による処理実行後のルートＩＤ設定テーブルの一例を示す図である。
【図２０】図２０は、送信元エンドポイント＃Ｄ１と宛先エンドポイント＃Ｃ１との間の使用経路の変更後の関連付けテーブルの一例である。
【図２１】図２１は、送信元エンドポイント＃Ｄ１から宛先エンドポイント＃Ｃ１へのトラフィックの経路の切替後のスイッチ部におけるトラフィックの流れの一例を示す図である。
【図２２】図２２は、輻輳制御部が輻輳監視部＃ＡＢからリンク＃ＡＢの輻輳度“Ｌｏｗ”の通知を受信した場合の輻輳制御部による処理実行後のルートＩＤ設定テーブルの一例を示す図である。
【図２３】図２３は、輻輳制御部が輻輳監視部＃ＤＣからリンク＃ＤＣの輻輳度“Ｌｏｗ”の通知を受信した場合の輻輳制御部１４による処理実行後のルートＩＤ設定テーブルの一例を示す図である。
【図２４】図２４は、第２実施形態に係る関連付けテーブルの一例である。
【図２５】図２５は、第２実施形態に係るルートＩＤ変換部の使用経路の通知の受信時の処理のフローチャートの一例である。
【図２６】図２６は、第２実施形態に係るルートＩＤ変換部のパケット受信時の処理のフローチャートの一例である。
【図２７】図２７は、送信元エンドポイント＃Ａ１から宛先エンドポイント＃Ｂ１間の使用経路が経路＃０１００から経路＃０１０１に変更され、使用経路＃０１０１の通知を受けた場合の関連付けテーブルの一例である。
【図２８】図２８は、図２７に示される関連付けテーブルが適用された場合のスイッチ部内のトラフィックの流れの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
【００１２】
＜第１実施形態＞
図１は、基地局１００の構成の一例を示す図である。基地局１００は、無線部１２０と制御・ベースバンド部１１０とを含む。無線部１２０は、無線信号に係る処理を行うユニットカードを複数含む。具体的には、無線部１２０は、増幅部（図中、ＡＭＰ）３、受信部４、直交変調部５、送信部６を含む。
【００１３】
基地局１００では、アンテナによって無線信号が受信され、無線信号はアンテナを通じて電気信号に変換される。増幅部３は入力された電気信号を増幅する。受信部４は、電気信号の成形を行う。直交変調部５は、電気信号に対して直交変調を行い、データを取得し、制御・ベースバンド部１１０に出力する。
【００１４】
制御・ベースバンド部１１０は、無線部１２０に含まれるユニットカードに対する制御を行うユニットカードを含む。具体的には、制御・ベースバンド部１１０は、制御部２、スイッチ部１を含む。制御部２は、例えば、無線部１２０に含まれるユニットカードに対する制御、パケットに関する処理等を行う。スイッチ部１は、無線部１２０に含まれるユニットカード及び制御部２に相当するユニットカードを含むユニットカード間のパケットの中継処理を行う。例えば、制御部２、スイッチ部１は、それぞれ、１枚又は複数枚のユニットカードである。
【００１５】
図２は、第１実施形態にかかるスイッチ部１の機能構成を示す図である。スイッチ部１は、例えば、複数のｓＲＩＯスイッチ、複数のルートＩＤ変換部、複数の輻輳監視部、輻輳制御部１４を含む。図２では、スイッチ部１には、４台のｓＲＩＯスイッチ＃Ａ〜＃Ｄが備えられている。スイッチ部１は、「輻輳制御装置」の一例である。
【００１６】
ｓＲＩＯスイッチ＃Ａ〜＃Ｄ間はフルメッシュで接続されている。図２に示される例では、２台のｓＲＩＯスイッチ間は物理回線で接続されている。また、例えば、ｓＲＩＯスイッチ間を接続する物理回線は片方向通信であるので、２台のｓＲＩＯスイッチ間には２本の物理回線が接続されている。
【００１７】
ただし、これに限られず、２台のｓＲＩＯスイッチ間は双方向に通信可能な物理回線で接続されてもよい。２台のｓＲＩＯスイッチ間が双方向通信可能に接続される場合には、ｓＲＩＯスイッチ間の物理回線は１本となる。ｓＲＩＯスイッチは、「スイッチ」の一例である。２台のｓＲＩＯスイッチを接続する物理回線は、「リンク」の一例である。なお、「リンク」には、２つのｓＲＩＯスイッチ間の物理回線のような物理的な接続に限定されず、２つの装置間の論理的な接続も含まれる。以降、ｓＲＩＯスイッチ間の回線をリン
クと称する。
【００１８】
ただし、「スイッチ」は、ｓＲＩＯスイッチに限定されず、ネットワークスイッチであってもよい。ネットワークスイッチには、例えば、レイヤ２スイッチ、レイヤ３スイッチ、ＳＤＮ（Software Defined Network）スイッチ等が有る。
【００１９】
ｓＲＩＯスイッチは、高速な転送を目的とするため、ｓＲＩＯスイッチ間はフルメッシュで接続されることが多いため、動的に経路選択を行なわず、通常最短経路を用いる。そのため、ｓＲＩＯスイッチは、他の１台のｓＲＩＯスイッチへの経路として最短経路を持ち、複数の経路を持たないことが多い。
【００２０】
ｓＲＩＯスイッチが他の１台のｓＲＩＯスイッチへの経路を複数持たない場合には、当該他のｓＲＩＯスイッチとの間のリンクが輻輳状態となると、当該他のｓＲＩＯスイッチへの経路を、輻輳状態のリンクを迂回する迂回経路に切り替えることができない。この場合には、パケット廃棄が発生し、輻輳の収束が遅れ、ｓＲＩＯスイッチを搭載するスイッチ部１の性能が低下する。
【００２１】
第１実施形態では、ｓＲＩＯスイッチには、１台の他のｓＲＩＯスイッチについて複数の経路を含むルーティングテーブルが設定される。また、エンドポイントとｓＲＩＯスイッチとの間にルートＩＤ変換部が配置される。ルートＩＤ変換部は、１台のｓＲＩＯスイッチにつき１つ備えられる。したがって、図２では、スイッチ部１には、４つのルートＩＤ変換部＃Ａ〜＃Ｄが備えられる。
【００２２】
ルートＩＤ変換部は、輻輳等によってｓＲＩＯスイッチ間の経路が変更される場合には、エンドポイントからのパケットが変更後の経路を通るように、パケットの宛先情報の一部を書き換える。パケットの宛先情報の一部が変更後の経路を通るように書き換えられるので、ｓＲＩＯスイッチはルーティングテーブルとパケットの宛先情報とに基づいて、変更後の経路を選択するようになる。第１実施形態では、上述のように、１台の他のｓＲＩＯスイッチについて複数の経路を含むルーティングテーブルとパケットの宛先情報を書き換えるルートＩＤ変換部とによって、ｓＲＩＯスイッチ間の経路の変更を実現する。
【００２３】
また、第１実施形態では、スイッチ部１には輻輳監視部が搭載される。輻輳監視部は、ｓＲＩＯスイッチ間のリンクを監視し、輻輳状態に近いリンクを輻輳状態となる前に検出する。また、第１実施形態では、スイッチ部１には、輻輳制御部が搭載される。輻輳制御部は、輻輳監視部によって輻輳状態に近いリンクが検出された場合に、経路変更の有無の判定、ｓＲＩＯスイッチ間で使用されている経路に代わる輻輳状態に近いリンクを迂回する迂回経路の選択、変更後の経路の通知等を行う。
【００２４】
第１実施形態では、輻輳検出部と輻輳制御部とによって、いずれかのｓＲＩＯスイッチ間のリンクが輻輳状態となる前に、ｓＲＩＯスイッチ間で使用される経路を他の経路に切り替える。これによって、ｓＲＩＯスイッチ間のリンクにおける輻輳の発生を抑制でき、パケットの廃棄を抑制できたり輻輳状態に近いリンクのトラフィック量の減少速度を早めたりできる。
【００２５】
輻輳監視部は、ｓＲＩＯスイッチ間の１つのリンクにつき１つ備えられる。例えば、ｓＲＩＯスイッチ＃ＡとｓＲＩＯスイッチ＃Ｂとの間には、ｓＲＩＯスイッチ＃Ａ→ｓＲＩＯスイッチ＃Ｂの方向の回線と、ｓＲＩＯスイッチ＃Ｂ→ｓＲＩＯスイッチ＃Ａの方向の回線と、の２本の回線（リンク）存在する。したがって、図２のｓＲＩＯスイッチ＃ＡとｓＲＩＯスイッチ＃Ｂとの間には、ｓＲＩＯスイッチ＃Ａ→ｓＲＩＯスイッチ＃Ｂの方向のリンクを監視する輻輳監視部＃ＡＢと、ｓＲＩＯスイッチ＃Ｂ→ｓＲＩＯスイッチ＃Ａ
の方向のリンクを監視する輻輳監視部＃ＢＡと、が存在する。
【００２６】
図２に示される例では、４台のｓＲＩＯスイッチ間はフルメッシュ接続されているので、ｓＲＩＯスイッチ間の回線は１２本である。したがって、スイッチ部１には１２個の輻輳監視部が備えられている。なお、図２では、便宜上、一部の輻輳監視部が抽出されて示されている。第１実施形態では、輻輳監視部＃ＸＹと表記する場合には、ｓＲＩＯスイッチ＃Ｘ→ｓＲＩＯスイッチ＃Ｙの方向のリンクを監視する輻輳監視部であることを示す。また、第１実施形態では、ｓＲＩＯスイッチ＃Ｘ→ｓＲＩＯスイッチ＃Ｙの方向のリンクを、リンク＃ＸＹ、と表記することもある。また、エンドポイント間の経路上のｓＲＩＯスイッチ＃Ｘ→ｓＲＩＯスイッチ＃Ｙの部分を区間＃ＸＹと表記することもある。
【００２７】
輻輳制御部１４は、スイッチ部１に１つ備えられている。ｓＲＩＯスイッチには、複数のポートが備えられており、各ポートにはエンドポイント、他のｓＲＩＯスイッチが接続されている。エンドポイントは、例えば、図１に示される無線部１２０に含まれるユニットカードである。ｓＲＩＯスイッチ間、及び、ｓＲＩＯスイッチとエンドポイント間の接続関係は既知である。
【００２８】
第１実施形態では、ｓＲＩＯスイッチ＃Ｘのポートｐ（ｐ：０を含む正の整数）に接続されるエンドポイントは、エンドポイント＃Ｘｐと表記される。エンドポイントは、「装置」の一例である。エンドポイントは、例えば、ユニットカードのような装置であってよい。また、ｓＲＩＯスイッチは、装置に接続されるだけでなく、ＤＳＰやその他のＬＳＩが接続されてもよい。すなわち、エンドポイントは、「デバイス」であってもよい。
【００２９】
図３は、スイッチ部１のハードウェア構成の一例を示す図である。図３では、便宜上、一部のｓＲＩＯスイッチ１１、ルートＩＤ変換部１２、輻輳監視部１３のみを図示している。
【００３０】
ｓＲＩＯスイッチ１１は、例えば、ｓＲＩＯスイッチとして作成された電気回路を含むＩＣチップである。ルートＩＤ変換部１２、輻輳監視部１３、輻輳制御部１４は、例えば、それぞれＦＰＧＡ（field-programmable gate array）によって実現される。ルートＩ
Ｄ変換部１２、輻輳監視部１３、輻輳制御部１４は、１つのＦＰＧＡで実現されてもよいし、それぞれ異なるＦＰＧＡで実現されてもよい。ルートＩＤ変換部１２はスイッチ部１に搭載されているｓＲＩＯスイッチ１１の数と同じ数が備えられる。輻輳監視部１３は、ｓＲＩＯスイッチ１１間のリンクの数と同じ数が備えられる。
【００３１】
なお、以下、ｓＲＩＯスイッチ、ルートＩＤ変換部、輻輳監視部を区別しない場合には、それぞれ、ｓＲＩＯスイッチ１１、ルートＩＤ変換部１２、輻輳監視部１３と表記する。
【００３２】
輻輳監視部１３は、監視対象のリンクの状態を判定する。監視対象のリンクの状態が遷移したことを判定した場合には、輻輳監視部１３は輻輳制御部１４にリンクの状態変化を通知する。リンクの状態の判定については、後述される。監視制御部１３は、「検出部」の一例である。
【００３３】
輻輳制御部１４は、リンク状態管理テーブル１４ＡとルートＩＤ設定テーブル１４Ｂとを備える。リンク状態管理テーブル１４Ａには、ｓＲＩＯスイッチ１１間を接続する全リンクの状態が保持されている。ルートＩＤ設定テーブル１４Ｂには、スイッチ部１に接続される全てのエンドポイントにおいて、送信元エンドポイントと宛先エンドポイントの組合せそれぞれについて、ｓＲＩＯスイッチ間の全ての経路の情報と経路状態が保持されている。リンク状態管理テーブル１４ＡとルートＩＤ設定テーブル１４Ｂとの詳細について
は、後述される。
【００３４】
輻輳制御部１４は、輻輳監視部１３から監視対象のリンクの状態変化の通知を受けると、該当するリンクの状態でリンク状態管理テーブル１４Ａを更新する。また、輻輳監視部１３から監視対象のリンクの状態変化の通知を受けると、輻輳制御部１４は、ルートＩＤ設定テーブル１４Ｂにおいて、経路状態を更新する。
【００３５】
また、輻輳監視部１３から監視対象のリンクの状態変化の通知を受けると、輻輳制御部１４は、ルートＩＤ設定テーブル１４Ｂに基づいて、各送信元エンドポイントと宛先エンドポイント間の使用経路を選択する使用経路選択処理を実行する。使用経路の変更がある場合には、輻輳制御部１４は、新たな使用ルートの情報を各ルートＩＤ変換部１２に通知する。輻輳制御部１４の処理の詳細は後述される。輻輳制御部１４は、「制御部」の一例である。
【００３６】
ルートＩＤ変換部１２は、関連付けテーブル１２Ａを備える。関連付けテーブル１２Ａは、宛先のエンドポイントを示す情報と経路の識別情報との対応付けを保持する。関連付けテーブル１２Ａの詳細は後述される。ルートＩＤ変換部１２は、輻輳制御部１４から新たな使用経路の情報を受信すると、受信した新たな使用経路の情報に従って、関連付けテーブル１２Ａを更新する。
【００３７】
ルートＩＤ変換部１２は、エンドポイントからパケットを受信すると、関連付けテーブル１２Ａにしたがって、パケットのヘッダ内の宛先情報に含まれる経路情報を書き換える。ルートＩＤ変換部１２は、経路情報を書き換えたパケットをｓＲＩＯスイッチ１１に出力する。ルートＩＤ変換部１２は、「変換部」の一例である。
【００３８】
ｓＲＩＯスイッチ１１は、ルーティングテーブル１１Ａを備える。ルーティングテーブル１１Ａには、入力ポートと宛先情報と出力ポートの組合せが保持されている。ルーティングテーブル１１Ａの詳細については後述される。
【００３９】
ｓＲＩＯスイッチ１１は、入力されたパケットの、入力ポートと宛先情報に対応する出力ポートをルーティングテーブル１１Ａから取得し、取得した出力ポートからパケットを出力する。
【００４０】
したがって、スイッチ部１では、輻輳制御部１４によって送信元エンドポイントと宛先エンドポイント間の使用経路が変更されると、関連付けテーブル１２Ａが書き換えられる。書き換えられた関連付けテーブル１２Ａに基づいて、ルートＩＤ変換部１２によってパケットの宛先情報内の経路情報が書き換えられる。ｓＲＩＯスイッチ１１は、書き換えられた経路情報を含む宛先情報に従って、当該パケットを新たな使用経路に出力する。このように、送信元エンドポイントと宛先エンドポイント間の使用経路は切り替わる。
【００４１】
図４は、リンクの輻輳度の検出条件の一例を示す図である。輻輳監視部１３は、監視対象のリンクの状態を、例えば、監視対象のリンクの送信元のｓＲＩＯスイッチ１１のポートを監視することによって判定する。
【００４２】
第１実施形態では、リンクの状態は輻輳度で示される。輻輳度には、第１実施形態では、Ｈｉｇｈ、Ｍｉｄｄｌｅ、Ｌｏｗの３つがある。ポートの輻輳度を判定する判定基準には、例えば、送信パケット廃棄数、リトライＣＳ（Control Symbol）（バックプレッシャー）数、送信パケットバッファ使用数、送信パケット数がある。
【００４３】
送信パケットバッファ使用数は、例えば、単位時間当たりに送信バッファに含まれるパ
ケット数の送信バッファのサイズに対する比率、すなわち、送信バッファの使用率で示される。送信パケット数は、例えば、単位時間当たりに送信されるパケット数のリンクの帯域に対する比率、すなわち、帯域使用率で示される。
【００４４】
図４には、例えば、リンクの輻輳度の判定条件として、輻輳度と閾値とが示されている。例えば、送信パケット廃棄数の閾値は単位時間当たりに１個であり、リンクの輻輳度は“Ｈｉｇｈ”である。すなわち、送信パケット廃棄数が単位時間当たりに１以上である場合にはリンクの輻輳度は“Ｈｉｇｈ”と判定される。送信パケット廃棄数が単位時間当たりに０である場合にはリンクの輻輳度は“Ｌｏｗ”と判定される。
【００４５】
例えば、リトライＣＳ受信数の閾値は、単位時間当たりに３個と１０個であり、リンクの輻輳度は“Ｍｉｄｄｌｅ”と“Ｈｉｇｈ”である。すなわち、リトライＣＳ受信数が単位時間当たりに１０個以上である場合にはリンクの輻輳度は“Ｈｉｇｈ”と判定される。リトライＣＳ受信数が単位時間当たりに３個以上１０未満である場合にはリンクの輻輳度は“Ｍｉｄｄｌｅ”と判定される。リトライＣＳ受信数が単位時間当たりに３個未満である場合にはリンクの輻輳度は“Ｌｏｗ”と判定される。
【００４６】
例えば、送信パケットバッファ使用数（使用率）の閾値は、５０％と７０％であり、リンクの輻輳度は“Ｍｉｄｄｌｅ”と“Ｈｉｇｈ”である。すなわち、送信パケットバッファ使用数（使用率）が７０％以上である場合にはリンクの輻輳度は“Ｈｉｇｈ”と判定される。送信パケットバッファ使用数（使用率）が５０％以降７０％未満である場合にはリンクの輻輳度は“Ｍｉｄｄｌｅ”と判定される。送信パケットバッファ使用数（使用率）が５０％未満である場合にはリンクの輻輳度は“Ｌｏｗ”と判定される。
【００４７】
例えば、送信パケット数（帯域使用率）の閾値は、５０％と７０％であり、リンクの輻輳度は“Ｍｉｄｄｌｅ”と“Ｈｉｇｈ”である。すなわち、送信パケット数（帯域使用率）が７０％以上である場合にはリンクの輻輳度は“Ｈｉｇｈ”と判定される。送信パケット数（帯域使用率）が５０％以降７０％未満である場合にはリンクの輻輳度は“Ｍｉｄｄｌｅ”と判定される。送信パケット数（帯域使用率）が５０％未満である場合にはリンクの輻輳度は“Ｌｏｗ”と判定される。
【００４８】
したがって、図４では、リンクの輻輳度“Ｈｉｇｈ”の検出条件は、単位時間当たりの送信パケット廃棄数が１以上、単位時間当たりのリトライＣＳ受信数が１０以上、送信パケットバッファ使用数（使用率）が７０％以上、送信パケット数(帯域使用率)が７０％以上である。リンクの輻輳度“Ｈｉｇｈ”の検出条件は、例えば、１つ用いられてもよいし、複数用いられてもよい。リンクの輻輳度“Ｈｉｇｈ”の検出条件が複数用いられる場合には、例えば、いずれか１つの検出条件が満たされた場合にリンクの輻輳度“Ｈｉｇｈ”が検出されるようにしてもよい。リンクの輻輳度“Ｈｉｇｈ”の検出条件は、「輻輳検出の条件」の一例である。
【００４９】
リンクの輻輳度“Ｌｏｗ”の検出条件は、単位時間当たりの送信パケット廃棄数が０、単位時間当たりのリトライＣＳ受信数が３未満、送信パケットバッファ使用数（使用率）が５０％未満、送信パケット数(帯域使用率)が５０％未満である。リンクの輻輳度“Ｌｏｗ”の検出条件は、例えば、１つ用いられてもよいし、複数用いられてもよい。リンクの輻輳度“Ｌｏｗ”の検出条件が複数用いられる場合には、例えば、すべての検出条件が満たされた場合にリンクの輻輳度“Ｌｏｗ”が検出されるようにしてもよい。なお、リンクの状態の判定基準及び閾値は、図４に示されるものに限定されない。
【００５０】
なお、輻輳度“Ｈｉｇｈ”と判定されたリンクは、例えば、帯域使用率が７０％以上のリンクであるので、輻輳状態に近いものの、輻輳が発生しているとは限らない。第１実施
形態において、輻輳状態のリンクとは、例えば、帯域使用率が１００％を超えていて、パケット廃棄が発生しているリンクを指す。
【００５１】
図５は、ｓＲＩＯパケットのヘッダのフォーマットの一例を示す図である。ｓＲＩＯパケットのヘッダには、ＣＲＦ（Critical Request Flow）（１ビット）、優先度（２ビッ
ト）、ＴＴ（Transaction Translator)（２ビット）、フレームタイプ（４ビット）、宛
先ＩＤ（１６ビット）、送信元ＩＤ（１６ビット）、トランザクション（４ビット）のフィールドがある。
【００５２】
宛先ＩＤ、送信元ＩＤのフィールドには、それぞれ、宛先のエンドポイント、送信元のエンドポイントの識別番号が含まれる。エンドポイントの識別番号は、例えば、８ビットで示される。エンドポイントの識別番号は、例えば、スイッチ部１において、ｓＲＩＯスイッチ１１の各ポートに付与された通し番号であり、エンドポイント間で重複のない番号である。
【００５３】
エンドポイントの識別番号は８ビットであり、宛先ＩＤフィールドのサイズは１６ビットであるので、宛先ＩＤフィールドの上位８ビットは、いずれのエンドポイントの識別番号が格納されたとしても、０となる。第１実施形態では、未使用領域である宛先ＩＤフィールドの上位８ビットを経路の識別情報を格納するルートＩＤフィールドとして用いる。経路の識別情報を、以降、ルートＩＤと称する。
【００５４】
以降、ルートＩＤと宛先ＩＤとを含む１６ビットの宛先ＩＤのフィールド内の値を示す場合には、宛先ＩＤ（１６）と表記する。宛先のエンドポイントの識別番号を含む８ビットのフィールドを示す場合には、宛先ＩＤ（８）と表記する。
【００５５】
エンドポイントから入力されるパケットのヘッダ内のルートＩＤは、宛先ＩＤ（１６）に関わらず、０である。したがって、ルートＩＤは、１組の送信元エンドポイントと宛先エンドポイント間においては重複のない番号であるが、送信元エンドポイントと宛先エンドポイントの他の組との間では重複のある番号となる。したがって、スイッチ部１において、経路は、宛先ＩＤ（８）とルートＩＤとの組み合わせで特定される。
【００５６】
ルートＩＤは、１組の送信元エンドポイントと宛先エンドポイント間の経路において、優先度の高い経路から順に通し番号が付与される。例えば、宛先ＩＤ（８）は、「宛先情報」の一例である。ルートＩＤは、「経路の識別情報」の一例である。宛先ＩＤ（１６）のフィールドは、「宛先情報のフィールド」の一例である。
【００５７】
図６は、リンク状態管理テーブル１４Ａの一例である。リンク状態管理テーブル１４Ａは、例えば、輻輳制御部１４の機能を実現するＦＰＧＡ内のメモリに格納されている。リンク状態管理テーブル１４Ａには、リンクの識別情報と当該リンクの輻輳度とが格納されている。リンクの識別情報は、例えば、リンクの送信元及び宛先のｓＲＩＯスイッチ１１の識別情報で示される。
【００５８】
図７は、ルートＩＤ設定テーブル１４Ｂの一例である。ルートＩＤ設定テーブル１４Ｂは、例えば、輻輳制御部１４の機能を実現するＦＰＧＡ内のメモリに格納されている。ルートＩＤ設定テーブル１４Ｂには、送信元エンドポイントと宛先エンドポイント間の全経路と、各経路の輻輳度とが含まれている。ただし、図７では、送信元エンドポイントと宛先エンドポイント間の、２つ以上のｓＲＩＯスイッチ１１を経由する経路が抽出されて示されている。
【００５９】
ルートＩＤ設定テーブル１４Ｂのエントリには、宛先ＩＤ（８）、ルートＩＤ、送信元
エンドポイント、送信元エンドポイントと宛先エンドポイント間の経路、宛先エンドポイント、経路の状態（status）、使用経路フラグが含まれている。
【００６０】
「宛先ＩＤ（８）」には、宛先エンドポイントの識別番号が格納される。「ルートＩＤ」には、１組の送信元エンドポイントと宛先エンドポイント間において、経路を識別するルートＩＤが格納される。図７では、宛先ＩＤ（８）、ルートＩＤは、１６進数表記、すなわち、４ビットを１桁として、２桁の番号で示されている。なお、以降、宛先ＩＤ（８）、ルートＩＤが２桁の番号で、宛先ＩＤ（１６）が４桁の番号で示される場合には、１桁は４ビットの値を示しているものとする。
【００６１】
「送信元エンドポイント」、「宛先エンドポイント」には、それぞれ、図７に示される例では、ｓＲＩＯスイッチのスイッチ名が格納されている。
【００６２】
送信元エンドポイントと宛先エンドポイント間の経路には、パケットが通過する順番でｓＲＩＯスイッチのスイッチ名が格納されている。送信元エンドポイントと宛先エンドポイント間の経路が複数ある場合には、優先度の高い経路から順に若番のルートＩＤが割り当てられる。したがって、ルートＩＤ＝００は最短経路を示す。
【００６３】
また、エンドポイントから出力されるパケットのルートＩＤは００であるので、初期状態では最短経路が用いられることになる。最短経路とは、経路のコストが最も小さい経路である。経路のコストは、例えば、経由するｓＲＩＯスイッチの数、リンクの帯域幅等に基づいて算出される値等のいずれかである。第１実施形態では、経由するｓＲＩＯスイッチの数を経路のコストとする。なお、最短経路以外の経路は、迂回経路となる。
【００６４】
「経路の状態（status）」には、経路の輻輳度が格納される。第１実施形態では、経路の輻輳度には、“Ｈｉｇｈ”、“Ｌｏｗ”、“ｐｒｅｌｉｍｉｎａｙ”がある。
【００６５】
経路の輻輳度“Ｈｉｇｈ”は、リンクの輻輳度が“Ｈｉｇｈ”の区間が少なくとも１つ含まれている経路であり、当該経路が輻輳状態に近いことを示す。
【００６６】
経路の輻輳度“ｐｒｅｌｉｍｉｎａｒｙ”は、リンクの輻輳度が“Ｈｉｇｈ”の区間は含まれていないが、使用経路として選択されている迂回経路と同じ区間を含んでいる経路であり、当該経路が輻輳状態となる可能性が“Ｈｉｇｈ”の経路の次に高いことを示す。
【００６７】
経路の輻輳度“Ｌｏｗ”は、リンクの輻輳度が“Ｈｉｇｈ”の区間が含まれておらず、且つ、使用経路として選択されている迂回経路と同じ区間も含んでいない経路であり、当該経路が輻輳状態となる可能性が低いことを示す。
【００６８】
「使用経路フラグ」は、当該経路が、当該送信元エンドポイントと宛先エンドポイント間の経路において、使用経路として選択されていることを示すフラグである。
【００６９】
経路の輻輳度が“Ｈｉｇｈ”、“ｐｒｅｌｉｍｉｎａｒｙ”である経路は、使用経路選択処理において、使用経路の候補から除外される。経路の輻輳度が“Ｈｉｇｈ”の経路は、輻輳状態に近い区間を含んでおり、トラフィックを現状よりも受け入れると輻輳が発生する可能性があるためである。
【００７０】
また、経路の輻輳度が“ｐｒｅｌｉｍｉｎａｒｙ”の経路は、使用経路として選択される迂回経路と同じ区間を含んでおり、平常時よりもトラフィック量が増えている区間を含んでいる。そのため、経路の輻輳度が“ｐｒｅｌｉｍｉｎａｒｙ”の経路は、トラフィックを現状よりも受け入れると輻輳が発生する可能性があるため、使用経路選択処理におい
て、使用経路の候補から除外される。
【００７１】
平常時とは、例えば、いずれのｓＲＩＯスイッチ１１間のリンクについても、輻輳度“Ｈｉｇｈ”の状態ではなく、スイッチ部１において、全ての送信元エンドポイントと宛先エンドポイント間が最短経路で中継されている状態を指す。経路の輻輳度が“ｐｒｅｌｉｍｉｎａｒｙ”の経路は、「輻輳予備群」の一例である。
【００７２】
なお、初期状態では、経路の輻輳度は“Ｌｏｗ”である。図７では、初期状態のルートＩＤ設定テーブル１４Ｂが示されている。また、基地局１００におけるユニットカードの接続関係は既知であるので、送信元エンドポイントと宛先エンドポイント間の全経路は予め設定されている。ルートＩＤ設定テーブル１４Ｂは、「記憶部」の一例である。
【００７３】
図８は、関連付けテーブル１２Ａの一例である。関連付けテーブル１２Ａは、例えば、ルートＩＤ変換部１２を実現するＦＰＧＡ内のメモリに格納されている。関連付けテーブル１２Ａは、宛先ＩＤ（８）とルートＩＤとの対応付けを保持する。
【００７４】
例えば、関連付けテーブル１２Ａの宛先ＩＤ（８）＝０１、ルートＩＤ＝０１のエントリは、ルートＩＤ変換部１２が、宛先ＩＤ（８）＝０１のパケットのルートＩＤを０１に書き換えることを示す。エンドポイントから入力されるパケットのルートＩＤは００であるので、関連付けテーブル１２ＡのルートＩＤが００でない場合には、ルートＩＤが変更されることが示される。関連付けテーブル１２Ａは、「第２の記憶部」の一例である。
【００７５】
例えば、スイッチ部１内の各ルートＩＤ変換部１２はそれぞれ関連付けテーブル１２Ａを備えており、各ルートＩＤ変換部１２が備える関連付けテーブル１２Ａの内容は同じ内容となる。
【００７６】
図９は、ｓＲＩＯスイッチ１１のルーティングテーブル１１Ａの一例である。ルーティングテーブル１１Ａは、例えば、ｓＲＩＯスイッチ１１を実現するＩＣチップ内のメモリに格納されている。ルーティングテーブル１１Ａは、入力ポートと宛先ＩＤ（１６）と出力ポートとの対応付けを保持する。
【００７７】
図９は、図２におけるｓＲＩＯスイッチ＃Ａのルーティングテーブル１１Ａの一部である。ｓＲＩＯスイッチ＃Ａのポート＃１にはエンドポイント＃Ａ１が接続されていることとする。ｓＲＩＯスイッチ＃Ａのポート＃６にはｓＲＩＯスイッチ＃Ｂが接続されていることとする。ｓＲＩＯスイッチ＃Ａのポート＃７にはｓＲＩＯスイッチ＃Ｃが接続されていることとする。
【００７８】
例えば、入力ポート：ポート＃１、宛先ＩＤ（１６）：０００１、出力ポート：ポート＃６のエントリは、エンドポイント＃Ａ１が接続されているポート＃１から入力された宛先ＩＤ（８）：０１（エンドポイント＃Ｂ１）のパケットは、ルートＩＤ：００の場合にはポート＃６からｓＲＩＯスイッチ＃Ｂに出力されることが示される。ルーティングテーブル１１Ａは、「第１の記憶部」の一例である。
【００７９】
＜処理の流れ＞
図１０は、輻輳監視部１３の処理のフローチャートの一例である。図１０に示される処理は、所定の周期で実行される。図１０に示される処理の実行周期は、例えば、１秒等の秒単位である。図１０では、輻輳監視部１３の監視対象のｓＲＩＯスイッチ１１間のリンクをリンク＃ＸＹ（Ｘ、Ｙ：ｓＲＩＯスイッチ＃Ａ〜Ｂのいずれかを示す変数）とする。
【００８０】
ＯＰ１では、輻輳監視部１３は、リンク＃ＸＹにおいて、輻輳度“Ｈｉｇｈ”となる検
出条件が満たされたことを検出したか否かを判定する。リンク＃ＸＹにおいて、輻輳度“Ｈｉｇｈ”となる検出条件が満たされたことが検出された場合には（ＯＰ１：ＹＥＳ）、処理がＯＰ２に進む。リンク＃ＸＹにおいて、輻輳度“Ｈｉｇｈ”となる検出条件が満たされたことが検出されていない場合には（ＯＰ１：ＮＯ）、処理がＯＰ３に進む。
【００８１】
ＯＰ２では、輻輳監視部１３は、輻輳度“Ｈｉｇｈ”となる検出条件が満たされたので、リンク＃ＸＹの輻輳度“Ｈｉｇｈ”を輻輳制御部１４に通知する。その後、図１０に示される処理が終了する。
【００８２】
ＯＰ３では、リンク＃ＸＹにおいて、輻輳度“Ｌｏｗ”となる検出条件が満たされたことを検出したか否かを判定する。リンク＃ＸＹにおいて、輻輳度“Ｌｏｗ”となる検出条件が満たされたことが検出された場合には（ＯＰ３：ＹＥＳ）、処理がＯＰ４に進む。リンク＃ＸＹにおいて、輻輳度“Ｌｏｗ”となる検出条件が満たされたことが検出されていない場合には（ＯＰ３：ＮＯ）、図１０に示される処理が終了する。
【００８３】
ＯＰ４では、輻輳監視部１３は、輻輳度“Ｌｏｗ”となる検出条件が満たされたので、リンク＃ＸＹの輻輳度“Ｌｏｗ”を輻輳制御部１４に通知する。その後、図１０に示される処理が終了する。
【００８４】
図１１Ａ及び図１１Ｂは、輻輳制御部１４の処理のフローチャートの一例である。図１１Ａに示される処理は、輻輳制御部１４が輻輳監視部１３のいずれかからリンクの輻輳度の通知を受信すると開始される。図１１Ａ及び図１１Ｂでは、輻輳監視部１３から輻輳度が通知されたリンクをリンク＃ＸＹとする。
【００８５】
ＯＰ１１では、輻輳制御部１４は、通知されたリンク＃ＸＹの輻輳度が“Ｈｉｇｈ”であるか否かを判定する。通知されたリンク＃ＸＹの輻輳度が“Ｈｉｇｈ”である場合には（ＯＰ１１：ＹＥＳ）、処理がＯＰ１２に進む。通知されたリンク＃ＸＹの輻輳度が“Ｈｉｇｈ”でない場合には（ＯＰ１１：ＮＯ）、処理が図１１ＢのＯＰ２１に進む。
【００８６】
ＯＰ１２では、輻輳制御部１４は、リンク状態管理テーブル１４Ａのリンク＃ＸＹの輻輳度に“Ｈｉｇｈ”を記録する。ＯＰ１３では、輻輳制御部１４は、ルートＩＤ設定テーブル１４Ｂにおいて、区間＃ＸＹを含む経路の「経路の状態」を“Ｈｉｇｈ”に設定する。
【００８７】
ＯＰ１４では、輻輳制御部１４は、使用経路選択処理を行う。使用経路選択処理の詳細は後述される。使用経路選択処理では、各送信元エンドポイントと宛先エンドポイント間の使用経路が選択される。
【００８８】
ＯＰ１５では、輻輳制御部１４は、いずれかの送信元エンドポイントと宛先エンドポイント間で使用経路の変更があるか否かを判定する。いずれかの送信元エンドポイントと宛先エンドポイント間で使用経路の変更がある場合には（ＯＰ１５：ＹＥＳ）、処理がＯＰ１６に進む。いずれの送信元エンドポイントと宛先エンドポイント間にも使用経路の変更がない場合には（ＯＰ１５：ＮＯ）、図１１Ａに示される処理が終了する。
【００８９】
ＯＰ１６では、輻輳制御部１４は、ルートＩＤ設定テーブル１４Ｂから、「経路の状態」が“Ｌｏｗ”又は“Ｐｒｅｌｉｍｉｎａｌｙ”である経路を抽出する。ＯＰ１７では、輻輳制御部１４は、ＯＰ１６において抽出した経路の「経路の状態」を“Ｌｏｗ”に設定する。
【００９０】
ＯＰ１８では、輻輳制御部１４は、ＯＰ１６において抽出された経路のうち、ルートＩ
Ｄ設定テーブル１４Ｂにおいて、ルートＩＤ＝００（最短経路）の経路を除く使用経路に含まれる区間と同じ区間を含む経路の「経路の状態」を“Ｐｒｅｌｉｍｉｎａｒｙ”に設定する。
【００９１】
ＯＰ１９では、輻輳制御部１４は、新たに選択された使用経路の宛先ＩＤ（８）とルートＩＤとの組み合わせを全てのルートＩＤ変換部１２に通知する。なお、輻輳制御部１４は、全ての使用経路をルートＩＤ変換部１２に通知してもよい。ルートＩＤ変換部１２は、輻輳制御部１４からの使用経路の通知を受信すると、使用経路の通知に基づいて関連付けテーブル１２Ａを更新する。その後、図１１Ａに示される処理が終了する。
【００９２】
図１１ＢのＯＰ２１では、輻輳制御部１４は、通知されたリンク＃ＸＹの輻輳度が“Ｌｏｗ”であるか否かを判定する。通知されたリンク＃ＸＹの輻輳度が“Ｌｏｗ”である場合には（ＯＰ２１：ＹＥＳ）、処理がＯＰ２２に進む。通知されたリンク＃ＸＹの輻輳度が“Ｌｏｗ”でない場合には（ＯＰ２１：ＮＯ）、図１１Ｂに示される処理が終了する。
【００９３】
ＯＰ２２では、輻輳制御部１４は、リンク状態管理テーブル１４Ａのリンク＃ＸＹの輻輳度に“Ｌｏｗ”を記録する。ＯＰ２３では、輻輳制御部１４は、ルートＩＤ設定テーブル１４Ｂから区間＃ＸＹを含む経路を抽出する。
【００９４】
ＯＰ２４とＯＰ２５の処理は、ＯＰ２３において抽出された各経路に対して実行される。ＯＰ２４では、輻輳制御部１４は、抽出した経路上の区間にリンクの輻輳度が“Ｈｉｇｈ”である区間が含まれるか否かを判定する。各区間のリンクの輻輳度は、リンク状態管理テーブル１４Ａから取得される。
【００９５】
抽出した経路上の区間にリンクの輻輳度が“Ｈｉｇｈ”である区間が含まれる場合には（ＯＰ２４：ＹＥＳ）、抽出された次の経路の処理に移るか、又は、抽出された全ての経路について処理が終了した場合には図１１Ｂに示される処理が終了し、処理が図１１ＡのＯＰ１４に進む。
【００９６】
抽出した経路上の区間にリンクの輻輳度が“Ｈｉｇｈ”である区間が含まれない場合には（ＯＰ２４：ＮＯ）、処理がＯＰ２５に進む。ＯＰ２５では、輻輳制御部１４は、ルートＩＤ設定テーブル１４Ｂの当該経路の「経路の状態」を“Ｌｏｗ”に設定する。その後、処理がＯＰ２４に進み、抽出された次の経路の処理に移るか、又は、抽出された全ての経路について処理が終了した場合には図１１Ｂに示される処理が終了し、処理が図１１ＡのＯＰ１４に進む。
【００９７】
図１２は、輻輳制御部１４の使用経路選択処理のフローチャートの一例である。図１２に示される使用経路選択処理は、図１１ＡのＯＰ１４において行われる処理である。図１２に示される処理は、ルートＩＤ設定テーブル１４Ｂ内の全ルートに対して行われる。宛先ＩＤ（８）を示す変数をｎ（０からＮの整数、Ｎは宛先ＩＤ（８）の最大値）とする。ルートＩＤを示す変数をｍ（０からＭの整数、ＭはルートＩＤの最大値）とする。
【００９８】
ＯＰ３１では、輻輳制御部１４は、宛先ＩＤ（８）＝ｎ、ルートＩＤ＝ｍの経路が使用経路として選択されているか否かを判定する。宛先ＩＤ（８）＝ｎ、ルートＩＤ＝ｍの経路が使用経路として選択されていることは、ルートＩＤ設定テーブル１４Ｂの宛先ＩＤ（８）＝ｎ、ルートＩＤ＝ｍのエントリの「使用経路フラグ」に１が設定されていることによって判定される。
【００９９】
宛先ＩＤ（８）＝ｎ、ルートＩＤ＝ｍの経路が使用経路として選択されている場合には（ＯＰ３１：ＹＥＳ）、処理がＯＰ３１に進む。宛先ＩＤ（８）＝ｎ、ルートＩＤ＝ｍの
経路が使用経路として選択されていない場合には（ＯＰ３１：ＮＯ）、宛先ＩＤ（８）＝ｎ、ルートＩＤ＝ｍの経路についての処理が終了し、次の経路（宛先ＩＤ（８）＝ｎ、ルートＩＤ＝ｍ＋１の経路、又は、宛先ＩＤ（８）＝ｎ＋１、ルートＩＤ＝００の経路）についての処理が行われる。全経路について処理が終了している場合には、処理が図１１ＡのＯＰ１５に進む。
【０１００】
ＯＰ３２では、輻輳制御部１４は、宛先ＩＤ（８）＝ｎ、ルートＩＤ＝ｍの経路の「経路の状態」が“Ｌｏｗ”であるか否かを判定する。宛先ＩＤ（８）＝ｎ、ルートＩＤ＝ｍの経路の「経路の状態」が“Ｌｏｗ”である場合には（ＯＰ３２：ＹＥＳ）、処理がＯＰ３３に進む。宛先ＩＤ（８）＝ｎ、ルートＩＤ＝ｍの経路の「経路の状態」が“Ｌｏｗ”でない場合には（ＯＰ３２：ＮＯ）、宛先ＩＤ（８）＝ｎ、ルートＩＤ＝ｍの経路についての処理が終了し、次の経路（宛先ＩＤ（８）＝ｎ、ルートＩＤ＝ｍ＋１の経路、又は、宛先ＩＤ（８）＝ｎ＋１、ルートＩＤ＝００の経路）についての処理が行われる。全経路について処理が終了している場合には、処理が図１１ＡのＯＰ１５に進む。
【０１０１】
ＯＰ３３では、輻輳制御部１４は、宛先ＩＤ（８）＝ｎ、ルートＩＤ＝ｍの経路を使用経路に設定する。このとき、ルートＩＤ設定テーブル１４Ｂの宛先ＩＤ（８）＝ｎ、ルートＩＤ＝ｍの経路の「使用経路フラグ」に「１」が設定される。その後、宛先ＩＤ（８）＝ｎ、ルートＩＤ＝ｍの経路についての処理が終了し、次の経路（宛先ＩＤ（８）＝ｎ、ルートＩＤ＝ｍ＋１の経路、又は、宛先ＩＤ＝ｎ＋１、ルートＩＤ＝００の経路）についての処理が行われる。全経路について処理が終了している場合には、処理が図１１ＡのＯＰ１５に進む。
【０１０２】
図１２に示される使用経路選択処理では、経路の輻輳度が“Ｌｏｗ”である経路のうち、ルートＩＤのより小さい経路が使用経路に選択される。これによって、ルートＩＤ＝００の最短経路の輻輳度が“Ｌｏｗ”である場合には、最短経路が使用経路として選択される。
【０１０３】
ただし、使用経路の選択方法は、図１２に示される例に限定されない。例えば、最短経路の代わりに、輻輳度が“Ｌｏｗ”であり、且つ、ルートＩＤが最も大きい経路が選択されてもよい。または、例えば、最短経路の代わりに、輻輳度が“Ｌｏｗ”であり、且つ、ランダムに選択されたルートＩＤの経路が選択されてもよい。ただし、いずれの場合には、ルートＩＤ＝００の最短経路の輻輳度が“Ｌｏｗ”である場合には、最短経路が使用経路として選択されることとする。
【０１０４】
図１３は、ルートＩＤ変換部１２の使用経路の通知の受信時の処理のフローチャートの一例である。図１３に示される処理は、スイッチ部１の稼働中繰り返し実行される。
【０１０５】
ＯＰ４１では、ルートＩＤ変換部１２は、輻輳制御部１４から使用経路の通知を受信したか否かを判定する。使用経路の通知を受信した場合には（ＯＰ４１：ＹＥＳ）、処理がＯＰ４２に進む。使用経路の通知を受信していない場合には（ＯＰ４１：ＮＯ）、図１３に示される処理が終了する。
【０１０６】
ＯＰ４２では、ルートＩＤ変換部１２は、輻輳制御部１４から受信した使用経路の通知で関連付けテーブル１２Ａを更新する。その後、図１３に示される処理が終了する。
【０１０７】
図１４は、ルートＩＤ変換部１２のパケット受信時の処理のフローチャートの一例である。図１４に示される処理は、スイッチ部１の稼働中繰り返し実行される。
【０１０８】
ＯＰ５１では、ルートＩＤ変換部１２は、パケットを受信したか否かを判定する。パケ
ットを受信した場合には（ＯＰ５１：ＹＥＳ）、処理がＯＰ５２に進む。パケットを受信していない場合には（ＯＰ５１：ＮＯ）、図１４に示される処理が終了する。
【０１０９】
ＯＰ５２では、ルートＩＤ変換部１２は、パケットのルートＩＤを、パケットの宛先ＩＤ（８）と宛先ＩＤ（８）が一致する関連付けテーブル１２ＡのエントリのルートＩＤに書き換える。
【０１１０】
ＯＰ５３では、ルートＩＤ変換部１２は、パケットをｓＲＩＯスイッチ１１に出力する。その後、図１４に示される処理が終了する。
【０１１１】
＜具体例＞
図１５は、具体例に係るスイッチ部１におけるトラフィックの流れの一例を示す図である。図１５では、便宜上、ルートＩＤ変換部１２、輻輳監視部１３、輻輳制御部１４は省略され、ｓＲＩＯスイッチ１１とエンドポイントのトポロジが示されている。以下、具体例におけるトポロジの図示において同様である。
【０１１２】
具体例に係るスイッチ部１のトポロジは、図２に示されるスイッチ部１のトポロジと同様である。スイッチ部１は、ｓＲＩＯスイッチ＃Ａ〜＃Ｄを備え、ｓＲＩＯスイッチ＃Ａ〜＃Ｄはフルメッシュで接続されている。ｓＲＩＯスイッチ＃Ａにはエンドポイント＃Ａ１〜＃Ａｎが接続されている。ｓＲＩＯスイッチ＃Ｂにはエンドポイント＃Ｂ１〜＃Ｂｎが接続されている。ｓＲＩＯスイッチ＃Ｃにはエンドポイント＃Ｃ１〜＃Ｃｎが接続されている。ｓＲＩＯスイッチ＃Ｄにはエンドポイント＃Ｄ１〜＃Ｄｎが接続されている。
【０１１３】
具体例では、スイッチ部１において、エンドポイント＃Ａ１からエンドポイント＃Ｂ１へのトラフィックと、エンドポイント＃Ｄ１からエンドポイント＃Ｃ１へのトラフィックとが流れていることを想定する。
【０１１４】
図１５では、ｓＲＩＯスイッチ１１間のいずれのリンクにも輻輳が発生していない状態から、リンク＃ＡＢの輻輳度が“Ｈｉｇｈ”として検出されたことを想定する。リンク＃ＡＢの輻輳度“Ｈｉｇｈ”は、輻輳検出部＃ＡＢによって検出される（図１０、ＯＰ１）。輻輳検出部＃ＡＢは、輻輳制御部１４に、リンク＃ＡＢの輻輳度“Ｈｉｇｈ”を通知する(図１０、ＯＰ２)。
【０１１５】
図１６は、輻輳制御部１４が輻輳監視部＃ＡＢからリンク＃ＡＢの輻輳度“Ｈｉｇｈ”の通知を受信した場合の輻輳制御部１４による処理実行後のルートＩＤ設定テーブル１４Ｂの一例を示す図である。なお、図１６では、ルートＩＤ設定テーブル１４Ｂの、送信元エンドポイント＃Ａ１と宛先エンドポイント＃Ｂ１との間の経路と、送信元エンドポイント＃Ｄ１と宛先エンドポイント＃Ｃ１との間の経路とが抽出されて示されている。以下、具体例におけるルートＩＤ設定テーブル１４Ｂの例においても同様とする。以下、宛先ＩＤ（８）＝ｘｘ、ルートＩＤ＝ｙｙの経路を、経路＃ｘｘｙｙ、と表記する。
【０１１６】
（１）リンクの輻輳度“Ｈｉｇｈ”である区間＃ＡＢを含む経路＃０１００、経路＃１１０３の「経路の状態」が“Ｌｏｗ”から“Ｈｉｇｈ”に設定される（図１１Ａ、ＯＰ１３）。
【０１１７】
（２）送信元エンドポイント＃Ａ１と宛先エンドポイント＃Ｂ１との間において、使用経路である経路＃０１００の「経路の状態」が“Ｈｉｇｈ”となるので、使用経路が変更される。新しい使用経路には、「経路の状態」が“Ｌｏｗ”であり、且つ、ルートＩＤが経路＃０１００の次に小さい経路＃０１０１が選択される（図１２）。なお、送信元エンドポイント＃Ｄ１と宛先エンドポイント＃Ｃ１間の経路では使用経路に変更はない。
【０１１８】
（３）新たに使用経路に選択された経路＃０１０１と同じ区間＃ＡＣ、区間ＣＢを含む経路＃０１０３、経路＃０１０４、経路＃１１０１、経路＃１１０４の「経路の状態」が“Ｌｏｗ”から“Ｐｒｅｌｉｍｉｎａｒｙ”に変更される（図１１Ａ、ＯＰ１５〜ＯＰ１８）。輻輳制御部１４は、ルートＩＤ変換部１２に、新たな使用経路として、経路＃０１０１を通知する（図１１Ａ、ＯＰ１９）。
【０１１９】
図１７は、送信元エンドポイント＃Ａ１と宛先エンドポイント＃Ｂ１との間の使用経路の変更後の関連付けテーブル１２Ａの一例である。図１７では、関連付けテーブル１２Ａの中から、宛先ＩＤ（８）＝０１、宛先ＩＤ（８）＝１１のエントリが抽出されて示されている。図１７に示される例では、宛先ＩＤ（８）＝０１のエントリのルートＩＤが「００」から「０１」に変更されている。
【０１２０】
例えば、ルートＩＤ変換部＃Ａに、送信元エンドポイント＃Ａ１から宛先エンドポイント＃Ｂ１へのパケットが入力される場合には、当該パケットのヘッダには、ルートＩＤ＝００、宛先ＩＤ（８）＝０１が格納される。ルートＩＤ変換部＃Ａは、関連付けテーブル１２Ａ内の宛先ＩＤ（８）＝０１のエントリのルートＩＤが「０１」であるので、入力パケットのヘッダ内のルートＩＤを「０１」に書き換えてｓＲＩＯスイッチ＃Ａに出力する。
【０１２１】
ルートＩＤ変換部＃ＡによってルートＩＤが書き換えられたパケットは、エンドポイント＃Ａ１が接続されているポート＃１からｓＲＩＯスイッチ＃Ａに入力される。
【０１２２】
ｓＲＩＯスイッチ＃Ａは、例えば、図９に示されるルーティングテーブル１１Ａを保持していることとする。図９に示されるルーティングテーブル１１Ａにおいて、入力ポート＃１、宛先ＩＤ（１６）＝０１０１に対応付けられている出力ポートはポート＃７である。ｓＲＩＯスイッチ＃Ａのポート＃７にはｓＲＩＯスイッチ＃Ｃが接続されている。したがって、エンドポイント＃Ａ１から出力され、ルートＩＤが書き換えられたパケットは、ｓＲＩＯスイッチ＃Ｃに出力される。
【０１２３】
当該パケットがｓＲＩＯスイッチ＃Ｃに入力されると、ｓＲＩＯスイッチ＃Ｃによって、ｓＲＩＯスイッチ＃Ｂに転送される。当該パケットがｓＲＩＯスイッチ＃Ｂに入力されると、ｓＲＩＯスイッチ＃Ｂによって宛先エンドポイント＃Ｂ１に転送される。したがって、当該パケットは、ｓＲＩＯスイッチ＃Ａ→ｓＲＩＯスイッチ＃Ｃ→ｓＲＩＯスイッチ＃Ｂの経路＃０１０１を通過することになる。
【０１２４】
ここで、ルートＩＤが変換される前の宛先情報（１６）＝０１００のパケットについて見てみると、図９に示されるルーティングテーブル１１Ａにおいて、入力ポート＃１、宛先ＩＤ（１６）＝０１００に対応付けられている出力ポートはポート＃６である。ｓＲＩＯスイッチ＃Ａのポート＃６にはｓＲＩＯスイッチ＃Ｂが接続されている。したがって、エンドポイント＃Ａ１から出力され、ルートＩＤが変更されなかったパケットは、ｓＲＩＯスイッチ＃Ｂに出力される。
【０１２５】
当該パケットがｓＲＩＯスイッチ＃Ｂに入力されると、ｓＲＩＯスイッチ＃Ｂによって宛先エンドポイント＃Ｂ１に転送される。したがって、当該パケットは、ｓＲＩＯスイッチ＃Ａ→ｓＲＩＯスイッチ＃Ｂの経路＃０１００を通過することになる。
【０１２６】
したがって、リンク＃ＡＢ間の輻輳度が“Ｈｉｇｈ”と判定されることによって、送信元エンドポイント＃Ａ１から宛先エンドポイント＃Ｂ１へのトラフィックの経路が、ｓＲＩＯスイッチ＃Ａ→ｓＲＩＯスイッチ＃Ｂの経路からｓＲＩＯスイッチ＃Ａ→ｓＲＩＯス
イッチ＃Ｃ→ｓＲＩＯスイッチ＃Ｂの経路に切り替えられたことが分かる。
【０１２７】
図１８は、送信元エンドポイント＃Ａ１から宛先エンドポイント＃Ｂ１へのトラフィックの経路の切替後のスイッチ部１におけるトラフィックの流れの一例を示す図である。送信元エンドポイント＃Ａ１から宛先エンドポイント＃Ｂ１へのトラフィックの経路が切り替わったことによって、区間＃ＡＣ、区間＃ＣＢを含む経路が「経路の状態」“Ｐｒｅｌｉｍｉｎａｒｙ”の輻輳予備群となる。
【０１２８】
次に、送信元エンドポイント＃Ａ１から宛先エンドポイント＃Ｂ１へのトラフィックの経路が切りかえられた状態で、リンク＃ＤＣの輻輳度が“Ｈｉｇｈ”として検出されたことを想定する。リンク＃ＤＣの輻輳度“Ｈｉｇｈ”は、輻輳検出部＃ＤＣによって検出される（図１０、ＯＰ１）。輻輳検出部＃ＤＣは、輻輳制御部１４に、リンク＃ＤＣの輻輳度“Ｈｉｇｈ”を通知する(図１０、ＯＰ２)。
【０１２９】
図１９は、輻輳制御部１４が輻輳監視部＃ＤＣからリンク＃ＤＣの輻輳度“Ｈｉｇｈ”の通知を受信した場合の輻輳制御部１４による処理実行後のルートＩＤ設定テーブル１４Ｂの一例を示す図である。
【０１３０】
（１）区間＃ＤＣを含む経路＃１１００の「経路の状態」が“Ｌｏｗ”から“Ｈｉｇｈ”に設定される（図１１Ａ、ＯＰ１３）。区間＃ＤＣを含む経路＃０１０４の「経路の状態」が“Ｐｒｅｌｉｍｉｎａｒｙ”から“Ｈｉｇｈ”に設定される（図１１Ａ、ＯＰ１３）。
【０１３１】
（２）送信元エンドポイント＃Ｄ１と宛先エンドポイント＃Ｃ１との間において、使用経路であった経路＃１１００の「経路の状態」が“Ｈｉｇｈ”となるので、使用経路が変更される。新しい使用経路には、「経路の状態」が“Ｌｏｗ”である経路の中で最もルートＩＤが小さい経路＃１１０２のルートが選択される（図１２）。
【０１３２】
ここで、経路＃１１０２よりもルートＩＤが小さい経路＃１１０１は、「経路の状態」が“Ｐｒｅｌｉｍｉｎａｒｙ”であるので、新しい使用経路には選択されない。なお、送信元エンドポイント＃Ａ１と宛先エンドポイント＃Ｂ１間の経路では使用経路に変更はない。
【０１３３】
（３）「経路の状態」が“Ｐｒｅｌｉｍｉｎａｒｙ”である経路＃０１０３、経路＃１１０１、経路＃＃１１０４の「経路の状態」が“Ｌｏｗ”に設定される（図１１Ａ、ＯＰ１６、ＯＰ１７）。
【０１３４】
（４）ルートＩＤ＝００以外の使用経路に選択されている経路＃０１０１、経路＃１１０２と同じ区間＃ＡＣ、区間＃ＣＢ、区間＃ＤＢ、区間ＢＣを含む経路＃０１０２、経路＃０１０３、経路＃１１０１、経路＃１１０４の「経路の状態」が“Ｌｏｗ”から“Ｐｒｅｌｉｍｉｎａｒｙ”に変更される（図１１Ａ、ＯＰ１８）。輻輳制御部１４は、ルートＩＤ変換部１２に、新たな使用経路として、経路＃１１０２を通知する（図１１Ａ、ＯＰ１９）。
【０１３５】
図２０は、送信元エンドポイント＃Ｄ１と宛先エンドポイント＃Ｃ１との間の使用経路の変更後の関連付けテーブル１２Ａの一例である。図２０に示される例では、図１７に示される例から、宛先ＩＤ（８）＝１１のエントリのルートＩＤが「００」から「０２」に変更されている。
【０１３６】
例えば、ルートＩＤ変換部＃Ｄに、送信元エンドポイント＃Ｄ１から宛先エンドポイン
ト＃Ｃ１へのパケットが入力される場合には、当該パケットのヘッダには、ルートＩＤ＝００、宛先ＩＤ（８）＝１１が格納されている。ルートＩＤ変換部＃Ｄは、関連付けテーブル１２Ａ内の宛先ＩＤ（８）＝１１のエントリのルートＩＤが「０２」であるので、入力パケットのヘッダ内のルートＩＤを「０２」に書き換えてｓＲＩＯスイッチ＃Ｄに出力する。
【０１３７】
詳細な説明は省略するが、パケットのルートＩＤが「００」から「０２」に書き換えられることによって、送信元エンドポイント＃Ｄ１から宛先エンドポイント＃Ｃ１へのトラフィックの経路が、ｓＲＩＯスイッチ＃Ｄ→ｓＲＩＯスイッチ＃Ｃの経路＃１１００からｓＲＩＯスイッチ＃Ｄ→ｓＲＩＯスイッチ＃Ｂ→ｓＲＩＯスイッチ＃Ｃの経路＃１１０２に切り替えられる。
【０１３８】
図２１は、送信元エンドポイント＃Ｄ１から宛先エンドポイント＃Ｃ１へのトラフィックの経路の切替後のスイッチ部１におけるトラフィックの流れの一例を示す図である。送信元エンドポイント＃Ｄ１から宛先エンドポイント＃Ｃ１へのトラフィックの経路が切り替わったことによって、新たに、区間＃ＤＢ、区間＃ＢＣを含む経路が輻輳予備群となる。
【０１３９】
次に、送信元エンドポイント＃Ａ１から宛先エンドポイント＃Ｂ１へのトラフィック及び送信元エンドポイント＃Ｄ１から宛先エンドポイント＃Ｃ１へのトラフィックの経路が切りかえられた状態で、リンク＃ＡＢの輻輳度が“Ｌｏｗ”として検出されたことを想定する。リンク＃ＡＢの輻輳度“Ｌｏｗ”は、輻輳検出部＃ＤＣによって検出される（図１０、ＯＰ３：ＹＥＳ）。輻輳検出部＃ＡＢは、輻輳制御部１４に、リンク＃ＡＢの輻輳度“Ｌｏｗ”を通知する(図１０、ＯＰ４)。
【０１４０】
図２２は、輻輳制御部１４が輻輳監視部＃ＡＢからリンク＃ＡＢの輻輳度“Ｌｏｗ”の通知を受信した場合の輻輳制御部１４による処理実行後のルートＩＤ設定テーブル１４Ｂの一例を示す図である。
【０１４１】
（１）区間＃ＡＢを含む経路＃０１０１の「経路の状態」が“Ｈｉｇｈ”から“Ｌｏｗ”に設定される（図１１Ｂ、ＯＰ２３、ＯＰ２４：ＮＯ、ＯＰ２５）。また、区間＃ＡＢを含む経路＃１１０３の「経路の状態」が“Ｐｒｅｌｉｍｉｎａｒｙ”から“Ｌｏｗ”に設定される（図１１Ｂ、ＯＰ２３、ＯＰ２４：ＮＯ、ＯＰ２５）。
【０１４２】
（２）送信元エンドポイント＃Ａ１と宛先エンドポイント＃Ｂ１との間の経路の使用経路において、最もルートＩＤの小さい経路＃０１００の「経路の状態」が“Ｌｏｗ”となるので、経路＃０１００が新たに使用経路として選択される（図１２）。
【０１４３】
なお、送信元エンドポイント＃Ｄ１と宛先エンドポイント＃Ｃ１間の使用経路＃１１０２よりもルートＩＤが小さい経路＃１１０１は、この時点では「経路の状態」が“Ｐｒｅｌｉｍｉｎａｒｙ”であるので、送信元エンドポイント＃Ｄ１と宛先エンドポイント＃Ｃ１間では使用経路に変更はない。
【０１４４】
（３）「経路の状態」が“Ｐｒｅｌｉｍｉｎａｒｙ”である経路＃０１０２、経路＃１１０３、経路＃１１０１、経路＃１１０４の「経路の状態」が“Ｌｏｗ”に設定される（図１１Ａ、ＯＰ１６、ＯＰ１７）。
【０１４５】
（４）ルートＩＤ＝００以外の使用経路に選択されている経路＃１１０２と同じ区間＃ＤＢ、区間ＢＣを含む経路＃０１０２、経路＃０１０３、経路＃１１０３、経路＃１１０４の「経路の状態」が“Ｌｏｗ”から“Ｐｒｅｌｉｍｉｎａｒｙ”に変更される（図１１
Ａ、ＯＰ１８）。輻輳制御部１４は、ルートＩＤ変換部１２に、新たな使用経路として、経路＃０１００を通知する（図１１Ａ、ＯＰ１９）。ルートＩＤ変換部１２において、関連付けテーブル１２Ａの宛先ＩＤ（０８）のルートＩＤが「０１」から「００」に書き換えられるので、送信元エンドポイント＃Ａ１から宛先エンドポイント＃Ｂ１へのトラフィックの経路が、ｓＲＩＯスイッチ＃Ａ→ｓＲＩＯスイッチ＃Ｂの経路に切替られる。
【０１４６】
図２３は、輻輳制御部１４が輻輳監視部＃ＤＣからリンク＃ＤＣの輻輳度“Ｌｏｗ”の通知を受信した場合の輻輳制御部１４による処理実行後のルートＩＤ設定テーブル１４Ｂの一例を示す図である。
【０１４７】
（１）区間＃ＤＣを含む経路＃１１００、経路＃０１０４の「経路の状態」が“Ｈｉｇｈ”から“Ｌｏｗ”に設定される（図１１Ｂ、ＯＰ２２、ＯＰ２４：ＹＥＳ、ＯＰ２５）。  
【０１４８】
（２）送信元エンドポイント＃Ｄ１と宛先エンドポイント＃Ｃ１との間の経路の使用経路において、最もルートＩＤの小さい経路＃１１００の「経路の状態」が“Ｌｏｗ”となるので、経路＃１１００が新たに使用経路として選択される（図１２）。なお、送信元エンドポイント＃Ａ１と宛先エンドポイント＃Ｂ１間の使用経路に変更はない。
【０１４９】
（３）「経路の状態」が“Ｐｒｅｌｉｍｉｎａｒｙ”である経路＃０１０２、経路＃１１０３、経路＃１１０３、経路＃１１０４の「経路の状態」が“Ｌｏｗ”に設定される（図１１Ａ、ＯＰ１６、ＯＰ１７）。ルートＩＤ＝００以外の使用経路に選択されている経路は存在しないので、「経路の状態」が“Ｐｒｅｌｉｍｉｎａｒｙ”に変更される経路も存在しない（図１１Ａ、ＯＰ１８）。輻輳制御部１４は、ルートＩＤ変換部１２に、新たな使用経路として、経路＃１１００を通知する（図１１Ａ、ＯＰ１９）。これによって、ルートＩＤ設定テーブル１４Ｂは、最短経路が使用経路として選択される初期状態へと戻る。
【０１５０】
＜第１実施形態の作用効果＞
第１実施形態では、輻輳監視部１３がｓＲＩＯスイッチ１１間のリンクが輻輳状態になる前に輻輳度“Ｈｉｇｈ”として検出して輻輳制御部１４に通知し、輻輳制御部１４が輻輳度“Ｈｉｇｈ”のリンクを迂回する経路を新たな使用経路として選択する。これによって、ｓＲＩＯスイッチ１１間で輻輳が発生することを抑制でき、パケットの廃棄を抑制できる。
【０１５１】
また、第１実施形態では、新たに使用経路して選択された経路と同じリンクを含む経路は輻輳予備群（“Ｐｒｅｌｉｍｉｎａｒｙ”）として保持され、次に新たに使用経路が選択される際には、使用経路の候補から除外される（図１２）。輻輳予備群の経路は、全てのリンクの輻輳度が“Ｌｏｗ”である場合に比べてトラフィック量が増えているリンクを含む経路であり、輻輳が発生する可能性が高い。したがって、使用経路が選択される際に使用経路の候補から輻輳予備群の経路が除外されることによって、輻輳の発生を抑制することができる。
【０１５２】
また、第１実施形態では、輻輳制御部１４は、新たに選択された使用経路を各ルートＩＤ変換部１２に通知する。ルートＩＤ変換部１２が輻輳制御部１４から通知された新たな使用経路で関連付けテーブル１２Ａを更新すると、ｓＲＩＯスイッチ１１に入力されるパケットのルートＩＤが新たな経路に書き換えられるため、ｓＲＩＯスイッチ１１間で経路切替を行うことができる。経路切替が行われることによって、リンクの輻輳度が“Ｈｉｇｈ“のリンクのトラフィック量を軽減することができ、輻輳の収束を早めることができる。
【０１５３】
＜第２実施形態＞
第２実施形態では、送信元エンドポイント＃Ｘから宛先エンドポイント＃Ｙへの最短経路から迂回経路への切替が発生した場合に、優先度の低いパケットについては迂回経路を通らせ、優先度の高いパケットは最短経路を通らせるようにする。第２実施形態では、第１実施形態と重複する説明は省略される。
【０１５４】
図５に示されるように、ｓＲＩＯパケットのヘッダには優先度のフィールドが含まれている。例えば、ｓＲＩＯパケットのヘッダ内の優先度は、エンドポイントによって設定される。ｓＲＩＯパケットの優先度は、パケットの種類、ＩＰ（Internet Protocol）パケ
ットヘッダ内の優先度等に基づいて設定される。例えば、音声や動画のパケットは優先度が高く設定される。
【０１５５】
図２４は、第２実施形態に係る関連付けテーブル１２Ａの一例である。第２実施形態では、関連付けテーブル１２Ａは、宛先ＩＤ（８）と優先度とルートＩＤとの対応付けを含む。そのため、関連付けテーブル１２Ａには、１つの宛先ＩＤ（８）につき優先度の数分のエントリが保持されることとなる。優先度は値が小さいほど優先度が高いことを示すものとする。ただし、優先度は、値が大きいほど優先度が高いものであってもよい。
【０１５６】
例えば、関連付けテーブル１２Ａの宛先ＩＤ（８）＝０１、優先度＝１、ルートＩＤ＝００のエントリは、ルートＩＤ変換部１２が、宛先ＩＤ（８）＝０１、優先度＝１のパケットのルートＩＤを００に書き換えることを示す。
【０１５７】
図２５は、第２実施形態に係るルートＩＤ変換部１２の使用経路の通知の受信時の処理のフローチャートの一例である。図２５に示される処理は、スイッチ部１の稼働中繰り返し実行される。
【０１５８】
ＯＰ６１では、ルートＩＤ変換部１２は、輻輳制御部１４から使用経路の通知を受信したか否かを判定する。使用経路の通知を受信した場合には（ＯＰ６１：ＹＥＳ）、処理がＯＰ６２に進む。使用経路の通知を受信していない場合には（ＯＰ６１：ＮＯ）、図２５に示される処理が終了する。
【０１５９】
ＯＰ６２では、ルートＩＤ変換部１２は、輻輳制御部１４から通知された使用経路の宛先ＩＤ（８）と宛先ＩＤ（８）が一致し、且つ、優先度の最も低い関連付けテーブル１２ＡのエントリのルートＩＤを、輻輳制御部１４から通知された使用経路のルートＩＤに書き換える。その後、図２５に示される処理が終了する。
【０１６０】
図２６は、第２実施形態に係るルートＩＤ変換部１２のパケット受信時の処理のフローチャートの一例である。図２６に示される処理は、スイッチ部１の稼働中繰り返し実行される。
【０１６１】
ＯＰ７１では、ルートＩＤ変換部１２は、パケットを受信したか否かを判定する。パケットを受信した場合には（ＯＰ７１：ＹＥＳ）、処理がＯＰ７２に進む。パケットを受信していない場合には（ＯＰ７１：ＮＯ）、図２６に示される処理が終了する。
【０１６２】
ＯＰ７２では、ルートＩＤ変換部１２は、パケットのルートＩＤを、パケットの宛先ＩＤ（８）及び優先度と、宛先ＩＤ（８）及び優先度が一致する関連付けテーブル１２ＡのエントリのルートＩＤに書き換える。
【０１６３】
ＯＰ７３では、ルートＩＤ変換部１２は、パケットをｓＲＩＯスイッチ１１に出力する
。その後、図２６に示される処理が終了する。
【０１６４】
図２７は、送信元エンドポイント＃Ａ１から宛先エンドポイント＃Ｂ１間の使用経路が経路＃０１００から経路＃０１０１に変更され、使用経路＃０１０１の通知を受けた場合の関連付けテーブル１２Ａの一例である。
【０１６５】
ルートＩＤ変換部１２は、使用経路＃０１０１（ルートＩＤ＝０１、宛先ＩＤ＝１）の宛先ＩＤ（８）＝０１と宛先ＩＤ（８）が一致し、且つ、最も優先度の低い、宛先ＩＤ（８）＝０１、優先度＝２のエントリのルートＩＤを「００」から「０１」に変更する。
【０１６６】
図２８は、図２７に示される関連付けテーブル１２Ａが適用された場合のスイッチ部１内のトラフィックの流れの一例を示す図である。送信元エンドポイント＃Ａ１から宛先エンドポイント＃Ｂ１間の使用経路が変更されて、経路＃０１０１（ｓＲＩＯスイッチ＃Ａ→ｓＲＩＯスイッチ＃Ｃ→ｓＲＩＯスイッチ＃Ｂ）が新たな使用経路として選択されていることを想定する。
【０１６７】
図２７に示される関連付けテーブル１２Ａでは、宛先ＩＤ＝００で優先度０又は優先度１のパケットは、ルートＩＤは００のままである。一方、宛先ＩＤ＝００で優先度２のパケットは、ルートＩＤは「００」から「０１」に書き換えられる。したがって、送信元エンドポイント＃Ａ１から宛先エンドポイント＃Ｂ１のトラフィックのうち、優先度＝０又は優先度＝１のパケットは最短経路＃０１００（ｓＲＩＯスイッチ＃Ａ→ｓＲＩＯスイッチ＃Ｂ）を通り、優先度＝２のパケットは経路＃０１０１（ｓＲＩＯスイッチ＃Ａ→ｓＲＩＯスイッチ＃Ｃ→ｓＲＩＯスイッチ＃Ｂ）を通ることとなる。
【０１６８】
＜第２実施形態の作用効果＞
第２実施形態によれば、ｓＲＩＯスイッチ１１間のリンクのいずれかにおいてリンクの輻輳度が“Ｈｉｇｈ”となり、使用経路が最短経路から迂回経路に切り替えられる場合でも、優先度の高いトラフィックは最短経路を通すことができる。
【０１６９】
＜その他＞
第１実施形態及び第２実施形態では、ｓＲＩＯスイッチ１１による中継が行われるシステムを例に説明された。ただし、ｓＲＩＯスイッチ１１による中継が行われるシステムに限定されず、第１実施形態及び第２実施形態で説明された技術は、ネットワークスイッチによる中継が行われる通信システムにも適用可能である。
【符号の説明】
【０１７０】
１        スイッチ部
１１      ｓＲＩＯスイッチ
１１Ａ    ルーティングテーブル
１２      ルートＩＤ変換部
１２Ａ    関連付けテーブル
１３      輻輳監視部
１４      輻輳制御部
１４Ａ    リンク状態管理テーブル
１４Ｂ    ルートＩＤ設定テーブル
【図１】
2019004375.tif 000003
【図２】
2019004375.tif 000004
【図３】
2019004375.tif 000005
【図４】
2019004375.tif 000006
【図５】
2019004375.tif 000007
【図６】
2019004375.tif 000008
【図７】
2019004375.tif 000009
【図８】
2019004375.tif 000010
【図９】
2019004375.tif 000011
【図１０】
2019004375.tif 000012
【図１１Ａ】
2019004375.tif 000013
【図１１Ｂ】
2019004375.tif 000014
【図１２】
2019004375.tif 000015
【図１３】
2019004375.tif 000016
【図１４】
2019004375.tif 000017
【図１５】
2019004375.tif 000018
【図１６】
2019004375.tif 000019
【図１７】
2019004375.tif 000020
【図１８】
2019004375.tif 000021
【図１９】
2019004375.tif 000022
【図２０】
2019004375.tif 000023
【図２１】
2019004375.tif 000024
【図２２】
2019004375.tif 000025
【図２３】
2019004375.tif 000026
【図２４】
2019004375.tif 000027
【図２５】
2019004375.tif 000028
【図２６】
2019004375.tif 000029
【図２７】
2019004375.tif 000030
【図２８】
2019004375.tif 000031