(57)【要約】【課題】マルチパスの転送先の選択において、同じ通信フローのパケットは転送先が同じになる利点を残しつつ、簡易な処理で通信の偏りをなくす。【解決手段】転送装置は、ルーティングテーブル７２３と、ハッシュ関数７２７ａ〜ｄと、ハッシュ関数選択部７２６と、転送先選択部７３０とを備える。ルーティングテーブル７２３は、パケットの宛先と対応づけて転送先を格納する。ハッシュ関数７２７ａ〜ｄは、パケットのフローの識別に用いられる第１のフィールドの値を入力値とし、同一の入力値に対して異なる出力値を出力する。ハッシュ関数選択部７２６は、受信パケットの残り転送可能回数を表す第２のフィールドの値に応じて、ハッシュ関数のうちの一つを選択する。転送先選択部７３０は、受信パケットの対応する転送先が２以上ある場合に、受信パケットの第１のフィールドの値を入力値とする選択されたハッシュ関数の出力値に基づき、転送先を選択する。【選択図】図２
2011259007.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して受信したパケットを、前記ネットワークに接続された他の装置に、前記ネットワークを介して転送する転送装置であって、
パケットの宛先と対応づけて転送先としての前記他の装置を１以上格納するルーティングテーブルと、
パケットのフローの識別に用いることができるパケットの第１のフィールドの値を入力値とする２以上のハッシュ関数であって、同一の入力値に対して異なる出力値を出力する２以上のハッシュ関数と、
前記受信したパケットのそれまでの転送回数または残り転送可能回数を表す第２のフィールドの値に応じて、前記２以上のハッシュ関数のうちの一つのハッシュ関数を選択するハッシュ関数選択部と、
前記ルーティングテーブルにおいて、前記受信したパケットの宛先と対応づけられた転送先が２以上ある場合に、前記受信したパケットの前記第１のフィールドの値を入力値とする前記選択されたハッシュ関数の出力値に基づいて、前記２以上の転送先の中から前記受信したパケットの転送先を選択する転送先選択部と、を備える転送装置。
【請求項２】
請求項１記載の転送装置であって、
前記転送先選択部は、前記受信したパケットの宛先と対応づけられた転送先の数で前記出力値を割った場合の余りの値に応じて、前記２以上の転送先の中から前記受信したパケットの転送先を選択する、転送装置。
【請求項３】
ネットワークを介して受信したパケットを、前記ネットワークに接続された他の装置に、前記ネットワークを介して転送する転送装置であって、
パケットの宛先と対応づけて転送先としての前記他の装置を１以上格納するルーティングテーブルと、
前記受信したパケットの第１のフィールドであってフローの識別に用いることができる第１のフィールドの値と、前記受信したパケットの第２のフィールドであって前記受信したパケットのそれまでの転送回数または残り転送可能回数を表す第２のフィールドの値と、に応じて、ハッシュ値を出力するハッシュ関数と、
前記ルーティングテーブルにおいて、前記受信したパケットの宛先と対応づけられた転送先が２以上ある場合に、前記ハッシュ関数の出力値に基づいて、前記２以上の転送先の中から前記受信したパケットの転送先を選択する転送先選択部と、を備える転送装置。
【請求項４】
請求項３記載の転送装置であって、
前記転送先選択部は、前記受信したパケットの宛先と対応づけられた転送先の数で前記出力値を割った場合の余りの値に応じて、前記２以上の転送先の中から前記受信したパケットの転送先を決定する、転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロードバランス機能を備えたパケット転送装置、特にパケットに対して適切な転送先が２つ以上ある場合に、それらの転送先の中から１つの転送先を選択することにより、ロードバランス機能を実現する転送装置に関するものである。
【背景技術】
【０００２】
ＩＰネットワークでは、ネットワーク上の転送装置にルーティングテーブルを用意している。ルーティングテーブルは、ネットワーク上にある宛先アドレスと、そのルーティングテーブルを保持している転送装置からみて宛先アドレスがある装置へのネットワーク上の最短経路の方向を示す転送先と、の対応関係を示した表である。各転送装置は、パケットを受信すると、そのパケットの宛先アドレスをもとにルーティングテーブルを検索する。そして、各転送装置は、検索によって得られた転送先へパケットを転送する。この処理が各転送装置においておこなわれることにより、パケットは、最終的に宛先アドレスの装置へ到着する。
【０００３】
ＩＰネットワークは、転送装置および回線が冗長に用意され適切に配置されることによって、ネットワーク上の転送装置や回線に障害が起こっても通信を維持することができように、構成されている。転送装置や回線に障害が発生した場合には、各転送装置がその障害を検出し、障害を迂回した経路の方向を示す転送先にルーティングテーブルを書き換えることによって、通信が維持される。
【０００４】
さらに、冗長な転送装置や回線を、通常の通信経路と同等の性能および機能で通信できるように配置することにより、障害がない間には、通常の転送装置および回線と、冗長な転送装置および回線と、の両方を使って通信をすることができる。その結果、障害がない場合にも、冗長な転送装置や回線をパケット転送に活用することができる。
【０００５】
通常の転送装置および回線と、冗長な転送装置および回線と、の両方を使って通信するネットワークにおいては、ネットワーク上のどこかの転送装置において、宛先アドレスに対する転送先として、通常の転送装置および回線を使用する経路（以下「通常経路」という）の転送先と、冗長な転送装置および回線を使用する経路（以下「冗長経路」という）の転送先と、の２つ以上の転送先がある。その転送装置おいて、通常経路の転送先と冗長経路の転送先とにパケットを分配することにより、ネットワークにおいて転送負荷が分散される。なお、「ルーティングテーブルの宛先アドレスに対応する転送先が２つ以上あること」、および「転送先が２つ以上ある宛先アドレスのエントリと、２つ以上の転送先と、からなる集合のこと」を「マルチパス」と呼ぶ。また、マルチパスである宛先アドレスを有するパケットを複数の転送先へ分配し、転送負荷を分散させることを、「ロードバランス」と呼ぶ。
【０００６】
マルチパスに従ってロードバランスを実現する方法として、通信フローの識別に使えるフィールドの値をパケットから抽出し、その値からハッシュ関数を用いて値を求め、この値をもとにマルチパスから転送先を選択する方法が、非特許文献１に記載されている。なお、「ハッシュ関数」とは、入力値に対して、有限個の出力値の中の一つを一義的に割り当てて出力する関数であり、さまざまな入力値に対してできるかぎり有限個の出力値が均等に割り当てられるように出力値を決定する関数である。
【０００７】
非特許文献１のロードバランスの方法によれば、ハッシュ関数の無作為性により、マルチパスの各転送先へパケットが公平に分散して転送される。また、パケットのフィールドの値に基づいて転送先が決定されるため、同じ通信フローのパケットは同じ経路を通る。そして、非特許文献１のロードバランスの方法によれば、通信フローと転送先の対応を記憶する必要がないため、装置の設計が単純になる。
【０００８】
しかし、非特許文献１の方法では、通信経路上にある転送装置の２台以上がマルチパスであるネットワークにおいて、すべての転送装置が同じハッシュ関数を有する場合に、マルチパスの各転送先へ分配されるパケットが均等にならない。
【０００９】
この通信の偏りを解決する方法として、特許文献１の技術がある。特許文献１の技術においては、転送装置の転送先決定方法を、ネットワーク管理者が転送装置ごとに個別に設定できる。その結果、各転送装置における転送先決定方法がいずれもハッシュ関数を使用するものであっても、ネットワークにおいて、マルチパスによるロードバランス機能が動く。
【００１０】
しかし、この技術においては、ネットワーク管理者の負担が大きい。すなわち、ネットワーク管理者は、通信が発生するはずの全端末間の通信について、通信経路上にマルチパスとなる転送装置が２台以上あるかどうか調査し、該当する２台の組み合わせすべてについて、可能な限り異なるような転送先選択方法を各転送装置について決定しなければならない。
【００１１】
また、特許文献１の技術では、隣接した転送装置の間で通信し、自動的に異なる転送先決定方法を選択するように調停する方法が提案されている。この技術によれば、ネットワーク管理者が転送装置に転送先決定方法を設定しなくとも、自動的に転送装置間で転送先選択方法が調停され、異なる転送先選択方法を採用するプロトコルが用いられる。その結果、マルチパスによるロードバランスが実現される。
【００１２】
しかし、上記の技術においては、転送先決定方法を選択するためのプロトコルを用意する必要があり、転送装置の構成および処理が複雑になる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００８−０４８０１０号公報
【非特許文献】
【００１４】
【非特許文献１】“Ｍｕｌｔｉｐａｔｈ  Ｉｓｓｕｅｓ  ｉｎ  Ｕｎｉｃａｓｔ  ａｎｄ  Ｍｕｌｔｉｃａｓｔ  Ｎｅｘｔ−Ｈｏｐ  Ｓｅｌｅｃｔｉｏｎ”，  Ｎｏｖｅｍｂｅｒ  ２０００，  ＲＦＣ  ２９９７
【発明の概要】
【発明が解決しようとする課題】
【００１５】
本発明が解決しようとする課題は、マルチパスの転送先の選択において、同じ通信フローのパケットは転送先が同じになる利点を残しつつ、簡易な処理で通信の偏りをなくすことである。
【課題を解決するための手段】
【００１６】
［適用例１］
ネットワークを介して受信したパケットを、前記ネットワークに接続された他の装置に、前記ネットワークを介して転送する転送装置であって、
パケットの宛先と対応づけて転送先としての前記他の装置を１以上格納するルーティングテーブルと、
パケットのフローの識別に用いることができるパケットの第１のフィールドの値を入力値とする２以上のハッシュ関数であって、同一の入力値に対して異なる出力値を出力する２以上のハッシュ関数と、
前記受信したパケットのそれまでの転送回数または残り転送可能回数を表す第２のフィールドの値に応じて、前記２以上のハッシュ関数のうちの一つのハッシュ関数を選択するハッシュ関数選択部と、
前記ルーティングテーブルにおいて、前記受信したパケットの宛先と対応づけられた転送先が２以上ある場合に、前記受信したパケットの前記第１のフィールドの値を入力値とする、前記選択されたハッシュ関数の出力値に基づいて、前記２以上の転送先の中から前記受信したパケットの転送先を選択する転送先選択部と、を備える転送装置。
【００１７】
パケットがネットワークにおいて転送される際、１回転送されるたびに、第２のフィールドの値は、変化する。このため、上記のような態様の転送装置が複数含まれるネットワークにおいて、パケットが転送される場合には、そのパケットは、複数の転送装置で順に転送される際に、毎回同じハッシュ関数を使用されて転送先を決定されるのではなく、異なるハッシュ関数を使用されて転送先を決定される。このため、上記の態様によれば、自動的に、かつ簡易な処理で、ネットワークにおける通信の偏りをなくすことができる。
【００１８】
一方で、各転送装置においては、各ハッシュ関数は、パケットのフローの識別に用いることができる第１のフィールドの値を入力値とする。このため、ある転送装置においては、同じフローの異なるパケットは、それまでに同じ経路を転送されてきたパケットである限り、どれも同じ転送先が割り当てられる。よって、同じ通信フローのパケットは転送先が同じになる。
【００１９】
なお、「第２のフィールドの値に応じて」とは、第２のフィールドの値が第１の値であるときに選択されるハッシュ関数と、第２のフィールドの値が第１の値とは異なる第２の値であるときに選択されるハッシュ関数と、が異なるような、第１の値と第２の値が存在する選択方法を意味する。
【００２０】
［適用例２］
適用例１の転送装置であって、
前記転送先選択部は、前記受信したパケットの宛先と対応づけられた転送先の数で前記出力値を割った場合の余りの値に応じて、前記２以上の転送先の中から前記受信したパケットの転送先を選択する、転送装置。
【００２１】
このような態様とすれば、任意の範囲の出力値を有するハッシュ関数を用いて、パケットの転送先を決定することができる。
【００２２】
［適用例３］
ネットワークを介して受信したパケットを、前記ネットワークに接続された他の装置に、前記ネットワークを介して転送する転送装置であって、
パケットの宛先と対応づけて転送先としての前記他の装置を１以上格納するルーティングテーブルと、
前記受信したパケットの第１のフィールドであってフローの識別に用いることができる第１のフィールドの値と、前記受信したパケットの第２のフィールドであって前記受信したパケットのそれまでの転送回数または残り転送可能回数を表す第２のフィールドの値と、に応じて、ハッシュ値を出力するハッシュ関数と、
前記ルーティングテーブルにおいて、前記受信したパケットの宛先と対応づけられた転送先が２以上ある場合に、前記ハッシュ関数の出力値に基づいて、前記２以上の転送先の中から前記受信したパケットの転送先を選択する転送先選択部と、を備える転送装置。
【００２３】
パケットがネットワークにおいて転送される際、１回転送されるたびに、第２のフィールドの値は、変化する。このため、上記のような態様の転送装置が複数含まれるネットワークにおいて、パケットが転送される場合には、そのパケットは、複数の転送装置で順に転送される際に、毎回同じ出力値（ハッシュ値）を使用されるのではなく、毎回異なる出力値を使用されて、転送先を決定される。このため、上記の態様によれば、自動的に、かつ簡易な処理で、ネットワークにおける通信の偏りをなくすことができる。
【００２４】
一方で、各転送装置においては、ハッシュ関数の出力値は、パケットのフローの識別に用いることができる第１のフィールドの値と、パケットのそれまでの転送回数または残り転送可能回数を表す第２のフィールドの値と、に応じて、一義的に定められる。このため、ある転送装置においては、同じフローの異なるパケットは、それまでに同じ経路を転送されてきたパケットである限り、どれも同じ出力値が得られ、同じ転送先に転送される。よって、同じ通信フローのパケットは転送先が同じになる。
【００２５】
なお、「第１のフィールドの値と、〜第２のフィールドの値と、に応じて、ハッシュ値を出力する」とは、以下のような選択方法を意味する。すなわち、第１のフィールドの値が値Ｖ１１であり第２のフィールドの値が値Ｖ２１であるときのハッシュ値と、第１のフィールドの値がＶ１１とは異なるＶ１２であり第２のフィールドの値が値Ｖ２１であるときのハッシュ値と、が異なるような、値Ｖ１１と値Ｖ１２が存在する。さらに、第１のフィールドの値が値Ｖ１１であり第２のフィールドの値が値Ｖ２１であるときのハッシュ値と、第１のフィールドの値がＶ１１であり第２のフィールドの値がＶ２１とは異なるＶ２２であるときのハッシュ値と、が異なるような、値Ｖ２１と値Ｖ２２が存在する。
【００２６】
［適用例４］
適用例３の転送装置であって、
前記転送先選択部は、前記受信したパケットの宛先と対応づけられた転送先の数で前記出力値を割った場合の余りの値に応じて、前記２以上の転送先の中から前記受信したパケットの転送先を決定する、転送装置。
【００２７】
このような態様とすれば、任意の範囲の出力値を有するハッシュ関数を用いて、パケットの転送先を決定することができる。
【００２８】
なお、本発明は、以下に示すような種々の態様で実現することが可能である。
（１）パケットの転送装置。
（２）パケットの転送方法。
（３）パケットの転送装置を備えるネットワークシステム。
【図面の簡単な説明】
【００２９】
【図１】マルチパス転送装置が２段になっているネットワークの構成例を示す図。
【図２】ＴＴＬ切替型ロードバランス転送装置を示すブロック図。
【図３】転送装置１０１のルーティングテーブル。
【図４】転送装置１０２のルーティングテーブル。
【図５】転送装置１０３のルーティングテーブル。
【図６】フローを示す表。
【図７】ＴＴＬ切替型ロードバランス転送装置を用いた場合のフローごとのパケット転送経路を示す表。
【図８】参考例のロードバランス転送装置を示すブロック図。
【図９】参考例のロードバランス転送装置を用いた場合のフローごとのパケット転送経路を示す表。
【図１０】実施例２のＴＴＬ混合型ロードバランス転送装置の構造を示すブロック図。
【図１１】ＴＴＬ混合型ロードバランス転送装置を用いた場合のフローごとのパケット転送経路を示す表。
【発明を実施するための形態】
【００３０】
Ａ．実施例１：
Ａ１．ロードバランス転送装置の構成：
図１は、マルチパス転送装置が２段になっているネットワークＮＴを示す図である。図１のネットワークは４台の端末１１１〜１１４を、転送装置１０１〜１０８および回線１２１〜１３４で接続したネットワークである。
【００３１】
図１の上段に示すように、ネットワークＮＴにおいては、アドレス１０．０．０．１を有する端末１１１と、アドレス１０．０．０．２を有する端末１１２が、転送装置１０１に接続されている。また、図１の下段に示すように、アドレス２０．０．０．１を有する端末１１３と、２０．０．０．２を有する端末１１４が、転送装置１０８に接続されている。転送装置１０１と転送装置１０８とは、転送装置１０２〜１０７および回線１２３〜１３２を介して接続されている。
【００３２】
転送装置１０２は、回線１２５、転送装置１０４、回線１２９を介して転送装置１０８に接続されている。また、転送装置１０２は、回線１２６、転送装置１０５、回線１３０を介して転送装置１０８に接続されている。すなわち、転送装置１０２と転送装置１０８とは、二つの経路で接続されている。
【００３３】
転送装置１０３は、回線１２７、転送装置１０６、回線１３１を介して転送装置１０８に接続されている。また、転送装置１０３は、回線１２８、転送装置１０７、回線１３２を介して転送装置１０８に接続されている。すなわち、転送装置１０３と転送装置１０８とは、二つの経路で接続されている。
【００３４】
転送装置１０１は、回線１２３を介して転送装置１０２に接続されている。また、転送装置１０１は、回線１２４を介して転送装置１０３に接続されている。その結果、転送装置１０１と転送装置１０８とは、四つの経路で接続されている。転送装置１０１から転送装置１０８に至る経路においては、いずれの経路においても、２台の転送装置を経由する。そして、転送装置１０１〜１０３は、端末１１１，１１２から端末１１３，１１４に向けて発信されたＩＰパケットを受信した場合には、そのＩＰパケットを転送できる転送先として、それぞれ二つの転送装置を有している。
【００３５】
図２は、ＴＴＬ切替型ロードバランス転送装置７０１を示すブロック図である。実施例１においては、図１の転送装置１０１〜１０８は、具体的には、図２に示すＴＴＬ切替型ロードバランス転送装置７０１である。ＴＴＬ切替型ロードバランス転送装置７０１は、パケット転送部７１０、複数のインタフェース７１１〜７１４、および転送先決定部７２０を備える。転送先決定部７２０を、後述する参考例の転送先決定部７２０ｃおよび実施例２の転送先決定部９２０と区別するために「ＴＴＬ切替型転送先決定部」と呼ぶことがある。
【００３６】
インタフェース７１１〜７１４に到着したパケットは、パケット転送部７１０が受信する。パケット転送部７１０は、パケットのヘッダ部分を転送先決定部７２０へ通知する（図２の矢印Ａｈ参照）。転送先決定部７２０は、パケットのヘッダの情報に基づいてそのパケットの転送先を決定し、パケット転送部７１０へ通知する（図２の矢印Ａｔｒ参照）。パケット転送部７１０は、受信したパケットのＴＴＬフィールドを１減算し、転送先決定部７２０から通知された転送先へ送信する。
【００３７】
なお、「ＴＴＬ（Time to live）」とは、一つのパケットが破棄される前に行われうる転送装置による転送回数の上限である。各パケットは、ＴＴＬの値を格納したフィールド（ＴＴＬフィールド）を有している。パケットを最初に送信した端末がそのパケットの目的に応じた値を、ＴＴＬフィールドに設定する。その後、そのパケットを受信した各転送装置は、パケットを転送するたびにＴＴＬフィールドの値を１減算する。ある転送装置において、ＴＴＬフィールドが０であった場合には、そのパケットは廃棄される。その結果、ネットワーク上にルーティングループがあり、パケットがネットワーク上を巡回した場合にも、そのパケットが無限にネットワーク上を巡回する事態が防止される。本実施例のＴＴＬ切替型ロードバランス転送装置７０１においては、パケット転送部７１０がＴＴＬフィールドの値の減算を行う。ＴＴＬフィールドが、［課題を解決するための手段］における「第２のフィールド」に相当する。
【００３８】
転送先決定部７２０は、宛先アドレス抽出部７２１、ルーティングテーブル検索部７２２、ルーティングテーブル７２３、フロー識別フィールド抽出部７２４、ＴＴＬフィールド抽出部７２５、ハッシュ関数選択部７２６、複数のハッシュ関数７２７ａ〜７２７ｄ、および転送先選択部７３０を備える。
【００３９】
ルーティングテーブル７２３は、宛先アドレス２１１に対応づけられた転送先の数と、転送先とを格納している。ルーティングテーブル７２３の内容は、転送装置ごとに異なる。図１の各転送装置が有するルーティングテーブル７２３については、後に説明する。
【００４０】
パケット転送部７１０が通知したパケットのヘッダ部分は、宛先アドレス抽出部７２１、フロー識別フィールド抽出部７２４、ＴＴＬフィールド抽出部７２５へ通知される（図２の矢印Ａｈ参照）。
【００４１】
宛先アドレス抽出部７２１は、通知されたパケットのヘッダ部分から宛先アドレスを抽出し、ルーティングテーブル検索部７２２へ通知する（図２の矢印Ａａ参照）。ルーティングテーブル検索部７２２は、通知された宛先アドレスに基づいてルーティングテーブル７２３を検索し、検索結果として転送先と転送先の数とを得る。そして、ルーティングテーブル検索部７２２は、転送先と転送先の数とを転送先選択部７３０へ通知する。
【００４２】
フロー識別フィールド抽出部７２４は、通知されたパケットのヘッダ部分からフローの識別に使用されるフィールドの値を抽出し、ハッシュ関数選択部７２６へ通知する（図２の矢印Ａｆ参照）。本実施例では、フローの識別に、送信元アドレス、宛先アドレス、プロトコル番号の３つのフィールドを使うものとする。各パケットは、４バイトで表される送信元アドレス、４バイトで表される宛先アドレス、１バイトで表されるプロトコル番号のフィールドを含む。
【００４３】
ＴＴＬフィールド抽出部７２５は、通知されたパケットのヘッダ部分からＴＴＬフィールドの値を抽出し、ハッシュ関数選択部７２６へ通知する（図２の矢印Ａｔｔ参照）。
【００４４】
ハッシュ関数選択部７２６では、ＴＴＬフィールド抽出部７２５から通知されたＴＴＬフィールドの値をもとに４個あるハッシュ関数７２７ａ〜７２７ｄからひとつのハッシュ関数を選択する。そして、フロー識別フィールド抽出部７２４から通知された送信元アドレス、宛先アドレス、プロトコルの３つのフィールドの値を、選択したハッシュ関数へ通知する。
【００４５】
より具体的には、ハッシュ関数選択部７２６は、ＴＴＬフィールド抽出部７２５から通知されたＴＴＬフィールドの値を、ハッシュ関数の数Ｎｈ＝４で割った剰余に１を加えた値Ｖｓ（Ｖｓは、１≦Ｖｓ≦Ｎｈを満たす整数）を計算する。値Ｖｓが１であるときには、ハッシュ関数７２７ａを選択する。値Ｖｓが２であるときには、ハッシュ関数７２７ｂを選択する。値Ｖｓが３であるときには、ハッシュ関数７２７ｃを選択する。値Ｖｓが４であるときには、ハッシュ関数７２７ｄを選択する。
【００４６】
ハッシュ関数７２７ａ〜７２７ｄは、ハッシュ関数選択部７２６から送信元アドレス、宛先アドレス、プロトコルを通知された場合には、通知された各値からハッシュ値を算出し、転送先選択部７３０へ通知する。
【００４７】
ハッシュ関数７２７ａ〜７２７ｄは、送信元アドレス、宛先アドレス、プロトコルを表すフロー識別フィールドの値から、無作為なハッシュ値を生成する関数である。ハッシュ関数７２７ａ〜７２７ｄは、同じフロー識別フィールドの値から互いに異なるハッシュ値が得られるハッシュ関数である。
【００４８】
第１のハッシュ関数７２７ａは、送信元アドレス４バイト、宛先アドレス４バイト、プロトコル番号１バイトの合計９バイトを並べたバイト列に生成多項式ｘ８＋ｘ７＋ｘ３＋ｘ２＋１を適用して得られる、８ｂｉｔのＣＲＣ（巡回冗長検査：Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）値を、ハッシュ値とするハッシュ関数である。
【００４９】
第２のハッシュ関数７２７ｂは、送信元アドレス４バイト、宛先アドレス４バイト、プロトコル番号１バイトの合計９バイトを並べたバイト列に対して生成多項式ｘ８＋ｘ７＋ｘ３＋ｘ２＋１を適用して得られる８ｂｉｔのＣＲＣ値を、さらに右へ２ｂｉｔローテート（キャリーなし環状シフト）して得られる値を、ハッシュ値とするハッシュ関数である。
【００５０】
第３のハッシュ関数７２７ｃは、送信元アドレス４バイト、宛先アドレス４バイト、プロトコル番号１バイトの合計９バイトを並べたバイト列に対して生成多項式ｘ８＋ｘ７＋ｘ３＋ｘ２＋１を適用して得られる８ｂｉｔのＣＲＣ値を、さらに右へ４ｂｉｔローテートして得られる値を、ハッシュ値とするハッシュ関数である。
【００５１】
第４のハッシュ関数７２７ｄは、送信元アドレス４バイト、宛先アドレス４バイト、プロトコル番号１バイトの合計９バイトを並べたバイト列に対して生成多項式ｘ８＋ｘ７＋ｘ３＋ｘ２＋１を適用して得られる８ｂｉｔのＣＲＣ値を、さらに右へ６ｂｉｔローテートして得られる値を、ハッシュ値とするハッシュ関数である。
【００５２】
転送先選択部７３０は、ルーティングテーブル検索部７２２から通知された転送先が複数ある場合、ハッシュ関数７２７ａ〜７２７ｄのいずれかから通知されたハッシュ値を、さらにルーティングテーブル検索部７２２から通知された転送先の数Ｎｔｒで割った剰余に、１を加えて、値Ｖｔｒ（Ｖｔｒは、１≦Ｖｔｒ≦Ｎｔｒを満たす整数）を計算する。そして、転送先選択部７３０は、値Ｖｔｒが表す番号の転送先を選択する。たとえば、転送先の数Ｎｔｒが２である場合には、剰余は０または１である。剰余が０である場合には、Ｖｔｒ＝１となり、ルーティングテーブルのエントリにおける１番目の転送先が選択される。剰余が１である場合には、Ｖｔｒ＝２となり、ルーティングテーブルのエントリにおける２番目の転送先が選択される。このような処理を行うことにより、任意の出力値の範囲を有するハッシュ関数を使用して、転送先の数Ｎｔｒに応じた転送先の選択を行うことができる。
【００５３】
転送先選択部７３０は、転送先として選択した転送装置を、パケット転送部７１０に通知する（図２の矢印Ａｔｒ参照）。なお、転送先選択部７３０は、ルーティングテーブル検索部７２２から通知された転送先が一つしかない場合には、ルーティングテーブル検索部７２２から通知された転送先を、パケット転送部７１０に通知する。
【００５４】
図３は、図１に示す転送装置１０１のルーティングテーブル７２３（図２参照）である。ルーティングテーブル７２３は、宛先アドレス２１１に対応づけられた転送先の数２１２、ならびに転送先２１３，２１４を格納している。転送先の数２１２、ならびに転送先２１３，２１４は、宛先アドレス２１１に対応する転送方法を定める。
【００５５】
図３に示す転送装置１０１のルーティングテーブルは３個のエントリを有する。エントリ２０１は、宛先としてのアドレス１０．０．０．１と、その宛先に対応づけられた転送先としての端末１１１を有する。アドレス１０．０．０．１は、端末１１１のアドレスである（図１参照）。
【００５６】
エントリ２０２は、宛先としてのアドレス１０．０．０．２と、その宛先に対応づけられた転送先としての端末１１２を有する。アドレス１０．０．０．２は、端末１１２のアドレスである（図１参照）。
【００５７】
エントリ２０３は、宛先としてのアドレス２０．０．０．０／２４、すなわち、アドレス２０．０．０．０〜アドレス２０．０．０．２５５と、それらの宛先に対応づけられた転送先としての転送装置１０２，１０３を有する。すなわち、エントリ２０３は、二つの転送先を有するマルチパスである。なお、アドレス２０．０．０．０／２４（アドレス２０．０．０．０〜アドレス２０．０．０．２５５）には、端末１１３のアドレス２０．０．０．１、および端末１１４のアドレス２０．０．０．２が含まれる（図１参照）。
【００５８】
図４は、図１に示す転送装置１０２のルーティングテーブル７２３（図２参照）である。転送装置１０２のルーティングテーブルは２個のエントリを有する。エントリ３０１は、宛先としてのアドレス１０．０．０．０／２４、すなわち、アドレス１０．０．０．０〜アドレス２０．０．０．２５５と、それらの宛先に対応づけられた転送先としての転送装置１０１を有する。なお、アドレス１０．０．０．０／２４（アドレス１０．０．０．０〜アドレス１０．０．０．２５５）には、端末１１１のアドレス１０．０．０．１、および端末１１２のアドレス１０．０．０．２が含まれる（図１参照）。
【００５９】
図４に示すエントリ３０２は、宛先としてのアドレス２０．０．０．０／２４、すなわち、アドレス２０．０．０．０〜アドレス２０．０．０．２５５と、それらの宛先に対応づけられた転送先としての転送装置１０４，１０５を有する。すなわち、エントリ３０２は、二つの転送先を有するマルチパスである。なお、アドレス２０．０．０．０／２４（アドレス２０．０．０．０〜アドレス２０．０．０．２５５）には、端末１１３のアドレス２０．０．０．１、および端末１１４のアドレス２０．０．０．２が含まれる（図１参照）。
【００６０】
図５は、図１に示す転送装置１０３のルーティングテーブル７２３である（図２参照）。転送装置１０３のルーティングテーブルは２個のエントリを有する。エントリ４０１は、宛先としてのアドレス１０．０．０．０／２４、すなわち、アドレス１０．０．０．０〜アドレス２０．０．０．２５５と、それらの宛先に対応づけられた転送先としての転送装置１０１を有する。なお、アドレス１０．０．０．０／２４（アドレス１０．０．０．０〜アドレス１０．０．０．２５５）には、端末１１１のアドレス１０．０．０．１、および端末１１２のアドレス１０．０．０．２が含まれる（図１参照）。
【００６１】
図５に示すエントリ４０２は、宛先としてのアドレス２０．０．０．０／２４、すなわち、アドレス２０．０．０．０〜アドレス２０．０．０．２５５と、それらの宛先に対応づけられた転送先としての転送装置１０６，１０７を有する。すなわち、エントリ４０２は、二つの転送先を有するマルチパスである。なお、アドレス２０．０．０．０／２４（アドレス２０．０．０．０〜アドレス２０．０．０．２５５）には、端末１１３のアドレス２０．０．０．１、および端末１１４のアドレス２０．０．０．２が含まれる（図１参照）。
【００６２】
他の転送装置のルーティングテーブル７２３の内容については、技術の理解を容易にするために、説明を省略する。
【００６３】
Ａ２．ロードバランス転送装置における処理：
以下で、ＴＴＬ切替型ロードバランス転送装置７０１を使用した場合のフローの分配について説明する。
【００６４】
図６は、ネットワーク上で分配の偏りの有無を検証するためのフローを示す表Ｔｆである。本実施例においては、各フローは、送信元アドレス、宛先アドレス、およびプロトコル番号で識別される。このため、表Ｔｆにおいて、各フローは、送信元アドレス５１１と宛先アドレス５１２とプロトコル番号５１３の列の値で特定されている。各フローのパケットは、フィールドにこれらの値を格納している。送信元アドレス、宛先アドレス、およびプロトコル番号を格納したフィールドが、［課題を解決するための手段］における「第１のフィールド」に相当する。
【００６５】
図６の表Ｔｆには、８個のフロー５０１〜５０８が示されている。各フローの送信元のアドレスは、列５１１に示すように、端末１１１のアドレス１０．０．０．１、または端末１１２のアドレス１０．０．０．２のいずれかである。各フローの宛先のアドレスは、列５１２に示すように、端末１１３のアドレス２０．０．０．１、または端末１１４のアドレス２０．０．０．２のいずれかである。各フローのプロトコル番号は、列５１３に示すように、ＴＣＰのプロトコル番号である６、またはＵＤＰのプロトコル番号である１７のいずれかである。３個のフィールドがそれぞれ２つの値を取り得る結果として、表Ｔｆには、８個のフローが示されている。
【００６６】
図７は、図１のネットワークにおいて、各転送装置に図２のＴＴＬ切替型ロードバランス転送装置７０１を採用し、図６に示したフロー５０１〜５０８のパケットを端末１１１，１１２から流した場合の、パケット転送経路（第１ホップ、第２ホップ、第３ホップ）を示した表Ｔｐ１である。なお、端末１１１，１１２は、すべてのフローのパケットについて、ＴＴＬを６４として、パケットを送信するものとする。
【００６７】
図７の表Ｔｐ１は、図６の表の内容に加えて、送信元端末がパケットを送信する時のＴＴＬを表す列８１４、第１ホップの転送装置に対応する列８１５、第２ホップの転送装置に対応する列８１９、第３ホップの転送装置を表す列８２３を有している。第１ホップの転送装置に対応する列８１５は、第１ホップの転送装置を表す列８１６、第１ホップの転送装置がパケットを受信した時点でのＴＴＬを表す列８１７、第１ホップでのパケットに対応するハッシュ値を表す列８１８を含む。第２ホップの転送装置に対応する列８１９は、第２ホップの転送装置を表す列８２０、第２ホップの転送装置がパケットを受信した時点でのＴＴＬを表す列８２１、第２ホップでのパケットに対応するハッシュ値を表す８２２を含む。
【００６８】
表Ｔｐ１の第１行目に示されているフロー５０１を例に、転送先決定部７２０における第１ホップ〜第３ホップの決定の処理を説明する。フロー５０１の送信元アドレスは１０．０．０．１である。すなわち、フロー５０１の送信元は、端末１１１である（図１参照）。端末１１１は、フロー５０１のパケットを送信する際には、端末１１１に直接接続している唯一の転送装置１０１へ、そのパケットを送信する（列８１６参照）。また、端末１１１がパケットを送信した時点の端末送信ＴＴＬは６４であり（列８１４参照）、第１ホップの受信ＴＴＬも６４である（列８１７参照）。
【００６９】
第１ホップである転送装置１０１のハッシュ関数選択部７２６（図２）は、受信ＴＴＬの値６４（図７の列８１７参照）を、ハッシュ関数の数Ｎｈ＝４で割った剰余に１を加えた値Ｖｓを計算する。ここでは、Ｖｓ＝１となるので、ハッシュ関数選択部７２６は、Ｖｓ＝１に対応するハッシュ関数７２７ａを選択する。フロー５０１のパケットからフロー識別フィールド抽出部７２４が抽出した内容（図６の表Ｔｆの第１行目参照）、すなわち、送信元アドレス１０．０．０．１、宛先アドレス２０．０．０．１、プロトコル番号６が、ハッシュ関数選択部７２６を経由してハッシュ関数７２７ａへ通知される（図７の列５１１〜５１３、ならびに図２の矢印Ａｆ参照）。
【００７０】
ハッシュ関数７２７ａは、送信元アドレス、宛先アドレス、プロトコル番号の３つの値を並べた９バイトのバイト列０Ａ０００００１１４０００００１０６に生成多項式ｘ８＋ｘ７＋ｘ３＋ｘ２＋１を適用して、第１ホップのハッシュ値として９０を得る（図７の列８１８参照）。
【００７１】
一方で、転送装置１０１の宛先アドレス抽出部７２１は、フロー５０１のパケットから宛先アドレス２０．０．０．１を抽出し、ルーティングテーブル検索部７２２へ通知する（図７の列５１２、および図２の矢印Ａａ参照）。
【００７２】
ルーティングテーブル検索部７２２（図２参照）は、通知された宛先アドレス２０．０．０．１を用いてルーティングテーブル７２３を検索する。ルーティングテーブル検索部７２２は、図３に示す転送装置１０１のルーティングテーブル７２３のエントリ２０３から、転送先数２、ならびに転送先１としての転送装置１０２、転送先２としての転送装置１０３を得て、転送先選択部７３０へ通知する（図２参照）。
【００７３】
転送先選択部７３０は、ルーティングテーブル検索部７２２より通知を受けた転送先数２、転送先１としての転送装置１０２、転送先２としての転送装置１０３、ならびに、ハッシュ関数７２７ａより通知を受けたハッシュ値９０に基づいて、以下の処理を行う。すなわち、転送先選択部７３０は、ハッシュ値９０を転送先数Ｎｔｒ＝２で割った剰余０に１を足した値Ｖｔｒ＝１を得る。そして、転送先選択部７３０は、番号が１の転送先、つまり転送先１である転送装置１０２を選択して、これをパケット転送部７１０へ通知する（図２の矢印Ａｔｒ参照）。
【００７４】
パケット転送部７１０はパケットのＴＴＬを１減算して６３とし、通知された転送先である転送装置１０２へパケットを転送する。
【００７５】
こうして、フロー５０１についての第２ホップの転送装置として、転送装置１０２が選ばれる（図７の列８２０参照）。また、転送装置１０２が受信した時点のＴＴＬは６３となる（同、列８２１参照）。
【００７６】
第２ホップである転送装置１０２のハッシュ関数選択部７２６（図２参照）は、受信ＴＴＬの値６３（図７の列８２１参照）を、ハッシュ関数の数Ｎｈ＝４で割った剰余に１を加えたＶｓを計算する。Ｖｓ＝４であるので、ハッシュ関数選択部７２６は、対応するハッシュ関数７２７ｄを選択する。フロー５０１のパケットからフロー識別フィールド抽出部７２４が抽出した内容、すなわち、送信元アドレス１０．０．０．１、宛先アドレス２０．０．０．１、プロトコル番号６が、ハッシュ関数選択部７２６を経由してハッシュ関数７２７ｄへ通知される（図６の表Ｔｆの第１行目、ならびに図２の矢印Ａｆ参照）。
【００７７】
ハッシュ関数７２７ｄは、送信元アドレス、宛先アドレス、プロトコル番号の３つの値を並べた９バイトのバイト列０Ａ０００００１１４０００００１０６に生成多項式ｘ８＋ｘ７＋ｘ３＋ｘ２＋１を適用してＣＲＣ値を求め、得られた値９０を右へ６ビットだけローテートし、第２ホップのハッシュ値として１０５を得る（図７の列８２２参照）。
【００７８】
一方で、転送装置１０２の宛先アドレス抽出部７２１は、フロー５０１のパケットから宛先アドレス２０．０．０．１を抽出し、ルーティングテーブル検索部７２２へ通知する（図７の列５１２、および図２の矢印Ａａ参照）。
【００７９】
ルーティングテーブル検索部７２２（図２参照）では通知された宛先アドレス２０．０．０．１を用いてルーティングテーブル７２３を検索する。ルーティングテーブル検索部７２２は、図４に示す転送装置１０２のルーティングテーブル７２３のエントリ３０２から、転送先数２、ならびに転送先１としての転送装置１０４、転送先２としての転送装置１０５を得て、転送先選択部７３０へ通知する（図２参照）。
【００８０】
転送先選択部７３０では、ルーティングテーブル検索部７２２より通知を受けた転送先数２、転送先１としての転送装置１０４、転送先２としての転送装置１０５、ならびに、ハッシュ関数７２７ｄより通知を受けたハッシュ値１０５に基づいて、以下の処理を行う。すなわち、転送先選択部７３０は、ハッシュ値１０５を転送先数Ｎｔｒ＝２で割った剰余１に１を足した値Ｖｔｒ＝２を得る。そして、転送先選択部７３０は、番号が２の転送先、つまり転送先２の転送装置１０５を選択してパケット転送部７１０へ通知する（図２の矢印Ａｔｒ参照）。
【００８１】
パケット転送部７１０はパケットのＴＴＬを１減算し、通知された転送先である転送装置１０５へパケットを転送する。
【００８２】
こうして、フロー５０１についての第３のホップの転送装置として、転送装置１０５が選ばれる（図７の列８２３参照）。
【００８３】
他のフロー５０２〜５０８についても上記と同じ方法によって第１ホップ、第２ホップ、第３ホップを求めた結果が、図７に示されている。
【００８４】
図７において、全８フローのうち半分の４フローが、第２ホップとして転送装置１０２を割り当てられており、残りの半分のフローが、第２ホップとして転送装置１０３を割り当てられている（列８２０参照）。すなわち、第２ホップに関しては、転送装置１０２，１０３に均等にフローが割りふられている。また、図７において、全８フローのうち１／４の２フローずつが、第３ホップとして、転送装置１０４、転送装置１０５、転送装置１０６、転送装置１０７に均等に割り当てられている（列８２３参照）。
【００８５】
以上より、実施例１のＴＴＬ切替型ロードバランス転送装置７０１を用いると、マルチパスで選ばれた転送装置（上記の例では第２ホップ）においてさらにマルチパス転送が発生した場合においても、パケットを均等に分散することができることがわかる。そして、パケットの分散のために、ネットワーク管理者が転送先選択方法を設定する必要がなく、転送先選択方法を決定するプロトコルを使う必要もない。
【００８６】
Ａ３．ロードバランス転送装置の効果：
実施例１では、転送装置に転送先選択方法としてのハッシュ関数を複数用意する。そして、パケットからＴＴＬフィールドの値を抽出して、その値に対応する転送先選択方法（ハッシュ関数）をパケットごとに選び、選んだ転送先選択方法に、フローを識別するフィールドの値を適用して転送先を決定している。
【００８７】
実施例１の転送装置では、マルチパスから転送先を選択する方法にハッシュ関数を用いているので、通信フローと転送先の対応を記憶する必要がない。
【００８８】
ＴＴＬフィールドの値は、転送装置がパケットを転送するたびに１減る。このため、（ｉ）あるパケットのＴＴＬフィールドの値は、そのパケットが転送された先の各転送装置にある時点で、それぞれ異なっている。一方、同一通信フローの異なるパケットについては、端末が最初に送信する時点におけるＴＴＬフィールドの値は同じである。このため、（ｉｉ）通信経路が同じであるかぎり、同一フローのどのパケットについても、同じ転送装置が受信した時点でのＴＴＬフィールドの値は同じである。
【００８９】
実施例１においては、ＴＴＬフィールドの後者の特性（ｉｉ）により、同一フローの異なるパケットが同じ転送先に転送される。そして、ＴＴＬフィールドの前者の特性（ｉ）により、同一パケットであっても、異なる転送装置にあるときには、同じ選択傾向にならないように転送先が選択される。
【００９０】
上記の効果は、マルチパスである転送装置であって、転送先を選択する方法としてハッシュ関数を用いる転送装置が、２台以上あるネットワークにおいて、有効に発揮される。このため、ネットワークにおいて通信を公平に分散させるにあたり、ネットワーク管理者が転送先選択方法を設定する必要がない。また、各転送装置についてできるだけ異なる転送先選択方法を採用するためのプロトコルを設ける必要もない。なお、ここでは、各転送装置において転送先が２個ある場合を例に説明したが（図１参照）、転送装置において転送可能な転送先が３以上ある場合についても、同様に、上記の効果は得られる。
【００９１】
Ｂ．参考例：
図８は、参考例のロードバランス転送装置７０２を示すブロック図である。参考例のロードバランス転送装置７０２は、ＴＴＬフィールド抽出部７２５、ハッシュ関数選択部７２６、ならびにハッシュ関数７２７ｂ〜７２７ｄを備えていない（図２および図８参照）。そして、フロー識別フィールド抽出部７２４は、パケットのヘッダ部分からフローの識別に使用する送信元アドレス、宛先アドレス、およびプロトコル番号のフィールドの値（図６参照）を抽出し、ハッシュ関数７２７ａへ通知する（図８の矢印Ａｆ参照）。参考例のロードバランス転送装置７０２の他の点は、実施例１のロードバランス転送装置７０１と同じである。
【００９２】
図９は、図１のネットワークＮＴの各転送装置に、図８の参考例のロードバランス転送装置７０２を採用し、図６に示したフロー５０１〜５０８のパケットを端末１１１，１１２から流した場合の、パケット転送経路（第１ホップ、第２ホップ、第３ホップ）を示した表Ｔｐｃである。
【００９３】
ただし、転送装置１０１のルーティングテーブル７２３は図３に示した内容を有し、転送装置１０２のルーティングテーブル７２３は図４に示した内容を有し、転送装置１０３のルーティングテーブル７２３は図５に示した内容を有するものとする。また、端末１１１，１１２は、すべてのフローのパケットについて、ＴＴＬを６４として、パケットを送信するものとする。
【００９４】
表Ｔｐｃの第１行目に示されているフロー５０１（図７の第１行目参照）を例に説明する。フロー５０１の送信元アドレスは１０．０．０．１である。すなわち、フロー５０１の送信元は、端末１１１である（図１参照）。端末１１１は、フロー５０１のパケットを送信する際には、転送装置１０１へそのパケットを送信する。このため、フロー５０１の第１ホップは転送装置１０１である（図９の列６１５参照）。
【００９５】
フロー５０１のパケットからフロー識別フィールド抽出部７２４が抽出した送信元アドレス１０．０．０．１、宛先アドレス２０．０．０．１、プロトコル番号６が、ハッシュ関数７２７ａへ通知される（図９の列５１１〜５１３、ならびに図８の矢印Ａｆ参照）。
【００９６】
ハッシュ関数７２７ａは、実施例１の場合と同様にして、送信元アドレス、宛先アドレス、プロトコル番号に基づいて、第１ホップのハッシュ値として９０を得る（図９の列６１４参照）。
【００９７】
一方で、転送装置１０１の宛先アドレス抽出部７２１は、フロー５０１のパケットから宛先アドレス２０．０．０．１を抽出し、ルーティングテーブル検索部７２２へ通知する（図２の矢印Ａａ参照）。
【００９８】
ルーティングテーブル検索部７２２は、通知された宛先アドレス２０．０．０．１を用いて、実施例１と同様に、ルーティングテーブル７２３を検索する。そして、ルーティングテーブル検索部７２２は、転送先数２、ならびに転送先１としての転送装置１０２、転送先２としての転送装置１０３を得て、それらを転送先選択部７３０へ通知する（図３のエントリ２０３、および図８参照）。
【００９９】
転送先選択部７３０は、ルーティングテーブル検索部７２２より通知を受けた転送先数２、転送先１としての転送装置１０２、転送先２としての転送装置１０３、ならびに、ハッシュ関数７２７ａより通知を受けたハッシュ値９０に基づいて、実施例１の場合と同様に、転送先１の転送装置１０２を選択して、これをパケット転送部７１０へ通知する（図９の列６１６、および図８の矢印Ａｔｒ参照）。
【０１００】
パケット転送部７１０ではパケットのＴＴＬを１減算して６３とし、通知された転送先である転送装置１０２へパケットを転送する。
【０１０１】
第２ホップである転送装置１０２のフロー識別フィールド抽出部７２４は、フロー５０１のパケットから、送信元アドレス１０．０．０．１、宛先アドレス２０．０．０．１、プロトコル番号６を抽出し、ハッシュ関数７２７ａへ通知する（図８参照）。
【０１０２】
第２ホップである転送装置１０２のハッシュ関数７２７ａは、第１ホップである転送装置１０１のハッシュ関数７２７ａと同様にして、送信元アドレス、宛先アドレス、プロトコル番号に基づいて、第２ホップのハッシュ値として９０を得る。
【０１０３】
第２ホップである転送装置１０２のルーティングテーブル検索部７２２は、宛先アドレス抽出部７２１から通知された宛先アドレス２０．０．０．１を用いて、第１ホップである転送装置１０１のルーティングテーブル検索部７２２と同様に、ルーティングテーブル７２３を検索する。そして、第２ホップである転送装置１０２のルーティングテーブル検索部７２２は、転送先数２、ならびに転送先１としての転送装置１０４、転送先２としての転送装置１０５を得て、それらを転送先選択部７３０へ通知する（図４のエントリ３０２、および図８参照）。
【０１０４】
転送先選択部７３０は、ルーティングテーブル検索部７２２より通知を受けた転送先数２、転送先１としての転送装置１０４、転送先２としての転送装置１０５、ならびに、ハッシュ関数７２７ａより通知を受けたハッシュ値９０に基づいて、以下の処理を行う。すなわち、転送先選択部７３０は、ハッシュ値９０に基づいて値Ｖｔｒ＝１を得る。そして、転送先選択部７３０は、転送先１の転送装置１０４を選択してパケット転送部７１０へ通知する（図８の矢印Ａｔｒ参照）。
【０１０５】
パケット転送部７１０ではパケットのＴＴＬを１減算して６３とし、通知された転送先である転送装置１０４へパケットを転送する。
【０１０６】
こうして、第３のホップの転送装置として転送装置として転送装置１０４が選ばれる（図９の列６１７参照）。
【０１０７】
他のフロー５０２〜５０８についても上記と同じ方法によって第１ホップ、第２ホップ、第３ホップを求めた結果が、図９に示されている。
【０１０８】
図９においても、実施例１の図７と同様、全８フローのうち半分の４フローが、第２ホップとして転送装置１０２を割り当てられており、残りの半分のフローが、第２ホップとして転送装置１０３を割り当てられている（列６１６参照）。すなわち、第２ホップに関しては、転送装置１０２，１０３に均等にフローが割りふられている。
【０１０９】
しかし、図９においては、全８フローのうち半分の４フローが、第３ホップとして転送装置１０４を割り当てられており、残りの半分のフローが、第３ホップとして転送装置１０７を割り当てられている（列６１７参照）。すなわち、第３ホップの転送装置として、転送装置１０５，１０６は、選択されていない。言い換えれば、第２ホップとしての転送装置１０２，１０３においては、ロードバランスが機能していない。
【０１１０】
転送装置１０２，１０３において転送先の選択が偏る原因は、（ｉ）転送先を選択する方法が、フローの識別に使えるフィールドの値を入力値とするハッシュ関数を用いるものであり、しかも、（ｉｉ）その方法がすべての転送装置で同一であることである。
【０１１１】
より具体的には、転送装置１０１から転送装置１０２へ転送されるパケットは、いずれも、フローを表すフィールドの値に基づいて、転送先１が選択される（すなわち、ハッシュ関数７２７ａのハッシュ値の２の剰余が０となる）パケットである。このため、それらのパケットに対しては、第２ホップである転送装置１０２においても、転送先１が選択される。その結果、それらのパケットの第３ホップは同じ転送装置となる。同様に、転送装置１０１から転送装置１０３へ転送されるパケットは、いずれも転送先２が選択される（すなわち、ハッシュ関数７２７ａのハッシュ値の２の剰余が１となる）パケットである。このため、それらのパケットに対しては、第２ホップである転送装置１０３においても、転送先２が選択される。その結果、それらのパケットの第３ホップは同じ転送装置となる。
【０１１２】
以上で説明したように、複数のハッシュ関数７２７ｂ〜７２７ｄと、ハッシュ関数選択部７２６と、ＴＴＬフィールド抽出部７２５と（図２参照）、を備えない参考例のロードバランス転送装置７０２は、図１のネットワークＮＴの転送装置として採用された場合に、ロードバランス機能を十分に発揮し得ない。
【０１１３】
一方で、同じ入力値に対して異なるハッシュ値を出力する複数のハッシュ関数７２７ｂ〜７２７ｄと、それらのハッシュ関数を選択するハッシュ関数選択部７２６と、ハッシュ関数選択部７２６に対して各ホップで異なる入力値を与えるＴＴＬフィールド抽出部７２５と、を備える実施例１のロードバランス転送装置７０２は（図２参照）、図１のネットワークＮＴの転送装置として採用された場合に、ロードバランス機能を十分に発揮し得る（図７参照）。
【０１１４】
Ｃ．実施例２：
Ｃ１．ロードバランス転送装置の構成：
図１０は、実施例２のＴＴＬ混合型ロードバランス転送装置９０１の構造を示すブロック図である。ＴＴＬ混合型ロードバランス装置９０１は、ハッシュ関数選択部７２６、ならびにハッシュ関数７２７ｂ〜７２７ｄを備えていない（図２および図１０参照）。そして、ＴＴＬ混合型ロードバランス転送装置９０１は、それらに代えてＴＴＬ混合ハッシュ関数９２６を備えている。フロー識別フィールド抽出部７２４は、パケットのヘッダ部分からフローの識別に使用する送信元アドレス、宛先アドレス、およびプロトコル番号のフィールドの値（図６参照）を抽出し、ＴＴＬ混合ハッシュ関数９２６へ通知する（図１０の矢印Ａｆ参照）。ＴＴＬフィールド抽出部７２５は、パケットのヘッダ部分からＴＴＬフィールドの値を抽出し、ＴＴＬ混合ハッシュ関数９２６へ通知する（図１０の矢印Ａｔｔ参照）。これらの構成を備える転送先決定部を、実施例１の転送先決定部７２０と区別するために、転送先決定部９２０と呼ぶ。転送先決定部９２０を、「ＴＴＬ混合型転送先決定部」と呼ぶことがある。
【０１１５】
実施例２のＴＴＬ混合型ロードバランス転送装置９０１の他の点は、実施例１のＴＴＬ切替型ロードバランス転送装置７０１と同じである。
【０１１６】
ＴＴＬ混合ハッシュ関数９２６は、フロー識別フィールド抽出部７２４から受け取るフローを表すフィールドの値と、ＴＴＬフィールド抽出部７２５から受け取るＴＴＬ値を、を使ってハッシュ値を計算し、転送先選択部７３０へ通知する。
【０１１７】
より具体的には、ＴＴＬ混合ハッシュ関数９２６は、以下の処理を行う。すなわち、ＴＴＬ混合ハッシュ関数９２６は、ＴＴＬを６４で割った剰余の数Ｖｒを計算する。そして、送信元アドレス４バイト、宛先アドレス４バイト、プロトコル番号１バイトの合計９バイトを並べた７２ビット列を、Ｖｒだけ右へビットローテートする。その結果として得られた７２ビット列に、生成多項式ｘ８＋ｘ７＋ｘ３＋ｘ２＋１を適用して得られた８ビットのＣＲＣ値を、出力値としてのハッシュ値とする。
【０１１８】
なお、実施例２では一例として上記のようなＴＴＬ混合ハッシュ関数９２６を採用したが、関数としては、上記とは別の内容を有する関数を採用することもできる。たとえば、ＴＴＬを割って剰余の数Ｖｒを求める際に使用する数は、６４以外の値とすることもできる。すなわち、ＴＴＬ混合ハッシュ関数は、フロー識別フィールドの値とＴＴＬ値とをもとに、無作為な値を生成することができる関数であればよい。ただし、ＴＴＬを割って剰余の数Ｖｒを求める際に使用する数は、ローテートする数の桁数より小さい値であり、かつ、できるだけ大きい値であることが好ましい。また、ローテートする数の桁数の約数ではないことが好ましい。
【０１１９】
転送先選択部７３０（図１０参照）は、ルーティングテーブル検索部７２２から通知された転送先が複数ある場合、ＴＴＬ混合ハッシュ関数９２６から通知されたハッシュ値を、さらにルーティングテーブル検索部７２２から通知された転送先数Ｎｔｒで割った剰余に１を加えて、値Ｖｔｒ（Ｖｔｒは、１≦Ｖｔｒ≦Ｎｔｒを満たす整数）を計算する。そして、転送先選択部７３０は、値Ｖｔｒが表す番号の転送先を選択する。
【０１２０】
Ｃ２．ロードバランス転送装置における処理：
図１１は、図１のネットワークにおいて、各転送装置に図１０のＴＴＬ混合型ロードバランス転送装置９０１を採用し、図６に示したフロー５０１〜５０８のパケットを端末１１１，１１２から流した場合の、パケット転送経路を示した表Ｔｐ２である。ただし、転送装置１０１のルーティングテーブル７２３は図３に示した内容を有し、転送装置１０２のルーティングテーブル７２３は図４に示した内容を有し、転送装置１０３のルーティングテーブル７２３は図５に示した内容を有するものとする。また、端末１１１，１１２は、すべてのフローのパケットについて、ＴＴＬを６４として、パケットを送信するものとする。
【０１２１】
図１１の表Ｔｐ２の各欄は、実施例１の図７の表Ｔｐ１の各欄に対応する。すなわち、列１０１４は、送信元端末がパケットを送信する時のＴＴＬを表す。列１０１５は、第１ホップの転送装置に対応する。列１０１９は、第２ホップの転送装置に対応する。列１０２３は、第３ホップの転送装置を表す。
【０１２２】
第１ホップの転送装置に対応する列１０１５は、第１ホップの転送装置を表す列１０１６、第１ホップの転送装置がパケットを受信した時点でのＴＴＬを表す列１０１７、第１ホップでのパケットに対応するハッシュ値を表す列１０１８を含む。第２ホップの転送装置に対応する列１０１９は、第２ホップの転送装置を表す列１０２０、第２ホップの転送装置がパケットを受信した時点でのＴＴＬを表す列１０２１、第２ホップでのパケットに対応するハッシュ値を表す１０２２を含む。
【０１２３】
表Ｔｐ２の第１行目に示されているフロー５０１を例に、転送先決定部９２０における第１ホップ〜第３ホップの決定の処理を説明する。実施例１で説明したように、フロー５０１の送信元は、端末１１１（アドレス１０．０．０．１）である（図１１の列５１１参照）。そして、パケットの第１ホップの転送装置１０１６は、転送装置１０１である（図１１の列１０１６および図１参照）。また、端末１１１がパケットを送信した時点の端末送信ＴＴＬ１０１４は６４であり（図１１の列１０１４参照）、第１ホップの受信ＴＴＬ１０１７も６４である（図１１の列１０１７参照）。
【０１２４】
第１ホップである転送装置１０１において、フロー識別フィールド抽出部７２４が送信元アドレス１０．０．０．１、宛先アドレス２０．０．０．１、プロトコル番号６を抽出し、ＴＴＬ混合ハッシュ関数９２６へ通知する（図１０の矢印Ａｆ参照）。また、ＴＴＬフィールド抽出部７２５が受信ＴＴＬ値６４を抽出し、同じくＴＴＬ混合ハッシュ関数９２６へ通知する（図１０の矢印Ａｔｔ参照）。
【０１２５】
ＴＴＬ混合ハッシュ関数９２６では、ＴＴＬを６４で割った剰余の数Ｖｒ＝０を計算する。そして、通知された送信元アドレス、宛先アドレス、プロトコル番号を並べた９バイトのバイト列０Ａ０００００１１４０００００１０６を、Ｖｒすなわち０ビットだけ右へローテートする。その結果として得られた値０Ａ０００００１１４０００００１０６に、生成多項式ｘ８＋ｘ７＋ｘ３＋ｘ２＋１を適用してＣＲＣ値９０を求め、第１ホップのハッシュ値として９０を得る（図１１の列１０１８参照）。
【０１２６】
一方で、転送装置１０１の宛先アドレス抽出部７２１は、フロー５０１のパケットから宛先アドレス２０．０．０．１を抽出し、ルーティングテーブル検索部７２２へ通知する（図１０の矢印Ａａ参照）。
【０１２７】
ルーティングテーブル検索部７２２は、通知された宛先アドレス２０．０．０．１を用いてルーティングテーブル７２３を検索する。そして、ルーティングテーブル検索部７２２は、転送先数２、ならびに転送先１としての転送装置１０２、転送先２としての転送装置１０３を得て（図３のエントリ２０３参照）、それらを転送先選択部７３０へ通知する（図１０参照）。
【０１２８】
転送先選択部７３０は、ルーティングテーブル検索部７２２より通知を受けた転送先数２、転送先１としての転送装置１０２、転送先２としての転送装置１０３、ならびに、ＴＴＬ混合ハッシュ関数９２６より通知を受けたハッシュ値９０に基づいて、ハッシュ値９０を転送先数Ｎｔｒ＝２で割った剰余に１を足した値Ｖｔｒ＝１を得る。そして、転送先選択部７３０は、番号が１の転送先、つまり転送先１の転送装置１０２を選択してパケット転送部７１０へ通知する（図１０参照）。
【０１２９】
パケット転送部７１０ではパケットのＴＴＬを１減算して６３とし、通知された転送先である転送装置１０２へパケットを転送する。
【０１３０】
こうして、フロー５０１についての第２ホップの転送装置として転送装置１０２が選ばれる（図１１の列１０２０参照）。また、転送装置１０２が受信した時点のＴＴＬは６３となる（図１１の列１０２１参照）。
【０１３１】
第２ホップである転送装置１０２においても、フロー識別フィールド抽出部７２４が同様に送信元アドレス、宛先アドレス、プロトコル番号を抽出し、ＴＴＬ混合ハッシュ関数９２６へ通知する（図１０の矢印Ａａ参照）。また、ＴＴＬフィールド抽出部７２５が受信ＴＴＬ値６３を抽出し、ＴＴＬ混合ハッシュ関数９２６へ通知する（図１０の矢印Ａｔｔ参照）。
【０１３２】
転送装置１０２のＴＴＬ混合ハッシュ関数９２６は、ＴＴＬ６３を６４で割った剰余の数Ｖｒ＝６３を計算する。そして、ＴＴＬ混合ハッシュ関数９２６は、通知された送信元アドレス、宛先アドレス、プロトコル番号を並べた９バイトのバイト列０Ａ０００００１１４０００００１０６を、Ｖｒすなわち６３ビットだけ右ローテートする。その結果得られた値０００００２２８０００００２０Ｃ１４に、生成多項式ｘ８＋ｘ７＋ｘ３＋ｘ２＋１を適用してＣＲＣ値４１を求め、第２ホップのハッシュ値として４１を得る（図１１の列１０２２参照）。
【０１３３】
一方で、転送装置１０２の宛先アドレス抽出部７２１は、フロー５０１のパケットから宛先アドレス２０．０．０．１を抽出し、ルーティングテーブル検索部７２２へ通知する（図１０の矢印Ａａ参照）。
【０１３４】
ルーティングテーブル検索部７２２は、通知された宛先アドレス２０．０．０．１を用いてルーティングテーブル７２３（図４参照）を検索する。そして、ルーティングテーブル検索部７２２は、転送先数２、ならびに転送先１としての転送装置１０４、転送先２としての転送装置１０５を得て（図３のエントリ３０２参照）、転送先選択部７３０へ通知する。
【０１３５】
転送先選択部７３０は、ルーティングテーブル検索部７２２より通知を受けた転送先数２、転送先１としての転送装置１０４、転送先２としての転送装置１０５、ならびに、ＴＴＬ混合ハッシュ関数９２６より通知を受けたハッシュ値４１に基づいて、以下の処理を行う。すなわち、ハッシュ値４１を転送先数Ｎｔｒ＝２で割った剰余に１を足した値Ｖｔｒ＝２を得る。そして、転送先選択部７３０は、番号が２の転送先、つまり転送先２の転送装置１０５を選択してパケット転送部７１０へ通知する。
【０１３６】
パケット転送部７１０ではパケットのＴＴＬを１減算し、通知された転送先である転送装置１０５へパケットを転送する。
【０１３７】
こうして、フロー５０１についての第３のホップの転送装置として転送装置１０５が選ばれる（図１１の列１０２３参照）。
【０１３８】
他のフロー５０２〜５０８についても上記と同じ方法によって第１ホップ、第２ホップ、第３ホップを求めた結果が、図１１に示されている。
【０１３９】
図１１において、全８フローのうち半分の４フローが、第２ホップとして転送装置１０２を割り当てられており、残りの半分のフローが、第２ホップとして転送装置１０３を割り当てられている（列１０２０参照）。すなわち、第２ホップに関しては、転送装置１０２，１０３に均等にフローが割りふられている。また、図１１において、全８フローのうち１／４の２フローずつが、第３ホップとして、転送装置１０４、転送装置１０５、転送装置１０６、転送装置１０７に均等に割り当てられている（列１０２３参照）。
【０１４０】
以上より、実施例２のＴＴＬ混合型ロードバランス転送装置９０１を用いても、マルチパスで選ばれた転送装置（上記の例では第２ホップ）においてさらにマルチパス転送が発生した場合においても、パケットを均等に分散することができることがわかる。そして、パケットの分散のために、ネットワーク管理者が転送先選択方法を設定する必要がなく、転送先選択方法を決定するプロトコルを使う必要もない。
【０１４１】
Ｃ３．ロードバランス転送装置の効果：
実施例２では、フローを識別するフィールドの値の他に、ＴＴＬフィールドの値も同時に用いる転送先選択方法（混合ハッシュ関数）を用意する。そして、パケットごとにＴＴＬフィールドとフローを識別するフィールドの値を抽出し、その両方を転送先選択方法に適用することによって、転送先を決定する。
【０１４２】
あるパケットのＴＴＬフィールドの値は、そのパケットが転送された先の各転送装置にある時点でそれぞれ異なっている、というＴＴＬフィールドの特性を利用することにより、本実施例においては、同一パケットであっても、異なる転送装置にあるときには、同じ選択傾向にならないように転送先が選択される。
【０１４３】
また、通信経路が同じであるかぎり、同一フローのどのパケットについても、同じ転送装置が受信した時点でのＴＴＬフィールドの値は同じである、というＴＴＬフィールドの特性を利用することにより、本実施例においては、同一フローの異なるパケットは、同じ転送先に転送される。
【０１４４】
その結果、実施例２によっても、実施例１と同様に、ネットワークにおけるパケットの転送において、参考例に比べて優れた効果を得ることができる。
【０１４５】
Ｄ．変形例：
なお、本発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能である。
【０１４６】
Ｄ１．変形例１：
実施例１の第２〜第４のハッシュ関数７２７ｂ〜ｄは、ＣＲＣ値を、さらにそれぞれ右へ２ｂｉｔ、４ｂｉｔ、および６ｂｉｔローテートして得られる値を、ハッシュ値とする。しかし、ＴＴＬ切替型ロードバランス転送装置において用意される複数のハッシュ関数はこれらの態様に限られるものではなく、他の態様であってもよい。ただし、フローを特定することができるフィールドに基づいて定められる値を、互いに異なるｂｉｔだけローテートする態様とすることが好ましい。そして、ローテートするｂｉｔ数は、フローを特定することができるフィールドに基づいて定められる値の桁数の整数倍ではないことが好ましい。
【０１４７】
Ｄ２．変形例２：
上記実施例では、フローを特定することができるフィールドから得られる数やＴＴＬフィールドから得られる値に、生成多項式ｘ８＋ｘ７＋ｘ３＋ｘ２＋１を適用する。しかし、各フィールドから得られる数に対して適用する式は、他の式とすることもできる。ただし、ハッシュ関数は、入力値に対して、多項式と、ｂｉｔローテートとの両方を適用して、ハッシュ値を得る関数であることが好ましい。このような態様とすれば、ハッシュ値をより均等なものとすることができる。
【０１４８】
Ｄ３．変形例３：
上記実施例においては、パケットのＴＴＬフィールドの値を利用して関数を切り換えることにより、またはパケットのＴＴＬフィールドの値を関数の入力値の一つとすることにより、関数を使用して選択される転送先を変動させている。しかし、選択される転送先を変動させるために使用する情報としては、ＴＴＬフィールド以外のフィールドの値を採用することもできる。たとえば、そのパケットがそれまでに転送された回数を格納するフィールドをパケットが有している場合には、そのフィールドの値を使用することもできる。
【０１４９】
すなわち、（１）同一転送装置が受信した同一通信フローのパケットであれば、そのフィールドの値が同じであり、（２）同一フローのパケットであっても、異なる転送装置で受信されたパケットにおいては、そのフィールドの値が異なる、という条件を満たすフィールドであれば、それを利用してパケットの転送先を決定することができる。
【０１５０】
上記のようなフィールドの値に応じてパケットの転送先を選択すると、特性（１）により、一つの転送装置においては、同一通信フローのパケットは転送先が同じになる。また、特性（２）により、異なる転送装置においては、同一通信フローのパケットであっても、転送先の選択の仕方が異なることになる。その結果、同じ通信フローのパケットは転送先が同じになる利点を残しつつ、ネットワークにおける通信の偏りをなくすことができる。
【０１５１】
Ｄ４．変形例４：
上記第１実施例においては、ハッシュ関数選択部７２６は、ＴＴＬフィールドの値をハッシュ関数の数Ｎｈで割った剰余に１を加えた値Ｖｓに応じて、Ｖｓの値に対応づけられたハッシュ関数を選択する。しかし、ハッシュ関数の選択は、所定のフィールドの値に基づいて、他の方法で行われることもできる。ただし、その方法は、そのフィールドの値に応じて、２以上のハッシュ関数のうちの一つのハッシュ関数を選択するものであることが好ましい。
【０１５２】
ここで、「フィールドの値に応じて、２以上のハッシュ関数のうちの一つのハッシュ関数を選択する」とは、そのフィールドの値が第１の値であるときに選択されるハッシュ関数と、そのフィールドの値が第１の値とは異なる第２の値であるときに選択されるハッシュ関数と、が異なるような、第１の値と第２の値が存在する選択方法を意味する。すなわち、そのフィールドの値がどのような値であっても同じハッシュ関数が選択される態様は、「フィールドの値に応じて、２以上のハッシュ関数のうちの一つのハッシュ関数を選択」する態様には含まれない。一方で、「フィールドの値に応じて、前記２以上のハッシュ関数のうちの一つのハッシュ関数を選択」する態様においては、そのフィールドの値が第３の値であるときに選択されるハッシュ関数と、そのフィールドの値が第３の値とは異なる第４の値であるときに選択されるハッシュ関数と、が同じであるような、第３の値と第４の値が存在してもよい。
【０１５３】
Ｄ５．変形例５．
上記第２実施例においては、ＴＴＬ混合ハッシュ関数９２６は、フローを特定することができるフィールドの値に基づいて得られるビット列を、ＴＴＬを６４で割った剰余の数Ｖｒだけ、右へビットローテートし、その値に生成多項式を適用してハッシュ値を得る。しかし、ハッシュ値の決定は、所定の二つのフィールドの値に基づいて、他の方法で行われることもできる。ただし、その方法は、第１のフィールドの値と、第２のフィールドの値と、に応じて、ハッシュ値を出力するものであることが好ましい。
【０１５４】
ここで、「第１のフィールドの値と、〜第２のフィールドの値と、に応じて、ハッシュ値を出力する」とは、以下のような選択方法を意味する。すなわち、第１のフィールドの値が値Ｖ１１であり第２のフィールドの値が値Ｖ２１であるときのハッシュ値と、第１のフィールドの値がＶ１１とは異なるＶ１２であり第２のフィールドの値が値Ｖ２１であるときのハッシュ値と、が異なるような、値Ｖ１１と値Ｖ１２と値Ｖ２１とが存在する。さらに、第１のフィールドの値が値Ｖ１１であり第２のフィールドの値が値Ｖ２１であるときのハッシュ値と、第１のフィールドの値がＶ１１であり第２のフィールドの値がＶ２１とは異なるＶ２２であるときのハッシュ値と、が異なるような、値Ｖ１１と値Ｖ２１と値Ｖ２２とが存在する。
【０１５５】
すなわち、第１のフィールドの値がどのような値であっても、第２のフィールドの値が同じである限り同じハッシュ値が出力される態様は、「第１のフィールドの値と、〜第２のフィールドの値と、に応じて、ハッシュ値を出力する」態様には含まれない。そして、第１のフィールドの値が同じである限り、第２のフィールドの値がどのような値をとっても同じハッシュ値が出力される態様は、「第１のフィールドの値と、〜第２のフィールドの値と、に応じて、ハッシュ値を出力する」態様には含まれない。
【０１５６】
一方で、「第１のフィールドの値と、〜第２のフィールドの値と、に応じて、ハッシュ値を出力する」態様においては、第１のフィールドの値が値Ｖ１１であり第２のフィールドの値が値Ｖ２１であるときのハッシュ値と、第１のフィールドの値がＶ１１とは異なるＶ１２であり第２のフィールドの値が値Ｖ２１であるときのハッシュ値と、が同じである、値Ｖ１１と値Ｖ１２と値Ｖ２１とが存在してもよい。さらに、第１のフィールドの値が値Ｖ１１であり第２のフィールドの値が値Ｖ２１であるときのハッシュ値と、第１のフィールドの値がＶ１１であり第２のフィールドの値がＶ２１とは異なるＶ２２であるときのハッシュ値と、が同じである、値Ｖ１１と値Ｖ２１と値Ｖ２２が存在してもよい。
【０１５７】
Ｄ６．変形例６．
上記実施例における宛先アドレス抽出部７２１やハッシュ関数７２７ａ〜７２７ｄ、ＴＴＬ混合ハッシュ関数９２６等の機能部は、ＣＰＵがソフトウェアを実行することによって実現されてもよいし、ハードウェアによって実現されてもよい。
【符号の説明】
【０１５８】
１０１〜１０８…転送装置
１１１〜１１４…端末
１２１〜１３４…回線
２０１〜２０３…転送装置１０１のルーティングテーブルのエントリ
２１１…宛先アドレスを格納する列
２１２…転送先数を格納する列
２１３…転送先１を格納する列
２１４…転送先２を格納する列
３０１〜３０２…転送装置１０２のルーティングテーブルのエントリ
４０１〜４０２…転送装置１０３のルーティングテーブルのエントリ
５０１〜５０８…通信フロー
５１１…通信フローの送信元アドレスを示す列
５１２…通信フローの宛先アドレスを示す列
５１３…通信フローのプロトコル番号を示す列
６１４…通信フローのパケットから求めたハッシュ値を示す列
６１５…通信フローの第１ホップの転送装置の符号を示す列
６１６…通信フローの第２ホップの転送装置の符号を示す列
６１７…通信フローの第３ホップの転送装置の符号を示す列
７０１…ＴＴＬ切替型ロードバランス転送装置
７１０…パケット転送部
７１１〜７１４…インタフェース
７２０…ＴＴＬ切替型転送先決定部
７２０ｃ…転送先決定部
７２１…宛先アドレス抽出部
７２２…ルーティングテーブル検索部
７２３…ルーティングテーブル
７２４…フロー識別フィールド抽出部
７２５…ＴＴＬフィールド抽出部
７２６…ハッシュ関数選択部
７２７ａ〜７２７ｄ…ハッシュ関数
７３０…転送先選択部
８１４…通信フローの端末がパケットを送信した時点のＴＴＬ値を示す列
８１５…通信フローの第１ホップの内容を示す列
８１６…通信フローの第１ホップの転送装置の符号を示す列
８１７…通信フローの第１ホップの転送装置がパケットを受信した時点のＴＴＬ値を示す列
８１８…通信フローの第１ホップの転送装置でのパケットから求めたハッシュ値を示す列
８１９…通信フローの第２ホップでの内容を示す列
８２０…通信フローの第２ホップの転送装置の符号を示す列
８２１…通信フローの第２ホップの転送装置がパケットを受信した時点のＴＴＬ値を示す列
８２２…通信フローの第２ホップの転送装置でのパケットから求めたハッシュ値を示す列
８２３…通信フローの第３ホップの転送装置の符号を示す列
９０１…ＴＴＬ混合型ロードバランス転送装置
９２０…ＴＴＬ混合型転送先決定部
９２６…ＴＴＬ混合ハッシュ関数
１０１４…通信フローの端末がパケットを送信した時点のＴＴＬ値を示す列
１０１５…通信フローの第１ホップの内容を示す列
１０１６…通信フローの第１ホップの転送装置の符号を示す列
１０１７…通信フローの第１ホップの転送装置がパケットを受信した時点のＴＴＬ値を示す列
１０１８…通信フローの第１ホップの転送装置でのパケットから求めたハッシュ値を示す列
１０１９…通信フローの第２ホップでの内容を示す列
１０２０…通信フローの第２ホップの転送装置の符号を示す列
１０２１…通信フローの第２ホップの転送装置がパケットを受信した時点のＴＴＬ値を示す列
１０２２…通信フローの第２ホップの転送装置でのパケットから求めたハッシュ値を示す列
１０２３…通信フローの第３ホップの転送装置の符号を示す列
Ａｈ…パケットのヘッダ部分の通知を示す矢印
Ａｔｒ…パケットの転送先の通知を示す矢印
ＮＴ…ネットワーク
Ｔｆ…フローを示す表
Ｔｐ１…ＴＴＬ切替型ロードバランス転送装置を採用した場合のパケット転送経路を示す表
Ｔｐ２…ＴＴＬ混合型ロードバランス転送装置を採用した場合のパケット転送経路を示す表
Ｔｐｃ…参考例のロードバランス転送装置を採用した場合のパケット転送経路を示す表
【図１】
2011259007.tif 000003
【図２】
2011259007.tif 000004
【図３】
2011259007.tif 000005
【図４】
2011259007.tif 000006
【図５】
2011259007.tif 000007
【図６】
2011259007.tif 000008
【図７】
2011259007.tif 000009
【図８】
2011259007.tif 000010
【図９】
2011259007.tif 000011
【図１０】
2011259007.tif 000012
【図１１】
2011259007.tif 000013