JP2015520997A - 最短経路の決定におけるタイブレイク - Google Patents

最短経路の決定におけるタイブレイク Download PDF

Info

Publication number
JP2015520997A
JP2015520997A JP2015512973A JP2015512973A JP2015520997A JP 2015520997 A JP2015520997 A JP 2015520997A JP 2015512973 A JP2015512973 A JP 2015512973A JP 2015512973 A JP2015512973 A JP 2015512973A JP 2015520997 A JP2015520997 A JP 2015520997A
Authority
JP
Japan
Prior art keywords
identifier
node
route
path
ordering
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015512973A
Other languages
English (en)
Inventor
シアボ,ジェローム
Original Assignee
ロックスター コンソーティアム ユーエス エルピー
ロックスター コンソーティアム ユーエス エルピー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ロックスター コンソーティアム ユーエス エルピー, ロックスター コンソーティアム ユーエス エルピー filed Critical ロックスター コンソーティアム ユーエス エルピー
Publication of JP2015520997A publication Critical patent/JP2015520997A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

等コストの最短(最小コスト)経路間の一貫したタイブレイク決定は、複数のエンド・ツー・エンド経路毎に順序付きのノード識別子の組を比較することによって実現される。あるいは、同じ結果は、ツリーの分岐するブランチのノード識別子を使用して等コスト経路の選択を行うことにより、最短経路ツリーが構成されるので、オンザフライで実現することが可能である。何れの変形も、最短経路が算出されるのがネットワーク内のどこかにかかわらず、等コスト経路について一貫した選択が行われることを可能にする。これにより、何れかの2つのノード間のトラフィック・フローが、順方向及び逆方向の何れにおいても、ネットワークを通じて常に同じ経路をたどることになるであろう。

Description

