(57)【要約】【課題】偏りなく振り分け処理を行うことのできるパケット転送装置の提供。【解決手段】パケット転送装置は、受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定するパケット処理部と、前記出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートからパケットを転送し、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から出力トラヒック量が最も少ない出力ポートを選択してパケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録する振り分け処理部と、を備える。【選択図】図１
2012249232.tif 000002
【特許請求の範囲】
【請求項１】
複数の出力ポートと、
前記各出力ポートから出力されるトラヒック量を監視するカウンタ部と、
受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、
受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定するパケット処理部と、
前記出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートからパケットを転送し、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、前記カウンタ部にて監視されたトラヒック量が最も少ない出力ポートを選択してパケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録する振り分け処理部と、を備えたパケット転送装置。
【請求項２】
前記パケット処理部は、受信パケットの宛先が所定の宛先である場合、前記出力先ポートテーブルに代えて、当該受信パケットを出力する出力ポートを決定する請求項１のパケット転送装置。
【請求項３】
前記出力先ポートテーブルの出力ポート情報は、最後に参照されてから、所定の時間が経過することにより、消去される請求項１または２のパケット転送装置。
【請求項４】
前記出力先ポートテーブルの出力ポート情報は、設定されてから、所定の時間が経過することにより、消去される請求項１から３いずれか一のパケット転送装置。
【請求項５】
前記所定の時間を定めるタイムアウト値は、前記出力先ポートテーブル毎に設定可能である請求項３または４のパケット転送装置。
【請求項６】
前記記憶部は、さらに、前記出力先ポートテーブルと、前記受信パケットから求められた値に対応する出力ポートが無い場合に選択可能な出力ポートとを対応付けたポートグループテーブルを記憶し、
前記振り分け処理部は、前記ポートグループテーブルに登録された出力ポートの中から、前記出力先ポートテーブルに未登録、かつ、前記トラヒック量が最も少ない出力ポートを選択する請求項１から５いずれか一のパケット転送装置。
【請求項７】
前記パケット処理部は、前記ポートグループテーブルを参照して、受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定する請求項６のパケット転送装置。
【請求項８】
前記カウンタ部には、所定の時間あたりのトラヒック量が保持される請求項１から７いずれか一のパケット転送装置。
【請求項９】
複数の出力ポートと、前記各出力ポートから出力されるトラヒック量を監視するカウンタ部と、受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、を備えるパケット転送装置におけるパケット転送方法であって、
受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定するステップと、
前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートから前記受信パケットを転送するステップと、
前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、前記カウンタ部にて監視されたトラヒック量が最も少ない出力ポートを選択し、前記受信パケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録するステップと、を含むパケット転送方法。
【請求項１０】
複数の出力ポートと、前記各出力ポートから出力されるトラヒック量を監視するカウンタ部と、受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、を備えるパケット転送装置に搭載されたコンピュータに実行させるプログラムであって、
受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定する処理と、
前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートから前記受信パケットを転送する処理と、
前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、前記カウンタ部にて監視されたトラヒック量が最も少ない出力ポートを選択し、前記受信パケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録する処理と、を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット転送装置、パケット転送方法およびプログラムに関し、特に、複数のポートからパケットを振り分けて転送する機能を有するパケット転送装置、パケット転送方法およびプログラムに関する。
【背景技術】
【０００２】
ネットワーク機器におけるパケット転送時において、ある宛先に転送するために、複数のポートを選択できるようにし、パケットヘッダの一部に対してハッシュ演算を行って得られたハッシュ値を用いて送信先ポートを決定する技術が知られている。
【０００３】
しかしながら、上記ハッシュを用いた単純な振り分け方法では、ハッシュ値が特定の値に偏ってしまうことがあり、効率的なデータ転送ができなくなってしまう。
【０００４】
そこで、特許文献１には、上記ハッシュ値による振り分けを行うパケット転送装置であって、複数の送信部のそれぞれにおけるパケットの流量を監視して最小の流量となる送信部を見出す流量監視部と、受信パケットと同じハッシュ値を有するパケットを、過去一定期間内に受信したか否かを判定し、一定期間内に受信していた場合には、登録されている識別番号の送信部を選択し、一定期間内に受信していなかった場合には、前記最小の流量となる送信部を選択すると共に該送信部を識別番号として登録するパケット分配部と、を備えるパケット転送装置が開示されている。
【０００５】
その他、ポートをランダムに選択する方法もあるが、同じフローのパケットが異なるポートに出力され、その結果、異なる経路を辿ってしまうため、パケットの順序が入れ替わる問題が発生する。パケット順序が入れ替わると、パケットを受信して処理を行う端末装置が、正常に処理を行えなくなったり、あるいは、順序を戻す処理が必要になり負荷が高くなるという弊害がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−５２８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以下の分析は、本発明によって与えられたものである。特許文献１のパケット転送装置は、ポートトランキングないしリンクアグリゲーションといった技術によって、同一区間のリンクを仮想的な１つのリンクに束ね、ハッシュ値による振り分けを行う際に、受信パケットが一定期間未受信のパケットである場合、流量の最も少ない送信部から転送するよう設定しなおすことにより、効率的なデータ転送を実現するものである。
【０００８】
一方、図７に示すように、ネットワークトポロジーによっては、ある装置（パケット転送装置）１が、装置２へパケットを転送する場合、経路１０１と経路１０２のどちらも選択できる場合がある。このような場合も、上記したパケットヘッダのハッシュ値により出力ポートを決定することにより、パケットの到着順序の逆転を防ぐことができる。
【０００９】
同様に、図７の装置１から装置３へパケットを送信する場合にも、装置１から装置３へ直接送る経路と、装置１から装置２を経由して装置３に送る経路の２つを選択できる場合がある。この場合に、装置１から装置２および装置３に送るパケットから求めたハッシュ値が同一になってしまうと、上述した出力ポートの偏りが発生し、効率的なデータ転送ができなくなってしまう。この点、特許文献１では、上記のような束ねられたポート以外からの転送は全く考慮されていない。
【００１０】
本発明は、上記した事情に鑑みてなされたものであって、その目的とするところは、集約されたポートのみならず、全体的な観点で、振り分け先の偏りを低減できるパケット転送装置、パケット転送方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の第１の視点によれば、複数の出力ポートと、前記各出力ポートから出力されるトラヒック量を監視するカウンタ部と、受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定するパケット処理部と、前記出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートからパケットを転送し、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、前記カウンタ部にて監視されたトラヒック量が最も少ない出力ポートを選択してパケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録する振り分け処理部と、を備えたパケット転送装置が提供される。
【００１２】
本発明の第２の視点によれば、複数の出力ポートと、前記各出力ポートから出力されるトラヒック量を監視するカウンタ部と、受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、を備えるパケット転送装置におけるパケット転送方法であって、受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定するステップと、前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートから前記受信パケットを転送するステップと、前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、前記カウンタ部にて監視されたトラヒック量が最も少ない出力ポートを選択し、前記受信パケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録するステップと、を含むパケット転送方法が提供される。本方法は、パケットの振り分け転送行うパケット転送装置という、特定の機械に結びつけられている。
【００１３】
本発明の第３の視点によれば、複数の出力ポートと、前記各出力ポートから出力されるトラヒック量を監視するカウンタ部と、受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、を備えるパケット転送装置に搭載されたコンピュータに実行させるプログラムであって、受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定する処理と、前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートから前記受信パケットを転送する処理と、前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、前記カウンタ部にて監視されたトラヒック量が最も少ない出力ポートを選択し、前記受信パケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１４】
本発明によれば、集約されたポートのみならず、全体的な観点で、振り分け先の偏りを低減することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態のパケット転送装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態のパケット転送装置の記憶部に保持される出力先ポートテーブルの一例を示す図である。
【図３】本発明の第１の実施形態のパケット転送装置の記憶部に保持されるポートグループテーブルの一例を示す図である。
【図４】本発明の第１の実施形態のパケット転送装置のパケット受信時の動作を表したフローチャートである。
【図５】本発明の第１の実施形態のパケット転送装置のカウンタ更新動作を表したフローチャートである。
【図６】本発明の第１の実施形態のパケット転送装置のＡｇｅ  Ｔｉｍｅ更新動作を表したフローチャートである。
【図７】ある装置から他の装置に至る複数のパケット経路が存在する例を説明するための図である。
【発明を実施するための形態】
【００１６】
始めに、本発明の概要について説明する。以下、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００１７】
本発明は、図１に示すように、出力トラヒック量を監視するカウンタ機能を備えたｎ個（ｎは２以上）のポート２１１〜２１ｎと、記憶部２０３と、パケット処理部２０１と、振り分け処理部２０２と、を備えたパケット転送装置により実現できる。
【００１８】
より具体的には、前記記憶部２０３には、ハッシュ値等の受信パケットから求められる値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルが記憶される（図３参照）。前記パケット処理部は、図示省略する入力ポートから受信したパケットの宛先に基づいて、当該受信パケットの振り分け転送に用いる出力先ポートテーブルを決定する。
【００１９】
例えば、図７の装置１が本発明に係るパケット転送装置である場合、装置２を宛先とするパケットについての出力先ポートテーブルと、装置３を宛先とするパケットについての出力先ポートテーブルが用意される。
【００２０】
そして、振り分け処理部は、装置２を宛先とするパケット、装置３を宛先とするパケットそれぞれについて、出力先ポートテーブルを参照して、そのハッシュ値等の受信パケットから求められた値に応じて、装置２に接続されたポートまたは装置３に接続されたポートへの振り分け転送を行う。
【００２１】
さらに、振り分け処理部は、前記出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、出力トラヒック量が最も少ない出力ポートを選択するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録する。
【００２２】
これにより、新規に発生したフロー等、出力先ポートテーブルに出力ポートが登録されていないパケットは、トラヒック量が最も少ない出力ポートから出力されるようになる。なお、出力先ポートテーブルのエントリで使わなくなったものは、特許文献１のように一定時間の該当するパケットを受信しなかったことにより削除するようにしてもよいし、あるいは、エントリ単位で設定から一定時間（所定のタイムアウト値）の経過により削除するようにしてもよい。
【００２３】
以上のようにすることで、パケット転送装置の使用するポートの偏りを少なくし、帯域を効率よく利用することが可能となる。例えば、図７の装置２を宛先とするパケットについて振り分け転送を実施した結果、経路１０２よりも経路１０１の方がトラヒック量が少なくなっている状態において、新たに装置３を宛先とするパケットを受信した場合、装置３に接続されたポートを選択してしまうと、偏りがより大きくなってしまう。本発明では、トラヒックの少ない装置２に接続されたポートを、装置３を宛先とする出力先ポートテーブルのエントリとして登録することで、偏りを平準化することが可能になる。
【００２４】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図１は、本発明の第１の実施形態のパケット転送装置の構成を示すブロック図である。図１を参照すると、ｎ個（ｎは２以上）のポート２１１〜２１ｎと、パケット処理部２０１と、振り分け処理部２０２と、記憶部２０３とを備えたパケット転送装置２００が示されている。
【００２５】
ポート２１１〜２１ｎは、データフレームを電気信号に変換して、外部に接続されている装置に送信する機能および受信する機能を持ち、パケット処理部２０１および振り分け処理部２０２とのパケットの受け渡しを行う。
【００２６】
また、ポート２１１〜２１ｎは、出力パケットのサイズを加算していくカウンタ（第１カウンタ）、時間当たりのトラヒック量を計算するために前時刻の前記第１のカウンタの値を保存する保存カウンタ（第２カウンタ）、前記第１カウンタの値から前記第２カウンタ（保存カウンタ）の値の差を時間当たりのトラヒック量として保持するトラヒック量カウンタ（第３カウンタ）を持ち、時間当たりのトラヒック量の計算を行う機能を有する。
【００２７】
パケット処理部２０１は、受信したパケットのパケットヘッダ等を参照して、転送先の決定、廃棄処理、必要に応じて、パケットヘッダの書き換え等を行い、振り分け処理部２０２に対し、出力先のポート情報、パケットのデータの受け渡しを行う。パケット処理部２０１は、受信したパケットの宛先に転送可能な出力先ポートが複数ある場合、対応する出力先ポートテーブルのＩＤを決定し、振り分け処理部２０２に対し受け渡す。パケット処理部２０１が転送先ポートを決定するための情報としては、パケットヘッダ内に含まれるＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）  ｄｅｓｔｉｎａｔｉｏｎ  ａｄｄｒｅｓｓ，ＭＡＣ  ｓｏｕｒｃｅ  ａｄｄｒｅｓｓ，ｔａｇ値、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）  ｄｅｓｔｉｎａｔｉｏｎ  ａｄｄｒｅｓｓ，ＩＰ  ｓｏｕｒｃｅ  ａｄｄｒｅｓｓ，プロトコル番号、ＴＣＰ及びＵＤＰのポート番号などが挙げられる。なお、出力先ポートテーブルのＩＤは、図３に示すポートグループテーブルを参照して求めることができる。
【００２８】
振り分け処理部２０２は、パケット処理部２０１から出力先のポート情報を受け取った場合、当該出力先ポートに、パケット処理部２０１から受信したパケットを転送する処理を行う。また、振り分け処理部２０２は、パケット処理部２０１から出力先ポートテーブルのＩＤを受け取った場合、パケット処理部２０１から受信したパケットのパケットヘッダから算出したハッシュ値に基づいて、出力先ポートを決め、当該出力先ポートに、パケット処理部２０１から受信したパケットを転送する処理を行う。このとき、パケット処理部２０１から受信したパケットのパケットヘッダから算出したハッシュ値に対応する出力先ポートが、出力先ポートテーブルにない場合、後記するポートグループテーブルを参照して、受信したパケットの宛先に転送可能な出力先ポートの中からトラヒック量の最も少ないポートを選択する動作を行う。
【００２９】
前記ハッシュ値を算出するための情報としては、受信パケットのパケットヘッダ内のＭＡＣ  ｄｅｓｔｉｎａｔｉｏｎ  ａｄｄｒｅｓｓ，ＭＡＣ  ｓｏｕｒｃｅ  ａｄｄｒｅｓｓ，ＩＰ  ｄｅｓｔｉｎａｔｉｏｎ  ａｄｄｒｅｓｓ，ＩＰ  ｓｏｕｒｃｅ  ａｄｄｒｅｓｓ，プロトコル番号、ＴＣＰ及びＵＤＰのポート番号のすべて或いはこれらの組み合わせを用いることができる。もちろん、パケット自体にフロー識別子等のフローを一意に特定する情報が含まれている場合には、フロー識別子そのもの、あるいは、フロー識別子のハッシュ値を用いることもできる。
【００３０】
また、振り分け処理部２０２は、タイマを用いて、出力先ポートテーブルのエントリのうち一定期間使用されていないエントリを削除する動作を行う。具体的には、振り分け処理部２０２は、図２の「Ａｇｅ  Ｔｉｍｅ」フィールドの値を更新し、「Ａｇｅ  Ｔｉｍｅ」フィールドの値が０になったエントリの出力先ポートの情報（Ｐｏｒｔフィールド）を削除する動作を行う。
【００３１】
記憶部２０３は、宛先毎に予め定められた複数の出力先ポートテーブルと、これら出力先ポートテーブルに設定可能な出力先ポート（当該宛先に転送可能な出力先ポート）の候補を定義したポートグループテーブルを記憶する。また、記憶部２０３には、パケット処理部２０１がパケットの出力先ポートを決定するためのテーブルが適宜格納される。
【００３２】
図２は、記憶部２０３に保持される出力先ポートテーブルの一例を示す図である。図２の例では、受信パケットのパケットヘッダから算出したハッシュ値（０〜ｍ）と、当該ハッシュ値が算出されたパケットの出力先となるポートとの対応関係を定めたエントリを格納した構成となっている。例えば、ハッシュ値が０である場合、当該パケットの出力先ポートはポートＷ０となる。一方、ハッシュ値が１である場合、当該パケットの出力先ポートは未決定であるため、後記するポートグループテーブルおよび各ポートに保持されているカウンタ値を参照して出力先ポートが決定されることになる。
【００３３】
また、図２の「Ａｇｅ  Ｔｉｍｅ」フィールドは、各エントリのエージング処理用タイマ値を格納するための領域である。「Ａｇｅ  Ｔｉｍｅ」フィールドは、当該エントリが設定されたとき、および、当該エントリに登録されたポートにパケットを転送したときに、所定の値に設定され、その後、一定時間毎に減算されていく。即ち、Ａｇｅ  ｔｉｍｅが０の場合は、当該エントリが適用されるパケットを最近受信していないことを表し、それ以外の場合（Ａｇｅ  ｔｉｍｅ＞０）は、当該エントリが適用されるパケットを最近受信し、該当出力先ポートへのパケット出力が行われたことを示している。
【００３４】
図３は、記憶部２０３に保持されるポートグループテーブルの一例を示す図である。図３の例では、上記した出力先ポートテーブルのＩＤ（０〜ｋ-１）と、これら出力先ポートテーブルに出力先ポートを設定する際に、候補となるポートの番号との対応関係を定めたエントリを格納した構成となっている。例えば、出力先ポートテーブルのＩＤ＝０の任意のエントリに設定する出力先ポートは、ポート番号ａ１、ａ２、ａ３のいずれかとなる（最もトラヒック量の少ないもの）。なお、図３の例では、ポート番号フィールドに格納されているポート番号はすべて異なっているが、異なるエントリに、共通するポート番号が設定されていてもよい。
【００３５】
なお、図１に示したパケット転送装置２００のパケット処理部２０１および振り分け処理ぶ２０２は、パケット転送装置２００を搭載されたコンピュータに、適宜記憶部２０３の内容を参照して、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【００３６】
続いて、図４〜図６を参照して本実施形態のパケット転送装置の動作について詳細に説明する。はじめに、図４を参照して、本実施形態のパケット転送装置のパケット受信時の動作について説明する。
【００３７】
ポート２１１〜２１ｎのうち、いずれかのポートＰｔが、パケット転送装置２００の外部に接続される機器からパケットを受信すると、ポートＰｔは、受信したパケットのサイズをカウンタ（第１カウンタ）に加算し、パケット処理部２０１にパケットを転送する（ステップＳ３０１）。
【００３８】
パケット処理部２０１は、前記パケットのヘッダ情報を元に、当該パケットを転送すべき出力先のポートを決定する（ステップＳ３０２）。例えば、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットの場合、記憶部２０３に保持されているＩＰアドレスと出力先ポートとの対応関係を定義したテーブルを参照して、ＩＰパケットヘッダ部分のＩＰ  Ｄｅｓｔｉｎａｔｉｏｎ  ａｄｄｒｅｓｓと一致するエントリに登録されているポートを出力先ポートとすることができる。ＩＰパケットについては、ＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）団体で規格化されているＲＦＣ７９１に記載されている。
【００３９】
パケット処理部２０１は、出力先ポートが一つである場合、当該出力先ポートと、受信したパケットを振り分け処理部２０２に転送する。また、出力先ポートが２以上ある場合、パケット処理部２０１は、振り分け処理部２０２に、出力先ポートテーブルのＩＤと、受信したパケットを転送する。
【００４０】
次に、振り分け処理部２０２は、パケット処理部２０１から受け取った情報が出力先ポート、あるいは、出力先ポートテーブルのＩＤかを確認する（ステップＳ３０３）。ここで、出力先ポートを受け取っている場合（ステップＳ３０３のＮＯ）、振り分け処理部２０２は、指定された出力先ポートにパケットを転送する（ステップＳ３０４）。次に、前記パケットを受け取ったポートは、その接続先に、転送されたパケットを出力する（ステップＳ３２０）。
【００４１】
一方、ステップＳ３０３において、出力先ポートテーブルのＩＤを受け取っている場合（ステップＳ３０３のＹＥＳ）、振り分け処理部２０２は、受信したＩＤに対応する出力先ポートテーブルを選択する（ステップＳ３０５）。
【００４２】
次に、振り分け処理部２０２は、パケットのパケットヘッダ等からハッシュ値を計算する。ハッシュ値は、所定のハッシュ関数に、パケットのパケットヘッダ等を入力（キー）として算出される（ステップＳ３０６）。この場合のハッシュ関数としては、出力されるハッシュ値の範囲が、０から出力先ポート数−１となるような関数を選択することが望ましい。
【００４３】
次に、振り分け処理部２０２は、出力先ポートテーブルの前記算出したハッシュ値に対応するエントリを参照する（ステップＳ３０７）。
【００４４】
次に、振り分け処理部２０２は、前記算出したハッシュ値に対応するエントリのＡｇｅ  ｔｉｍｅフィールドの値が０であるか否かを確認する（ステップＳ３０８）。
【００４５】
Ａｇｅ  ｔｉｍｅフィールドの値が０以上である場合（ステップＳ３０８のＮＯ）、振り分け処理部２０２は、当該エントリに登録されているポートに、パケットを転送する（ステップＳ３１２）。次に、振り分け処理部２０２は、当該エントリのＡｇｅ  ｔｉｍｅフィールドを、所定の値に戻す処理を行う（ステップＳ３１３）。さらに、前記パケットデータを受け取ったポートは、その接続先に、転送されたパケットを出力する（ステップＳ３２２）。
【００４６】
一方、Ａｇｅ  ｔｉｍｅフィールドの値が０である場合（ステップＳ３０８のＹＥＳ）、振り分け処理部２０２は、ポートグループテーブルから、出力先ポートテーブルのＩＤに対応するポート番号を取得する。例えば、出力先ポートテーブルのＩＤが１の場合、図３のポートグループテーブルから、ポートｂ０、ｂ１、ｂ２、ｂ３が取得される。次に、振り分け処理部２０２は、前記取得したポートすべてに対して、トラヒック量カウンタ（第３カウンタ）に保持されているトラヒック量を問い合わせて取得する（ステップＳ３０９）。なお、この場合において、ポートｂ０、ｂ１、ｂ２、ｂ３のすべてのトラヒック量を取得する必要はなく、すでに出力先ポートテーブルに登録されているポートは対象外とすることができる。
【００４７】
次に、振り分け処理部２０２は、ポートグループテーブルから取得したポートの中から、トラヒック量の一番低いポートを選択する（ステップＳ３１０）。
【００４８】
次に、振り分け処理部２０２は、出力先ポートテーブルの該当エントリのＰｏｒｔフィールドに、ステップＳ３１０で選択したポート番号を追記するとともに、Ａｇｅ  ｔｉｍｅフィールドに、所定の初期値を設定する（ステップＳ３１１）。
【００４９】
次に、振り分け処理部２０２は、前記選択したポートに、パケットを転送する（ステップＳ３２１）。次に、前記パケットを受け取ったポートは、その接続先に、転送されたパケットを出力する（ステップＳ３２２）。
【００５０】
続いて、図５を参照して、ポート２１１〜２１ｎにおけるカウンタの更新動作について説明する。図５を参照すると、ポート２１１〜２１ｎにおいて、所定の周期で、当該時点における出力パケット量を計測するカウンタ（第１カウンタ）の値から保存カウンタ（第２カウンタ）値を減算した値を、トラヒック量カウンタ（第３カウンタ）に保存する処理が行われる（ステップＳ６０１）。次に、前記第１カウンタの値を保存カウンタ（第２カウンタ）に保存する処理が行われる（ステップＳ６０２）。従って、前記所定の周期が、時間あたりのトラヒック量を算出するための基準期間となる。
【００５１】
続いて、図６を参照して、振り分け処理部２０２によるＡｇｅ  Ｔｉｍｅフィールドの更新動作について説明する。図６に示すように、振り分け処理部２０２は、所定の周期で、すべての出力先ポートテーブルのＡｇｅ  ｔｉｍｅが０ではないエントリのＡｇｅ  Ｔｉｍｅフィールドの値を１減算（デクリメント）する（ステップＳ７０１）。
【００５２】
以上のように、本実施形態によれば、ポートのトラヒック量によって、出力先ポートを動的に変更し、パケットを偏り無く振り分けることが可能となる。また、本実施形態では、ハッシュ値を利用した振り分けを行っているため、同一フローのパケット順序が逆転してしまうこともない。
【００５３】
以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した実施形態の説明に用いた図やテーブルは、本発明の理解を助けるために簡素化したものであり、種々の変形形態を採用することができる。
【００５４】
例えば、上記した実施形態では、ポート２１１〜２１ｎにカウンタが内蔵され、時間当たりのトラヒック量の計算を行うものとして説明したが、カウンタをカウンタ部として独立して設ける構成や、カウンタを振り分け処理部２０２側に設ける構成も採用可能である。同様に、パケット処理部２０１と振り分け処理部２０２とを統合させた構成や、振り分け処理部２０２を、その機能別に独立させた構成も採用可能である。
【００５５】
また例えば、上記した実施形態では、出力先ポートテーブルの出力ポート情報は、設定されてから、あるいは、最後に当該エントリを適用してパケットを転送してから、所定の時間が経過することにより、消去されるものとして説明したが、例えば、当該ポートからのトラヒック量が所定値を超えるなど、その他のタイミングで出力ポート情報を消去するようにしてもよい。
【００５６】
また、上記した実施形態では説明を省略したが、出力先ポートテーブル毎に、異なるエージングタイム（Ａｇｅ  Ｔｉｍｅ）を設定することも可能である。このようにすることで、フローに応じて、出力先ポートの見直しタイミングを変えることができる。また、出力先ポートテーブルに新規エントリを登録する際に設定するエージングタイム（Ａｇｅ  Ｔｉｍｅ）と（図４のステップＳ３１１）、当該エントリを適用してパケットを転送したときに設定しなおすエージングタイム（Ａｇｅ  Ｔｉｍｅ）と（図４のステップＳ３１３）に、違いを設けてもよい。
【００５７】
また、上記した実施形態では、図３に示すポートグループテーブルを参照して、出力先ポートテーブルのＩＤを求めるものとして説明したが、出力先ポートテーブルに宛先アドレスを紐付けておいたり、専用のテーブルを用意するなどして、出力先ポートテーブルのＩＤを求めるようにしてもよい。
【００５８】
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００５９】
１〜３  装置
１０１、１０２  経路
２００  パケット転送装置
２０１  パケット処理部
２０２  振り分け処理部
２０３  記憶部
２１１〜２１ｎ  出力ポート
【図１】
2012249232.tif 000003
【図２】
2012249232.tif 000004
【図３】
2012249232.tif 000005
【図４】
2012249232.tif 000006
【図５】
2012249232.tif 000007
【図６】
2012249232.tif 000008
【図７】
2012249232.tif 000009