"複数の出力ポートと、前記各出力ポートから出力されるトラヒック量を監視するカウンタ部と、受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定するパケット処理部と、前記出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートからパケットを転送し、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、前記カウンタ部にて監視されたトラヒック量が最も少ない出力ポートを選択してパケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録する振り分け処理部と、を備えたパケット転送装置。前記パケット処理部は、受信パケットの宛先が所定の宛先である場合、前記出力先ポートテーブルに代えて、当該受信パケットを出力する出力ポートを決定する請求項1のパケット転送装置。前記出力先ポートテーブルの出力ポート情報は、最後に参照されてから、所定の時間が経過することにより、消去される請求項1または2のパケット転送装置。前記出力先ポートテーブルの出力ポート情報は、設定されてから、所定の時間が経過することにより、消去される請求項1から3いずれか一のパケット転送装置。前記所定の時間を定めるタイムアウト値は、前記出力先ポートテーブル毎に設定可能である請求項3または4のパケット転送装置。前記記憶部は、さらに、前記出力先ポートテーブルと、前記受信パケットから求められた値に対応する出力ポートが無い場合に選択可能な出力ポートとを対応付けたポートグループテーブルを記憶し、前記振り分け処理部は、前記ポートグループテーブルに登録された出力ポートの中から、前記出力先ポートテーブルに未登録、かつ、前記トラヒック量が最も少ない出力ポートを選択する請求項1から5いずれか一のパケット転送装置。前記パケット処理部は、前記ポートグループテーブルを参照して、受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定する請求項6のパケット転送装置。前記カウンタ部には、所定の時間あたりのトラヒック量が保持される請求項1から7いずれか一のパケット転送装置。複数の出力ポートと、前記各出力ポートから出力されるトラヒック量を監視するカウンタ部と、受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、を備えるパケット転送装置におけるパケット転送方法であって、受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定するステップと、前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートから前記受信パケットを転送するステップと、前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、前記カウンタ部にて監視されたトラヒック量が最も少ない出力ポートを選択し、前記受信パケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録するステップと、を含むパケット転送方法。複数の出力ポートと、前記各出力ポートから出力されるトラヒック量を監視するカウンタ部と、受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、を備えるパケット転送装置に搭載されたコンピュータに実行させるプログラムであって、受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定する処理と、前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートから前記受信パケットを転送する処理と、前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、前記カウンタ部にて監視されたトラヒック量が最も少ない出力ポートを選択し、前記受信パケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録する処理と、を実行させるプログラム。以下の分析は、本発明によって与えられたものである。特許文献1のパケット転送装置は、ポートトランキングないしリンクアグリゲーションといった技術によって、同一区間のリンクを仮想的な1つのリンクに束ね、ハッシュ値による振り分けを行う際に、受信パケットが一定期間未受信のパケットである場合、流量の最も少ない送信部から転送するよう設定しなおすことにより、効率的なデータ転送を実現するものである。一方、図7に示すように、ネットワークトポロジーによっては、ある装置パケット転送装置1が、装置2へパケットを転送する場合、経路101と経路102のどちらも選択できる場合がある。このような場合も、上記したパケットヘッダのハッシュ値により出力ポートを決定することにより、パケットの到着順序の逆転を防ぐことができる。同様に、図7の装置1から装置3へパケットを送信する場合にも、装置1から装置3へ直接送る経路と、装置1から装置2を経由して装置3に送る経路の2つを選択できる場合がある。この場合に、装置1から装置2および装置3に送るパケットから求めたハッシュ値が同一になってしまうと、上述した出力ポートの偏りが発生し、効率的なデータ転送ができなくなってしまう。この点、特許文献1では、上記のような束ねられたポート以外からの転送は全く考慮されていない。本発明は、上記した事情に鑑みてなされたものであって、その目的とするところは、集約されたポートのみならず、全体的な観点で、振り分け先の偏りを低減できるパケット転送装置、パケット転送方法およびプログラムを提供することにある。本発明の第1の視点によれば、複数の出力ポートと、前記各出力ポートから出力されるトラヒック量を監視するカウンタ部と、受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定するパケット処理部と、前記出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートからパケットを転送し、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、前記カウンタ部にて監視されたトラヒック量が最も少ない出力ポートを選択してパケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録する振り分け処理部と、を備えたパケット転送装置が提供される。本発明の第2の視点によれば、複数の出力ポートと、前記各出力ポートから出力されるトラヒック量を監視するカウンタ部と、受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、を備えるパケット転送装置におけるパケット転送方法であって、受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定するステップと、前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートから前記受信パケットを転送するステップと、前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、前記カウンタ部にて監視されたトラヒック量が最も少ない出力ポートを選択し、前記受信パケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録するステップと、を含むパケット転送方法が提供される。本方法は、パケットの振り分け転送行うパケット転送装置という、特定の機械に結びつけられている。本発明の第3の視点によれば、複数の出力ポートと、前記各出力ポートから出力されるトラヒック量を監視するカウンタ部と、受信パケットから求められた値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルを記憶する記憶部と、を備えるパケット転送装置に搭載されたコンピュータに実行させるプログラムであって、受信パケットの宛先に基づいて、当該受信パケットの振り分け転送を行うための前記出力先ポートテーブルを決定する処理と、前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートがある場合、当該出力ポートから前記受信パケットを転送する処理と、前記決定された出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、前記カウンタ部にて監視されたトラヒック量が最も少ない出力ポートを選択し、前記受信パケットを転送するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。本発明によれば、集約されたポートのみならず、全体的な観点で、振り分け先の偏りを低減することが可能となる。始めに、本発明の概要について説明する。以下、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。本発明は、図1に示すように、出力トラヒック量を監視するカウンタ機能を備えたn個nは2以上のポート211~21nと、記憶部203と、パケット処理部201と、振り分け処理部202と、を備えたパケット転送装置により実現できる。より具体的には、前記記憶部203には、ハッシュ値等の受信パケットから求められる値と、出力ポートとの対応関係を定めたエントリによって構成され、所定の宛先毎に作成される出力先ポートテーブルが記憶される図3参照。前記パケット処理部は、図示省略する入力ポートから受信したパケットの宛先に基づいて、当該受信パケットの振り分け転送に用いる出力先ポートテーブルを決定する。例えば、図7の装置1が本発明に係るパケット転送装置である場合、装置2を宛先とするパケットについての出力先ポートテーブルと、装置3を宛先とするパケットについての出力先ポートテーブルが用意される。そして、振り分け処理部は、装置2を宛先とするパケット、装置3を宛先とするパケットそれぞれについて、出力先ポートテーブルを参照して、そのハッシュ値等の受信パケットから求められた値に応じて、装置2に接続されたポートまたは装置3に接続されたポートへの振り分け転送を行う。さらに、振り分け処理部は、前記出力先ポートテーブルに、前記受信パケットから求められた値に対応する出力ポートが無い場合、前記宛先に対応付けられた出力ポートの中から、出力トラヒック量が最も少ない出力ポートを選択するとともに前記出力先ポートテーブルに前記選択した出力ポートを登録する。これにより、新規に発生したフロー等、出力先ポートテーブルに出力ポートが登録されていないパケットは、トラヒック量が最も少ない出力ポートから出力されるようになる。なお、出力先ポートテーブルのエントリで使わなくなったものは、特許文献1のように一定時間の該当するパケットを受信しなかったことにより削除するようにしてもよいし、あるいは、エントリ単位で設定から一定時間所定のタイムアウト値の経過により削除するようにしてもよい。以上のようにすることで、パケット転送装置の使用するポートの偏りを少なくし、帯域を効率よく利用することが可能となる。例えば、図7の装置2を宛先とするパケットについて振り分け転送を実施した結果、経路102よりも経路101の方がトラヒック量が少なくなっている状態において、新たに装置3を宛先とするパケットを受信した場合、装置3に接続されたポートを選択してしまうと、偏りがより大きくなってしまう。本発明では、トラヒックの少ない装置2に接続されたポートを、装置3を宛先とする出力先ポートテーブルのエントリとして登録することで、偏りを平準化することが可能になる。[第1の実施形態]続いて、本発明の第1の実施形態について図面を参照して詳細に説明する。図1は、本発明の第1の実施形態のパケット転送装置の構成を示すブロック図である。図1を参照すると、n個nは2以上のポート211~21nと、パケット処理部201と、振り分け処理部202と、記憶部203とを備えたパケット転送装置200が示されている。ポート211~21nは、データフレームを電気信号に変換して、外部に接続されている装置に送信する機能および受信する機能を持ち、パケット処理部201および振り分け処理部202とのパケットの受け渡しを行う。また、ポート211~21nは、出力パケットのサイズを加算していくカウンタ第1カウンタ、時間当たりのトラヒック量を計算するために前時刻の前記第1のカウンタの値を保存する保存カウンタ第2カウンタ、前記第1カウンタの値から前記第2カウンタ保存カウンタの値の差を時間当たりのトラヒック量として保持するトラヒック量カウンタ第3カウンタを持ち、時間当たりのトラヒック量の計算を行う機能を有する。パケット処理部201は、受信したパケットのパケットヘッダ等を参照して、転送先の決定、廃棄処理、必要に応じて、パケットヘッダの書き換え等を行い、振り分け処理部202に対し、出力先のポート情報、パケットのデータの受け渡しを行う。パケット処理部201は、受信したパケットの宛先に転送可能な出力先ポートが複数ある場合、対応する出力先ポートテーブルのIDを決定し、振り分け処理部202に対し受け渡す。パケット処理部201が転送先ポートを決定するための情報としては、パケットヘッダ内に含まれるMACMediaAccessControldestinationaddress,MACsourceaddress,tag値、IPInternetProtocoldestinationaddress,IPsourceaddress,プロトコル番号、TCP及びUDPのポート番号などが挙げられる。なお、出力先ポートテーブルのIDは、図3に示すポートグループテーブルを参照して求めることができる。振り分け処理部202は、パケット処理部201から出力先のポート情報を受け取った場合、当該出力先ポートに、パケット処理部201から受信したパケットを転送する処理を行う。また、振り分け処理部202は、パケット処理部201から出力先ポートテーブルのIDを受け取った場合、パケット処理部201から受信したパケットのパケットヘッダから算出したハッシュ値に基づいて、出力先ポートを決め、当該出力先ポートに、パケット処理部201から受信したパケットを転送する処理を行う。このとき、パケット処理部201から受信したパケットのパケットヘッダから算出したハッシュ値に対応する出力先ポートが、出力先ポートテーブルにない場合、後記するポートグループテーブルを参照して、受信したパケットの宛先に転送可能な出力先ポートの中からトラヒック量の最も少ないポートを選択する動作を行う。前記ハッシュ値を算出するための情報としては、受信パケットのパケットヘッダ内のMACdestinationaddress,MACsourceaddress,IPdestinationaddress,IPsourceaddress,プロトコル番号、TCP及びUDPのポート番号のすべて或いはこれらの組み合わせを用いることができる。もちろん、パケット自体にフロー識別子等のフローを一意に特定する情報が含まれている場合には、フロー識別子そのもの、あるいは、フロー識別子のハッシュ値を用いることもできる。また、振り分け処理部202は、タイマを用いて、出力先ポートテーブルのエントリのうち一定期間使用されていないエントリを削除する動作を行う。具体的には、振り分け処理部202は、図2のAgeTimeフィールドの値を更新し、AgeTimeフィールドの値が0になったエントリの出力先ポートの情報Portフィールドを削除する動作を行う。記憶部203は、宛先毎に予め定められた複数の出力先ポートテーブルと、これら出力先ポートテーブルに設定可能な出力先ポート当該宛先に転送可能な出力先ポートの候補を定義したポートグループテーブルを記憶する。また、記憶部203には、パケット処理部201がパケットの出力先ポートを決定するためのテーブルが適宜格納される。図2は、記憶部203に保持される出力先ポートテーブルの一例を示す図である。図2の例では、受信パケットのパケットヘッダから算出したハッシュ値0~mと、当該ハッシュ値が算出されたパケットの出力先となるポートとの対応関係を定めたエントリを格納した構成となっている。例えば、ハッシュ値が0である場合、当該パケットの出力先ポートはポートW0となる。一方、ハッシュ値が1である場合、当該パケットの出力先ポートは未決定であるため、後記するポートグループテーブルおよび各ポートに保持されているカウンタ値を参照して出力先ポートが決定されることになる。また、図2のAgeTimeフィールドは、各エントリのエージング処理用タイマ値を格納するための領域である。AgeTimeフィールドは、当該エントリが設定されたとき、および、当該エントリに登録されたポートにパケットを転送したときに、所定の値に設定され、その後、一定時間毎に減算されていく。即ち、Agetimeが0の場合は、当該エントリが適用されるパケットを最近受信していないことを表し、それ以外の場合Agetime>0は、当該エントリが適用されるパケットを最近受信し、該当出力先ポートへのパケット出力が行われたことを示している。図3は、記憶部203に保持されるポートグループテーブルの一例を示す図である。図3の例では、上記した出力先ポートテーブルのID0~k1と、これら出力先ポートテーブルに出力先ポートを設定する際に、候補となるポートの番号との対応関係を定めたエントリを格納した構成となっている。例えば、出力先ポートテーブルのID=0の任意のエントリに設定する出力先ポートは、ポート番号a1、a2、a3のいずれかとなる最もトラヒック量の少ないもの。なお、図3の例では、ポート番号フィールドに格納されているポート番号はすべて異なっているが、異なるエントリに、共通するポート番号が設定されていてもよい。なお、図1に示したパケット転送装置200のパケット処理部201および振り分け処理ぶ202は、パケット転送装置200を搭載されたコンピュータに、適宜記憶部203の内容を参照して、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。続いて、図4~図6を参照して本実施形態のパケット転送装置の動作について詳細に説明する。はじめに、図4を参照して、本実施形態のパケット転送装置のパケット受信時の動作について説明する。ポート211~21nのうち、いずれかのポートPtが、パケット転送装置200の外部に接続される機器からパケットを受信すると、ポートPtは、受信したパケットのサイズをカウンタ第1カウンタに加算し、パケット処理部201にパケットを転送するステップS301。パケット処理部201は、前記パケットのヘッダ情報を元に、当該パケットを転送すべき出力先のポートを決定するステップS302。例えば、IPInternetProtocolパケットの場合、記憶部203に保持されているIPアドレスと出力先ポートとの対応関係を定義したテーブルを参照して、IPパケットヘッダ部分のIPDestinationaddressと一致するエントリに登録されているポートを出力先ポートとすることができる。IPパケットについては、IETFInternetEngineeringTaskForce団体で規格化されているRFC791に記載されている。パケット処理部201は、出力先ポートが一つである場合、当該出力先ポートと、受信したパケットを振り分け処理部202に転送する。また、出力先ポートが2以上ある場合、パケット処理部201は、振り分け処理部202に、出力先ポートテーブルのIDと、受信したパケットを転送する。次に、振り分け処理部202は、パケット処理部201から受け取った情報が出力先ポート、あるいは、出力先ポートテーブルのIDかを確認するステップS303。ここで、出力先ポートを受け取っている場合ステップS303のNO、振り分け処理部202は、指定された出力先ポートにパケットを転送するステップS304。次に、前記パケットを受け取ったポートは、その接続先に、転送されたパケットを出力するステップS320。一方、ステップS303において、出力先ポートテーブルのIDを受け取っている場合ステップS303のYES、振り分け処理部202は、受信したIDに対応する出力先ポートテーブルを選択するステップS305。次に、振り分け処理部202は、パケットのパケットヘッダ等からハッシュ値を計算する。ハッシュ値は、所定のハッシュ関数に、パケットのパケットヘッダ等を入力キーとして算出されるステップS306。この場合のハッシュ関数としては、出力されるハッシュ値の範囲が、0から出力先ポート数-1となるような関数を選択することが望ましい。次に、振り分け処理部202は、出力先ポートテーブルの前記算出したハッシュ値に対応するエントリを参照するステップS307。次に、振り分け処理部202は、前記算出したハッシュ値に対応するエントリのAgetimeフィールドの値が0であるか否かを確認するステップS308。Agetimeフィールドの値が0以上である場合ステップS308のNO、振り分け処理部202は、当該エントリに登録されているポートに、パケットを転送するステップS312。次に、振り分け処理部202は、当該エントリのAgetimeフィールドを、所定の値に戻す処理を行うステップS313。さらに、前記パケットデータを受け取ったポートは、その接続先に、転送されたパケットを出力するステップS322。一方、Agetimeフィールドの値が0である場合ステップS308のYES、振り分け処理部202は、ポートグループテーブルから、出力先ポートテーブルのIDに対応するポート番号を取得する。例えば、出力先ポートテーブルのIDが1の場合、図3のポートグループテーブルから、ポートb0、b1、b2、b3が取得される。次に、振り分け処理部202は、前記取得したポートすべてに対して、トラヒック量カウンタ第3カウンタに保持されているトラヒック量を問い合わせて取得するステップS309。なお、この場合において、ポートb0、b1、b2、b3のすべてのトラヒック量を取得する必要はなく、すでに出力先ポートテーブルに登録されているポートは対象外とすることができる。次に、振り分け処理部202は、ポートグループテーブルから取得したポートの中から、トラヒック量の一番低いポートを選択するステップS310。次に、振り分け処理部202は、出力先ポートテーブルの該当エントリのPortフィールドに、ステップS310で選択したポート番号を追記するとともに、Agetimeフィールドに、所定の初期値を設定するステップS311。次に、振り分け処理部202は、前記選択したポートに、パケットを転送するステップS321。次に、前記パケットを受け取ったポートは、その接続先に、転送されたパケットを出力するステップS322。続いて、図5を参照して、ポート211~21nにおけるカウンタの更新動作について説明する。図5を参照すると、ポート211~21nにおいて、所定の周期で、当該時点における出力パケット量を計測するカウンタ第1カウンタの値から保存カウンタ第2カウンタ値を減算した値を、トラヒック量カウンタ第3カウンタに保存する処理が行われるステップS601。次に、前記第1カウンタの値を保存カウンタ第2カウンタに保存する処理が行われるステップS602。従って、前記所定の周期が、時間あたりのトラヒック量を算出するための基準期間となる。続いて、図6を参照して、振り分け処理部202によるAgeTimeフィールドの更新動作について説明する。図6に示すように、振り分け処理部202は、所定の周期で、すべての出力先ポートテーブルのAgetimeが0ではないエントリのAgeTimeフィールドの値を1減算デクリメントするステップS701。以上のように、本実施形態によれば、ポートのトラヒック量によって、出力先ポートを動的に変更し、パケットを偏り無く振り分けることが可能となる。また、本実施形態では、ハッシュ値を利用した振り分けを行っているため、同一フローのパケット順序が逆転してしまうこともない。以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形置換調整を加えることができる。例えば、上記した実施形態の説明に用いた図やテーブルは、本発明の理解を助けるために簡素化したものであり、種々の変形形態を採用することができる。例えば、上記した実施形態では、ポート211~21nにカウンタが内蔵され、時間当たりのトラヒック量の計算を行うものとして説明したが、カウンタをカウンタ部として独立して設ける構成や、カウンタを振り分け処理部202側に設ける構成も採用可能である。同様に、パケット処理部201と振り分け処理部202とを統合させた構成や、振り分け処理部202を、その機能別に独立させた構成も採用可能である。また例えば、上記した実施形態では、出力先ポートテーブルの出力ポート情報は、設定されてから、あるいは、最後に当該エントリを適用してパケットを転送してから、所定の時間が経過することにより、消去されるものとして説明したが、例えば、当該ポートからのトラヒック量が所定値を超えるなど、その他のタイミングで出力ポート情報を消去するようにしてもよい。また、上記した実施形態では説明を省略したが、出力先ポートテーブル毎に、異なるエージングタイムAgeTimeを設定することも可能である。このようにすることで、フローに応じて、出力先ポートの見直しタイミングを変えることができる。また、出力先ポートテーブルに新規エントリを登録する際に設定するエージングタイムAgeTimeと図4のステップS311、当該エントリを適用してパケットを転送したときに設定しなおすエージングタイムAgeTimeと図4のステップS313に、違いを設けてもよい。また、上記した実施形態では、図3に示すポートグループテーブルを参照して、出力先ポートテーブルのIDを求めるものとして説明したが、出力先ポートテーブルに宛先アドレスを紐付けておいたり、専用のテーブルを用意するなどして、出力先ポートテーブルのIDを求めるようにしてもよい。なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示請求の範囲を含むの枠内において、さらにその基本的技術思想に基づいて、実施形態の変更調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。"