本発明は、イーサネット(登録商標)ネットワークなどのパケット転送通信ネットワークにおける、等コスト最短経路などの複数の可能性のうちから経路を一貫して選択することに関する。
パケット転送通信ネットワークでは、ノードは、ネットワークのトポロジについて学習することが可能であり、その他のネットワーク・ノードそれぞれにトラフィックをどのようにしてルーティングするかについて、トポロジについて獲得する知識に基づいて決定することが可能である。経路を選択する主な基礎は経路コストであり、これは、ノード間のホップの数、及びノードを接続するリンクの帯域幅などの特定の他のメトリックの一方又は両方で規定することが可能である。開放型最短経路優先(Open Shortest Path First、OSPF)及び中間システム間連携(Intermediate System−to−Intermediate System、IS−IS)は、経路コストの各ノードのアドバータイズメントに基づいて最短経路を確立する広く使用されているリンク状態プロトコルである。前述のプロトコルは通常、複数の等コスト経路間でのタイブレイクを行うことを試行しない。その代わりに、いくつかの等コスト経路にわたり、トラフィックを分散する。分散アルゴリズムは規定されておらず、ルータ間で異なり得る。あるいは、他のルータによって行われた選択との一貫性は考慮されないが、単一の経路の局所の選択を行い得る。よって、何れの場合にも、フローの逆方向は、順方向によって使用される経路を使用することが保証されない。
マルチキャスト開放型最短経路優先(MOSPF)などのマルチキャスト・ルーティング・プロトコルは、同じ最短経路ツリーを構成するネットワーク内の各ルータに依存する。この理由で、MOSPFは、同一のツリーが生成されることを確実にするために、リンク・タイプ、LAN対ポイントツーポイント、及びルータ識別子に基づいたタイブレイク手法を実現する。しかし、タイブレイク決定を最大の識別子を有する親に基づかせることは、一般に、逆方向のフローによって使用される経路が、順方向のフローによって使用される経路と同じでなくなることを示唆する。
スパニング・ツリー・プロトコル(Spanning Tree Protocol(STP)、ラピッド・スパニング・ツリー・プロトコル(RSTP)、マルチプル・スパニング・ツリー・プロトコル(MSTP)は、任意のトポロジにおいてループのないスパニング・ツリーを作成する方法である。スパニング・ツリー・プロトコルは、ネットワーク内の各ノードによって実行される。スパニング・ツリー・プロトコルは全て、(ブリッジ識別子、ポート識別子)に基づいた局所的なタイブレイク決定を使用して、等コスト経路間で選択を行う。スパニング・ツリーでは、最初にルート・ノードが選ばれ、次に全てのノードにより該ルートに関するツリーが構成される。よって、行き及び戻りのトラフィックについて全ての経路は対称であるが(本質的に、単純なツリーはこれを唯一の可能な構成とする)、選択処理は遅く、単純なツリー構造は如何なる冗長な容量も使用することが可能でない。同様に、Radia PerlmanのRbridgesの提案は、親ノードの識別子をタイブレイカとして使用する。
Mick Seamanは、IEEE802.1ワーキング・グループへの最短経路ブリッジの提案(http://www.ieee802.org/1/files/public/docs2005/new−seaman−shortest−path−0305−02.pdf)において、「カット・ベクトル」を追加することにより、一貫したタイブレイク決定を実行する、ラピッド・スパニング・ツリー・プロトコルへの単純なプロトコル拡張について説明している。上記提案は、ノード毎のVIDを使用して、ノード毎のスパニング・ツリーを識別する。ブリッジによって伝送される必要がある情報全てを正規の単一のイーサネット(登録商標)・フレームに適合させるために、前述の手法は現在、イーサネット(登録商標)・ネットワークのサイズを32個のブリッジに制限している。
図1は、平凡なネットワークの例の場合でも、親ノードの識別子に基づいたタイブレイク手法が対称な経路を生成することができない態様を示す。前述の例では、リンクは等コストを有しているとみなされ、よって、経路コストの決定は単に、ホップの数を考慮する。まず、AからBへの経路を計算することを考えてみる。計算がノード2に達すると、等コスト経路の存在が発見される。第1の経路(A−1−3−6)及び第2の経路(A−1−4−5)が存在している。タイブレイク・アルゴリズムは、最小の識別子を有する親ノードに基づいて経路を選択した場合、第2の経路(A−1−4−5)を選択することになる。ノード識別子5はノード識別子6よりも小さいからである。しかし、次に、BからAへの経路を計算することを考えてみる。計算がノード1に達すると、等コスト経路の存在が発見される。第1の経路(B−2−6−3)及び第2の経路(B−2−5−4)が存在している。同じタイブレイク基準を使用すれば、タイブレイク・アルゴリズムは、第1の経路(B−2−6−3)を選択する。ノード識別子3はノード識別子4よりも小さいからである。よって、ノードA及びBにより行われる最短経路計算が、一貫性のない結果をもたらすことが分かり得る。
IEEE802.1aqに対して提案されたプロバイダ・リンク状態ブリッジング(PLSB(Provider Link State Bridging))などの一部の新たなプロトコルでは、ユニキャスト・トラフィックと、未知のトラフィック/マルチキャスト・トラフィックとの両方に対してネットワークにわたる転送の一貫性を維持し、順方向及び逆方向のフローの両方で、共通の経路を使用する旨の要件が存在している。したがって、等コスト経路間でタイブレイクを行う場合、ノードが一貫して同一の決定に到達することが可能であることが重要である。更に、ノードが最小量の処理能力でタイブレイクを行うことが可能であることが望ましい。
本発明の第1の局面は、パケット転送ネットワークの第1のノードにおいてパケットを転送するうえで使用するための転送情報を決定する方法を提供する。方法は、上記ネットワークの上記第1のノード及び第2のノード間の最短経路を決定し、複数の最短経路がいつ、実質的に等コストであるかを決定する。方法は、実質的に等しいコストの経路毎に、上記経路内にあるノードの組を規定するノード識別子の組を形成し、第1の順序付け基準を使用してノード識別子の組それぞれを順序付けて、経路識別子を形成する。第1の順序付け基準は、ノード識別子が経路内に現れる順序とは無関係である。方法は、次いで、経路識別子を比較することにより、複数の等コスト経路間で選択する。ネットワークの各ノードは一意のノード識別子を有する。
効果的には、第1の順序付け基準は昇順又は降順の辞書式順序であるが、全体的に順序付けられたノード識別子の組を生成する如何なる順序付け基準も用いることが可能である。
好ましくは、方法は、第2の順序付け基準を使用して、複数の経路識別子を順序付きリストに順序付ける工程を更に含む。同様に、第2の順序付け基準は、昇順の辞書式順序、降順の辞書式順序、又は全体的に順序付けられた経路識別子の組を生成する如何なる順序付け基準であり得る。
本発明の別の局面は、パケット転送ネットワークの第1のノードにおいてパケットを転送するうえで使用するための転送情報を決定する方法を提供する。方法は、最短経路ツリーを反復的に形成することにより、ネットワークの第1のノード及び第2のノード間の最短経路を決定する工程と、最短経路ツリーを形成する一方で、複数の経路がいつ、等コストを有するかを決定する工程とを含み、各等コスト経路は、等コスト経路に共通の分岐ノードから分岐するブランチを有する。方法は、ブランチそれぞれにおいて、第1の選択基準を使用してノード識別子を識別して、ブランチ識別子を形成し、ブランチ識別子を比較することにより、複数のブランチ間で選択する。
効果的には、方法は、辞書式順序などの、各ブランチにおけるノード識別子を比較し、選択するための全体的な順序付け基準を使用する。
効果的には、方法は、分岐ノードへ引き返す一方で、分岐ブランチそれぞれにおける第1の選択基準を満たすノード識別子を記録する。このことは、計算を更に単純にし、記憶要件を低減する効果を有する。
本発明の局面は何れも、異なる第1の順序付け/選択基準及び共通の第2の順序付け/選択基準を使用することにより、又は共通の第1の順序付け/選択基準及び異なる第2の選択順序付け/基準を使用することにより、2つの等コスト経路を選択するために使用することが可能である。3つ又は4つの等コスト経路は、ノードにおいて第1の順序付け/選択基準及び第2の順序付け/選択基準を一貫して適用し、順序付きリスト内の特定の位置において識別子を選択することにより、同様なやり方で選択することが可能である。
本発明は、複数のエンド・ツー・エンド経路毎に、順序付けられたノード識別子の組を比較することにより、等コスト経路間で選択するために、タイブレイカとして使用することが可能である。あるいは、選択の決定が行われる必要がある所の局所で、ツリーの分岐するブランチのノード識別子を使用して等コスト経路の選択を行うことにより、最短経路ツリーが構成されるので、オンザフライで同じ結果を得ることが可能であるということが分かっている。このことは、計算量を削減し、格納される必要のあるデータ量を削減する効果を有する。計算量を更に削減するために、ブランチは対単位で比較することが可能である。このことは、ネットワークのサイズ及び複雑度が増大するにつれ、特に重要となる。本発明の変形は何れも、ネットワーク内のどこで最短経路が算出されるかにかかわらず、等コスト経路の一貫した選択が行われることを可能にするという重要な特性を有する。これにより、何れかの2つのノード間のトラフィック・フローが、順方向及び逆方向の何れにおいても、ネットワークを通じて常に同じ経路をたどることが確実になる。
本発明は、最短経路を決定する何れの特定のやり方にも制限されることを意図するものでない。ダイクストラのアルゴリズム、フロイドのアルゴリズム、又は何れかの他の適切な代替策を使用することが可能である。
本発明は、厳密に同じ値を有する等コスト経路間、又はリンク・メトリック及びホップ数の何れの観点からも互いに所望のオフセットの範囲内にある経路間のタイブレイカとして使用することが可能である。このことは、現実世界では、適格な経路の組間での多様性を増大させるうえで望ましいことがあり得る。例えば、一般に、何れの2つの端点の間でも厳密な等コストを実現するために要求される対称的な態様でノード及びリンクを展開することの費用対効果が常に高い訳でないことがあり得る。異なる経路上のホップ数が互いに1ホップの範囲内にあることを要求する旨の制約を緩和することにより、適度な非対称性がなお適格な経路をもたらし得、ループ経路を達成するためには2ホップの差が、必要な最低限であるので、ループのないトポロジがなお保証される。
「最短経路」の語は、距離のみに基づいた経路の決定に限定されず、リンクの「コスト」を特定するために使用することが可能な何れかのメトリック、又はメトリックの組み合わせを包含することを意図している。メトリックの非網羅的なリストは、距離、ホップ数、容量、速度、使用量、可用性である。
方法は、障害が生じたノード又はリンクなどの選択された経路上にないネットワークの部分の除去により、等コスト最短経路の選択が、影響を受けないという点で安定している。
効果的には、ネットワークはイーサネット(登録商標)ネットワークであるが、本発明は特に対称トラフィック・ルーティング経路に対する要件を有するものなどの他のタイプのパケット転送ネットワークにも適用することが可能である。
本明細書及び特許請求の範囲に記載の機能は、ソフトウェア、ハードウェア、又はそれらの組み合わせで実現することが可能である。本発明は、適切にプログラムされたコンピュータ、又は何れかの形態の処理装置によって実現することが可能である。よって、本発明の別の局面は、上記方法の何れかを実現するためのソフトウェアを提供する。ソフトウェアは、電子記憶装置上、ハード・ディスク上、光ディスク上、又は他のマシン読み取り可能な記憶媒体上に記憶し得る。ソフトウェアは、マシン読み取り可能な担体上のコンピュータ・プログラム・プロダクトとして配布し得、又はネットワーク接続を介してノードにダウンロードし得る。
本発明の更なる局面は、上記方法の何れかを行うよう構成されたプロセッサを備えるネットワーク・ノードを提供する。
本発明の更なる局面は、等コスト経路間で選択するための上記方法をそれぞれが一貫して適用するノードのネットワークを提供する。
本発明の実施例は、添付図面を参照して例としてのみ説明する。
等コスト経路を有するネットワーク・トポロジを示す図である。 本発明を実現することが可能なパケット転送ネットワークの例を示す図である。 図2のブリッジ・ノードの1つにおける装置を模式的に示す図である。 最短経路の局所性を示す図である。 タイブレイク決定の局所性を示す図である。 最短経路の算出を例証するための例示的なネットワーク・トポロジを示す図である。 最短経路の算出を例証するための例示的なネットワーク・トポロジを示す図である。 最短経路の算出を例証するための例示的なネットワーク・トポロジを示す図である。 最短経路の算出を例証するための更なる例示的なネットワーク・トポロジを示す図である。 図9に示すネットワーク・トポロジの最短経路算出のタイブレイク工程を示す図である。 図9に示すネットワーク・トポロジの最短経路算出のタイブレイク工程を示す図である。 図9に示すネットワーク・トポロジの最短経路算出のタイブレイク工程を示す図である。 メッシュ・ネットワークに対してデュアル・ホーミングされたノードの例を示す図である。 ノード間で一貫した結果をもたらすために拡張タイブレイク手法が必要であり得る等コスト経路の例を示す図である。
本発明の実施例は、添付図面を参照して例としてのみ説明する。
図2は、本発明を実現することが可能な、リンク状態プロトコルによって制御されたイーサネット(登録商標)ネットワーク10の例を示し、図3は模式的に、ノード41乃至48のうちの1つにおける装置を示す。メッシュ・ネットワークを形成する(ブリッジ、又はブリッジ・ノードとも呼ばれる)ノード41乃至48は、相互に交換リンク状態アドバータイズメント56を交換する。このことは、良く理解されている、リンク状態ルーティング・システムの機構を介して実現される。ルーティング・システム・モジュール51は、リンク状態ルーティング・プロトコルを使用して、ネットワーク・トポロジに関するネットワーク内のピア・ノードと情報56を交換する。前述の情報の交換はネットワーク・トポロジの同期化されたビューをノードが生成することを可能にする。各ノードでは、最短経路決定モジュール52は、他のノードそれぞれへの最短経路を決定する最短経路ツリーを算出する。モジュール52によって決定された最短経路は、ネットワークを介してトラフィックを方向付けるためのエントリで転送情報ベース54を埋めるために使用される。以下に更に詳細に説明するように、モジュール52が複数の等コスト経路に遭遇する場合に状況が生じることになる。タイブレイク・モジュール53は、一貫したやり方で等コスト経路の1つ(又は複数)を選択する。通常の動作では、パケットがノードで受信され(57)、宛先ルックアップ・モジュール55は、受信パケットを転送すべき(58)ポート(又は、マルチキャスト宛先の場合は、複数のポート)を、FIB54を使用して決定する。有効なエントリがFIB54に存在していない場合、パケットを廃棄し得る。図3に示すモジュールは、例証の目的のために過ぎず、当業者が分かるように、ノードのモジュールのうちの機能を結合し、又は分散させることによって実現し得る。
特定のノードがブリッジの特定の対間の最短経路上にあるかを決定するために、種々の最短経路アルゴリズムを使用することが可能である。ノード対間の最短経路を計算するために、フロイドのアルゴリズム(R.Floyd:Algorithm 97 (shortest path),Communications of the ACM,7:345,1962や、ダイクストラの単一始点最短経路アルゴリズム(E.W.Dijkstra:A note on two problems in connexion with graphs, Numerical Mathematics,1:269−271,1959)などの全点対間最短経路アルゴリズムをノード41乃至48において実現し得る。更に、何れかの適切な最短経路アルゴリズムを利用することが可能である。最短経路アルゴリズムによって使用されるリンク・メトリックは、トラフィック・エンジニアリング情報を考慮に入れるよう静的に、又は動的に修正することが可能である。例えば、リンク・メトリックは、容量、速度、使用量、及び可用性などのコストの尺度を含み得る。
課題に対する前置きとして、等コスト経路間で一貫した決定を行うことが可能なタイブレイク・アルゴリズムの要件をまず説明する。要件のリストは以下表1に記載する。
Figure 2015520997
タイブレイク・アルゴリズムの本質は、常に「機能する」ということである。アルゴリズムが提示される経路の組がどれであろうと、アルゴリズムは常に1つの経路のみを選択できるべきである。したがって、何よりもまず、タイブレイク・アルゴリズムは完全(1)であるべきである。一貫したタイブレイクのためには、アルゴリズムは、等コスト経路が発見され、タイブレイクが行われる順序にかかわらず、同じ結果をもたらさなければならない。すなわち、タイブレイク・アルゴリズムは、可換(2)であり、かつ結合的(3)でなければならない。3つの経路間のタイブレイクが、経路の対が考慮に入れられる順序にかかわらず同じ結果をもたらさなければならないという要件(3)はそれほど明白でなく、しかし、ネットワークを通じた計算の方向に応じて異なる順序で等コスト経路が発見されるので、一貫した結果のために絶対に必要である。タイブレイク・アルゴリズムは対称(4)でなければならない(すなわち、タイブレイク・アルゴリズムは経路の方向にかかわらず、同じ結果をもたらさなければならない)。2つのノードA及びB間の最短経路はBとAとの間の最短経路の逆でなければならない。最後に、局所性(5)は、ルーティング・システムによって活用される最短経路の非常に重要な特性である。局所性の特性は、単に、最短経路のサブ経路も最短経路であるということを意味する。最短経路のこの一見して些細な特性は、宛先ベースの転送を使用するパケット・ネットワークにおいて重要なアプリケーションを有する。前述のネットワークでは、経路に沿った中間ノードにおける転送決定は、パケットの送信元アドレスでなく、宛先アドレスにのみ基づく。よって、その転送情報を生成するために、ノードはそれ自体から他のノード全てへの最短経路を計算すればよく、生成される転送情報の量は、ネットワーク内のノードの数とともに、二次関数的にではなく、線形的に増大する。デスティネーションベースの転送を可能にするために、タイブレイク・アルゴイズムは、よって、最短経路の局所性の特性を維持しなければならない。すなわち、タイブレイク・アルゴリズムによって選択された最短経路のサブ経路は、タイブレイク・アルゴリズムによって選択された最短経路でなければならない。
計算効率の考慮点により、タイブレイク・アルゴリズムに対して、一見して異なる別の要件が課される。すなわち、アルゴリズムは、等コスト経路が発見されると直ちにタイブレイク決定を行うことができるべきである。図5はこの点を示す。中間ノードIが、ノードAに2つの等コスト経路p及びqによって接続され、ノードBに別の等コスト経路の対r及びsによって接続される。したがって、全てノードIを通過する、ノードAとノードBとの間の4つの等コスト経路p+r、p+s、q+r、q+sが存在している。AからBへの最短経路の計算が進むにつれ、AとIとの間の等コストのサブ経路の存在がまず発見される。前述の2つの経路の知識を繰り越すことを要することを避けるために、タイブレイク・アルゴリズムは、第2の等コスト最短サブ経路の存在が発見され次第、それらのうちから選ぶことができるべきである。中間ノードにおいて行われるタイブレイク決定は、最終的には、計算の結果に影響を及ぼす。ノードAとノードIとの間の2つのサブ経路p及びqの一方をなくすことにより、アルゴリズムは、ノードAとノードBとの間の4つの最短経路のうちの2つを更なる考慮から除外する。同様に、逆方向では、タイブレイク・アルゴリズムは、最終決定を行う前にサブ経路r及びサブ経路sから選ぶ。これらの局所決定は互いに一貫していなければならず、特に、2つの等コスト経路間での選択は、経路が同様に延長された場合に同じに留まるべきである。例えば、図3に表す場合には、タイブレイク・アルゴリズムは以下の4つの同一性を検証すべきである。
tiebreak(concat(p,r),concat(q,r))=concat(tiebreak(p,q),r)
tiebreak(concat(p,s),concat(q,s))=concat(tiebreak(p,q),s)
concat(p,tiebreak(r,s))=tiebreak(concat(p,r),concat(p,s))
concat(q,tiebreak(r,s))=tiebreak(concat(q,r),concat(q,s))
タイブレイク・アルゴリズムが一貫した局所的決定を行うことを保証するのに対称性(4)及び局所性(5)の条件は必要かつ十分であり、このことは、等コスト最短経路の存在下で単一始点最短経路アルゴリズムの非常に効率的な実現をもたらすために活用することが可能である。
表1に記載された要件のリストは網羅的であることを意図するものでなく、表1に含まれていた可能性がある他の最短経路の特性も存在している。例えば、最短経路の一部でないリンクがグラフから除去された場合、最短経路は影響を受けない。同様に、選択された経路の一部でないリンクがグラフから除去された場合に、かつ前述のリンクが、アルゴリズムによって除去された等コスト経路のうちのいくつかの一部であった場合にも、複数の等コスト経路間のタイブレイク・アルゴリズムの選択は影響を受けないはずである。
次に、一貫したタイブレイク・アルゴリズムの第1の実施例を説明する。前述のアルゴリズムは、経路毎に経路識別子を形成することによって始まる。経路識別子は、ネットワークを通る経路が経由するノードそれぞれの識別子の順序付きリストである。ノード識別子は辞書式順序でソートされる。経路識別子は、結果として生じる順序付きノ―ド識別子の連結である。図6は、端ノードA、B及び中間ノード0乃至9を備えた例示的なネットワークを示す。
ノードA及びB間の(図6の最上部に沿った)第1の経路は、ノード識別子A−0−5−6−1−4−8−Bを有するノードを経由する。ノード識別子のリストを昇順の辞書的順序で順序付けした後、経路は経路識別子014568ABによって表すことが可能である。前述の構成により、経路及びその逆が同じ経路識別子を有することが確実となる。更に、アルゴリズムは最短経路又はほぼ最短の経路のみを扱うので、2つの経路(すなわち、直接経路、及び対応する逆経路)のみが一識別子を共有し得る。最後に、タイブレイク・アルゴリズムは単に、最小の(又は最大の)経路識別子を有する経路を選択する。アルゴリズムは以下のように要約することが可能である。すなわち、
1)ノード識別子の組の全体の順序付けを実現する第1の順序付け基準に応じて経路内のノードの識別子の組をソートする。好ましい第1の順序付け基準は、昇順又は降順の辞書式順序である。
2)順序付けされたノード識別子の組を連結して経路識別子を作成する。
3)経路識別子の組の全体の順序付けを実現する第2の順序付け基準に応じて経路識別子をソートする。好ましい第2の順序付け基準は、昇順又は降順の辞書式順序である。
4)ソートされた経路識別子の組の一方端(最初又は最後)に経路識別子が現れる経路を選択する。効果的には、前述の工程は、順序付けられた経路識別子の組に最初に現れる経路識別子を選択する。
前述のアルゴリズムを一貫して行う、ネットワーク内のノードそれぞれは、同じ順序付け基準を使用し、同じ経路を選択するために、経路識別子の組における同じ同意の位置における経路を選択する。
「辞書式順序」の語は、ノード識別子の組が識別子のサイズの順序に配列されることを意味している。よって、ノード識別子がアルファベットである場合、ノード識別子の組はアルファベット順A、B、C、D等に配列され、ノード識別子が数字である場合、ノード識別子の組は数字順に配列される。明らかに、前述の手法は、ノードをラベリングする何れのやり方にも、識別子のタイプの何れの組み合わせにも対処し得る。例えば、数字及び文字の混合は、文字に対する数字の順序(例えば、最初に数字を、次いで文字を順序付ける)を合意することによって順序付けることが可能である。あるいは、各文字には、その情報交換用米国標準コード(American Standard Code for Information Interchange:ASCII)が与えられ得、ASCIIコードは昇順(降順)にソートすることが可能である。各ノードは、同じ規則を使用して経路のノード識別子を同じやり方で順序付ける。前述のアルゴリズムは、一貫した結果をもたらす。経路(厳密には、経路及びその逆からなる対)とその識別子との間に1対1のマッピングが存在しており、経路識別子の厳密な順序付けが存在している。
もう一度、図6を参照すると、順序付けされた後の、ノードAとノードBとの間の最も上方の経路は、経路識別子014568ABによって表す。同様に、ノードAとノードBとの間の第2の経路はノードA−0−7−9−1−4−8−Bを経由し、このことは、順序付け後、経路識別子014789ABによって表すことが可能である。最後に、ノードAとノードBとの間の(図6の最も下に沿った)第3の経路はノードA−0−7−9−2−3−8−Bを経由し、このことは、順序付け後、経路識別子023789ABによって表すことが可能である。タイブレイク・アルゴリズムは、順序付けられた経路識別子の各要素を合意の方向で比較する。前述の例では、使用される規則は、経路識別子が特定の方向で(例えば、左から右に)比較された場合、順序付けされた経路識別子のうちの最低のものを各ノードが選択するというものである。3つの等コスト経路の順序付けされた経路識別子は、
014568AB
014789AB
023789ABである。
識別子の左側の要素から始めると、3つの経路識別子は全て、「0」で始まる。次の要素は「1」又は「2」であり、よって、最も上から2つの識別子のみを更に考慮に入れればよい。4番目の要素に達すると、「0145」は「0147」よりも小さく、よって、最も上の経路が選択される。IS−IS及びイーサネット(登録商標)における実際のノード識別子は、6つの8ビット・バイトを含み、00−e0−7b−cl−a8−c2などの16進の文字列として通常、記述される。一貫して使用されるという条件で、ノードのニックネームも使用することが可能である。
図7は、異なる順序付け基準の効果を例証するために、単純なネットワーク・トポロジを示す。2つのノードX、Yは、ノード識別子1乃至8を有する4つの等コスト経路によって接続される。考えられる4つの選択肢を次に説明する。
●昇順により、ノードIDをソートする。昇順により、経路IDをソートする。最初の(最小の)経路IDを選択する。各経路におけるノード識別子が、サイズの昇順(例えば、ノード1、7を有する最も上の経路は17となる)で順序付けられた場合、それにより、経路識別子17、28、35、46が得られる。前述の識別子をサイズの昇順に配列し、順序付きリストにおける最初の経路識別子を選択することにより、ノード1及び7を有する最初の(最も上の)経路を選択するという結果になる。
●昇順により、ノードIDをソートする。昇順により、経路IDをソートする。最後の(最大の)経路IDを選択する。この選択肢は、ノード4及び6を有する最後の(最も下の)経路を選択するという結果となる。
●降順により、ノードIDをソートする。昇順により、経路IDをソートする。最初の(最小の)経路IDを選択する。サイズの降順で各経路におけるノード識別子をソートすることにより、経路識別子(71,82,53,64)が得られる。サイズの昇順で前述の経路識別子を配列すると、(53,64,71,82)が得られ、順序付きリストにおける最初の(最小の)経路識別子を選択すると、ノード3及び5を有する3番目の経路を選択するという結果となる。
●降順により、ノードIDをソートする。昇順により、経路IDをソートする。最後の(最大の)経路IDを選択する。この選択肢は、ノード8及び2を有する2番目の経路を選択するという結果となる。
以下に更に説明するように、複数の等コスト経路を選択するために、異なる複数の順序付け及び/又は選択の基準を適用することが望ましい状況が存在している。
これまで、本明細書では、アルゴリズムが局所でないこと、及び、等コスト経路全てが見つかった後にタイブレイクを行うことを仮定している。しかし、分岐するブランチ上のノードのみを考慮に入れることにより、前述のアルゴリズムの局所バージョンが、同じ結果をもたらし得るということが明らかとなった。実際に、タイブレイク結果は、分岐するブランチにおける最小のノード識別子の相対位置にのみ依存する。一貫したタイブレイク・アルゴリズムの第2の実施例は、
1)第1の選択基準を満たす第1の経路の分岐するブランチにおけるノード識別子を見つける。これは、第1の経路のブランチ識別子とみなし得る。
2)第1の選択基準を満たす第2の経路の分岐するブランチにおけるノード識別子を見つける。これは、第2の経路のブランチ識別子とみなし得る。
工程(1)及び(2)によって選択されたブランチ識別子を処理する第2の選択基準を使用して経路の1つを選択する。
として要約することが可能である。
第1の選択基準の好ましい選択肢は、辞書式順序(昇順又は降順の辞書式順序)などの全体の順序付け手法を使用してノード識別子が配列される場合に最初(又は最後)であるノード識別子を見つけるというものである。以下に説明するように、上記手法がブランチにおいて全体のノード識別子の組をまとめ、次いで、上記組を順序付けることは必要でない。その代わりに、上記手法は、辞書式順序の認識を使用してノード識別子の対を反復して比較することが可能である。同様に、第2の選択基準の好ましい選択肢は、辞書式順序(昇順又は降順の辞書式順序)などの全体の順序付け手法を使用してブランチ識別子が配列される場合に最初(又は最後)であるブランチ識別子を見つけるというものである。
もう一度、図7のトポロジを参照するに、ノードXとノードYとの間の4つの等コスト経路は、親ノードXからの4つの等コストの分岐するブランチを表し得る。タイブレイク・アルゴリズムは、4つのブランチのうちの1つを選択する必要がある。考えられる選択肢は4つ存在している。すなわち、
● 各ブランチにおける最小のノードIDを識別する。これは、ブランチ識別子として(1,2,3,4)をもたらす。次いで、ブランチ識別子のうちの最小のものを識別する。このことは、ノード1及び7を有する最初の(最も上の)経路を選択するという結果となる。
● 各ブランチにおける最小のノードIDを識別する。次いで、ブランチ識別子のうちの最大のものを識別する。このことは、ノード4及び6を有する最後の(最も下の)経路を選択するという結果となる。
● 各ブランチにおける最大のノードIDを識別する。これは、ブランチ識別子として(5,6,7,8)をもたらす。次いで、ブランチ識別子のうちの最小のものを識別する。このことは、ノード3及び5を有する経路を選択するという結果となる。
● 各ブランチにおける最大のノードIDを識別する。次いで、ブランチ識別子のうちの最大のものを識別する。この選択肢は、ノード2及び8を有する経路を選択するという結果となる。
以下に更に説明するように、ノードが、複数の等コスト経路を選択するために、異なる複数の順序付け及び/又は選択の基準を適用することが望ましい状況が存在している。
前述のアルゴリズムは、単純な比較により、非常に簡単にかつ効率的に実現することが可能である。図8は別のネットワーク・トポロジを示す。方法の局所バージョンは、ノード13で始まり、ノード15からつながっている分岐する2つの経路の発見に進む。方法は、2つの経路が再び合流するノード16まで別個の2つの経路を探索する。この時点で、方法は、2つの経路毎のノード識別子を検査する。第1の経路の場合、ノード識別子は10、14、17、21であり、第2の経路の場合、ノード識別子は11、12、19、20である。最も低い識別子(10)を有する経路は上側の経路である。経路を比較する2つのやり方を説明する。まず、方法は、分岐する経路毎にノード識別子のリストを維持することが可能であり、前述のリストの要素を比較することが可能である。あるいは、方法は、各ブランチにおいて見つかった最低ノード識別子を追跡して、単に、ノード16からノード15に向けて後戻りすることが可能である。
逆進工程それぞれでは、方法は、その工程で遭遇した新たなノード識別子と、それまで見つかった最低ノード識別子を比較する。最低ノード識別子が記憶される。方法がノード15まで後戻りすると、2つの最低値(上側のブランチにおける10、下側のブランチにおける11)は単に、最低ノード識別子を有する経路を見つけるために互いに比較することが可能である。よって、上側の経路が選択される。
ネットワークにおける最短コスト経路を見つけるための最も一般的なアルゴリズムの1つはダイクストラのアルゴリズム(Dijkstra 59)である。これは、経路の長さが正のホップ毎リンク・コストの和として定義される場合に、グラフ内の点(始点ノード又はルート・ノード)から、考えられる宛先全てへの最短経路を見つけるという問題を解決する。前述の問題は場合によっては、単一始点最短経路問題と呼ばれている。グラフG=(N,L)であって、Nがノードの組であり、Lがそれらを接続するリンクの組であるグラフの場合、ダイクストラのアルゴリズムは、始点ノードからの距離の昇順でノードを訪ねるために、通常、TENTと呼ばれる優先度キューを使用する。ダイクストラのアルゴリズムを実現するために必要なその他のデータ構造は以下の通りである。
距離:始点ノードから各ノードへの最短距離の最善の推定のアレイ。
親:ノード毎の先行ノードのアレイ。
以下の記載では、既知のダイクストラのアルゴリズムを説明し、複数の等コスト経路が発見された場合にタイブレイクを行うよう修正することが可能な態様を説明する。ダイクストラのアルゴリズムは、最も慣用されている最短経路発見アルゴリズムの1つであるため、ここで説明する。しかし、他のアルゴリズムも同様に使用することが可能である。初期化段階は、始点ノード自体以外の各ノードの距離を無限大に設定する。始点ノードの距離はゼロに設定し、その親は、ツリーのルートなので、ヌルに設定される。計算の開始時に、優先度キューは始点ノードのみを含む。アルゴリズムが進むにつれ、ノ―ドが、該ノードへの始点ノードからの経路が見つかった場合に優先度キューに追加される。始点ノードとそれらとの間の最短経路が見つかった後、始点ノードからの距離の昇順でノードが優先度キューから引き出される。始点ノードから到達可能なノードが全て、優先度キューを巡回すると、アルゴリズムは停止する。優先度キューTENTが空きでない間、アルゴリズムは以下の工程を行う。
1)始点ノードに最も近いノードNをTENTにおいて見つけ、それをTENTから除去する。
2)Nに接続されたノード毎に、始点へのノードの距離が、Nをその親にすることによって削減される場合、ノードの親をNに変更し、ノードの距離を新たな距離に設定し、ノードをTENTに追加する。
アルゴリズムが完了すると、Distance(node)は始点ノードからノード(又は、ノ―ドが始点ノードから到達可能でない場合、無限大)への最短距離を含み、Parent(node)は、(始点ノード、及び始点ノードから到達可能でないノードを除き、)スパニング・ツリー内のノードの先行ノードを含む。親の変更が実際にノードの距離を削減する場合にのみ、ノードの親が更新される。これは、始点ノードと特定の他のノードとの間に複数の等コスト最短経路が存在する場合、アルゴリズムの実行中に遭遇する最初のもののみが考慮に入れられるということを意味する。
上記工程は、ダイクストラのアルゴリズムの通常の工程である。この時点で、一貫したタイブレイク工程を追加するようダイクストラが修正される。上記工程2は以下のように修正される。すなわち、
2)ノードNに接続されたノード毎に、以下を行う。
2a)始点へのノードの距離が、Nをその親にすることによって削減される場合、ノードの親をNに変更し、ノードの距離を新たな距離に設定し、ノードをTENTに追加する。
2b)Nをその親にした後に、始点ノードへのノード距離が同じに留まる場合、ノードの親を変更すべきかを決定するためにタイブレイク・アルゴリズムを呼び出す。
分岐する2つのブランチの合流点に到達すると、タイブレイク・アルゴリズムが呼び出される。例えば、図8に示すトポロジを検討するに、ダイクストラのアルゴリズムがノード13で始まった場合、ノード15から延びる、分岐するブランチ(ノード10、14、17、21を有する上方ブランチ、及びノード11、12、19、2)を有する下方ブランチ)が発見され、前述の分岐するブランチはノード16で合流する。2つのブランチ間で選択するようタイブレイク・アルゴリズムが呼び出されるのはノード16においてである。
以下の擬似コードは、TENTの組の優先度キューの実現形態を使用した、一貫したタイブレイクを備えた修正されたダイクストラ・アルゴリズムの実現形態を示す。エンキュー(Enqueue)処理は2つの引数(すなわち、キュー及びノード)をとり、ノードを、始点ノードからのその距離に応じて適切なキュー位置に入れる。デキュー(Dequeue)処理は、キューの先頭におけるノード(すなわち、始点ノードからの最小の距離を有するノード)をキューから除去する。
Figure 2015520997
タイブレイク・アルゴリズムは、ノードの現在の親及び新たな候補の親それぞれから始めて、分岐する点に戻るまで、2つの等コスト経路を後戻りすることによって動作する。分岐する2つの経路が、異なるホップ数を有し得るということは、話をやや複雑にし得る。未知の、等しくないホップ数だけ、2つの経路を後戻りしなければならないからである。前述の問題は、常に、2つの経路のうちの長い方を最初に後戻りし、又は、等コストを有している場合、2つの経路を同時に後戻りすることによって解決することが可能である。あるいは、前述の問題は、同じホップ数を有する場合にのみ、2つの経路が考慮に入れられることを確実にすることにより、完全になくすことが可能である。このことは、経路コストにホップ数を組み入れることにより、又は一次のタイブレイカとしてホップ数を使用することにより、簡単に実現される。
以下の擬似コードは、2つの経路が同じループ数を有し(、かつ、したがって、それらの分岐するブランチもそうである)と仮定するタイブレイク・アルゴリズムの実現形態を示す。タイブレイク関数は、等しい2つの経路の端における2つのノードをとり、そのうちの一方を返して、選択したのは2つの経路のうちのどれかを示す。
Figure 2015520997
アルゴリズムを行わなければならない頻度はアプリケーションに依存する。PLSBは基本的に、全点対最短経路(場合によっては、それらの部分集合)を計算する必要がある。この場合、ダイクストラのアルゴリズムは、ネットワーク内のノード全て(厳密には1つを除く全て)について実行する必要がある。フロイドのアルゴリズムは、全点対最短距離を計算するので、一度のみ実行されればよい。他のアプリケーションは、より少数の経路の計算しか必要でないことがあり得る(例えば、1つの最短経路のみが必要な場合、経路の端点の一方を始点として、ダイクストラのアルゴリズムを1度だけ実行すればよい)。
図9は、リンクによって相互接続されたノードA乃至H、Jのネットワークの例を示す。
リンク毎に、そのリンクに関連付けられたメトリックを、リンク上の整数値として示す。前述のネットワークにおけるノードAとノードBとの間に、別々の6つの等コスト最短経路が存在している。これらは、それらそれぞれの長さ及び経路識別子とともに以下の表に示す。
Figure 2015520997
前述の6つの経路は全て、同じ長さ10を有する。タイブレイク・アルゴリズムの非局所バージョンは、最小の経路識別子(ABCDE)を有するもの(すなわち、経路AFCHB)を選択する。この節の残りの部分では、ダイクストラのアルゴリズムの実行中に等コストの経路及びサブ経路が発見されるにつれ、局所タイブレイク決定のみを行うことにより、タイブレイク・アルゴリズムの局所バージョンがどのようにして同じ結果に到達するかを示す。ダイクストラのアルゴリズムは、ネットワーク内のノードの親(又は先行するノード)及び距離のテ―ブルを初期化する。距離は全て、距離がゼロに設定される始点ノード以外は、無限大に設定される。親はこの段階では定義されていない。
Figure 2015520997
ダイクストラのアルゴリズムは更に、始点ノードAのみを含めるよう優先度キューを初期化する(すなわち、A:TENT=[(A,0)])。
ダイクストラのループの1回目の反復は、TENTにおける最初かつ唯一のノード(すなわち、ノードA)を選択する。次いで、ノードAの近傍(すなわち、ノードF及びG)毎に、次いで、始点へのその距離を更新し、ノードAをそれらの親とする。最終的に、前述の2つのノードが、TENT優先度キューに追加される。このダイクストラのアルゴリズムの1回目の反復中に、距離及び親のテーブルは、
Figure 2015520997
となる。前述の1回目の反復の終了時に、優先度キューは、TENT=[(G,1),(F,2)]となる。
ダイクストラ・ループの2回目の反復により、最小の距離を有するノード(すなわち、ノードG)が優先度キューから除去される。これにより、まだ処理されていないGの近傍の2つ(すなわち、ノードC及びD)が更新され、それらが優先度キューに加えられる。
Figure 2015520997
2回目の反復の終了時に、優先度キューは、TENT=[(F,2),(D,4),(C,5)]となる。ダイクストラ・ループの3回目の反復により、ノードFが優先度キューから除去される。これにより、ノードFの2つの近傍(すなわち、ノードC及びE)が更新され、ノードEが優先度キューに追加される(ノードCはそこに既に存在している)。ノードCの距離は変わらないが、ノードFを通るノードAとノードCとの間の新たな候補の等経路が存在している。したがって、ノードFを通る前述の新たな経路と、ノードGを通る旧いものとの間で選ぶようタイブレイク・アルゴリズムを呼び出さなければならない。このことは図10に示す。タイブレイク・アルゴリズムは、ノードCの親の新たな候補であるノードF、及びその旧い親であるノードGによって呼び出される。oldMinは旧い親の識別子Gに設定され、newMinは、新たな親の識別子Fに設定される。ノードF及びGは同じ親(ノードA)を共有するので、後戻りループは実行されない。タイブレイクは単に、oldMin及びnewMinを比較し、newMin=F<G=oldMinであるので、ノードFがノードCの新たな親として選択される。
Figure 2015520997
3回目の反復の終了時に、優先度キューは、TENT=[(D,4),(E,4),(C,5)]
となる。ダイクストラ・ループの4回目の反復により、距離4を有する2つのノードのうちの1つ(例えば、ノードD)が優先度キューから除去される。Dの2つの近傍のうち、1つのみ(すなわち、ノードH)が更新され、優先度キューに追加される。
Figure 2015520997
4回目の反復の終了時に、優先度キューは、TENT=[(E,4),(C,5),(H,6)]となる。ダイクストラ・ループの5回目の反復により、ノードEが優先度キューから除去される。Eの2つの近傍のうち、1つのみ(すなわち、ノードJ)が更新され、優先度キューに追加される。
Figure 2015520997
5回目の反復の終了時に、優先度キューは、TENT=[(C,5),(H,6),(J,6)]となる。ダイクストラ・ループの6回目の反復により、ノードCが優先度キューから除去される。Cの近傍のうちの2つ(すなわち、ノードJ及びH)は、ノードA乃至Cへ等コスト経路を有する。したがって、タイブレイク・アルゴリズムは、ノードJ及びHそれぞれについて2回呼び出されなくてはならない。
ノードJの場合、タイブレイク・アルゴリズムは、新たな潜在的な親(すなわち、ノードC)、及び旧い親(すなわち、ノードE)によって呼び出される。oldMinは旧い親の識別子Eに設定され、newMinは新たな親の識別子Cに設定される。前述の2つのノード(すなわち、E及びC)は同じ親(ノードF)を共有するので、後戻りループは実行されない。タイブレイクは単に、oldMin及びnewMinを比較し、newMin=C<E=oldMinであるので、新たな親が選択される。したがって、ノードJの親はノードCによって置き換えられる。これは図11に示す。
ノードHの場合、タイブレイク・アルゴリズムは、新たな潜在的な親(すなわち、ノードC)、及び旧い親(すなわち、ノードD)によって呼び出される。oldMinは旧い親の識別子Dに設定され、newMinは新たな親の識別子Cに設定される。前述の2つのノードは異なる親を有するので、何れの経路も1ホップ分更に後戻りしなければならない。Dの親はGであり、G>oldMin(=D)であるため、oldMinは変わらない。Cの親はFであり、F>newMin(=C)であるため、newMinは変わらない。F及びGは同じ親(すなわち、ノードA)を共有するので、後戻りループは停止する。タイブレイク・アルゴリズムは次いで、oldMin及びnewMinを比較し、newMin=C<D=oldMinであるので、ノードHの新たな親になるようノードCが選択される。このことは図12に示す。
Figure 2015520997
6回目の反復の終了時に、優先度キューは、TENT=[(H,6),(J,6)]となる。
ダイクストラ・ループの7回目の反復により、距離6を有する2つのノードのうちの1つ(例えば、ノードH)が優先度キューから除去される。Hの近傍のうち、1つのみ(すなわち、ノードB)が更新され、優先度キューに追加される。
Figure 2015520997
7回目の反復の終了時に、優先度キューは、TENT=[(J,6),(B,10)]となる。ダイクストラ・ループの8回目の反復により、ノードJが優先度キューから除去される。Jの近傍のうち、ノードBのみを更新すればよい。その距離は変わらないが、ノードJを通るノードA及びノードB間の新たな候補の等経路が存在している。
タイブレイク・アルゴリズムは、ノードBの新たな潜在的な親(すなわち、ノードJ)、及び旧い親(すなわち、ノードH)によって呼び出される。oldMinは旧い親の識別子Hに設定され、newMinは新たな親の識別子Jに設定される。前述の2つのノード(すなわち、H及びJ)は同じ親(ノードC)を共有するので、後戻りループは実行されない。タイブレイクは単に、oldMin及びnewMinを比較し、oldMin=H<J=newMinであるので、旧い親が選択され、ノードBの親は同じままである。
Figure 2015520997
8回目の反復の終了時に、優先度キューは、TENT=[(B,10)]となる。
最後に、ダイクストラのループの最後の反復により、ノードBがキューから除去され、アルゴリズムは終結する。Bの近傍の何れも更新することが可能でないからである(ノードBは、始点ノードAから最も遠いノードである)。
ノードAからノードBへの最短経路の逆は、ノードBで始め、ノードAに達するまで親をたどり、親テーブルから直接読み出し得る(BHCFA)。局所のタイブレイク・アルゴリズムによって選択されるノードAからノードBへの最短経路はしたがって、その逆経路である(AFCHB)。
ノードAとノードBとの間には6つの等コスト経路が存在しているが、局所タイブレイクは、ダイクストラのアルゴリズムの実行中に、合計4回だけしか、呼び出されていない。その最初の呼び出しでは、タイブレイク・アルゴリズムは、サブ経路AFCとサブ経路AGCとの間で選ばなければならなかった。それはサブ経路AFCを選択し、それにより、2つの経路AGCJB及びAGCHBを更なる考慮から除外する。その2回目の呼び出しでは、タイブレイク・アルゴリズムは、サブ経路AFCJとサブ経路AFEJとの間で選ばなければならなかった。それにより、サブ経路AFCJが選択され、それにより、第3の経路(AFEJB)が更なる考慮から除外される。その3回目の呼び出しでは、タイブレイク・アルゴリズムは、サブ経路AGDHとサブ経路AGCHとの間で選ばなければならなかった。それにより、サブ経路AGCHが選択され、それにより、第4の経路(AGDHB)が更なる考慮から除外されている。最後に、その4回目の呼び出しでは、タイブレイク・アルゴリズムは、サブ経路AFCHBとサブ経路AFCJBとの間で選ばなければならなかった。それにより、第5の経路(すなわち、AFCJB)が除去され、最終の解決策として、経路AFCHBが選択されている。
負荷分散のための等コストのマルチ経路の選択
多くのネットワーキング・アプリケーションでは、多くの場合、特に、一貫した態様で実現することが可能である場合、いくつかの等コスト経路を使用することが効果的であり得る。タイブレイク・アルゴリズムの2つの変形を使用することにより、ノードの対間の2つの等コスト経路を、それらが存在する場合に使用することが可能である。図13は、エッジ・ノードX及びYがコア・ノードA、B、C、及びDの完全なメッシュに対してそれぞれデュアル・ホーミングされた通常のネットワーキングのシナリオを示す。冗長性のために、ノードXがコア・ノードA及びBに接続され、ノードYがノードC及びDに接続されて、エッジ・ノードはそれぞれ、2つのコア・ノードに接続される。コア・ノードはそれぞれ、その他のコア・ノード全てに接続される。例えば、ノードAはB、C、及びDに接続される。前述のトポロジの問題は、ノード対間で1つの最短経路のみが使用された場合、通常の状況下で、多くのアクセス容量が浪費されるという点である。複数の等コスト最短経路が2つのノード間で存在している場合、タイブレイク・アルゴリズムの2つの変形を使用して、厳密に2つの経路を一貫して選択するために使用することが可能である。ノード全てによって合意された規則は何れも、等コスト経路間で選択を行うために使用することが可能である。特に好都合な規則の1つには、最小の識別子を有する第1の経路及び最大の識別子を有する第2の経路を選択するというものがある。図13では、コア・ノードは完全なメッシュ型であるので、エッジ・ノードX及びY間で4つの等コスト経路、すなわち、(X,A,C,Y)、(X,A,D,Y)、(X,B,C,Y)、(X,B,D,Y)が存在している。タイブレイク・アルゴリズムの2つの変形はこれらの2つの経路、すなわち、
(X,min(A,B),min(C,D),Y)及び
(X,max(A,B),max(C,D),Y)
を選択する。
ノード識別子は一意であるため、min(A,B)!=max(A,B)であり、min(C,D)!=max(C,D)である。これらの2つの経路は最大多様性を有する。これらは、端点のみを共通に有している。図13では、選択された2つの経路は、(X,A,C,Y)及び(X,B,D,Y)である。
異なるホップ数を有する等コスト最短経路のタイブレイク
第2の実施例として上述した局所のタイブレイク手法の4つの変形は以下のルールによって規定される。
1.最小のノード識別子を含むブランチを選択する。
2.最小のノード識別子を含まないブランチを選択する。
3.最大のノード識別子を含むブランチを選択する
4.最大のノード識別子を含まないブランチを選択する。
以上規定したように、4つの変形は全て、等しくない数のノードを経由する等コスト経路の場合に効果的である。しかし、第1の実施例として上述した大局タイブレイク手法は、等コスト経路が、異なる数のノードを経由する場合には効果的でないことがあり得る。前述の状況の1つを図14に示す。リンクA−C、C−B、及びB−Dそれぞれにはコスト1を割り当て、リンクA−Bにはコスト2を割り当てる。よって、経路A−C−B及びA−Bはそれぞれ、コスト2を有し、等コスト経路である。
上記手法を使用して、経路A−Bの識別子であるABが辞書式に、経路A−C−Bの識別子であるABCよりも先に順序付けられる。しかし、リンクB−Dを加えると、経路A−C−B−D及びA−B−Dはそれぞれ、コスト3を有し、これらも等コスト経路である。上記手法を使用して、経路A−C−B−Dの識別子であるABCDが辞書式に、ABDより先に順序付けられる。よって、経路A−C−Bよりも経路A−Bを選ぶタイブレイク・アルゴリズムは更に、経路A−B−Dよりも経路A−C−B−Dを選び、その結果は、上記局所性の特性と一貫していない。
上記大局タイブレイク手法の4つの変形は、以下のルールによって規定される。すなわち、
1. 昇順でノード識別子をソートして経路識別子を形成し、経路識別子を辞書式にソートし、ソートされた経路識別子のうちの識別子が最初の経路を選択する。
2. 昇順でノード識別子をソートして経路識別子を形成し、経路識別子を辞書式にソートし、ソートされた経路識別子のうちで識別子が最後の経路を選択する。
3. 降順でノード識別子をソートして経路識別子を形成し、経路識別子を辞書式にソートし、ソートされた経路識別子のうちで識別子が最初の経路を選択する。
4. 降順でノード識別子をソートして経路識別子を形成し、経路識別子を辞書式にソートし、ソートされた経路識別子のうちで識別子が最後の経路を選択する。
以上規定したように、大局タイブレイク・アルゴリズムの変形3及び4は、等しくない数のノードを経由する等コスト経路の場合に効果的であるが、変形1及び2は常に、一貫した結果をもたらす訳でない。
大局タイブレイク手法の変形1及び2は、等コスト経路の1つの経路識別子が等コスト経路のうちの別のものの経路識別子のプレフィックスである場合には、適切に機能する訳でない。経路選択を行うことが可能になる前に、より短い経路識別子に対して、ノ―ド識別子がなくなるので問題が生じる。
前述の問題に対処するために、より短い経路識別子は、比較する対象の等コスト経路全ての経路識別子が同じ数のノード識別子を有するように、ダミーのノード識別子を加えることによってパディングする(埋める)ことができる。しかし、パディングは、経路識別子を形成するために使用される順序付け基準と一貫しているべきである。
例えば、等コスト経路識別子が全て、同じ長さを有している状態になるまで、他の等コスト経路よりも少ないノードを有する経路の識別子の終端に、何れのノード識別子よりも低い値が与えられるヌル識別子を加えることは当然であるように思われ得る。このことは、例えば、辞書における単語を順序付ける場合に採用されている規則である。しかし、このことは値の昇順での各経路におけるノードの識別子のソートと一貫していない。
各経路におけるノード識別子が、経路識別子を導き出すために値の昇順でソートされた場合、等コスト経路識別子が全て、同じ長さを有する状態になるまで、何れのノード識別子よりも高い値が与えられる特別な識別子を、他の等コスト経路識別子よりも少ないノード識別子を有する経路識別子の終端に加えるべきである。あるいは、何れのノード識別子よりも低い値が与えられるヌル識別子には、等コスト経路識別子が全て、同じ長さを有する状態になるまで、他の等コスト経路識別子よりも少ないノード識別子を有する経路識別子の先端に加え得る。
同様に、各経路におけるノード識別子が、経路識別子を導き出すために値の降順でソートされた場合、等コスト経路識別子全てが同じ長さを有する状態になるまで、何れのノード識別子よりも低い値が与えられるヌル識別子を、他の等コスト経路識別子よりも少ないノード識別子を有する経路識別子の終端に加えるべきである。これは通常の辞書式順序付けである。あるいは、何れのノード識別子よりも高い値が与えられる特別の識別子を、等コスト経路識別子全てが同じ長さを有する状態になるまで、他の等コスト経路識別子よりも少ないノード識別子を有する経路識別子の先端に加え得る。
要約すれば、別々のノードを経由する等コスト経路を扱うよう一般化された大局タイブレイク手法の8つの変形が存在する。
Figure 2015520997
経路識別子を導き出すために値の昇順で各経路におけるノード識別子がソートされる場合に所望の結果を実現するやり方がいくつか存在している。例えば、等コスト経路識別子全てが同じ長さを有する状態になるまで特別の識別子をその終端に加えることにより、より少ないノード識別子を有する経路識別子をパディングする代わりに、辞書式に経路識別子を順序付ける前に、より短い経路識別子の終端に、何れのノード識別子よりも高い値が与えられる単一の特定の識別子を加えることで十分である。同じ結果を実現するための更に別にやり方には、第1の順序付け基準として経路識別子の辞書式比較を行うが、辞書式比較により、決定を行う前に経路識別子の1つがなくなった場合にのみ、二次的な順序付け基準としてホップの数を使用するということがある。すなわち、経路識別子の1つが、その他の経路識別子のプレフィックスである場合、より長い識別子を有する経路が、より短い識別子を有する経路の前にくると認められる。等しい長さの文字列の辞書式順序付けは、一次的な順序付け基準として使用され、経路識別子の長さ(すなわち、経路におけるホップの数)は、辞書式比較により、決定を行うことが可能である状態になる前に経路識別子のうちの1つがなくなった場合、二次順序付け基準として使用される。この場合、より大きなホップ数を有する経路が、より小さいホップ数を有する経路より前に来ると認められる。
逆に、等コスト経路識別子が全て、同じ長さを有している状態になるまで、ヌル識別子をその先端に加えることにより、より少ないノード識別子を有する経路識別子をパディングする代わりに、単に、より大きな数のホップを有する経路よりも先に、より小さな数のホップを有する経路を順序付けることにし得る。経路識別子の辞書式順序付けはその場合、同じ数のホップを有する経路の二次的な順序付け基準として使用される。この場合、より小さいホップ数を有する経路が、より大きなホップ数を有する経路より前に来ると認められる。経路識別子の長さが一次的な順序付け基準として使用され、すなわち、より少ないホップを有する経路は常に、より多いホップを有する経路に先行し、辞書式順序付けは、同じ数のホップを有する経路の二次的な順序付け基準として使用される。
同様に、経路識別子を導き出すために値の降順で各経路におけるノード識別子がソートされる場合に所望の結果を実現するやり方がいくつか存在している。例えば、等コスト経路識別子全てが同じ長さを有する状態になるまでヌル識別子をその終端に加えることにより、より少ないノード識別子を有する経路識別子をパディングする代わりに、辞書式に経路識別子を順序付ける前に、より短い経路識別子の終端に、何れのノード識別子よりも低い値が与えられる単一のヌル識別子を加えることで十分である。同じ結果を実現するための更に別にやり方には、第1の順序付け基準として経路識別子の辞書式比較を行うが、辞書式比較により、決定を行う前に経路識別子の1つがなくなった場合にのみ、二次的な順序付け基準としてホップの数を使用するということがある。すなわち、経路識別子の1つが、その他の経路識別子のプレフィックスである場合、より短い識別子を有する経路が、より長い識別子を有する経路の前にくると認められる。等しい長さの文字列の辞書式順序付けは、一次的な順序付け基準として使用され、経路識別子の長さ(すなわち、経路におけるホップの数)は、辞書式比較が決定を行うことが可能である状態になる前に経路識別子のうちの1つがなくなった場合、二次的な順序付け基準として使用される。この場合、より小さなホップ数を有する経路が、より大きなホップ数を有する経路より前に来ると認められる。
逆に、等コスト経路識別子が全て、同じ長さを有している状態になるまで、特別の識別子をその先端に加えることにより、より少ないノード識別子を有する経路識別子をパディングする代わりに、単に、より小さい数のホップを有する経路よりも先に、より大きな数のホップを有する経路を順序付けることにし得る。経路識別子の辞書式順序付けが次いで、同じ数のホップを有する経路の二次的な順序付け基準として使用される。この場合、より大きいホップ数を有する経路が、より小さなホップ数を有する経路より前に来ると認められる。経路識別子の長さが一次的な順序付け基準として使用され、すなわち、より多いホップを有する経路は常に、より少ないホップを有する経路に先行し、辞書式順序付けは、同じ数のホップを有する経路の二次的な順序付け基準として使用される。
異なる数のノードを経由する等コスト経路を扱うよう一般化された大局タイブレイク手法の8つの変形は、経路識別子の長さ、及び経路識別子自体が経路識別子の完全な順序付けを確立するために使用される修正されたいくつかの辞書式順序付けによって表現することが可能である。以下の表3では、一次的な順序付け基準として使用される辞書式順序付けは、従来の辞書式順序付けの限定バージョンである。一方の経路識別子が他方の経路識別子のプレフィクスである場合、決定を行わない。
Figure 2015520997
一次的な順序付け基準が辞書式順序付けであり、共通のプレフィクスを共有する文字列が長さの昇順でソートされる伝統的な辞書式順序付けは、変形3及び4に対応する。変形1及び2は、共通のプレフィックスを共有する文字列が長さの降順でソートされる修正された辞書式順序に対応する。変形5乃至8は、文字列の長さが一次的な順序付け基準であり、辞書式順序付けが、等しい長さの文字列に対する二次的な順序付け基準として使用される、文字列を順序付ける方法に関する。
一次的なタイブレイク手法としてのホップ数
異なる長さの経路識別子の完全な順序付けをもたらすためのフレームワークを確立すると、第1のレベルのタイブレイカとしてホップ数(すなわち、経路識別子の長さ)を使用する効果を明らかにすることが可能である。場合によっては、経路識別子の長さを使用して行われる最初のタイブレイクは、最終的に選択されたであろう経路を考慮から除外するものでない。すなわち、ホップ数に基づく第1のタイブレイクは、最終結果に影響を及ぼすものでない。しかし、第1のレベルのタイブレイクが、通常選択されたであろう経路を取り除いた場合、新たなタイブレイクの変形が得られる。
第1のレベルのタイブレイクが、最小数又は最大数のホップを備えた等コスト経路のみを考慮に入れることによって行われた場合、辞書式順序付けが、経路識別子の唯一の順序付け基準であるので、変形1乃至4は変形5乃至8と同じ結果をもたらす。すなわち、変形1乃至4の二次的な基準、及び変形5乃至8の一次的な基準は全て、機能しなくなる。タイブレイクに入力される等コスト経路の識別子は全て、同じ最大長又は最小長を共有するからである。変形5乃至8は常に、最小数のホップを有する経路を選択し、したがって、最小数のホップを有する等コスト経路を選択する第1のレベルのタイブレイクによって影響を受けない。これらは、上記第1の実施例の2つの変形に対応する。逆に、変形6乃至7の何れか一方が続く最小数のホップを備えた等コスト経路を選択することにより、第1のレベルのタイブレイクが行われた場合、第1の実施例の他の2つの変形が得られる。同様に、変形6乃至7は常に、最大数のホップを有する経路を選択し、したがって、最大数のホップを有する等コスト経路を選択する第1のレベルのタイブレイクによって影響を受けない。
要約すれば、8つの変形のうちの最初の2つは、上記第1の実施例に変形でない。変形3及び4は、従来の辞書式順序付けが、等しくない長さの経路識別子に適用される第1の実施例の変形に対応する。最後の4つの変形は、最大数のホップを有する経路のみを選択することにより、第1のレベルのタイブレイクが行われる第1の実施例の変形に数学的に等価である。以下の大局タイブレイクの12の変形は、ノード識別子及び経路識別子の順序付け基準によって表現することが可能である。
上記表4では、一次的な順序付け基準として使用される辞書式順序付けは、従来の辞書式順序付けの限定バージョンである。一方の経路識別子が他方の経路識別子のプレフィクスである場合、決定を行わない。この場合、経路識別子の長さに基づいた二次的な順序付け基準を呼び出さなければならない。
Figure 2015520997
大局タイブレイクの4つの変形の各群は、局所タイブレイクの4つの変形に対応する。大局タイブレイク変形1乃至4は、等コスト最短経路が全て、それらのホップ数にかかわらず、考慮に入れられる場合に対応する。変形5乃至8は、最小数のホップを有する等コスト最短経路のみが最短経路とみなされる場合に対応する。変形9乃至12は、最大数のホップを有する等コスト最短経路のみが最短経路とみなされる場合に対応する。
説明を明瞭にするために、上記説明は、文字列の比較が左から右に行われる、経路識別子の辞書式順序付け及びその変形に基づく。文字列の比較が右から左に行われる逆辞書式順序付けにより、必要に応じて変更を加えて、同じタイブレイク変形を説明することが可能である。実際に、考えられる経路識別子全ての曖昧でない順序付けをもたらす、経路識別子を順序付ける何れの方法も本発明の趣旨から逸脱しない限り、使用することが可能である。
本発明は、本明細書及び特許請求の範囲に記載の実施例に限定されず、上記実施例は、本発明の範囲から逸脱しない限り、修正又は変形し得る。

