以下、添付の図面を参照して、本発明の実施形態について説明する。
本発明の明細書、特許請求の範囲、及び添付の図面において、用語「第1」、「第2」などは同様のオブジェクト間で区別することを意図しており、必ずしも順序又はシーケンスを示すものではない。このような方法で使用されるデータは適切な状況において変更されてもよく、それにより、本明細書に記載の実施形態は本明細書に例示又は記載の順序以外の順序で実現できることを理解されたい。さらに、用語「含む」、「有する」、及びその任意の他の変形は、非排他的な包含をカバーすることを意図している。例えば、ステップ又はユニットのリストを含むプロセス、方法、システム、プロダクト、又はデバイスは、必ずしもこれらの明示的に列挙されたステップ又はユニットに限定されず、そのようなプロセス、方法、プロダクト、又はデバイスに明示的に列挙されていないか又は固有である他のステップ又はユニットを含むことがある。
本出願の実施形態における「ノード」は、サービストラフィックを転送するデバイスであり得る。例えば、「ノード」は、ルータ、スイッチ、光トランスポートネットワーク(英語:Optical Transport Network、略称OTN)デバイス、パケットトランスポートネットワーク(英語:Packet Transport Network、略称PTN)デバイス、又は波長分割多重(英語:Wavelength Division Multiplexing、略称WDM)デバイスでもよい。
図1は、ネットワークにおけるパケット伝送のためのシステムの概略アーキテクチャ図である。このシステムは、本出願で実現される可能な適用シナリオである。ネットワークシステム100は、セグメントルーティング(英語:segment routing、SR)ネットワーク内にあるノード101、ノード102、ノード103、ノード104、ノード105、及びノード106と、ネットワーク外にあるノード107及びノード108を含む。ノード101は、ネットワークにおけるイングレス(ingress)ノードであり、ノード106は、ネットワークにおけるエグレス(egress)ノードである。ノード101からノード106へのパケットに対して2つのパスがあり、すなわちプライマリパスとセカンダリパスである。ノード101、ノード104、ノード105、及びノード106は、順次、プライマリパス上にある。SRネットワークのノード101に到着した後、パケットは、順次、ノード104及びノード105を介してノード106に到着する。ノード101、ノード102、ノード103、及びノード106は、順次、セカンダリパス上にある。通常の場合、プライマリパスが、パケットを転送するために使用される。プライマリパス上のノード105が故障しているとき、パケットは、ノード104により、IGP FRR技術に基づいてセカンダリパスに送信され得る。パケットは、順次、ノード101、ノード102、及びノード103を介してノード106に到着する。
しかしながら、パケット転送をガイドするようにローカル転送ポリシーが構成されているノードが存在する場合がある。例えば、ノード101に構成された転送ポリシーにおいて、受信パケットは、TEトンネルを介してノード104に転送される。この場合、ノード105が故障している場合、ノード104は、IGP FRR技術を使用することによりノード101にパケットを送信し、それにより、パケットは、セカンダリパスを介して転送され得る。しかしながら、ノード104により送信されたパケットを受信した後、ノード101は、ローカル転送ポリシーに従ってTEトンネルを介してパケットをノード104に再度送信する。ノード105は故障しており、パケットを送信することができないため、ノード101により送信されたパケットを受信した後、ノード104は、パケットをノード101に引き続き転送する。ノード105が故障しているとの通知を受信したときのみ、ノード101は、再度TEトンネルを介してノード101にパケットを送信する代わりに、セカンダリパスを介してパケットを転送する。実際のリンクでは、ノード101と故障ノード105との間に長い距離がある場合がある。デバイス、例えばノード101は、比較的長い時間の後、ノード105が故障していることを示す情報を通知される可能性がある。しかしながら、ローカル転送ポリシー、例えば、TEトンネル又はポリシーベースのルーティングなどのローカルポリシーがノード101に構成されている可能性があり、それにより、パケットは、ローカルポリシーに従って好ましくは(preferably)転送され、通常、セカンダリパス上で転送できない。結果として、ループが発生する。
前述の問題を解決するために、本出願は、ネットワークにおけるパケット伝送のためのシステムを提供する。ネットワークは、SRネットワークでもよい。以下では、システムは、一例としてSRネットワークを使用することにより説明される。SRネットワークは、プライマリパス上のイングレスノード101、エグレスノード106、ノード104、及びノード105と、セカンダリパス上のノード102及びノード103を含む。
SRネットワークのエグレスノード106は、2つの異なるセグメント識別子を公開し、セグメント識別子は、マルチプロトコルラベルスイッチング(英語:Multi-Protocol Label Switching、略称MPLS)ラベル又はIPv6アドレスでもよい。以下では、説明のために、ラベルがIPv6アドレスである例を使用する。例えば、エグレスノード106により公開される2つの異なるアドレスがA4::00及びC4::00であり、この2つのアドレスはSRネットワーク内の別のノードにフラッディングされる。アドレスC4::00は、ストリクトSPF(strict SPF)フラグを運ぶ(carries)。パケット中のアドレスC4::00がストリクトSPFフラグを運ぶ場合、パケットは、ストリクトSPFアルゴリズムに従って計算されたパケット転送パスを介して転送され、ローカルポリシーは、もはやパケットの転送に使用されない。ノード104は、受信した2つの異なるアドレスを記憶する。
パケットがノード104に転送され、プライマリパス上のノード105が故障していると判定されたとき、ノード104は、パケット中のアドレスを元のA4::00からC4::00に変更する。アドレスC4::00がストリクトSPFフラグを運ぶため、アドレスがC4::00に変更されたパケットは、ストリクトSPFアルゴリズムに従って転送される。パケットは、パケット転送の間のループを回避するために、セカンダリパスを介してSRネットワークのエグレスノードに送信される。
図1に示す適用シナリオを参照し、以下では、一例として図2を使用して、図1のノード104により実行されるパケット伝送のための方法について詳細に説明する。図2は、本出願によるネットワークにおけるパケット伝送のための方法の概略フローチャートである。この方法はSRネットワークに適用可能であり、図1のノード104は図2の第1のノードとして参照され、図1の任意のノードが図2の方法手順におけるステップを実行してもよい。ネットワークは、第1のノード、第2のノード、及び第3のノードを含み、ネットワークは、第1のノード、第2のノード、及び第3のノード以外のノードをさらに含んでもよい。例えば、ネットワークは、第4のノードをさらに含んでもよい。第2のノードから第3のノードへの第1のパスがネットワークにおいて確立され、第1のパスは第3のノードの第1のセグメント識別子に基づいて確立され、第1のノードは第1のパス上にある。第2のノードは図1のイングレスノード101でもよく、第3のノードは図1のエグレスノード106でもよい。本方法は以下のステップを含む。
S210.第1のノードが、第3のノードにより送信される第3のノードの第2のセグメント識別子を受信する。
可能な一実装において、本方法は、オペレータにより提供されるSRネットワークに適用可能である。SRネットワークにおけるエグレスノードは、ラベル配布プロトコル(英語:Label Distribution Protocol、略称LDP)又はセグメントルーティング(segment routing)プロトコルを使用することにより2つのラベルを取得し得、2つのラベルの双方が、第3のノードを識別するために使用され得る。例えば、取得された2つのラベルは、それぞれ、第1のセグメント識別子及び第2のセグメント識別子と呼ばれる。
可能な一実装において、第3のノードは、オープンショーテストパスファーストインテリアゲートウェイプロトコル(英語:open shortest-path first interior gateway protocol、略称OSPF)又は中間システム対中間システム(英語:Intermediate System to Intermediate System、略称IS‐IS)イントラドメインルーティング情報交換プロトコル(intra-domain routing information exchange protocol)を使用することにより、生成された第1のセグメント識別子と生成された第2のセグメント識別子をSRネットワーク内の別のノードにフラッディングする。ネットワーク内の第1のノード及び第2のノードの双方が、第3のノードを識別するために使用される第1のセグメント識別子及び第2のセグメント識別子を受信し得る。ネットワーク内の第2のノードは、第1のセグメント識別子に基づいて、パケットをエグレスノードに送信するための第1のパスを確立し得る。
任意で、第1のセグメント識別子及び第2のセグメント識別子は、第3のノードのインターネットプロトコルバージョン6 IPv6アドレスである。
可能な一実装において、第1のパケットがIPv6パケットである場合、第1のセグメント識別子及び第2のセグメント識別子は、エグレスノードにより公開される2つの異なるアドレスであり得る。例えば、2つのアドレスは、それぞれ、A4::00とC4::00である。
S220.第1のノードが、第1のパスを介して第2のノードにより送信されるパケットを受信し、パケットのアドレスは、第1のノードのネクストホップノードのセグメント識別子である。
可能な一実装において、第2のノードは、第1のセグメント識別子に基づく計算を介して、第3のノードにパケットを転送するための第1のパスを取得する。第2のノードは、第1のパスを介してパケットを第1のノードに転送し、第1のノードは、パケットを受信し、パケット内で運ばれるネクストホップノードの宛先アドレスに基づいてパケットを転送する。
可能な一実装において、第2のノードは、SRネットワークにおけるイングレスノードでもよい。第2のノードは、第1のパス上のノードのセグメント識別子をパケットヘッダに追加し得る。第2のノードは、第1のパス上のノードのセグメント識別子に基づいてラベルスタックを確立し、ラベルスタックをパケットヘッダに追加してもよく、それにより、パケットは、ラベルスタックに基づいて第3のノードに転送される。パケットの外側レイヤの宛先アドレスは、ネクストホップネットワークデバイスのセグメント識別子である。
例えば、第2のノードは、第1のパス上の第1のノードと第1のノードのネクストホップノードを順次使用することにより、パケットを第3のノードに転送する。例えば、第2のノードのセグメント識別子はA1::00であり、第1のノードのセグメント識別子はA2::00であり、第1のノードのネクストホップのセグメント識別子はA3::00であり、第3のノードのセグメント識別子はA4::00である。第2のノードは、第1のパス上のノードのセグメント識別子に基づいて1つのラベルスタックを確立し、ラベルスタックをパケットヘッダに追加する。追加方法は、ラベルスタックをパケットヘッダ内のセグメントルーティングヘッダに追加することでもよい。第2のノードによりパケットヘッダに追加されるラベルスタックはA2::00、A3::00、及びA4::00であり、パケットの宛先アドレスはA2::00である。第2のノードは、パケットを第1のノードに送信する。第1のノードは、パケットの宛先アドレスA2::00に基づいてパケットを受信し、パケットの宛先アドレスA2::00をラベルスタック内のA3::00で置換し、パケットの宛先アドレスA3::00に基づいてパケットを第1のノードのネクストホップに送信する。同様に、第1のノードのネクストホップは、宛先アドレスA3::00を運ぶパケットを受信し、宛先アドレスをラベルスタック内のA4::00で置換し、パケットを第3のノードに送信して、第1のパスを介してパケットを第3のノードに送信する。第1のパスを介してパケットを転送する前述の方法は、単に説明のための例にすぎない。第2のノードは、代替的に、別の方法で第1のパスを介してパケットを第3のノードに転送してもよい。
S230.第1のノードが、第1のパス上の第1のノードのネクストホップノードが故障していることを判定する。
可能な一実装において、ネクストホップノードが故障しているとき、ネットワークにおける第1のノードを含む別のノードは、IS‐ISプロトコル又はOSPFプロトコルを使用することにより、ネクストホップノードが故障していることを示すメッセージを取得する。第1のノードがネクストホップノードに隣接しているため、第1のノードは、ネクストホップノードが故障していると迅速に判定する。
S240.第1のノードのネクストホップノードが故障していると第1のノードが判定したことに応答して、第1のノードが、第2のセグメント識別子をパケットに追加し、パケットを第2のパスを介して第3ノードに送信する。第2のパスは、第2のセグメント識別子に基づいて第1のノードにより確立される。
可能な一実装において、第1のノードのネクストホップノードが故障しているとき、第1のノードは、第2のセグメント識別子に基づいて第2のパスを確立し、パケットを第3のノードに送信し得る。
例えば、第1のノードのネクストホップノードが故障し、パケットを転送できないとき、第1のノードは、第2のセグメント識別子をパケットの宛先アドレスに追加してもよい。換言すれば、第1のノードは、パケットの宛先アドレスを第2のセグメント識別子で置換し、それにより、パケットは、第2のセグメント識別子に基づいて確立された第2のパスを介して第3のノードに送信される。
任意で、第2のセグメント識別子はパス計算識別子を含み、パス計算識別子は、第2のパスをショーテストパスファーストアルゴリズムに従って確立するよう第1のノードに指示するために使用される。
可能な一実装において、第2のセグメント識別子はパス計算識別子を運び、例えばストリクトSPFフラグを運ぶ。ストリクトSPF(英語:Strict Shortest Path First)アルゴリズムに従い、パケット転送パスはSPFアルゴリズムに従って決定される。しかしながら、ストリクトSPFアルゴリズムに従い、SRネットワークにおけるすべてのノードがストリクトSPFアルゴリズムに従ってパケット転送パスを決定する必要があり、ローカルポリシーの適用可能性は除外される。SR TEトンネル又は構成されたルーティングポリシーなどのローカルポリシーの使用優先度が、ストリクトSPFアルゴリズムに従ってパスを計算する要件の使用優先度より低い場合、ストリクトSPFアルゴリズムは、第2のパスを計算するために好ましくは(preferably)使用される。ローカルポリシーは、SR TEトンネル又はローカルルーティングポリシーなど、好ましくは処理される必要のあるローカルルーティング及び転送ポリシーである。例えば、SRネットワークにおける第2のノードがパケットを転送する前に、SR TEトンネルが第2のノードに対して構成され、それにより、第2のノードは、第2のノードにより計算されたパスを介してパケットをネクストホップノードに送信する代わりに、構成されたSR TEトンネルを介してパケットを第1のノードに好ましくは転送する。第2のセグメント識別子及び第1のセグメント識別子の双方がSRネットワークにおけるエグレスノードを識別するために使用されるが、第2のセグメント識別子は第1のセグメント識別子と異なり、第1のセグメント識別子はストリクトSPF識別子を運ばない。第1のノードは、ストリクトSPFアルゴリズムに従って第2のセグメント識別子に基づいてセカンダリパスを好ましくは計算する。この場合、第1のノードは、SPFアルゴリズムに従って第2のパスを好ましくは計算及び確立し、パケットを第2のパスを介してエグレスノードに送信して、ループを回避する。
例えば、第1のノードが、第1のノードのネクストホップが故障していると判定したとき、第1のノードは、第3のノードの第2のセグメント識別子C4::00をパケットの宛先アドレスに追加し、第2のセグメント識別子C4::00はストリクトSPFフラグを運ぶ。第1のノードは、ショーテストパスファーストアルゴリズムに従ってパケット内の宛先アドレスC4::00に基づいて第2のパスを確立し、パケットを第2のパスを介して第3のノードに送信する。
任意で、第2のパスは、第1のパス上の第1のノードのネクストホップノードが故障していると第1のノードが判定したとき、第1のノードにより確立される。
任意で、第1のノードが第2のセグメント識別子をパケットに追加することは、第1のノードがパケットのアドレスを第2のセグメント識別子で置換することを含む。
可能な一実装において、第1のノードのネクストホップネットワークデバイスが故障していると判定したとき、第1のノードは、パケットのアドレスを第2のセグメント識別子で置換し、置換されたアドレスに基づいてパケットを転送する。
ローカル転送ポリシーが構成されているループフリー代替(英語:loop-free alternate、略称LFA)シナリオにおいてIPv6パケットが転送されるSRネットワークが、一例として以下で使用される。図1に示すネットワークシステムを参照し、以下では、本出願によるネットワークにおけるパケット伝送のための方法の概略フローチャートをさらに提供する。図3のノード104により実行される方法は、図2の第1のノードに適用されてもよく、図3のノード105により実行される方法は、図2の第1のノードのネクストホップノードに適用されてもよい。図3のノード101により実行される方法は、図2のイングレスノードに適用されてもよく、図3のノード106により実行される方法は、図2のエグレスノードに適用されてもよい。図3において、ノード101はノード104に隣接し、ノード104はノード105に隣接する。本方法は以下のステップを含む。
S310:エグレスノード106が、第1のアドレス及び第2のアドレスを公開し、第1のアドレスはストリクトSPFフラグを運ぶ。
例えば、SRネットワークにおけるエグレスノードは、IS‐ISプロトコル又はOSPFプロトコルを使用することによりエグレスノードの2つの異なるアドレスを公開し、エグレスノードの2つの異なるアドレスは、それぞれ、C4::00及びA4::00である。C4::00はストリクトSPFフラグを運び、詳細は図4及び図5に示される。図4及び図5は、単に例示的な実装を提供するに過ぎず、本出願に対していかなる制限も構成しない。図4のIS‐ISプロトコルにおいて、図5のフラグ(英語:flags)フィールドの予約(英語:Reserved)フィールドが1に設定されることは、それがストリクトSPFに従って計算される必要があるパスであることを示し、予約フィールドが0に設定されることは、パスがストリクトSPFに従って計算される必要がないことを示す。予約フィールドが1に設定されているとき、パケットはローカル転送ポリシーを使用することなく転送され、パケット転送パスはストリクトSPFアルゴリズムに従って計算される。
S320.ネットワークノード104が、第1のアドレス及び第2のアドレスを受信する。
例えば、ノードは、IS‐ISプロトコル又はOSPFプロトコルを使用することにより、エグレスノード106により公開された2つの異なるアドレスC4::00及びA4::00を受信してもよく、アドレスC4::00はストリクトSPFフラグを運ぶ。2つのアドレスを受信した後、ネットワークノード104は2つのアドレスを記憶する。
S330.イングレスノード101が、第1のアドレス及び第2のアドレスを受信する。
S340.イングレスノード101が、第2のアドレスに基づいて、パケットがエグレスノードに到着するためのプライマリパスを計算する。
例えば、パケットがSRネットワークに入ると、イングレスノード101は、ノードラベル方式又はリンクラベル方式を使用することにより、エグレスノード106の第2のアドレス、例えばA4::00に基づいて、パケット転送パスを計算し、パケットにラベルを割り当て、パケットをエグレスノード106に送信してもよい。ノードラベル方式が一例として使用される。パケットを受信したとき、イングレスノード101は、第2のアドレスA4::00に基づいて、パケットがエグレスノード106に到着するためのプライマリパスを計算し、パケットがエグレスノード106に到着すべきことを示すラベルをパケットに追加する。ノードラベルの一特徴は、パケットがエグレスノード106に到着できることを条件として、パケット転送パスがSPFアルゴリズム又は別のアルゴリズムに従って計算され得ることである。
S350.イングレスノード101が、ローカルルーティング及び転送ポリシーに従ってパケットをネットワークノード104に送信する。
例えば、イングレスノード101は、エグレスノード106の第2のアドレスに基づいてパケット転送パスを計算し、パケットをエグレスノード106に送信してもよい。しかしながら、ローカル転送ポリシーがプライマリパス上の1つ以上のノードで構成されている、例えば、SR TEトンネルがイングレスノード101とネットワークノード104との間に構成されている場合、パケットを受信したときに、イングレスノード101は、パケットをSR TEトンネルを介してネットワークノード104に好ましくは転送する。このようにして、ローカル転送ポリシーが構成されているイングレスノード101は、パケットをSR TEトンネルを介してネットワークノード104に好ましくは転送する。
S360.ネットワークノード104が、プライマリパスから、イングレスノード101により送信されたパケットを受信し、パケットの宛先アドレスは、ノード105のセグメント識別子である。
例えば、ネットワークノード104のネクストホップノードは、ノード105であり、ネットワークノード104によりネクストホップ送信ノード105に送信されるパケットの宛先アドレスは、ノード105のセグメント識別子である。
S370.ノード105が故障している場合、ネットワークノード104が、パケットの宛先アドレスを第1のアドレスで置換し、パケットを第2のパスを介してエグレスノード106に送信する。
例えば、ノード105は、IS‐ISプロトコル又はOSPFプロトコルを使用することにより、ノード105が故障していることをSRネットワーク内の別のノードに通知してもよい。ネットワークノード104は、ノード105が故障していることを示すメッセージを取得し、受信したパケットの宛先アドレスA4::00をC4::00で置換し、C4::00はストリクトSPFフラグを運ぶ。したがって、ネットワークノード104は、ストリクトSPFアルゴリズムに従って確立されたセカンダリパスを介してパケットをエグレスノード106に送信するべきである。前述の方法によれば、パケット転送の間、ループが回避される。
図6は、本出願によるネットワークにおける伝送のための第1のノード600を示す。ネットワークは、第1のノード600、第2のノード、及び第3のノードを含む。第2のノードから第3のノードへの第1のパスがネットワークにおいて確立され、第1のパスは第3のノードの第1のセグメント識別子に基づいて確立され、第1のノード600は第1のパス上にある。第1のノードは、図1のプライマリパス及びセカンダリパス上の任意のノードでもよく、あるいは図2及び図3の第1のノードでもよい。ノードは、受信ユニット601、判定ユニット602、追加ユニット603、確立ユニット604、及び送信ユニット605を含む。
受信ユニット601は、第3のノードにより送信される第3のノードの第2のセグメント識別子を受信するように構成され、さらに、第1のパスを介して第2のノードにより送信されるパケットを受信するように構成される。パケットのアドレスは、第1のノードのネクストホップノードのセグメント識別子である。
判定ユニット602は、第1のパス上の第1のノードのネクストホップノードが故障していることを判定するように構成される。
追加ユニット603は、第1のノードのネクストホップノードが故障していると判定ユニット602が判定したことに応答して、第2のセグメント識別子をパケットに追加するように構成される。
確立ユニット604は、受信ユニット601により受信された第2のセグメント識別子に基づいて第2のパスを確立するように構成される。
送信ユニット605は、確立ユニット604により確立された第2のパスを介してパケットを第3のノードに送信するように構成される。
可能な一実装において、第1のノードの受信ユニット601及びイングレスノードは、エグレスノードを識別するために使用される第1のセグメント識別子及び第2のセグメント識別子を受信する。イングレスノードは、第1の識別子に基づいて、パケットをエグレスノードに送信するための第1のパスを確立する。イングレスノードは、パケットを第1のパスを介して第1のノードに転送し、第1のノードの受信ユニット601は、パケットを受信し、パケット内で運ばれるネクストホップノードのセグメント識別子に基づいてパケットを転送する。第1のノードの判定ユニット602が、第1のノードのネクストホップネットワークデバイスが故障していると判定したとき、第1のノードの追加ユニット603は、第2の識別子をパケットの宛先アドレスに追加する。第1のノードの確立ユニット604は、第2のパスを確立し、第1のノードの送信ユニット605は、確立ユニット604により確立された第2のパスを介してパケットをエグレスノードに送信する。
任意で、第2のセグメント識別子はパス計算識別子を含み、パス計算識別子は、第2のパスをショーテストパスファーストアルゴリズムに従って確立するよう第1のノードに指示するために使用される。
可能な一実装において、第2のセグメント識別子はパス計算識別子を運び、例えばストリクトSPFフラグを運ぶ。ストリクトSPF(英語:Strict Shortest Path First)アルゴリズムに従い、パケット転送パスがSPFアルゴリズムに従ってさらに決定される。しかしながら、ストリクトSPFアルゴリズムに従い、SRネットワークにおけるすべてのノードがストリクトSPFアルゴリズムに従ってパケット送信パスを決定する必要があり、ローカルポリシーの適用可能性は除外される。SR TEトンネル又は構成されたルーティングポリシーなどのローカルポリシーの使用優先度が、ストリクトSPFアルゴリズムに従ってパスを計算する要件の使用優先度より低い場合、SPFアルゴリズムは、第2のパスを確立するために好ましくは使用される。
任意で、確立ユニット604は、第1のパス上の第1のノードのネクストホップノードが故障していると判定ユニット602が判定したとき第2のパスを確立し、あるいは第1のパス上の第1のノードのネクストホップノードが故障していると判定ユニット602が判定する前に第2のパスを確立するように構成される。
任意で、追加ユニット603が第2のセグメント識別子をパケットに追加することは、追加ユニット603がパケットの宛先アドレスを第2のセグメント識別子で置換することを含む。
任意で、第2のセグメント識別子はパス計算識別子を含み、パス計算識別子は、第2のパスをショーテストパスファーストアルゴリズムに従って確立するよう第1のノードに指示するために使用される。
任意で、第1のセグメント識別子及び第2のセグメント識別子は、第3のノードのインターネットプロトコルバージョン6 IPv6アドレスである。
実装において、受信ユニット601、判定ユニット602、追加ユニット603、確立ユニット604、及び送信ユニット605の実装については、図2及び図3で説明される第1のノードの機能及び実装ステップを参照する。簡潔さのため、詳細は再度説明されない。
例えば、図7は、本出願による別の第1のノード700のハードウェア構成図である。第1のノードは、ネットワークインターフェース701及びプロセッサ702を含み、メモリ703をさらに含んでもよい。
ネットワークインターフェース701は、有線インターフェース、例えば、ファイバ分散データインターフェース(英語:Fiber Distributed Data Interface、略称FDDI)又はイーサネット(英語:Ethernet)インターフェースでもよい。
プロセッサ702は、中央処理装置(英語:central processing unit、略称CPU)、ネットワークプロセッサ(英語:network processor、略称NP)、特定用途向け集積回路(英語:application-specific integrated circuit、略称ASIC)、及びプログラマブル論理デバイス(英語:programmable logic device、略称PLD)のうち1つ以上を含むがこれらに限られない。PLDは、複合プログラマブル論理デバイス(英語:complex programmable logic device、略称CPLD)、フィールドプログラマブルゲートアレイ(英語:field programmable gate array、略称FPGA)、汎用アレイ論理(英語:generic array logic、略称GAL)、又はこれらの任意の組み合わせでもよい。プロセッサ702は、バス704及び一般的な処理の管理を担い、タイミング、周辺インターフェース、電圧調節、電力管理、及び他の制御機能を含む様々な機能をさらに提供してもよい。メモリ703は、プロセッサ702が動作を実行するときにプロセッサ702により使用されるデータを記憶するように構成されてもよい。
メモリ703は、これらに限られないが、連想メモリ(英語:content-addressable memory、略称CAM)、例えば三値連想メモリ(英語:ternary CAM、略称TCAM)、又はランダムアクセスメモリ(英語:random access memory、略称RAM)を含んでもよい。
メモリ703は、代替的に、プロセッサ702に統合されてもよい。メモリ703とプロセッサ702が相互に独立したコンポーネントである場合、メモリ703はプロセッサ702に接続される。例えば、メモリ703とプロセッサ702は、バスを使用することにより互いに通信してもよい。ネットワークインターフェース701は、バスを使用することによりプロセッサ702と通信してもよく、あるいはネットワークインターフェース701は、プロセッサ702に直接接続されてもよい。
バス704は、任意の数量の相互接続されたバス及びブリッジを含んでもよく、バス704は、プロセッサ702により表される1つ以上のプロセッサと、メモリ703により表されるメモリの様々な回路とを一緒にリンクする。バス704は、さらに、周辺デバイス、電圧安定器、及び電力管理回路などの様々な他の回路を一緒にリンクしてもよい。これらは全て、当該分野において良く知られている。したがって、本明細書ではさらなる説明は提供されない。
可能な一実装において、ネットワークは、第1のノード、第2のノード、及び第3のノードを含む。第2のノードから第3のノードへの第1のパスがネットワークにおいて確立され、第1のパスは第3のノードの第1のセグメント識別子に基づいて確立され、第1のノードは第1のパス上にある。第1のノードは、ネットワークインターフェース701及びプロセッサ702を含む。
ネットワークインターフェース701は、第3のノードにより送信される第3のノードの第2のセグメント識別子を受信するように構成される。
ネットワークインターフェース701は、第1のパスを介して第2のノードにより送信されるパケットを受信するように構成され、パケットのアドレスは、第1のノードのネクストホップノードのセグメント識別子である。
プロセッサ702は、第1のパス上の第1のノードのネクストホップノードが故障していることを判定するように構成される。
第1のノードのネクストホップノードが故障していると第1のノードが判定したことに応答して、プロセッサ702は、第2のセグメント識別子をパケットに追加し、パケットを第2のパスを介して第3ノードに送信する。第2のパスは、第2のセグメント識別子に基づいて第1のノードにより確立される。
任意で、プロセッサ702は、第1のパス上の第1のノードのネクストホップノードが故障していると第1のノードが判定したとき第2のパスを確立し、あるいは第2のパスは、第1のパス上の第1のノードのネクストホップノードが故障していると第1のノードが判定する前に第1のノードにより確立される。
任意で、第1のパス上の第1のノードのネクストホップノードが故障していると判定したとき、プロセッサ702は、パケットの宛先アドレスを第2のセグメント識別子で置換する。
任意で、第2のセグメント識別子はパス計算識別子を含み、パス計算識別子は、第2のパスをショーテストパスファーストアルゴリズムに従って確立するよう第1のノードに指示するために使用される。
任意で、第1のセグメント識別子及び第2のセグメント識別子は、第3のノードのインターネットプロトコルバージョン6 IPv6アドレスである。
実装において、プロセッサ702及びネットワークインターフェース701の実装については、図2及び図3で説明される第1のノードの機能及び実装を参照する。簡潔さのため、詳細は再度説明されない。
図8は、本出願によるネットワークにおけるパケット伝送のためのシステムを示す。このシステムは、第1のノード801、第2のノード802、及び第3のノード803を含む。
第1のノード801は、図1のネットワークノード104でもよく、あるいは図2及び図3に示す方法フローチャートの第1のノードでもよく、図2及び図3で説明される第1のノードの機能を実現してもよく、あるいは図6又は図7の第1のノードでもよい。
第1のノード801は、第3のノードにより送信される第3のノードの第2のセグメント識別子を受信するように構成され、さらに、第1のパスを介して第2のノードにより送信されるパケットを受信するように構成される。第1のノードは、さらに、第1のパス上の第1のノードのネクストホップノードが故障していることを判定し、第1のパス上の第1のノードのネクストホップノードが故障していると第1のノードが判定したことに応答して、第2のセグメント識別子をパケットに追加し、第2のセグメント識別子に基づいて第2のパスを確立し、パケットを第2のパスを介して第3のノードに送信するように構成される。パケットのアドレスは、第1のノードのネクストホップセグメントノードのセグメント識別子である。
第2のノード802は、第3のノードの第1のセグメント識別子を受信し、第1のセグメント識別子に基づいて第2のノードから第3のノードへの第1のパスを確立し、第1のパスを介してパケットを第1のノードに送信するように構成される。
第3のノード803は、第1のセグメント識別子を第1のノードに送信し、第2のセグメント識別子を第2のノードに送信し、第2のパスを介して第1のノードにより送信されたパケットを受信するように構成される。
任意で、第2のパスは、第1のパス上の第1のノードのネクストホップノードが故障していると第1のノードが判定したとき第1のノードにより確立され、あるいは第2のパスは、第1のパス上の第1のノードのネクストホップノードが故障していると第1のノードが判定する前に第1のノードにより確立される。
任意で、第1のノードが第2のセグメント識別子をパケットに追加することは、第1のノードがパケットの宛先アドレスを第2のセグメント識別子で置換することを含む。
任意で、第2のセグメント識別子はパス計算識別子を含み、パス計算識別子は、第2のパスをショーテストパスファーストアルゴリズムに従って確立するよう第1のノードに指示するために使用される。
任意で、第1のセグメント識別子及び第2のセグメント識別子は、第3のノードのインターネットプロトコルバージョン6 IPv6アドレスである。
実装において、第1のノード801の実装については、図2及び図3で説明される第1のノードの機能及び実装ステップを参照する。簡潔さのため、詳細は再度説明されない。
前述の方法のシーケンス番号は、本出願の様々な実施形態における実行シーケンスを意味しないことを理解されたい。方法の実行シーケンスは、プロセスの機能及び内部論理に基づいて決定されるべきであり、本出願の実施形態の実装プロセスに対していかなる制限も構成すべきでない。
本出願で提供されるいくつかの実施形態において、開示された方法及びデバイスは別の方法で実現されてもよいことを理解されたい。例えば、説明された装置の実施形態は、単なる一例である。例えば、モジュール分割は、単に論理機能分割であり、実際の実装において別の分割方法を有してもよい。例えば、複数のモジュール又はコンポーネントが組み合わせられ、又は別のシステムに統合されてもよく、あるいは、いくつかの特徴が無視され、又は実行されなくてもよい。さらに、表示され又は論じられた相互結合又は直接結合又は通信接続は、いくつかのインターフェースを使用することにより実現されてもよい。装置又はユニット間の間接結合又は通信接続は、電子的、機械的、又は別の形態で実現されてもよい。
別個の部分として説明されたモジュールは物理的に別個であっても又はそうでなくてもよく、モジュールとして表された部分は物理ユニットであっても又はそうでなくてもよく、1つの位置に配置されていてもよく、あるいは複数のネットワークユニット上に分散されてもよい。ユニットのいくつか又は全てが、実施形態における解決策の目的を達成するために実際の要件に基づいて選択されてもよい。
さらに、本発明の実施形態における機能モジュールは1つの処理ユニットに統合されてもよく、あるいは、モジュールの各々は物理的に単独で存在してもよく、あるいは、2つ以上のモジュールが1つのユニットに統合される。統合されたモジュールはハードウェアの形態で実現されてもよく、あるいはソフトウェア機能ユニットに追加でハードウェアの形態で実現されてもよい。
統合されたユニットが、ソフトウェアと組み合わせたハードウェアの形態で実現され、独立したプロダクトとして販売又は使用されるとき、ソフトウェアは、コンピュータ読取可能記憶媒体に記憶されてもよい。このような理解に基づき、本発明の技術的解決策において、従来技術に寄与するいくつかの技術的特徴は、ソフトウェアプロダクトの形態で実現されてもよい。コンピュータソフトウェアプロダクトは記憶媒体に記憶され、本発明の実施形態で説明される方法のステップの全部又は一部を実行するようコンピュータデバイス(パーソナルコンピュータ、サーバ、ネットワークデバイス、ノードなどであり得る)に指示するためのいくつかの命令を含む。記憶媒体は、USBフラッシュディスク、リムーバブルハードディスク、読取専用メモリ(略称ROM、英語:Read-Only Memory)、ランダムアクセスメモリ(略称RAM、英語:Random Access Memory)、磁気ディスク、又はコンパクトディスクでもよい。
前述の説明は単に本発明の実装に過ぎず、本発明の保護範囲を制限することは意図されない。本発明において開示された技術的範囲内で当業者により容易に理解されるいかなる変形又は置換も、本発明の保護範囲に入るものとする。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に従うものとする。