説明

ダイナミックMPLSラベル割り当てを用いるトラフィックジェネレータ

【課題】MPLSラベルスイッチネットワークを検査するためのトラフィックを生成するポートユニットの構成を提供する。
【解決手段】ポートユニット116は、トラフィックジェネレータ、トラフィックレシーバ、およびポートプロセッサで構成され、該トラフィックジェネレータは、複数のパケットストリームを定義するデータを記憶するメモリを含んでおり、ポートプロセッサは、複数のラベル状態セットと、トラフィックジェネレータメモリ内の1つ以上の個別の位置とを関連付けるラベル追跡データを記憶する。MPLSラベルを特定のラベル状態セットと関連付ける制御パケットがトラフィックレシーバを介して受信された場合、ポートプロセッサは、記憶されたラベル追跡データに従って、特定のラベル状態セットと関連付けられた1つ以上のトラフィックジェネレータメモリ位置にMPLSラベルを記憶する。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ネットワークまたはネットワークデバイスを検査するためのトラフィックの生成に関する。
【0002】
[著作権とトレードドレスの表示]
本特許文献の開示の一部は、著作権保護の対象となるマテリアルを含む。本特許文献は、所有者のトレードドレスである事項またはなり得る事項を示し、および/または記載し得る。著作権およびトレードドレス権の所有者は、特許商標庁のファイルまたは記録にあることから、本特許開示について任意の者によるファクシミリによる複製に対しては異議を有さないが、他の場合にはいかなる著作権およびトレードドレス権もすべて留保する。
【背景技術】
【0003】
多くの種類の通信ネットワークにおいて、送信される各メッセージは、固定長または可変長の部分に分割される。各部分は、情報のパケット、フレーム、セル、データグラム、データ単位または他の単位と称されることがあり、本文献においては、それらの全てをパケットと称する。
【0004】
各パケットは、一般にパケットのペイロードと呼ばれる、オリジナルメッセージの一部を含む。パケットのペイロードは、データを含んでもよく、あるいは音声情報またはビデオ情報を含んでもよい。パケットのペイロードはまた、ネットワーク管理制御情報を含んでもよい。それに加えて、各パケットは、一般にパケットヘッダと呼ばれる、識別およびルーティングの情報を含む。パケットは、多数のスイッチまたはノードを介し、ネットワークを通じて個々に送信される。パケットは、メッセージがターゲットデバイスまたはエンドユーザに配信される前に、最終送信先において、パケットヘッダに含まれる情報を用いたメッセージに再構築される。再構築されたメッセージは、受信先において、ユーザ機器と互換性のある形式でエンドユーザに渡される。
【0005】
メッセージをパケットとして送信する通信ネットワークは、パケット交換ネットワークと呼ばれる。パケット交換ネットワークは、一般的に、ハブまたはノードにおいて交差する送信経路のメッシュを含む。ノードの少なくとも一部は、ノードに到達するパケットを受信し、かつ適切な発信経路に沿ってパケットを再送信する、スイッチングデバイスまたはルータを含んでもよい。パケット交換ネットワークは、業界標準プロトコルの階層構造を基準とする。階層1、階層2、および、階層3の構造は、それぞれ、物理的階層、データリンク階層、および、ネットワーク階層である。
【0006】
階層1プロトコルは、ネットワークのノード間における物理的(電気的、光学的、または、無線)インターフェースを定義する。階層1プロトコルは、種々のイーサネット(登録商標)物理的構造、同期光学的ネットワーク(SONET)および他の光学的通信プロトコル、ならびに、WiFi(登録商標)等の種々の無線プロトコルを含む。
【0007】
階層2プロトコルは、どのようにデータがネットワークのノード間で論理的に伝送されるかを規定する。階層2プロトコルは、イーサネット(登録商標)、非同期転送モード(ATM)、フレームリレー(FR)、および、ポイントツーポイントプロトコル(PPP)を含む。
【0008】
階層3プロトコルは、どのようにパケットがネットワークの多数のノードを接続する経路に沿って発信元から送信先へ送られるかを規定する。主要な階層3プロトコルは、周知のインターネットプロトコルバージョン4(IPv4)およびインターネットプロトコルバージョン6(IPv6)である。パケット交換ネットワークは、イーサネット(登録商標)、ATM、FR、および/またはPPPといった階層2プロトコルの組み合わせを用いてIPパケットをルーティングする必要があり得る。
【0009】
歴史的にみて、各ルータは、受信された各パケットを解析して、パケット内に含まれるネットワーク階層ヘッダから送信先アドレスを抽出していた。次いで、ルータは、送信先アドレスを用いて再送信されるべきパケットに従って経路またはパスを決定していた。一般的なパケットは複数のルータを通過し得、いずれのルータも送信先アドレスの抽出動作および再送信されるべきパケットに従う経路またはパスの決定動作を繰り返していた。
【0010】
マルチプロトコルラベルスイッチング(MPLS)は、大規模ネットワークを通じて効率的にデータをルーティングする方法である。MPLSを用いると、各パケットには、特定の転送等価クラス(FEC)のメンバーとしてパケットを同定するラベルが与えられる。FECは、ネットワークを通じて関連するラベルスイッチパス(LSP)に沿って特定の発信元(ソース)から特定の送信先へ送信されるパケット(任意の型またはプロトコルのパケット)の集合体として定義される。MPLSラベルは、転送情報および優先情報の両方を含み得る固定長フィールドである。MPLSラベルは、一般的に、階層2ヘッダと階層3ヘッダとの間のパケットに配置されるが、階層2ヘッダ内に埋め込まれていてもよい。MPLSを採用するネットワークのノードは、ラベルスイッチルータ(LSR)から成る。パケットを受信する際、各LSRは、ラベルに基づいて、また、ある場合には、パケットが受信された入力ポートに基づいて、どのようにパケットを転送するかを決定する。したがって、LSRは、どのようにパケットを転送するかを決定するために、パケットを解析しなくてもよく、また、階層3ヘッダから送信先アドレスを抽出しなくてもよい。各LSRは、パケットを転送する前にラベルを変更またはスイッチし得る。ある場合には、パケットはMPLSラベルの束を含み得、また、LSRはパケットを転送する前にこの束を「ポップ」して新しいラベルをさらし得る。
【0011】
ネットワークの多数のノード、互いにノードを相互接続するパスの数および配置、ならびに、発信元および送信先機器にネットワークを接続するパスは、ネットワークトポロジーにより決定される。したがって、検査セッションの期間は効率的に固定される。しかしながら、MPLSラベルはLSR間で取り決められるので動的であり得る。例えば、種々のLSPに割り当てられたMPLSラベルは、ネットワークが検査される各時刻において一部または完全に異なる。更に、MPLSラベルは、検査セッション中(例えば、検査セッション中にLSRが失敗するかまたは再起動される場合、あるいは、検査セッション中に2つのLSR間のパスが失敗する場合)に変化し得る。
【0012】
パケット交換通信ネットワークに含まれるパケット交換ネットワークまたはデバイスを検査するために、多数のパケットから成る検査トラフィックが、生成され、1つ以上のポートにおいてネットワーク内に送信され、異なるポートにおいて受信されてもよい。この文脈において、「ポート」という用語は、ネットワークと、当該ネットワークを検査するために用いられる機器との間の、通信接続を指す。受信された検査トラフィックを分析することにより、ネットワークの性能を測定してもよい。ネットワークに接続される各ポートは、検査トラフィックの発信元でありかつ検査トラフィックの送信先であってもよい。各ポートは、複数の論理的な発信元または送信先のアドレスをエミュレートしてもよい。ポートの数、およびポートをネットワークに接続する通信経路の数は、一般的に、検査セッションの期間にわたって固定される。ネットワークの内部構造は、例えば通信経路またはハードウェア装置の障害によって、検査セッション中に変化し得る。
【0013】
単一のポートから発信し、かつ特定タイプのパケットおよび特定の速度を有する一連のパケットを、本文献において「ストリーム」と称する。発信元ポートは、例えば、ネットワークインターフェース上のポートであり得る。発信元のポートは、例えば、多数のパケットタイプ、速度または送信先に対応するために、同時にかつ並行して多数の発信ストリームをサポートしてもよい。「同時に」は、「正確に同一の時刻において」を意味する。「並行して」は、「同一の時間の範囲内で」を意味する。
【0014】
ストリーム内のパケットは、ネットワークトラフィックデータを報告する目的のために、フローとして編成されてもよい。ここで、「フロー」とは、ネットワークトラフィック統計を蓄積および報告する対象となる任意の複数のパケットのことである。所与のフローにおけるパケットは、各パケットに含まれるフロー識別子によって識別され得る。フロー識別子は、例えば、各データ単位内の、専用識別子フィールド、アドレス、ポート番号、タグ、または何らかの他のフィールドあるいはフィールドの組み合わせであってもよい。
【0015】
複数の同時発生的ストリームを組み合わせることによってトラフィックジェネレータからの出力を形成してもよく、本文献においては、これを「検査トラフィック」と称する。検査トラフィック内のストリームは、インターリービングを介して組み合わされ得る。インターリービングは、表現されるストリーム間において、均衡的、不均衡的、および分散的であってもよい。最新の「トリプルプレイ」のネットワークおよびネットワーク装置を検査するために、検査トラフィックは、シミュレートされたデータ、音声およびビデオのストリームを含んでもよい。
【図面の簡単な説明】
【0016】
【図1】図1は、ネットワーク環境のブロック図である。
【図2】図2は、ポートユニットのブロック図である。
【図3】図3は、トラフィックジェネレータのブロック図である。
【図4】図4は、ポートプロセッサのブロック図である。
【図5】図5は、ラベル追跡データの概略図である。
【図6】図6は、ラベル追跡データの概略図である。
【図7】図7は、トラフィックを生成するためのプロセスのフローチャートである。
【図8】図8は、パケットを生成するトラフィックジェネレータの概略図である。
【図9】図9は、トラフィックを生成するためのプロセスのフローチャートである。
【図10】図10は、パケットを生成するトラフィックジェネレータの概略図である。
【0017】
本文献の記述を通して、ブロック図に見られる構成要素は、3桁または4桁の参照番号が割り当てられており、最上位桁の数字は図番号で、下位2桁の数字は構成要素に特有のものである。ブロック図に記載されていない構成要素は、同じ下位2桁の数字の付いた参照番号を有する前述の構成要素と同じ特徴や機能を有するものと推定され得る。
【0018】
ブロック図において、矢印終端線は、信号というよりはデータ経路を示し得る。各々のデータ経路は、ビット幅において多数ビットであってよい。例えば、各々のデータ経路は、4,8,16,32,64、あるいはそれ以上の並列接続で構成されてもよい。
【発明を実施するための形態】
【0019】
[装置の説明]
図1は、ネットワーク環境のブロック図を示す。環境は、ネットワーク検査装置100、ネットワーク190、および複数のネットワークデバイス195を備えることができる。
【0020】
ネットワーク検査装置100は、ネットワーク検査機器、性能アナライザ、適合性検証システム、ネットワークアナライザ、またはネットワーク管理システムとすることができる。ネットワーク検査装置100は、シャーシ110内に収容または格納される1つ以上のネットワークカード114およびバックプレーン112を備えてもよい。シャーシ110は、ネットワーク検査装置を収容するために適切な固定式または可搬式のシャーシ、キャビネットまたは筐体であってもよい。図1に示すように、ネットワーク検査装置100は、統合されたユニットであってもよい。それに代わって、ネットワーク検査装置100は、トラフィックの発生および/または分析を提供するように協調する多数の個別のユニットを備えてもよい。ネットワーク検査装置100およびネットワークカード114は、1つ以上の周知の標準規格またはプロトコル(例えばイーサネット(登録商標)およびファイバチャネルなどの様々な標準規格)をサポートしてもよく、商標つきのプロトコルをサポートしてもよい。
【0021】
ネットワークカード114は、1つ以上のフィールドプログラマブルゲートアレー(FPGA)、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、プログラマブルロジックアレイ(PLA)、プロセッサおよび他の種類のデバイスを含むことができる。それに加えて、ネットワークカード114は、ソフトウェアおよび/またはファームウェアを含んでもよい。用語「ネットワークカード」は、ラインカード、検査カード、分析カード、ネットワークラインカード、ロードモジュール、インターフェースカード、ネットワークインターフェースカード、データインターフェースカード、パケットエンジンカード、サービスカード、スマートカード、スイッチカード、リレーアクセスカード等を含む。用語「ネットワークカード」はまた、多数のプリント回路基板を備え得るモジュール、ユニットおよび組立部品をも含む。各ネットワークカード114は、1つ以上のポートユニット116を含み得る。各ポートユニット116は、1つ以上のポートを通じてネットワーク190と接続し得る。ポートは、通信媒体185を通じてネットワークと接続され得る。通信媒体185は、ワイヤ、光ファイバ、無線リンク、または、他の通信媒体であり得る。各ネットワークカード114は、単一の通信プロトコルをサポートしてもよく、多数の関連するプロトコルをサポートしてもよく、または多数の無関係なプロトコルをサポートしてもよい。ネットワークカード114は、ネットワーク検査装置100に恒久的に設置されていてもよく、着脱自在であってもよい。
【0022】
バックプレーン112は、ネットワークカード114のためのバスまたは通信媒体としての役割を果たしてもよい。バックプレーン112はまた、ネットワークカード114に電力を供給してもよい。
【0023】
ネットワークデバイス195は、ネットワーク190を通じて通信する能力のある任意のデバイスであってもよい。ネットワークデバイス195は、コンピューティングデバイス(例えばワークステーション、パーソナルコンピュータ、サーバ、ポータブルコンピュータ、携帯情報端末(PDA)、コンピューティングタブレット、携帯電話、電子メール機器等)、周辺機器(例えばプリンタ、スキャナ、ファクシミリ装置等)、ネットワーク対応の記憶装置(例えばネットワーク接続ストレージ(NAS)およびストレージエリアネットワーク(SAN)デバイス等のディスクドライブを含む)、およびネットワークデバイス(例えばルータ、リレー、ハブ、スイッチ、ブリッジ、およびマルチプレクサ)であってもよい。それに加えて、ネットワークデバイス195は、ネットワークを通じて通信する能力のある家庭電化器具、アラームシステムおよび他の任意のデバイスまたはシステムを含んでもよい。
【0024】
ネットワーク190は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、ストレージエリアネットワーク(SAN)、有線、無線、またはこれらの組み合わせであってもよく、インターネットを含んでもよく、またはインターネットであってもよい。ネットワーク190上の通信は、情報のフレーム、セル、データグラム、パケットまたは他の単位を含む様々な形態をとってもよく、本文献においては、それらの全てをパケットと称する。ネットワーク検査装置100およびネットワークデバイス195は、同時に相互に通信してもよく、ネットワーク検査装置100と所与のネットワークデバイス195との間には、複数の論理的通信経路があってもよい。ネットワークそのものは、伝えるデータのための多数の物理的経路および論理的経路を提供する多数のノードから成ってもよい。
【0025】
ここで図2を参照し、例示的なポートユニット216は、ポートプロセッサ220と、トラフィックジェネレータ250と、トラフィックレシーバ240と、ポートユニット216を被検査ネットワーク290に接続するネットワークインターフェースユニット280とを備えてもよい。ポートユニット216は、ネットワークカード(例えばネットワークカード114)のすべてまたは一部であってもよい。
【0026】
ポートプロセッサ220は、本文献に記載される機能および特徴を提供するための、プロセッサ、プロセッサに接続されたメモリ、および様々な特殊化された装置、回路、ソフトウェアおよびインターフェースを含んでもよい。プロセス、機能および特徴は、全体的にあるいは部分的に、プロセッサ上で動作するソフトウェアにおいて実現されてもよく、ファームウェア、アプリケーションプログラム、アプレット(例えばJava(登録商標)アプレット)、ブラウザプラグイン、COMオブジェクト、ダイナミックリンクライブラリ(DLL)、スクリプト、1つ以上のサブルーチン、またはオペレーティングシステムのコンポーネントまたはサービスという形をとってもよい。ハードウェアおよびソフトウェアおよびそれらの機能は、一部の機能がプロセッサによって実行され、他の機能が他の装置によって実行されるように、分散型であってもよい。
【0027】
ポートプロセッサ220は、検査アドミニストレータ205と通信してもよい。検査アドミニストレータ205は、ネットワーク検査装置100の内部に収容されるコンピューティングデバイスまたは外部のコンピューティングデバイスであってもよい。検査アドミニストレータ205は、ポートユニットがネットワーク290の検査に関与するために必要とされる命令およびデータを、ポートプロセッサに提供してもよい。検査アドミニストレータ205から受信される命令およびデータは、例えば、ポートユニット216によって生成されるパケットストリームの定義、およびポートユニット216によって蓄積および報告され得る性能統計の定義を含んでもよい。
【0028】
ポートプロセッサ220は、トラフィックジェネレータ250にストリーム形成データ222を提供して、発信検査トラフィック255を形成するためにインターリーブされ得る複数のストリームを形成させる。トラフィックジェネレータ250は、ストリーム形成データ222に従って複数のストリームを生成してもよい。ストリームの各々は、一連のパケットを含んでもよい。各ストリーム内のパケットは、同じ一般型のものであり得るが、長さおよびコンテンツにおいて異なり得る。ストリーム形成データ222は、例えば、パケットの種類、送信の周波数、パケット内部の固定内容フィールドおよび可変内容フィールドの定義、および各パケットストリームのための他の情報を含んでもよい。
【0029】
ネットワークインターフェースユニット280は、トラフィックジェネレータ250からの発信検査トラフィック255を、リンク285を介して被検査ネットワーク290に送信するために必要な電気信号、光学信号または無線信号の形式に変換してもよく、リンクは、ワイヤ、光ファイバ、無線リンクまたは他の通信リンクであってもよい。同様に、ネットワークインターフェースユニット280は、ネットワークからリンク285を通じて電気信号、光学信号または無線信号を受信してもよく、受信した信号を、トラフィックレシーバ240において使用可能な形式の着信検査トラフィック245に変換してもよい。
【0030】
トラフィックレシーバ240は、ネットワークインターフェースユニット280から着信検査トラフィック245を受信してもよい。トラフィックレシーバ240は、各受信パケットが特定のフローのメンバーであるかを決定し得、また、ポートプロセッサ220から提供された検査命令242に従って各フローに関する検査統計を蓄積し得る。蓄積された検査統計は、例えば、受信パケットの合計数、順番誤りで受信されたパケットの数、エラーを有する受信パケットの数、最大、平均および最小の伝搬遅延、および各フローの他の統計を含んでもよい。トラフィックレシーバ240はまた、検査命令242に含まれる取得基準に従って、特定のパケットを取得および格納してもよい。トラフィックレシーバ240は、検査セッションの最中または後における更なる分析のために、検査統計および/または取得パケット244を、検査命令242に従って、ポートプロセッサ220に提供してもよい。
【0031】
発信検査トラフィック255および着信検査トラフィック245は、主にステートレスであってもよい。すなわち、発信検査トラフィック255は、応答を予期することなく生成されてもよく、着信検査トラフィック245は、応答を意図することなく受信されてもよい。しかしながら、検査セッション中に、ポートユニット216とネットワーク290との間で、若干量のステートフルの(または対話型の)通信が要求されるかまたは望ましい場合がある。例えば、トラフィックレシーバ240は、制御パケットを受信してもよい。制御パケットは、検査セッションを制御するために必要なデータを含むパケットであり、ポートユニットに受信通知または応答の送信を要求する。
【0032】
トラフィックレシーバ240は、着信制御パケットを着信検査トラフィックから分離してもよく、着信制御パケット246をポートプロセッサ220にルーティングしてもよい。ポートプロセッサ220は、各制御パケットのコンテンツを抽出してもよく、1つ以上の発信制御パケット226の形で適切な応答を生成してもよい。発信制御パケット226は、トラフィックジェネレータ250に提供されてもよい。トラフィックジェネレータ250は、発信制御パケットを発信検査トラフィック255の中に挿入してもよい。
【0033】
ポートユニット220から受信され得る制御パケット246の一つの形態は、MPLSラベルを割り当てるかまたはそれと結合するパケットであり得る。このようなパケットは、ネットワーク290内のLSPから発信し得る。パケット結合MPLSラベルは、ラベル分配プロトコル(LDP)、制約ベースのラベル分配プロトコル、ボーダゲートウェイプロトコル(BGP)、および、リソース予約プロトコル−トラフィック拡張(RSVP)、または、別のプロトコルに従い得る。各プロトコルは、異なる専門用語を用いるが、MPLSラベルを割り当てるパケットは、一般的にMPLSラベルおよびラベル状態セット、または、MPLSラベルを使用するための状態のセットと関連する。次いで、MPLSラベルは、関連付けられたラベル状態セットを満たす各生成されたパケット内へ組み込まれ得る。各ラベル状態セットは、一般的に、使用されるべきMPLSラベルのためのIP送信先アドレスのセットまたは範囲を含む。ラベル状態セットは、例えば、IP発信元アドレスのセットまたは範囲、サービスレベルの1つ以上の優先度または品質、および、MPLSラベルを使用するための他の状態などといった他の情報を含み得る。ラベル状態セットはまた、MPLSラベルを使用するための制約(例えば、最高データ速度)を含み得る。MPLSラベルおよびラベル状態セットに関連するパケットを受信する際、ポートプロセッサ220は、MPLSラベルの受信を承認するかまたは異なるラベルを取り決める試みをする1つ以上のパケットを生成し得る。一旦、1つ以上の状態セットについて取り決められると、ポートプロセッサ220は、トラフィックジェネレータにMPLSラベル224を提供し得る。
【0034】
ポートプロセッサ220は、第1メモリ内に、ラベル追跡データ232を記憶し得る。ラベル追跡データは、各ラベル状態セットと、対応する関連するMPLSラベルとが関連付けられているリスト、テーブル、または、他のデータ構造の形式であり得、また、各MPLSラベルがトラフィックジェネレータ250内のどこに記憶されるべきかを追跡する。トラフィックジェネレータ250は、ストリームデータメモリ270として識別される第2のメモリを含み得、当該第2のメモリは、ストリーム形成データ222、および、ある場合には、MPLSラベル224を記憶する。トラフィックジェネレータ250は、ラベルマップ275として識別される第3のメモリを任意に含み得、当該第3のメモリは、特にMPLSラベルを記憶する。
【0035】
ここで図3を参照し、例示的なトラフィックジェネレータ350は、パケットの1つ以上のインターリーブストリームからなる発信検査トラフィック355を生成し得る。例示的なトラフィックジェネレータ350は、図2のトラフィックジェネレータ250であり得、図1に示すようなネットワークカード114の全部または一部であり得る。トラフィックジェネレータ350は、ストリームデータメモリ370、スケジューラ352、バックグラウンドエンジン354、フィルエンジン356、チェックサムエンジン358、バックエンドエンジン360、および制御パケットマルチプレクサ362を含み得る。トラフィックジェネレータは、ラベルマップメモリ375を任意に含み得る。
【0036】
本文献の記述において、用語「エンジン」は、記述した機能を実行するハードウェアの集合体を意味し、これはファームウェアおよび/またはソフトウェアによって増強することができる。エンジンは、通常、主に機能的な用語を用いてエンジンを記述するハードウェア記述言語(HDL)を用いて設計され得る。このようなHDL設計は、HDLシュミレーションツールを用いて検証され得る。次に、検証されるHDL設計は、一般に「合成」と呼ばれるプロセスにおいてゲートネットリストまたは他のエンジンの物理的な記述に変換され得る。この合成は、合成ツールを用いて自動的に行うことができる。ゲートネットリストまたは他の物理的な記述は、フィールドプログラマブルゲートアレー(FPGA)、プログラマブルロジックデバイス(PLD)、またはプログラマブルロジックアレー(PLA)のようなプログラマブル半導体デバイスにおいてエンジンを実装するためにプログラミングコードにさらに変換される。ゲートネットリストまたは他の物理的な記述は、エンジンを特定用途向け集積回路(ASIC)内にて製造するためのプロセス命令およびマスクに変換され得る。
【0037】
本文献の記述において、用語「ユニット」もハードウェアの集合体を意味し、これは「エンジン」よりも大規模であってもよい。例えば、ユニットには複数のエンジンを含んでいてもよく、これらの一部が並列に同様な機能を実行していてもよい。用語「エンジン」および「ユニット」は、いかなる物理的な分離または境界をも暗示していない。一または複数のユニットおよび/またはエンジンのすべてまたは一部を、ネットワークカード114のような共通のカード上に共に配置してもよく、共通のFPGA、ASIC、または他の回路デバイス内に共に配置してもよい。
【0038】
図3において、破線矢印はデータのフローを示し、実線矢印は、データのフローをともに一連の演算を示している。スケジューラ352、バックグラウンドエンジン354、フィルエンジン356、チェックサムエンジン358、バックエンドエンジン360、および、制御パケットマルチプレクサ362は、それらの各機能を連続的にまたは並行して実行し得るか、あるいは、連続的および並行の一部の組み合わせで実行し得る。スケジューラ352、バックグラウンドエンジン354、フィルエンジン356、チェックサムエンジン358、バックエンドエンジン360、および、制御パケットマルチプレクサ362は、少なくとも一部において、多数のパケットがトラフィックジェネレータ350の異なる部分において同時に処理され得るようなパイプラインであり得る。
【0039】
ストリームデータメモリ370は、ポートプロセッサ220等のポートプロセッサから、あるいは、ネットワーク検査を管理かつ監視し得る別のコンピュータ(図示せず)から、受信されたストリーム形成データ322を記憶し得る。ストリームデータメモリ370は、検査セッションを構成する複数のストリームを定義するストリーム形成データを記憶し得る。ストリームデータメモリ370は、各ストリームについて1つ以上のバックグラウンドテンプレート374を含むバックグラウンドテーブルを含み得る。各バックグラウンドテンプレート374は、対応するストリーム内の各パケットの一般的な構造を定義し得、また、各パケットの固定コンテンツを含み得る。バックグラウンドテーブルが所与のストリームについて複数のバックグラウンドテンプレート374を含む場合、テンプレートは連続的に使用され得る。ストリームデータメモリ370はまた、各ストリームについて、各パケット内のデータ定義可変コンテンツフィールド、各パケットの長さを設定するためのデータまたは命令、および、各パケットのペイロードを満たすためのデータまたは命令を含み得る。各パケット内の可変コンテンツフィールドは、UDF定義データ376により定義されたユーザ定義フィールド(UDF)、および、チェックサム定義データ378により定義されたチェックサムフィールドを含み得る。ストリームデータメモリ370はまた、各ストリームについて、ストリームスケジューラが適切な時間間隔において各ストリームを含むパケットをスケジューリングするのに必要なタイミング情報372を含み得る。ストリームデータメモリ370はまた、他のデータおよび命令を含み得る。
【0040】
ストリームデータメモリ370は、ダイナミックランダムアクセスメモリ(DRAM)またはスタティックランダムアクセスメモリ(SRAM)であり得る。ストリームデータメモリ370は、トラフィックジェネレータ350の全てまたは他の一部を含む、ASIC、FPGA、または、他の回路装置内で実行され得る。ストリームデータメモリ370は、ASIC、FPGAまたは他の機器の外部に存在するDRAMまたはSRAMメモリチップを用いて全体的または部分的に実行され得る。
【0041】
スケジューラ352が、パケットが特定のストリームのために生成されるべきであるかを決定する場合、バックグラウンドエンジン354は、バックグラウンドテーブルから適切なバックグラウンドテンプレート374を検索し得る。バックグラウンドエンジン354は、スケジューラ352またはバックグラウンドエンジン354により決定されるパケット全長を達成するために、バックグラウンドテンプレート374のペイロード部分を拡張または切り捨て得る。
【0042】
フィルエンジン356は、ストリームデータメモリ370に記憶されたストリーム形成データに基づいて、パケットテンプレート上に可変コンテンツフィールドデータを満たすか、またはオーバーレイし得る。フィルエンジン356は、パケットのペイロード部分を満たし得る。フィルエンジンはまた、UDF定義データ376に基づいてユーザ定義フィールドを満たし得る。各UDFは、例えば、パケットの開始からのオフセット等の位置により定義され得る。各UDFは更に、生成されるパケット中のUDFのコンテンツを生成するために必要なタイプおよび追加データにより定義され得る。例えば、あるタイプのUDFは、初期値、増分値、および、最大値により定義されるカウンタフィールドであり得る。更に例えば、別のタイプのUDFは、順番に用いられる値のテーブルから選択された値で満たされたテーブルフィールドであり得る。
【0043】
別のタイプのUDFは、メモリから値を検索するためのアドレスを生成するために用いられ得るポインタを含むポインタUDFであり得る。ポインタは、アドレス内に論理的または数学的に組み込まれ得る。例えば、ポインタ値は、メモリから値を読み込むためのアドレスを生成するために、所定の定数により乗算され得るか、および/または、所定のオフセットが追加され得る。テーブルUDFまたはポインタUDFは、パケットにMPLSラベルを挿入するのに特に適しているものであり得る。
【0044】
特定のネットワークのための検査セッションは、1つ以上(一般的に多数)のLSP上でパケットを通信するよう設計され得る。しかしながら、MPLSラベルは、検査されるネットワーク内でLSR間の取り決めにより割り当てられるので、実際のMPLSラベルは、検査セッションが開始された後でないと分からないものであり得る。それに加えて、MPLSラベルは、検査セッション中(例えば、1つ以上のLSRが失敗した場合、または再起動した場合)に変化し得る。
【0045】
トラフィックジェネレータハードウェアは、ラベルマップメモリ375を含まず、各MPLSラベルは、ストリームデータメモリ370内に記憶されたストリーム形成データ内のユーザ定義フィールドであり得る。この場合、各ストリームに関連付けられたMPLSラベル(複数も含む)、UDF定義データ376内に記憶され得る。この場合、MPLSラベル324は、ストリームデータメモリ370内の特定の位置に記憶され得る。ここで留意すべきは、所与のMPLSラベルが多数のストリーム(例えば、同じ発信元アドレスおよび送信先アドレス間で送信された異なるタイプのパケット)により使用され得ること、および、各ストリームが多数のMPLSラベル(同じ発信元から異なる送信先へ送信されたパケットについてのMPLSラベル)を使用し得ることである。したがって、MPLSラベル324は、ストリームデータメモリ370内の多数の位置に記憶される必要があり得る。
【0046】
トラフィックジェネレータハードウェアは、検査セッションを設計中に、例えば対応するラベル状態セットと連続的にまたは無作為に関連付けられ得る、ラベルマップメモリ375、複数のラベル状態セット識別子(LCSID)を含む。MPLSラベルを含むストリームを定義するストリーム定義データは、ポインタ値がLCSIDのうちの1つに設定される1つ以上のポインタUDFを含み得る。次いで、LCSIDは、ラベルマップメモリ375から関連付けられたMPLSラベルを検索するためのアドレスを生成するために使用され得る。ラベルマップメモリ375は、ストリームデータメモリ370から分離され得るか、または、その一部であり得る。ポートプロセッサ220は、MPLSラベルを、被検査ネットワーク290から受信されるMPLSラベルとしてラベルマップメモリ375内の適切な位置に記憶し得る。ラベルマップメモリ375は、ポートプロセッサ220に、ラベルマップメモリ375の単一の位置のみに新たに受信したラベルを書き込ませることができる。
【0047】
フィルエンジン356がペイロードのコンテンツおよびユーザ定義フィールドのコンテンツをバックグラウンドテンプレートに挿入した後、チェックサムエンジン358は、生成されるパケットについてチェックサム定義データ378により定義されるように1つ以上のチェックサムを計算し得る。チェックサムエンジン358は、1つ以上の計算されたチェックサムをバックグラウンドテンプレートに挿入し得る。バックエンドエンジン360は、周期的冗長検査値および/またはタイムスタンプを各パケットに、被検査ネットワーク290に対する送信のためのネットワークインターフェースユニット(ネットワークインターフェースユニット280等)に送信される検査トラフィック355として追加し得る。
【0048】
トラフィックジェネレータ350はまた、外部プロセッサ(ポートプロセッサ220等)から制御パケットを受信する制御マルチプレクサ362を含み得、制御パケットを発信検査 トラフィックにインターリーブする。
【0049】
スケジューラ352、バックグラウンドエンジン354、フィルエンジン356、チェックサムエンジン358、制御マルチプレクサ362、および、バックエンドエンジン360は、論理アレイ、メモリ、アナログ回路、デジタル回路、ソフトウェア、ファームウェア、および、プロセッサ(マイクロプロセッサ等)、フィールドプログラマブルゲートアレー(FPGA)、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、および、プログラマブルロジックアレイ(PLA)のうちの1つ以上を含み得る。トラフィックジェネレータ350のコンポーネントの物理的な分配は、図3に示すような機能的な分配と異なっていてもよい。それによって、所与の機能的コンポーネントまたはブロックは、2つ以上の回路装置間で分割されていてもよく、また、単一の回路装置は、2つ以上の機能的コンポーネントまたは全ての機能コンポーネントのうちの全てまたは一部を含んでいてもよい。
【0050】
ここで図4を参照し、ポートプロセッサ220であり得るポートプロセッサ420は、プロセスユニット428およびメモリ430を含み得る。ポートプロセッサ420は、検査アドミニストレータ405、トラフィックレシーバ440、およびトラフィックジェネレータ450(それらはそれぞれ検査アドミニストレータ205、トラフィックレシーバ240およびトラフィックジェネレータ250であり得る)と通信し得る。メモリ430は、プログラム(オペレーティングシステム436およびアプリケーション434等)ならびにデータ(ラベル追跡データ432等)の両方を記憶するために使用され得る。メモリ430は、多数のメモリ機器およびメモリタイプを含み得る。例えば、メモリ430は、オペレーティングシステム436の全てまたは一部を記憶するための固定読取専用メモリまたはプログラム可能読取専用メモリ、ならびに、アプリケーションおよびデータを記憶するための揮発性ランダムアクセスメモリまたは非揮発性ランダムアクセスメモリを含み得る。メモリ430は、カーネル空間435およびアプリケーション空間431に論理的に分割され得る。オペレーティングシステム436の全ての部分は、カーネル空間435に記憶され得る。
【0051】
メモリ430に記憶されるプログラムは、MPLSラベルを管理するための1つ以上のデーモンを含み得る。図4の例において、個別のデーモン438A、438B、および438Cは、LDP、BGP、およびRSVPプロトコルをそれぞれ用いて受信されたMPLSラベルを管理するためのメモリ430に記憶される。それ以上またはそれ以下のデーモンは、メモリ430に記憶され得る。1つ以上のMPLSラベルを割り当てる制御パケット446がトラフィックレシーバ440から受信される場合、適切なデーモン438A、438B、438Cは、ポートプロセッサが、各MPLSラベルおよび対応するラベル状態セットをパケットから抽出するように、かつ、各MPLSラベルをトラフィックジェネレータ450内の適切な位置に記憶するように、実行され得る。例えば、デーモンは、受信された制御パケットからの様々な送信先IPアドレスを含む、MPLSラベルおよびラベル状態セットを抽出し得る。デーモンは、対応するラベル状態セットを識別するため、かつ、MPLSラベルが記憶されるべきトラフィックジェネレータ450内のメモリ位置を識別するために、予め記憶されたラベル追跡データ432を参照し得る。次いで、デーモンは、抽出されたMPLSラベルを、ストリームデータメモリ470内の1つ以上の位置に、および/または、トラフィックジェネレータ450内のラベルマップメモリ475に、記憶し得る。デーモンはまた、新たに受信されたラベルの1つ以上のアプリケーションプログラム434、オペレーティングシステム436、および、検査アドミニストレータ405を通知し得る。
【0052】
図5は、トラフィックジェネレータがラベルマップメモリを含まない場合に使用される、ラベル追跡データ532およびストリームデータメモリ570の例示的な編成を示す。この場合、ラベル追跡データ532は、各ラベル状態セットをストリームデータメモリ532内の1つ以上の位置と関連付けるために、各ラベル状態セットおよびデータを一意的に識別するためのデータを含み得る。この例において、ストリームデータメモリは、ストリーム0、ストリーム1、および、ストリーム2として識別される、3つのストリームに関するストリーム形成データを含む。ストリーム0についてのストリーム形成データは、ストリーム0内の全パケットに組み込まれ得る、ラベル0を含む。同様に、ストリーム1についてのストリーム形成データは、ストリーム1内の全パケットに組み込まれ得る、ラベル1を含む。ストリーム2についてのストリーム形成データは、例えば、ストリーム2内のパケットとして順に生成されるように使用され得るNラベル(ラベル0からラベルN−1)のリストを含む。
【0053】
ラベル追跡データ532は、ラベル状態セット0からラベル状態セットN−1についての各ラベル状態セットを一意的に識別するデータを含み得る。例えば、各ラベル状態セットは、様々な送信先IP(インターネットプロトコル)アドレスを含み得る。各状態セットは、他の情報(例えば、様々な発信元IPアドレスおよび/またはサービスレベルの優先度もしくは品質)を含み得る。IP以外のプロトコルに従うパケットについてのMPLSラベルは、他のタイプの状態と関連付けら得る。ラベル追跡データはまた、各ラベル状態セットについて、対応するMPLSラベルがストリームデータメモリ570に記憶されるべきアドレスまたは位置を含み得る。この例では、ラベル状態セット0およびラベル状態セット1の各々と関連付けられた2つのアドレスと、ラベル状態セットN−1に関連付けられた1つアドレスがある。表記「追加i,j」は、ラベルiがストリームjについてストリーム形成データ内に記憶されるべきであるアドレスを意味する。
【0054】
図6は、トラフィックジェネレータがラベルマップメモリ675を含む場合に使用される、ラベル追跡データ632およびストリームデータメモリ670の例示的な編成を示す。ラベルマップメモリ670は、MPLSラベルをそれぞれ含む、複数の独立した読取可能かつ書込可能なワードとして編成されたメモリであり得る。例示的なラベルマップメモリ670は、N MPLSラベル(一般的にラベル0からラベルN−1に指定される)、および、それぞれラベル状態セットID番号(LCSID)0からN−1に関連付けられる。ラベル状態セットに対応するMPLSラベルは、ラベルマップ675内に連続的に記憶され得る。この例において、ストリームデータメモリ670は、ストリーム0、ストリーム1、およびストリーム2として識別される、3つのストリームについてのストリーム形成データを含む。しかしながら、図5の例とは対照的に、ストリームデータメモリ670内のストリーム形成データは、MPLSラベルを含まないが、ラベルマップメモリ内の対応するラベルをポイントするLCSIDを含む。
【0055】
検査セッションの間、ポートプロセッサ(ポートプロセッサ450等)は、特定のラベル状態セットに関連付けられたMPLSラベルを割り当てるかまたは変更する制御パケットを受信し得る。次いで、ポートプロセッサは、特定の状態セットに関連付けられたLCSIDを検索するためにラベル追跡データ632を使用し得る。次いで、ポートプロセッサは、ラベルマップメモリ675の適切な位置にMPLSラベルを記憶するためのアドレスを生成するために、検索されたLCSIDを使用し得る。例えば、LCSIDは、ラベルマップメモリ675にMPLSラベルを書き込むために使用されるアドレスを形成するために、所定のスケール因子により乗算され得るか、および/または、所定のオフセットが追加され得る。ラベルマップメモリ675内の特定のラベル状態セットについてのMPLSラベルを変更すると、そのラベルを使用する各ストリームを効率的に変更する。
【0056】
[プロセスの説明]
ここで図7を参照し、トラフィックを生成するためのプロセス700は710において開始でき、多数のパケットが生成された後、またはオペレータの動作(図7には示さず)によって停止されると、790において終了できる。このプロセス700は、ラベルマップメモリを含まない、トラフィックジェネレータ350などのトラフィックジェネレータを使用してトラフィックを生成するのに適切であり得る。
【0057】
720において、検査セッションが設計されてもよい。検査セッションの設計は、例えば、ポートユニット216などの1つ以上のポートユニットに接続される、検査アドミニストレータ205などの検査アドミニストレータコンピューティングデバイスによって行われてもよい。722において、検査セッションを設計することは、ネットワークまたはネットワーク機器のアーキテクチャを決定または定義することを含み得る。ネットワークアーキテクチャを決定することは、1つ以上のラベル状態セットおよび対応するMPLSラベルを取り決めること、ならびに各々の状態セットと個々のラベル状態セット識別子(LCSID)とを関連付けることを含んでもよい。
【0058】
724において、検査セッションの間に生成されるストリームが定義されてもよく、ストリーム形成データが作成されてもよい。ストリーム形成データは、各ストリームに関して、1つ以上のバックグラウンドテンプレート、UDF定義データ、チェックサム定義データ、および他のデータを含んでもよい。バックグラウンドテンプレートおよび/またはUDF定義データの少なくとも一部は、挿入されるMPLSラベルについての1つ以上の位置を含んでもよい。
【0059】
726において、ラベル追跡データは、各LCSIDに関連付けられた個々のMPLSラベルが724において作成されたストリーム形成データ内に記憶されるべき場所を追跡するために作成されてもよい。
【0060】
730において、724において作成されたストリーム形成データおよび726において作成されたラベル追跡データは、検査セッションを開始するために少なくとも1つのポートユニットに送られてもよい。通常、検査セッションは複数のポートユニットに関与し得る。この場合、複数のポートユニットの各々は、ポートユニットにおいて発生するストリームのためだけのストリーム形成データおよびラベル追跡データを受信してもよい。ストリーム形成データは、例えば、各ポートユニットにおいてトラフィックジェネレータ250などのトラフィックジェネレータ内のストリームデータメモリに記憶されてもよい。ラベル追跡データは、例えば、各ポートユニットにおいてポートプロセッサ220などのポートプロセッサのメモリ内に記憶されてもよい。
【0061】
740において、ポートユニットは、ポートユニットにおいて発生するストリームと関連付けられる新規のMPLSラベルを含む制御パケットを受信してもよい。一部の場合、制御パケットは、複数の状態セットのそれぞれに割り当てられた複数のMPLSラベルを含んでもよい。MPLSラベルを含む制御パケットは、被検査ネットワーク内のルータによって自発的に提供されてもよい。ポートユニットは、ポートユニットにおいて発生または終了するストリームの一部または全てのためのMPLSラベルを要求する制御パケットを生成し、送信してもよく、被検査ネットワーク内のルータは、それらの要求に応答してMPLSラベルを提供してもよい。検査セッションが複数のポートユニットに関与する場合、各ポートユニットは、ポートユニットにおいて発生および/または終了するストリームのためだけのMPLSラベルを受信してもよい。
【0062】
742において、各MPLSラベルおよび関連付けられたラベル状態セットは制御パケットから抽出されてもよい。744において、各々の抽出されたMPLSラベルは、730においてポートユニットに送信されたラベル追跡データに従って記憶されてもよい。特に、ラベル追跡データは、742において制御パケットから抽出されたラベル状態セットと一致するラベル状態セットを識別するために検索されてもよい。適切なラベル状態セットが識別されると、MPLSラベルは、ラベル追跡データから検索されたアドレスを使用してポートユニットにおけるストリーム形成データ内に記憶されてもよい。
【0063】
746において、他の関心のあるパーティに、新しく受信されたMPLSラベルが通知されてもよい。他の関心のあるパーティは、検査アドミニストレータ205などの検査アドミニストレータ、ポートプロセッサで動作するオペレーティングシステム、およびポートプロセッサで動作する1つ以上のアプリケーションプログラムのいずれかまたは全てを含んでもよい。
【0064】
740から746におけるMPLSラベルの受信および保存は、検査セッションの設計の間に頻繁に起こってもよいが、検査セッションの間にも起こってもよい。例えば、ネットワーク内のルータが失敗するか、または再起動される場合、MPLSラベルは、被検査ネットワークによって変更されてもよく、あるいはネットワークの種々の部分内の負荷を分散するために変更されてもよい。このように740から746における動作は、検査セッションの全体にわたって検査トラフィックの生成を中断して、および中断せずに、並行して周期的に行われてもよい。740から746の動作は、ポートプロセッサで動作するデーモン438A−438Cなどのデーモンによって行われてもよい。
【0065】
検査トラフィックは、トラフィックジェネレータ250などのトラフィックジェネレータによって760において生成されてもよい。762から774の動作は、単一のポートユニットにおいて単一のパケットを生成する。これらの動作は、検査セッションの間、数千または数万回でも周期的に行われてもよい。簡略化するために、762から774の動作は、後のパケットの生成が開始される前に、各パケットが完結されているかのように記載されている。しかしながら、762から774の動作はパイプライン形式で行われてもよく、それによって、複数のパケットが、プロセス760の異なる段階で同時に生成される。
【0066】
762において、生成されるパケットのためのパケットテンプレートが、724において作成されたストリーム形成データの少なくとも一部を記憶するストリームデータメモリから検索されてもよい。生成されるパケットは、複数のユーザ定義フィールド(UDF)を含んでもよい。1つ以上のユーザ定義フィールドはMPLSラベルを含んでもよい。764において、UDFはストリーム形成データに従って満たされてもよい。UDFを満たすことは、ストリーム形成データから検索された1つ以上のMPLSラベルでパケットテンプレートをオーバーレイすることを含んでもよい。
【0067】
770においてパケットが完結されてもよい。パケットを完結することは、パケットのペイロードの部分を満たすこと、チェックサムを計算し、挿入すること、周期的冗長検査を計算し、挿入すること、タイムスタンプを挿入すること、および他の動作を含んでもよい。770において完結されたパケットは、772において被検査ネットワークに送信されてもよい。
【0068】
774において、追加のパケットが生成されるべきかの決定が行われてもよい。追加のパケットが必要とされる場合、プロセス700は762から周期的に継続してもよい。全てのパケットが生成される場合、プロセス700は790において終了してもよい。
【0069】
パケット864を生成するために、図3のトラフィックジェネレータ350などのトラフィックジェネレータによって行われる例示的な動作を図8に概略的に示す。パケット864を生成するために、バックグラウンドエンジン854は、ストリームデータメモリ870からテンプレート874を検索してもよい。テンプレート874はパケットの構造を定義してもよく、パケットヘッダおよびパケットペイロードの固定コンテンツ(中実の影付きで示した)を含んでもよい。テンプレートは、可変のコンテンツフィールド(影を付けないで示した)のための位置を提供してもよい。
【0070】
フィルエンジン856は、バックグランドエンジン854によって検索されたテンプレート874を受信してもよい。フィルエンジン856は、ユーザ定義データをテンプレートにおけるUDF位置に挿入してもよい。この例において、UFDの1つは、MPLSラベル824(二重の網掛けで示す)で満たされる。例示的なパケット864は6個のさらなるUDFを含む。各UDFは、ストリームデータメモリ870からストリーム形成データに従って満たされてもよい。パケット864における満たされたさらなるUDFは、対角線上に網掛けを付けて示し、文字Uにより識別される。図8に示すUDFの数および位置は任意である。パケットは、6個より多いまたは少ないUDF、および1個より多いまたは少ないMPLSラベルを有してもよい。フィルエンジン856はまた、パケット864のペイロード868の部分を満たしてもよい。
【0071】
フィルエンジンがペイロード868、ユーザ定義フィールドU、およびMPLSラベル824を追加した後、チェックサムエンジン858は、1つ以上のチェックサムを計算し、パケット864に挿入してもよい。例示的なパケット864は、対角線に網掛けを付けて示し、文字Cによって識別される、2つのチェックサムフィールドを含んでもよい。パケット864におけるチェックサムフィールドの位置は任意である。パケットは2つより多いまたは少ないチェックサムフィールドを有してもよい。パケット864を完結するために、バックエンドエンジン(図8に示さない)が、周期的冗長検査値および/またはタイムコードを、送信されるパケット864に挿入してもよい。
【0072】
ここで図9を参照し、トラフィックを生成するためのプロセス900は、ラベルマップメモリを含む、トラフィックジェネレータ350などのトラフィックジェネレータを使用してトラフィックを生成するのに適し得る。プロセス900は、910において開始してもよく、多数のパケットが生成された後、またはオペレータ動作(図9に示さない)によって停止されると、990において終了してもよい。
【0073】
920において、検査セッションが設計されてもよい。検査セッションを設計することは、924において作成されたストリーム形成データがMPLSラベルを記憶するための位置よりむしろLCSIDを含み得ることを除いて、図7に併せて記載される動作720〜726と同様であってもよい。さらに、926において作成されたラベル追跡データは、各ラベル状態セットを定義し、各LCSIDを、ストリーム形成データ内の位置よりむしろ、ラベルマップメモリ内の位置に関連付けるデータを含んでもよい。
【0074】
930において、924において作成されたストリーム形成データおよび926において作成されたラベル追跡データは、検査セッションを開始するために少なくとも1つのポートユニットに送信されてもよい。検査セッションが複数のポートユニットに関与する場合、複数のポートユニットの各々は、ポートユニットにおいて発生するストリームのためだけのストリーム形成データおよびラベル追跡データを受信してもよい。ストリーム形成データは、例えば、各ポートユニットにおいてトラフィックジェネレータ250などのトラフィックジェネレータ内のストリームデータメモリに保存されてもよい。ラベル追跡データは、例えば、各ポートユニットにおいてポートプロセッサ220などのポートプロセッサのメモリ内に記憶されてもよい。
【0075】
940〜946から、ポートユニットは、ポートユニットにおいて発生するストリームに関連付けられたMPLSラベルを含む制御パケットを受信し、記憶してもよい。940〜946の動作は、944において、MPLSラベルが、ラベルマップメモリにおける個々の位置に記憶され得ることを除いて、動作740〜746と同様であり得る。
【0076】
940〜946におけるMPLSラベルの受信および記憶は、検査セッションを開始している間、頻繁に行われてもよく、また、検査セッション全体にわたって検査トラフィックの生成を中断して、および中断せずに、並行して周期的に行われてもよい。940〜946の動作は、ポートプロセッサで作動している、デーモン438A〜438Cなどのデーモンによって行われてもよい。
【0077】
検査トラフィックは、トラフィックジェネレータ250などのトラフィックジェネレータによって960において生成されてもよい。962および970〜974における動作は、動作762および770〜774と同様であり得る。
【0078】
964において、トラフィックジェネレータは、962において検索されたパケットテンプレートにおけるラベルフィールドからLCSIDまたは他のポインタを抽出してもよい。966において、964からのLCSIDまたはポインタは、ラベルマップメモリから個々のMPLSラベルを読み取るために使用されてもよい。968において、MPLSラベルは、パケットテンプレートに挿入されてもよい。MPLSラベルは、LCSIDを最初に保持したラベルフィールドに挿入されてもよい。
【0079】
970において、パケットは完結されてもよい。パケットを完結することは、他のUDFを満たすこと、パケットのペイロードの部分を満たすこと、チェックサムを計算し、挿入すること、周期的冗長検査を計算し、挿入すること、タイムスタンプを挿入すること、および他の動作を含んでもよい。970において完結したパケットは972において被検査ネットワークに送信されてもよい。
【0080】
974において、追加パケットが生成されるべきかの決定がなされてもよい。追加パケットが必要とされる場合、プロセス900が962から周期的に継続してもよい。全てのパケットが生成される場合、プロセス900は990において終了してもよい。
【0081】
パケット1064を生成するためにラベルマップメモリを含むトラフィックジェネレータによって行われる例示的な動作を図10に概略的に示す。MPLSラベル1024をパケットに挿入するために行われる動作を除いて、動作は図8に併せて記載されるものと同様である。同様の動作の詳細な説明は繰り返さない。
【0082】
バックグラウンドエンジン1054は、ストリームデータメモリ1070からテンプレート1045を検索してもよい。テンプレートは、交差した網掛けを付けて示し、文字「P」で識別したLCSID1082または他のポインタを含んでもよい。
【0083】
フィルエンジン1056は、バックグラウンドエンジン1054からテンプレート1074を受信してもよい。フィルエンジン1056は、テンプレート1045からLCSID1082を抽出してもよい。次いで、フィルエンジン1056は、ラベルマップ1070からMPLSラベル1024を読み取るためのアドレスを生成するためにLCSID1082を使用してもよい。フィルエンジン1056は、MPLSラベルを、以前にLCSIDによって占められた交差した網掛けを付けて示し、文字「L」によって識別された位置内のパケット1064に挿入してもよい。
【0084】
フィルエンジンはまた、上記のようにペイロード1068および追加のユーザ定義フィールドUを追加してもよい。チェックサムエンジン1058は、1つ以上のチェックサムを計算し、パケット1064に挿入してもよく、バックエンドエンジン(図10に示さない)は、周期的冗長検査値および/またはタイムコードを、送信されるパケット1064に挿入してもよい。
【0085】
[結びのコメント]
本文献を通して示される実施形態および例は、開示または請求される装置および手順に対する限定ではなく、例としてみなされるべきである。本文献に示される例の多くは、方法行為またはシステム要素の特定の組み合わせを含むが、それらの行為および要素は、同一の目的を達成する他の方法と組み合わせられ得ることが理解されるべきである。フローチャートに関しては、更なる工程やより少ないステップをとり得るものであり、図示したステップは、組み合わせられるかまたは更に洗練されることにより、本文献に記載される方法を達成し得る。一実施形態のみに関連して説明した行為、要素および特徴は、他の実施形態における同様の役割から除外されることを意図しない。
【0086】
本文献で用いられる「複数」は、2つ以上であるということを意味する。本文献で用いられる、項目の「セット」は、そのような項目の1つ以上を含み得る。明細書または特許請求の範囲のいずれにおいても、本文献で用いられる「備える」、「含む」、「持つ」、「有する」、「包含する」、「伴う」等の用語は、オープンエンド、すなわち含むが限定しないことを意味すると理解されるべきである。特許請求の範囲に関しては、「から成る」および「から基本的に成る」という移行句のみが、それぞれ、閉じた移行句またはやや閉じた移行句である。特許請求の範囲において請求項要素を修飾する「第1」「第2」「第3」等の序数用語の使用は、それ自身ではいかなる優先順、優先度、または他の請求項に対するある請求項の順序、あるいは方法の行為が実行される時間的順序を暗示するものではなく、同一の名称を有する別の要素から特定の名称を有する1つの要素を区別し、請求項要素を区別するためのラベルとして単に使用されるものである(序数用語の使用を除く)。本文献で用いられる「および/または」は、列挙される項目が選択肢であることを意味するが、選択肢もまた列挙される項目の任意の組み合わせを含む。