Claims (20)

  1. パケット転送ネットワークのノードにおいてパケットを転送するうえで使用するための転送情報を決定する方法であって、前記ネットワークのノードはそれぞれ、一意のノード識別子を有し、前記方法は、
    前記ネットワークの第1のノードと前記ネットワークの第2のノードとの間の最低コスト経路を決定する工程と、
    複数の最低コスト経路が実質的に等しいコストを有する旨を決定する工程と、
    前記実質的に等しいコストを有する複数の最低コスト経路から最低コスト経路を選択する工程であって、前記選択される最低コストが、
    最低コスト経路毎に、個別の経路識別子を導き出すために第1の順序付け基準に応じて前記最低コスト経路によって経由されるノードに割り当てられたそれぞれのノード識別子をソートする工程と、
    第2の順序付け基準に応じて経路識別子を順序付ける工程と、
    前記順序付けられた経路識別子の一方端においてその経路識別子を有する最低コスト経路を選択する工程と
    によって選択される経路である工程と、
    前記第1の順序付け基準及び前記第2の順序付け基準は、
    (1)前記第1の順序付け基準は、昇順の順序付けであり、前記第2の順序付け基準は、第1の経路の前記経路識別子が、第2の経路の前記経路識別子のプレフィクスである場合、前記第1の経路の前に前記第2の経路を順序付ける修正された辞書式順序付けであること、及び
    (2)前記第1の順序付け基準は、降順の順序付けであり、前記第2の順序付け基準は、第1の経路の前記経路識別子が、第2の経路の前記経路識別子のプレフィクスである場合、前記第2の経路の前に前記第1の経路を順序付ける辞書式順序付けであること
    のうちから選択される条件を満たす方法。
  2. 請求項1記載の方法であって、最低コスト経路を選択する工程は、
    最低コスト経路毎に、個別の経路識別子を導き出すために昇順の順序付け基準に応じて前記最低コスト経路によって経由されるノードに割り当てられたそれぞれのノード識別子をソートする工程と、
    第1の経路の前記経路識別子が第2の経路の前記経路識別子のプレフィックスである場合に、前記第1の経路の前に前記第2の経路を順序付ける修正された辞書式順序付け基準に応じて前記経路識別子を順序付ける工程と、
    前記順序付けられた経路識別子の一方端においてその経路識別子を有する最低コスト経路を選択する工程と
    を含む方法。
  3. 請求項2記載の方法であって、最低コスト経路毎に個別の経路識別子を導き出すために昇順の順序付け基準に応じて前記最低コスト経路によって経由されるノードに割り当てられたそれぞれのノード識別子をソートする工程は、昇順の辞書式順序付け基準に応じて前記それぞれのノード識別子をソートする工程を含む方法。
  4. 請求項1記載の方法であって、最低コスト経路を選択する工程は、
    最低コスト経路毎に、個別の経路識別子を導き出すために降順の順序付け基準に応じて前記最低コスト経路によって経由されるノードに割り当てられたそれぞれのノード識別子をソートする工程と、
    第1の経路の前記経路識別子が第2の経路の前記経路識別子のプレフィックスである場合に、前記第2の経路の前に前記第1の経路を順序付ける辞書式順序付け基準に応じて前記経路識別子を順序付ける工程と、
    前記順序付けられた経路識別子の一方端においてその経路識別子を有する最低コスト経路を選択する工程と
    を含む方法。
  5. 請求項4記載の方法であって、最低コスト経路毎に個別の経路識別子を導き出すために降順の順序付け基準に応じて前記最低コスト経路によって経由されるノードに割り当てられたそれぞれのノード識別子をソートする工程は、降順の辞書式順序付け基準に応じて前記それぞれのノード識別子をソートする工程を含む方法。
  6. 請求項1記載の方法であって、
    前記最低コスト経路のうちの少なくとも1つが最大数のノードを経由し、前記最低コスト経路のうちの少なくとも他の1つが最大数のノードよりも少ないノードを経由し、
    前記複数の最低コスト経路から最低コスト経路を選択する工程は、
    最低コスト経路毎に、個別の経路識別子を導き出すために第1の順序付け基準に応じて前記最低コスト経路によって経由されるノードに割り当てられたそれぞれのノード識別子をソートする工程と、
    前記最大数のノードよりも少ないノードを経由する最低コスト経路毎に、更なる少なくとも1つの識別子を対応する経路識別子に加え、前記加えることは、前記第1の順序付け基準と一貫しており、
    第2の順序付け基準に応じて前記経路識別子を順序付ける工程と、
    前記順序付けられた経路識別子の一方端において経路識別子を有する最低コスト経路を選択する工程と
    を含む方法。
  7. 請求項6記載の方法であって、更なる少なくとも1つの識別子を加える工程は、
    前記第1の順序付け基準が昇順の順序付けである場合、更なる少なくとも1つの識別子を加える工程であって、更なる識別子はそれぞれ、ノード識別子の全てよりも高いと認められ、
    前記第1の順序付け基準が降順の順序付けである場合、更なる少なくとも1つの識別子を加える工程であって、更なる識別子はそれぞれ、ノード識別子の全てよりも低いと認められる方法。
  8. 請求項7記載の方法であって、少なくとも1つの更なる識別子を加える工程は、各経路識別子が、最大ノード数よりも少ないノードを経由する最低コスト経路毎に経路識別子それぞれに更なる識別子を、最大ノ―ド数に等しい数の識別子を有する状態になるまで加える工程を含む方法。
  9. 請求項7記載の方法であって、
    前記第1の順序付け基準は昇順の順序付け基準であり、
    少なくとも1つの識別子を加える工程は、何れのノード識別子よりも大きいと認められた値を有する少なくとも1つの更なる識別子を、最大ノード数よりも少ないノードを経由する最低コスト経路毎に前記個別の経路識別子の終端に加える工程を含む方法。
  10. 請求項9記載の方法であって、前記第1の順序付け基準は、昇順の辞書式順序付け基準である方法。
  11. 請求項7記載の方法であって、
    前記第1の順序付け基準は降順の順序付け基準であり、
    少なくとも1つの識別子を加える工程は、何れのノード識別子よりも低いと認められた値を有する少なくとも1つの更なる識別子を、前記最大ノード数よりも少ないノードを経由する最低コスト経路毎に前記個別の経路識別子の終端に加える工程を含む方法。
  12. 請求項11記載の方法であって、前記第1の順序付け基準は、降順の辞書式順序付け基準である方法。
  13. 請求項7記載の方法であって、
    前記第1の順序付け基準は昇順の順序付け基準であり、
    少なくとも1つの識別子を加える工程は、何れのノード識別子よりも低いと認められた値を有する更なる識別子を、前記最大ノード数よりも少ないノードを経由する最低コスト経路毎に前記個別の経路識別子の先端に、経路識別子全てが共通の数の識別子を有する状態になるまで加える工程を含む方法。
  14. 請求項13記載の方法であって、前記第1の順序付け基準は、昇順の辞書式順序付け基準である方法。
  15. 請求項7記載の方法であって、
    前記第1の順序付け基準は降順の順序付け基準であり、
    少なくとも1つの識別子を加える工程は、何れのノード識別子よりも大きいと認められた値を有する更なる識別子を、前記最大ノード数よりも少ないノードを経由する最低コスト経路毎に前記個別の経路識別子の先端に、経路識別子全てが共通の数の識別子を有する状態になるまで加える工程を含む方法。
  16. 請求項15記載の方法であって、前記第1の順序付け基準は、降順の辞書式順序付け基準である方法。
  17. パケット転送ネットワークの転送ノードにおいてパケットを転送するうえで使用するための転送情報を決定する方法であって、前記ネットワークのノードはそれぞれ、一意のノード識別子を有し、前記方法は、
    前記ネットワークの第1のノード及び第2のノード間の最低コスト経路を決定する工程と、
    複数の最低コスト経路が実質的に等しいコストを有すると決定する工程であって、前記最低コスト経路の少なくとも1つは最大数のノードを経由し、前記最低コスト経路の少なくとも別の1つは前記最大数のノードよりも少ないノードを経由する工程と、
    最低コスト経路毎に、個別の経路識別子を導き出すために第1の順序付け基準に応じて前記最低コスト経路によって経由されるノードに割り当てられたそれぞれのノード識別子をソートする工程と、
    前記最大数のノードよりも少ないノードを経由する最低コスト経路毎に、更なる少なくとも1つの識別子を対応する経路識別子に加える工程であって、該加える工程は、前記第1の順序付け基準と一貫している工程と、
    第2の順序付け基準に応じて経路識別子を順序付ける工程と、
    前記順序付けられた経路識別子の一方端において経路識別子を有する最低コスト経路を選択する工程とを含む方法。
  18. 請求項17記載の方法であって、更なる少なくとも1つの識別子を加える工程は、
    前記第1の順序付け基準が昇順の順序付けである場合、更なる少なくとも1つの識別子を加える工程であって、更なる識別子はそれぞれ、ノード識別子の全てよりも高いと認められる工程と、
    前記第1の順序付け基準が降順の順序付けである場合、更なる少なくとも1つの識別子を加える工程であって、更なる識別子はそれぞれ、ノード識別子の全てよりも低いと認められる工程と
    を含む方法。
  19. 請求項18記載の方法であって、少なくとも1つの更なる識別子を加える工程は、各経路識別子が、前記最大ノード数より少ないノードを経由する最低コスト経路毎に経路識別子それぞれに更なる識別子を、最大ノ―ド数以上の数の識別子を有する状態になるまで加える工程を含む方法。
  20. 請求項18記載の方法であって、少なくとも1つの更なる識別子を加える工程は、前記最大ノード数より少ないノードを経由する最低コスト経路毎に経路識別子それぞれに更なる識別子を、経路識別子それぞれが共通の数の識別子を有する状態になるまで加える工程を含む方法。
