(57)【要約】  セッションセンダとセッションリフレクタの間の順方向および逆方向における単一のテストセッションにおいて、ＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ）およびＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）が変更されたかを判定するためのテストを実行することを、前記セッションセンダを実装するネットワークデバイスにより実行される方法であって、複数のＤＳＣＰおよびＥＣＮは、前記単一のテストセッションを用いてテストされる。前記方法は、第１の最初フォワードＤＳＣＰおよびＥＣＮを決定することと、前記第１の最初フォワードＤＳＣＰおよびＥＣＮを含む第１のテストパケットを生成することと、前記単一のテストセッションにおいて、前記第１のテストパケットを前記セッションリフレクタへ送信することとを有する。前記方法は更に、第２の最初フォワードＤＳＣＰおよびＥＣＮを決定することと、前記第２の最初フォワードＤＳＣＰおよびＥＣＮを含む第２のテストパケットを生成することと、前記単一のテストセッションにおいて、前記第２のテストパケットを前記セッションリフレクタへ送信することとを有する。
2019504568.tif 000002
【特許請求の範囲】
【請求項１】
セッションセンダとセッションリフレクタの間の順方向および逆方向における単一のテストセッションにおいて、ＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ）およびＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）が変更されたかを判定するためのテストを実行する前記セッションセンダを実装するネットワークデバイスにより実行される方法であって、
複数のＤＳＣＰおよびＥＣＮは、前記単一のテストセッションを用いてテストされ、
前記方法は、
第１の最初フォワードＤＳＣＰおよびＥＣＮを決定することと、
前記第１の最初フォワードＤＳＣＰおよびＥＣＮを含む第１のテストパケットを生成することと、
前記単一のテストセッションにおいて、前記第１のテストパケットを前記セッションリフレクタへ送信することと、
第２の最初フォワードＤＳＣＰおよびＥＣＮを決定することと、
前記第２の最初フォワードＤＳＣＰおよびＥＣＮを含む第２のテストパケットを生成することと、
前記単一のテストセッションにおいて、前記第２のテストパケットを前記セッションリフレクタへ送信することと
を有することを特徴とする方法。
【請求項２】
第１の最初リバースＤＳＣＰおよびＥＣＮを決定することであって、前記第１のテストパケットは、前記第１の最初リバースＤＳＣＰおよびＥＣＮを含む、ことと、
最終フォワードＤＳＣＰおよびＥＣＮと、最終リバースＤＳＣＰおよびＥＣＮを同じテストセッションに含む第３のテストパケットを受信することと
を更に有することを特徴とする請求項１に記載の方法。
【請求項３】
前記第１の最初フォワードＤＳＣＰおよびＥＣＮは、前記第１のテストパケットのＩＰヘッダの中にあることを特徴とする請求項１に記載の方法。
【請求項４】
前記第１の最初リバースＤＳＣＰおよびＥＣＮは、前記第１のテストパケットのペイロードの中にあることを特徴とする請求項２に記載の方法。
【請求項５】
前記第１の最初フォワードＤＳＣＰおよびＥＣＮと、前記最終フォワードＤＳＣＰおよびＥＣＮとを比較し、前記順方向におけるＩＰヘッダの変更を判定することと、
前記第１の最初リバースＤＳＣＰおよびＥＣＮと、前記最終リバースＤＳＣＰおよびＥＣＮとを比較し、前記逆方向におけるＩＰヘッダの変更を判定することと
を更に有することを特徴とする請求項２に記載の方法。
【請求項６】
セッションセンダとセッションリフレクタの間の順方向および逆方向における単一のテストセッションにおいて、ＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ）およびＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）が変更されたかを判定するためのテストを実行する前記セッションセンダを実装するネットワークデバイスにより実行される方法であって、
複数のＤＳＣＰおよびＥＣＮは、前記単一のテストセッションを用いてテストされ、
前記方法は、
前記セッションセンダと前記セッションリフレクタとの間で用いられるべき、最初フォワードＤＳＣＰおよびＥＣＮと、最初リバースＤＳＣＰおよびＥＣＮとをネゴシエートすることと、
前記最初フォワードＤＳＣＰおよびＥＣＮを用いて第１のテストパケットを生成することと、
シーケンス番号を含む前記第１のテストパケットを、前記セッションリフレクタへ送信することと、
前記シーケンス番号と共に、前記セッションリフレクタから第２のテストパケットを受信することと、
前記シーケンス番号を用いて、前記第１のテストパケットと前記第２のテストパケットとを関連付けることと、
前記単一のテストセッションにおいて、前記複数のＤＳＣＰおよびＥＣＮのそれぞれがテストされるまで、前記複数のＤＳＣＰおよびＥＣＮのそれぞれの反復することと
を有することを特徴とする方法。
【請求項７】
セッションセンダとセッションリフレクタの間の順方向および逆方向における単一のテストセッションにおいて、ＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ）およびＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）が変更されたかを判定するためのテストを実行する前記セッションリフレクタを実装するネットワークデバイスにより実行される方法であって、
複数のＤＳＣＰおよびＥＣＮは、前記単一のテストセッションを用いてテストされ、
前記方法は、
前記単一のテストセッション内にて、セッションセンダから第１のテストパケットを受信することと、
前記第１のテストパケット内の最終フォワードＤＳＣＰおよびＥＣＮを識別することと、
前記第１のテストパケット内の最初リバースＤＳＣＰおよびＥＣＮを識別することと、
前記最終フォワードＤＳＣＰおよびＥＣＮと、前記最初リバースＤＳＣＰおよびＥＣＮを含む第２のテストパケットを生成することと、
前記単一のテストセッション内にて、前記第２のテストパケットを前記セッションセンダへ送信することと、
前記単一のテストセッションにおいて、前記複数のＤＳＣＰおよびＥＣＮのそれぞれがテストされるまで、前記複数のＤＳＣＰおよびＤＣＮを反復することと
を有することを特徴とする方法。
【請求項８】
前記最終フォワードＤＳＣＰおよびＥＣＮは、前記第１のテストパケットのＩＰヘッダの中にあることを特徴とする請求項７に記載の方法。
【請求項９】
前記最初リバースＤＳＣＰおよびＥＣＮは、前記第１のテストパケットのペイロードの中にあることを特徴とする請求項７に記載の方法。
【請求項１０】
最初フォワードＤＳＣＰおよびＥＣＮと、前記最初リバースＤＳＣＰおよびＥＣＮとを、前記セッションセンダとネゴシエートすること、を更に有することを特徴とする請求項７に記載の方法。
【請求項１１】
前記第２のテストパケットは、前記第１のテストパケットからの受信したシーケンス番号と一致するシーケンス番号を含むことを特徴とする請求項７に記載の方法。
【請求項１２】
セッションセンダとセッションリフレクタの間の順方向および逆方向における単一のテストセッションにおいて、ＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ）およびＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）が変更されたかを判定するためのテストを実行する、前記セッションセンダを実装するネットワークデバイスであって、
複数のＤＳＣＰおよびＥＣＮは、前記単一のテストセッションを用いてテストされ、
前記ネットワークデバイスは、
テストセッションマネージャを格納している非一時的マシン読み込み可能媒体と、
前記非一時的マシン読み込み可能媒体に結合されたプロセッサと
を有し、
前記プロセッサは、前記テストセッションマネージャを実行し、
前記テストセッションマネージャは、第１の最初ＤＳＣＰおよびＥＣＮを決定し、前記第１の最初フォワードＤＳＣＰおよびＥＣＮを含む第１のテストパケットを生成し、前記単一のテストセッションにおいて、前記セッションリフレクタへ前記第１のテストパケットを送信し、第２の最初フォワードＤＳＣＰおよびＥＣＮを決定し、前記第２の最初フォワードＤＳＣＰおよびＥＣＮを含む第２のテストパケットを生成し、前記単一のテストセッションにおいて、前記セッションリフレクタへ前記第２のテストパケットを送信するように構成される
ことを特徴とするネットワークデバイス。
【請求項１３】
前記テストセッションマネージャは更に、第１の最初リバースＤＳＣＰおよびＥＣＮを決定し、前記第１のテストパケットは、前記第１の最初リバースＤＳＣＰおよびＥＣＮを含み、同じテストセッション内にて、第１の最終フォワードＤＳＣＰおよびＥＣＮと、最終リバースＤＳＣＰおよびＥＣＮとを含む第３のテストパケットを受信するように構成されることを特徴とする請求項１２に記載のネットワークデバイス。
【請求項１４】
前記第１の最初フォワードＤＳＣＰおよびＥＣＮは、前記第１のテストパケットのＩＰヘッダの中にあることを特徴とする請求項１２に記載のネットワークデバイス。
【請求項１５】
前記第１の最初リバースＤＳＣＰおよびＥＣＮは、前記第１のテストパケットのペイロードの中にあることを特徴とする請求項１３に記載のネットワークデバイス。
【請求項１６】
複数のネットワークデバイスを有するネットワーク内のネットワークデバイスと通信するコンピューティングデバイスであって、
前記コンピューティングデバイスは、ＮＦＶ（Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）を実現するための複数の仮想マシンを実行し、
前記複数の仮想マシンのうちの仮想マシンは、セッションセンダとセッションリフレクタの間の順方向および逆方向における単一のテストセッションにおいて、ＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ）およびＥＣＮ  （Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）が変更されたかを判定するためのテストを実行する前記セッションセンダを実行し、
複数のＤＳＣＰおよびＥＣＮは、前記単一のテストセッションを用いてテストされ、
前記コンピューティングデバイスは、
テストセッションマネージャを格納している非一時的マシン読み込み可能媒体と、
前記非一時的マシン読み込み可能媒体に結合されたプロセッサと
を有し、
前記プロセッサは、仮想マシンを実行し、
前記仮想マシンは、前記テストセッションマネージャを実行し、
前記テストセッションマネージャは、第１の最初フォワードＤＳＣＰおよびＥＣＮを決定し、前記第１の最初フォワードＤＳＣＰおよびＥＣＮを含む第１のテストパケットを生成し、前記単一のテストセッションにおいて、前記セッションリフレクタへ前記第１のテストパケットを送信し、第２の最初フォワードＤＳＣＰおよびＥＣＮを決定し、前記第２の最初フォワードＤＳＣＰおよびＥＣＮを含む第２のテストパケットを生成し、前記単一のテストセッションにおいて、前記セッションリフレクタへ前記第２のテストパケットを送信するように構成される
ことを特徴とするコンピューティングデバイス。
【請求項１７】
前記テストセッションマネージャは更に、第１の最初リバースＤＳＣＰおよびＥＣＮを決定し、前記第１のテストパケットは、前記第１の最初リバースＤＳＣＰおよびＥＣＮを含み、同じテストセッション内にて、最終フォワードＤＳＣＰおよびＥＣＮと、最終リバースＤＳＣＰおよびＥＣＮを含む第３のテストパケットを受信するように構成されることを特徴とする請求項１６に記載のコンピューティングデバイス。
【請求項１８】
前記最終リバースＤＳＣＰおよびＥＣＮは、前記第３のテストパケットのＩＰヘッダの中にあることを特徴とする請求項１７に記載のコンピューティングデバイス。
【請求項１９】
前記最終フォワードＤＳＣＰおよびＥＣＮは、前記第３のテストパケットのペイロードの中にあることを特徴とする請求項１７に記載のコンピューティングデバイス。
【請求項２０】
複数のネットワークデバイスを含むＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋｉｎｇ）ネットワークの制御プレーンを実装するように構成された制御プレーンデバイスであって、
前記制御プレーンデバイスは、セッションセンダとセッションリフレクタの間の順方向および逆方向における単一のテストセッションにおいて、ＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ）およびＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）が変更されたかを判定するためのテストを実行する、前記セッションセンダを実装する方法を実行するように構成され、
複数のＤＳＣＰおよびＥＣＮは、前記単一のテストセッションを用いてテストされ、
前記制御プレーンデバイスは、
テストセッションマネージャを格納している非一時的マシン読み込み可能媒体と、
前記非一時的マシン読み込み可能媒体に結合されたプロセッサと
を有し、
前記プロセッサは、前記テストセッションマネージャを実行し、
前記テストセッションマネージャは、次の最初フォワードＤＳＣＰおよびＥＣＮを決定し、次の最初リバースＤＳＣＰおよびＥＣＮを決定し、前記次の最初フォワードＤＳＣＰおよびＥＣＮと、前記次の最初リバースＤＳＣＰおよびＥＣＮを含む第１のテストパケットを生成し、前記単一のテストセッションにおいて、前記セッションリフレクタへ前記第１のテストパケットを送信し、最終フォワードＤＳＣＰおよびＥＣＮと、最終リバースＤＳＣＰおよびＥＣＮを含む第２のテストパケットを、同じテストセッションにて受信し、前記単一のテストセッションにおいて前記複数のＤＳＣＰおよびＥＣＮのそれぞれがテストされるまで、前記複数のＤＳＣＰおよびＥＣＮのそれぞれを反復する、ように構成される
ことを特徴とする制御プレーンデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、本願と同じ日に出願された“ＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ）およびＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）のモニタリングを構成する制御プレーンのための方法および装置”にてタイトル付けされた出願に関連する。
【０００２】
発明の実施形態は、データトラフィックの計測の分野に関し、より具体的には、ＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ）の値、およびＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）の値をモニタリングすることに関する。実施形態は単一のテストセッションを用いてＤＳＣＰおよびＥＣＮの複数の組み合わせのテストを可能とする。
【背景技術】
【０００３】
ＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）のＲＦＣ（Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔ）５３５７により定義されているＴＷＡＭＰ（Ｔｗｏ−Ｗａｙ  Ａｃｔｉｖｅ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）は、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークにおける遅延や遅延変動を計測するために広く用いられている。ＴＷＡＭＰは、ＩＥＴＦ  ＲＦＣ  ４６５６により定義されている先のプロトコルＯＷＡＭＰ（Ｏｎｅ−Ｗａｙ  Ａｃｔｉｖｅ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）に基づいている。ＴＷＡＭＰは、ネットワークデバイス間の双方向メトリックを計測するための一般的なプロトコルである。計測は、２つのネットワークデバイス間のテストセッションにおけるデータトラフィックの、双方向または往復の計測を可能とするテストセッションにおいて実行される。
【０００４】
ＴＷＡＭＰは、２つの内部関連プロトコル：制御プロトコル（ＴＷＡＭＰ制御）およびテストプロトコル（ＴＷＡＭＰテスト）から構成される。ＴＷＡＭＰ制御は、テストセッションの起動、開始、および停止のために用いられるのに対し、ＴＷＡＭＰテストは、２つのＴＷＡＭＰエンティティ間のテストパケットの交換のために用いられる。セッションセンダ、セッションリフレクタ、サーバ、および制御クライアントと呼ばれる、ＴＷＡＭＰエンティティまたはＴＷＡＭＰ論理エンティティの組が存在する。
【０００５】
制御クライアントは、グリーティングメッセージで応答する、サーバとのＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）接続を起動する。制御クライアントは、モード情報で応答し、サーバは次にその受諾を送信する。制御クライアントは、セッションセンダを、テストリフレクタとのテストセッション内のテストパケットを送信するように構成する。サーバは、セッションセンダから受信したテストパケットをセッションセンダに返すように、テストリフレクタを構成する。したがって、この方法において、ＴＷＡＭＰは、セッションセンダが、セッションセンダとセッションリフレクタそれぞれを実装しているネットワークデバイス間のデータトラフィックのフローを識別し、計測できるテストセッションを確立する。
【０００６】
各テストセッションは、ＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ）およびＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）のフィールドで行われる。ＴＷＡＭＰへのＤＳＣＰおよびＥＣＮのモニタリングの拡張は、オペレータに、２つのテストポイント間の順方向および逆方向において、意図的または間違った、ＤＳＣＰフィールドの批評もＥＣＮフィールドの変化も検知させる。しかし、ＤＳＣＰやＥＣＰの複数の組み合わせをテストすることは、各組み合わせに対して確立されるべき別個のテストセッションを要求する。したがって、ＴＷＡＭＰ制御プロトコルが、ＴＷＡＭＰテストセッションとネゴシエートするために用いられる場合、送信元および宛先のＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）のポート番号を含むテストパラメータが再ネゴシエートされ、ＤＳＣＰおよびＥＣＮのモニタリングの結果に影響を及ぼす可能性がある。また、ＴＷＡＭＰがＣＬＩ（Ｃｏｍｍａｎｄ  Ｌｏｎｅ  Ｉｎｔｅｒｆａｃｅ）またはＮＭＳ（Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）／中央コントローラにより制御される場合、別個のテストセッションが設定されなければならない。
【発明の概要】
【０００７】
一つの実施形態において、セッションセンダとセッションリフレクタの間の順方向および逆方向における単一のテストセッションにおいて、ＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ）およびＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）が変更されたかを判定するためのテストを実行する前記セッションセンダを実装するネットワークデバイスにより実行される方法であって、複数のＤＳＣＰおよびＥＣＮは、前記単一のテストセッションを用いてテストされる。前記方法は、第１の最初フォワードＤＳＣＰおよびＥＣＮを決定することと、前記第１の最初フォワードＤＳＣＰおよびＥＣＮを含む第１のテストパケットを生成することと、前記単一のテストセッションにおいて、前記第１のテストパケットを前記セッションリフレクタへ送信することとを有する。前記方法は更に、第２の最初フォワードＤＳＣＰおよびＥＣＮを決定することと、前記第２の最初フォワードＤＳＣＰおよびＥＣＮを含む第２のテストパケットを生成することと、前記単一のテストセッションにおいて、前記第２のテストパケットを前記セッションリフレクタへ送信することとを有する。
【０００８】
別の実施形態において、セッションセンダとセッションリフレクタの間の順方向および逆方向における単一のテストセッションにおいて、ＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ）およびＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）が変更されたかを判定するためのテストを実行する前記セッションセンダを実装するネットワークデバイスにより実行される方法であって、複数のＤＳＣＰおよびＥＣＮは、前記単一のテストセッションを用いてテストされる。前記方法は、前記セッションセンダと前記セッションリフレクタとの間で用いられるべき、最初フォワードＤＳＣＰおよびＥＣＮと、最初リバースＤＳＣＰおよびＥＣＮとをネゴシエートすることと、前記最初フォワードＤＳＣＰおよびＥＣＮを用いて第１のテストパケットを生成することと、シーケンス番号を含む前記第１のテストパケットを、前記セッションセンダへ送信することとを有する。前記方法は更に、前記シーケンス番号と共に、前記セッションリフレクタから第２のテストパケットを受信することと、前記シーケンス番号を用いて、前記第１のテストパケットと前記第２のテストパケットとを関連付けることと、前記単一のテストセッションにおいて、前記複数のＤＳＣＰおよびＥＣＮのそれぞれがテストされるまで、前記複数のＤＳＣＰおよびＥＣＮのそれぞれの反復することとを有する。
【０００９】
一つの実施形態において、セッションセンダとセッションリフレクタの間の順方向および逆方向における単一のテストセッションにおいて、ＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ）およびＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）が変更されたかを判定するためのテストを実行する前記セッションリフレクタを実装するネットワークデバイスにより実行される方法であって、複数のＤＳＣＰおよびＥＣＮは、前記単一のテストセッションを用いてテストされる。前記方法は、前記単一のテストセッション内にて、セッションセンダから第１のテストパケットを受信することと、前記第１のテストパケット内の最終フォワードＤＳＣＰおよびＥＣＮを識別することと、前記第１のテストパケット内の最初リバースＤＳＣＰおよびＥＣＮを識別することとを有する。前記方法は更に、前記最終フォワードＤＳＣＰおよびＥＣＮと、前記最初リバースＤＳＣＰおよびＥＣＮを含む第２のテストパケットを生成することと、前記単一のテストセッション内にて、前記第２のテストパケットを前記セッションセンダへ送信することと、前記単一のテストセッションにおいて、前記複数のＤＳＣＰおよびＥＣＮのそれぞれがテストされるまで、前記複数のＤＳＣＰおよびＤＣＮを反復することとを有する。
【００１０】
一つの実施形態において、セッションセンダとセッションリフレクタの間の順方向および逆方向における単一のテストセッションにおいて、ＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ）およびＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）が変更されたかを判定するためのテストを実行する、前記セッションセンダを実装するネットワークデバイスであって、複数のＤＳＣＰおよびＥＣＮは、前記単一のテストセッションを用いてテストされる。前記ネットワークデバイスは、テストセッションマネージャを格納している非一時的マシン読み込み可能媒体と、プロセッサとを有する。前記プロセッサは、前記非一時的マシン読み込み可能媒体に結合される。前記プロセッサは、前記テストセッションマネージャを実行する。前記テストセッションマネージャは、第１の最初フォワードＤＳＣＰおよびＥＣＮを決定し、前記第１の最初フォワードＤＳＣＰおよびＥＣＮを含む第１のテストパケットを生成し、前記単一のテストセッションにおいて、前記セッションリフレクタへ前記第１のテストパケットを送信し、第２の最初フォワードＤＳＣＰおよびＥＣＮを決定し、前記第２の最初フォワードＤＳＣＰおよびＥＣＮを含む第２のテストパケットを生成し、前記単一のテストセッションにおいて、前記セッションリフレクタへ前記第２のテストパケットを送信するように構成される。
【００１１】
一つの実施形態において、複数のネットワークデバイスを有するネットワーク内のネットワークデバイスと通信するコンピューティングデバイスである。前記コンピューティングデバイスは、ＮＦＶ（Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）を実現するための複数の仮想マシンを実行し、前記複数の仮想マシンのうちの仮想マシンは、セッションセンダとセッションリフレクタの間の順方向および逆方向における単一のテストセッションにおいて、ＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ）およびＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）が変更されたかを判定するためのテストを実行する前記セッションセンダを実行し、複数のＤＳＣＰおよびＥＣＮは、前記単一のテストセッションを用いてテストされる。前記コンピューティングデバイスは、テストセッションマネージャを格納している非一時的マシン読み込み可能媒体と、プロセッサとを有する。前記プロセッサは、前記非一時的マシン読み込み可能媒体に結合される。前記プロセッサは、仮想マシンを実行する。前記仮想マシンは、前記テストセッションマネージャを実行するように構成される。前記テストセッションマネージャは、第１の最初フォワードＤＳＣＰおよびＥＣＮを決定し、前記第１の最初フォワードＤＳＣＰおよびＥＣＮを含む第１のテストパケットを生成し、前記単一のテストセッションにおいて、前記セッションリフレクタへ前記第１のテストパケットを送信し、第２の最初フォワードＤＳＣＰおよびＥＣＮを決定し、前記第２の最初フォワードＤＳＣＰおよびＥＣＮを含む第２のテストパケットを生成し、前記単一のテストセッションにおいて、前記セッションリフレクタへ前記第２のテストパケットを送信するように構成される。
【００１２】
更なる実施形態において、制御プレーンデバイスは、複数のネットワークデバイスを含むＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋｉｎｇ）ネットワークの制御プレーンを実装するように構成され、前記制御プレーンデバイスは、セッションセンダとセッションリフレクタの間の順方向および逆方向における単一のテストセッションにおいて、ＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ）およびＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）が変更されたかを判定するためのテストを実行する、前記セッションセンダを実装する方法を実行するように構成され、複数のＤＳＣＰおよびＥＣＮは、前記単一のテストセッションを用いてテストされる。前記制御プレーンデバイスは、テストセッションマネージャを格納している非一時的マシン読み込み可能媒体と、プロセッサとを有する。前記プロセッサは、前記非一時的マシン読み込み可能媒体に結合される。前記プロセッサは、前記テストセッションマネージャを実行する。前記テストセッションマネージャは、次の最初フォワードＤＳＣＰおよびＥＣＮを決定し、次の最初リバースＤＳＣＰおよびＥＣＮを決定し、前記次の最初フォワードＤＳＣＰおよびＥＣＮと、前記次の最初リバースＤＳＣＰおよびＥＣＮを含む第１のテストパケットを生成し、前記単一のテストセッションにおいて、前記セッションリフレクタへ前記第１のテストパケットを送信し、最終フォワードＤＳＣＰおよびＥＣＮと、最終リバースＤＳＣＰおよびＥＣＮを含む第２のテストパケットを、同じテストセッションにて受信し、前記単一のテストセッションにおいて前記複数のＤＳＣＰおよびＥＣＮのそれぞれがテストされるまで、前記複数のＤＳＣＰおよびＥＣＮのそれぞれを反復する、ように構成される。
【図面の簡単な説明】
【００１３】
本発明は、発明の実施形態を示すために用いられる、以下の説明と添付の図面を参照することにより、最もよく理解されるであろう。
【図１Ａ】図１Ａは、ＴＷＡＭＰ（Ｔｗｏ−Ｗａｙ  Ａｃｔｉｖｅ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）の制御クライアントのためのプロセスの一実施形態のフローチャートである。
【図１Ｂ】図１Ｂは、ＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋｉｎｇ）コントローラにより実装されるＴＷＡＭＰテストセッションのオーケストレータのためのプロセスの一実施形態のフローチャートである。
【図２】図２は、ＴＷＡＭＰのサーバのためのプロセスの一実施形態のフローチャートである。
【図３】図３は、ＴＷＡＭＰのセッションセンダのためのプロセスの一実施形態のフローチャートである。
【図４】図４は、ＴＷＡＭＰのセッションリフレクタのためのプロセスの一実施形態のフローチャートである。
【図５】図５は、ＴＷＡＭＰのセッションセンダのための別のプロセスの一つの例の実施形態のフローチャートである。
【図６】図６は、ＴＷＡＭＰのセッションリフレクタのための別のプロセスの一つの例の実施形態のフローチャートである。
【図７】図７は、ＴＷＡＭＰのセッションセンダのための更なるプロセスの別の例の実施形態のフローチャートである。
【図８】図８は、ＴＷＡＭＰのセッションリフレクタのための更なるプロセスの別の例の実施形態のフローチャートである。
【図９】図９は、セッションセンダとセッションリフレクタとの間のテストセッションの例である。
【図１０Ａ】図１０Ａは、本発明のいくつかの実施形態に係る、ＮＤ（Ｎｅｔｗｏｒｋ  Ｄｅｖｉｃｅ）の３つの例示的な実装としての、例示的なネットワーク内のＮＤ間の接続性を示す。
【図１０Ｂ】図１０Ｂは、本発明のいくつかの実施形態に係る専用ネットワークデバイスを実装する例示的な方法を示す。
【図１０Ｃ】図１０Ｃは、本発明のいくつかの実施形態に係る、ＶＮＥ（Ｖｉｒｔｕａｌ  Ｎｅｔｗｏｒｋ  Ｅｌｅｍｅｎｔ）が組み合わされうる、様々な例示的な方法を示す。
【図１０Ｄ】図１０Ｄは、本発明のいくつかの実施形態に係る、各ＮＤ上の単一のＮＥ（Ｎｅｔｗｏｒｋ  Ｅｌｅｍｅｎｔ）を有するネットワークを示し、内部にて、この明快なアプローチは、従来の分散型アプローチ（店頭的なルータにて共通に用いられている）と、到達可能性および転送情報（ネットワーク制御とも呼ばれる）を維持するための集中型アプローチとを対比させる。
【図１０Ｅ】図１０Ｅは、本発明のいくつかの実施形態に係る、各ＮＥが単一のＮＥを実装する単純なケースを示すが、集中型制御プレーンは、異なるＮＤ内の複数のＮＥを仮想ネットワークのうちの１つの単一のＮＥに（表現するために）抽象化している。
【図１０Ｆ】図１０Ｆは、本発明のいくつかの実施形態に係る、複数のＶＮＥが異なるＮＤ上に実装され、互いに結合された場合で、かつ、集中型制御プレーンはこれらの複数のＶＮＥを仮想ネットワークの１つの中の単一のＶＮＥとして現れるように抽象化している場合を示す。
【図１１】図１１は、本発明のいくつかの実施形態に係る、ＣＣＰ（Ｃｅｎｔｒａｌｉｚｅｄ  Ｃｏｎｔｒｏｌ  Ｐｌａｎｅ）ソフトウェアを有する汎用制御プレーンを示す。
【発明を実施するための形態】
【００１４】
以下の説明は、データトラフィック計測のための、より具体的には、ＴＷＡＭＰ（Ｔｗｏ−Ｗａｙ  Ａｃｔｉｖｅ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）または類似のプロトコルを用いるＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅ  Ｃｏｄｅ  Ｐｏｉｎｔ）およびＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）の複数の組み合わせをテストするための方法および装置を示す。実施形態は、単一のテストセッションを用いて複数の組み合わせのテストを可能とする。単一のテストセッションを使用すると、複数のテストセッションのセットアップと切断によってオーバーヘッドが発生する複数のＤＳＣＰとＥＣＮの組み合わせをテストする際のオーバーヘッドが減少する。既存技術は、テストされるべきＤＳＣＰおよびＥＣＮの各組み合せに対して、別個のテストセッションを必要とし、それにより、追加の計算や記憶のリソースを必要としている。本実施形態では、主に、ＴＷＡＭＰを用いるテストセッションを実装することに関連して述べられるが、当業者は、原理やプロセスが、ｐｉｎｇ、ＳＬＡ（Ｓｅｒｖｉｃｅ−Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ）テスト、および類似の技術を含む他の類似のテストセッション技術に適用可能であると理解してよい。
【００１５】
以下の説明において、論理構成、オペコード、オペランドを記述する手段、リソースの分割／共有／統合の構成、システム構成のタイプおよび相互関係、および、論理の分割／統合の選択は、本願発明のより一層の理解を提供するために説明される。しかしながら、当業者により、本発明はそのような特定の詳細を順守されなくてもよいと理解されるであろう。他の例において、制御構成、ゲートレベル回路、および完全なソフトウェア命令シーケンスは、本発明を分かりにくくしないように、詳細には示されていない。当業者は、説明を含めて、過度の実験をすることなく適切な機能を実装することができるであろう。
【００１６】
“一実施形態”、”実施形態”、”一例の実施形態”などに対する明細書中の参照は、説明された実施形態が、特定の特徴、構成、または、特性を含んでよいことを示すが、全ての実施形態は、特定の特徴、構成、または特性を含むことを必要としない。加えて、そのようなフレーズは、いくつかの実施形態を参照することを必要としない。更に、特定の特徴、構成、または、特性が実施形態と関連付けて説明された場合、明示的に記載されているか否かに関わらず、そのような特徴、構造、または特性に影響を与えることは、当業者の知識の範囲内であると提示される。
【００１７】
点線の枠線（例えば、大きな破線、小さな破線、点線、点）を有するブラケットテキストおよびブロックは、本発明の実施形態に追加の特徴を付加する任意の動作を例示するために、ここでは用いられてよい。しかし、そのような表記は、これらが唯一のオプションまたはオプションの操作であること、および／または、実線の境界を有するブロックが本発明の特定の実施形態ではオプションではないこと、を意味するものではない。
【００１８】
以下の説明および請求項において、「結合された」および「接続された」という用語は、それらの派生語と共に使用されてもよい。これらの用語は、互いに同義語として意図されていないことを理解されるべきである。「結合された」は、互いに直接的に物理的または電気的に接触していてもいなくてもよい、２つ以上の要素が互いに協働または相互作用することを示すために使用される。「接続された」は、互いに結合された２つ以上の要素間の通信の確立を示すために使用される。
【００１９】
電子デバイスは、（ソフトウェア命令で構成され、時にはコンピュータプログラムコードまたはコンピュータプログラムと呼ばれる）コードおよび／またはデータを、マシン読み取り可能記憶媒体（例えば、磁気ディスク、光ディスク、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリデバイス、相変化メモリ）やマシン読み取り可能送信媒体（搬送波とも呼ばれる）（例えば、搬送波、赤外線信号などの、電気信号、光学信号、無線信号、音響信号、または他の形態の伝搬信号）のようなマシン読み取り可能な媒体（コンピュータ可読媒体とも呼ばれる）を用いて、（内部でおよび／またはネットワーク上の他の電子デバイスとともに）格納したり、送信したりする。したがって、電子デバイス（例えば、コンピュータ）は、１組のプロセッサ上で実行するためのコードを格納するため、および／または、データを格納するために、１つまたは複数のマシン読み取り可能記憶媒体に格納された１つまたは複数のプロセッサのセットなどのハードウェアおよびソフトウェアを含む。例えば、電子デバイスは、不揮発性メモリが、電子デバイスがオフされている（電源が切られている）場合でもコード／データを持続することができるため、コードが格納された不揮発性メモリを含むことができ、電子デバイスがオンにされている間に、その電子デバイスのプロセッサによって実行されるコードの部分は、通常、より低速の不揮発性メモリから、電子デバイスの揮発性メモリ（例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））にコピーされる。典型的な電子デバイスはまた、他の電子デバイスとのネットワーク接続（伝播信号を使用してコードおよび／またはデータを送信および／または受信する）を確立するための１つまたは複数の物理ネットワークインターフェースを含む。本発明の実施形態の１つまたは複数の部分は、ソフトウェア、ファームウェア、および／またはハードウェアの異なる組み合わせを使用して実装されてもよい。
【００２０】
ネットワークデバイス（ＮＤ）は、ネットワーク上の他の電子デバイス（例えば、他のネットワークデバイス、エンドユーザデバイス）を通信可能に相互接続する電子デバイスである。いくつかのネットワークデバイスは、複数のネットワーキング機能（例えば、ルーティング、ブリッジング、スイッチング、レイヤ２アグリゲーション、セッションボーダーコントロール、Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ、および／または、加入者管理）をサポート、および／または、複数のアプリケーションサービス（例えば、データ、音声、およびビデオ）をサポートする「マルチサービスネットワークデバイス」である。
【００２１】
概要
ＴＷＡＭＰ（Ｔｗｏ−Ｗａｙ  Ａｃｔｉｖｅ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）テストセッションは、セッションセンダとセッションリフレクタとの間で交換されるテストパケットで使用される、特定のＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ）およびＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）を用いて行われる。ＤＳＣＰおよびＥＣＮは、セッションセンダとセッションリフレクタとの間の順パスおよび逆パスで変更されないままになると予測されるＴＷＡＭＰテストセッションで利用されるＴＷＡＭＰテストパケットのフィールドである。ＴＷＡＭＰに対するＤＳＣＰおよびＥＣＮモニタリング拡張は、オペレータがテストパケット内のＤＳＣＰフィールドの、意図されているか間違っている、データトラフィックの再マーキング、およびＥＣＮフィールドの変更を検出できるように定義されることができる。これらのフィールドのモニタリングは、２つのテストポイント（すなわちセッションセンダとセッションリフレクタ）の間の順方向および逆方向に行うことができる。しかし、ＤＳＣＰとＥＣＮの複数の組み合わせの結果、ＤＳＣＰとＥＣＮのすべての組み合わせ、またはこれらの値のサブセットまでテストしてモニタリングするには、各ＤＳＣＰとＥＣＮの組み合わせ（いくつかの実施形態では、同じＤＳＣＰとＥＣＮの組合せの繰り返しテストすることを含む）ごとに個別のテストセッションを確立する必要があります。したがって、ＴＷＡＭＰテストセッションをネゴシエートおよび確立するためにＴＷＡＭＰ制御プロトコルが使用される場合、送信元および宛先のＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）ポート番号を含む、テストパラメータが再ネゴシエートされ、ＤＳＣＰとＥＣＮのモニタリングの結果に影響する可能性がある。ＴＷＡＭＰがＣＬＩ（Ｃｏｍｍａｎｄ  Ｌｉｎｅ  Ｉｎｔｅｒｆａｃｅ）またはＮＭＳ（Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｓｅｒｖｉｃｅ）／中央コントローラによって制御される場合は、別々のテストセッションが、各ＤＳＣＰとＥＣＮの組み合わせをテストしてモニタするために設定される必要がある。
【００２２】
既存のＴＷＡＭＰ制御プロトコルに準拠して、ＣＬＩまたは中央コントローラを使用して、テストセッションのＤＳＣＰおよびＥＣＮフィールドの特定の値を含む、パラメータを構成することができる。いくつかの実施形態では、ＤＳＣＰおよびＥＣＮモニタリングＴＷＡＭＰ拡張は、テストセッションの順方向および逆方向のＤＳＣＰおよびＥＣＮの変化の検出を可能にするために利用されるが、依然としてこれらのＤＳＣＰおよびＥＣＮ値の単一の組み合わせについてのみである。既存のＴＷＡＭＰテストプロトコルでは、セッションセンダとセッションリフレクタによって設定されたＤＳＣＰ値とＥＣＮ値が、特定のテストセッションの存続期間にわたって同一のままである必要がある。別々のＴＷＡＭＰテストセッションを用いて複数のＤＳＣＰとＥＣＮの組み合わせをテストすると、組み合わせ（１：１）ごとに各テストセッションを設定および解除する際に、かなりのオーバーヘッドが発生する。本発明の実施形態は、従来技術のこの制限を克服する。
【００２３】
実施形態は、対応する返されたＴＷＡＭＰテストパケットにおけるＤＳＣＰおよびＥＣＮの値として、受信されたＴＷＡＭＰテストパケットに定義された特定のＤＳＣＰおよびＥＣＮの値を使用するように、セッションリフレクタに指示するメカニズムを追加することによって、ＤＳＣＰおよびＥＣＮをモニタリングするためのＴＷＡＭＰプロセスの欠点を克服する。必要なＤＳＣＰおよびＥＣＮを含むようにＴＷＡＭＰを拡張する特定のＤＳＣＰおよびＥＣＮモニタリングＴＷＡＭＰ拡張と組み合わせにおいて、この実施形態は、単一のテストセッションにおける包括的なＤＳＣＰおよびＥＣＮモニタリングを可能にするためのこの情報を利用できる一組の方法およびシステムを提供する。
【００２４】
実施形態は、セッションリフレクタによる特定のＤＳＣＰおよびＥＣＮモニタリングモードを要求するために、ＤＳＣＰおよびＥＣＮの一方的な双方向モニタリングのパラメータをネゴシエートするネットワークエンティティによって用いられる方法および装置を提供することによって、既存のＴＷＡＭＰプロトコルの限界を克服する。実施形態は、あるテストシングルトンで使用されるＤＳＣＰおよびＥＣＮハンドリングモードを指定するために、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークにおいてＤＳＣＰおよびＥＣＮモニタリングを実装するネットワークデバイスによって用いられる方法および装置を提案する。ＲＦＣ５３５７は、ＴＷＡＭＰテストセッションのパラメータをネゴシエートし、信号を送るために使用できるＴＷＡＭＰ制御プロトコルを規定している。サーバグリーティングメッセージのモードフィールドにあるサーバは、セッションリフレクタの機能を一覧表示する。セットアップ応答メッセージのモードフィールドの制御クライアントは、セッションセンダに代わってモードを要求する。各サーバおよび制御クライアントは、アドバタイズされた能力を比較し、それに応じてセッションセンダおよびセッションリフレクタのテストモードを設定する。
【００２５】
一実施形態では、ＤＳＣＰおよびＥＣＮモニタリングは、順方向および逆方向に実施される。セッションリフレクタがＤＳＣＰおよびＥＣＮのモニタリングの両方のＴＷＡＭＰ拡張をサポートしているかどうかのチェックが行われる。ＴＷＡＭＰ拡張とは、ＲＦＣ５３５７で定義されているベーシックＴＷＡＭＰの機能の変更と拡張を指す。セッションリフレクタがＤＳＣＰおよびＥＣＮモニタリングを処理できる場合、セッションリフレクタは少なくとも往復テストを処理するように設定できる（すなわち、セッションリフレクタは、ＤＳＣＰおよびＥＣＮモニタリングＴＷＡＭＰ拡張をサポートする）。セッションリフレクタがＤＳＣＰおよびＥＣＮモニタリングをサポートしない場合、制御クライアントとサーバとの間のＴＷＡＭＰ制御プロトコルネゴシエーションは、ＴＷＡＭＰテストセッションを開始しない（すなわち、セッションリフレクタがＤＳＣＰおよびＥＣＮモニタリング拡張をサポートできない場合）。コマンドラインインターフェイス（ＣＬＩ）または中央コントローラ（ＳＤＮネットワークなど）が、ＴＷＡＭＰテストセッションのパラメータを設定するために使用される場合、モードの選択は、ＣＬＩ、Ｎｅｔｃｏｎｆ、または同様のクエリのいずれかに応答して、セッションセンダおよびセッションリフレクタによって報告された機能に基づいて実行できる。セッションリフレクタが、ＤＳＣＰおよびＥＣＮモニタリングまたは同様のＴＷＡＭＰ拡張をサポートする場合、順方向および逆方向のより詳細な独立したテストが可能である。これらの実施形態は、往復および／または別個の順方向および逆方向のテストの単一のＴＷＡＭＰテストセッション内で、新しいタイプのＩＰ性能測定、ＤＳＣＰおよびＥＣＮモニタリングの実行を可能にすることによって、既存のＴＷＡＭＰ実装に対して利点を提供する。実施形態の特徴は、ここでは単一のテストセッションの複数のＤＳＣＰ  ＴＷＡＭＰ拡張と呼ばれるＴＷＡＭＰの拡張として実施することができる。
【００２６】
図１Ａは、ＴＷＡＭＰ（Ｔｗｏ−Ｗａｙ  Ａｃｔｉｖｅ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）のクライアント制御エンティティのためのプロセスの一実施形態のフローチャートである。制御クライアントプロセスのこの実施形態は、制御クライアントが、サーバまたはサーバおよびセッションリフレクタを実装するネットワークデバイスと通信するネットワークデバイスによって実装される場合に実現される。制御クライアントを実装するネットワークデバイスは、いくつかの実施形態では、セッションセンダも実装することができる。プロセスは、ＴＷＡＭＰの制御プレーンであるＴＷＡＭＰ制御プロトコルの動作のコンテキスト内で開始される。サーバおよび制御クライアントは、セッションセンダおよびセッションリフレクタの特性および／または能力に関する情報を含むメッセージを交換している。制御クライアントは、このネゴシエーションを開始するためにＴＣＰ接続を確立する。
【００２７】
ＴＣＰ接続が確立された後、制御クライアントは、セッションリフレクタの特性および能力を含むサーバからのグリーティングメッセージを受信する（ブロック１０１）。サーバグリーティングメッセージは、特に、セッションリフレクタがＤＳＣＰおよびＥＣＮモニタリングのＴＷＡＭＰ拡張および／または単一のテストセッション多重ＤＳＣＰ  ＴＷＡＭＰ拡張または同様の機能をサポートするかどうかに関する情報を含むことができる。これらのＴＷＡＭＰへの拡張は、セッションセンダに、複数のＤＳＣＰおよびＥＣＮが同じテストセッションでテストされるテストセッションを生成し、利用できるようにし、かつ、単一のテストセッションが、セッションセンダとセッションリフレクタの間の順方向と逆方向の両方で独立したテストを可能にするテストセッションを可能にする。
【００２８】
制御クライアントのプロセスは、ＴＷＡＭＰ拡張のサポートに対し、セッションリフレクタの受信した特性をチェックする。プロセスは、セッションリフレクタが単一のテストセッションの複数のＤＳＣＰ  ＴＷＡＭＰ拡張をサポートしているかどうか、つまり、セッションリフレクタが単一のテストセッションで複数のＤＳＣＰの使用をサポートしているかどうかをチェックする（ブロック１０３）。セッションリフレクタが単一のテストセッションで複数のＤＳＣＰをサポートしない場合、所望の単一のテストセッションプロセスを実行することができないので、プロセスは終了することができる（ブロック１０９）。他の実施形態では、プロセスは、複数のテストセッションを使用してテストを実行することを取り消してもよい。セッションリフレクタが単一のテストセッションの複数のＤＳＣＰをサポートする場合、セットアップ応答メッセージは、制御クライアントによってサーバに送信されるように準備される。このセットアップ応答メッセージは、テストセッションがセッションリフレクタのこの機能を利用しようとしていることを意味する、ＤＳＣＰおよびＥＣＮテストが関連するテストセッションで利用されることを示すように更新することができる（ブロック１０５）。
【００２９】
次に、制御クライアントは、セッションリフレクタがＤＳＣＰおよびＥＣＮモニタリングをサポートしているかどうかをチェックする（ブロック１０７）。セッションリフレクタがＤＳＣＰおよびＥＣＮモニタリングをサポートする場合、プロセスは、ＤＳＣＰおよびＥＣＮモニタリングが実施されることを示す指標をセットアップ応答メッセージに追加する（ブロック１１１）。セッションリフレクタがＤＳＣＰおよびＥＣＮモニタリングをサポートしない場合、プロセスは、セットアップ応答メッセージをサーバに転送することができる（ブロック１１５）。サーバは、この情報とフィードバックを使用して、ＴＷＡＭＰを用いるテストセッションの望ましい構成をサポートするようにセッションリフレクタを構成することができる。このプロセスの実施は、制御クライアントを実装するネットワークデバイスによって実行されるＴＷＡＭＰモジュールを介して行うことができる。
【００３０】
図１Ｂは、ＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋｉｎｇ）コントローラによって実施されるＴＷＡＭＰテストセッションのオーケストレータのためのプロセスの一実施形態のフローチャートである。この実施形態では、セッションリフレクタおよびセッションセンダの能力を決定するプロセスは、中央コントローラによって実行されるオーケストレータの形式のテストセッションマネージャによって実装される。制御クライアントの実装と同様に、テストセッションマネージャは、セッションリフレクタおよび／またはセッションセンダの特性を判定しなければならない（ブロック１５１）。セッションリフレクタおよび／またはセッションセンダは、その能力を中央コントローラのオーケストレータに直接報告することができ、または制御クライアントおよびサーバは、これらの能力をそれぞれ報告することができる。能力が報告されると、セッションリフレクタが単一のテストセッションにおいて複数のＤＳＣＰの使用をサポートするかどうかの判定が行われる（ブロック１５３）。これがサポートされている場合、ＤＳＣＰおよびＥＣＮテストが実行されることを示すために、セッションリフレクタまたはサーバに送信される構成メッセージが更新される（ブロック１５５）。単一のテストセッション内の複数のＤＳＣＰがサポートされていない場合、セッションリフレクタがそれをサポートすることができないので、プロセスは、テストセッションの設定を終了する（ブロック１５９）。これにより、各ＤＳＣＰとＥＣＮの組み合わせごとに個別のテストセッションを使用する標準のＤＳＣＰおよびＥＣＮテストを使用してよい。
【００３１】
構成メッセージの更新に続いて、ＤＳＣＰおよびＥＣＮモニタリングのサポートがセッションリフレクタおよび／またはセッションセンダによってサポートされているか否かの判定が行われる（ブロック１５７）。セッションリフレクタ（およびセッションセンダ）がＤＳＣＰおよびＥＣＮモニタリングをサポートする場合、ＤＳＣＰおよびＥＣＮモニタリングが利用されることを示すインジケータを追加するように構成メッセージを更新することができる（ブロック１６１）。ＤＳＣＰおよびＥＣＮモニタリングがサポートされていない場合、構成メッセージは完了し、セッションリフレクタまたはサーバに送信して構成を実装することができる（ブロック１６５）。セッションリフレクタの構成について説明したが、当業者であれば、セッションセンダが、生成され、設定され、送信された同様の設定メッセージと同じ方法で、ＤＳＣＰおよびＥＣＮテストのためのテストセッションに参加するように同様に構成することができると理解するであろう。
【００３２】
図２は、ＴＷＡＭＰのサーバのためのプロセスの一実施形態のフローチャートである。サーバは、ＤＳＣＰおよびＥＣＮテストのためのＴＷＡＭＰテストセッションを確立するためのセッションリフレクタの構成を実行することができる。このプロセスは、セッションリフレクタが単一のテストセッションにおける複数のＤＳＣＰ（例えば、単一のテストセッションの複数のＤＳＣＰ  ＴＷＡＭＰ拡張を介して）およびＴＷＡＭＰに対するＤＳＣＰおよびＥＣＮモニタリングの拡張をサポートするかどうかを示すセッションリフレクタの特性と能力を含むサーバグリーティングメッセージを制御クライアントに送信することにより、開始できる（ブロック２０１）。このメッセージを送信することに応答して、サーバは、制御クライアントからセットアップ応答メッセージを受信することができる。セットアップ応答メッセージは、単一のテストセッションにおける複数のＤＳＣＰの使用およびテストセッションに対するＤＳＣＰおよびＥＣＮモニタリングパラメータを含むテストセッションパラメータを示すことができる（ブロック２０３）。次いで、サーバは、受信したＤＳＣＰおよびＥＣＮテストパラメータに従ってセッションリフレクタを構成することができる（ブロック２０５）。
【００３３】
図３は、ＴＷＡＭＰのセッションセンダのためのプロセスの一実施形態のフローチャートである。制御クライアントは、セッションリフレクタとのＴＷＡＭＰテストセッションを開始するようにセッションセンダを構成する。次いで、セッションセンダは、テストされる次の最初フォワードＤＳＣＰおよびＥＣＮを決定し、テストされる次の最初リバースＤＳＣＰおよびＥＣＮを決定する（ブロック３０１）。次に、セッションセンダは、次の最初フォワードＤＳＣＰおよびＥＣＮ（例えば、ＩＰヘッダまたは同様の位置）および次の最初リバースＤＳＣＰおよびＥＣＮ（例えば、第１のテストパケットのペイロードまたは同様の位置）を含む第１のテストパケットを生成する（ブロック３０３）。セッションセンダは、単一のテストセッション内での使用のために、上述のような選択されたフォワードおよびリバースＤＳＣＰおよびＥＣＮを有する生成された第１のテストパケットを送信する（ブロック３０５）。さらなる実施形態では、第１のテストパケットは、テストパケットのセットのうちの１つとして送信されてもよい。これらのテストパケットは、同じＤＳＣＰとＥＣＮの組み合わせを持つことができる。このようにして、プロセスは、いくつかが異なる方法で処理またはルーティングされることによりセット内のテストパケットのいずれかが変更されたかどうかを判定することができ、１つのテストパケットではなくセットを送信すると、そのような発生を見つける可能性が高まる。しかしながら、明確にするために、実施形態は、主として、単一のテストパケットを送信することを参照して説明される。当業者であれば、原理、プロセス、および構成がテストパケットのセットの使用を包含することを理解するであろう。
【００３４】
第１のテストパケットは、テストする組み合わせのセットを反復する任意のアルゴリズムを使用して選択できる２つのセットのＤＳＣＰおよびＥＣＮを含む。２つのセットのうちの１つは、順方向（例えば、順方向のＩＰヘッダ内にあってよい）および逆方向のための第２のセット（例えば、セットは、逆方向のために第２のテストパケットが生成されたときに、セッションリフレクタにより用いられるペイロードの中にあってよい）である。このようにして、２つの方向（すなわち、セッションセンダからセッションリフレクタへ、次いで、セッションリフレクタからセッションセンダへ）を別々にテストすることができる。指定された最初フォワードＤＳＣＰおよびＥＣＮがセッションリフレクタに（すなわち、順方向にて）到達し、最初リバースＤＳＣＰおよびＥＣＮがセッションセンダに（すなわち、逆方向にて）到着した場合、この組み合わせのためのＤＳＣＰおよびＥＣＮテストは、ＤＳＣＰおよびＥＣＮが各方向に変更されていないことを示すことで成功である。ＤＳＣＰまたはＥＣＮがいずれかの方向に変更された場合、特定の方向にて変更が発生したことを知ることができ、ラウンドトリップテストのみが可能である（つまり、同じＤＳＣＰおよびＥＣＮが、順方向および逆方向にて用いられている）場合には知ることはできない。
【００３５】
第１のテストパケットの送信に応答して、セッションセンダは、セッションリフレクタに到達した最終フォワードＤＳＣＰおよびＥＣＮ、および最終リバースＤＳＣＰおよびＥＣＮを有する第２のテストパケットを受信する（ブロック３０７）。第１のテストパケットおよび第２のテストパケットのそれぞれの順方向および逆方向の送信は、同一のテストセッションで生じる。テストセッションは開いたままであり、このプロセスは、順方向および逆方向に使用されるＤＳＣＰおよびＥＣＮの別個のセットを用いて、任意の数のＤＳＣＰおよびＥＣＮの組み合わせを反復することができる。第２のテストパケットは、第１のテストパケットに応答して送信されるが、テストパケットの送信および受信は、別々のプロセスによって並列に処理することができる。このプロセスは、分かりやすくするために単一のプロセスとして示される。しかしながら、セッションリフレクタによって返されるテストパケットは、テストパケットのシリアル処理に限定されず、任意の順序で処理することができる。
【００３６】
いくつかの実施形態では、受信した第２のテストパケットが有効なテストパケットであるかどうかのチェックを行ってよい（ブロック３０９）。有効性のチェックは、受信した第２のテストパケットのコンテンツおよびフォーマットを認証または同様に分析することができる。第２のテストパケットが有効でない場合、第１のテストパケットを再送信することができる。有効な応答の第２テストパケットを得るために、第１のテストパケットを再送する試行回数に制限を設けてよい。パケットが有効である場合、または有効性のチェックが行われない場合、プロセスは、第２のテストパケットから最終フォワードおよび最終リバースＤＳＣＰおよびＥＣＮを受け取る（ブロック３１１）。この情報は、テストされた各ＤＳＣＰおよびＥＣＮの組み合わせの成功と失敗の追跡を可能にするために、どのデータ構造にも関連付けられて格納されることができる。テストパケットのセットが送受信される場合、セットのそれぞれは、別個にまたはグループとして受け取られおよび分析されてもよい。
【００３７】
次いで、フォワードおよびリバースＤＳＣＰおよびＥＣＮの組合せの全てがテストされたかどうかの判定が行われる（ブロック３１７）。そうであれば、指定されたＤＳＣＰおよびＥＣＮの組合せのすべてをテストするプロセスが完了する（ブロック３１９）。追加のＤＳＣＰおよびＥＣＮの組み合わせが順方向または逆方向のいずれかでテストが残っている場合、次のＤＳＣＰおよびＥＣＮの組み合わせがテストされると決定される（ブロック３０１）。次に、ＤＳＣＰおよびＥＣＮの指定されたサブセット（すべてのＤＳＣＰおよびＥＣＮの組み合わせまたはそのサブセットを含むことができる）がすべてテストされるまで、同一のテストセッション（すなわち、同一のＴＣＰ接続およびＴＷＡＭＰテストセッション）内で処理が継続される。
【００３８】
図４は、ＴＷＡＭＰのセッションリフレクタのためのプロセスの一実施形態のフローチャートである。セッションリフレクタはサーバによって設定される。セッションリフレクタは、テストセッション内でセッションセンダから第１のテストパケットを受信する（ブロック４０１）。上述したように、第１のテストパケットは、テストパケットのセットの１つであることができるが、それぞれがセッションリフレクタで受信されたときに別個に処理される。いくつかの実施形態（不図示）では、第１のテストパケットを検証することができ、有効でない場合、第１のテストパケットを再送信する要求を行ってよい。セッションリフレクタは、受信した第１テストパケットを検査し、順方向の最終ＤＳＣＰおよびＥＣＮを識別して受け取られる（ブロック４０３）。次に、逆方向のための第２のテストパケットにおいて利用されるＤＳＣＰおよびＥＣＮのセットが識別される（ブロック４０５）。逆方向で使用されるＤＳＣＰおよびＥＣＮは、受信された第１のテストパケットのペイロードまたは同様のセクションに存在することができる。構成が中央コントローラまたはＣＬＩを介するものなどの他の実施形態では、リバースＤＳＣＰおよびＥＣＮは、サーバによって提供され得るか、またはセッションリフレクタで同様に構成される。
【００３９】
次いで、セッションリフレクタによって第２のテストパケットが生成される（ブロック４０７）。逆方向の決定されたＤＳＣＰおよびＥＣＮは、他の関連情報とともに第２のテストパケットに挿入することができる。第２のテストパケットに挿入される情報は、第１のテストパケットの最終フォワードＤＳＣＰおよびＥＣＮを含むことができ、それによって逆方向のテストとは別に順方向の結果を報告する。第１のテストパケットの最終フォワードＤＳＣＰおよびＥＣＮは、第２のテストパケットのペイロードに挿入することができる。次いで、生成された第２のテストパケットは、プロセスの前の反復と同様に順方向に対して使用されたのと同じテストセッションでセッションセンダに送信される（ブロック４０９）。セッションリフレクタがＤＳＣＰおよびＥＣＮモニタリングをサポートしない実施形態では、別個のリバースＤＳＣＰおよびＥＣＮの識別は実行されず、セッションリフレクタによって受信されたのと同じＤＳＣＰおよびＥＣＮが応答メッセージで利用される。
【００４０】
図５は、ＴＷＡＭＰのセッションセンダのエンティティのためのプロセスの１つの例示的な実施形態のフローチャートである。このプロセスは、テストセッションの実施例である。この実施例では、セッションセンダは、最初リバースＤＳＣＰおよびＥＣＮを含むペイロードと、最初フォワードＤＳＣＰおよびＥＣＮを有するＩＰヘッダとを含む第１のテストパケットを生成する（ブロック５０１）。いくつかの実施形態では、第１のテストパケットは、同一のＤＳＣＰおよびＥＣＮを有する任意の数のテストパケットを有するテストパケットのセットの一部であってもよい。ペイロードに配置されたＤＳＣＰおよびＥＣＮは、逆方向のテストに使用される。ＩＰヘッダのＤＳＣＰおよびＥＣＮは、順方向のテストのためのものである。次いで、第１のテストパケットは、セッションリフレクタへ送信される（ブロック５０３）。第１のテストパケットに応答して、セッションリフレクタは、第２のテストパケットを返す（ブロック５０５）。第２のテストパケットは、第１のテストパケットから順方向にてセッションリフレクタによって受信された実際のＤＳＣＰおよびＥＣＮを識別する最終フォワードＤＳＣＰおよびＥＣＮをペイロードに含み、これは、第１のセッションセンダから送信された最初フォワードＤＳＣＰおよびＥＣＮと比較されることができる。第２のテストパケットのＩＰヘッダは、最終リバースＤＳＣＰおよびＥＣＮを含む。最終リバースＤＳＣＰおよびＥＣＮは、第１のテストパケットに含まれていた期待される最初リバースＤＳＣＰおよびＥＣＮと比較することができる。最終フォワードおよびリバースＤＳＣＰおよびＥＣＮが、最初フォワードおよびリバースＤＳＣＰおよびＥＣＮと異なる場合、セッションセンダは、所与のＤＳＣＰとＥＣＮの組み合わせがそれぞれ順方向または逆方向に正しく処理されているかどうかを判定できる。このプロセスは、単一のＴＷＡＭＰテストセッション内で実行されることができる。
【００４１】
図６は、ＴＷＡＭＰのセッションリフレクタのエンティティのための別のプロセスの一実施例のフローチャートである。このプロセスは、図５のセッションセンダのプロセスを補完する実施例である。プロセスはセッションリフレクタによって実装される。セッションリフレクタは、セッションセンダから第１のテストパケットを受信する（ブロック６０１）。第１のテストパケットは、リバーステストに用いられる最初リバースＤＳＣＰおよびＥＣＮを有するペイロードを含む。ＩＰヘッダは、順方向にてＤＳＣＰとＥＣＮが変更されずに転送されているかどうかを確認するためにセッションセンダに返すことができる最終フォワードＤＳＣＰおよびＥＣＮであるＤＳＣＰおよびＥＣＮの第２のセットを有する。
【００４２】
セッションリフレクタは、セッションセンダから受信したメッセージのペイロードに指定された最初リバースＤＳＣＰおよびＥＣＮを含むＩＰヘッダを有する第２のテストパケットを生成する（ブロック６０３）。第２のテストパケットは、受信した第１のテストパケットのＩＰヘッダからの最終フォワードＤＳＣＰおよびＥＣＮも含む。これは、セッションセンダによりチェックされる第２のテストパケットのペイロードに配置することができる。第２のテストパケットが完了すると、それをセッションセンダへ送信することができる（ブロック６０５）。
【００４３】
図７は、セッションセンダのＴＷＡＭＰのためのさらなるプロセスの別の例示的な実施形態のフローチャートである。この代替の実施形態では、逆方向のテストのためのＤＳＣＰおよび／またはＥＣＮは、第１のテストパケットでは送信されない。代わりに、制御クライアント／セッションセンダおよびサーバ／リフレクタによって別個にネゴシエートされる。この場合、セッションセンダとセッションリフレクタとの間で利用されるＤＳＣＰおよびＥＣＮは、ＴＷＡＭＰの制御メッセージの交換または同様の機構の使用によってネゴシエートされる（ブロック７０１）。次いで、第１のテストパケットは、合意された順方向の最初フォワードＤＳＣＰおよびＥＣＮを使用して、セッションセンダにより生成される（ブロック７０３）。合意された最初フォワードＤＳＣＰおよびＥＣＮを有する第１のテストパケットは、次に、シーケンス番号と共にセッションリフレクタに送信される（ブロック７０５）。ネゴシエートされたＤＳＣＰとＥＣＮの組み合わせは、同じテストセッション内で送信される任意の数のテストパケットに利用できるが、テストパケットが生成されるたびにシーケンス番号が上がるであろう。次いで、同じシーケンス番号を有する第２のテストパケットがセッションリフレクタによって返され、セッションセンダによって受信される（ブロック７０７）。第２のテストパケットは、シーケンス番号を使用して第１のテストパケットに関連付けられる（ブロック７０９）。関連付けられた検証は、セッションセンダで実行されることができる。逆方向にて利用されるＤＳＣＰおよびＥＣＮは、同じであっても別個にネゴシエートされてもよい。
【００４４】
図８は、ＴＷＡＭＰのセッションリフレクタのエンティティのためのさらなるプロセスの別の例示的な実施形態のフローチャートである。この代替の実施形態では、逆方向テストのためのＤＳＣＰおよびＥＣＮは、第１のテストパケットでは送信されない。代わりに、制御クライアント／セッションセンダおよびサーバ／セッションリフレクタによって別個にネゴシエートされる。これは、図７のセッションセンダのためのプロセスを補完する。この場合、セッションセンダとセッションリフレクタとの間で利用されるリバースＤＳＣＰとＥＣＮは、ＴＷＡＭＰの制御メッセージの交換または同様のメカニズムを使用してネゴシエートされる（ブロック８０１）。次いで、第１のテストパケットは、順方向の合意済の最初ＤＳＣＰおよびＥＣＮを使用して、セッションリフレクタにより受信される（ブロック８０３）。次に、合意済みのリバースＤＳＣＰおよびＥＣＮを有する第２のテストパケットは、受信された第１のテストパケット内のシーケンス番号を使用してセッションリフレクタによって生成される（ブロック８０５）。ネゴシエートされたＤＳＣＰおよびＥＣＮは、同じテストセッション内でテストされる任意の数のテストパケットに利用できる。ただし、テストパケットが区別されるように、各テストパケットが生成されるたびに、シーケンス番号が進められる。次いで、同じシーケンス番号を有する第２のテストパケットがセッションリフレクタによって送信される（ブロック８０７）。
【００４５】
図９は、セッションセンダとセッションリフレクタの間のテストセッションの例である。この例では、セッションセンダがセッションリフレクタと通信するシナリオを示す。セッションセンダとセッションリフレクタは、セッションセンダとセッションリフレクタとの間にＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）などの接続を確立する。セッションセンダは、ＤＳＣＰおよびＥＣＮモニタ（例えば、テストセッションマネージャまたは同様のコンポーネントの一部として）を含む。セッションセンダは、逆方向の最初リバースＤＳＣＰおよびＥＣＮ（例えば、ＤＳＣＰ  Ａ１およびＥＣＮ  Ｂ１）を有するペイロードと、別のＤＳＣＰおよびＥＣＮの組み合わせ（例えば、ＤＳＣＰ  Ｘ１およびＥＣＮ  Ｙ１）を有するＩＰヘッダを含む第１のテストパケットを生成し、送信する。ルートに沿った第１のテストパケットは、ＤＳＣＰがＺ１になるように変更される。ＤＳＣＰおよびＥＣＮは、任意の中間ネットワークデバイスによって変更されることができる。
【００４６】
セッションリフレクタは、ＩＰと、ＵＤＰまたはＴＣＰポートを介して第１のテストパケットを受信する。セッションリフレクタは、テストセッションマネージャまたは同様のコンポーネントにＤＳＣＰおよびＥＣＮパケットプロセッサを含むことができる。セッションリフレクタは、第１のテストパケットペイロードに指定されたＤＳＣＰおよびＥＣＮを含むＩＰヘッダを有する第２のテストパケットを生成する。第１のテストパケットのＩＰヘッダ（例えば、ＤＳＣＰ  Ｚ１およびＥＣＮ  Ｙ１）で受信された最終フォワードＤＳＣＰおよびＥＣＮも、セッションセンダにて検証されるペイロード内にて、第２のテストパケットに加えられる。受信された第１のテストパケットペイロードで指定された最初リバースＤＳＣＰおよびＥＣＮ（例えば、ＤＳＣＰ  Ａ１およびＥＣＮ  Ｂ１）は、送信された第２のテストパケット内のＩＰヘッダのＤＳＣＰおよびＥＣＮとして利用される。送信された第２のテストパケットは、セッションセンダにて受信される。この例では、ＩＰヘッダ内のＥＣＮが変更されている（例えば、ＥＣＮ  Ｃ１）。したがって、順方向および逆方向のテストは分離され、セッションセンダは順方向および逆方向に固有のＤＳＣＰおよびＥＣＮの変更を識別することができる。
【００４７】
これやその他のフロー図における動作は、他の図の例示的な実施形態を参照して説明される。しかしながら、フロー図の動作は、他の図を参照して論じられたもの以外の本発明の実施形態によって実行することができ、これらの他の図を参照して説明された本発明の実施形態は、フロー図を参照して説明されたものとは異なる動作を実行可能である。
【００４８】
アーキテクチャ
図１０Ａは、本発明のいくつかの実施形態に係る、例示的なネットワーク内のネットワークデバイス（ＮＤ）の間の接続を示し、３つのＮＤの実装例を示す。図１０Ａは、ＮＤ１０００Ａ−Ｈ、およびそれらの接続性を、ＡＢ、ＢＣ、ＣＤ、ＤＥ、ＥＦ、ＦＧ及びＡＧ間の線、並びにＨとＡ、Ｃ、Ｄ及びＧそれぞれとの間の線により示している。これらのＮＤは物理デバイスであり、これらのＮＤ間の接続は、無線または有線（リンクとも呼ばれる）であってよい。ＮＤ１０００Ａ、Ｅ、およびＦから延びる追加の線は、これらのＮＤがネットワークの入口点および出口点として機能することを示している（したがって、これらのＮＤは、エッジＮＤと呼ばれ、他のＮＤはコアＮＤと呼ばれる）。
【００４９】
図１０Ａの例示的なＮＤの実装のうちの２つは、１）カスタムＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ−Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅ−Ｃｉｒｃｕｉｔｓ）および専用のオペレーティングシステム（ＯＳ）を使用する専用ネットワークデバイス１００２、および、２）ＣＯＴＳ（Ｃｏｍｍｏｎ  Ｏｆｆ−Ｔｈｅ−Ｓｈｅｌｆ）プロセッサおよび標準ＯＳを使用する汎用ネットワークデバイス１００４である。
【００５０】
専用ネットワークデバイス１００２は、計算リソース１０１２（通常、１または複数のプロセッサのセットを含む）、転送リソース１０１４（通常、１または複数のＡＳＩＣおよび／またはネットワークプロセッサを含む）、物理ネットワークインターフェース（ＮＩ）１０１６（しばしば、物理ポートと呼ばれる）、および、ネットワーキングソフトウェア１０２０を格納した非一時的マシン読み取り可能記憶媒体１０１８を含む。物理ＮＩは、ＮＤ１０００Ａ−Ｈ間の接続によって示されるような，ネットワーク接続（例えば、無線ネットワークインターフェースコントローラ（ＷＮＩＣ）を介して無線接続すること、またはネットワークインターフェイスコントローラ（ＮＩＣ）に接続された物理ポートにケーブルを差し込むことなど）を行うＮＤのハードウェアである。動作中、ネットワーキングソフトウェア１０２０は、ネットワーキングハードウェア１０１０によって実行され、１または複数のネットワーキングソフトウェアインスタンス１０２２のセットをインスタンス化してよい。ネットワーキングソフトウェアインスタンス１０２２のそれぞれ、および、ネットワークインスタンスを実行するネットワーキングハードウェア１０１０の一部（ネットワーキングソフトウェアインスタンスに専用のハードウェアおよび／またはそのネットワーキングソフトウェアインスタンスによって他のネットワーキングソフトウェアインスタンス１０２２と一時的に共有されるハードウェアのタイムスライスであってもよい）は、別個の仮想ネットワークエレメント１０３０Ａ−Ｒを形成する。仮想ネットワークエレメント（ＶＮＥ）１０３０Ａ〜Ｒのそれぞれは、所与の仮想ネットワークエレメント（例えば、１０３０Ａ）は、制御通信および構成モジュール（例えば、１０３２Ａ）、１または複数の転送テーブル（例えば、１０３４Ａ）のセット、および、仮想ネットワークエレメント（例えば、１０３０Ａ）を実行するネットワーキングハードウェア１０１０の一部を含むように、制御通信および構成モジュール１０３２Ａ〜Ｒ（ローカル制御モジュールまたは制御通信モジュールとも呼ばれる）および転送テーブル１０３４Ａ〜Ｒを含む。
【００５１】
ソフトウェア１０２０は、ネットワーキングハードウェア１０１０によって実行されると、ネットワーキングハードウェア１０１０に本発明の１または複数の実施形態の動作を部分ネットワーキングソフトウェアインスタンス１０２２として実行させるコードを含むことができる。ソフトウェア１０２０は、サーバ、制御クライアントセッションセンダ、および／またはセッションリフレクタの方法を実装する、ＤＳＣＰおよびＥＣＮモニタおよび／またはＤＳＣＰおよびＥＣＮパケットプロセッサを包含するテストセッションマネージャ１０６４Ａを含む。一実施形態では、テストセッションマネージャ１０６４Ａは、サーバまたは制御クライアントによって実装され、ＤＳＣＰおよびＥＣＮモニタリングは、セッションセンダによって実装され、ＤＳＣＰおよびＥＣＮパケットプロセッサはセッションリフレクタによって実装される。
【００５２】
専用ネットワークデバイス１００２は、大抵、物理的および／または論理的に、１）制御通信および構成モジュール１０３２Ａ−Ｒを実行するコンピューティングリソース１０１２を含むＮＤ制御プレーン１０２４（制御プレーンと呼ばれることもある）、および、２）転送テーブル１０３４Ａ−Ｒおよび物理ＮＩ１０１６を利用する転送リソース１０１４を含むＮＤ転送プレーン１０２６（転送プレーン、データプレーン、またはメディアプレーンと呼ばれることもある）、を含むように考慮される。例として、ＮＤがルータ（または、ルーティング機能を実装している）場合、ＮＤ制御プレーン１０２４（制御通信および構成モジュール１０３２Ａ〜Ｒを実行する計算リソース１０１２）は、通常、データ（例えば、パケット）がどのようにルーティングされるべきかを制御し、そのルーティング情報を転送テーブル１０３４Ａ〜Ｒに格納することに関与し、ＮＤ転送プレーン１０２６は、物理ＮＩ１０１６上のデータを受信し、転送テーブル１０３４Ａ〜Ｒに基づいて物理ＮＩ１１０６のうちの適切なものからそのデータを転送することに関与する。
【００５３】
図１０Ｂは、本発明のいくつかの実施形態による専用ネットワークデバイス１００２を実装する例示的な方法を示す。図１０Ｂは、カード１０３８（通常、ホット・プラガブル）を含む専用ネットワークデバイスを示す。いくつかの実施形態では、カード１０３８は、２つのタイプ（ＮＤ転送プレーン１０２６（ラインカードと呼ばれることもある）として実装するように動作する１または複数のもの、および、ＮＤ制御プレーン１０２４（制御カードと呼ばれることもある）として実装するように動作する１または複数のもの）であり、代替的な実施形態は、機能を単一のカード上に組み合わせる、および／または、追加のカードタイプ（例えば、１つの追加のタイプのカードは、サービスカード、リソースカード、または、マルチアプリケーションカードと呼ばれる）を含んでよい。サービスカードは、専用の処理（例えば、レイヤ４からレイヤ７のサービス（例えば、ファイアウォール、ＩＰｓｅｃ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｓｅｃｕｒｉｔｙ）、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）／ＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）、ＩＤＳ（Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ）、Ｐ２Ｐ（ｐｅｅｒ−ｔｏ−ｐｅｅｒ）、ＶｏＩＰ（Ｖｏｉｃｅ  ｏｖｅｒ  ＩＰ）セッションボーダーコントローラ、モバイルワイヤレスゲートウェイ（ＧＧＳＮ（Ｇａｔｅｗａｙ  ＧＰＲＳ（Ｇｅｎｅｒａｌ  Ｐａｃｋｅｔ  Ｒａｄｉｏ  Ｓｅｒｖｉｃｅ）  Ｓｕｐｐｏｒｔ  Ｎｏｄｅ、ＥＰＣ（Ｅｖｏｌｖｅｄ  Ｐａｃｋｅｔ  Ｃｏｒｅ）ゲートウェイ））を提供することができる。例として、サービスカードは、ＩＰｓｅｃトンネルを終了させ、付随する認証や暗号化アルゴリズムを実行するために用いられてよい。これらのカードは、バックプレーン１０３６として示された１または複数の相互接続メカニズムを介して互いに結合される（例えば、ラインカードを結合する第１のフルメッシュ、および、すべてのカードを結合する第２のフルメッシュ）。
【００５４】
図１０Ａに戻ると、汎用ネットワークデバイス１００４は、１または複数のプロセッサ１０４２（大抵、ＣＯＴＳプロセッサである）、および、ネットワークインターフェイスコントローラ１０４４（ＮＩＣ；ネットワークインターフェースカードとしても知られる）（物理ＮＩ１０４６を含む）、並びに、ソフトウェア１０５０を記憶した非一時的なマシン読み取り可能記憶媒体１０４８の組を備えるハードウェア１０４０を含む。動作中、プロセッサ１０４２は、ソフトウェア１０５０を実行し、１または複数のアプリケーション１０６４Ａ〜Ｒの１または複数の組をインスタンス化する。一実施形態では仮想化を実装していないが、代替の実施形態では、仮想化レイヤ１０５４およびソフトウェアコンテナ１０６２Ａ〜Ｒによって表される、異なる形態の仮想化を用いてよい。例えば、そのような別の実施形態の１つは、オペレーティングシステムレベルの仮想化を実装し、その場合、仮想化レイヤ１０５４は、それぞれがアプリケーション１０６４Ａ〜１０６６Ｒのセットのうちの１つを実行するために使用される複数のソフトウェアコンテナ１０６２Ａ〜Ｒの作成を可能にするオペレーティングシステム（または、基本オペレーティングシステム上で実行するシム）のカーネルを表す。この実施形態では、複数のソフトウェアコンテナ１０６２Ａ〜Ｒ（仮想化エンジン、仮想プライベートサーバ、または、ジャイルとも呼ばれる）は、それぞれユーザ空間インスタンス（通常、仮想メモリ空間）である。これらのユーザ空間インスタンスは、互いに独立しており、オペレーティングシステムが実行されているカーネル空間から分離されている。所与のユーザ空間で実行されているアプリケーションのセットは、明示的に許可されていない限り、他のプロセスのメモリにアクセスできない。そのような代替の実施形態とは別のものは、完全な仮想化を実装し、この場合、１）仮想化レイヤ１０５４がハイパーバイザ（仮想マシンモニタ（ＶＭＭ）と呼ばれることもある）、または、ホストオペレーティングシステムの上で実行されているハイパーバイザを表し、および、２）ソフトウェアコンテナ１０６２Ａ〜Ｒがそれぞれ、ハイパーバイザによって実行されている仮想マシンと呼ばれる綿密に隔離された形態のソフトウェアを表し、ゲストオペレーティングシステムを含んでよい。仮想マシンは、物理的で非仮想化されたマシン上で実行されているかのうようにプログラムを実行する物理マシンのソフトウェア実装であり、いくつかのシステムでは、最適化の目的のために仮想化の存在をオペレーティングシステムやアプリケーションが知ることを可能となる準仮想化を提供しているが、「ベアメタル（ｂａｒｅ  ｍｅｔａｌ）」ホスト電子デバイス上で実行していることとは対照的に、アプリケーションは、一般的には、仮想マシン上で実行しているかを知らない。
【００５５】
１または複数のアプリケーション１０６４Ａ〜Ｒの１または複数のセット、および、仮想化レイヤ１０５４およびソフトウェアコンテナ１０６２Ａ−Ｒのインスタンス化は、実装されている場合には、ソフトウェアインスタンス１０５２と総称される。アプリケーション１０６４Ａ、実装されている場合には対応するソフトウェアコンテナ１０６２Ａ〜Ｒ、および、それらを実行するハードウェア１０４０の一部（ソフトウェアコンテナ１０６２Ａ〜Ｒによって一時的に共有されるハードウェアの実行および／またはタイムスライスに専用のハードウェアである）の各セットは、別個の仮想ネットワークエレメント１０６０Ａ〜Ｒを形成する。
【００５６】
仮想ネットワークエレメント１０６０Ａ〜Ｒは、例えば、制御通信および構成モジュール１０３２Ａおよび転送テーブル１０３４Ａと同様に、仮想ネットワークエレメント１０３０Ａ〜Ｒへの同様の機能を実行する（ハードウェア１０４０の仮想化は、ＮＦＶ（Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）と呼ばれることもある）。したがって、ＮＦＶは、データセンター、ＮＤ、およびＣＰＥ（Ｃｕｓｔｏｍｅｒ  Ｐｒｅｍｉｓｅ  Ｅｑｕｉｐｍｅｎｔ）に配置できる、業界標準の大容量サーバハードウェア、物理スイッチ、および物理ストレージに、多くのネットワーク装備のタイプを統合するために用いられてよい。しかし、本発明の異なる実施形態では、１または複数のソフトウェアコンテナ１０６２Ａ〜Ｒを別々に実装してよい。例えば、本発明の実施形態は、１つのＶＮＥ１０６０Ａ〜Ｒに対応する各ソフトウェアコンテナ１０６２Ａ〜Ｒを用いて図示されているが、代替の実施形態は、この対応関係をより細かいレベルの粒度（例えば、ラインカード仮想マシンはラインカードを仮想化し、制御カード仮想マシンは制御カードを仮想化する、など）で実装してよい。ソフトウェアコンテナ１０６２Ａ〜ＲのＶＮＥへの対応に関連して本明細書に記載された技術は、そのような細かいレベルの粒度が使用される実施形態にも適用されることを理解されたい。
【００５７】
特定の実施形態では、仮想化レイヤ１０５４は、物理イーサネットスイッチと同様の転送サービスを提供する仮想スイッチを含む。具体的には、この仮想スイッチは、ソフトウェアコンテナ１０６２Ａ〜ＲとＮＩＣ１０４４との間、および任意でソフトウェアコンテナ１０６２Ａ〜Ｒの間で、トラフィックを転送する。さらに、この仮想スイッチは、ポリシーが互いに通信することを許可していない（例えば、ＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を尊重することにより）ＶＮＥ１０６０Ａ〜Ｒの間のネットワークの分離を強制してよい。
【００５８】
ソフトウェア１０５０は、プロセッサ１０４２によって実行されると、プロセッサ１０４２に、本発明の１または複数の実施形態の動作を部分ソフトウェアコンテナ１０６２Ａ〜Ｒとして実行させるコードを含むことができる。ソフトウェア１０５０は、サーバ、制御クライアント、セッションセンダ、および／または、セッションリフレクタの方法を実装する、ＤＳＣＰおよびＥＣＮモニタ、および／または、ＤＳＣＰおよびＥＣＮパケットプロセッサを包含するテストセッションマネージャ１０６５Ａを含むことができる。一実施形態では、テストセッションマネージャ１０６４Ａはサーバまたは制御クライアントによって実装され、ＤＳＣＰおよびＥＣＮモニタリングはセッションセンダによって実装され、ＤＳＣＰおよびＥＣＮパケットプロセッサはセッションリフレクタによって実装される。
【００５９】
図１０Ａにおける第３の例示的なＮＤの実装は、単一のＮＤ、または、ＮＤ内の単一のカードに、カスタムＡＳＩＣ／専有ＯＳおよびＣＯＴＳプロセッサ／標準ＯＳの両方を含むハイブリッドネットワークデバイス１００６である。そのようなハイブリッドネットワークデバイスの特定の実施形態では、プラットフォームＶＭ（すなわち、専用ネットワークデバイス１００２の機能を実装するＶＭ）は、ハイブリッドネットワークデバイス１００６に存在するネットワーキングハードウェアに準仮想化を提供することができる。
【００６０】
ＮＤの上記例示の実装に関わらず、ＮＤにより実装された複数のＶＮＥのうちの１つが考慮されている（例えば、ＶＮＥのうちの１つだけが所との仮想ネットワークの一部である）場合や、単一のＶＮＥのみがＮＤにより現在実装されている場合は、短期間ネットワークエレメント（ＮＥ）は、そのＶＮＥを参照するために使用されることがある。上記例示の実装のすべてにおいても、ＶＮＥ（例えば、ＶＮＥ１０３０Ａ〜Ｒ、ＶＮＥ１０６０Ａ〜Ｒ、およびハイブリッドネットワークデバイス１００６におけるＶＮＥ）のそれぞれは、物理ＮＩ（例えば、１０１６、１０４６）上でデータを受信し、物理ＮＩ（例えば、１０１６、１０４６）のうちの適切なものからそのデータを転送する。例えば、ＩＰルータ機能を実装しているＶＮＥは、ＩＰパケットを、ＩＰパケット内のＩＰヘッダ情報の一部に基づいて転送する。ここで、ＩＰヘッダ情報は、送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート、宛先ポート（ここで、「送信元ポート」および「宛先ポート」は、ＮＤの物理ポートとは対照的にプロトコルポートを指す）、トランスポートプロトコル（例えば、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）、およびＤＳＣＰ（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ））の値を含む。
【００６１】
図１０Ｃは、本発明のいくつかの実施形態に従ってＶＮＥを結合する様々な例示的な方法を示す。図１０Ｃは、ＮＤ１０００ＡおよびＮＤ１０００ＨのＶＮＥ１０７０Ｈ．１に実装されたＶＮＥ１０７０Ａ．１−１０７０Ａ．Ｐ（および、オプションでＶＮＥ１０７０Ａ．Ｑ〜１０７０Ａ．Ｒ）を示す。図１０Ｃでは、ＶＮＥ１０７０Ａ．１−Ｐは、ＮＤ１０００Ａの外部からパケットを受信し、ＮＤ１０００Ａの外部にパケットを転送できるという意味で、互いに分離している。ＶＮＥ１０７０Ａ．１は、ＶＮＥ１０７０Ｈ．１と結合されているため、それぞれのＮＤ間でパケットを通信する。ＶＮＥ１０７０Ａ．２〜１０７０Ａ．３は、オプションとして、ＮＤ１０００Ａの外部にパケットを転送することなく、パケットを転送してよい。ＶＮＥ１０７０Ａ．Ｐは、オプションとして、ＶＮＥ１０７０Ａ．Ｑの後にＶＮＥ１０７０Ａ．Ｒを含むＶＮＥの連鎖内の最初のものであってもよい（これは、動的サービスチェーニング（ｄｙｎａｍｉｃ  ｓｅｒｖｉｃｅ  ｃｈａｉｎｉｎｇ）と呼ばれることがあり、一連のＶＮＥ内の各ＶＮＥは、異なるサービス（例えば、１または複数のレイヤ４〜７）ネットワークサービスを提供する）。図１０Ｃは、ＶＮＥ間の様々な例示的な関係を示しているが、代替の実施形態は、他の関係（例えば、より多くの／より少ないＶＮＥ、より多くの／より少ない動的サービスチェーン、いくつかの共通のＶＮＥといくつかの異なるＶＮＥを有する複数の異なる動的サービスチェーン）をサポートしてよい。
【００６２】
図１０ＡのＮＤは、例えば、インターネットまたはプライベートネットワークの一部を形成してよい。また、他の電子デバイス（不図示；ワークステーション、ラップトップ、ネットブック、タブレット、パームトップ、携帯電話、スマートフォン、ファブレット、マルチメディアフォン、ＶｏＩＰ（Ｖｏｉｃｅ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）フォン、端末、ポータブルメディアブレーヤ、ＧＰＳユニット、ウェアラブルデバイス、ゲーミングシステム、セットトップボックス、インターネットへの接続が可能な家電製品を含むエンドユーザデバイス）が、ネットワーク（例えば、インターネット、または、インターネット上に配置された（例えば、トンネリングされて）ＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ））を超えて互いに通信し、および／または、コンテンツおよび／またはサービスにアクセスするために、ネットワークと結合されてよい（直接的、または、アクセスネットワークのような他のネットワークを介して）。そのようなコンテンツおよび／またはサービスは、通常、サービス／コンテンツプロバイダまたはＰ２Ｐ（ｐｅｅｒ−ｔｏ−ｐｅｅｒ）サービスに参加する１または複数のエンドユーザデバイス（不図示）に属する１または複数のサーバ（不図示）により提供され、例えば、公開されているウェブページ（例えば、フリーコンテンツ、店頭、検索サービス）、プライベートウェブページ（例えば、Ｅメールサービスを提供するユーザ名／パスワードにてアクセスされるウェブページ）、および／またはＶＰＮを介した企業ネットワークを含んでよい。例えば、エンドユーザデバイスは、サーバとして動作している電子デバイスに結合された他のエッジＮＤと（例えば、１または複数のコアＮＤを介して）結合されたエッジＮＤと（例えば、アクセスネットワークと（有線または無線で）結合された加入者宅内機器を介して）結合されてよい。しかしながら、計算および格納の仮想化を通じて、図１０ＡにおいてＮＤとして動作している１または複数の電子デバイスは、そのような１または複数のサーバをホストしてもよい（例えば、汎用ネットワークデバイス１００４の場合、１または複数のソフトウェアコンテナ１０６２Ａ〜Ｒはサーバとして動作してよく、ハイブリッドネットワークデバイス１００６においても同様であり、専用ネットワークデバイス１００２の場合、そのような１または複数のサーバは計算リソース１０１２により実行される仮想化レイヤ上にて動作されることができる）。このような場合、サーバは、ＮＤのＶＮＥと共同設置されていると言われる。
【００６３】
仮想ネットワークは、ネットワークサービス（例えば、Ｌ２および／またはＬ３サービス）を提供する（図１０Ａのような）物理ネットワークの論理的な抽象化である。仮想ネットワークは、オーバーレイネットワークを作成するためのトンネル（例えば、ＧＲＥ（Ｇｅｎｅｒｉｃ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）、Ｌ２ＴＰ（Ｌａｙｅｒ  ２  ｔｕｎｎｅｌｉｎｇ  Ｐｒｏｔｏｃｏｌ）、ＩＰＳｅｃ）を使用するＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークのような、Ｌ３）を用いるアンダーレイネットワークの上の、ネットワークサービス（例えば、レイヤ２（Ｌ２、データリンクレイヤ）および／またはレイヤ３（Ｌ３、ネットワークレイヤ）サービス）を提供するオーバーレイネットワーク（ネットワーク仮想化オーバーレイと呼ばれることもある）として実施することができる。
【００６４】
ＮＶＥ（Ｎｅｔｗｏｒｋ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ  Ｅｄｇｅ）は、アンダーレイネットワークのエッジに位置し、ネットワーク仮想化の実装に加わる。ＮＶＥのネットワーク側は、アンダーレイネットワークを使用して、他のＮＶＥとの間でフレームをトンネリングする。ＮＶＥの外向き側は、ネットワーク外のシステムとの間でデータを送受信する。ＮＶＩ（Ｖｉｒｔｕａｌ  Ｎｅｔｗｏｒｋ  Ｉｎｓｔａｎｃｅ）は、ＮＶＥ上の仮想ネットワークの特定のインスタンスである（例えば、ＮＤ上のＮＥ／ＶＮＥ、ＮＤ上のＮＥ／ＶＮＥの一部、そのＮＥ／ＶＮＥは、エミュレーションを介して複数のＶＮＥに分割される）。１または複数のＶＮＩは、ＮＶＥ上にインスタンス化することができる（例えば、ＮＤ上の異なるＶＮＥとして）。ＶＡＰ（Ｖｉｒｔｕａｌ  Ａｃｃｅｓｓ  Ｐｏｉｎｔ；仮想アクセスポイント）は、外部システムを仮想ネットワークに接続するためのＮＶＥ上の論理接続ポイントである。ＶＡＰは、論理インタフェース識別子（例えば、ＶＬＡＮ  ＩＤ）により識別される物理的または仮想的なポートとすることができる。
【００６５】
ネットワークサービスの例は、以下を含む。１）イーサネットＬＡＮエミュレーションサービス（ＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）ＭＰＬＳ（Ｍｕｌｔｉｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）に類似するイーサネットベースのマルチポイントサービス、または、ＥＶＰＮ（Ｅｔｈｅｒｎｅｔ  ＶＰＮ）サービス）であり、外部システムは、アンダーレイネットワークの上のＬＡＮ環境によりネットワークを介して相互接続される（例えば、ＮＶＥは、そのような異なる仮想ネットワークのための別個のＬ２  ＶＮＩ（仮想スイッチングインスタンス）や、アンダーレイネットワークの上のＬ３（例えば、ＩＰ／ＭＰＬＳ）トンネリングカプセル化を提供する）。２）仮想化されたＩＰ転送サービス（サービス定義の観点からＩＥＴＦ  ＩＰ  ＶＰＮ（例えば、ＢＧＰ（Ｂｏｒｄｅｒ  Ｇａｔｅｗａｙ  Ｐｒｏｔｏｃｏｌ）／ＭＰＬＳ  ＩＰＶＰＮ）に類似する）であり、外部システムは、アンダーレイネットワークの上のＬ３環境によりネットワークを介して相互接続される（例えば、ＮＶＥは、そのような異なる仮想ネットワークのための別個のＬ３  ＶＮＩ（転送およびルーティングインスタンス）や、アンダーレイネットワークの上のＬ３（例えば、ＩＰ／ＭＰＬＳ）トンネリングカプセル化を提供する）。ネットワークサービスは、サービス品質の機能（例えば、トラック分類マーキング、トラフィック調整、およびスケジューリング）、セキュリティ機能（例えば、不正なルートアナウンスメントを回避するために、ネットワーク上の攻撃から加入者宅内を保護するためのフィルタ）、および、管理機能（例えば、完全な検知と処理）を含んでもよい。
【００６６】
図１０Ｄは、図１０Ａの各ＮＤ上の単一のネットワークエレメントを有するネットワークを示し、この単純な転送アプローチの中では、従来の分散型アプローチ（従来のルータで一般的に使用されている）と、本発明の実施形態に係る、到達可能性と転送情報（ネットワーク制御とも呼ばれる）を維持するための集中化されたアプローチとを対比させる。具体的には、図１０Ｄは、図１０ＡのＮＤ１０００Ａ〜Ｈと同じ接続性を有するネットワークエレメント（ＮＥ）１０７０Ａ〜Ｈを示す。
【００６７】
図１０Ｄは、分散型アプローチ１０７２がＮＥ１０７０Ａ〜Ｈを介して到達可能性および転送情報を生成するための能力を分散している。言い換えると、ネイバー発見およびトポロジ発見の処理が分散されている。
【００６８】
例えば、専用ネットワークデバイス１００２が用いられている場合、ＮＤ制御プレーン１０２４の制御コミュニケーションおよび構成モジュール１０３２Ａ〜Ｒは、通常、到達可能性および転送情報モジュールを含み、１または複数のルーティングプロトコル（例えば、ＢＧＰ（Ｂｏｒｄｅｒ  Ｇａｔｅｗａｙ  Ｐｒｏｔｏｃｏｌ）のような外部ゲートウェイプロトコル、ＩＧＰ（Ｉｎｔｅｒｉｏｒ  Ｇａｔｅｗａｙ  Ｐｒｏｔｏｃｏｌ）（例えば、ＯＳＰＦ（Ｏｐｅｎ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ）、ＩＳ−ＩＳ（Ｉｎｔｅｒｍｅｄｉａｔｅ  Ｓｙｓｔｅｍ  ｔｏ  Ｉｎｔｅｒｍｅｄｉａｔｅ  Ｓｙｓｔｅｍ）、ＲＩＰ（Ｒｏｕｔｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ））、ＬＤＰ（Ｌａｂｅｌ  Ｄｉｓｔｒｉｂｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）、ＲＳＶＰ（Ｒｅｓｏｕｒｃｅ  Ｒｅｓｅｒｖａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）、およびＲＳＶＰ−ＴＥ（Ｔｒａｆｆｉｃ  Ｅｎｇｉｎｅｅｒｉｎｇ）（ＬＳＰトンネルに対するＲＳＶＰへの拡張、他のＮＥと通信してルートを交換し、１または複数のルーティングメトリックに基づいてこれらのルートを選択するＧＭＰＬＳ（Ｇｅｎｅｒａｌｉｚｅｄ  Ｍｕｌｔｉ−Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）シグナリングＲＳＶＰ−ＴＥ）を実装する。したがって、ＮＥ１０７０Ａ−Ｈ（例えば、制御通信および構成モジュール１０３２Ａ〜Ｒを実行する計算リソース１０１２）は、ネットワーク内の到達可能性を分散的に決定し、それらのそれぞれの転送情報を計算することにより、データ（例えば、パケット）がどのようにルーティングされるべきかを制御すること（例えば、データの次のホップおよびそのデータの送信物理ＮＩ）に関与するための能力を実行する。ルートおよび隣接は、ＮＤ制御プレーン１０２４上の１または複数のルーティング構造（例えば、ＲＩＢ（Ｒｏｕｔｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）、ＬＩＢ（Ｌａｂｅｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）、１または複数の隣接構造）に格納される。ＮＤ制御プレーン１０２４は、ルーティング構造に基づいて、情報（例えば、隣接性および経路情報）を有するＮＤ転送プレーン１０２６をプログラムする。例えば、ＮＤ制御プレーン１０２４は、隣接性および経路情報を、ＮＤ転送プレーン１０２６上の１または複数の転送テーブル１０３４Ａ〜Ｒ（例えば、ＦＩＢ（Ｆｏｒｗａｒｄｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）、ＬＦＩＢ（Ｌａｂｅｌ  Ｆｏｒｗａｒｄｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）、および１または複数の隣接性構造）にプログラムする。レイヤ２転送に関し、ＮＤは、データのレイヤ２情報に基づいてそのデータを転送するために用いられる１または複数のブリッジテーブルを格納することができる。上記の例では、専用ネットワークデバイス１００２が用いるが、同じ分散型アプローチ１０７２は、汎用ネットワークデバイス１００４やハイブリッドネットワークデバイス１００６上に実装することができる。
【００６９】
図１０Ｄは、選択された宛先にトラフィックを転送する下層のシステムから、どこにトラフィックが送信されるかを決定するシステムを切り離す集中型アプローチ１０７４（ＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋｉｎｇ）としても知られている）を示す。図示された集中型アプローチ１０７４は、中央制御プレーン１０７６（ＳＤＮ制御モジュール、コントローラ、ネットワークコントローラ、ＯｐｅｎＦｌｏｗコントローラ、ＳＤＮコントローラ、制御プレーンノード、ネットワーク仮想化機関とも呼ばれる）内の到達可能性および転送情報の生成の機能を有し、したがって、ネイバー発見およびトポロジ発見のプロセスが集中化される。集中型制御プレーン１０７６は、ＮＥ１０７０Ａ〜１０７０Ｅ（スイッチ、転送エレメント、データプレーンエレメント、またはノードとも呼ばれる）を含むデータプレーン１０８０（インフラストラクチャ層、ネットワーク転送プレーン、または転送プレーン（ＮＤ転送プレーンと混同してはならない）とも呼ばれる）とのサウスバウンドインターフェース１０８２を有する。集中型制御プレーン１０７６は、ネットワーク内の到達可能性を判定し、サウスバウンドインターフェース１０８２（ＯｐｅｎＦｌｏｗプロトコルを用いてもよい）を介して、データプレーン１０８０のＮＥ１０７０Ａ〜Ｈにその転送情報を配信する集中型の到達可能性および転送情報モジュール１０７９を含むネットワークコントローラ１０７８を含む。したがって、ネットワークインテリジェンスは、通常、ＮＤとは別個の電子デバイス上で実行する集中型制御プレーン１０７６に集約される。
【００７０】
例えば、専用ネットワークデバイス１００２がデータプレーン１０８０で用いられる場合、ＮＤ制御プレーン１０２４の制御通信および構成モジュール１０３２Ａ〜Ｒのそれぞれは、通常、サウスバウンドインターフェース１０８２のＶＮＥ側を提供する制御エージェントを含む。この場合、ＮＤ制御プレーン１０２４（制御通信および構成モジュール１０３２Ａ〜Ｒを実行している計算リソース１０１２）は、集中型の到達可能性および転送情報モジュール１０７９から転送情報（場合によっては到達可能性情報）を受信するために、集中制御プレーン１０７６と通信する制御エージェントを介して、データ（例えば、パケット）がどのようにルーティングされるべきかを制御すること（例えば、データの次のホップおよびデータの出力する物理ＮＩ）に関与する機能を実行する（本発明のいくつかの実施形態では、制御通信および構成モジュール１０３２Ａ〜Ｒは、集中型制御プレーン１０７６と通信することに加えて、到達可能性を決定することおよび／または転送情報を計算することにおいて何らかの役割を果たしてもよいが、分散型アプローチの場合よりも少ない。そのような実施形態は、一般に、集中型アプローチ１０７４に該当すると考えられるが、ハイブリッド型アプローチと見なすこともできる）。
【００７１】
上記の例では、専用ネットワークデバイス１００２を使用しているが、同じ集中型アプローチ１０７４は、汎用ネットワークデバイス１００４（例えば、ＶＮＥ１０６０Ａ〜Ｒの各々は、集中型到達可能性および転送情報モジュール１０７９から転送情報（場合によっては到達可能性情報）を受信するために集中型制御プレーン１０７６と通信することにより、データ（例えば、パケット）がどのようにルーティングされるべきか（例えば、データの次のホップおよび出力物理ＮＩ）を制御するための機能を実行する。本発明のいくつかの実施形態では、ＶＮＥ１０６０Ａ〜Ｒは、集中型制御プレーン１０７６と通信することに加えて、到達可能性を決定すること、および／または、転送情報を計算することにおいて何らかの役割を果たしてもよいが、分散型アプローチの場合よりも少ない。）、およびハイブリッドネットワークデバイス１００６で実装されることができる。 実際に、ＳＤＮ技術の使用は、ＳＤＮソフトウェアを実行することができるインフラストラクチャを提供することにより、ＮＦＶがＳＤＮをサポートすることができるため、汎用ネットワークデバイス１００４またはハイブリッドネットワークデバイス１００６の実装で通常使用されるＮＦＶ技術を向上させることができ、ＮＦＶとＳＤＮは両方ともコモディティサーバハードウェアと物理スイッチを利用することを意図する。
【００７２】
いくつかの実施形態では、集中型制御プレーン１０６４は、ネットワークデバイスによって実行されると、ネットワークデバイスに、テストセッションマネージャまたはオーケストレータ１０８１の一部として、本発明の１または複数の実施形態の動作を実行させるコードを含むことができる。セストセッションマネージャまたはオーケストレータ１０８１は、上述のようにセッションセンダおよびセッションリフレクタを構成する。
【００７３】
図１０Ｄはまた、集中型制御プレーン１０７６がアプリケーション１０８８に存在するアプリケーション層１０８６へのノースバウンドインターフェース１０８４を有することを示す。集中型制御プレーン１０７６は、アプリケーション１０８８に対する仮想ネットワーク１０９２（トン理転送プレーン、ネットワークサービス、または（データプレーン１０８０のＮＥ１０７０Ａ〜Ｈがアンダーレイネットワークである）オーバーレイネットワークとも呼ばれる）を形成する能力を有する。したがって、集中型制御プレーン１０７６は、すべてのＮＤおよび設定されたＮＥ／ＶＮＥの全体像を維持し、（物理ネットワークがハードウェア（ＮＤ、リンク、またはＮＤコンポーネント）の障害、追加、または削除によって変更された場合、これらのマッピングを維持することも含めて）仮想ネットワークを基盤となるＮＤに効率的にマッピングする。
【００７４】
図１０Ｄは、集中型アプローチ１０７４とは別個の分散型アプローチ１０７２を示しているが、ネットワーク制御の取り組みは、本発明の特定の実施形態において、異なる方法で分散されてもよいし、２つが組み合わせられてもよい。例えば、１）実施形態は、一般に、集中型アプローチ（ＳＤＮ）１０７４を用いてよいが、ＮＥに委譲された特定の機能を有する（例えば、分散型アプローチは、障害監視、性能監視、保護スイッチング、ネイバーおよび／またはトポロジ発見のためのプリミティブのうちの１または複数を実装するために用いられてよい）、または、２）本発明の実施形態は、集中型制御プレーンおよび分散型プロトコルの両方を介してネイバー発見およびトポロジ発見を実行してよく、それらが一致しない場合に例外を発生させるために比較される。そのような実施形態は、一般に、集中型アプローチ１０７４に該当すると考えられるが、ハイブリッド型アプローチと見なすこともできる。
【００７５】
図１０Ｄは、各ＮＤ１０００Ａ〜Ｈが単一のＮＥ１０７０Ａ〜Ｈを実装する単純なケースを示しているが、図１０Ｄを参照して説明したネットワーク制御アプローチは、１または複数のＮＤ１０００Ａ〜Ｈが複数のＶＮＥ（例えば、ＶＮＥ１０３０Ａ〜Ｒ、ＶＮＥ１０６０Ａ〜Ｒ、ハイブリッドネットワークデバイス１００６内のＶＮＥ）を実装するネットワークでも機能すると理解されるべきである。これに代えてまたは加えて、ネットワークコントローラ１０７８は、単一のＮＤで複数のＶＮＥの実装をエミュレートしてもよい。具体的には、単一のＮＤに複数のＶＮＥを実装する代わりに（またはそれに加えて）、ネットワークコントローラ１０７８は、仮想ネットワーク１０９２内の複数のＶＮＥとして単一のＮＤ内にＶＮＥ／ＮＥの実装を提示してもよい（すべてが仮想ネットワーク１０９２のうちの同じものにある、それぞれが仮想ネットワーク１０９２のうちの異なるものにある、もしくはいくつかの組み合わせ）。例えば、ネットワークコントローラ１０７８は、ＮＤにアンダーレイネットワーク内の単一のＶＮＥ（ＮＥ）を実装させ、その後、仮想ネットワーク１０９２に異なるＶＮＥを提示するために、集中型制御プレーン１０７６内でそのＮＥのリソースを論理的に分割してよい（オーバーレイネットワーク内のこれらの異なるＶＮＥは、アンダーレイネットワーク内のＮＤ上の単一のＶＮＥ／ＮＥ実装のリソースを共有している）。
【００７６】
一方、図１０Ｅおよび１０Ｆは、ネットワークコントローラ１０７８が仮想ネットワーク１０９２のうちの異なるネットワークの一部として存在してよいＮＥおよびＶＮＥの例示的な抽象をそれぞれ示す。図１０Ｅは、本発明のいくつかの実施形態に関し、ＮＤ１０００Ａ〜Ｈのそれぞれが単一のＮＥ１０７０Ａ〜Ｈを実装するが（図１０Ｄ参照）、集中型制御プレーン１０７６は、図１０Ｄの画像ネットワーク１０９２のうちの一つにおいて、異なるＮＤ（ＮＥ１０７０Ａ〜ＣおよびＧＨ）内の複数のＮＥを単一のＮＥ１０７０Ｉに（表現するために）抽象化していることを示す。図１０Ｅは、この仮想ネットワークにおいて、ＮＥ１０７０ＩがＮＥ１０７０Ｄおよび１０７０Ｆに結合されており、どちらもまだＮＥ１０７０Ｅに結合されていることを示す。
【００７７】
図１０Ｆは、本発明のいくつかの実施形態に関し、複数のＶＮＥ（ＶＮＥ１０７０Ａ．１およびＶＮＥ１０７０Ｈ．１）が異なるＮＤ（ＮＤ１０００ＡおよびＮＤ１０００Ｈ）上に実装され、互いに結合され、図１０Ｄの仮想ネットワーク１０９２のうちの１つの中に単一のＶＮＥ１０７０Ｔとして現れるように、中央制御プレーン１０７６がこれらの複数のＶＮＥを抽象化した場合を示す。したがって、ＮＥまたはＶＮＥの抽象化は、複数のＮＤに及ぶことができる。
【００７８】
本発明のいくつかの実施形態は、単一のエンティティ（例えば、単一の電子デバイス上で動作するソフトウェアの単一インスタンス）として集中制御プレーン１０７６を実装するが、代替の実施形態は、冗長性および／または拡張性を目的として、複数のエンティティにわたって機能を広げることができる（例えば、異なる電子デバイス上で動作する複数のインスタンス）。
【００７９】
ネットワークデバイス実装と同様に、集中型制御プレーン１０７６を実行する電子デバイス、ひいては、集中型到達可能性および転送情報モジュール１０７９を含むネットワークコントローラ１０７８は、様々な方法で実装されてよい（例えば、専用デバイス、汎用（例えば、ＣＯＴＳ）デバイス、または、ハイブリッドデバイス）。これらの電子デバイスは、同様に、計算リソース、１または複数の物理ＮＩＣのセット、および集中型制御プレーンソフトウェアが格納された非一時的な機械可読記憶媒体を含む。例えば、図１１は、（しばしばＣＯＴＳプロセッサである）１または複数のプロセッサ１１４２、および、ネットワークインターフェイスコントローラ１１４４（ＮＩＣ、ネットワークインターフェースカードとも呼ばれる）（物理ＮＩ１１４６を含む）、および集中型制御プレーン（ＣＣＰ）ソフトウェア１１５０を格納した非一時的マシン読み取り可能記憶媒体１１４８のセットを含むハードウェア１１４０を含む汎用制御プレーンデバイス１１０４を示す。
【００８０】
計算の仮想化を用いる実施形態では、プロセッサ１１４２は、通常、仮想化レイヤ１１５４およびソフトウェアコンテナ１１６２Ａ〜Ｒをインスタンス化するためにソフトウェアを実行する（例えば、オペレーティングシステムレベルでの仮想化では、仮想化レイヤ１１５４は、１または複数のアプリケーションの組を実行するためにそれぞれ用いることができる複数のソフトウェアコンテナ１１６２Ａ〜Ｒ（別個のユーザ空間インスタンスを表し、仮想化エンジン、仮想化プライベートサーバ、またはジャイルとも呼ばれる）の作成を可能にするオペレーティングシステム（または、基本オペレーティングシステム上で実行するシム）のカーネルを表す；フル仮想化では、仮想化レイヤ１１５４は、ハイパーバイザ（ＶＭＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）とも呼ばれる）やホストオペレーティングシステムの上で実行しているハイパーバイザを表し、ソフトウェアコンテナ１１６２Ａ〜Ｒはそれぞれ、ハイパーバイザにより動作され、ゲストオペレーティングシステムを含んでよい仮想マシンと呼ばれる綿密に隔離された形式のソフトウェアコンテナを表す；パラ仮想化では、仮想マシンで動作するオペレーティングシステムまたはアプリケーションは、最適化の目的で仮想化の存在を認識している可能性がある）。また、計算の仮想化を用いる実施形態では、動作中、ＣＣＰソフトウェア１１５０（ＣＣＰインスタンス１１７６Ａとして示される）のインスタンスが仮想化レイヤ１１５４上のソフトウェアコンテナ１１６２内で実行される。計算の仮想化が用いられない実施形態では、ホストオペレーティングシステムの上のＣＣＰインスタンス１１７６Ａは、「ベアメタル（ｂａｒｅ  ｍｅｔａｌ）」汎用制御プレーンデバイス１１０４上で実行される。ＣＣＰインスタンス１１７６Ａ、および、実装されている場合には仮想化レイヤ１１５４およびソフトウェアコンテナ１１６２Ａ〜Ｒのインスタンス化は、ソフトウェアインスタンス１１５２と総称される。
【００８１】
いくつかの実施形態では、ＣＣＰインスタンス１１７６Ａは、ネットワークコントローラインスタンス１１７８を含む。ネットワークコントローラインスタンス１１７８は、集中型到達可能性および転送情報モジュールインスタンス１１７９（オペレーティングシステムにネットワークコントローラ１０７８のコンテキストを提供し、様々なＮＥと通信するミドルウェアである）、および、ミドルレイヤ（プロトコル、ネットワーク状況認識、および、ユーザインターフェースなどの様々なネットワーク動作に対して要求されるインテリジェンスを提供する）上のＣＣＰアプリケーションレイヤ１１８０（アプリケーションレイヤとも呼ばれる）を含む。より抽象的なレベルでは、中央制御プレーン１０７６内のこのＣＣＰアプリケーション層１１８０は、仮想ネットワークビュー（ネットワークの論理ビュー）を用いて動作し、ミドルウェアレイヤは、仮想ネットワークから物理ビューへの変換を提供する。
【００８２】
いくつかの実施形態では、制御プレーンデバイス１１０４は、実行されると、制御プレーンデバイスに、テストセッションマネージャまたはオーケストレータ１１８１の一部として本発明の１または複数の実施形態の動作を実行させるコードを含むことができる。テストセッションマネージャまたはオーケストレータ１１８１は、上記のようにセッションセンダおよびセッションリフレクタを構成する。
【００８３】
集中制御プレーン１０７６は、ＣＣＰアプリケーション層１１８０の計算および各フローのミドルウェアレイヤマッピングに基づいて、関連するメッセージをデータプレーン１０８０に送信する。フローは、ヘッダがビットの所与のパターンと一致するパケットのセットとして定義されてよい。この趣旨において、従来のＩＰ転送は、フローが宛先ＩＰアドレスなどで定義されるフローベースの転送でもある。しかし、他の実装形態では、フロー定義に使用されるビットの所与のパターンは、パケットヘッダ内により多くのフィールド（例えば、１０以上）を含んでよい。データプレーン１０８０の異なるＮＤ／ＮＥ／ＶＮＥは、異なるメッセージ、したがって異なる転送情報を受信してよい。データプレーン１０８０は、これらのメッセージを処理し、適切なフロー情報および対応するアクションを、適切なＮＥ／ＶＮＥの転送テーブル（フローテーブルとも呼ばれる）にプログラムし、次いで、ＮＥ／ＶＮＥは、着信パケットを転送テーブルに表されたフローにマッピングし、転送テーブル内の一致に基づいて転送パケットを転送する。
【００８４】
ＯｐｅｎＦｌｏｗのような標準は、メッセージのために使用されるプロトコルと、パケットを処理するためのモデルとを定義する。パケットを処理するためのモデルは、ヘッダ解析、パケット分類、および転送決定を行うことを含む。ヘッダ解析では、よく知られたプロトコルのセットに基づいてパケットを解釈する方法が説明される。いくつかのプロトコルフィールドは、パケット分類に用いられるであとうマッチ構造（またはキー）を構築するために使用される（例えば、第１のキーフィールドは送信元ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスであり、第２のキーフィールドは宛先ＭＡＣアドレスである）。
【００８５】
パケット分類は、転送テーブルのエントリ（転送テーブルエントリまたはフローエントリとも呼ばれる）が、転送テーブルエントリのマッチ構造またはキーに基づいて、最も一致するパケットを決定することにより、パケットを識別するために、メモリ内のルックアップを実行することを含む。転送テーブルエントリに表された多くのフローがパケットに対応するか一致する可能性がある。この場合、システムは、通常、定義されたスキームに関する多くの中から１つの転送テーブルを決定するように構成される（例えば、一致する第１の転送テーブルを選択すること）。転送テーブルエントリは、マッチ基準（値またはワイルドカードのセット、マッチング機能によって定義される、パケットヘッダにおける特定のフィールドに対するまたはいくつかの他のパケットの内容に対する、パケットのどの部分を特定の値／値／ワイルドカードと比較すべきかの指示）の特定の組と、一致するパケットを受信するためにデータプレーンに対する１または複数のアクションの両方を含む。例えば、アクションは、特定のポートを使用しているパケットに対して、ヘッダをパケットにプッシュしたり、パケットをフラッディングしたり、単純にパケットをドロップするようにしてよい。したがって、特定のＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）宛先ポートを有するＩＰｖ４／ＩＰｖ６パケットの転送テーブルエントリは、これらのパケットをドロップすべきであることを指定するアクションを含むことができる。
【００８６】
転送決定を行い、アクションを実行することは、パケット分類の間に識別された転送テーブルエントリに基づいて、パケット上の一致する転送テーブルエントリで識別されたアクションのセットを実行することによって行われる。
【００８７】
しかしながら、未知のパケット（例えば、「欠落パケット」または「ＯｐｅｎＦｌｏｗ用語で使用される「マッチミス（ｍａｔｃｈ−ｍｉｓｓ）」）がデータプレーン１０８０に到着すると、パケット（または、パケットヘッダおよびコンテンツのサブセット）は、通常、集中型制御プレーン１０７６に転送される。集中型制御プレーン１０７６は、未知のパケットのフローに属するパケットを受け入れるために、データプレーン１０８０に転送テーブルエントリをプログラムするであろう。特定の転送テーブルエントリが集中型制御プレーン１０７６によってデータプレーン１０８０にプログラムされると、一致するクレデンシャルを持つ次のパケットは、その転送テーブルエントリと一致し、一致したエントリに関連付けられた一連のアクションを実行するであろう。
【００８８】
前述の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対するトランザクションのアルゴリズムおよび記号表現に関して示されている。これらのアルゴリズム記述および表現は、データ処理技術の当業者が、当業者の業務の内容を当業者に最も効果的に伝えるために使用される方法である。アルゴリズムは、ここでは一般的に、所望の結果を導くトランザクションの自己一貫したシーケンスであると考えられる。トランザクションは、物理量の物理的操作を必要とするものである。通常、必ずしも必要ではないが、これらの量は、記憶、転送、結合、比較、およびその他の操作が可能な電気信号または磁気信号の形式をとる。これらの信号をビット、値、要素、記号、文字、用語、数字などと呼ぶことは、主に一般的な使用のために、時には便利であることが判明している。
【００８９】
しかしながら、これらの用語および類似の用語は全て、適切な物理量に関連し、これらの量に適用される便利なラベルに過ぎないことに留意すべきである。上記の説明から明らかなように特に明記しない限り、明細書の全体にわたって、「処理する」、「計算する」、「算出する」、「決定する」、または「表示する」などの用語を利用する説明は、コンピュータシステムのレジスタおよびメモリ内の物理（電子）量として表されるデータを、コンピュータシステムのメモリ、レジスタ、または他の情報ストレージ、転送または表示装置内の物理量として同様に表される他のデータに操作および変換する、コンピュータシステムまたは類似の電子デバイスのアクション及び処理を指す。
【００９０】
本明細書で示されるアルゴリズムおよびディスプレイは、特定のコンピュータまたは他の装置に本質的に関連するものではない。様々な汎用システムが、本明細書の教示に従ってプログラムと共に使用されてもよく、また、必要な方法のトランザクションを実行するためにより特化された装置を構築することが好適であると証明されてもよい。様々なこれらのシステムに必要な構造は、上記の説明から明らかであろう。さらに、本発明の実施形態は、特定のプログラミング言語を参照して説明されてはいない。本明細書で説明する本発明の実施形態の教示を実装するために、様々なプログラミング言語が用いられてもよいことが理解されるであろう。
【００９１】
前述の明細書では、本発明の実施形態がその特定の例示的な実施形態を参照して説明された。添付の特許請求の範囲に記載された本発明のより広い趣旨および範囲から逸脱することなく、様々な変更がなされ得ることは明らかであろう。したがって、明細書および図面は、限定的な意味ではなく例示的な意味であるとみなされるべきである。
【００９２】
説明の全体を通して、本発明の実施形態は、フロー図を用いて示された。これらのフロー図に記載されているトランザクションおよびトランザクションの順序は、説明の目的でのみ意図されており、本発明の限定として意図されていないことを理解されたい。当業者であれば、添付の特許請求の範囲に記載された本発明のより広い趣旨および範囲から逸脱することなく、フロー図に変形を加えることができることを認識するであろう。
【図１Ａ】
2019504568.tif 000003
【図１Ｂ】
2019504568.tif 000004
【図２】
2019504568.tif 000005
【図３】
2019504568.tif 000006
【図４】
2019504568.tif 000007
【図５】
2019504568.tif 000008
【図６】
2019504568.tif 000009
【図７】
2019504568.tif 000010
【図８】
2019504568.tif 000011
【図９】
2019504568.tif 000012
【図１０Ａ】
2019504568.tif 000013
【図１０Ｂ】
2019504568.tif 000014
【図１０Ｃ】
2019504568.tif 000015
【図１０Ｄ】
2019504568.tif 000016
【図１０Ｅ】
2019504568.tif 000017
【図１０Ｆ】
2019504568.tif 000018
【図１１】
2019504568.tif 000019
【国際調査報告】
2019504568.tif 000020
2019504568.tif 000021
2019504568.tif 000022