【特許請求の範囲】
【請求項1】
被検査ネットワークを通じて送信するためのパケットを生成するためのトラフィックジェネレータであって、複数のパケットストリームを定義するデータを記憶するトラフィックジェネレータメモリを含むトラフィックジェネレータと、
前記被検査ネットワークからパケットを受信するためのトラフィックレシーバと、
前記トラフィックジェネレータと前記トラフィックレシーバが接続されたポートプロセッサであって、複数のラベル状態セットと、前記トラフィックジェネレータメモリ内の1つ以上の個別の位置とを関連付けるラベル追跡データを記憶する第1メモリを含むポートプロセッサと、
を備え、
MPLSラベルと、特定のラベル状態セットとを関連付ける制御パケットが前記トラフィックレシーバを介して受信される場合、前記ポートプロセッサは、記憶された前記ラベル追跡データに従って前記特定のラベル状態セットと関連付けられた1つ以上のトラフィックジェネレータメモリ位置に、前記MPLSラベルを記憶する、ポートユニット。
【請求項2】
前記ポートプロセッサは、
受信された前記制御パケットから前記特定のラベル状態セットおよび関連付けられた前記MPLSラベルを抽出する工程と、
記憶された前記ラベル追跡データから、前記特定のラベル状態セットと関連付けられた1つ以上のトラフィックジェネレータメモリアドレスを検索する工程と、
前記MPLSラベルを、1つ以上の検索された前記アドレスにより定義された1つ以上の位置にて、前記トラフィックジェネレータメモリに記憶する工程と、
を含む、動作を前記ポートプロセッサに実行させるデーモンを実行する、請求項1に記載のポートユニット。
【請求項3】
実行される前記動作は、前記第1メモリ内に前記MPLSラベルを記憶する工程、および前記MPLSラベルを前記ポートユニットの外部にある検査アドミニストレータへ通信する工程のうちの1つ以上を更に含む、請求項2に記載のポートユニット。
【請求項4】
MPLSラベルと特定のラベル状態セットとを関連付ける各制御パケットは、ラベル分配プロトコル、制約ベースのラベル分配プロトコル、ボーダゲートウェイプロトコル、リソース予約プロトコル、およびリソース予約プロトコル−トラフィック拡張から選択されるプロトコルに従う、請求項2に記載のポートユニット。
【請求項5】
前記ポートプロセッサは、MPLSラベルと関連付けるために用いられる各プロトコルのための別個のデーモンを実行する、請求項4に記載のポートユニット。
【請求項6】
MPLSラベルと個々のラベル状態セットとを関連付ける制御パケットは、前記被検査ネットワーク内で生成される、請求項2に記載のポートユニット。
【請求項7】
前記被検査ネットワークは、検査セッションの間に少なくとも1つのMPLSラベルを変更する、請求項6に記載のポートユニット。
【請求項8】
前記トラフィックジェネレータメモリは、
前記複数のパケットストリームを定義する前記データを保持するストリームデータメモリと、
前記ポートプロセッサにより記憶されるMPLSラベルを保持するラベルマップメモリと、
を備え、前記複数のパケットストリームのうちの少なくとも1つのパケットストリームを定義するデータが前記ラベルマップメモリ内の個別の位置に対するポインタを含む、請求項2に記載のポートユニット。
【請求項9】
複数のパケットストリームを定義するストリームデータを、トラフィックジェネレータメモリに記憶する工程と、
複数のラベル状態セットと、前記トラフィックジェネレータメモリ内の1つ以上の個別の位置とを関連付けるラベル追跡データを、第1メモリに記憶する工程と、
MPLSラベルを特定のラベル状態セットと関連付ける制御パケットを受信する工程と、
記憶された前記ラベル追跡データに従って前記特定のラベル状態セットと関連付けられた1つ以上のトラフィックジェネレータメモリ位置に、前記MPLSラベルを記憶する工程と、
記憶された前記ストリームデータに従ってパケットストリームを生成する工程と、
を含む、トラフィックを生成するための方法。
【請求項10】
前記MPLSラベルを記憶する工程は、更に、
受信された前記制御パケットから前記MPLSラベルおよび前記特定のラベル状態セットを抽出する工程と、
記憶された前記ラベル追跡データから、前記特定のラベル状態セットと関連付けられた1つ以上のトラフィックジェネレータメモリアドレスを検索する工程と、
前記MPLSラベルを、1つ以上の検索された前記アドレスに従って前記トラフィックジェネレータメモリ内の1つ以上の位置にて、前記トラフィックジェネレータメモリに記憶する工程と、
を含む、請求項9に記載のトラフィックを生成するための方法。
【請求項11】
前記第1メモリ内に前記MPLSラベルを記憶する工程、および前記MPLSラベルをポートユニットの外部にある検査アドミニストレータへ通信する工程のうちの1つ以上を更に含む、請求項10に記載のトラフィックを生成するための方法。
【請求項12】
MPLSラベルと特定のラベル状態セットとを関連付ける各制御パケットは、ラベル分配プロトコル、制約ベースのラベル分配プロトコル、ボーダゲートウェイプロトコル、リソース予約プロトコル、およびリソース予約プロトコル−トラフィック拡張から選択されるプロトコルに従う、請求項10に記載のトラフィックを生成するための方法。
【請求項13】
前記MPLSラベルを記憶する工程は、MPLSラベルと関連付けるために用いられる各プロトコルのための別個のデーモンを実行する工程を含む、請求項12に記載のトラフィックを生成するための方法。
【請求項14】
前記トラフィックジェネレータメモリは、
前記複数のパケットストリームを定義する前記データを保持するストリームデータメモリと、
ポートプロセッサにより記憶されるMPLSラベルを保持するラベルマップメモリと、
を備え、前記複数のパケットストリームのうちの少なくとも1つのパケットストリームを定義するデータが前記ラベルマップメモリ内の対応する位置に対するポインタを含む、請求項10に記載のトラフィックを生成するための方法。
【請求項15】
前記MPLSラベルを記憶する工程は、前記MPLSラベルを前記ラベルマップメモリ内の個別の位置に記憶する工程を含む、請求項14に記載のトラフィックを生成するための方法。
【請求項16】
複数のパケットストリームを定義するストリーム形成データを記憶する工程と、
複数のラベル状態セットの各々と、記憶された前記ストリーム形成データ内の1つ以上の位置とを関連付けるラベル追跡データを記憶する工程と、
被検査ネットワークから制御パケットを受信する工程であって、各制御パケットは、1つ以上のMPLSラベルを前記複数のラベル状態セットからの個別のラベル状態セットと関連付ける工程と、
記憶された前記ラベル追跡データに従って、個別の前記ラベル状態セットと関連付けられた記憶された前記ストリーム形成データ内の1つ以上の位置にて、各MPLSラベルを記憶する工程と、
記憶された前記ストリーム形成データに従って前記複数のパケットストリームを生成し、生成された前記パケットストリームを前記被検査ネットワークへ送信する工程と、
を含む、被検査ネットワークを検査する方法。
【請求項17】
パケットストリームを生成している間、前記ラベル状態セットのうちの少なくとも1つと関連付けられた前記MPLSラベルを変更する制御パケットを受信する工程と、
パケット生成を停止することなく、変更された前記MPLSラベルを記憶する工程と、
を更に含む、請求項16に記載の被検査ネットワークを検査する方法。
【請求項18】
実行時に、
複数のパケットストリームを定義するストリームデータを、トラフィックジェネレータメモリに記憶する工程と、
複数のラベル状態セットと、前記トラフィックジェネレータメモリ内の1つ以上の個別の位置とを関連付けるラベル追跡データを、第1メモリに記憶する工程と、
MPLSラベルと特定のラベル状態セットとを関連付ける制御パケットを受信する工程と、
記憶された前記ラベル追跡データに従って前記特定のラベル状態セットと関連付けられた1つ以上のトラフィックジェネレータメモリ位置に、前記MPLSラベルを記憶する工程と、
を含む動作をプロセッサに実行させるプログラム命令を記憶するコンピュータ可読記憶媒体。
【請求項19】
前記MPLSラベルを記憶する工程は、
受信された前記制御パケットから前記MPLSラベルおよび前記特定のラベル状態セットを抽出する工程と、
記憶された前記ラベル追跡データから、前記特定のラベル状態セットと関連付けられた1つ以上のパケットジェネレータメモリアドレスを検索する工程と、
前記MPLSラベルを、1つ以上の検索された前記アドレスにより定義された1つ以上の位置にて、前記パケットジェネレータメモリに記憶する工程と、
を更に含む、請求項18に記載のコンピュータ可読記憶媒体。
【請求項20】
実行される前記動作は、前記第1メモリ内に前記MPLSラベルを記憶する工程、および前記MPLSラベルをポートユニットの外部にある検査アドミニストレータへ通信する工程のうちの1つ以上を更に含む、請求項19に記載のコンピュータ可読記憶媒体。
【請求項21】
MPLSラベルを特定のラベル状態セットに関連付ける各制御パケットは、ラベル分配プロトコル、制約ベースのラベル分配プロトコル、ボーダゲートウェイプロトコル、リソース予約プロトコル、およびリソース予約プロトコル−トラフィック拡張から選択されるプロトコルに従う、請求項19に記載のコンピュータ可読記憶媒体。
【請求項22】
前記MPLSラベルを記憶する工程は、MPLSラベルと関連付けるために用いられる各プロトコルのための別個のデーモンを実行する工程を更に含む、請求項21に記載のコンピュータ可読記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−50091(P2012−50091A)
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願番号】特願2011−187993(P2011−187993)
【出願日】平成23年8月30日(2011.8.30)
【出願人】(504090400)
【Fターム(参考)】