JP2015512973A 2012-05-22 2012-05-22 最短経路の決定におけるタイブレイク Pending JP2015520997A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CA2012/050337 WO2013173900A1 (en) 2012-05-22 2012-05-22 Tie-breaking in shortest path determination

Publications (1)

Publication Number Publication Date
JP2015520997A true JP2015520997A (ja) 2015-07-23

Family

ID=49622954

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015512973A Pending JP2015520997A (ja) 2012-05-22 2012-05-22 最短経路の決定におけるタイブレイク

Country Status (6)

Country Link
EP (1) EP2853068A1 (ja)
JP (1) JP2015520997A (ja)
KR (1) KR20150030644A (ja)
CN (1) CN104396198A (ja)
BR (1) BR112014028934A2 (ja)
WO (1) WO2013173900A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017533641A (ja) * 2014-09-30 2017-11-09 華為技術有限公司Huawei Technologies Co.,Ltd. サービス経路生成方法および装置
JP2022002400A (ja) * 2017-06-29 2022-01-06 華為技術有限公司Huawei Technologies Co., Ltd. 伝送パスを決定する方法およびノード

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11165681B2 (en) * 2019-09-27 2021-11-02 Juniper Networks, Inc. Inter-autonomous system trace route message
US11451475B2 (en) 2019-12-19 2022-09-20 Huawei Technologies Co., Ltd. Packet forwarding based on geometric location
US11329717B2 (en) * 2020-05-26 2022-05-10 Huawei Technologies Co., Ltd. Packet forwarding incorporating partial sorting of path costs or utilities
US11374852B2 (en) 2020-05-29 2022-06-28 Huawei Technologies Co., Ltd. Piecewise shortest path first routing
US11438823B2 (en) 2020-05-29 2022-09-06 Huawei Technologies Co., Ltd. Orthodromic routing
US11374652B1 (en) 2020-12-10 2022-06-28 Huawei Technologies Co., Ltd. Method and apparatus for limited flooding and network routing region membership management
US11909627B2 (en) 2021-01-04 2024-02-20 Huawei Technologies Co., Ltd. Method and apparatus for managing network status information using multiple degree of precision graph
CN113301364A (zh) * 2021-01-05 2021-08-24 阿里巴巴集团控股有限公司 路径规划方法、cdn连接建立方法、设备及存储介质
US11601780B2 (en) 2021-01-05 2023-03-07 Huawei Technologies Co., Ltd. Method and apparatus for propagating network status updates using directional tracking
US11476925B2 (en) 2021-02-04 2022-10-18 Huawei Technologies Co., Ltd. Method and apparatus for limited flooding in networks using transit nodes

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7911944B2 (en) * 2007-12-26 2011-03-22 Nortel Networks Limited Tie-breaking in shortest path determination
US8553562B2 (en) * 2010-09-08 2013-10-08 Telefonaktiebolaget L M Ericsson (Publ) Automated traffic engineering for multi-protocol label switching (MPLS) with link utilization as feedback into the tie-breaking mechanism

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017533641A (ja) * 2014-09-30 2017-11-09 華為技術有限公司Huawei Technologies Co.,Ltd. サービス経路生成方法および装置
US10390285B2 (en) 2014-09-30 2019-08-20 Huawei Technologies Co., Ltd. Service path generation method and apparatus
JP2022002400A (ja) * 2017-06-29 2022-01-06 華為技術有限公司Huawei Technologies Co., Ltd. 伝送パスを決定する方法およびノード
JP7250871B2 (ja) 2017-06-29 2023-04-03 華為技術有限公司 伝送パスを決定する方法およびノード

