(57)【特許請求の範囲】
【請求項１】
転送パス選択方法であって、
ターゲットデバイスに送信されることになるデータパケットを送信側デバイスが受信する段階と、
前記データパケットが、前記データパケットが配置されているフローレットの開始パケットである場合、前記データパケットを転送するために前記送信側デバイスが複数のパスから低負荷のパスを選択する段階と、
前記データパケットが配置されているフローの転送判断を、選択した前記パスに設定する段階と
を備え、
前記複数のパスのそれぞれは、複数の中間デバイスのうちの１つを介して、前記送信側デバイスを前記ターゲットデバイスに接続し、
前記複数のパスのそれぞれの負荷は、対応する中間デバイスが前記送信側デバイスから受信するトラフィックの負荷、又は対応する中間デバイスが前記ターゲットデバイスに送信するトラフィックの負荷のうち、どちらか高い方であり、
前記複数の中間デバイスが前記送信側デバイスから受信するトラフィックの負荷は前記送信側デバイスにより測定され、
前記複数の中間デバイスが前記ターゲットデバイスに送信するトラフィックの負荷は前記ターゲットデバイスにより測定され、
前記複数の中間デバイスは、トラフィックの負荷を測定しない、
方法。
【請求項２】
前記方法はさらに、
前記フローの前記転送判断が無効である場合、前記データパケットは前記データパケットが配置されている前記フローレットの前記開始パケットであると判断する段階を備える、請求項１に記載の方法。
【請求項３】
前記方法はさらに、前記データパケットを転送する前記パスを選択した後に、前記送信側デバイスが前記フローの前記転送判断の有効フラグを「有効」に設定する段階を備える、請求項２に記載の方法。
【請求項４】
前記方法はさらに、前記データパケットを受信した後の無効期間内に、前記送信側デバイスが前記フローのデータパケットを何も受信しなかった場合、前記送信側デバイスが前記フローの前記転送判断を無効にする段階を備える、請求項３に記載の方法。
【請求項５】
前記方法はさらに、
前記複数の中間デバイスが前記送信側デバイスに送信するトラフィックの負荷を前記送信側デバイスが測定する段階と、
前記複数の中間デバイスが前記送信側デバイスに送信する前記トラフィックの前記負荷を、前記送信側デバイスが前記ターゲットデバイスに送信する段階と
を備える、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記複数の中間デバイスが前記送信側デバイスに送信する前記トラフィックの前記負荷を、前記送信側デバイスが前記ターゲットデバイスに前記送信する段階は、
前記複数の中間デバイスのうちの少なくとも１つが前記送信側デバイスに送信するトラフィックの負荷と、対応するパス識別子とを、前記送信側デバイスが前記データパケットに追加する段階であって、前記対応するパス識別子は、前記少なくとも１つの中間デバイスが前記送信側デバイスに送信する前記トラフィックの前記負荷の各負荷に対応する中間デバイスを識別するのに用いられる、段階を備える、請求項５に記載の方法。
【請求項７】
前記複数の中間デバイスのうちの１つ又は複数が前記送信側デバイスに送信するトラフィックの負荷は、前記複数の中間デバイスのうちの前記１つ又は複数が前記送信側デバイスに送信する前記トラフィックの前記負荷の変化が閾値より大きい場合にだけ送信される、請求項５又は６に記載の方法。
【請求項８】
前記複数のパスのそれぞれの前記負荷は、リンク負荷とバースト度とを含む、請求項１から７のいずれか一項に記載の方法。
【請求項９】
転送パス選択デバイスであって、
ターゲットデバイスに送信されることになるデータパケットを受信するように構成された受信モジュールと、
前記データパケットが、前記データパケットが配置されているフローレットの開始パケットである場合、前記データパケットを転送するために複数のパスから低負荷のパスを選択し、前記データパケットが配置されているフローの転送判断を、選択した前記パスに設定し、前記複数のパスのそれぞれは、複数の中間デバイスのうちの１つを介して、前記転送パス選択デバイスを前記ターゲットデバイスに接続するように構成された、選択モジュールと、
前記複数の中間デバイスが前記転送パス選択デバイスから受信するトラフィックの負荷を測定するように構成された測定モジュールと
を備え、
前記複数のパスのそれぞれの負荷は、対応する中間デバイスが前記転送パス選択デバイスから受信するトラフィックの負荷、又は対応する中間デバイスが前記ターゲットデバイスに送信するトラフィックの負荷のうち、どちらか高い方であり、
前記複数の中間デバイスが前記ターゲットデバイスに送信するトラフィックの負荷は前記ターゲットデバイスにより測定され、
前記複数の中間デバイスは、トラフィックの負荷を測定しない、
デバイス。
【請求項１０】
前記選択モジュールは、
前記フローの前記転送判断が無効である場合、前記データパケットは前記データパケットが配置されている前記フローレットの前記開始パケットであると判断するように構成される、請求項９に記載のデバイス。
【請求項１１】
前記選択モジュールはさらに、前記データパケットを転送する前記パスを選択した後に、前記フローの前記転送判断の有効フラグを「有効」に設定するように構成される、請求項１０に記載のデバイス。
【請求項１２】
前記選択モジュールは、
前記受信モジュールが、前記データパケットを受信した後の無効期間内に前記フローのデータパケットを何も受信しなかった場合、前記フローの前記転送判断を無効にするように構成される、請求項１１に記載のデバイス。
【請求項１３】
前記測定モジュールはさらに、
前記複数の中間デバイスが前記転送パス選択デバイスに送信するトラフィックの負荷を測定し、前記複数の中間デバイスが前記転送パス選択デバイスに送信する前記トラフィックの前記負荷を、前記ターゲットデバイスに送信するように構成される、請求項９から１２のいずれか一項に記載のデバイス。
【請求項１４】
前記測定モジュールは、前記複数の中間デバイスのうちの少なくとも１つが前記転送パス選択デバイスに送信するトラフィックの負荷と、対応するパス識別子とを前記データパケットに追加するように構成され、前記対応するパス識別子は、前記少なくとも１つの中間デバイスが前記転送パス選択デバイスに送信する前記トラフィックの前記負荷の各負荷に対応する中間デバイスを識別するのに用いられる、請求項１３に記載のデバイス。
【請求項１５】
前記測定モジュールは、前記複数の中間デバイスのうちの１つ又は複数が前記転送パス選択デバイスに送信するトラフィックの負荷の変化が閾値より大きい場合にだけ、前記複数の中間デバイスのうちの前記１つ又は複数が前記転送パス選択デバイスに送信する前記トラフィックの前記負荷を送信するように構成される、請求項１３又は１４に記載のデバイス。
【請求項１６】
前記複数のパスのそれぞれの前記負荷は、リンク負荷とバースト度とを含む、請求項９から１５のいずれか一項に記載のデバイス。
【請求項１７】
送信側デバイスと、ターゲットデバイスと、複数の中間デバイスとを備えるネットワークであって、複数のパスのそれぞれが、前記複数の中間デバイスのうちの１つを介して、前記送信側デバイスを前記ターゲットデバイスに接続し、前記送信側デバイスは、請求項９から１６のいずれか一項に記載のデバイスである、ネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２０１６年１２月１６日に中国特許庁に出願された「転送パス選択方法及び転送パス選択デバイス（ＦＯＲＷＡＲＤＩＮＧ  ＰＡＴＨ  ＳＥＬＥＣＴＩＯＮ  ＭＥＴＨＯＤ  ＡＮＤ  ＤＥＶＩＣＥ）」と題する中国特許出願第２０１６１１１６９１５８．７号に基づく優先権を主張し、当該中国特許出願はその全体が参照により本明細書に組み込まれる。
【０００２】
本出願は通信分野に関するものであり、詳細には、転送パス選択方法及び転送パス選択デバイスに関するものである。
【背景技術】
【０００３】
ネットワークデバイス（例えば、ネットワークスイッチ又はルータ）は、パケットを受信すると、当該パケットを当該パケットの宛先に転送する。宛先への選択可能なパスが複数ある場合、ネットワークデバイスは、それらのパスのうちの１つを選択し、そのパスを用いてパケットを送信してよい。しかしながら、フローに基づく代表的なパス選択では、フローごとにパスが選択される。したがって、フロー内の全てのパケットが同じパスを通る。トラフィック量が多い複数のフローに同じパスが選択された場合、当該パスは混雑するかもしれないが、他のパスは依然として使用されていないかもしれない。反対に、パケットに基づくパス選択では、パケットごとにパスが選択される。したがって、フロー内の各パケットは異なるパスを通る。パケットに基づくパス選択によって負荷分散が容易に実現されるが、異なるパスを通る各パケットの遅延が異なるので、宛先では、送信側デバイスにより後から送信されたパケットが最初に受信され、その後、送信側デバイスにより先に送信されたパケットが受信されることがある。
【発明の概要】
【０００４】
本出願は、パス選択を最適化するための転送パス選択方法及び転送パス選択デバイスを提供する。
【０００５】
第１の態様によれば、転送パス選択方法が提供され、本方法は、ターゲットデバイスに送信されることになるデータパケットを送信側デバイスが受信する段階と、データパケットが、当該データパケットが配置されているフローレットの開始パケットである場合、当該データパケットを転送するために、送信側デバイスが複数のパスから低負荷のパスを選択する段階と、当該データパケットが配置されているフローの転送判断を、選択したパスに設定する段階とを含む。データパケットが、当該データパケットが配置されているフローレットの開始パケットである場合、当該フローレットは新規フローレットである。データパケットが、当該データパケットが配置されているフローの開始パケットである場合、当該データパケットは、当該データパケットが配置されているフローレットの開始パケットでもあり、したがって、当該フローレットは新規フローレットである。さらに、当該データパケットが配置されているフローレットは、当該データパケットが配置されているフローの最初のフローレットである。データパケットが配置されているフローの当該データパケットと直前のデータパケットとの間の間隔が無効期間（無効期間とは、２つのデータパケットを異なるフローレットに分けるのに十分に長い間隔のことである）より長い場合、当該データパケットが配置されているフローレットは、直前のデータパケットが配置されているフローレットとは異なる。したがって、当該データパケットが配置されているフローレットは新規フローレットである。
【０００６】
複数のパスのそれぞれは、複数の中間デバイスのうちの１つを介して、送信側デバイスをターゲットデバイスに接続する。複数のパスのそれぞれの負荷は、対応する中間デバイスが送信側デバイスから受信するトラフィックの負荷、又は、対応する中間デバイスがターゲットデバイスに送信するトラフィックの負荷のうち、どちらか高い方である。複数の中間デバイスが送信側デバイスから受信するトラフィックの負荷は、送信側デバイスにより測定される。複数の中間デバイスがターゲットデバイスに送信するトラフィックの負荷は、ターゲットデバイスにより測定される。
【０００７】
送信側デバイス及びターゲットデバイスの種類は、通常、中間デバイスの種類とは異なる。あるネットワークデバイスから別のネットワークデバイスへとパケットが送信されるので、１つのネットワークデバイスが送信するパケットの量は、別のネットワークデバイスが受信するパケットの量に等しい。ターゲットデバイスは、中間デバイスから受信するトラフィックの負荷が、中間デバイスによりターゲットデバイスに送信されるトラフィックの負荷に等しいことを測定する。したがって、ターゲットデバイスは負荷を測定することができ、中間デバイスは転送を担当するだけである。フローレットに基づく負荷分散機能は、１種類のデバイスに関連機能を提供するだけで実現することができる。
【０００８】
第１の態様に関連して、第１の態様の第１の実装例では、本方法はさらに、フローの転送判断が無効である場合、データパケットは当該データパケットが配置されているフローレットの開始パケットであると判断する段階と、当該データパケットを受信した後の無効期間内に送信側デバイスがフローのデータパケットを何も受信しなかった場合、送信側デバイスがフローの転送判断を無効にする段階とを含む。フローの転送判断は、送信側デバイスが無効期間内にデータパケットを何も受信しなかった場合に無効となり、その結果、送信側デバイスは、データパケットが受信されるたびに、２つのデータパケット間の間隔を計算する必要はない。これにより、送信側デバイスの計算が削減される。
【０００９】
第１の態様の第１の実装例に関連して、第１の態様の第２の実装例では、本方法はさらに、データパケットを転送するパスを選択する段階の後に、送信側デバイスがフローの転送判断の有効フラグを「有効」に設定する段階を含む。
【００１０】
第１の態様、第１の態様の第１の実装例、又は第１の態様の第２の実装例のうちのいずれか１つに関連して、第１の態様の第３の実装例では、本方法はさらに、複数の中間デバイスが送信側デバイスに送信するトラフィックの負荷を送信側デバイスが測定する段階と、複数の中間デバイスが送信側デバイスに送信するトラフィックの負荷を送信側デバイスがターゲットデバイスに送信する段階とを含む。ターゲットデバイスは負荷を記録し、新規フローレットの転送対象のデータパケットを転送する場合に、当該負荷と、複数の中間デバイスに送信されてターゲットデバイスにより測定されるトラフィックの負荷とに基づいて、転送パスを選択する。
【００１１】
第１の態様の第３の実装例に関連して、第１の態様の第４の実装例では、送信側デバイスは、複数の中間デバイスが送信側デバイスに送信するトラフィックの負荷を、制御パケットを用いてターゲットデバイスに送信する。制御パケットが測定結果を送信するのに用いられる場合、カスタマイズしたパケット形式が用いられてもよい。さらに、測定結果はいつでも送信されてよく、データパケットがターゲットデバイスに送信されるのを待つ必要はない。したがって、この実装例は適応性がある。
【００１２】
第１の態様の第３の実装例に関連して、第１の態様の第５の実装例では、複数の中間デバイスが送信側デバイスに送信するトラフィックの負荷と、対応するパス識別子とを送信側デバイスがターゲットデバイスに送信する段階は、複数の中間デバイスのうちの少なくとも１つが送信側デバイスに送信するトラフィックの負荷を送信側デバイスがデータパケットに追加する段階を含み、対応するパス識別子は、少なくとも１つの中間デバイスが送信側デバイスに送信するトラフィックの負荷のそれぞれの負荷に対応する中間デバイスを識別するのに用いられる。測定結果はデータパケットを用いて送信されるので、新たなパケット形式及び／又はプロトコルを設計する必要はない。既存のデータパケットは測定結果を搬送するのに用いられるので、ネットワークのパケット量がさらに増加することはなく、オーバーヘッドが低い。したがって、この実装例は単純であり、負荷が低い。
【００１３】
第１の態様の第３の実装例から第１の態様の第５の実装例のうちのいずれか１つに関連して、第１の態様の第６の実装例では、複数の中間デバイスのうちの第１の中間デバイスが送信側デバイスに送信するトラフィックの負荷が、第１の中間デバイスが送信側デバイスに送信するトラフィックの負荷の変化が閾値より大きい場合にのみ送信される。
この実装例によって、測定結果の送信により占有される帯域幅が削減される。
【００１４】
第１の態様、又は第１の態様の第１の実装例から第１の態様の第６の実装例のうちのいずれか１つに関連して、第１の態様の第７の実装例では、複数のパスのそれぞれの負荷は、リンク負荷及びバースト度を含む。リンク負荷とバースト度の組み合わせがパス選択の根拠として用いられ、混雑するかもしれないパスの選択を、混雑が発生する前に回避することができる。
【００１５】
第２の態様によれば、転送パス選択デバイスが提供される。転送パス選択デバイスは、第１の態様又は第１の態様のあらゆる実装例における方法を実行するモジュールを含む。
【００１６】
第３の態様によれば、ネットワークデバイスが提供される。ネットワークデバイスは、プロセッサ及び物理インタフェースを含む。プロセッサは、第１の態様又は第１の態様のあらゆる実装例における方法を実行するように構成される。
【００１７】
第４の態様によれば、コンピュータ可読媒体が提供される。コンピュータ可読媒体は、コンピュータにより実行され得る転送パス選択プログラムを格納する。このプログラムは、第１の態様又は第１の態様のあらゆる実装例における方法を実行する命令を含む。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態によるネットワークアーキテクチャの概略図である。
【００１９】
【図２】本発明の一実施形態による転送パス選択方法のフローチャートである。
【００２０】
【図３】本発明の一実施形態によるネットワークデバイスの構造図である。
【００２１】
【図４】本発明の一実施形態による転送パス選択デバイスの構造図である。
【発明を実施するための形態】
【００２２】
本発明の実施形態が、図１から図４を参照して以下に説明される。
【００２３】
図１は、本発明の一実施形態によるネットワークアーキテクチャの概略図である。
【００２４】
図１のネットワークデバイスは、２つのティア（ｔｉｅｒ）にグループ化されている。ネットワークデバイス１０１、ネットワークデバイス１０２、及びネットワークデバイス１０３が１つのティアにある。このティアは、スパイン（ｓｐｉｎｅ）ティアと呼ばれることがある。スパインティアのネットワークデバイスは、スパインデバイスと呼ばれることがある。ネットワークデバイス１１１、ネットワークデバイス１１２、ネットワークデバイス１１３、ネットワークデバイス１１４、ネットワークデバイス１１５、及びネットワークデバイス１１６が、その他のティアにある。このティアはリーフ（ｌｅａｆ）ティアと呼ばれることがある。リーフティアのネットワークデバイスは、リーフデバイスと呼ばれることがある。このネットワークアーキテクチャは、フラット（ｆｌａｔ）ネットワーク又は折り返しＣＬＯＳネットワーク（ｆｏｌｄｅｄ  Ｃｌｏｓ  ｎｅｔｗｏｒｋ）とも呼ばれる。
【００２５】
当該ネットワークアーキテクチャは、データセンターネットワークを確立するのに用いられてよい。当該ネットワークアーキテクチャのネットワークデバイスは、ネットワークスイッチ又はルータであってよい。
【００２６】
本発明のこの実施形態では、パス選択がフローレット（ｆｌｏｗｌｅｔ）に基づいて実行される。フローレットは、フローにおいて十分に長い間隔を置いて分離されたパケットのバースト（ｂｕｒｓｔ）である。十分に長い間隔とは、間隔の前後のパケットが異なるパスを通って別々に送信されても、パケットの無秩序が生じないほど間隔が長いことを意味する。
【００２７】
図２は、本発明の一実施形態による転送パス選択方法のフローチャートである。
【００２８】
２０２：送信側（ｓｅｎｄｅｒ）デバイスが、ターゲット（ｔａｒｇｅｔ）デバイスに送信されることになる第１のデータパケットを受信する。第１のデータパケットは、当該第１のデータパケットが配置されているフローのデータパケットである。フロー（ｆｌｏｗ）は、トラフィックフロー（ｔｒａｆｆｉｃ  ｆｌｏｗ）、ストリーム（ｓｔｒｅａｍ）、パケットフロー（ｐａｃｋｅｔ  ｆｌｏｗ）、又はネットワークフロー（ｎｅｔｗｏｒｋ  ｆｌｏｗ）などとも呼ばれる。フローは、送信元（ｓｏｕｒｃｅ）デバイスから宛先（ｄｅｓｔｉｎａｔｉｏｎ）に向かう一連のパケットであり、例えば、同じ送信元アドレス及び同じ宛先アドレスを持った一連のパケットである。宛先は、任意のホスト、マルチキャストグループ、又はブロードキャストドメインであってよい。
【００２９】
フローはさらに、より細かい粒度を用いて規定されてもよい。例えば、同じ送信元アドレス及び同じ宛先アドレスを有するが、トランスポート層（ｔｒａｎｓｐｏｒｔ  ｌａｙｅｒ）プロトコルポート番号が異なるパケットが、異なるフローに属する。トランスポート層プロトコルは、例えば、伝送制御プロトコル（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ、ＴＣＰ）又はユーザデータグラムプロトコル（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ、ＵＤＰ）であってよい。
【００３０】
送信側デバイス及びターゲットデバイスは、データパケットの送信元デバイス及び宛先デバイスではない。データパケットの送信元デバイス及び宛先デバイスは、通常、端末デバイスであるが、送信側デバイス及びターゲットデバイスはネットワークデバイスである。送信側デバイス及びターゲットデバイスは、同じティアのネットワークデバイスである。例えば、図１では、送信側デバイス及びターゲットデバイスはリーフデバイスであり、送信元デバイス及び宛先デバイスはリーフデバイスに接続されたホスト（図１の最下層のデバイス）であってよい。フローの宛先がマルチキャストグループ又はブロードキャストドメインである場合、当該フローには１つ又は複数のターゲットデバイスがあり得る。複数のターゲットデバイスがある場合、送信側デバイスは、データパケットを複製して複数の同じデータパケットを取得する。各データパケットは、複数のターゲットデバイスのうちの１つに送信される。送信側デバイスは、本発明のこの実施形態の方法を用いて、データパケットごとに転送パスを選択する。
【００３１】
送信側デバイス及びターゲットデバイスの役割は固定されることはなく、転送されるパケットに対応する。一例として図１を用いると、パケットＡをリーフデバイス１１３からリーフデバイス１１５に送信する必要がある場合、パケットＡの送信側デバイス及びターゲットデバイスは、それぞれリーフデバイス１１３及びリーフデバイス１１５である。パケットＢをリーフデバイス１１５からリーフデバイス１１３に送信する必要がある場合、パケットＢの送信側デバイス及びターゲットデバイスは、それぞれリーフデバイス１１５及びリーフデバイス１１３である。
【００３２】
２０４：第１のデータパケットが、当該第１のデータパケットが配置されているフローレットの開始パケットである場合、送信側デバイスは、当該第１のデータパケットを転送するために複数のパスから低負荷のパスを選択し、選択したパスにフローの転送判断を設定する。
【００３３】
第１のデータパケットが、当該第１のデータパケットが配置されているフローの開始パケットである場合、又は、当該第１のデータパケットと第２のデータパケットとの間の間隔が無効期間より長い場合、当該第１のデータパケットは、当該第１のデータパケットが配置されているフローレットの開始パケットである。第２のデータパケットは、フローの中で第１のデータパケットの直前にあるデータパケットである。無効期間は、フロー内の２つのデータパケットを異なるフローレットに分けるのに十分長い間隔である。第１のデータパケットが、当該第１のデータパケットが配置されているフローレットの開始パケットである場合、当該フローレットは新規フローレットである。
【００３４】
転送判断は、送信側デバイスに格納されてフローに対応する項目である。データパケットの転送パスを選択した後に、送信側デバイスは、選択した転送パスをフローに対応する転送判断に格納する。
【００３５】
第１のデータパケットが、当該第１のデータパケットが配置されているフローの開始パケットである場合、フローレットは、当該第１のデータパケットが属するフローの最初のフローレットである。したがって、フローの転送判断は存在しない。送信側デバイスは、新規フローレットの転送パスを選択する。
【００３６】
第１のデータパケットと第２のデータパケットとの間の間隔が無効期間より長い場合、第１のデータパケットが配置されているフローレットは、第１のデータパケットが属するフローの最初のフローレットではない。フロー内で別の（古い）フローレットが新規フローレットの前に存在したとしても、送信側デバイスは、フローの既存の転送判断（送信側デバイスが古いフローレットに対して行った転送判断）に依存せずに、新規フローレットの転送パスを個別に選択する。送信側デバイスは、新規フローレット用に送信側デバイスが選択した転送パスにフローの転送判断を設定する。その結果、新規フローレットの次のデータパケットを受信した場合、送信側デバイスは、フローの転送判断（新規フローレット用に送信側デバイスが行った転送判断）に基づいて次のデータパケットを転送する。
【００３７】
コンピュータ内の全ての値は離散的（ｄｉｓｃｒｅｔｅ）であるため、その間隔が無効期間より長いと判断することは当該間隔に基づいてよい。ここで、当該間隔は無効期間より長い、又は、当該間隔は別の期間より長いかそれに等しい。別の期間とは、無効期間より大きい別の離散値であり、当該離散値と無効期間との間に他の離散値は存在しない。
【００３８】
複数のパスのそれぞれは、複数の中間デバイスのうちの１つを介して、送信側デバイスをターゲットデバイスに接続する。複数のパスと複数の中間デバイスとの間の関係は、全単射である。したがって、どの中間デバイスも一意のパスに対応し、どのパスも一意の中間デバイスに対応する。中間デバイスとは、送信側デバイス及びターゲットデバイスに接続されたネットワークデバイスである。中間デバイスが配置されているティアは、送信側デバイス及びターゲットデバイスが配置されているティアとは異なる。一例として図１を用いると、中間デバイスは図１のスパインデバイスである。複数のパスと複数の中間デバイスとの間の関係は全単射である。送信側デバイスは、パスネーム、中間デバイスの識別子、又は物理インタフェースの識別子を用いて、選択したパスをフローの転送判断に記録してよい。パスネームとは、ネットワークデバイスがパスごとに決めるか又は指定する識別子である。中間デバイスの識別子は、中間デバイスのアドレス、中間デバイスが工場から送り出される前に決められた識別子、又は別のネットワークデバイスが中間デバイス用に決めるか又は指定する識別子であってよい。物理インタフェースの識別子は、送信側デバイスの複数の物理インタフェースのうち、中間デバイスに接続された物理インタフェースの識別子である。
【００３９】
複数のパスのそれぞれの負荷は、パスに対応する中間デバイスが送信側デバイスから受信するトラフィックの負荷、又は、対応する中間デバイスがターゲットデバイスに送信するトラフィックの負荷のうち、どちらか高い方である。送信側デバイスからターゲットデバイスへのパスは、２つのパス（送信側デバイスを中間デバイスに接続するパス、及びターゲットデバイスを中間デバイスに接続するパス）を含む。２つのパスのどちらかが混雑している場合、パケット転送に影響を与える。したがって、２つのパスのどちらがより高い負荷であっても、高い方の負荷が、送信側デバイスからターゲットデバイスへのパスの負荷として用いられる。前述のトラフィックは、パス上にある対応する中間デバイスが送信又は受信する全てのパケットのトラフィックであり、どのフローのトラフィックでもない。
【００４０】
各パスの負荷は、リンク負荷、又はリンク負荷とバースト度との組み合わせを含む。リンク負荷は、リンク内のトラフィックの負荷の平均値を示し、バースト度は、リンク内のトラフィック不均衡の程度を示す。リンク負荷及びバースト度の値は、実測値（例えば、ビット／秒、又はバイト／秒）で示されてもよく、又は、リンク容量に対するトラフィックの割合で示されてもよい。あるいは、これらの値のうちの一方が実測値で示されてもよく、もう一方の値がリンク容量の割合で示されてもよい。パスのリンク容量は、パスの最大伝送速度を示す。任意選択で、リンク負荷及びバースト度の値はさらに、パケットにおける測定結果の記録又は測定結果の送信を容易にするために、いくつかのレベルで示されてもよい。例えば、リンク負荷及びバースト度の値が比率であり、測定結果を示すパケット内のフィールドが３つのビットを占有する場合、測定結果は８つのレベルに変換される。各レベルに対応する比率が均等に変化する場合、各レベルは１２．５％に対応し、０〜１２．５％のリンク負荷又はバースト度に対応する値が０であり、１２．６％〜２５％に対応する値が１であるなどとなる。パスの負荷がリンク負荷及びバースト度の組み合わせを含む場合、任意選択で、送信側デバイスは、各パスの負荷の指標を各パスのリンク負荷及びバースト度の重みに基づいて計算し、低負荷のパスを選択する。高いバースト度は、パス内のトラフィックが著しく変化していることを意味する。バースト度の判断を負荷分散に追加することで、混雑するかもしれないパスの選択を、混雑が発生する前に回避することができる。
【００４１】
送信側デバイスは、相対条件、絶対条件、又はこれらの組み合わせを用いて、複数のパスから低負荷のパスを選択してよい。相対条件とは、複数のパスの負荷関係に関する条件である。例えば、最も負荷の低いパスが複数のパスから選択されるか、又は、あるパスが複数のパスのうち最も負荷の低い２つ又はそれより多くのパスからランダムに選択されるか、又は、最もバースト度の低いパスが最もリンク負荷の低い２つ又はそれより多くのパスから選択される。絶対条件とは、選択したパスの負荷が満たす必要がある条件である。例えば、あるパスが、負荷が閾値より低い複数のパスからランダムに選択される、又は、各パスの負荷に基づいて選択確率が生成され、その確率に基づいてパスが選択される。ここで、低負荷のパスの選択確率が高い。相対条件と絶対条件との組み合わせとは、例えば、負荷が閾値より低いパスがある場合、あるパスがこれらのパスから選択される、又は、負荷が閾値より低いパスが無い場合、最も負荷の低いパスが選択されるということである。別の例では、最もバースト度の低いパスが、リンク負荷が閾値より低い複数のパスから選択される、又は、リンク負荷が最も低いパスが、バースト度が閾値より低い複数のパスから選択される。さらに、送信側デバイスにおいて、前述の条件で「あるパスをランダムに選択する」は、「他の条件を満たす複数のパス（例えば、最も負荷の低い２つ又はそれより多くのパス、又は負荷が閾値より低い複数のパス）が、古いフローレット用に送信側デバイスが選択したパスを含む場合、そのパスを選択し、そうでなければ、あるパスをランダムに選択する」と置き換えられてもよい。
【００４２】
例えば、ネットワークデバイスは、リンクを通じて送信又は受信されるパケットのデータ量を周期的に測定して、リンク負荷を更新する。リンク負荷が実測値であり、期間がＴであり、以前の測定で取得されたリンク負荷がＰ１であり、以前の測定と現在の測定との間にリンクを通じて送信又は受信されたパケットのデータ量がＸである場合、更新された現在のリンク負荷Ｐ２は、Ｐ２＝Ｐ１×ａ＋Ｘ×（１−ａ）／Ｔとなり、ａは減衰係数である。リンク負荷が比率であり、リンク容量がＣであり、他のパラメータが変わらないままである場合、更新された現在のリンク負荷Ｐ２は、Ｐ２＝Ｐ１×ａ＋Ｘ×（１−ａ）／（Ｔ×Ｃ）である。
【００４３】
バースト度は、パスの短時間内のデータ量又は比率である。あるいは、バースト度は、複数の測定を実行することにより取得されたデータ量又は比率の変化の強さの程度、例えば、複数の測定を実行することにより取得されるデータ量又は比率の分散又は標準偏差である。バースト度に対応する期間は、通常、マイクロ秒レンジで短い。例えば、バースト度が実測値であり、期間がＤであり、リンクを通じてその期間内に送信又は受信されるパケットのデータ量がＹである場合、バースト度Ｂは、Ｂ＝Ｙ／Ｄである。バースト度が比率であり、リンク容量がＣであり、他のパラメータが変わらないままである場合、バースト度Ｂは、Ｂ＝Ｙ／（Ｄ×Ｃ）である。
【００４４】
パケットは、あるネットワークデバイスから別のネットワークデバイスに送信されるので、あるネットワークデバイスが送信するパケットの量は、別のネットワークデバイスが受信するパケットの量に等しい。あるネットワークデバイスから別のネットワークデバイスへのトラフィックの負荷は、これらのネットワークデバイスのどちらかにより測定されてよい。例えば、図１のリーフデバイス１１３からスパインデバイス１０２へのトラフィックの負荷は、リーフデバイス１１３がスパインデバイス１０２に送信するトラフィックをリーフデバイス１１３が測定することにより取得されてもよく、又は、スパインデバイス１０２がリーフデバイス１１３から受信するトラフィックをスパインデバイス１０２が測定することにより取得されてもよい。しかしながら、リーフデバイス及びスパインデバイスの機能及び能力要件が異なるので、通常、異なる種類のネットワークデバイスがリーフデバイス及びスパインデバイスとして用いられる。したがって、送信側デバイス及びターゲットデバイスの種類は、通常、中間デバイスの種類とは異なる。中間デバイスを簡略化するために、本発明のこの実施形態では、送信側デバイス及びターゲットデバイスが負荷を測定して送信する。複数の中間デバイスが送信側デバイスから受信するトラフィックの負荷が、送信側デバイスにより測定される。複数の中間デバイスがターゲットデバイスに送信するトラフィックの負荷が、ターゲットデバイスにより測定される。送信側デバイスは、複数の中間デバイスがターゲットデバイスに送信してターゲットデバイスが測定するトラフィックの負荷を、ターゲットデバイスから受信する。中間デバイスは、転送を担当するだけである。
【００４５】
２０６：第１のデータパケットが古いフローレットに属する場合、送信側デバイスは、第１のデータパケットが配置されているフローの転送判断に基づいて、第１のデータパケットを転送する。
【００４６】
第１のデータパケットと直前のデータパケットとの間の間隔が無効期間より長くない場合、第１のデータパケットは古いフローレットに属する。データパケットが古いフローレットに属するということは、当該データパケットはフローレットの開始パケットではないということを意味する。パケットが無秩序になるのを防ぐために、送信側デバイスは、当該送信側デバイスが古いフローレット用に選択した、フローの既存の転送判断に含まれるパスを用いて、第１のデータパケットを転送する。
【００４７】
例えば、図１のリーフデバイス１１１はリーフデバイス１１６に接続されたホストに送信されることになるデータパケットを受信する。送信側デバイスとして用いられるリーフデバイス１１１は、リーフデバイス１１６のみにデータパケットを送信する必要がある。したがってリーフデバイス１１６はターゲットデバイスである。リーフデバイス１１１は、複数のパスを通じて、データパケットをリーフデバイス１１６に送信してよい。複数のパスとは、スパインデバイス１０１を通るパス、スパインデバイス１０２を通るパス、及びスパインデバイス１０３を通るパスである。各パスの負荷は、対応するスパインデバイスがリーフデバイス１１１から受信するトラフィックの負荷、又は対応するスパインデバイスがリーフデバイス１１６に送信するトラフィックの負荷のうち、どちらか高い方である。例えば、スパインデバイス１０１を通るパスの負荷は、スパインデバイス１０１がリーフデバイス１１１から受信するトラフィックの負荷、又はスパインデバイス１０１がリーフデバイス１１６に送信するトラフィックの負荷のうち、どちらか高い方である。データパケットの受信時に、当該データパケットと、同じフローの当該データパケットの直前にあるデータパケットとの間の間隔がフローレット間隔より長い場合、又は当該データパケットが、当該データパケットが配置されているフローの開始パケットである場合、当該データパケットは新規フローレットの開始パケットである。フローレット間隔は、古いフローレット用に選択されたパスが無効となる期間である。リーフデバイス１１１は、データパケットを転送するために、複数のパスから低負荷のパスを選択する。データパケットの受信時に、当該データパケットと、同じフローの当該データパケットの直前にあるデータパケットとの間の間隔がフローレット間隔より短い場合、当該データパケットは古いフローレットにある。リーフデバイス１１１は、古いフローレットのパス選択結果に基づいて、データパケットを送信する。
【００４８】
第１のデータパケットが新規フローレットに属するかどうかを判断する方法は複数ある。本発明のこの実施形態では、２つの実装例を提供する。
［実装例１］
【００４９】
送信側デバイスは、フローごとに、フローの最後のデータパケットを受信した時間を記録する。フローの新規データパケットが受信されると、送信側デバイスは新規データパケットを受信した時間と、送信側デバイスが記録した、フローの直前のデータパケットを受信した時間との間の差異を計算する。この差異は、フローの２つのデータパケット間の間隔であり、例えば、第１のデータパケットと第２のデータパケットとの間の間隔である。この差異が無効期間より大きい場合、又は送信側デバイスがフローのデータパケットを受信した時間を記録していない場合、新規データパケットは新規フローレットに属する。この差異が無効期間より大きくない場合、新規データパケットは古いフローレットに属する。
［実装例２］
【００５０】
フローのデータパケットを受信した後に、送信側デバイスが無効期間内にフローのデータパケットを何も受信しなかった場合、送信側デバイスはフローの転送判断を無効にする。送信側デバイスは、フローごとにタイマを設定してよく、タイマは無効期間が過ぎると終了する。フローのタイマが終了すると、送信側デバイスはフローの転送判断を無効にする。フローの転送判断は、送信側デバイスが無効期間内にデータパケットを何も受信しなかった場合に無効となり、その結果、送信側デバイスは、データパケットを受信するたびに２つのデータパケット間の間隔を計算する必要はない。これにより、送信側デバイスの計算が削減される。
【００５１】
送信側デバイスは各フローの転送判断に有効フラグを設定してよく、有効フラグの値によって、対応する転送判断が有効かどうかが示される。例えば、有効フラグの値は０又は１である。有効フラグの値が０である場合、これは対応する転送判断が有効であることを示す。有効フラグの値が１である場合、これは対応する転送判断が無効であることを示す。送信側デバイスは代替的に、フローの転送判断を削除して転送判断を無効にしてもよい。転送判断が無効であることをフローの転送判断の有効フラグの値が示すこと、及びフローの転送判断が存在しないことは両方とも、フローの転送判断が無効であることを意味する。送信側デバイスが、有効フラグを設定することで、フローの転送判断の有効性を決定する場合、第１のデータパケットを転送するパスを選択した後に、送信側デバイスはフローの転送判断を「有効」に設定する。
【００５２】
送信側デバイスが第１のデータパケットを受信したときに、フローの転送判断が無効である場合、これは、第１のデータパケットがフローの開始パケットであること、又は、第１のデータパケットと第２のデータパケットとの間の間隔が無効期間より長いことを示す。送信側デバイスが第１のデータパケットを受信したときに、フローの転送判断が無効である場合、第１のデータパケットは新規フローレットに属する。送信側デバイスが第１のデータパケットを受信したときに、フローの転送判断が有効である場合、第１のデータパケットは古いフローレットに属する。
【００５３】
本発明のこの実施形態では、送信側デバイス及びターゲットデバイスは、それぞれ中間デバイスに接続されたパスで送信するトラフィックの負荷及び受信するトラフィックの負荷を測定する。例えば、送信側デバイスは、当該送信側デバイスが複数の中間デバイスに送信するトラフィックの負荷を測定し、また複数の中間デバイスが当該送信側デバイスに送信するトラフィックの負荷も測定してよい。図１のネットワークアーキテクチャを一例として用いると、リーフデバイス１１１は、リーフデバイス１１１がスパインデバイス１０１に送信するトラフィックの負荷、リーフデバイス１１１がスパインデバイス１０２に送信するトラフィックの負荷、リーフデバイス１１１がスパインデバイス１０３に送信するトラフィックの負荷、スパインデバイス１０１がリーフデバイス１１１に送信するトラフィックの負荷、スパインデバイス１０２がリーフデバイス１１１に送信するトラフィックの負荷、及びスパインデバイス１０３がリーフデバイス１１１に送信するトラフィックの負荷を測定する。送信側デバイスは、送信側デバイスが複数の中間デバイスに送信するトラフィックの負荷を記録し、この負荷は、送信側デバイスが測定を行うことにより取得され、送信側デバイスが転送パスを選択するのに用いられる。送信側デバイスは、同じティアの他のネットワークデバイス（ターゲットデバイスを含む）に、複数の中間デバイスが送信側デバイスに送信するトラフィックの負荷を送信し、この負荷は送信側デバイスが測定を行うことにより取得される。他のネットワークデバイスが負荷を測定するオペレーションは、送信側デバイスが負荷を測定するオペレーションと同じである。送信側デバイスが測定する、各パスのトラフィックの負荷を受信するネットワークデバイスが、負荷を記録し、新規フローレットの転送対象のデータパケットを転送する場合に、ネットワークデバイスが測定した負荷に基づいて転送パスを選択する。他のネットワークデバイスも、負荷を測定した後に、測定結果を送信する。
【００５４】
例えば、ターゲットデバイスは、複数の中間デバイスが送信側デバイスに送信して送信側デバイスが測定するトラフィックの負荷を受信する。ターゲットデバイス自体も、ターゲットデバイスが複数の中間デバイスに送信するトラフィックの負荷を測定する。ターゲットデバイスと送信側デバイスとの間のあらゆるパスの負荷は、対応する中間デバイスが送信側デバイスに送信して送信側デバイスが測定するトラフィックの受信負荷、又は、ターゲットデバイスが対応する中間デバイスに送信してターゲットデバイスが測定するトラフィックの負荷のうち、どちらか高い方である。送信側デバイスが新規フローレットの転送対象のパケットを受信すると、送信側デバイスは、各パスの負荷に基づいて、転送対象のパケットの転送パスを選択する。
【００５５】
同じティアのネットワークデバイス（送信側デバイス及びターゲットデバイスを含む）は、制御パケットを用いて、ネットワークデバイスが測定する負荷を送信してもよく、又は測定結果を転送対象のデータパケットに追加してもよい。制御パケットが測定結果を送信するのに用いられる場合、カスタマイズしたパケット形式が用いられてもよい。さらに、測定結果はいつでも送信されてよく、データパケットが他のネットワークデバイスに送信されるのを待つ必要はない。したがって、この実装例は適応性がある。測定結果はデータパケットを用いて送信されるので、新たなパケット形式及び／又はプロトコルを設計する必要はない。既存のデータパケットは測定結果を搬送するのに用いられるので、ネットワークのパケット量がさらに増加することはなく、オーバーヘッドが低い。したがって、この実装例は単純であり、負荷が低い。任意選択で、測定結果を送信することで占有される帯域幅を削減するために、ネットワークデバイスは、１つ又は複数の中間デバイスがネットワークデバイスに送信するトラフィックの負荷の変化が閾値より大きい場合にだけ、１つ又は複数の中間デバイスがネットワークデバイスに送信するトラフィックの負荷を送信する。
【００５６】
測定結果を制御パケットに追加する実装例では、送信側デバイスが測定結果を送信する必要がある場合に、送信側デバイスは、同じティアの他のネットワークデバイスに送信されることになる制御パケットを生成する。制御パケットは、複数の中間デバイスのうちの少なくとも１つが送信側デバイスに送信するトラフィックの負荷と、対応するパス識別子とを含む。
【００５７】
パス識別子は、少なくとも１つの中間デバイスが送信側デバイスに送信するトラフィックの負荷の各負荷に対応する中間デバイスを識別するのに用いられる。パス識別子は、パスネーム、中間デバイスの識別子、又は物理インタフェースの識別子であってよい。パケットでは、パスを識別するのに用いられるパス識別子の種類は、フローの転送判断に記録された選択パスの識別子の種類とは異なっていてもよい。例えば、フローの転送判断では、選択したパスを記録するのに物理インタフェースの識別子が用いられるが、パケットの各測定結果では、中間デバイスの識別子が区別のために用いられる。
【００５８】
測定結果を転送対象のデータパケットに追加する実装例では、送信側デバイスは、複数の中間デバイスのうちの少なくとも１つが送信側デバイスに送信するトラフィックの負荷と、対応するパス識別子とを第１のデータパケットに追加する。送信側デバイスは、中間デバイスが配置されている１つのパスのトラフィックの負荷をデータパケットに追加してもよく、又は複数の測定結果を一度に追加してもよい。送信側デバイスが追加した測定結果は、データパケットを転送するパスに関連した測定結果を含んでもよく、又は他のパスに関連した測定結果を含んでもよい。
【００５９】
例えば、測定結果及びパス識別子は、仮想拡張可能ローカルエリアネットワーク（Ｖｉｒｔｕａｌ  Ｅｘｔｅｎｓｉｂｌｅ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ、ＶｘＬＡＮ）のヘッダの予約フィールドで搬送されてよい。
【００６０】
図３は、本発明の一実施形態によるネットワークデバイスの構造図である。
【００６１】
ネットワークデバイスは、プロセッサ３０２と物理インタフェース３０４とを含む。プロセッサ３０２は物理インタフェース３０４に接続される。例えば、プロセッサ３０２と物理インタフェース３０４とは、バスで接続されてよい。
【００６２】
プロセッサ３０２は、中央演算処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ）、ネットワークプロセッサ（ｎｅｔｗｏｒｋ  ｐｒｏｃｅｓｓｏｒ、ＮＰ）、ハードウェアチップ、又はこれらの任意の組み合わせであってもよい。ハードウェアチップは、特定用途向け集積回路（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ、ＡＳＩＣ）、プログラマブルロジックデバイス（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ、ＰＬＤ）、又はこれらの組み合わせであってもよい。ＰＬＤは、コンプレックスプログラマブルロジックデバイス（ｃｏｍｐｌｅｘ  ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ、ＣＰＬＤ）、フィールドプログラマブルゲートアレイ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ、ＦＰＧＡ）、汎用アレイロジック（ｇｅｎｅｒｉｃ  ａｒｒａｙ  ｌｏｇｉｃ、ＧＡＬ）、又はこれらの任意の組み合わせであってもよい。
【００６３】
物理インタフェース３０４は、有線の物理インタフェースであってよい。有線の物理インタフェースは、例えば、１つ又は複数のイーサネット（登録商標）インタフェースであってよい。イーサネット（登録商標）インタフェースは、光学的インタフェース、電気的インタフェース、又はこれらの組み合わせであってもよい。物理インタフェース３０４は、別のネットワークデバイス（例えば、中間デバイス）又はホストと通信するように構成される。
【００６４】
ネットワークデバイスはさらに、メモリを含んでよい。メモリは、独立した構成要素であってもよく、又はプロセッサ３０２に統合されてもよい。メモリは、揮発性メモリ、例えば、ランダムアクセスメモリ（ＲＡＭ）を含んでよい。メモリは、不揮発性メモリ、例えば、リードオンリメモリ（ＲＯＭ）、フラッシュメモリ、光ディスク、磁気テープ、フロッピーディスク、ハードディスク、又はソリッドステートドライブも含んでよい。メモリはさらに、前述の種類のメモリの任意の組み合わせを含んでもよい。メモリは、転送判断、転送判断の有効フラグの設定、及び複数のパスのそれぞれの負荷などを格納するように構成されてよい。プロセッサ３０２がＣＰＵを含む場合、メモリはさらに、プログラムコードを格納して、プログラムコードをＣＰＵに伝送してよく、その結果、ＣＰＵは、プログラムコードの命令に基づいて、本発明のこの実施形態を実現する。
【００６５】
プロセッサ３０２は、物理インタフェース３０４を用いて、ターゲットデバイスに送信されることになるデータパケットを受信するように構成され、プロセッサ３０２はさらに、当該データパケットが、当該データパケットが配置されているフローレットの開始パケットである場合、当該データパケットを転送するために複数のパスから低負荷のパスを選択し、当該データパケットが配置されているフローの転送判断を、選択したパスに設定するように構成される。複数のパスのそれぞれは、複数の中間デバイスのうちの１つを介して、ネットワークデバイスをターゲットデバイスに接続する。複数のパスのそれぞれの負荷は、対応する中間デバイスがネットワークデバイスから受信するトラフィックの負荷、又は、対応する中間デバイスがターゲットデバイスに送信するトラフィックの負荷のうち、どちらか高い方である。複数の中間デバイスがネットワークデバイスから受信するトラフィックの負荷は、ネットワークデバイスにより測定される。複数の中間デバイスがターゲットデバイスに送信するトラフィックの負荷は、ターゲットデバイスにより測定される。
【００６６】
プロセッサ３０２の実装の詳細については、図２に示す転送パス選択方法の詳細を参照されたい。
【００６７】
図４は、本発明の一実施形態による転送パス選択デバイスの構造図である。本デバイスは、受信モジュール４０２と、選択モジュール４０４と、測定モジュール４０６とを含む。
【００６８】
受信モジュール４０２は、ターゲットデバイスに送信されることになるデータパケットを受信するように構成される。
【００６９】
選択モジュール４０４は、データパケットが、当該データパケットが配置されているフローレットの開始パケットである場合、当該データパケットを転送するために複数のパスから低負荷のパスを選択し、当該データパケットが配置されているフローの転送判断を、選択したパスに設定するように構成される。複数のパスのそれぞれは、複数の中間デバイスのうちの１つを介して、転送パス選択デバイスをターゲットデバイスに接続する。複数のパスのそれぞれの負荷は、対応する中間デバイスが転送パス選択デバイスから受信するトラフィックの負荷、又は、対応する中間デバイスがターゲットデバイスに送信するトラフィックの負荷のうち、どちらか高い方である。複数の中間デバイスがターゲットデバイスに送信するトラフィックの負荷は、ターゲットデバイスにより測定される。
【００７０】
測定モジュール４０６は、複数の中間デバイスが転送パス選択デバイスから受信するトラフィックの負荷を測定するように構成される。
【００７１】
各モジュールの実装の詳細については、図２に示す転送パス選択方法の詳細を参照されたい。
【００７２】
当業者であれば、方法の実施形態の段階の全て又は一部が、プロセッサに命令するプログラムにより完了し得ることを理解するであろう。プログラムは、コンピュータ可読記憶媒体に格納されてよい。記憶媒体は、ランダムアクセスメモリ、リードオンリメモリ、フラッシュメモリ、ハードディスク、ソリッドステートディスク、磁気テープ、フロッピーディスク、光ディスク、又はこれらの任意の組み合わせを含んでよい。
【００７３】
前述の説明は、単に本発明の具体的な実施形態にすぎず、本発明の保護範囲を限定することを意図するものではない。本発明において開示された技術的範囲内で当業者が容易に考え出すあらゆる変形例又は置換例は、本発明の保護範囲に含まれることになる。したがって、本発明の保護範囲は、特許請求の範囲に記載された保護範囲によって決まることになる。
（項目１）
転送パス選択方法であって、
ターゲットデバイスに送信されることになるデータパケットを送信側デバイスが受信する段階と、
上記データパケットが、上記データパケットが配置されているフローレットの開始パケットである場合、上記データパケットを転送するために上記送信側デバイスが複数のパスから低負荷のパスを選択し、上記データパケットが配置されているフローの転送判断を、選択した上記パスに設定する段階であって、上記複数のパスのそれぞれは、複数の中間デバイスのうちの１つを介して、上記送信側デバイスを上記ターゲットデバイスに接続し、上記複数のパスのそれぞれの負荷は、対応する中間デバイスが上記送信側デバイスから受信するトラフィックの負荷、又は対応する中間デバイスが上記ターゲットデバイスに送信するトラフィックの負荷のうち、どちらか高い方であり、上記複数の中間デバイスが上記送信側デバイスから受信するトラフィックの負荷は上記送信側デバイスにより測定され、上記複数の中間デバイスが上記ターゲットデバイスに送信するトラフィックの負荷は上記ターゲットデバイスにより測定される、段階と
を備える方法。
（項目２）
上記方法はさらに、
上記フローの上記転送判断が無効である場合、上記データパケットは上記データパケットが配置されている上記フローレットの上記開始パケットであると判断する段階と、
上記データパケットを受信した後の無効期間内に、上記送信側デバイスが上記フローのデータパケットを何も受信しなかった場合、上記送信側デバイスが上記フローの上記転送判断を無効にする段階と
を備える、項目１に記載の方法。
（項目３）
上記方法はさらに、上記データパケットを転送する上記パスを選択した後に、上記送信側デバイスが上記フローの上記転送判断の有効フラグを「有効」に設定する段階を備える、項目２に記載の方法。
（項目４）
上記方法はさらに、
上記複数の中間デバイスが上記送信側デバイスに送信するトラフィックの負荷を上記送信側デバイスが測定する段階と、
上記複数の中間デバイスが上記送信側デバイスに送信する上記トラフィックの上記負荷を、上記送信側デバイスが上記ターゲットデバイスに送信する段階と
を備える、項目１から３のいずれか一項に記載の方法。
（項目５）
上記複数の中間デバイスが上記送信側デバイスに送信する上記トラフィックの上記負荷を、上記送信側デバイスが上記ターゲットデバイスに上記送信する段階は、
上記複数の中間デバイスのうちの少なくとも１つが上記送信側デバイスに送信するトラフィックの負荷と、対応するパス識別子とを、上記送信側デバイスが上記データパケットに追加する段階であって、上記対応するパス識別子は、上記少なくとも１つの中間デバイスが上記送信側デバイスに送信する上記トラフィックの上記負荷の各負荷に対応する中間デバイスを識別するのに用いられる、段階を備える、項目４に記載の方法。
（項目６）
上記複数の中間デバイスのうちの１つ又は複数が上記送信側デバイスに送信するトラフィックの負荷は、上記複数の中間デバイスのうちの上記１つ又は複数が上記送信側デバイスに送信する上記トラフィックの上記負荷の変化が閾値より大きい場合にだけ送信される、項目４又は５に記載の方法。
（項目７）
上記複数のパスのそれぞれの上記負荷は、リンク負荷とバースト度とを含む、項目１から６のいずれか一項に記載の方法。
（項目８）
転送パス選択デバイスであって、
ターゲットデバイスに送信されることになるデータパケットを受信するように構成された受信モジュールと、
上記データパケットが、上記データパケットが配置されているフローレットの開始パケットである場合、上記データパケットを転送するために複数のパスから低負荷のパスを選択し、上記データパケットが配置されているフローの転送判断を、選択した上記パスに設定するように構成された選択モジュールであって、上記複数のパスのそれぞれは、複数の中間デバイスのうちの１つを介して、上記転送パス選択デバイスを上記ターゲットデバイスに接続し、上記複数のパスのそれぞれの負荷は、対応する中間デバイスが上記転送パス選択デバイスから受信するトラフィックの負荷、又は対応する中間デバイスが上記ターゲットデバイスに送信するトラフィックの負荷のうち、どちらか高い方であり、上記複数の中間デバイスが上記ターゲットデバイスに送信するトラフィックの負荷は上記ターゲットデバイスにより測定される、選択モジュールと、
上記複数の中間デバイスが上記転送パス選択デバイスから受信するトラフィックの負荷を測定するように構成された測定モジュールと
を備えるデバイス。
（項目９）
上記選択モジュールは、
上記フローの上記転送判断が無効である場合、上記データパケットは上記データパケットが配置されている上記フローレットの上記開始パケットであると判断し、
上記受信モジュールが、上記データパケットを受信した後の無効期間内に上記フローのデータパケットを何も受信しなかった場合、上記フローの上記転送判断を無効にする
ように構成される、項目８に記載のデバイス。
（項目１０）
上記選択モジュールはさらに、上記データパケットを転送する上記パスを選択した後に、上記フローの上記転送判断の有効フラグを「有効」に設定するように構成される、項目９に記載のデバイス。
（項目１１）
上記測定モジュールはさらに、
上記複数の中間デバイスが上記転送パス選択デバイスに送信するトラフィックの負荷を測定し、上記複数の中間デバイスが上記転送パス選択デバイスに送信する上記トラフィックの上記負荷を、上記ターゲットデバイスに送信するように構成される、項目８から１０のいずれか一項に記載のデバイス。
（項目１２）
上記測定モジュールは、上記複数の中間デバイスのうちの少なくとも１つが上記転送パス選択デバイスに送信するトラフィックの負荷と、対応するパス識別子とを上記データパケットに追加するように構成され、上記対応するパス識別子は、上記少なくとも１つの中間デバイスが上記転送パス選択デバイスに送信する上記トラフィックの上記負荷の各負荷に対応する中間デバイスを識別するのに用いられる、項目１１に記載のデバイス。
（項目１３）
上記測定モジュールは、上記複数の中間デバイスのうちの１つ又は複数が上記転送パス選択デバイスに送信するトラフィックの負荷の変化が閾値より大きい場合にだけ、上記複数の中間デバイスのうちの上記１つ又は複数が上記転送パス選択デバイスに送信する上記トラフィックの上記負荷を送信するように構成される、項目１１又は１２に記載のデバイス。
（項目１４）
上記複数のパスのそれぞれの上記負荷は、リンク負荷とバースト度とを含む、項目８から１３のいずれか一項に記載のデバイス。
（項目１５）
物理インタフェースとプロセッサとを備えるネットワークデバイスであって、上記プロセッサは、
上記物理インタフェースを用いて、ターゲットデバイスに送信されることになるデータパケットを受信することと、
上記データパケットが、上記データパケットが配置されているフローレットの開始パケットである場合、上記データパケットを転送するために複数のパスから低負荷のパスを選択し、上記データパケットが配置されているフローの転送判断を、選択した上記パスに設定することであって、上記複数のパスのそれぞれは、複数の中間デバイスのうちの１つを介して、上記ネットワークデバイスを上記ターゲットデバイスに接続し、上記複数のパスのそれぞれの負荷は、対応する中間デバイスが上記ネットワークデバイスから受信するトラフィックの負荷、又は対応する中間デバイスが上記ターゲットデバイスに送信するトラフィックの負荷のうち、どちらか高い方であり、上記複数の中間デバイスが上記ネットワークデバイスから受信するトラフィックの負荷は上記ネットワークデバイスにより測定され、上記複数の中間デバイスが上記ターゲットデバイスに送信するトラフィックの負荷は上記ターゲットデバイスにより測定される、設定することと
を実行するように構成される、ネットワークデバイス。
（項目１６）
上記プロセッサは、上記フローの上記転送判断が無効である場合、上記データパケットは上記データパケットが配置されている上記フローレットの上記開始パケットであると判断するように構成され、
上記プロセッサはさらに、上記ネットワークデバイスが、上記データパケットが受信された後の無効期間内に上記フローのデータパケットを何も受信しなかった場合、上記フローの上記転送判断を無効にするように構成される、項目１５に記載のネットワークデバイス。
（項目１７）
上記プロセッサはさらに、上記データパケットを転送する上記パスを選択した後に、上記フローの上記転送判断の有効フラグを「有効」に設定するように構成される、項目１６に記載のネットワークデバイス。
（項目１８）
上記プロセッサはさらに、
上記複数の中間デバイスが上記ネットワークデバイスに送信するトラフィックの負荷を測定し、上記複数の中間デバイスが上記ネットワークデバイスに送信する上記トラフィックの上記負荷を、上記物理インタフェースを用いて上記ターゲットデバイスに送信するように構成される、項目１５から１７のいずれか一項に記載のネットワークデバイス。
（項目１９）
上記プロセッサは、上記複数の中間デバイスのうちの少なくとも１つが上記ネットワークデバイスに送信するトラフィックの負荷と、対応するパス識別子とを上記データパケットに追加するように構成され、上記対応するパス識別子は、上記少なくとも１つの中間デバイスが上記ネットワークデバイスに送信する上記トラフィックの上記負荷の各負荷に対応する中間デバイスを識別するのに用いられる、項目１８に記載のネットワークデバイス。
（項目２０）
上記プロセッサは、上記複数の中間デバイスのうちの１つ又は複数が上記ネットワークデバイスに送信するトラフィックの負荷の変化が閾値より大きい場合にだけ、上記複数の中間デバイスのうちの上記１つ又は複数が上記ネットワークデバイスに送信する上記トラフィックの上記負荷を送信するように構成される、項目１８又は１９に記載のネットワークデバイス。
（項目２１）
上記複数のパスのそれぞれの上記負荷は、リンク負荷とバースト度とを含む、項目１５から２０のいずれか一項に記載のネットワークデバイス。
【図１】
0006844827.tif 000002
【図２】
0006844827.tif 000003
【図３】
0006844827.tif 000004
【図４】
0006844827.tif 000005