(57)【要約】      （修正有）【課題】通信ネットワーク、通信システム、およびトラフィック解析を試験及び解析するためにデータストリームを送信すること。【解決手段】ネットワーク解析のための動的ストリームは、デバイス上の方法として実現し得る。このデバイスは、制御ユニットとブラスタユニットとを含み得る。制御ユニットは、制御ラインを通じてブラスタユニットにセッション開始情報を送信することで、リモートデバイスとのセッションを開始し得る。制御ユニットは、バスを介してブラスタユニットにセッション制御情報とセッションデータとを送信することにより、データユニットのストリームのどのセッションを有効化するかを制御すると共に、ストリームのセッション上で送信されるデータユニットのコンテンツを制御し得る。【選択図】図２
2004272910.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク解析のための動的ストリームを生成する装置であって、
ネットワーク上の少なくとも一つのセッションを表すデータユニットの少なくとも一つの送出ストリームを、そのセッションに関するそれぞれのセッションステータス情報がそのセッションが有効であることを示す時に送信するブラスタユニットと、
どのセッション上で前記ブラスタユニットが送出データユニットを送信することになるかを制御し、
それぞれのセッションについてデータユニットをどのように形成するかを前記ブラスタユニットに命令するセッション構成情報、及び
前記セッションを個別に有効化及び無効化するセッションステータス情報
を前記ブラスタユニットに送信する制御ユニットと、
を備える装置。
【請求項２】
前記ブラスタユニットは、並行的にデータユニットを送信することができる最大セッション数を有し、
前記制御ユニットは、並行的に制御することができる最大セッション数を有し、
その制御ユニットの最大セッション数が、前記ブラスタユニットの最大セッション数よりも大きい、請求項１記載のネットワーク解析のための動的ストリームを生成する装置。
【請求項３】
前記ブラスタユニットは、対応するストリームに関する送出データユニットを送信すべき時を知らせるスケジューラを有する、請求項１記載のネットワーク解析のための動的ストリームを生成する装置。
【請求項４】
前記ブラスタユニットは、前記送出データユニットを形成するためのバックグラウンドオーバレイエンジンを有する、請求項１記載のネットワーク解析のための動的ストリームを生成する装置。
【請求項５】
前記バックグラウンドオーバレイエンジンは、有効化されたセッション上で前記送出データユニットを送信する、請求項４記載のネットワーク解析のための動的ストリームを生成する装置。
【請求項６】
前記バックグラウンドオーバレイエンジンは、セッションステータステーブル内のセッションに関するセッションステータス情報を参照することで、そのセッションが有効かどうかを判定する、請求項５記載のネットワーク解析のための動的ストリームを生成する装置。
【請求項７】
前記ブラスタユニットは、
それぞれのセッションに関する複数のセッションステータス情報を格納するセッションステータステーブルと、
それぞれのセッションに関するオーバレイ情報を格納するオーバレイメモリと、
それぞれのセッションに関するバックグラウンド情報を格納するバックグラウンドメモリと、を有する、請求項１記載のネットワーク解析のための動的ストリームを生成する装置。
【請求項８】
前記セッションステータステーブルは前記オーバレイメモリに含まれる、請求項７記載のネットワーク解析のための動的ストリームを生成する装置。
【請求項９】
前記セッションステータステーブルはメモリユニットである、請求項７記載のネットワーク解析のための動的ストリームを生成する装置。
【請求項１０】
前記バックグラウンド情報を前記オーバレイ情報と結合するバックグラウンドオーバレイエンジンを更に備える、請求項７記載のネットワーク解析のための動的ストリームを生成する装置。
【請求項１１】
前記セッションステータス情報はセッションステータスビットを含む、請求項１記載のネットワーク解析のための動的ストリームを生成する装置。
【請求項１２】
ネットワーク解析のための動的ストリームを生成する装置であって、
ブラスタユニットであって、
オーバレイメモリと、
バックグラウンドメモリと、
それぞれのセッションに関する複数のセッションステータス情報を格納するセッションステータステーブルと、
それぞれのセッションに関して前記バックグラウンドメモリに格納されるテンプレート及び前記オーバレイメモリに格納されるオーバレイに基づいて、それぞれのセッションに関するデータユニットを形成するバックグラウンドオーバレイエンジンであって、前記オーバレイメモリ、前記バックグラウンドメモリ、及び前記セッションステータステーブルのそれぞれと結合されるバックグラウンドオーバレイエンジンと、
前記バックグラウンドオーバレイエンジンに結合され、このブラスタユニットがデータユニットを発信させるべき時を知らせるスケジューラと、
を備えるブラスタユニットと、
前記データユニットを発信する発信エンジンと、
前記バックグラウンドメモリに格納するために、前記バックグラウンドオーバレイエンジンに前記テンプレートを送り、
前記オーバレイメモリに格納するために、前記バックグラウンドオーバレイエンジンに前記オーバレイを送り、
前記セッションステータステーブルに格納するために、前記バックグラウンドオーバレイエンジンにセッションステータス情報を送り、これにより、指定されたセッションに属するデータユニットを送信すべきか否かを前記バックグラウンドオーバレイエンジンに命令する、
ように構成されたプロセッサを、
備える制御ユニットと、
を備える装置。
【請求項１３】
前記セッションステータス情報はセッションステータスビットである、請求項１２記載のネットワーク解析のための動的ストリームを生成する装置。
【請求項１４】
前記制御ユニットはメモリを更に備える、請求項１２記載のネットワーク解析のための動的ストリームを生成する装置。
【請求項１５】
前記ブラスタユニットは最大セッション数を有し、
前記制御ユニットの最大セッション数は、前記スケジューラの最大セッション数よりも大きい、請求項１２記載のネットワーク解析のための動的ストリームを生成する装置。
【請求項１６】
ネットワーク上で、複数のセッションを表す少なくとも一つのストリームにおいてトラフィックを生成する方法であって、
ブラスタユニット及び制御ユニットを設け、
前記セッションのそれぞれにセッション識別子を割り当て、
前記制御ユニットが、セッションを無効化する第一のセッションステータス情報を前記ブラスタユニットにロードし、
前記制御ユニットがそのセッションをネゴシエートし、
前記制御ユニットが、そのセッションに関する第一のセッション構成情報を前記ブラスタユニットにロードし、
前記制御ユニットが、セッションを有効化する第二のセッションステータス情報を前記ブラスタユニットにロードし、
前記ブラスタユニットが、前記第一のセッション構成情報に従って、前記有効化されたセッションに関するデータユニットを発信し、
前記制御ユニットが、少なくとも一つの選択されたセッションを無効化する第三のセッションステータス情報を前記ブラスタユニットにロードし、
選択された無効化セッションのセッション識別子を、対応する数の新たに生成されるべきセッションに割り当て、
前記制御ユニットが、その新しいセッションをネゴシエートし、
前記制御ユニットが、その新しいセッションに関する第二のセッション構成情報を前記ブラスタユニットにロードし、これにより、その第二のセッション構成情報が、選択されたセッションの第一のセッション構成情報と置き換わり、
前記制御ユニットが、前記新しいセッションを有効化する第四のセッションステータス情報を前記ブラスタユニットにロードし、
前記ブラスタユニットが、前記第二のセッション構成情報に従って、前記新しいセッションに関するデータユニットを発信する。
【請求項１７】
前記セッションステータス情報がセッションステータスビットを含む、請求項１６記載のネットワーク上で少なくとも一つのストリームにおいてトラフィックを生成する方法。
【請求項１８】
ネットワーク上で少なくとも一つのストリームにおいてトラフィックを生成する方法であって、
前記制御ユニットが、第一の複数のセッションをネゴシエートし、
前記制御ユニットが、前記第一の複数のセッションに関して、第一のセッション構成情報をブラスタユニットに提供し、
前記ブラスタユニットが、前記第一の複数のセッションにおいて発信するデータユニットを形成し、
前記制御ユニットが、前記第一の複数のセッションのうち第二の複数のものを無効化させ、これにより、前記第一の複数のセッションのうち第三の複数のものが有効状態を維持し、
前記制御ユニットが、第四の複数のセッションをネゴシエートし、
前記制御ユニットが、前記第二の複数のセッションの第一の構成情報の代わりとして、前記第四の複数のセッションに関して、前記第二のセッション構成情報を前記ブラスタユニットに提供し、
前記ブラスタユニットが、前記第三の複数のセッション及び前記第四の複数のセッションにおいて発信するデータユニットを形成する。
【請求項１９】
前記セッションについてそのセッションが無効化されたことを示すセッションステータス情報を変更することで、そのセッションを停止状態にする手段を更に備える、請求項２２記載のネットワーク解析のための動的ストリームを生成する装置。
【請求項２０】
前記セッションステータス情報はセッションステータスビットである、請求項２２記載のネットワーク解析のための動的ストリームを生成する装置。
【請求項２１】
請求項１記載の装置を備えるネットワークカード。
【請求項２２】
請求項１記載の装置を備えるトラフィックジェネレータ。
【請求項２３】
請求項１２記載の装置を備えるネットワークカード。
【請求項２４】
請求項１２記載の装置を備えるトラフィックジェネレータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワーク、システム、及びデバイスの試験及び解析に関し、特に、通信ネットワーク、通信システム、及びトラフィック解析を試験及び解析するためにデータストリームを送信することに関する。
【背景技術】
【０００２】
音声、データ、及びあらゆる種類のデジタルメディアを含む通信ネットワークは、現代社会の至る所に存在する。多くの異なる種類のデータが、商取引及び娯楽その他数多くの用途で、人々や企業によって、そして更にそれらの間で共有されている。通信ネットワークの構築及び維持を支援するために、通信システムは、ネットワーク解析デバイスと、ネットワーク監視デバイスと、ネットワーク試験デバイスとを有する。こうしたデバイスは、単一のユニットとして備えられる場合があり、或いは、別個の複数のユニットとして存在する場合もある。また、こうしたユニットは、サーバコンピュータ等の計算デバイス上に実装されるソフトウェアの場合があり、或いは、スタンドアロンの専用デバイスである場合もある。
【０００３】
一般に、こうした製品によって、ネットワーク通信の送信と、取り込みと、解析とが可能となっている。このネットワーク通信は、通信システムによって生成されたり、或いは、前記の製品によってあるネットワークから引き出された一般のトラフィックであったりする場合がある。
【０００４】
ネットワーク試験デバイスの一種に、トラフィックジェネレータがある。トラフィックジェネレータは、現実世界のデータをシミュレートするネットワーク上のデータを発生させるために使用される。トラフィックジェネレータは、通常、バッチ指向である。つまり、トラフィックジェネレータには、一つ以上のトラフィックパターンがロードされ、その後、トラフィックジェネレータは、こうしたパターンに従って、ネットワーク上のデータを発生させる。
【発明の開示】
【課題を解決するための手段】
【０００５】
本発明の一の態様は、ネットワーク解析のための動的ストリーム（dynamic stream）を生成する装置であって、
ネットワーク上の少なくとも一つのセッションを表すデータユニットの少なくとも一つの送出ストリーム（outgoing stream）を、そのセッションに関するそれぞれのセッションステータス情報がそのセッションが有効であることを示す時に送信するブラスタユニット（blaster unit）と、
どのセッション上で前記ブラスタユニットが送出データユニットを送信することになるかを制御し、
それぞれのセッションについてデータユニットをどのように形成するかを前記ブラスタユニットに命令するセッション構成情報、及び
前記セッションを個別に有効化及び無効化するセッションステータス情報、
を前記ブラスタユニットに送信する制御ユニットと、
を備える装置である。
【０００６】
また、本発明の他の態様は、ネットワーク上で、複数のセッションを表す少なくとも一つのストリームにおいてトラフィックを生成する方法であって、
ブラスタユニット及び制御ユニットを設け、
前記セッションのそれぞれにセッション識別子を割り当て、
前記制御ユニットが、セッションを無効化する第一のセッションステータス情報を前記ブラスタユニットにロードし、
前記制御ユニットがそのセッションをネゴシエートし、
前記制御ユニットが、そのセッションに関する第一のセッション構成情報を前記ブラスタユニットにロードし、
前記制御ユニットが、セッションを有効化する第二のセッションステータス情報を前記ブラスタユニットにロードし、
前記ブラスタユニットが、前記第一のセッション構成情報に従って、前記有効化されたセッションに関するデータユニットを発信し、
前記制御ユニットが、少なくとも一つの選択されたセッションを無効化する第三のセッションステータス情報を前記ブラスタユニットにロードし、
選択された無効化セッションのセッション識別子を、対応する数の新たに生成されるべきセッションに割り当て、
前記制御ユニットが、その新しいセッションをネゴシエートし、
前記制御ユニットが、その新しいセッションに関する第二のセッション構成情報を前記ブラスタユニットにロードし、これにより、その第二のセッション構成情報が、選択されたセッションの第一のセッション構成情報と置き換わり、
前記制御ユニットが、前記新しいセッションを有効化する第四のセッションステータス情報を前記ブラスタユニットにロードし、
前記ブラスタユニットが、前記第二のセッション構成情報に従って、前記新しいセッションに関するデータユニットを発信する。
【発明を実施するための最良の形態】
【０００７】
この説明を通じて、ここに示される実施形態及び実施例は、本発明の装置及び方法に対する限定ではなく、一例として考えるべきである。
【０００８】
＝＝＝本発明のシステム＝＝＝
図１には、本発明による環境のブロック図が図示されている。この環境は、トラフィックジェネレータ１００と、ネットワーク１４０と、複数のネットワークデバイス１５０とを含む。
【０００９】
トラフィックジェネレータ１００は、ネットワーク試験デバイス、パフォーマンスアナライザ、適合性検証システム、ネットワークアナライザ、又はネットワーク管理システムとすることができる。トラフィックジェネレータ１００には、一枚以上のネットワークカード１２０とバックプレーン１１０とを含めることができる。トラフィックジェネレータ１００は、図１に示すように、カードラックの形態にすることが可能であり、或いは、集積したユニットとすることができる。あるいは、トラフィックジェネレータは、トラフィック生成を行うために協調する多数の個別ユニットを備えることができる。トラフィックジェネレータ１００とネットワークカード１２０とは、１０ギガビットイーサネット及びファイバチャネル規格といった一つ以上の広く知られた規格又はプロトコルをサポートすることが可能であり、同様に、独自のプロトコルをサポートすることもできる。
【００１０】
ネットワークカード１２０は、一つ以上のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）、プログラマブルロジックアレイ（ＰＬＡ）、プロセッサ、及びその他の種類のデバイスを含むことができる。さらに、ネットワークカード１２０は、ソフトウェアとファームウェアとを含むことができる。ネットワークカードという用語は、ラインカード、試験カード、解析カード、ネットワークラインカード、ロードモジュール、インタフェースカード、ネットワークインタフェースカード、データインタフェースカード、パケットエンジンカード、サービスカード、スマートカード、スイッチカード、リレーアクセスカード等を包含する。各ネットワークカード１２０は、一つ以上のネットワークポートを提供することができる。ネットワークカード１２０のポートは、有線、光ファイバ、無線、又はその他の形で、ネットワークに接続することができる。各ネットワークカード１２０は、単一の通信プロトコルや多数の関連プロトコル、或いは多数の無関係なプロトコルをサポート可能である。ネットワークカード１２０は、トラフィックジェネレータ１００に恒久的に取り付けてもよいし、或いは現場で取り外し可能としてもよい。各ネットワークカード１２０は、一つ以上のポートを提供することができる。
【００１１】
バックプレーン１１０は、ネットワークカード１２０のバス又は通信媒体としての役割を果たすことができる。バックプレーン１１０は、ネットワークカード１２０に電力を供給することもできる。
【００１２】
ネットワークデバイス１５０は、ネットワーク１４０を通じた通信が可能な任意のデバイスにすることができる。ネットワークデバイス１５０は、ワークステーション、パーソナルコンピュータ、サーバ、ポータブルコンピュータ、携帯情報端末（ＰＤＡ）、コンピューティングタブレット等の計算デバイス、プリンタ、スキャナ、ファクシミリ機等の周辺デバイス、ネットワーク接続ストレージ（ＮＡＳ）及びストレージエリアネットワーク（ＳＡＮ）デバイスのようなディスクドライブを含むネットワーク対応ストレージデバイス、ルータ、リレー、ハブ、スイッチ、ブリッジ、及びマルチプレクサのようなネットワーキングデバイスとすることができる。さらに、ネットワークデバイス１５０は、冷蔵庫、洗濯機等の電気機器に加え、家庭用又は商業用のＨＶＡＣシステム、警報システム、及びネットワーク上での通信が可能な他の任意のデバイス又はシステムを含むことができる。
【００１３】
ネットワーク１４０は、ＬＡＮ、ＷＡＮ、ＳＡＮ、有線、無線、又はこれらの組み合わせを含むことが可能であり、インターネットを含むこと、或いはインターネットにすることができる。ネットワーク１４０上の通信は様々な形態を取ることが可能であり、これはフレーム、セル、データグラム、パケット、又はその他の情報単位を含み、ここではその全てをデータユニットと称する。トラフィックジェネレータ１００及びネットワークデバイス１５０は、同時に、相互に通信することが可能であり、トラフィックジェネレータ１００と一定のネットワークデバイス１５０との間には、複数の論理通信が存在できる。ネットワーク自体は、データが流通する多数の物理及び論理パスを提供する多数のノードを備えることができる。
【００１４】
特定のデータユニットタイプと特定の速度とを有し、ネットワーク上の単一のソースから発生するデータユニットの流れを、ここでは「ストリーム」と称する。ソースは、多数の送出及び着信ストリーム（outgoing and incoming streams）を同時に並行的にサポートすることが可能であり、例えば、多数のデータユニットタイプ又は速度に対応する。ソースは、例えば、ネットワークインタフェース上のポートとすることができる。「同時に（simultaneously）」とは、「正確に同じ時間に」を意味する。「並行的に（concurrently）」は、「同じ時間内に」を意味する。単一のストリームは、一つ以上の並行「セッション」を表すことができる。「セッション」とは、一つ以上のデータユニットのシーケンスを含む、固定された単一のソースと固定された単一の送信先との間での継続的な接続である。一つのストリーム内のセッションは、インタリーブを通じて、そのストリームのデータ速度を共有する。インタリーブは、表現するセッション間で平衡させたり、不平衡とさせたり、分散させたりすることができる。同一のストリームによって表現される二つ以上のセッションでは、ソースからのデータユニットを、同時にではなく、並行的に伝送することができる。
【００１５】
セッションは二つの固定された終点間でデータユニットを伝達するが、このセッションは、ネットワーク１４０内の多数のパスを含むことができる。ネットワーク１４０内においては、高いデータ転送速度、優れたエラー制御、優れたネットワーク稼働率、低いコスト等を可能にするために、セッションは、切断し、再構築することができる。このセッションは、一つ以上の中継デバイス間に、一つ以上の中継パス、チャネル、又はルートを含むことができる。この多数の中継パス、チャネル、又はルートは、ネットワーク１４０内で、互いに対して並列に又は直列に、及びその両者を用いて設定することができる。
【００１６】
次に図２を参照すると、本発明の一態様による装置のブロック図が示されている。この装置は、トラフィックジェネレータ１００（図１）、ネットワークカード１２０（図１）、或いはポートのようなトラフィックジェネレータ又はネットワークカード１２０（図１）の一つ以上の構成要素とすることができる。この装置は、制御ユニット２１０と、ブラスタユニット２４０と、受信エンジン２２０と、フロントエンド／発信エンジン２５０と、バス２３０と、制御ライン２６０とを含む。
【００１７】
バス２３０は、制御ユニット２１０と、受信エンジン２２０と、ブラスタユニット２４０と、フロントエンド／発信エンジン２５０と、バックプレーン１１０との間に通信パスを設ける。バス２３０は、制御及びステータス情報の他、データを通信するために使用することができる。通信パス２６０、２６５は、データの他、制御及びステータス情報を通信するために使用することができる。
【００１８】
制御ユニット２１０は、ポートプロセッサ２１２と、ＤＭＡエンジン２１４と、ポートメモリ２１６とを含む。
【００１９】
ポートプロセッサ２１２は、マイクロプロセッサ等のプログラマブルプロセッサとすることができる。ポートプロセッサ２１２は、装置の外部から、その装置が生成することになるトラフィックパターン等の制御命令を受領する。この制御命令は、ネットワークデバイスから、着信ストリーム２２２を介して受領することができる。あるいは、制御命令は、例えばバックプレーン１１０を経由し、バス２３０を介して装置に直接与えることができる。ポートプロセッサ２１２は、装置の外部制御用にアプリケーションプログラムインタフェース（ＡＰＩ）を有してもよい。ユーザは、ホスト上のソフトウェアプログラムを使用して、ポートプロセッサ２１２へ送信される制御命令を作成するコマンドを入力することができる。制御ユニット２１０は、制御命令の実行前、実行後、及び実行中に、その制御命令をポートメモリ２１６へ格納することができる。
【００２０】
ＤＭＡエンジン２１４は、要求メモリアクセス（demand memory access）を提供するインタフェースと制御ロジックとを備える。ＤＭＡエンジン２１４は、ポートプロセッサ２１２と、ポートメモリ２１６と、受信エンジン２２０と、バス２３０とに結合される。ポートプロセッサ２１２からの要求を受けて、ＤＭＡエンジン２１４は、ポートメモリ２１６からデータユニット及びデータをフェッチする。ＤＭＡエンジン２１４は、更に、ポートプロセッサ２１２からブラスタユニット２４０及びフロントエンド／発信エンジン２５０へのパスを提供する。
【００２１】
受信エンジン２２０は、ストリーム２２２等の着信データストリームを受信する。着信ストリーム２２２は、複数のセッションを表す場合がある。受信エンジン２２０は、ポートプロセッサ２１２によって提供され、又は制御されるフィルタに従って着信データユニットを処理することができる。着信データユニットを受信した後、受信エンジン２２０は、データユニットをＤＭＡエンジン２１４に渡し、ＤＭＡエンジン２１４は、このデータユニットをポートメモリ２１６に格納すること、或いはポートプロセッサ２１２に直接渡すことができる。受信エンジンは、バス２３０、又は通信ライン２６５、あるいはその両者を介して、ＤＭＡエンジン２１４と通信できる。着信データユニットは、受信エンジン２２０よって（例えば、フィルタ除去することで）又はＤＭＡエンジン２１４によって、廃棄することもできる。着信データユニットは、例えば、セッションをネゴシエートし、設定し、破棄し、又は制御するための、ネットワークデバイスからの制御データを含むことができる。着信データユニットは、ネットワークデバイスからのデータを含むこともできる。
【００２２】
フロントエンド／発信エンジン２５０は、送出データユニット（outgoing data unit）を一つ以上のストリーム２５２ａ、２５２ｂ、…、２５２ｎとして発信する。データストリーム２５２ａは、複数のセッション２５４を表すことができる。フロントエンド／発信エンジン２５０が発信するデータユニットは、制御ユニット２１０又はブラスタユニット２４０を起源とする場合がある。制御ユニット２１０は、ストリーム及びセッションをネゴシエートし、設定し、破棄し、又は制御するための制御データを生成する。フロントエンド／発信エンジン２５０は、制御情報及びデータユニットを受領するために、バス２３０と通信ライン２６５とに結合される。
【００２３】
ブラスタユニット２４０は、スケジューラ２４２と、バックグラウンドオーバレイエンジン２４４と、バックグラウンドメモリ２４６と、オーバレイメモリ２４８と、フロントエンド／発信エンジン２５０とを含む。スケジューラ２４２と、バックグラウンドオーバレイエンジン２４４と、バックグラウンドメモリ２４６とは協調して、データユニットを形成し、こうしたデータユニットをフロントエンド／発信エンジン２５０に渡す。
【００２４】
ブラスタユニット２４０はセッション構成情報を使用し、その情報は送出データユニットを形成しその発信タイミングをとるための命令を含む。ブラスタユニット２４０は、ポートプロセッサ２１２からセッション構成情報を受領することができる。セッション構成情報は、そのセッション構成情報がどのセッションに関するものかを特定するセッション識別子（ＩＤ）を含むことができる。セッション構成情報の構成要素は、まとめて、或いは別個に通信することができる。
【００２５】
セッション構成情報の少なくとも一部、テンプレート及びオーバレイは、ブラスタユニット２４０の二つのメモリ２４６、２４８に格納することができる。メモリ２４６、２４８は、セッションＩＤによって、セッション構成情報をインデックス化し、ソートし、或いは格納することができる。バックグラウンドメモリ２４６は、各送出ストリーム２５２のデータユニットに関するテンプレートを格納する。オーバレイメモリ２４８は、各送出セッション２５４に関するオーバレイを格納する。このテンプレートが送出データユニットになるものの基本的なレイアウトを与えるのに対し、オーバレイメモリ２４８は、そのセッションのデータユニットを生成するために、前記テンプレートをどのように修正又は完成させるかを指示する。
【００２６】
オーバレイメモリ２４８は、あるセッションに関する単なる特定のデータではなく、セッションパラメータを格納することができる。つまり、セッションパラメータは、特定のフィールド又はビットの値が所定の形式で変化してもよいことを示している。例えば、ＩＰアドレスは、特定の開始値と終了値との間で特定の量だけ増分させることができる。別の例として、セッションパラメータは、セッション毎に指定することができる。
【００２７】
オーバレイメモリ２４８及びバックグラウンドメモリ２４６は別個のユニットとして図示されているが、これらは、一体化させて単一のメモリにしてもよい。同様に、ポートメモリ２１６は、バックグラウンドメモリ２４６及びオーバレイメモリ２４８の一方又は両方と一体化させてもよい。
【００２８】
スケジューラ２４２は、ストリーム２５２ａ、２５２ｂ、２５２ｎといった、それぞれの送出ストリームに関する発信時間のスケジュールを管理する。スケジューラ２４２は、メトロノーム又は時計のように動作し、送出ストリームがそれぞれのデータ転送速度に合致した状態を確保する。所与のストリームに関して構成及び有効化されると、スケジューラ２４２は、その対応するストリームに関するデータユニットが発信される時に、次の発信信号をバックグラウンドオーバレイエンジン２４４に送る。代わりに、スケジューラ２４２は、バックグラウンドオーバレイエンジン２４４が送出データユニットを形成すべき時に、バックグラウンドオーバレイエンジン２４４に信号を送り、バックグラウンドオーバレイエンジン２４４は、形成されたデータユニットを、発信のために、フロントエンド／発信エンジン２５０に黙示的に（implicitly）渡す。スケジューラ２４２は、制御情報を受領するためにバス２３０に結合される。
【００２９】
バックグラウンドオーバレイエンジン２４４は、送出データユニットを形成する。バックグラウンドオーバレイエンジン２４４は、スケジューラ２４２と、バックグラウンドメモリ２４６と、オーバレイメモリ２４８と、フロントエンド／発信エンジン２５０とに結合される。バックグラウンドオーバレイエンジン２４４は、バックグラウンドメモリ２４６内のテンプレートと、オーバレイメモリ２４８内のオーバレイとを使用し、これらを組み合わせて送出データユニットを形成する。スケジューラ２４２により知らされると、バックグラウンドオーバレイエンジン２４４は、その知らされたストリームのセッションに関する形成済み送出データユニットをフロントエンド／発信ユニット２５０に渡す。サービスを提供可能なストリームのセッションは一度に一つのみであるため、バックグラウンドオーバレイエンジン２４４は、データユニットを発信するためにストリームから一つのセッションを選択する。バックグラウンドオーバレイエンジン２４４は、一つのストリームのセッション全体を順序付けることが可能であり、或いは、定式に従って次のセッションを選択することもできるし、他の方法によることもできる。
【００３０】
オーバレイメモリ２４８は、セッションステータステーブル２４５を含むことができる。セッションステータステーブル２４５は、セッションステータス情報を格納する。あるいは、セッションステータステーブル２４５は、バックグラウンドメモリ２４６等、異なるメモリに格納することができる。セッションステータス情報は、一つ以上のビットとすることが可能であり、例えば、直接的な、間接的な、圧縮した、又はコード化した形態で格納することができる。セッションＩＤは、対応するセッションに関するセッションステータス情報をセッションステータステーブル２４５から取得するのに使用することができる。
【００３１】
セッションステータス情報は、セッションが有効か無効かを示すことができる。特定のセッションが無効である場合、バックグラウンドオーバレイエンジン２４４は、指定されたセッション２５４に関するデータユニットの発信を許可しない。これは、スケジューラ２４２からの信号を無視することで達成される。特定のセッションが有効である場合、バックグラウンドオーバレイエンジン２４４は、スケジューラ２４２からの信号に反応し、指定されたセッション２５４に関するデータユニットを発信させる。バックグラウンドオーバレイエンジン２４４は、セッションステータステーブル２４５からセッションステータス情報を読み取ることができる。
【００３２】
セッションステータス情報は、ポートプロセッサ２１２を起源とすることができる。ポートプロセッサ２１２は、経時的に、セッションに関するセッションステータス情報を変更し、これによって、セッションを有効化及び無効化することができる。これにより、制御ユニット２１０は、ブラスタユニット２４０が任意の時点でどのセッションを発信しているかを制御することができる。
【００３３】
＝＝＝本発明の方法＝＝＝
セッションステータス情報の効果的な管理により、他の方法では少数のセッションに限定される装置において、更に多数のセッションに関するトラフィックの生成が可能になる場合がある。例えば、ブラスタユニット２４０が限定された数のセッションに対応可能で、ポートプロセッサ２１２が多数のセッションに対応可能である状況を考える。数万、又はこれを上回るほどのセッションに対応する可能性がある。これにより、単一のセッションを多重セッションに見せかけることができる。
【００３４】
制御ユニット２１０は、ブラスタユニット２４０に、セッション制御情報及びセッションステータス情報の初期セットを提供する。初期セッション制御情報及びセッションステータス情報は、バックプレーン１１０を起源としてもよく、ブラスタユニット２４０に直接与えてもよい。ストリームが開始された後、制御ユニット２１０は、これらのセッションの一部を無効化し、無効化したセッションに関する新しいセッション構成情報をロードし、これらのセッションを有効化することができる。これは、任意の時点において、ブラスタユニット２４０が最大セッション数までしか発信を行わないが、一定の期間中にトラフィックを生成するセッションの合計数が更に大きくなるような形で達成することができる。
【００３５】
次に図３を参照すると、本発明の方法のフローチャートが図示されている。この方法において、制御ユニット２１０は、ブラスタユニット２４０が最大セッション数までしかトラフィックを生成していないように見せる。ブラスタユニットの最大ストリーム数は、例えば、一ストリームを基準として、或いは全体を基準として、決定することができる。制御ユニット２１０は、ブラスタユニット２４０がどのセッションにサービスを提供しているかを追跡し、ブラスタユニット２４０がどのセッションにサービスを提供する必要があるかを追跡する。
【００３６】
便宜上、ここではセッションを、「オリジナル」セッション及び「置き換え（replacement）」セッションと呼ぶことにする。オリジナルセッションは、ストリームが最初に開始された時、そのストリームによって表されるものである。置き換えセッションは、オリジナルセッション又は他の置き換えセッションに置き換わるセッションである。
【００３７】
初期化ステップ（ステップ３１０）では、ブラスタユニット２４０がトラフィックを生成することになるオリジナルセッションのそれぞれに、セッションＩＤが割り当てられる。これは、ストリーム毎に、或いは全てのストリームに関して行うことができる。これは、制御ユニット２１０によって実行することができる。あるいは、そのストリームに関して、又は考えられる全てのセッションに関して、事前に定められたセッションＩＤが存在してもよい。制御ユニット２１０は、この時点で、ブラスタユニット２４０にセッションＩＤを提供することができるが、下で説明するように、制御ユニットは、セッション構成情報のロードと連動して、これを行うこともできる。
【００３８】
次のステップ３１５において、制御ユニット２１０は、ブラスタユニット２４０がデータユニットを発信させないようにする。これは、ストリーム毎に、或いは全てのストリームに関して行うことができる。制御ユニット２１０は、セッションステータス情報がオリジナルセッションを無効化する場合、オリジナルセッションに関して、セッションステータス情報をブラスタユニット２４０にロードすることで、これを行うことができる。例えば、各セッションに関するセッションステータステーブル２４５のレコードを、「無効」に設定することができる。「無効」のステータスは、バックグラウンドオーバレイエンジン２４４によるフレームの廃棄又はスケジューラ２４２からの信号を無視させることができる。このステップ３１５の目的は、制御ユニットがオリジナルセッションを構成する前に、ブラスタユニットがデータユニットを発信させるのを防止することである。
【００３９】
一のストリームを生成するについて多数のセッションが存在する可能性があるため、初期化中、制御ユニット２１０は、セッションのうち、どれをオリジナルセッションにするかを選択することができる。制御ユニットは、例えば、ホストからの命令に従って、置き換えセッションが他のセッションに置き換わる時期を決定することもできる。いつ置き換えを行うか、どのセッションを置き換えるか、どの置き換えセッションを使用するべきかの判断も、オンザフライで実行することができる。
【００４０】
ステップ３２０において、制御ユニット２１０は、オリジナルセッションをネゴシエートする。こうしたネゴシエーションと連動して、制御ユニット２１０は、そのオリジナルセッションに関するセッション構成情報を策定し、又は取得し、あるいは策定及び取得することができる。
【００４１】
ステップ３２５において、制御ユニット２１０は、オリジナルセッションに関するセッション構成情報をブラスタユニット２４０にロードする。このセッション構成情報により、ブラスタユニット２４０は、適切なデータユニットを形成できる。そのため、制御ユニット２１０は、次に、オリジナルセッションを有効化させ（ステップ３３０）、ブラスタユニットはオリジナルの物理セッションに関するデータユニットを発信する（ステップ３３５）。制御ユニット２１０は、セッションが有効であることを示すセッションステータス情報をブラスタユニット２４０にロードすることで、セッションを有効化してもよい。
【００４２】
その後のいずれかの時点で、制御ユニット２１０は、オリジナルセッションの一部を置き換えセッションに置き換える準備をすることになる。どのオリジナルセッションを置き換えるかを選択した後、制御ユニット２１０は、一つ以上のオリジナルセッションを無効化させることができる（ステップ３４０）。ステップ３１５と同様に、セッションを無効化することは、望ましくないデータユニットが発信されるのを防止する。
【００４３】
置き換えセッションは、置き換えが選択されたオリジナルセッションと同じセッションＩＤを有する。そのため、各置き換えセッションに関して、置き換えられることになるセッションが一つ存在する必要があり、両方のセッションは同じセッションＩＤを有することになる。置き換えセッションが一つのみである場合もあるが、ここでは複数の置き換えセッションに関して説明している。
【００４４】
制御ユニット２１０は、この時点で、置き換えセッションをネゴシエートすることもできる（ステップ３４５）。このステップ３４５は、ステップ３４０に先行すること、これと並行して実行すること、或いは、これに追従することが可能である。
【００４５】
置き換えセッションをネゴシエートした後、制御ユニット２１０は、置き換えセッションに関するセッション構成情報をブラスタユニット２４０にロードする（ステップ３５０）。この新しいセッション構成情報は、置き換えが選択されたオリジナルセッションのセッション構成情報に置き換わる。
【００４６】
次に、制御ユニット２１０は、置き換えセッションを有効化させる（ステップ３５５）。これを行うために、制御ユニットは、この置き換えセッションがブラスタユニット２４０からサービスを提供されるべきであることを示すセッションステータス情報を、ブラスタユニット２４０にロードすることができる。ブラスタユニット２４０は、その後、置き換えセッションに関するデータユニットを、置き換えられなかったオリジナルセッションと共に発信する。ステップ３４０乃至３５５を繰り返して、希望するセッションが全て生成されるようにすることができる。
【００４７】
いずれかの時点で、ストリームは、終了することになる（ステップ３６０）。これは、すべての有効化セッションが一定の経過をたどった時に発生させることができる。あるいは、制御ユニット２１０がそのストリームを終了させることとしてもよい。
【００４８】
実例を見るとわかりやすいであろう。制御ユニット２１０が一のストリーム内で五セッションを生成することを希望しているが、ブラスタユニット２４０がそのストリーム内で三セッションに限定されている装置について考える。図４Ａは、制御ユニット２１０に関するタイミング図を示しており、図４Ｂは、ブラスタユニット２４０に関するタイミング図を示している。制御ユニット２１０が発生させたい五セッションに関するセッション構成情報は、Ａ乃至Ｅとして特定されるものとする。更に、三セッションが、セッションＩＤ０乃至２を有するものとする。制御ユニット２１０は、最初に構成Ａ、Ｃ、及びＤに関してデータユニットを生成し、その後、Ｃ及びＤをＢ及びＥに置き換えることを判断したとする。
【００４９】
時間ｔ０において、ブラスタユニット２４０の全てのセッションは無効である。  
時間ｔ１において、制御ユニット２１０は、セッション０、１、及び２をネゴシエートし、構成Ａ、Ｃ、及びＤをバックグラウンドメモリ２４６とオーバレイメモリ２４８とにロードする。ロード中、セッションは無効化されたままである。  
その後の時間ｔ２において、制御ユニット２１０は、セッション０、１、及び２に関するセッションステータステーブルに、「有効」ステータスをロードする。そのため、ブラスタユニット２４０は、これらのセッションに関するデータユニットの発信を開始する。その後の時間ｔ３において、セッション０、１、及び２は、依然として有効である。  
時間ｔ４において、セッション１及び２を置き換えるために、制御ユニット２１０は、セッション１及び２を無効化するが、セッション０は有効状態を維持する。  
時間ｔ５までに、制御ユニット２１０は、構成Ｂ及びＥに関してセッションをネゴシエートし、時間ｔ５において、制御ユニット２１０は、構成Ｂ及びＥをバックグラウンドメモリ２４６とオーバレイメモリ２４８とにロードし、セッション１及び２の構成を置き換える。セッション構成情報は変化した可能性があるが、セッションＩＤは変化していない。  
その後の時間ｔ６において、セッション０は依然として有効であり、制御ユニット２１０は、セッション１及び２に関するセッションステータステーブルに、「有効」ステータスをロードする。そのため、ブラスタユニット２４０は、セッション１及び２に関するデータユニットを再び発信する。  
その後の時間ｔ７において、セッションは終了となる。
【００５０】
以上のように、ポートプロセッサ２１２は、指定されたセッションを有効化するかどうかを制御することができる。ポートプロセッサ２１２は、指定されたセッションを、何度でも、動的に有効化及び無効化することができる。ポートプロセッサ２１２は、このメカニズムを使用して、選択したセッションに対してデータユニットの発信を分配し、セッションのバランスを取り、セッションの開始及び終了を管理することができる。
【００５１】
以上、本発明の例示的な実施形態を図示及び説明してきたが、ここで説明したような本発明に対して本発明の趣旨から逸脱することなく多数の変更、変形、又は改変をなし得ることは、当業者には明らかであろう。したがって、こうした全ての変更、変形、及び改変は、本発明の範囲内として理解されるべきである。
【００５２】
本特許文書の開示の一部には、著作権保護の対象となる情報が含まれる。本特許文書では、その所有者のトレードドレスである事柄或いはトレードドレスになり得る事柄を図示及び／又は説明する場合がある。この著作権及びトレードドレス所有者は、該当官庁の特許ファイル又は特許記録として存在する限り、本特許開示のいずれかによる複製に異議を唱えるものではないが、それ以外の場合には、いかなるものであっても、あらゆる著作権及びトレードドレス権を留保する。
【図面の簡単な説明】
【００５３】
【図１】本発明による環境のブロック図である。
【図２】本発明の一態様による装置のブロック図である。
【図３】本発明の方法のフローチャートである。
【図４】図４Ａは本発明による装置の制御ユニットに関するタイミング図である。図４Ｂは本発明による装置のブラスタユニットに関するタイミング図である。
【符号の説明】
【００５４】
１００  通信デバイス
１１０  バックプレーン
１２０  ネットワークカード
１４０  ネットワーク
１５０  デバイス
２１２  プロセッサ
２１４  ＤＭＡエンジン
２１０  制御ユニット
２１６  プロセッサメモリ
２２０  受信エンジン
２２２  着信ストリーム
２２４，２５４  セッション
２４０  ブラスタユニット
２４６  バックグラウンドメモリ
２４８  オーバレイメモリ
２４５  セッションステータステーブル
２４２  スケジューラ
２４４  バックグラウンドオーバレイエンジン
２５０  フロントエンド／発信エンジン
２５２ａ，２５２ｂ，２５２ｎ  送出ストリーム
【図１】
2004272910.tif 000003
【図２】
2004272910.tif 000004
【図３】
2004272910.tif 000005
【図４】
2004272910.tif 000006