説明

パケット転送装置、パケット転送方法およびプログラム

【課題】偏りなく振り分け処理を行うことのできるパケット転送装置の提供。
【解決手段】パケット転送装置は、受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定するパケット処理部と、前記出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートからパケットを転送し、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から出力トラヒック量が最も少ない出力ポートを選択してパケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録する振り分け処理部と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パケット転送装置、パケット転送方法およびプログラムに関し、特に、複数のポートからパケットを振り分けて転送する機能を有するパケット転送装置、パケット転送方法およびプログラムに関する。
【背景技術】
【0002】
ネットワーク機器におけるパケット転送時において、ある宛先に転送するために、複数のポートを選択できるようにし、パケットヘッダの一部に対してハッシュ演算を行って得られたハッシュ値を用いて送信先ポートを決定する技術が知られている。
【0003】
しかしながら、上記ハッシュを用いた単純な振り分け方法では、ハッシュ値が特定の値に偏ってしまうことがあり、効率的なデータ転送ができなくなってしまう。
【0004】
そこで、特許文献1には、上記ハッシュ値による振り分けを行うパケット転送装置であって、複数の送信部のそれぞれにおけるパケットの流量を監視して最小の流量となる送信部を見出す流量監視部と、受信パケットと同じハッシュ値を有するパケットを、過去一定期間内に受信したか否かを判定し、一定期間内に受信していた場合には、登録されている識別番号の送信部を選択し、一定期間内に受信していなかった場合には、前記最小の流量となる送信部を選択すると共に該送信部を識別番号として登録するパケット分配部と、を備えるパケット転送装置が開示されている。
【0005】
その他、ポートをランダムに選択する方法もあるが、同じフローのパケットが異なるポートに出力され、その結果、異なる経路を辿ってしまうため、パケットの順序が入れ替わる問題が発生する。パケット順序が入れ替わると、パケットを受信して処理を行う端末装置が、正常に処理を行えなくなったり、あるいは、順序を戻す処理が必要になり負荷が高くなるという弊害がある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−5287号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
以下の分析は、本発明によって与えられたものである。特許文献1のパケット転送装置は、ポートトランキングないしリンクアグリゲーションといった技術によって、同一区間のリンクを仮想的な1つのリンクに束ね、ハッシュ値による振り分けを行う際に、受信パケットが一定期間未受信のパケットである場合、流量の最も少ない送信部から転送するよう設定しなおすことにより、効率的なデータ転送を実現するものである。
【0008】
一方、図7に示すように、ネットワークトポロジーによっては、ある装置(パケット転送装置)1が、装置2へパケットを転送する場合、経路101と経路102のどちらも選択できる場合がある。このような場合も、上記したパケットヘッダのハッシュ値により出力ポートを決定することにより、パケットの到着順序の逆転を防ぐことができる。
【0009】
同様に、図7の装置1から装置3へパケットを送信する場合にも、装置1から装置3へ直接送る経路と、装置1から装置2を経由して装置3に送る経路の2つを選択できる場合がある。この場合に、装置1から装置2および装置3に送るパケットから求めたハッシュ値が同一になってしまうと、上述した出力ポートの偏りが発生し、効率的なデータ転送ができなくなってしまう。この点、特許文献1では、上記のような束ねられたポート以外からの転送は全く考慮されていない。
【0010】
本発明は、上記した事情に鑑みてなされたものであって、その目的とするところは、集約されたポートのみならず、全体的な観点で、振り分け先の偏りを低減できるパケット転送装置、パケット転送方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0011】
本発明の第1の視点によれば、複数の出力ポートと、前記各出力ポートから出力されるトラヒック量を監視するカウンタ部と、受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定するパケット処理部と、前記出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートからパケットを転送し、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、前記カウンタ部にて監視されたトラヒック量が最も少ない出力ポートを選択してパケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録する振り分け処理部と、を備えたパケット転送装置が提供される。
【0012】
本発明の第2の視点によれば、複数の出力ポートと、前記各出力ポートから出力されるトラヒック量を監視するカウンタ部と、受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、を備えるパケット転送装置におけるパケット転送方法であって、受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定するステップと、前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートから前記受信パケットを転送するステップと、前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、前記カウンタ部にて監視されたトラヒック量が最も少ない出力ポートを選択し、前記受信パケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録するステップと、を含むパケット転送方法が提供される。本方法は、パケットの振り分け転送行うパケット転送装置という、特定の機械に結びつけられている。
【0013】
本発明の第3の視点によれば、複数の出力ポートと、前記各出力ポートから出力されるトラヒック量を監視するカウンタ部と、受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、を備えるパケット転送装置に搭載されたコンピュータに実行させるプログラムであって、受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定する処理と、前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートから前記受信パケットを転送する処理と、前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、前記カウンタ部にて監視されたトラヒック量が最も少ない出力ポートを選択し、前記受信パケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【0014】
本発明によれば、集約されたポートのみならず、全体的な観点で、振り分け先の偏りを低減することが可能となる。
【図面の簡単な説明】
【0015】
【図1】本発明の第1の実施形態のパケット転送装置の構成を示すブロック図である。
【図2】本発明の第1の実施形態のパケット転送装置の記憶部に保持される出力先ポートテーブルの一例を示す図である。
【図3】本発明の第1の実施形態のパケット転送装置の記憶部に保持されるポートグループテーブルの一例を示す図である。
【図4】本発明の第1の実施形態のパケット転送装置のパケット受信時の動作を表したフローチャートである。
【図5】本発明の第1の実施形態のパケット転送装置のカウンタ更新動作を表したフローチャートである。
【図6】本発明の第1の実施形態のパケット転送装置のAge Time更新動作を表したフローチャートである。
【図7】ある装置から他の装置に至る複数のパケット経路が存在する例を説明するための図である。
【発明を実施するための形態】
【0016】
始めに、本発明の概要について説明する。以下、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【0017】
本発明は、図1に示すように、出力トラヒック量を監視するカウンタ機能を備えたn個(nは2以上)のポート211〜21nと、記憶部203と、パケット処理部201と、振り分け処理部202と、を備えたパケット転送装置により実現できる。
【0018】
より具体的には、前記記憶部203には、ハッシュ値等の受信パケットから求められる値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルが記憶される(図3参照)。前記パケット処理部は、図示省略する入力ポートから受信したパケットの宛先に基づいて、当該受信パケットの振り分け転送に用いる出力先ポートテーブルを決定する。
【0019】
例えば、図7の装置1が本発明に係るパケット転送装置である場合、装置2を宛先とするパケットについての出力先ポートテーブルと、装置3を宛先とするパケットについての出力先ポートテーブルが用意される。
【0020】
そして、振り分け処理部は、装置2を宛先とするパケット、装置3を宛先とするパケットそれぞれについて、出力先ポートテーブルを参照して、そのハッシュ値等の受信パケットから求められた値に応じて、装置2に接続されたポートまたは装置3に接続されたポートへの振り分け転送を行う。
【0021】
さらに、振り分け処理部は、前記出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、出力トラヒック量が最も少ない出力ポートを選択するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録する。
【0022】
これにより、新規に発生したフロー等、出力先ポートテーブルに出力ポートが登録されていないパケットは、トラヒック量が最も少ない出力ポートから出力されるようになる。なお、出力先ポートテーブルのエントリで使わなくなったものは、特許文献1のように一定時間の該当するパケットを受信しなかったことにより削除するようにしてもよいし、あるいは、エントリ単位で設定から一定時間(所定のタイムアウト値)の経過により削除するようにしてもよい。
【0023】
以上のようにすることで、パケット転送装置の使用するポートの偏りを少なくし、帯域を効率よく利用することが可能となる。例えば、図7の装置2を宛先とするパケットについて振り分け転送を実施した結果、経路102よりも経路101の方がトラヒック量が少なくなっている状態において、新たに装置3を宛先とするパケットを受信した場合、装置3に接続されたポートを選択してしまうと、偏りがより大きくなってしまう。本発明では、トラヒックの少ない装置2に接続されたポートを、装置3を宛先とする出力先ポートテーブルのエントリとして登録することで、偏りを平準化することが可能になる。
【0024】
[第1の実施形態]
続いて、本発明の第1の実施形態について図面を参照して詳細に説明する。図1は、本発明の第1の実施形態のパケット転送装置の構成を示すブロック図である。図1を参照すると、n個(nは2以上)のポート211〜21nと、パケット処理部201と、振り分け処理部202と、記憶部203とを備えたパケット転送装置200が示されている。
【0025】
ポート211〜21nは、データフレームを電気信号に変換して、外部に接続されている装置に送信する機能および受信する機能を持ち、パケット処理部201および振り分け処理部202とのパケットの受け渡しを行う。
【0026】
また、ポート211〜21nは、出力パケットのサイズを加算していくカウンタ(第1カウンタ)、時間当たりのトラヒック量を計算するために前時刻の前記第1のカウンタの値を保存する保存カウンタ(第2カウンタ)、前記第1カウンタの値から前記第2カウンタ(保存カウンタ)の値の差を時間当たりのトラヒック量として保持するトラヒック量カウンタ(第3カウンタ)を持ち、時間当たりのトラヒック量の計算を行う機能を有する。
【0027】
パケット処理部201は、受信したパケットのパケットヘッダ等を参照して、転送先の決定、廃棄処理、必要に応じて、パケットヘッダの書き換え等を行い、振り分け処理部202に対し、出力先のポート情報、パケットのデータの受け渡しを行う。パケット処理部201は、受信したパケットの宛先に転送可能な出力先ポートが複数ある場合、対応する出力先ポートテーブルのIDを決定し、振り分け処理部202に対し受け渡す。パケット処理部201が転送先ポートを決定するための情報としては、パケットヘッダ内に含まれるMAC(Media Access Control) destination address,MAC source address,tag値、IP(Internet Protocol) destination address,IP source address,プロトコル番号、TCP及びUDPのポート番号などが挙げられる。なお、出力先ポートテーブルのIDは、図3に示すポートグループテーブルを参照して求めることができる。
【0028】
振り分け処理部202は、パケット処理部201から出力先のポート情報を受け取った場合、当該出力先ポートに、パケット処理部201から受信したパケットを転送する処理を行う。また、振り分け処理部202は、パケット処理部201から出力先ポートテーブルのIDを受け取った場合、パケット処理部201から受信したパケットのパケットヘッダから算出したハッシュ値に基づいて、出力先ポートを決め、当該出力先ポートに、パケット処理部201から受信したパケットを転送する処理を行う。このとき、パケット処理部201から受信したパケットのパケットヘッダから算出したハッシュ値に対応する出力先ポートが、出力先ポートテーブルにない場合、後記するポートグループテーブルを参照して、受信したパケットの宛先に転送可能な出力先ポートの中からトラヒック量の最も少ないポートを選択する動作を行う。
【0029】
前記ハッシュ値を算出するための情報としては、受信パケットのパケットヘッダ内のMAC destination address,MAC source address,IP destination address,IP source address,プロトコル番号、TCP及びUDPのポート番号のすべて或いはこれらの組み合わせを用いることができる。もちろん、パケット自体にフロー識別子等のフローを一意に特定する情報が含まれている場合には、フロー識別子そのもの、あるいは、フロー識別子のハッシュ値を用いることもできる。
【0030】
また、振り分け処理部202は、タイマを用いて、出力先ポートテーブルのエントリのうち一定期間使用されていないエントリを削除する動作を行う。具体的には、振り分け処理部202は、図2の「Age Time」フィールドの値を更新し、「Age Time」フィールドの値が0になったエントリの出力先ポートの情報(Portフィールド)を削除する動作を行う。
【0031】
記憶部203は、宛先毎に予め定められた複数の出力先ポートテーブルと、これら出力先ポートテーブルに設定可能な出力先ポート(当該宛先に転送可能な出力先ポート)の候補を定義したポートグループテーブルを記憶する。また、記憶部203には、パケット処理部201がパケットの出力先ポートを決定するためのテーブルが適宜格納される。
【0032】
図2は、記憶部203に保持される出力先ポートテーブルの一例を示す図である。図2の例では、受信パケットのパケットヘッダから算出したハッシュ値(0〜m)と、当該ハッシュ値が算出されたパケットの出力先となるポートとの対応関係を定めたエントリを格納した構成となっている。例えば、ハッシュ値が0である場合、当該パケットの出力先ポートはポートW0となる。一方、ハッシュ値が1である場合、当該パケットの出力先ポートは未決定であるため、後記するポートグループテーブルおよび各ポートに保持されているカウンタ値を参照して出力先ポートが決定されることになる。
【0033】
また、図2の「Age Time」フィールドは、各エントリのエージング処理用タイマ値を格納するための領域である。「Age Time」フィールドは、当該エントリが設定されたとき、および、当該エントリに登録されたポートにパケットを転送したときに、所定の値に設定され、その後、一定時間毎に減算されていく。即ち、Age timeが0の場合は、当該エントリが適用されるパケットを最近受信していないことを表し、それ以外の場合(Age time>0)は、当該エントリが適用されるパケットを最近受信し、該当出力先ポートへのパケット出力が行われたことを示している。
【0034】
図3は、記憶部203に保持されるポートグループテーブルの一例を示す図である。図3の例では、上記した出力先ポートテーブルのID(0〜k-1)と、これら出力先ポートテーブルに出力先ポートを設定する際に、候補となるポートの番号との対応関係を定めたエントリを格納した構成となっている。例えば、出力先ポートテーブルのID=0の任意のエントリに設定する出力先ポートは、ポート番号a1、a2、a3のいずれかとなる(最もトラヒック量の少ないもの)。なお、図3の例では、ポート番号フィールドに格納されているポート番号はすべて異なっているが、異なるエントリに、共通するポート番号が設定されていてもよい。
【0035】
なお、図1に示したパケット転送装置200のパケット処理部201および振り分け処理ぶ202は、パケット転送装置200を搭載されたコンピュータに、適宜記憶部203の内容を参照して、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【0036】
続いて、図4〜図6を参照して本実施形態のパケット転送装置の動作について詳細に説明する。はじめに、図4を参照して、本実施形態のパケット転送装置のパケット受信時の動作について説明する。
【0037】
ポート211〜21nのうち、いずれかのポートPtが、パケット転送装置200の外部に接続される機器からパケットを受信すると、ポートPtは、受信したパケットのサイズをカウンタ(第1カウンタ)に加算し、パケット処理部201にパケットを転送する(ステップS301)。
【0038】
パケット処理部201は、前記パケットのヘッダ情報を元に、当該パケットを転送すべき出力先のポートを決定する(ステップS302)。例えば、IP(Internet Protocol)パケットの場合、記憶部203に保持されているIPアドレスと出力先ポートとの対応関係を定義したテーブルを参照して、IPパケットヘッダ部分のIP Destination addressと一致するエントリに登録されているポートを出力先ポートとすることができる。IPパケットについては、IETF(Internet Engineering Task Force)団体で規格化されているRFC791に記載されている。
【0039】
パケット処理部201は、出力先ポートが一つである場合、当該出力先ポートと、受信したパケットを振り分け処理部202に転送する。また、出力先ポートが2以上ある場合、パケット処理部201は、振り分け処理部202に、出力先ポートテーブルのIDと、受信したパケットを転送する。
【0040】
次に、振り分け処理部202は、パケット処理部201から受け取った情報が出力先ポート、あるいは、出力先ポートテーブルのIDかを確認する(ステップS303)。ここで、出力先ポートを受け取っている場合(ステップS303のNO)、振り分け処理部202は、指定された出力先ポートにパケットを転送する(ステップS304)。次に、前記パケットを受け取ったポートは、その接続先に、転送されたパケットを出力する(ステップS320)。
【0041】
一方、ステップS303において、出力先ポートテーブルのIDを受け取っている場合(ステップS303のYES)、振り分け処理部202は、受信したIDに対応する出力先ポートテーブルを選択する(ステップS305)。
【0042】
次に、振り分け処理部202は、パケットのパケットヘッダ等からハッシュ値を計算する。ハッシュ値は、所定のハッシュ関数に、パケットのパケットヘッダ等を入力(キー)として算出される(ステップS306)。この場合のハッシュ関数としては、出力されるハッシュ値の範囲が、0から出力先ポート数−1となるような関数を選択することが望ましい。
【0043】
次に、振り分け処理部202は、出力先ポートテーブルの前記算出したハッシュ値に対応するエントリを参照する(ステップS307)。
【0044】
次に、振り分け処理部202は、前記算出したハッシュ値に対応するエントリのAge timeフィールドの値が0であるか否かを確認する(ステップS308)。
【0045】
Age timeフィールドの値が0以上である場合(ステップS308のNO)、振り分け処理部202は、当該エントリに登録されているポートに、パケットを転送する(ステップS312)。次に、振り分け処理部202は、当該エントリのAge timeフィールドを、所定の値に戻す処理を行う(ステップS313)。さらに、前記パケットデータを受け取ったポートは、その接続先に、転送されたパケットを出力する(ステップS322)。
【0046】
一方、Age timeフィールドの値が0である場合(ステップS308のYES)、振り分け処理部202は、ポートグループテーブルから、出力先ポートテーブルのIDに対応するポート番号を取得する。例えば、出力先ポートテーブルのIDが1の場合、図3のポートグループテーブルから、ポートb0、b1、b2、b3が取得される。次に、振り分け処理部202は、前記取得したポートすべてに対して、トラヒック量カウンタ(第3カウンタ)に保持されているトラヒック量を問い合わせて取得する(ステップS309)。なお、この場合において、ポートb0、b1、b2、b3のすべてのトラヒック量を取得する必要はなく、すでに出力先ポートテーブルに登録されているポートは対象外とすることができる。
【0047】
次に、振り分け処理部202は、ポートグループテーブルから取得したポートの中から、トラヒック量の一番低いポートを選択する(ステップS310)。
【0048】
次に、振り分け処理部202は、出力先ポートテーブルの該当エントリのPortフィールドに、ステップS310で選択したポート番号を追記するとともに、Age timeフィールドに、所定の初期値を設定する(ステップS311)。
【0049】
次に、振り分け処理部202は、前記選択したポートに、パケットを転送する(ステップS321)。次に、前記パケットを受け取ったポートは、その接続先に、転送されたパケットを出力する(ステップS322)。
【0050】
続いて、図5を参照して、ポート211〜21nにおけるカウンタの更新動作について説明する。図5を参照すると、ポート211〜21nにおいて、所定の周期で、当該時点における出力パケット量を計測するカウンタ(第1カウンタ)の値から保存カウンタ(第2カウンタ)値を減算した値を、トラヒック量カウンタ(第3カウンタ)に保存する処理が行われる(ステップS601)。次に、前記第1カウンタの値を保存カウンタ(第2カウンタ)に保存する処理が行われる(ステップS602)。従って、前記所定の周期が、時間あたりのトラヒック量を算出するための基準期間となる。
【0051】
続いて、図6を参照して、振り分け処理部202によるAge Timeフィールドの更新動作について説明する。図6に示すように、振り分け処理部202は、所定の周期で、すべての出力先ポートテーブルのAge timeが0ではないエントリのAge Timeフィールドの値を1減算(デクリメント)する(ステップS701)。
【0052】
以上のように、本実施形態によれば、ポートのトラヒック量によって、出力先ポートを動的に変更し、パケットを偏り無く振り分けることが可能となる。また、本実施形態では、ハッシュ値を利用した振り分けを行っているため、同一フローのパケット順序が逆転してしまうこともない。
【0053】
以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した実施形態の説明に用いた図やテーブルは、本発明の理解を助けるために簡素化したものであり、種々の変形形態を採用することができる。
【0054】
例えば、上記した実施形態では、ポート211〜21nにカウンタが内蔵され、時間当たりのトラヒック量の計算を行うものとして説明したが、カウンタをカウンタ部として独立して設ける構成や、カウンタを振り分け処理部202側に設ける構成も採用可能である。同様に、パケット処理部201と振り分け処理部202とを統合させた構成や、振り分け処理部202を、その機能別に独立させた構成も採用可能である。
【0055】
また例えば、上記した実施形態では、出力先ポートテーブルの出力ポート情報は、設定されてから、あるいは、最後に当該エントリを適用してパケットを転送してから、所定の時間が経過することにより、消去されるものとして説明したが、例えば、当該ポートからのトラヒック量が所定値を超えるなど、その他のタイミングで出力ポート情報を消去するようにしてもよい。
【0056】
また、上記した実施形態では説明を省略したが、出力先ポートテーブル毎に、異なるエージングタイム(Age Time)を設定することも可能である。このようにすることで、フローに応じて、出力先ポートの見直しタイミングを変えることができる。また、出力先ポートテーブルに新規エントリを登録する際に設定するエージングタイム(Age Time)と(図4のステップS311)、当該エントリを適用してパケットを転送したときに設定しなおすエージングタイム(Age Time)と(図4のステップS313)に、違いを設けてもよい。
【0057】
また、上記した実施形態では、図3に示すポートグループテーブルを参照して、出力先ポートテーブルのIDを求めるものとして説明したが、出力先ポートテーブルに宛先アドレスを紐付けておいたり、専用のテーブルを用意するなどして、出力先ポートテーブルのIDを求めるようにしてもよい。
【0058】
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【0059】
1〜3 装置
101、102 経路
200 パケット転送装置
201 パケット処理部
202 振り分け処理部
203 記憶部
211〜21n 出力ポート