Also Published As

Publication number Publication date
WO2013173900A1 (en) 2013-11-28
CN104396198A (zh) 2015-03-04
EP2853068A1 (en) 2015-04-01
BR112014028934A2 (pt) 2017-06-27
KR20150030644A (ko) 2015-03-20

Similar Documents

Publication Publication Date Title
US8761022B2 (en) Tie-breaking in shortest path determination
JP5676710B2 (ja) 最短経路決定のタイブレイク
JP2015520997A (ja) 最短経路の決定におけるタイブレイク
TWI493926B (zh) 複雜型樹狀網路之自動化訊務工程
EP2614618B1 (en) Automated traffic engineering for multi-protocol label switching (mpls) with link utilization as feedback into the tie-breaking mechanism
JP6117911B2 (ja) 802.1aqのための3段折り返しclosの最適化
US8553584B2 (en) Automated traffic engineering for 802.1AQ based upon the use of link utilization as feedback into the tie breaking mechanism
US7821963B2 (en) Method for a root path calculation in a shortest path bridge
Cho et al. Independent directed acyclic graphs for resilient multipath routing
WO2005036839A2 (en) Rapid alternate paths for network destinations
US9654382B2 (en) Use of alternate paths in forwarding of network packets
CN111277495B (zh) 一种位索引显示复制组播的故障保护路径的预置方法