(57)【要約】      （修正有）【課題】通信ネットワーク、システムおよびデバイスの試験および解析を汎用的に行う。【解決手段】仮想ネットワーク・アドレスのためのシステム、方法および装置である。１つの方法には、対応する複数の媒体アクセス制御（MAC）アドレスを有する複数のソフトウェア・ネットワーク・デバイスを生成するというリクエスタからの要求を処理するステップを含んでいる。前記MACアドレスはネットワーク・インターフェイス回路に割り当てることができる。前記MACアドレスおよび前記ソフトウェア・ネットワーク・デバイスは前記リクエスタに提供することができる。入力データ単位は、ドライバおよびデマルチプレクサによりネットワークから受け取ることができる。出力データ単位は、ドライバにより前記ネットワーク上に送ることができる。【選択図】  図３
2005006303.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
該プロセッサに結合されたメモリと、
前記プロセッサおよび前記メモリに結合されており、ネットワークの物理層に結合するためのネットワーク・インターフェイス回路と、
前記プロセッサにより実行されたときに、複数の媒体アクセス制御（MAC）アドレスを前記ネットワーク・インターフェイス回路に割り当てるステップを含む動作を前記プロセッサに行わせる命令と、
を含むネットワーク・カード。
【請求項２】
さらに、前記ネットワーク・カードに関連付けられた前記仮想MACアドレスのうちの１つにアドレス指定されたデータ単位を、前記ネットワークを通して受け取るステップを含む動作を前記プロセッサに行わせる命令を有する、請求項１に記載のネットワーク・カード。
【請求項３】
さらに、前記複数のMACアドレスのそれぞれについてソフトウェア・ネットワーク・デバイスを含む、請求項１に記載のネットワーク・カード。
【請求項４】
前記ソフトウェア・ネットワーク・デバイスが、特定の仮想ネットワーク・デバイスを参照するものとしてオペレーティング・システムが認識することができる識別子を含む、請求項３に記載のネットワーク・カード。
【請求項５】
前記ソフトウェア・ネットワーク・デバイスが、オペレーティング・システムにより認識され、識別子により特定される仮想ネットワーク・デバイスを含む、請求項３に記載のネットワーク・カード。
【請求項６】
さらに、前記複数のMACアドレスのそれぞれについてソフトウェア・ネットワーク・デバイスを含み、前記受け取る動作が、さらに、前記データ単位内で指定された前記MACアドレスに関連付けられたソフトウェア・ネットワーク・デバイスに前記データ単位を渡すステップを含む、請求項２に記載のネットワーク・カード。
【請求項７】
さらに、前記複数のMACアドレスの指定されたMACアドレスから宛先アドレスに出力データ単位を送る要求を受け取るステップと、
前記ネットワークを通して前記出力データ単位を前記指定されたMACアドレスに送信するステップと、を含む動作を前記プロセッサに行わせる命令を有する、請求項１に記載のネットワーク・カード。
【請求項８】
さらに、前記複数のMACアドレスのそれぞれについてソフトウェア・ネットワーク・デバイスを含み、前記受け取る動作が、前記指定されたMACアドレスに関連付けられたソフトウェア・ネットワーク・デバイスによって前記出力データ単位を送る要求を受け取るステップを含む、請求項７に記載のネットワーク・カード。
【請求項９】
請求項１に記載のネットワーク・カードを含むネットワーク試験システム。
【請求項１０】
請求項１に記載のネットワーク・カードを少なくとも１枚含むネットワーク試験システムを有するネットワーク。
【請求項１１】
ネットワーク・カードを設けるステップと、
該ネットワーク・カードに複数の媒体アクセス制御（MAC）アドレスを割り当てるステップと、を含む方法。
【請求項１２】
さらに、前記複数のMACアドレスのそれぞれについてソフトウェア・ネットワーク・デバイスを生成するステップを含む、請求項１１に記載の方法。
【請求項１３】
さらに、前記ネットワーク・カードに関連付けられた前記MACアドレスのうちの１つにアドレス指定されたデータ単位を、前記ネットワークを通して受け取るステップを含む、請求項１１に記載の方法
【請求項１４】
さらに、前記複数のMACアドレスのそれぞれについて対応するソフトウェア・ネットワーク・デバイスを生成するステップを含み、前記受け取るステップが、さらに、前記データ単位内で指定された前記MACアドレスに対応するソフトウェア・ネットワーク・デバイスに前記データ単位を渡すステップを含む、請求項１３に記載の方法。
【請求項１５】
さらに、前記複数のMACアドレスの指定されたMACアドレスから宛先アドレスに出力データ単位を送る要求を受け取るステップと、
前記出力データ単位を、前記ネットワークを通して前記指定されたMACアドレスに送信するステップと、を含む、請求項１１に記載の方法。
【請求項１６】
さらに、前記複数のMACアドレスのそれぞれについてソフトウェア・ネットワーク・デバイスを生成するステップを含み、前記受け取るステップが、前記指定されたMACアドレスに関連付けられた前記ソフトウェア・ネットワーク・デバイスによって前記出力データ単位を送る要求を受け取るステップを含む、請求項１５に記載の方法。
【請求項１７】
ネットワーク上にデータ単位を送信し、かつネットワークからデータ単位を受け取るためのドライバと、
それぞれが対応する媒体アクセス制御（MAC）アドレスを有し、前記ドライバを用いて出力データ単位を前記ネットワークに送るための複数のソフトウェア・ネットワーク・デバイスであって、送信元アドレスとして対応する前記MACアドレスを指定するソフトウェア・ネットワーク・デバイスと、
前記ドライバから入力データ単位を受け取るとともに、該入力データ単位内で指定された宛先アドレスに対応するソフトウェア・ネットワーク・デバイスに前記入力データ単位を配信するためのデマルチプレクサと、を含むネットワーク・カード。
【請求項１８】
さらに、１つ以上のアプリケーション・プログラムがそれを介して前記ネットワーク・デバイスにアクセスして、データ単位を送信および受信することができるオペレーティング・システムを含む、請求項１７に記載のネットワーク・カード。
【請求項１９】
前記アプリケーション・プログラムが前記ネットワーク・カード上に存在する、請求項１８に記載のネットワーク・カード。
【請求項２０】
前記ネットワークが、イーサネット・ネットワークである、請求項１７に記載のネットワーク・カード。
【請求項２１】
さらに、プロセッサおよびメモリを含む、請求項１７に記載のネットワーク・カード。
【請求項２２】
ネットワークにデータ単位を送信し、かつネットワークからデータ単位を受信するためのドライバと、
前記ドライバから入力データ単位を受け取り、かつ該入力データ単位内で指定された宛先アドレスに対応する複数のソフトウェア・ネットワーク・デバイスに前記入力データ単位を配信するためのデマルチプレクサと、を含み、
前記複数のソフトウェア・ネットワーク・デバイスは、それぞれが対応する媒体アクセス制御（MAC）アドレスを有し、前記ドライバを用いて出力データ単位を前記ネットワークに送るためのものであり、送信元アドレスとして前記対応するMACアドレスを指定し、前記デマルチプレクサから入力データ単位を受け取る、ネットワーク・カード。
【請求項２３】
対応する複数の媒体アクセス制御（MAC）アドレスを有する複数のソフトウェア・ネットワーク・デバイスを生成するというリクエスタからの要求を処理するステップと、
前記複数のMACアドレスをネットワーク・インターフェイス回路に割り当てるステップと、
前記リクエスタに、前記複数のMACアドレスと前記複数のソフトウェア・ネットワーク・デバイスとを提供するステップと、を含む方法。
【請求項２４】
前記要求が、生成すべきソフトウェア・ネットワーク・デバイスの数と、前記MACアドレスがリクエスタから与えられるか生成すべきかの指示とを含む、請求項２３に記載の方法。
【請求項２５】
前記MACアドレスが、組織固有識別子（OUI）および組織固有アドレス（OUA）を含み、前記指示が、前記OUIがリクエスタから与えられるか生成すべきかということと、前記OUAがリクエスタから与えられるか生成すべきかということを含む、請求項２４に記載の方法。
【請求項２６】
前記指示が、前記MACアドレスをランダムに生成するか連続して生成するかを含む、請求項２４に記載の方法。
【請求項２７】
さらに、前記ネットワーク・インターフェイス回路に割り当てられた前記MACアドレスにアドレス指定された入力データ単位を、前記ネットワークを通して受け取るステップと、
前記入力データ単位内で指定された宛先MACアドレスに対応するソフトウェア・ネットワーク・デバイスに前記入力データ単位を渡すステップと、を含む、請求項２３に記載の方法。
【請求項２８】
さらに、前記ソフトウェア・ネットワーク・デバイスにより、前記ソフトウェア・ネットワーク・デバイスに対応する１つ以上のMACアドレスから１つ以上の宛先アドレスに出力データ単位を送る要求を受け取るステップと、
前記宛先アドレスに前記ネットワークを通して前記出力データ単位を送信するステップと、を含む、請求項２３に記載の方法。
【請求項２９】
前記割り当てるステップが、さらに、MACアドレスと、それに対応するソフトウェア・ネットワーク・デバイス識別子とのリストを含むMACアドレス・テーブルを更新するステップを含む、請求項２３に記載の方法。
【請求項３０】
前記渡すステップが、さらに、どのソフトウェア・ネットワーク・デバイスが前記入力データ単位内で指定された前記宛先MACアドレスに対応するかを判断するために、MACアドレス・テーブルを参照するステップを含む、請求項２７に記載の方法。
【請求項３１】
前記受け取るステップを、オペレーティング・システムにより提供されるソケット・インターフェイスを用いて実現する、請求項２７に記載の方法。
【請求項３２】
前記送信するステップが、さらに、どの宛先MACアドレスが前記要求を受け取る前記ソフトウェア・ネットワーク・デバイスに対応するかを判断するために、MACアドレス・テーブルを参照するステップを含む、請求項２８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワーク、システムおよびデバイスの試験および解析に関係し、より詳細には、仮想ネットワーク・アドレスを設定し、使用することに関する。
【背景技術】
【０００２】
インターネットのようなネットワークは、サーバ、ルータ、ハブ、スイッチ、および他のデバイスを含む、様々なネットワーク・デバイスを使用して通信される、あらゆる種類の様々なデータを提供する。ネットワークを使用する前に、ネットワーク（そこに含まれるネットワーク・デバイスを含む）は、通常、正常動作することを確認するために試験される。同様に、ウェブサイトをインターネット上に設置する前に、ウェブサイトおよび関連するサーバや他のネットワーク・デバイスも、それらが目的通りに機能し、予測されるトラフィックの要求に耐えられることを確認するために、試験されることがある。
【０００３】
ネットワークおよびウェブサイトの構築、設置およびメンテナンスを補助するために、ネットワークは、ネットワーク解析装置、ネットワーク・モニタリング装置、およびネットワーク・プロトコル適合システム（全て本明細書ではネットワーク試験システムと呼ぶ）を用いて拡張することができる。ネットワーク試験システムは、ネットワーク通信の送出、取り込み、および解析を可能にする。
【０００４】
ネットワーク試験システムの１つのタイプは、トラフィック・ジェネレータである。トラフィック・ジェネレータは、稼働しているまたは試験用のネットワーク上に模擬的に再現されたデータを発信するのに用いられる。あるトラフィック・ジェネレータでは、トラフィック・パターンが読み込まれ、トラフィック・ジェネレータは、これらのパターンに従ってネットワーク上にデータを発信する。トラフィック・ジェネレータは、例えば、ウェブサイトおよびネットワーク通信デバイスを試験するのに用いることができる。
【０００５】
本明細書中で、「ネットワーク対応デバイス」とは、ネットワークを通して通信することができる任意のデバイスである。多くのネットワークにおいて、それぞれのネットワーク対応デバイスは、ネットワーク上で該ネットワーク対応デバイスを識別するために、媒体アクセス制御（MAC）アドレスを有している。演算機器または他のネットワーク対応デバイスは、イーサネット（商標）・ネットワークにアクセスするためにネットワーク・インターフェイス・カード（NIC）を備えていることがある。このNICは固有のMACアドレスを有している。
【０００６】
MACアドレスは、ネットワーク対応デバイスを一意的に特定するハードウェア・アドレスとして工業規格により定められる。イーサネットおよびIEEE802規格では、MACアドレスは、６つのオクテット、合計４８ビットを有している。このアドレスの最初の３つのオクテットは、製造者の組織固有識別子（OUI）である。OUIは、IEEEによって割り当てられる。このアドレスの残りの３つのオクテットは、ネットワーク対応デバイスを一意的に特定し、組織固有アドレス（OUA）と呼ばれる。OUAは、通常、ネットワーク対応デバイスの製造者により割り当てられる。MACアドレスは、通常、ネットワーク対応デバイスを製造する際に割り当てられ、ファームウェア内に格納することができる。
【０００７】
現在のネットワーク試験システムおよびネットワーク試験システムに含まれるカードでは、それぞれのNICは、単一の、固有のMACアドレスを有している。
【発明を実施するための最良の形態】
【０００８】
本明細書全体にわたって、示した実施形態および実施例は、本発明の装置および方法を限定するものというよりは代表例として考えられるべきである。
【０００９】
<<本発明のシステム>>
図１を参照すると、本発明による環境のブロック図が示してある。この環境は、ネットワーク試験システム100、ネットワーク140および複数のネットワーク対応デバイス150を含んでいる。
【００１０】
ネットワーク試験システム100は、１つ以上のトラフィック・ジェネレータ、パフォーマンス・アナライザ、適合性確認システム、ネットワーク・アナライザ、およびネットワーク管理システム、あるいはそのいずれかを含んでもまたはそのものでもよい。ネットワーク試験システム100は、１枚以上のネットワーク・カード120と、バックプレーン110とを含んでもよい。ネットワーク試験システム100は、図１に示すようにカード・ラックの形でも、一体化されたユニットでもよい。代わりに、ネットワーク試験システムは、協働してトラフィック生成および他の作業を提供するための、複数の独立したユニットを備えてもよい。ネットワーク試験システム100およびネットワーク・カード120は、例えば１０ギガビット・イーサネット規格やファイバ・チャネル規格のような１つ以上の周知の規格またはプロトコルをサポートすることができ、専用プロトコルをサポートすることもでき、さらに、例えばIEEE802.3やIEEE802.11といった１つ以上の様々なIEEE802イーサネット規格だけでなく他のプロトコルをサポートすることもできる。
【００１１】
ネットワーク・カード120は、１つ以上のフィールド・プログラマブル・ゲート・アレイ（FPGA）、特定用途向け集積回路（ASIC）、プログラマブル論理回路（PLD）、プログラマブル論理アレイ（PLA）、プロセッサおよび他の種類のデバイスを含んでもよい。加えて、ネットワーク・カード120は、ソフトウェアおよびファームウェアを含んでもよい。ネットワーク・カードという用語は、ライン・カード、テスト・カード、解析カード、ネットワーク・ライン・カード、ロード・モジュール、インターフェイス・カード、ネットワーク・インターフェイス・カード、データ・インターフェイス・カード、パケット・エンジン・カード、サービス・カード、スマート・カード、スイッチ・カード、リレー・アクセス・カード等を包含している。
【００１２】
それぞれのネットワーク・カード120は、該ネットワーク・カード120が１つ以上のネットワーク対応デバイスとして機能できるようにする１つ以上の回路、チップまたはチップセットを含んでもよい。ネットワーク対応デバイスは、ネットワーク140を通して通信することができる任意のデバイスである。一実施形態において、それぞれのネットワーク・カード120は、該ネットワーク・カード120がネットワークを通して通信することができるようにする回路、チップまたはチップセットならびに関連するハードウェアおよびソフトウェアを含んでいる。ネットワーク・カード120は、電線、光ファイバ、無線あるいはその他のものを介してネットワークに接続することができる。それぞれのネットワーク・カード120は、単一の通信プロトコルをサポートしてもよく、複数の関連するプロトコルをサポートしてもよく、または複数の関連のないプロトコルをサポートしてもよい。ネットワーク・カード120は、ネットワーク試験システム100に恒久的に取り付けても、取り外し可能としても、またはそれらの組合せでもよい。以下により詳細に説明するように、それぞれのネットワーク・カード120には、単一の普通のMACアドレスに加えてまたはその代わりに、１つ以上の仮想MACアドレスを設けることができる。このようにして、ネットワーク・カード120は、ネットワーク上で２つ以上のノードまたはクライアントとして機能しうる。それぞれのネットワーク・カード120は、複数のMACアドレスを有することができ、複数の仮想ネットワーク・インターフェイス・カード（NIC）または複数のネットワーク対応デバイスあるいはそれら両方をエミュレートすることができる。
【００１３】
バックプレーン110は、ネットワーク・カード120用のバスまたは通信媒体として機能しうる。またバックプレーン110は、電力をネットワーク・カード120に供給することもできる。
【００１４】
ネットワーク対応デバイス150は、ネットワーク140を通じて通信可能などのようなデバイスでもよい。ネットワーク対応デバイス150は、例えばワークステーション、パーソナル・コンピュータ、サーバ、ポータブル・コンピュータ、携帯情報端末（PDA）、演算タブレット等の演算機器、例えばプリンタ、スキャナ、ファクシミリ装置等の周辺機器、例えばネットワーク接続記憶装置（NAS）および記憶域ネットワーク（SAN）デバイスといったディスク・ドライブを含むネットワーク対応記憶装置、例えばルータ、リレー、ファイア・ウォール、ハブ、スイッチ、ブリッジ、および多重化装置といったネットワーキング装置でもよい。加えて、ネットワーク対応デバイス150は、例えばネットワークを通じて通信可能な冷蔵庫、洗濯機等の他、住宅向けまたは業務用の暖房、換気および空調システム、アラーム・システム、電話機、ならびに、その他の装置またはシステム等の機器をも含みうる。ネットワーク対応デバイス150は、被試験デバイス（DUT）と呼ぶことができる。
【００１５】
ネットワーク140は、域内ネットワーク（LAN）、広域ネットワーク（WAN）、記憶域ネットワーク（SAN）でよい。ネットワーク140は、有線、無線、またはこれらの組合せでもよく、またインターネットを含んでもまたはそのものでもよい。ネットワーク140は、公衆のものでも私設のものでもよく、さらには分離された試験ネットワークでもよい。ネットワーク140での通信は、フレーム、セル、データグラム、パケットまたは他の情報単位を含む様々な形態を取ることができ、それら全てを本明細書中で「データ単位」と呼ぶ。ネットワーク試験システム100およびネットワーク対応デバイス150は、互いに同時に通信することができ、ネットワーク試験システム100と所与のネットワーク対応デバイス150との間に複数の論理的通信リンクがあってもよい。ネットワーク140は、データが移動する多数の物理的および論理的経路を与える多数のノードを備えてもよい。
【００１６】
次に、図２を参照すると、本発明の一態様によるネットワーク・カード210のブロック図が示してある。ネットワーク・カード210は、図１のネットワーク・カード120となり得る。ネットワーク・カード210は、プロセッサ212、メモリ216およびネットワーク・インターフェイス回路218を含んでいる。プロセッサ212、メモリ216およびネットワーク・インターフェイス回路218は、FPGAのような単一のチップに含まれてもよく、複数のチップまたはデバイスの組合せでもよい。ネットワーク・インターフェイス回路218は、そこに組み込まれたMAC管理モジュール214を有していてもよく、またはネットワーク・インターフェイス回路218を有するFPGAが、そこに組み込まれたMAC管理モジュールを有していてもよい。代わりに、MAC管理モジュール214は、ハードディスク・ドライブまたは他の機械可読媒体（例えば、コンパクト・ディスク読出し専用メモリ、フロッピーディスク）、またはフラッシュ・メモリ・デバイスもしくは他の記憶装置（例えば、電気的消去可能プログラマブル読出し専用メモリ（EEPROM）等）であり、バスまたは他の結合技術によってプロセッサ212またはネットワーク・インターフェイス回路218あるいはその両方に結合できるものの上に、ソフトウェアとして含めてもよい。
【００１７】
プロセッサ212は、メモリ216およびネットワーク・インターフェイス回路218に結合することができる。プロセッサ212は、命令を実行可能な任意のプロセッサまたは処理装置であってよい。命令には、オブジェクト・コード、アセンブリ・コード、高水準コンピュータ言語命令、および他の種類の命令が含まれる。命令は、ネットワーク・カード210に恒久的に格納しても一時的に格納してもよい。ネットワーク・カードの外部から、プロセッサ212は、ネットワーク・カードが生成すべきトラフィック・パターンといった命令を受け取る。プロセッサ212は、ネットワーク・カード210を外部から制御するためのアプリケーション・プログラム・インターフェイス（API）を有することができる。ユーザーは、ホスト上のソフトウェア・プログラムを用いて、プロセッサ212に送られる命令を生成するコマンドを入力することができる。プロセッサ212は、それらの実行前、実行後、および実行中に、命令をメモリ216に格納することができる。
【００１８】
メモリ216は、ランダム・アクセス・メモリ（RAM）を含む任意のメモリ・デバイスでよい。追加のメモリ・デバイスをネットワーク・カード210内に備えてもよい。例えば、フラッシュ・メモリやEEPROMといった他の種類のメモリ・デバイスをネットワーク・カード210内に備えてもよい。
【００１９】
ネットワーク・インターフェイス回路218は、ネットワーク・カード210がPHY220によってネットワークを通して通信できるようにするソフトウェア、ファームウェア、およびハードウェアあるいはそのいずれかを含んでいる。ネットワーク・インターフェイス回路218は、ポートと呼ぶこともある。それぞれのネットワーク・カード210上には複数のポートがあってもよい。それぞれのポート／ネットワーク・インターフェイス回路218は、開放型システム間相互接続（OSI）参照モデルのデータリンク層（DLL）の基準、ならびにIEEE802規格の論理リンク制御（LLC）層およびMAC層に準拠する１つ以上のプロトコルあるいはそのいずれかをサポートすることができる。
【００２０】
MAC管理モジュール214は、複数のMACアドレスをネットワーク・インターフェイス回路218に関連付けられるようにするソフトウェアおよびファームウェアまたはそのいずれかでよい。アプリケーション・プログラムまたは他のソフトウェア・プログラム、モジュールまたはサブルーチンが、１つ以上のMACアドレスをネットワーク・インターフェイス回路218に割り当てることを要求することができる。これは、APIを介してネットワーク・インターフェイス回路のMAC管理モジュール214に要求を発行することによって、手続き呼出しまたはサブルーチンを呼び出すことによって、またはネットワーク・インターフェイス回路上のメモリまたはレジスタ位置にデータを置き、割込みを発生させることによって実現することができる。MAC管理モジュール214は、MACアドレス・テーブルまたは他のデータ構造を保持し、ネットワーク・インターフェイス218に割り当てられ関連付けられたMACアドレスのリストを保持することができる。MACアドレス・テーブルはメモリ216に、すなわちネットワーク・インターフェイス回路218が組み込まれるFPGA、ASICまたは他のデバイスのメモリ・デバイスに、格納することができる。
【００２１】
PHY220は、太いワイヤの同軸ケーブル（RG-11等）、細いワイヤの同軸ケーブル（RG-58等）、非シールドより対線（UTP）としても知られるカテゴリー（CAT）3，4または5ケーブル、無線等でよい。ネットワーク・インターフェイス回路218およびPHY220は、イーサネット、ファスト・イーサネット、ギガビット・イーサネット、IEEE802、または、例えば限定はされないが非同期転送モード（ATM）、光ファイバ分散データ・インターフェイス（FDDI）、トークンリング、1000BaseT、100BaseT、10BaseT、10BaseF、10Base2、10Base5等を含む、他の通信規格あるいはそれら両方をサポートすることができる。また図１に関する上述のネットワーク140は、これらの規格の１つ以上をサポートする。
【００２２】
本明細書に記載のシステムおよび方法によれば、ネットワーク・インターフェイス218は、PHY220を通して複数のMACアドレスから出力データ単位230を生成することができる。ネットワーク・インターフェイス回路218は、PHY220を通して複数のMACアドレスにアドレス指定された入力データ単位240を受け取ることができる。
【００２３】
次に、図３を参照すると、本発明の一態様によるネットワーク・カード300のブロック図が示してある。ネットワーク・カード300は、図１のネットワーク・カード120であり得る。ネットワーク・カード300は、PHY350を通して、入力データ単位を受け取り、出力データ単位を送信することができる。ネットワーク・カード300は、特定の種類の物理層（PHY350）上での通信を可能にする媒体アクセス制御層ドライバ340を含んでいる。例えば、ドライバ340は、同軸ケーブル、細いワイヤの同軸ケーブル、CAT-5ケーブル／UTP、無線等のうちの１つ以上を通じての通信をサポートすることができる。
【００２４】
デマルチプレクサ330が、ネットワーク・カード300に含まれている。デマルチプレクサ330は、ドライバ340に仮想的すなわち論理的に結合されている（342）。デマルチプレクサ330は、ドライバ340から入力データ単位を受け取る。この入力データ単位は、１つ以上のMACアドレスにアドレス指定されていてもよい。デマルチプレクサ330は、ソフトウェア・ネットワーク・デバイス320に論理的すなわち仮想的に結合されている（332）。デマルチプレクサ330は、それぞれの異なるMACアドレスに関連付けられた入力データ単位を、それぞれのソフトウェア・ネットワーク・デバイス320に渡すまたはそれらが利用可能にする。
【００２５】
ソフトウェア・ネットワーク・デバイス320は、Linuxオペレーティング・システム310または他のオペレーティング・システムによって生成されたデバイスである。LinuxまたはUnix（商標）オペレーティング・システムの各バージョンにおいては、IOCTLコールを用いて、ソフトウェア・ネットワーク・デバイスを生成し、あるいはこれにアクセスすることができる。それぞれのソフトウェア・ネットワーク・デバイス320は異なるMACアドレスに関連付けられる。
【００２６】
ドライバ340は、それぞれのMACアドレスを、対応するソフトウェア・ネットワーク・デバイスに結びつけるすなわちマップする。ドライバ340は、MACアドレスをネットワーク・デバイスに関連付ける、データベース、リストまたは他のデータ構造の形でMACアドレス・テーブルを保持できる。このMACアドレス・リストには、IOCTL、APIまたは他のサブルーチンもしくは手順が、MACアドレス／ネットワーク・ソフトウェア・デバイスにアクセスおよびこれを生成、あるいはアクセスまたは生成するのに用いられるときに、アクセスすることができる。
【００２７】
ソフトウェア・ネットワーク・デバイス320は、入力データ単位を、Linuxオペレーティング・システム310によって、ネットワーク層、セッション層、プレゼンテーション層、およびアプリケーション層のソフトウェア・プログラムに渡すまたはそれらに利用可能にする。セッション層またはネットワーク層あるいはその両方のソフトウェア・プログラムは、Linuxオペレーティング・システム310に含めることができる。Linuxオペレーティング・システムに含まれるネットワーク層は、例えば、伝送制御プロトコル（TCP）、インターネット・プロトコル（IP）、ユーザ・データグラム・プロトコル（UDP）および他のプロトコルあるいはそのいずれかをサポートすることができる。Linux310のようなオペレーティング・システムによって提供されるソケットまたは他のAPIを上位層およびアプリケーション・プログラム302で用い、ソフトウェア・ネットワーク・デバイス320にアクセスすることができる。このようにして、アプリケーション・プログラムおよび他の上位層ソフトウェアは、アプリケーション・プログラムが普通のネットワーク・デバイスにアクセスするのと同じようにして、仮想MACアドレスを有するソフトウェア・ネットワーク・デバイス320にアクセスすることができる。
【００２８】
それぞれの異なるMACアドレスからの出力データ単位は、ネットワーク・カード300の外部であり、Linuxオペレーティング・システム310の上にあるアプリケーション層プログラム302から受け取った命令に基づいて、生成、送信することができる。他の実施形態においては、アプリケーション・プログラム302はネットワーク・カードに含めることができ、または、複数のアプリケーション・プログラム302を、ネットワーク・カード300の外部とネットワーク・カード300内との両方に含めることができ、あるいはその両方が可能である。アプリケーション・プログラム302は、特定の送信元MACアドレスから、適切なソフトウェア・ネットワーク・デバイス320にアクセスすることによってデータ単位を送ることを、指定することができる。ソフトウェア・ネットワーク・デバイス320は、Linuxオペレーティング・システム310によって、情報または命令あるいは両方を受け取り、１つ以上のアプリケーション・プログラム302または他の上位層プログラムからデータ単位を生成し、または送り、あるいは生成しかつ送る。それぞれのソフトウェア・ネットワーク・デバイス320は、ドライバ340に論理的すなわち仮想的に結合される（322）。ネットワーク層プログラム、アプリケーション・プログラムまたは他の上位層プログラムによって開始された出力データ単位は、ネットワーク・デバイス320によってドライバ340を介してPHY350を通して送信される。
【００２９】
前の各段落に記載のように、ソフトウェア・ネットワーク・デバイス320は、補助構成要素と組み合せて、仮想NICまたはネットワーク・ノードあるいはその両方としてそれぞれ機能する。このように、アプリケーション・プログラムは、単一のネットワーク・カードを用いて、それぞれが互いに異なるMACアドレスを有する複数の仮想NICをエミュレートすることができる。MACアドレスは、ランダムにまたは連続して、あるいはランダムにかつ連続して生成することができる。MACアドレスは、デバイスまたはシステムの製造者の組織固有識別子（OUI）と、連続してまたはランダムに選ばれた組織固有アドレス（OUA）とを含むことができる。本試験システムは、ユーザーがOUIおよびOUAを手動で選択できるようにすることができる。本試験システムは、ユーザーがOUIまたはOUAあるいは両方をランダムに生成すべきか、連続して生成すべきかを選択できるようにすることができる。
【００３０】
<<本発明の方法>>
次に、図４を参照すると、本発明の一態様に従って複数の仮想MACアドレスを生成するのに取られる動作のフローチャートが示してある。ブロック410に示すように、複数の仮想MACアドレスを生成する要求を受け取る。この要求は、ネットワーク試験プログラム、ネットワーク・トラフィック生成プログラム等のようなアプリケーション・プログラムによりなされうる。この要求は、手続き呼出しを用いてなされうるが、プロセッサのレジスタにデータを置き、割込みを発生させることによっても、さらに他の手法を用いても実現できる。この要求は、指定のMACアドレス、ランダムなMACアドレス、または部分的に指定され、部分的にランダムなMACアドレスを有する１つ以上のソフトウェア・ネットワーク・デバイスを生成するように指示できる。このネットワーク試験プログラムまたは他のアプリケーションは、特定のMACアドレスまたはその一部を指定することができ、MACアドレスがその範囲内でランダムにまたは連続して、あるいはランダムにかつ連続して生成されるところの数値境界を指定でき、または、１つ以上のMACアドレスのOUIおよびOUAをランダムにまたは連続して、あるいはランダムにかつ連続して生成することを要求することができ、あるいはその両方が可能である。
【００３１】
ブロック420に示すように、要求された数の仮想MACアドレスを生成する。ブロック430に示すように、それぞれの仮想MACアドレスについてソフトウェア・ネットワーク・デバイスを生成することができる。これは、例えばIOCTLコールのようなLinuxのデバイス生成技法を用いて実現することができる。ブロック440に示すように、MACアドレスと、それに対応するソフトウェア・ネットワーク・デバイスとを列挙するMACアドレス・テーブルを更新する。
【００３２】
ブロック450に示すように、仮想MACアドレスと、それに対応するソフトウェア・ネットワーク・デバイスとを返す、または利用可能にする。これは、オペレーティング・システムが認識できるソフトウェア・ネットワーク・デバイスへのポインタを渡すこと、オペレーティング・システムが認識するソフトウェア・ネットワーク・デバイスの識別子を返すこと、また他の技法によって実現できる。この識別子は、文字列、数字、それらの組合せまたは任意の識別子でよい。
【００３３】
次に、図５を参照すると、本発明の一態様に従って複数の仮想MACアドレスの１つにアドレス指定されたデータ単位を受け取るのに取られる動作のフローチャートが示してある。ブロック510に示すように、１枚のネットワーク・カードに関連付けられた仮想MACアドレスのうちの１つにアドレス指定されたデータ単位を、PHYを通してネットワークから受け取ることができる。ブロック520に示すように、MACアドレス・テーブルを参照して、対応するソフトウェア・ネットワーク・デバイスを識別することができる。ブロック530に示すように、データ単位を、該データ単位内で指定された仮想MACアドレスに関連付けられたソフトウェア・ネットワーク・デバイスに渡すことができる。ブロック540に示すように、このデータ単位は、ソフトウェア・ネットワーク・デバイスを介してアプリケーション・プログラムがアクセスできるようにされる。このデータ単位は、それゆえ、ソフトウェア・ネットワーク・デバイスへのIOCTLコール、ソケット（ソフトウェア・ネットワーク・デバイスに関連するキューで待ち状態にある）、API、または他の技法により、アプリケーション・プログラムからアクセス可能である。
【００３４】
次に、図６を参照すると、本発明の一態様に従って複数の仮想MACアドレスの１つからデータ単位を送るのに取られる動作のフローチャートが示してある。ブロック610に示すように、アプリケーション・プログラムは、ソフトウェア・ネットワーク・デバイスにアクセスすることにより、データ単位を送るという要求を作成する。これは、ソフトウェア・ネットワーク・デバイスへのLinuxインターフェイスを使用して手続き呼出しにより実現できる。この手続き呼出しは、ソフトウェア・ネットワーク・デバイスに関連付けられたソケットまたは他のAPIへのアクセスを提供することができる。これはまた、プロセッサのレジスタにデータを置き、割込みを発生させることにより、また他の技法により実現できる。ブロック620に示すように、ソフトウェア・ネットワーク・デバイスは、ソフトウェア・ネットワーク・デバイスから宛先アドレスへとデータ単位を送るという要求を入力する。ブロック630に示すように、ソフトウェア・ネットワーク・デバイスに関連付けられた仮想MACアドレスからアドレス指定されたデータ単位を作成する。ブロック640に示すように、このデータ単位はドライバによりネットワーク上に送られる。
【００３５】
図４、図５および図６に記載の方法によれば、アプリケーション・プログラムまたはユーザーあるいはその両者は、単一のネットワーク・カードの複数のMACアドレスにアクセスし、複数のデータ単位を受け取り、エミュレートしまたは生成し、あるいはエミュレートしおよび生成して、１つ以上のDUTの性能を評価することができる。このように、本明細書に記載された方法を採用する単一のネットワーク・カードは、複数の普通のハードウェアのNICに取って代わり得る。
【００３６】
本発明の代表的な実施例を示して説明してきたが、本明細書中に記載された本発明に対するいくつもの変更、改変、または置換であって、本発明の精神から逸脱しないものが可能であることは、当業者には明らかであろう。したがって、全てのそのような変更、改変および置換が、本発明の範囲内にあるものとみなされるべきである。
【００３７】
<<著作権およびトレード・ドレスの通知>>
この特許文献の一部は、著作権保護を受ける材料を含んでいる。この特許文献は、所有者のトレード・ドレスであるかそれになりうる内容を示しかつ／または記述していることがある。この著作権およびトレード・ドレスの所有者は、特許商標庁の特許ファイルまたは記録に現れるもののままの特許の開示の何人による複製に対しても不服はないが、それ以外では全ての著作権およびトレード・ドレス権を保有するものである。
【図面の簡単な説明】
【００３８】
【図１】本発明による環境のブロック図である。
【図２】本発明の一態様によるネットワーク・カードのブロック図である。
【図３】本発明の他の態様によるネットワーク・カードのブロック図である。
【図４】本発明の一態様に従って複数の仮想MACアドレスを生成するのに取られる動作のフローチャートである。
【図５】本発明の一態様に従って複数の仮想MACアドレスの１つにアドレス指定されたデータ単位を受け取るのに取られる動作のフローチャートである。
【図６】本発明の一態様に従って複数の仮想MACアドレスの１つからデータ単位を送るのに取られる動作のフローチャートである。
【図１】
2005006303.tif 000003
【図２】
2005006303.tif 000004
【図３】
2005006303.tif 000005
【図４】
2005006303.tif 000006
【図５】
2005006303.tif 000007
【図６】
2005006303.tif 000008
【外国語明細書】
2005006303000001.pdf