【特許請求の範囲】
【請求項1】
複数の出力ポートと、
前記各出力ポートから出力されるトラヒック量を監視するカウンタ部と、
受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、
受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定するパケット処理部と、
前記出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートからパケットを転送し、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、前記カウンタ部にて監視されたトラヒック量が最も少ない出力ポートを選択してパケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録する振り分け処理部と、を備えたパケット転送装置。
【請求項2】
前記パケット処理部は、受信パケットの宛先が所定の宛先である場合、前記出力先ポートテーブルに代えて、当該受信パケットを出力する出力ポートを決定する請求項1のパケット転送装置。
【請求項3】
前記出力先ポートテーブルの出力ポート情報は、最後に参照されてから、所定の時間が経過することにより、消去される請求項1または2のパケット転送装置。
【請求項4】
前記出力先ポートテーブルの出力ポート情報は、設定されてから、所定の時間が経過することにより、消去される請求項1から3いずれか一のパケット転送装置。
【請求項5】
前記所定の時間を定めるタイムアウト値は、前記出力先ポートテーブル毎に設定可能である請求項3または4のパケット転送装置。
【請求項6】
前記記憶部は、さらに、前記出力先ポートテーブルと、前記受信パケットから求められた値に対応する出力ポートが無い場合に選択可能な出力ポートとを対応付けたポートグループテーブルを記憶し、
前記振り分け処理部は、前記ポートグループテーブルに登録された出力ポートの中から、前記出力先ポートテーブルに未登録、かつ、前記トラヒック量が最も少ない出力ポートを選択する請求項1から5いずれか一のパケット転送装置。
【請求項7】
前記パケット処理部は、前記ポートグループテーブルを参照して、受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定する請求項6のパケット転送装置。
【請求項8】
前記カウンタ部には、所定の時間あたりのトラヒック量が保持される請求項1から7いずれか一のパケット転送装置。
【請求項9】
複数の出力ポートと、前記各出力ポートから出力されるトラヒック量を監視するカウンタ部と、受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、を備えるパケット転送装置におけるパケット転送方法であって、
受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定するステップと、
前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートから前記受信パケットを転送するステップと、
前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、前記カウンタ部にて監視されたトラヒック量が最も少ない出力ポートを選択し、前記受信パケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録するステップと、を含むパケット転送方法。
【請求項10】
複数の出力ポートと、前記各出力ポートから出力されるトラヒック量を監視するカウンタ部と、受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、を備えるパケット転送装置に搭載されたコンピュータに実行させるプログラムであって、
受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定する処理と、
前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートから前記受信パケットを転送する処理と、
前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、前記カウンタ部にて監視されたトラヒック量が最も少ない出力ポートを選択し、前記受信パケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録する処理と、を実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate