(57)【特許請求の範囲】
【請求項１】
ソフトウェア定義ネットワークの経路追跡のために命令を用いて構成されたコントローラであって、
前記ネットワークをトラブルシューティングするためのソフトウェア定義ネットワークのレイヤ２経路追跡を行うパストレーサを有し、
前記パストレーサは、
追跡する対象の経路、または前記ネットワークのホストによって受信されたパケットのヘッダの経路識別情報を入力とするユーザインターフェースと、
前記ユーザインターフェースから前記入力を受信し、該入力に基づいて、追跡された経路をトラバースするパケットに簡潔な経路識別情報を用いた印を付ける、前記ネットワークのスイッチに対する１組の制御メッセージと、復号のための対応するコードブックとを生成するエンコーダと、
前記エンコーダによって出力されたコードブックを使用して、前記ユーザインターフェースを介して入力された前記経路識別情報をホップバイホップの経路情報に変換するデコーダと
を有する、コントローラ。
【請求項２】
前記パストレーサは、前記エンコーダまたはデコーダに転送するときに、前記経路識別情報を運ぶために、前記パケットの前記ヘッダの一部のオクテットを再使用する、請求項１に記載のコントローラ。
【請求項３】
前記パストレーサは、制御プレーンを利用してスイッチにフローテーブルエントリをインストールし、これらのスイッチは、当該スイッチをトラバースする前記パケットの印を符号化する、請求項１に記載のコントローラ。
【請求項４】
前記パストレーサは、対象の経路だけに対応するスイッチの小さな組にフローテーブルエントリを分散する、請求項１に記載のコントローラ。
【請求項５】
経路符号化がデータプレーンで生じるとき、前記パストレーサが制御プレーンに導入するオーバヘッドは、対象の経路にあるスイッチの数によってのみ制限され、前記パケットが目的地に到着すると、前記パケットのヘッダから追跡されたパケットの実際の経路を決定するために、前記経路識別情報が復号される、請求項４に記載のコントローラ。
【請求項６】
前記ユーザインターフェースは、ユーザが１組のＬ２経路を入力するユーザ対話、並びに、ユーザが前記パケット内の符号化された経路識別、パケットが受信されるホスト、およびパケットが受信される時間を入力する経路問い合わせを提供し、経路追跡のために、前記ユーザインターフェースは、前記エンコーダに前記ユーザ入力を転送し、経路問い合わせのために、前記ユーザインターフェースは、前記デコーダに前記ユーザ入力を転送し、前記デコーダから前記ユーザにフルパス情報を返し、前記フルパス情報は、前記１組のＬ２経路における追跡された経路を示す、請求項１に記載のコントローラ。
【請求項７】
前記エンコーダは、有向非巡回グラフＤＡＧ生成を有し、前記ＤＡＧ生成において、前記対象の経路の有効性に対する必要なサニティチェックの後に、前記エンコーダは、前記有効な経路を構成することによって、有向非巡回グラフの森を構築し、各ＤＡＧで、前記エンコーダは、仮想ルートノードを作成し、それからのリンクを程度０ですべてのノードに追加する、請求項１に記載のコントローラ。
【請求項８】
前記エンコーダは、各有向非巡回グラフＤＡＧで、前記エンコーダが、含まれる経路の識別を生成するために、１）トポロジの順にノードをトラバースし、各エッジに対する経路番号ＰＮを計算し、各ノードｎに関して、第１の入力エッジに対するＰＮ値は０であり、残りのエッジｅのそれぞれについて、（ｐ−＞ｎ）ＰＮ値は、仮想ルートノードからｐまで可能な経路の合計であり、２）前記ＤＡＧで縦型探索を適用し、追跡された経路に対する最終ノードに到達するときに前記経路識別を出力し、前記識別は、前記仮想ルートノードからそのノードまですべてのエッジのＰＮの合計である経路識別生成を有する、請求項１に記載のコントローラ。
【請求項９】
ネットワーク監視のためのコンピュータ実行方法を可能にする命令を備えた非一時的記憶媒体であって、
前記命令は、
前記ネットワークをトラブルシューティングするためにソフトウェア定義ネットワークにおいてレイヤ２経路追跡処理を提供することを有し、
前記レイヤ２経路追跡処理は、
ユーザインターフェースを介して、追跡する対象の経路または前記ネットワークのホストによって受信されたパケットのヘッダの経路識別情報の入力を取り込むことと、
エンコーダによって前記ユーザインターフェースから前記入力を受信し、該入力に基づいて、追跡された経路をトラバースするパケットに簡潔な経路識別情報を用いて印を付ける、前記ネットワークのスイッチに対する１組の制御メッセージと、復号のための対応するコードブックとを生成することと、
デコーダによって、前記エンコーダによって出力された前記コードブックを使用して前記ユーザインターフェースを介して入力された前記経路識別情報をホップバイホップの経路情報に変換することと
を有する、非一時的記憶媒体。
【請求項１０】
前記レイヤ２経路追跡処理は、前記エンコーダまたはデコーダに転送するときに、前記経路識別情報を運ぶために、前記パケットのヘッダの一部のオクテットを再使用することを有する、請求項９に記載の記憶媒体。
【請求項１１】
前記レイヤ２経路追跡処理は、制御プレーンを利用してスイッチにフローテーブルエントリをインストールすることを有し、パケットがトラバースしているときに、これらのスイッチは、当該スイッチをトラバースする前記パケットの印を符号化する、請求項９に記載の記憶媒体。
【請求項１２】
前記レイヤ２経路追跡処理は、対象の経路だけに対応するスイッチの小さな組にフローテーブルエントリを分散することを有する、請求項９に記載の記憶媒体。
【請求項１３】
経路符号化がデータプレーンで生じるとき、前記レイヤ２経路追跡処理が制御プレーンに導入するオーバヘッドは、対象の経路にあるスイッチの数によってのみ制限され、前記パケットが目的地に到着すると、前記パケットのヘッダから追跡されたパケットの実際の経路を決定するために、前記経路識別情報が復号される、請求項１２に記載の記憶媒体。
【請求項１４】
ソフトウェア定義ネットワークの経路追跡のための命令を用いてコンピュータによって実行される方法であって、
前記ネットワークをトラブルシューティングするためにソフトウェア定義ネットワークにおいてレイヤ２経路追跡処理を提供することを有し、
前記レイヤ２経路追跡処理は、
ユーザインターフェースを介して、追跡する対象の経路または前記ネットワークのホストによって受信されたパケットのヘッダの経路識別情報の入力を取り込むことと、
エンコーダによって前記ユーザインターフェースから前記入力を受信し、該入力に基づいて、追跡された経路をトラバースするパケットに簡潔な経路識別情報を用いて印を付ける、前記ネットワークのスイッチに対する１組の制御メッセージと、復号のための対応するコードブックとを生成することと、
デコーダによって、前記エンコーダによって出力された前記コードブックを使用して前記ユーザインターフェースを介して入力された前記経路識別情報をホップバイホップの経路情報に変換することと
を有する、方法。
【請求項１５】
前記エンコーダは、有向非巡回グラフＤＡＧ生成を有し、前記ＤＡＧ生成において、前記対象の経路の有効性に対する必要なサニティチェックの後に、前記エンコーダは、前記有効な経路を構成することによって、有向非巡回グラフの森を構築し、各ＤＡＧで、前記エンコーダは、仮想ルートノードを作成し、それからのリンクを程度０ですべてのノードに追加する、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連する出願の情報
本願は、２０１４年３月２５日に出願した仮出願第６１/９６９，９６０号、「Method and Apparatus for Layer 2 Path Tracing through Context encoding in Software Defined networking」、の優先権を主張し、その内容を参照により本明細書に取り込む。
【背景技術】
【０００２】
本発明は、一般的に、ソフトウェア定義ネットワークに関し、より詳しくは、ソフトウェア定義ネットワークにおけるコンテキストの符号化を通じたレイヤ２経路追跡に関する。
【０００３】
ソフトウェア定義ネットワーキング（ＳＤＮ）により、転送の決定が下される制御プレーンを転送が実際に起こるデータプレーンから切り離すことによって、より柔軟なネットワーク管理が可能になる。ネットワーク管理者は、下位レベル機能の抽象的概念を通じてネットワークを簡潔に管理することができる。ネットワーク管理者の抽象化されたポリシーをスイッチによる実行の対象となる下位レベルの構成へと変換する役割を果たす制御プレーンに位置する１つ以上のネットワークコントローラが存在する。そのような抽象化では、背後にある複雑さがネットワーク管理者には隠されているが、スイッチの実行が意図されるポリシーに合っているかどうかを検証するためのネットワーク管理者に対する能力は、ＳＤＮトラブルシューティングにおける必要な機能である。
【０００４】
本発明は、ＳＤＮにおける経路追跡のネットワークトラブルシューティングの特定の態様に注目する。経路追跡は、与えられたパケットの実際のレイヤ２経路を決定する動作である。経路追跡は、パフォーマンス最適化、例えば負荷バランシングにおける様々なルーティングオプションの比較や、ルーティング検証、例えばルーティングアルゴリズムが正しく実行されることの保証や、リソース割り当て、例えばネットワークのホットスポットおよびコールドスポットの特定、といったことを実行する際に、ネットワークオペレータにとって重要である。
【０００５】
現在、ネットワークオペレータは、パケットのレイヤ２経路を決定するために、複数の手法に依存しているが、知る限りでは、それらのすべては、データプレーンにおける実際の転送の振る舞いを決定することではなく、制御プレーンに依存しすぎている。
【０００６】
以下の文献［１］を参照すると、ｎｄｂは、追跡されたパケットがトラバースするすべてのスイッチからポストカードを放出するＳＤＮ用のネットワークデバッガである。ポストカードは、追跡されたパケットおよびそれが一致したフローエントリに関する情報を含んでいるログパケットである。ネットワークコントローラは、すべてのポストカードを収集し、パケット経路を再構築する。この手法の懸念は、制御プレーンに加えられるログのオーバヘッドである。
【０００７】
レイヤ３では、以下の文献２に見られるように、ハッシュベースのＩＰトレースバック手法は、ルータにパケットの要約を記憶し、それらを使用してパケットの経路を再構築する。そのような手法をレイヤ２に拡張すると、スイッチの追加的な計装を行う費用が発生する。
［１］Handigol, N., Heller, B., Jeyakumar, V., Mazi_eres, D., and McKeown, N. Where is the debugger for my software-de_ned network? In proceedings of the First Workshop on Hot Topics in Software Defined nNetworks (New York, NY, USA, 2012), HotSDN’12, ACM, pp. 55{60.
［２］Snoeren, A. C., Partridge, C., Sanchez, L. A., Jones, C. E., Tchakountio, F., Kent, S. T., and Strayer, W. T. Hash-based ip traceback. In Proceedings of the 2001 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications (New York, NY, USA, 2001), SIGCOMM ’01, ACM.
【０００８】
したがって、ＳＤＮレイヤ２経路追跡ユーティリティを実行するための解決策が必要である。
【発明の概要】
【０００９】
本発明は、ソフトウェア定義ネットワークにおける経路追跡のための命令を用いて構成されたコントローラに関する。コントローラは、ネットワークをトラブルシューティングするためにソフトウェア定義ネットワークにレイヤ２経路追跡を含んでおり、経路追跡は、追跡する対象の経路または受信されたパケットのヘッダの経路識別を入力とするユーザインターフェースと、入力を受信し、また、簡潔な識別情報と復号のための対応するコードブックとを用いて、追跡された経路をトラバースするパケットに印を付けるネットワークのスイッチに、１組の制御メッセージを生成するためのエンコーダと、エンコーダによって出力されたコードブックを使用して経路識別情報をホップバイホップの情報に変換するデコーダと、を含む。
【００１０】
本発明の同様の態様では、ネットワークをトラブルシューティングするためにソフトウェア定義ネットワークのレイヤ２経路追跡を提供することを含む、ネットワーク監視のためのコンピュータ実行方法を可能にする命令を備えた非一時的記憶媒体が提供され、経路追跡は、ユーザインターフェースを介して、追跡する対象の経路または受信されたパケットのヘッダの経路識別の入力を取り込むことと、エンコーダによって、入力を受信するとともに、簡潔な識別情報と復号のための対応するコードブックとを用いて、追跡された経路をトラバースするパケットに印を付けるネットワークのスイッチに、１組の制御メッセージを生成すること、デコーダによって、エンコーダが出力したコードブックを使用して経路識別情報をホップバイホップの情報に変換することを含む。
【００１１】
本発明の他の同様の態様では、ソフトウェア定義ネットワークの経路追跡のための命令を用いるコンピュータによって実行される方法であって、該方法は、ネットワークをトラブルシューティングするためにソフトウェア定義ネットワークのレイヤ２経路追跡を提供することを含み、経路追跡は、ユーザインターフェースを介して、追跡する対象の経路または受信されたパケットのヘッダの経路識別の入力を取り込むことと、エンコーダによって、入力を受信するとともに、簡潔な識別情報と復号のための対応するコードブックとを用いて、追跡された経路をトラバースするパケットに印を付けるネットワークのスイッチに、１組の制御メッセージを生成することと、デコーダによって、エンコーダが出力したコードブックを使用して経路識別情報をホップバイホップの情報に変換することを含む。
【００１２】
本発明のこれらおよび他の利点は、以下の詳細な説明および添付の図面を参照することによって、当業者には明白になるであろう。
【図面の簡単な説明】
【００１３】
【図１】本発明による経路追跡のための構成を示す。
【図２】図１に示した本発明の経路追跡によって追跡される７つの経路を用いるＬ２ネットワークの一例を示す。
【図３】本発明による、経路追跡の符号化を示す図である。
【図４】本発明の経路追跡によって追跡される７つの経路の有向非巡回グラフＤＡＧの例を示す図である。
【図５】本発明の経路追跡によって追跡される７つの経路のコードブックの例を示す図である。
【図６】図２の７つの経路を追跡するための４つのフローテーブルエントリを示す図である。
【図７】本発明による、タイプ（ｃ）入口ポートおよび対応するフローテーブルエントリの例を示す図である。
【図８】本発明による経路追跡のための復号化を詳しく示す図である。
【図９】本発明の経路追跡をサポートするための代表的なコンピュータまたはコントローラを示す図である。
【発明を実施するための形態】
【００１４】
本発明は、パストレーサ（ＰａｔｈＴｒａｃｅｒ）と呼ばれるＳＤＮレイヤ２経路追跡ユーティリティを実行することに関する。正確さを保証するために、パストレーサは、パケットヘッダのいくつかのオクテットを再使用して転送に沿って経路情報を運ぶ。これを達成するために、パストレーサは、制御プレーンを利用してスイッチにフローテーブルエントリをインストールすることができ、次いで、パケットがトラバースしているときに、これらのスイッチは、それらのインプリントを符号化する。
【００１５】
しかし、経路を区別するのに数ビットでは十分ではなく、拡張性の課題はまだ残っている。これらの問題を取り扱うために、パストレーサは、対象の経路だけに対応するスイッチの小さな組にフローテーブルエントリを配布する。経路符号化がデータプレーンで生じるとき、パストレーサが制御プレーンに導入するオーバヘッドは、対象の経路にあるスイッチの数によって制限されるだけである。パケットが宛先に到着すると、パストレーサは、単にパス情報を復号して、パケットのヘッダから追跡されたパケットの実際の経路を決定する。
【００１６】
図１は、本発明（ＳＤＮレイヤ２経路追跡用のパストレーサ）のアーキテクチャを示している。フローチャートについては、以下に詳細に説明する。
【００１７】
ユーザインターフェースＵＩ１０１は、追跡する対象の経路、または一部のホストでの受信されたパケットのヘッダの経路ＩＤを入力として取り込み、適宜、それをエンコーダまたはデコーダのコンポーネントに転送する。
【００１８】
エンコーダ１０２は、簡潔な経路ＩＤ情報と復号のための対応するコードブックとを用いて、追跡された経路をトラバースするパケットに印を付けるスイッチに、１組の制御メッセージを生成する。
【００１９】
デコーダ１０３は、エンコーダによって出力されたコードブックを使用して、経路ＩＤ情報を実際のホップバイホップの経路情報に変換する。
【００２０】
再びユーザインターフェースＵＩ１０１を参照すると、ＵＩは、ユーザに２種類の対話を提供する。すなわち、ユーザが１組のＬ２経路を入力する経路追跡、及び、ユーザがパケット内の符号化された経路ＩＤ、そのパケットが受信されるホストおよびそのパケットが受信される時間を入力する経路問い合わせである。経路追跡について、ＵＩは、エンコーダへユーザ入力を転送する。経路問い合わせについて、ＵＩは、デコーダにユーザ入力を転送し、デコーダからの完全なパス情報をユーザに返す。追跡される７つの経路を用いる例示的なＬ２ネットワークについて、以下の図２に示している。
【００２１】
図３は、パストレーサの符号化手順を詳しく示している。参照１０１、１０２および１０３は、図１に最初に示した要素を指している。残りのブロック要素２０１〜２０４については、以下に詳しく記述する。
【００２２】
ブロック要素２０１は、有向非巡回グラフＤＡＧ生成である。対象の経路の有効性に対する必要なサニティチェックの後に、エンコーダは、有効な経路を構成することによって、有向非巡回グラフ（ＤＡＧ）の森を構築する。各ＤＡＧで、エンコーダは、仮想ルートノードを作成し、それからのリンクを程度０ですべてのノードに追加する。
【００２３】
図２の７つの経路から構成された２つのＤＡＧが図４に示されている。Ｇ１は、経路６−＞５−＞３−＞２−＞１を含み、一方、Ｇ２は、６つの経路の残りを含む。
【００２４】
ブロック要素２０２は、経路ＩＤ生成を参照し、２つの態様２０２．ａおよび２０２．ｂを有する。各ＤＡＧで、エンコーダは、含まれる経路のＩＤを生成するために以下の手順を適用する。
２０２．ａ
本手順は、トポロジの順にノードをトラバースし、各エッジの経路数（ＰＮ）を計算する。各ノードｎに関して、第１の入ってくるエッジに対するＰＮ値は０である。残りのエッジｅのそれぞれについて、（ｐ−＞ｎ）ＰＮ値は、仮想ルートノードからｐまでの可能な経路の合計である。
２０２．ｂ
本手順は、ＤＡＧで縦型探索を適用し、追跡された経路に対する最終ノードに到達したときに経路ＩＤを出力し、ＩＤは、仮想ルートノードからそのノードまでのすべてのエッジのＰＮの合計である。
【００２５】
例えば、図４のＧ２は、ｅ：（８−＞４）およびｅ：（４−＞５）以外のすべての０〜ＰＮエッジを持つ。したがって、経路８−＞４−＞５−＞６のＩＤは、（１＋２＋０）＝３（２進数で１１）である。
【００２６】
ブロック要素２０３は、コードブック生成部を参照する。２０２の出力で、エンコーダは、追跡された経路に対するコードブックを編集する。コードブックは、経路ＩＤが有効なときの時間期間Ｔ、経路ＩＤ、パケットがホストへ転送される前の最後のスイッチのサイト、および完全な経路情報という４つのフィールドを含む。
【００２７】
図２の７つの追跡された経路に対するコードブックを図５に示す。
【００２８】
ブロック要素２０４は、オープンフロー（ＯｐｅｎＦｌｏｗ）スイッチのフローテーブルエントリ生成を参照する。経路ＩＤを計算した後、エンコーダは、ＤＡＧのすべてのスイッチに対して制御メッセージを生成してオンライン経路追跡を可能にする。経路追跡のためのＤＡＧのスイッチには、（ａ）追跡された経路がトラバースしないポート、（ｂ）それにトラバースするすべての追跡された経路が同じＩＤ値を共有するポート、および（ｃ）それにトラバースする追跡された複数の経路の複数のＩＤがあるポートという３つのタイプの入口ポートがある。ＯｐｅｎＦｌｏｗスイッチのフローテーブルエントリ生成は、以下に記述した態様２０４．ａ、２０４．ｂおよび２０４．ｃを含む。
【００２９】
２０４．ａ
タイプ（ａ）の入口ポートについて、スイッチｉは、デフォルトの経路なし（ｎｏ−ｐａｔｈ）値ＩＤ（ＮＵＬＬ）として経路ＩＤフィールドを設定する必要がある。例えば、経路ＩＤ情報を運ぶためにサービス（ＴｏＳ）フィールドのタイプで上位６ビットを使用することを選択した場合、そのような入口ポートに到着するパケットは、値ＩＤ（ＮＵＬＬ）としてそのＴｏＳフィールドを修正するアクションに適用されるように、エンコーダは、スイッチｉでフローテーブルエントリを追加する。ＩＤ（ＮＵＬＬ）がフィールドのデフォルト値に選択され（例えばＴｏＳに対して０）、そのようなフィールドでの変更が、経路追跡によってのみ引き起こされる場合、タイプ（ａ）入口ポートに対する制御メッセージおよび結果として得られるテーブルエントリは放棄してもよい。
【００３０】
２０４．ｂ
タイプ（ｂ）の入口ポートについて、スイッチｉは、一意の経路ＩＤ値ＩＤ（Ｘ）として経路ＩＤフィールドを設定する必要がある。例えば、そのような入口ポートに到着するパケットは、値ＩＤ（Ｘ）としてそのＴｏＳフィールドを修正するアクションを適用されるため、エンコーダは、スイッチｉでフローテーブルエントリを追加する。最適化として、エンコーダは、仮想ルートノードから縦型探索を行い、その入力リンクがＩＤ（Ｘ）を用いる経路だけを持っているすべての経路がトラバースする第１のスイッチｉを発見し、その経路のｉのみがＩＤ（Ｘ）設定に対してテーブルエントリを追加される。
【００３１】
７つの経路を追跡するための４つのフローテーブルエントリを図６に示す。経路６−＞５−＞３−＞２−＞１について、スイッチ６に接続するスイッチ５の入口ポートはタイプ（ｂ）であり、経路に沿った最初のそのような入口ポートであるので、スイッチ５だけが、経路ＩＤ０に対してテーブルエントリを追加する必要がある。同様に、（スイッチ２に接続する）スイッチ３の入口ポートは、ＩＤ０を用いる２つの経路に対してタイプ（ｂ）であり、（スイッチ２に接続する）スイッチ４の入口ポートは、ＩＤ２を用いる２つの経路に対してタイプ（ｂ）であり、（スイッチ８に接続する）スイッチ４の入口ポートは、ＩＤ３を用いる２つの経路に対するタイプ（ｂ）であり、スイッチ３および４は、それらの経路に沿ったタイプ（ｂ）ポートを持つ第１のスイッチである。実際に、デフォルト値ＩＤ（ＮＵＬＬ）に対して０を予約し、値１によってＩＤ０を用いる３つの経路を置き換える場合、これらの４つのフローテーブルエントリは、エンコーダが７つの経路に対して作成する必要のある唯一のエントリである。
【００３２】
２０４．ｃ
タイプ（ｃ）の入口ポートについて、エンコーダは、最初に、トラバースする経路の中で、いずれかの経路がタイプ（ｂ）の入口ポートをトラバースするかどうかをチェックする。そのような経路について、それらは経路の組から取り除かれる。チェックの後に経路の組が空になった場合、このポートについてフローテーブルエントリが追加される必要はない。そうでない場合、このポートで終了するエッジｅのＰＮ値が０でない場合、エンコーダは、１組のエントリを追加してＩＤ追加動作を実現する。その場合、エンコーダは、ＰＮ（ｅ）以外のすべての０でないＰＮ値について、仮想ルートノードからスイッチｉまでの経路を検索する。それらのＰＮ値および値０の可能な各組み合わせについて、テーブルエントリが作成されるため、ＴｏＳフィールドを用いて入口ポートに到着するパケットが、組み合わせの合計に等しく、組み合わせおよびＰＮ（ｅ）の合計としてそのＴｏＳフィールドを修正するアクションが適用される。
【００３３】
タイプ（ｃ）入口ポートおよび対応するフローテーブルエントリの例を図７に示す。図７は、追跡のための４つの経路およびそのＤＡＧを示す。２０２に記述するように、オフライン符号化アルゴリズムは、経路ＩＤ（０、１、２、３）、およびエッジ３−＞４（ＰＮ＝１）および６−＞７（ＰＮ＝２）以外のＰＮ値０を用いるすべてのエッジを割り当てる。便宜上、それをトラバースする経路ＩＤで各エッジにラベルを付ける。すべての４つの経路がタイプ（ｂ）入口ポートをトラバースしない場合、エンコーダは、０でないＰＮを用いる入力エッジを持つスイッチ４および７においてフローテーブルエントリを作成する。スイッチ４について、ＰＮ値１を持つＴｏＳフィールドに印を付けるために、１つのエントリだけが作成される。スイッチ７について、（１；０）および０のＰＮの組み合わせに対して、２つのエントリが作成され、したがって、値（１＋０＋２）＝３および（０＋２）＝２を用いてＴｏＳフィールドに印を付ける。
【００３４】
図８は、本発明のＰａｔｈＴｒａｃｅｒにおける復号手順の詳細を示す。機能３０１は、レゾリューション（ｒｅｓｏｌｕｔｉｏｎ）を切り替えるためにホストを参照し、機能３０２は、経路レゾリューションを参照する。
【００３５】
レゾリューション３０１を切り替えるためにホストを参照すると、ユーザが時間ｔにホストｘで受信されたパケットで符号化された経路ＩＤｉで問い合わせを送る場合、デコーダは、初めにネットワークトポロジ情報を使用して、ｘが添付されたスイッチ（サイト）ｓに対してｘを解決する。
【００３６】
経路レゾリューション３０２を参照すると、デコーダは、次いで、（ｔ；ｉ；ｓ）を用いて２０３によって出力されたコードブックを調べ、３タプル値に一致する完全な経路情報を返す。
【００３７】
パストレーサの発明は、ハードウェア、ファームウェアもしくはソフトウェア、または３つの組み合わせにおいて実行されてもよい。それは、システムまたはコンピュータのプラグインもしくはモジュールの場合があり、またはモジュールは、自己完結型の場合がある。好ましくは、本発明は、プロセッサ、データ記憶システム、揮発性および不揮発性のメモリおよび／または記憶要素、少なくとも１つの入力デバイスならびに少なくとも１つの出力デバイスを持っているプログラム可能なコンピュータまたはコントローラで実行されるコンピュータプログラムにおいて実行される。より詳細な内容が米国特許出願第８３８０５５７号に記述されており、その内容が参照によって組み込まれる。
【００３８】
例として、本発明をサポートするコンピュータまたはコントローラのブロック図が、次の図９で記述されている。コンピュータは、好ましくは、プロセッサ、ランダムアクセスメモリ（ＲＡＭ）、プログラムメモリ（好ましくはフラッシュＲＯＭなど書き込み可能な読み取り専用メモリ（ＲＯＭ））、およびＣＰＵバスによって結合された入力／出力（Ｉ／Ｏ）コントローラを含む。コンピュータは、ハードディスクおよびＣＰＵバスに結合されているハードドライブコントローラを任意に含むことができる。ハードディスクは、本発明などのアプリケーションプログラム、およびデータを記憶するために使用してよい。あるいは、アプリケーションプログラムは、ＲＡＭまたはＲＯＭに記憶してもよい。Ｉ／Ｏコントローラは、Ｉ／Ｏバスを使ってＩ／Ｏインターフェースに結合される。Ｉ／Ｏインターフェースは、シリアルリンク、ローカルエリアネットワーク、ワイヤレスリンクおよびパラレルリンクなどの通信リンクを通じて、アナログまたはデジタルの形式でデータを受信および送信する。任意に、ディスプレイ、キーボードおよびポインティングデバイス（マウス）がＩ／Ｏバスに接続されてもよい。あるいは、Ｉ／Ｏインターフェース、ディスプレイ、キーボードおよびポインティングデバイスについて、個別の接続（個別のバス）が使用されてもよい。プログラム可能な処理システムは、事前にプログラムしてもよいか、または別のソース（例えばフロッピーディスク、ＣＤ−ＲＯＭまたは別のコンピュータ）からプログラムをダウンロードすることによってプログラム（および再プログラム）してもよい。
【００３９】
各コンピュータプログラムは、記憶媒体またはデバイスが本明細書に記述された手順を実行するためにコンピュータによって読み込まれるときに、コンピュータの動作を構成および制御するために、汎用または専用のプログラム可能なコンピュータによって読み取り可能な機械可読の記憶媒体またはデバイス（たとえばプログラムメモリまたは磁気ディスク）に有形に記憶される。また、本発明のシステムは、コンピュータプログラムを用いて構成された、コンピュータ可読記憶媒体で具体化されると考えてもよい。ここで、記憶媒体は、本明細書に記述された機能を実行するために特定の事前定義された方法でコンピュータを動作させるように構成される。
【００４０】
前述の内容から、本発明は、監視を提供し、運用中のＳＤＮネットワークのトラブルシューティングは、それらのサイズ、分散された状態およびネットワーク仮想化によって導入される追加的な複雑さのために、手ごわい作業になることが理解され得る。本発明は、データプレーンにおいて、ネットワークパケットが望まれるルートを取ったかどうかを伝える、柔軟かつ低オーバヘッドのオンデマンド式パケット追跡技術を提供する。これは、オペレータ／インテグレータが、データ経路のルーティング問題を分析するのを加速するのを支援することができ、新しいネットワークの可視化およびトラフィック分析を可能にする。また、そのような経路追跡情報は、パフォーマンス最適化、例えば負荷バランシングにおける様々なルーティングオプションの比較や、ルーティング検証、例えばルーティングアルゴリズムが正しく実行されることの保証や、リソース割り当て、例えばネットワークのホットスポットおよびコールドスポットの特定、といったことを実行する際に、ネットワークオペレータにとって重要である。
【００４１】
前述の内容は、あらゆる点において、制限的ではなく、実例および代表的なものと理解するべきであり、本明細書に開示した本発明の範囲は、詳細な説明からではなく、特許法によって許可された完全な範囲により解釈される請求項から決定されるものである。本明細書に図示および記述した実施態様は、本発明の原理の例に過ぎず、当業者は、本発明の範囲および精神から逸脱することなく、様々な変更を実装してもよいことを理解されたい。当業者は、本発明の範囲および精神から逸脱することなく、様々な他の機能の組み合わせを実装することができる。
【図１】
0006348983.tif 000002
【図２】
0006348983.tif 000003
【図３】
0006348983.tif 000004
【図４】
0006348983.tif 000005
【図５】
0006348983.tif 000006
【図６】
0006348983.tif 000007
【図７】
0006348983.tif 000008
【図８】
0006348983.tif 000009
【図９】
0006348983.tif 000010