(57)【特許請求の範囲】
【請求項１】
パケット交換ネットワーク内のネットワークノードにおけるトラフィック管理のための方法であって、前記ネットワークノードは、パケットフローに属するパケットを出力するための少なくとも１つの出口ポートと、前記パケットフローの着信パケットを受信するための１つまたはいくつかの入口ポートとを備え、該方法は、前記パケットフローに属し、前記パケットフローに関連付けられるメモリキューに記憶された現在のパケットに関してトラフィックシェーピングを実行することを含み、前記トラフィックシェーピングは、
前記現在のパケットの理論受信時刻（ＴＲＴ）値が時刻カウンター値以下である場合には、前記出口ポートを通して前記現在のパケットを出力することを含み、
前記パケットの前記ＴＲＴ値は、
（ａ）前記現在のパケットの前に受信された前記パケットフローの先行するパケットがトラフィックポリシングによって破棄されていないときには、（ｉ）前記先行するパケットのサイズと、（ｉｉ）前記パケットフローに関連付けられる伝送速度値と、
（ｉｉｉ−１）前記先行するパケットのＴＲＴ値が前記先行するパケットの実受信時刻（ＡＲＴ）値より大きい場合には、前記先行するパケットの前記ＴＲＴ値と、
（ｉｉｉー２）前記先行するパケットのＴＲＴ値が前記先行するパケットのＡＲＴ値より大きくない場合には、前記先行するパケットの前記ＡＲＴ値と、を用いて、または、
（ｂ）前記先行するパケットがトラフィックポリシングによって破棄されたときには、前記先行するパケットの前記ＴＲＴ値を用いて、
前記パケットフローの着信パケットのトラフィックポリシングを実行することによって求められ、
前記時刻カウンター値は、前記トラフィックポリシングと前記トラフィックシェーピングを協調して動作させるための時刻基準として使用される
トラフィック管理のための方法。
【請求項２】
前記トラフィックポリシングは、前記パケットフローのサイズが該パケットフローに関連付けられる前記メモリキュー内の利用可能な空間を超える前記パケットフローに属する受信パケットを破棄することを含む、請求項１に記載のトラフィック管理のための方法。
【請求項３】
前記トラフィックポリシングは、トラフィックポリシングループの繰り返しにおいて実行され、該トラフィックポリシングループの繰り返しは、前記時刻カウンター値が少なくとも１時間単位だけインクリメントされたときに実行される、請求項１または２に記載のトラフィック管理のための方法。
【請求項４】
前記トラフィックシェーピングは、トラフィックシェーピングループの繰り返しにおいて実行され、該トラフィックシェーピングループの繰り返しは、前記時刻カウンター値が更新されたときに実行される、請求項１から３のいずれか１項に記載のトラフィック管理のための方法。
【請求項５】
前記トラフィックシェーピングは、トラフィックシェーピングループの繰り返しにおいて実行され、該トラフィックシェーピングループの繰り返しは、前記時刻カウンター値が少なくとも１時間単位だけインクリメントされたときに実行される、請求項４に記載のトラフィック管理のための方法。
【請求項６】
前記トラフィックシェーピングは、トラフィックシェーピングループの繰り返しにおいて実行され、該トラフィックシェーピングループの繰り返しは、前記時刻カウンター値が時間オフセットだけシフトしたときに実行される、請求項４に記載のトラフィック管理のための方法。
【請求項７】
前記先行するパケットの前記ＴＲＴ値
【数１】
0006756070.tif 000166
が前記先行するパケットの前記ＡＲＴ値
【数２】
0006756070.tif 000167
より大きいとき、前記パケットの前記ＴＲＴ値
【数３】
0006756070.tif 000168
は、
【数４】
0006756070.tif 000169
として求められ、ただし、
【数５】
0006756070.tif 000170
は、前記先行するパケットの前記ＴＲＴ値であり、
【数６】
0006756070.tif 000171
は、前記先行するパケットのサイズであり、Ｒｉは前記パケットフローに関連付けられる伝送速度値である、請求項１から６のいずれか１項に記載のトラフィック管理のための方法。
【請求項８】
前記先行するパケットの前記ＴＲＴ値
【数７】
0006756070.tif 000172
が前記先行するパケットの前記ＡＲＴ値
【数８】
0006756070.tif 000173
以下であるとき、前記パケットの前記ＴＲＴ値
【数９】
0006756070.tif 000174
は、
【数１０】
0006756070.tif 000175
として求められ、ただし、
【数１１】
0006756070.tif 000176
は、前記先行するパケットの前記ＡＲＴ値であり、
【数１２】
0006756070.tif 000177
は、前記先行するパケットのサイズであり、Ｒｉは、前記パケットフローに関連付けられる伝送速度値である、請求項１から７のいずれか１項に記載のトラフィック管理のための方法。
【請求項９】
前記先行するパケットがトラフィックポリシングによって破棄されたとき、前記パケットの前記ＴＲＴ値
【数１３】
0006756070.tif 000178
は、
【数１４】
0006756070.tif 000179
として求められ、ただし、
【数１５】
0006756070.tif 000180
は、前記先行するパケットの前記ＴＲＴ値である、請求項１から８のいずれか１項に記載のトラフィック管理のための方法。
【請求項１０】
前記先行するパケットの前記ＡＲＴ値は、前記１つまたはいくつかの入口ポートのうちの１つにおける前記先行するパケットの受信に対応する前記時刻カウンター値を用いて求められる、請求項１から９のいずれか１項に記載のトラフィック管理のための方法。
【請求項１１】
異なるフローに属するパケットが前記パケットフローにそれぞれ関連付けられるメモリキュー内にそれぞれのＴＲＴ値とともに記憶され、前記方法は、
前記メモリキュー内のそれぞれの最小のＴＲＴ値を有する先頭パケットの中から、前記現在のパケットを、該パケットのＴＲＴ値に従って選択することをさらに含む、請求項１から１０のいずれか１項に記載のトラフィック管理のための方法。
【請求項１２】
前記パケットは、前記メモリキューの先頭パケットのそれぞれのＴＲＴ値のうちの最小値である該パケットのＴＲＴ値に従って選択される、請求項１１に記載のトラフィック管理のための方法。
【請求項１３】
プロセッサと、該プロセッサに動作可能に結合されるメモリと、パケットフローに属するパケットを出力するための少なくとも１つの出口ポートと、前記パケットフローの着信パケットを受信するための１つまたはいくつかの入口ポートとを備えるパケット交換ネットワーク内のネットワークノードであって、該ネットワークノードは、請求項１から１２のいずれか１項に記載のトラフィック管理のための方法を実行するように構成される、ネットワークノード。
【請求項１４】
実行されるときに、メモリと動作可能に結合されるプロセッサを備えるネットワークノードに、請求項１から１２のいずれか１項に記載のトラフィック管理のための方法を実行させる実行可能命令を符号化された、非一時的コンピューター可読媒体。
【請求項１５】
コンピューター可読媒体において有形に具現されるコンピュータープログラムコードを含むプログラムであって、前記コンピュータープログラムコードは、コンピューターシステムに与えられて実行されるときに、コンピューターに、請求項１から１２のいずれか１項に記載のトラフィック管理のための方法を実行させる命令を含む、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、パケット交換ネットワークノードにおけるパケットフロー処理の分野に関し、詳細には、イーサネットベースネットワーク内のネットワークノードにおけるイーサネットフレーム処理に関する。
【背景技術】
【０００２】
パケット交換ネットワーク、詳細にはイーサネット（登録商標）は、データ通信以外の分野において次第に使用されているようになっている。
【０００３】
詳細には、いくつかの産業用ネットワークが、イーサネットのカスタム化されたバージョン、またはイーサネットから派生したプロトコルのカスタム化されたバージョンを使用することが知られている。さらに、国際プロフィバスおよびプロフィネット協会（ＰＩ）によって「プロフィバス」および「プロフィネット」として発行される産業用ネットワーク仕様は、自動化アプリケーションのために産業用ネットワークにおいてイーサネットベース技術を使用する可能性を提供する。
【０００４】
これらの技術によって導入される発展は主に、これらのネットワークの回復力の改善、すなわち、データ伝送速度に影響を及ぼすことなく、単一の障害から保護することに焦点を合わせる。国際電気標準会議（International Electrotechnical Commission）によってＩＥＣ６２４３９−３第５節として標準化された高可用シームレス冗長性（ＨＳＲ：High-availability Seamless Redundancy）、ＩＥＣによってＩＥＣ６２４３９−３第４節として標準化されたパラレル冗長プロトコル（ＰＲＰ：Parallel Redundancy Protocol）、ＩＥＣによってＩＥＣ６２４３９−２として標準化されたメディア冗長プロトコル（ＭＲＰ： Media Redundancy Protocol）等の標準規格が、イーサネットベース産業用ネットワークにおいて使用できるように開発されてきた。
【０００５】
しかしながら、産業用ネットワークは、データ伝送の厳密な時間特性の強制等の、標準的なイーサネットを用いて実施することができない特定の制約を有する。詳細には、厳しく制限された待ち時間および／またはジッタ、並びに厳密に損失のない移送を要求する制御／コマンドメッセージの伝送は、現在利用可能なイーサネット仕様において適切に対処されない。
【０００６】
これらの特性は、ネットワークリソースが申し込み超過にならないのを確実にするためのネットワークリソース（バッファおよび帯域幅）予約方式、予約されたリソースに従ってトラフィックが送出されるのを確実にするためのトラフィックシェーピングおよびスケジューリング機構、並びにリソース予約／トラフィックシェーピングの均衡を乱す、障害のある、または動作不良のトラフィックソースが存在しないのを確実にするためのトラフィックポリシング方式を適用することによって、強制することができる。
異なる事業者のネットワークをリンクするネットワークインターフェース等の特定のネットワークインターフェースにおいてトラフィック契約を強制するために、電気通信ネットワークにおいてトラフィックポリシング技法が実施されてきた。トラフィック契約（関連技術分野において、「サービス水準合意」またはＳＬＡ（Service Level Agreement）とも呼ばれる）は通常、サービスネットワークを介して２つの終端間で移送されることになる１つまたは複数のデータフローに適用可能なトラフィックパラメーターの組を含む。ネットワークによって提供されるサービスは、例えば、中央コントローラーによる自動販売機の制御、一定の伝送速度におけるビデオデータの転送等に関連する場合がある。トラフィック契約は、一般に、発信元と宛先との間でネットワークを通して搬送される任意のデータフローに関して、ネットワークを通してのデータフローの移送に関連する要件の組（例えば、伝送速度、伝送時間、ジッタ、パケットサイズ等）として規定することができる。契約に従ってネットワークを介してフローに関連付けられるデータを移送するには、契約において規定される要件の履行が必要となる。これらの要件は一般に、データ通信ネットワークによって提供されるサービスのタイプによって規定されることになる。
ネットワークの可変長パケットの流れをトラフィック契約と整合させるトラフィックポリシング方法が記載された従来技術がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第６７２４７２６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
イーサネットが関係する限り、「仮想ブリッジローカルエリアネットワーク（Virtual Bridged Local Area Networks）」と題するローカルおよびメトロポリタンエリアネットワーク８０２．１Ｑ−２００５に関するＩＥＥＥ標準規格が、第８．６．５節（「フロー分類およびメータリング」）および第８．６．７節（キュー管理）においてフレームメータリングフレームワークを含む。しかしながら、このフレームワークは、いかなる特定のメータリングアルゴリズムも規定せず、単に、メトロイーサネットフォーラム技術仕様書ＭＥＦ１０において記述されるメータリングアルゴリズムおよびＩＥＴＦ  ＲＦＣ２３０９において規定されるキュー管理アルゴリズム（ランダム早期検出（ＲＥＤ：Random Early Detection）アルゴリズムおよび重み付けランダム早期検出（ＷＲＥＤ：Weighted Random Early Detection）アルゴリズム）を参照する。
【０００９】
フレームのＳ−ＶＬＡＮタグおよびＣ−ＶＬＡＮタグ内のＤＥＩ（ドロップ適格指示：Drop Eligibility Indication）によって指示される「ドロップ適格」パラメーターを設定および使用するためのフレームワークを設けるために、ＩＥＥＥ８０２．１Ｑ標準規格においてフレームメータリングが導入された。
【００１０】
この標準仕様書は、メトロイーサネットフォーラム（ＭＥＦ）がいわゆる帯域幅プロファイルを規定したメトロポリタンイーサネットネットワークの相互接続等の、異なるターゲットマーケットへの実現の融通性および適応性を持たせるために最小限に抑えられた。
【００１１】
ＩＥＥＥ８０２．１Ｑ−２００５標準規格第８．６．５節は、オプションのイングレスメーターの使用を規定し、その役割は、フレームに関連付けられるドロップ適格パラメーターを設定することである。所与のメーターによって取り扱われる全てのフレームは、同じ受信ポートから着信し、異なるメーターを適用するために、宛先アドレス（ＤＡ）、発信元アドレス（ＳＡ）ＶＬＡＮ識別子（ＶＩＤ）および優先順位を含むパラメーターの任意の組み合わせに基づいて、フレームの分類が可能である。メータリングは、ブリッジキュー前、かつ全てのフィルタリング機能（アクティブトポロジ強制、入口ＶＩＤ、フィルタリングデータベース（ＦＤＢ）および出口ＶＩＤ）後に適用される。メータリングアルゴリズムは規定されないが、ＭＥＦアルゴリズムが参照される。常に破棄されるフレームに予約された第３のカラー（赤）で拡張された、ＤＥＩビットを使用することによって、２カラー（緑および黄）方式が可能になる。
【００１２】
キュー管理に関して、ＩＥＥＥ８０２．１Ｑ−２００５標準規格第８．６．７節は、フレームによって搬送されるカラー指示を利用する方法を大まかに規定し、ドロップ適格フレームは、非ドロップ適格フレームより破棄される確率が高い場合がある。実施者は、異なるカラー閾値、ランダム早期検出または重み付けランダム早期検出をとともに、例えば、テイルドロップ等のキュー管理方式を自由に選択することができる。
【００１３】
２０１３年１０月付けの「Ethernet Services Attributes Phase 3」と題するメトロイーサネットフォーラム（ＭＥＦ）技術仕様書ＭＥＦ１０．３は、フレーム「カラーリング」方式に基づく、「帯域幅プロファイル」と呼ばれるポリシングアルゴリズムを含む。
【００１４】
ＭＥＦ方式によれば、サービスフレームのカラーは、先行するフレームの到着時刻の履歴に対する、メーターにおけるサービスフレームの到着時刻によって決定される属性である。この点において、カラーは、その優先順位とは異なり、サービスフレームに添付され、その内容によって決定されるサービスフレームの属性である。
【００１５】
しかしながら、ＭＥＦ技術仕様書は、着信するサービスフレームのためのサービス契約への順守または非順守を検証するためのトラフィックメータリングアルゴリズムしか提供しない。その仕様書は、トラフィックポリシングアルゴリズムまたはトラフィックシェーピングアルゴリズムを規定しないので、その結果、産業用ネットワークにおいて使用する状況において特に、データ伝送の厳密な時間特性およびデータ損失特性への順守を確実にするための有効性が制限される。別の言い方をすると、ＭＥＦ技術仕様書は、サービス契約において規定される要件への順守を確実にするための手段を十分に提供しない場合がある。
【００１６】
それゆえ、当該技術分野における従来技術の上記の欠点および短所に対処する、改善されたデータトラフィック管理方式、およびそれを実施するネットワークノードを提供することが必要とされている。
【００１７】
本主題開示の目的は、改善されたデータトラフィック管理方式と、それを実施するネットワークノードとを提供することである。
【００１８】
本主題開示の別の目的は、従来のデータトラフィック制御方式の上記の欠点および短所を軽減するための、改善されたトラフィック管理方式と、それを実施するネットワークノードとを提供することである。
【００１９】
本主題開示のさらに別の目的は、ネットワーク内のデータの移送に関してトラフィックプロファイル要件への順守を確実にするための、改善されたトラフィック管理方式と、それを実施するネットワークノードとを提供することである。
【課題を解決するための手段】
【００２０】
これらの目的および他の利点を達成するために、本明細書において具現され、大まかに説明されるような、本主題開示の目的によれば、本主題開示の１つの態様において、パケット交換ネットワーク内のネットワークノードにおけるトラフィック管理のための方法が提案され、そのネットワークノードは、パケットフローに属するパケットを出力するための少なくとも１つの出口ポートと、パケットフローの着信するパケットを受信するための１つまたは複数の入口ポートとを備える。本方法は、パケットフローに属し、パケットフローに関連付けられるメモリキュー内に記憶される現在のパケットに関するトラフィックシェーピングを実行することを含み、トラフィックシェーピングは、現在のパケットの理論受信時刻（ＴＲＴ）値が時刻カウンター値以下である場合には、出口ポートを通して、現在のパケットを出力することを含む。提案される方法によれば、パケットのＴＲＴ値は、現在のパケットの前に受信されたパケットフローの先行するパケットがトラフィックポリシングによって破棄されていないとき、先行するパケットのサイズと、フローに関連付けられる伝送速度値と、先行するパケットのＴＲＴ値が先行するパケットの実受信時刻（ＡＲＴ）値より大きい場合には、先行するパケットのＴＲＴ値と、そうでない場合には、先行するパケットのＡＲＴ値とを用いて、または先行するパケットがトラフィックポリシングによって破棄されたとき、先行するパケットのＴＲＴ値を用いて、パケットフローの着信パケットのトラフィックポリシングを実行することによって求められる。
【００２１】
時間および損失の影響を受けやすい制御フローおよびコマンドフローを移送するネットワークの場合、メッセージが安全に（いかなる損失も受けることなく）、かつ適時に（保証された帯域幅および最小のジッタで）送信されるのを保証するために、有利には、入口トラフィックポリシングおよび出口トラフィックシェーピングの両方を適用することができる。さらに、入口ポリシングは、ネットワークノードの誤動作、すなわち、フレームの繰り返し（キューイングエラー）、過剰な伝送速度（シェーピングエラー）、より長いフレーム（タギング／パディングエラー）、誤った伝送キューにおける転送（切替エラー）、過剰なブリッジ／スイッチ遅延（ハードウェア／ソフトウェア不履行）、「バブリング」ノード（欠陥のあるソースまたはスイッチ）に対処し、これらの誤動作を軽減できるようにする。
【００２２】
提案される方法は、有利には、トラフィックポリシング方式によって求められたＴＲＴ値をトラフィックシェーピングステージにおいて使用することを通して、互いに協調するトラフィックシェーピング方式およびトラフィックポリシング方式を提供する。したがって、提案される方法は、トラフィックシェーピングおよびトラフィックポリシングの協調動作を提供する。
【００２３】
１つまたは複数の実施の形態において、提案される方法は、トラフィックポリシングが、パケットフローのサイズがこのパケットフローに関連付けられるメモリキュー内の利用可能な空間を超えるパケットフローに属する受信パケットを破棄することを含むことをさらに提供することができる。
【００２４】
提案される方法の１つまたは複数の実施の形態において、トラフィックポリシングは、トラフィックポリシングループの繰り返し時に実行され、トラフィックポリシングループの繰り返しは、時刻カウンター値が少なくとも１時間単位だけインクリメントされたときに実行される。
【００２５】
さらに、トラフィックシェーピングもトラフィックシェーピングループの繰り返し時に実行される場合があり、トラフィックシェーピングループの繰り返しは、時刻カウンター値が更新されたときに実行される。１つまたは複数の実施の形態において、そのような更新は、時刻カウンターをインクリメントすることを含むことができ、トラフィックシェーピングループの繰り返しは、時刻カウンター値が少なくとも１時間単位だけインクリメントされたときに実行することができる。他の実施の形態において、そのような更新は、トラフィックシェーピングループの次の繰り返しのためのオフセットだけ、トラフィックシェーピングのために使用される時刻カウンター値をシフトすることを含むことができ、トラフィックシェーピングループの繰り返しは、時刻カウンター値が時間オフセットだけシフトされたときに実行することができる。
【００２６】
トラフィックポリシングおよび／またはトラフィックシェーピングを上述した時刻カウンターによってドライブされるループとして動作させることにより、有利には、例えば、同じ時刻カウンターを通して、または同じ時刻基準に基づくが、（トラフィックシェーピング時刻カウンターとトラフィックポリシング時刻カウンターとの間で）ある時間オフセットだけシフトされたそれぞれの時刻カウンターを通して、トラフィックポリシングおよびトラフィックシェーピングのために単一の時刻基準が使用される。トラフィックポリシング方式は通常、入口ポートにおいて実行され、トラフィックシェーピング方式は通常、出口ポートにおいて実行されるので、これは、入口ポートおよび出口ポートの両方において同じ時刻基準を使用する機会を生み出す。この共通の時刻基準は、有利には、一ネットワークノードのレベルにおける全てのポートによってだけでなく、パケット交換ネットワーク内の複数のネットワークノードによっても使用されるように設計することもできる。
【００２７】
トラフィックシェーピングおよびトラフィックポリシングのためのこの共通パラメーターの使用は、それらの機構の実施態様の複雑さも低減し、このことはそれらの機構を実施するネットワークノードを設計する場合に有益である。
【００２８】
提案される方法の１つまたは複数の実施の形態において、先行するパケットのＴＲＴ値
【数１】
0006756070.tif 000002
が、先行するパケットのＡＲＴ値
【数２】
0006756070.tif 000003
より大きいとき、パケットのＴＲＴ値
【数３】
0006756070.tif 000004
は以下のように求めることができる。
【数４】
0006756070.tif 000005
ただし、
【数５】
0006756070.tif 000006
は、先行するパケットのＴＲＴ値であり、
【数６】
0006756070.tif 000007
は先行するパケットのサイズであり、Ｒｉはフローに関連付けられる伝送速度値である。そうではなく、先行するパケットのＴＲＴ値
【数７】
0006756070.tif 000008
が、先行するパケットのＡＲＴ値
【数８】
0006756070.tif 000009
以下であるとき、パケットのＴＲＴ値
【数９】
0006756070.tif 000010
は以下のように求めることができる。
【数１０】
0006756070.tif 000011
ただし、
【数１１】
0006756070.tif 000012
は、先行するパケットのＡＲＴ値であり、
【数１２】
0006756070.tif 000013
は先行するパケットのサイズであり、Ｒｉはフローに関連付けられる伝送速度値である。さらに、先行するパケットがトラフィックポリシングによって破棄されたとき、パケットのＴＲＴ値
【数１３】
0006756070.tif 000014
は、
【数１４】
0006756070.tif 000015
として求めることができる。ただし、
【数１５】
0006756070.tif 000016
は先行するパケットのＴＲＴ値である。
【００２９】
提案される方法の１つまたは複数の実施の形態において、先行するパケットのＡＲＴ値は、１つまたはいくつかの入口ポートのうちの１つにおける先行するパケットの受信に対応する時刻カウンターの値を用いて求められる。
【００３０】
提案される方法の１つまたは複数の実施の形態において、異なるフローに属するパケットは、フローにそれぞれ関連付けられるメモリキュー内にそれぞれのＴＲＴ値とともに記憶され、本方法はさらに、メモリキュー内のそれぞれの最小のＴＲＴ値を有する先頭パケットの中から、現在のパケットを、そのパケットのＴＲＴ値に従って選択することを含む。有利には、パケットは、メモリキューの先頭パケットのそれぞれのＴＲＴ値のうちの最小値であるパケットのＴＲＴ値に従って選択することができる。
【００３１】
提案される解決策の実施の形態は、有利には、単一の時刻基準と、理論的なフローごとのスケジュールとに基づいて、キューを切り替えることを通して多重化することができる、時間および損失の影響を受けやすいフローの統合ポリシングおよびスケジューリングを提供する。ポリシング機能によって強制されるフロージッタまたはバースト耐性は、出口ポート内のフローキューのために予約された利用可能なバッファの量に直接結び付けられる。
【００３２】
別の態様によれば、パケット交換ネットワーク内のネットワークノードが提案され、このネットワークノードは、プロセッサと、プロセッサに動作可能に結合されるメモリと、パケットフローに属するパケットを出力するための少なくとも１つの出口ポートと、パケットフローの着信するパケットを受信するための１つまたはいくつかの入口ポートとを備え、ネットワークノードは、本主題開示の提案された方法に従ってトラフィック管理のための方法を実行するように構成される。
【００３３】
さらに別の態様では、実行されるときに、メモリと動作可能に結合されるプロセッサを備えるネットワークノードに、本主題開示の提案された方法によるトラフィック管理のための方法を実行させる実行可能命令を符号化された非一時的コンピューター可読媒体が提案される。
【００３４】
さらに別の態様によれば、コンピューター可読媒体内に有形に具現されるコンピュータープログラムコードを含むコンピュータープログラム製品が提案され、上記コンピュータープログラムコードは、コンピューターシステムに与えられて実行されるときに、上記コンピューターに、本主題開示の提案される方法によるトラフィック管理のための方法を実行させる命令と、例えば、圧縮または符号化を通して、コンピュータープログラムを表現するデータセットとを含む。
【００３５】
本発明は、限定はしないが、プロセス、装置、システム、デバイスとして、また、現時点で既知であるアプリケーションおよび後に開発されるアプリケーションのための方法として含む、数多くの方法において実施し、利用できることは理解されたい。本明細書において開示されるシステムのこれらの、および他の特有の特徴は、以下の説明および添付の図面から、より容易に明らかになるであろう。
【図面の簡単な説明】
【００３６】
【図１】１つまたは複数の実施の形態による、例示的な産業用ネットワークを示す概略図である。
【図２】１つまたは複数の実施の形態による、ネットワークノードの例示的な機能を示すブロック図である。
【図３】１つまたは複数の実施の形態による、ネットワークノードの出口ポートの例示的な機能を示すブロック図である。
【図４】１つまたは複数の実施の形態による、例示的なトラフィックポリシングプロセスを示すフローチャートである。
【図５】１つまたは複数の実施の形態による、例示的なトラフィックシェーピングプロセスを示すフローチャートである。
【図６】１つまたは複数の実施の形態による、例示的なトラフィックシェーピングプロセスを示すフローチャートである。
【図７ａ】１つまたは複数の実施の形態による、ネットワークノードにおける受信動作および送信動作を示す図である。
【図７ｂ】１つまたは複数の実施の形態による、ネットワークノードにおける受信動作および送信動作を示す図である。
【発明を実施するための形態】
【００３７】
簡潔および明確に例示するために、図面は構成の一般的な方法を示し、周知の機構および技法の説明および細部は、本発明の説明される実施の形態の検討を無用に分かりにくくするのを避けるために省略される場合がある。さらに、図面内の要素は必ずしも縮尺どおりに描かれていない。例えば、図面内の要素のうちのいくつかの要素の寸法は、本発明の実施の形態を理解しやすくするのを助けるために、他の要素に対して誇張される場合がある。現実世界の条件下であれば極めて対称性が低く、秩序正しくない可能性がある、直線、鋭い角度および／または平行な平面等を有する構造が示されるときのように、ある特定の図は、理解するのを助けるために理想的に示される場合がある。異なる図における同じ参照符号は同じ要素を表し、一方、類似の参照符号は、類似の要素を表す場合があるが、必ずしもそうとは限らない。
【００３８】
さらに、本明細書における教示は、多種多様の形態において具現できること、および本明細書において開示される任意の具体的な構造および／または機能は典型にすぎないことは明らかにすべきである。詳細には、本明細書において開示される態様を、任意の他の態様から独立して実施できること、およびいくつかの態様を種々の方法で組み合わせることができることは当業者には理解されよう。
【００３９】
本開示は、１つまたは複数の例示的な実施の形態による、方法、システムおよびコンピュータープログラムの機能、エンジン、ブロック図およびフローチャートを参照しながら以下に説明される。ブロック図およびフローチャートの説明される各機能、エンジン、ブロックは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコードまたは任意の適切なその組み合わせにおいて実現することができる。ソフトウェアにおいて実施される場合には、ブロック図および／またはフローチャートの機能、エンジン、ブロックは、コンピュータープログラム命令またはソフトウェアコードによって実施することができ、コンピュータープログラム命令またはソフトウェアコードは、コンピューター可読媒体に記憶されるか、またはコンピューター可読媒体を介して送信されるか、または汎用コンピューター、専用コンピューター若しくは機械を作り出す他のプログラマブルデータ処理装置上にロードすることができ、それにより、コンピューターまたは他のプログラマブルデータ処理装置上で実行されるコンピュータープログラム命令またはソフトウェアコードが、本明細書において説明される機能を実施するための手段を生み出す。
【００４０】
コンピューター可読媒体の実施の形態は、限定はしないが、１つの場所から別の場所へのコンピュータープログラムの転送を容易にする任意の媒体を含む、コンピューター記憶媒体および通信媒体の両方を含む。本明細書において使用されるときに、「コンピューター記憶媒体」は、コンピューターまたはプロセッサによってアクセスすることができる任意の物理的な媒体とすることができる。さらに、「メモリ」および「コンピューター記憶媒体」という用語は、限定はしないが、ハードドライブ、フラッシュドライブ若しくは他のフラッシュメモリデバイス（例えば、メモリキー、メモリスティック、キードライブ）、ＣＤ−ＲＯＭ若しくは他の光記憶装置、ＤＶＤ、磁気ディスク記憶装置若しくは他の磁気記憶デバイス、メモリチップ（複数の場合もある）、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、電気的消去可能プログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）、スマートカード、若しくはコンピュータープロセッサによって読み出すことができる命令若しくはデータ構造の形でプログラムコードを搬送または記憶するために使用することができる任意の他の適切な媒体、またはその組み合わせ等の、任意のタイプのデータ記憶デバイスを含む。また、種々の形のコンピューター可読媒体は、ルーター、ゲートウェイ、サーバーまたは他の伝送デバイスを含むコンピューターに、有線（同軸ケーブル、ファイバー、ツイストペア線、ＤＳＬケーブル）で、または無線（赤外線、電波、セルラー、マイクロ波）で、命令を送信または搬送することができる。命令は、限定はしないが、アセンブリ、Ｃ、Ｃ＋＋、ビジュアルベーシック、ＳＱＬ、ＰＨＰおよびＪＡＶＡ（登録商標）を含む、任意のコンピュータープログラミング言語からのコードを含むことができる。
【００４１】
具体的に他に明示されない限り、以下の説明を通して、処理、コンピューティング、計算、決定等の用語を利用する検討は、コンピューティングシステムのレジスタまたはメモリ内の電子的な量等の物理的な量として表されるデータを操作するか、または、このデータを、コンピューティングシステムのメモリ、レジスタ若しくは他のそのような情報記憶装置、伝送デバイス若しくは表示デバイス内の物理的な量として同様に表される他のデータに変換する、コンピューター、またはコンピューティングシステム、または類似の電子コンピューティングデバイスの動作またはプロセスを指していることは理解されよう。
【００４２】
「備える」、「含む」、「有する」および任意のその変形のような用語は、非排他的包含を含むことを意図しており、それにより、要素のリストを含むプロセス、方法、物品または装置は、必ずしもそれらの要素には限定されず、そのようなプロセス、方法、物品または装置に明記されないか、または固有でない他の要素を含む場合がある。
【００４３】
さらに、「例示的な」という言葉は、本明細書において、「一例、事例または例示としての役割を果たすこと」を意味するように使用される。「例示的」として本明細書において説明される任意の実施の形態または設計は、必ずしも、他の実施の形態または設計より好ましいか、または有利であると解釈されるべきではない。
【００４４】
以下の説明および特許請求の範囲において、「結合される」および「接続される」という用語が、その派生語とともに使用される場合がある。特定の実施の形態において、「接続される」は、２つ以上の要素が互いに直接、物理的にまたは電気的に接触していることを示すために使用される場合がある。「結合される」は、２つ以上の要素が直接、物理的にまたは電気的に接触していることを意味する場合がある。しかしながら、「結合される」は、２つの要素が互いに直接、接触してはいないが、依然として互いに協働するか、または相互に作用することを意味する場合もある。
【００４５】
本明細書において使用されるときに、パケットという用語は、ノード間若しくは局間、またはネットワークにわたってルーティングされるか、または伝送される場合があるデータの単位を含む場合がある。本明細書において使用されるとき、パケットという用語は、フレーム、プロトコルデータユニットまたは他のデータの単位を含む場合がある。パケットは、ビット群を含む場合があり、ビット群は、例えば、１つまたは複数のアドレスフィールド、制御フィールドおよびデータを含む場合がある。データブロックは、データまたは情報ビットの任意の単位とすることができる。
【００４６】
本主題開示の実施の形態は種々の適用例において使用される場合があることは理解されたい。本発明はこの点において制限されないが、本明細書において開示されるトラフィック管理のための方法は、例えば、イーサネットスイッチ、イーサネットブリッジまたはイーサネットルータ等の、パケット交換ネットワークの任意のネットワークノードにあるような数多くの装置において使用される場合がある。明確にするために、以下の説明は、イーサネットネットワークに焦点を合わせる。しかしながら、本発明の技術的特徴はそれには限定されない。
【００４７】
図１は、１０Ｍｂｐｓ、１００Ｍｂｐｓ、１Ｇｂｐｓまたは１０Ｇｂｐｓイーサネットインターフェース等の標準的なイーサネットインターフェースを用いて、それぞれのイーサネットユーザ−ネットワークインターフェース（ＵＮＩ）１４ａ〜１４ｃを通してカスタマー機器（ＣＥ）デバイス１３ａ〜１３ｃがアタッチするイーサネットサービスプロバイダーネットワーク１２を備える例示的なイーサネットベース産業用ネットワーク１０を示す。本主題開示の実施の形態が使用される場合がある複数のネットワークノード１１ａ〜１１ｃを含むイーサネットサービスプロバイダーネットワーク１２によって、ＣＥデバイス１３ａ〜１３ｃにイーサネットサービスが提供される。
【００４８】
ネットワークノード１１ａ〜１１ｃは、イーサネットプロバイダーエッジスイッチとして構成することができ、ネットワーク接続１５ａ〜１５ｃを用いてリングトポロジー内で互いに接続することができる。イーサネットサービスプロバイダーネットワークは、例えば、イーサネットメトロポリタンエリアネットワーク（ＭＡＮ）またはイーサネットワイドエリアネットワーク（ＷＡＮ）とすることができ、例えば、スイッチまたはブリッジ等の任意の他のネットワークノード（図示せず）を含むことができる。
【００４９】
ネットワーク１２のためのリングトポロジーの代わりに、例えば、ツリートポロジーまたはメッシュトポロジー等の任意の適切なネットワークトポロジーを使用することができ、リングトポロジーは一例としてのみ与えられることは関連技術分野の当業者には理解されよう。
【００５０】
１つまたは複数の実施の形態において、ネットワーク１２は、それぞれのサービス品質（ＱｏＳ）レベルを加入者に、または産業用ネットワークとの関連ではアプリケーション（例えば、自動化制御、ビデオ転送、ソフトウェア更新／アップグレード等）に与えるように動作することができ、ＱｏＳレベルはパケット損失特性および伝送時間特性を含む。加入者／アプリケーションの観点から、ネットワーク１２によって提供されるＱｏＳレベルは結果として、いわゆる「帯域幅プロファイル」に変換することができ、帯域幅プロファイルはＱｏＳパラメーターおよび／またはトラフィックパラメーター（例えば、最大移送遅延、最大遅延変動（ジッタ）等）を規定する。
【００５１】
本明細書において使用されるとき、パケットフローまたはフローという用語は、例えば、アドレス、発信元および／または宛先、回線識別子、識別子、移送プロトコルのタイプ、ＶＬＡＮ、ＶＩＤ、アドレスの対（例えば、ＳＡおよびＤＡ）、またはその組み合わせ等の、１つまたはいくつかの共通のパラメーターを共有するパケットの組を含むことができる。
【００５２】
帯域幅プロファイルは、ネットワークによってサービス提供されるフローごとに、またはネットワークによってサービス提供されるフローの群ごとに与えることができる。
【００５３】
本主題開示の実施の形態によれば、エッジネットワークノード１１ａ〜１１ｃのうちの１つは、帯域幅プロファイルを強制するためのトラフィック管理機能を実施する。
【００５４】
図２は、本主題開示の実施の形態による、トラフィック管理機構を使用するように構成される例示的なネットワークノード２０を示す。
【００５５】
ネットワークノード２０は、制御エンジン２１と、スイッチエンジン２５と、多重化エンジン２６と、トラフィックポリシングエンジン２７と、トラフィックシェーピングエンジン２８と、複数のポート２２ａ〜２２ｄと、時刻基準エンジン２９と、メモリ２３とを備える。
【００５６】
図２に示されるアーキテクチャにおいて、スイッチエンジン２５、多重化エンジン２６、トラフィックポリシングエンジン２７、トラフィックシェーピングエンジン２８、複数のポート２２ａ〜２２ｄ、時刻基準エンジン２９、およびメモリ２３は全て、制御エンジン２１を通して互いに動作可能に結合される。
【００５７】
１つの実施の形態では、ポート２２ａ〜２２ｄはそれぞれ、イーサネットリンクに結合されるように、イーサネットインターフェースを含み、パケットを送信および受信することができる。さらに、「出口」ポートと呼ばれる、ポートのうちの１つ２２ａは、発信パケットを送信するために構成することができ、一方、「入口」ポートと呼ばれる、複数の他のポート２２ｂ、２２ｃ、２２ｄは、着信パケットを受信するために構成することができる。
【００５８】
１つの実施の形態では、スイッチエンジン２５は、１つまたは複数の入口ポートにおいて受信されたパケットを、出力するために出口ポートのうちの１つに向けるように処理する。詳細には、スイッチエンジンは、各受信パケットが属するパケットフローを識別し、受信パケットを、パケットフロー識別子に割り振られた出口ポートに向けるように構成することができる。
【００５９】
１つの実施の形態では、それぞれの入口ポートにおいて異なるパケットフロー（例えば、異なる識別子を有するパケットフロー）が受信される場合があり、同じ出口ポートを通して出力されるように、多重化エンジン２６によって多重化することができる。
【００６０】
トラフィックポリシングエンジン２７は、以下に説明されるように、パケット受信時に動作するトラフィックポリシング機能を提供する。トラフィックシェーピングエンジン２８は、以下に説明されるように、パケット送信時に動作するトラフィックシェーピング機能を提供する。本主題開示の実施の形態では、トラフィックポリシング機能およびトラフィックシェーピング機能は、トラフィックシェーピング機能がトラフィックポリシング機能によって決定された送信のために、メモリ２３に記憶されるパケットの理論受信時刻値を使用するという点で協調して動作する。
【００６１】
時刻基準エンジン２９は、トラフィックポリシングエンジン２７および／またはトラフィックシェーピングエンジン２８によって操作される種々の処理に時刻基準を与えることができる。これにより、有利には、１つまたは複数の実施の形態において、ネットワークノード２０において実行されるトラフィックポリシングおよびトラフィックシェーピングに対して同じ時刻基準を使用できるようになる。例えば、ネットワークノード２０は、ノードのリンクおよびポート２２ａ〜２２ｄがすべて同じ時刻基準を使用するように構成することができる。時刻基準エンジンは、いくつかの実施の形態において、実施態様に応じた、時間単位ずつインクリメントされ、その値がトラフィックポリシングエンジン２７および／またはトラフィックシェーピングエンジン２８によって現在の時刻値として使用される基準クロックデバイス（例えば、水晶デバイス）に結合される時刻カウンターを実現することができる。いくつかの実施の形態では、時刻カウンター値Ｔは、ビット伝送時間ごとに、実施態様に応じて、１時間単位または数時間単位ずつインクリメントされる場合があり、ビット伝送時間は、ネットワークノード２０によってサポートされるバイナリ伝送速度を考えた場合の１ビットの持続時間に対応する。例えば、１００Ｍｂｐｓイーサネットリンクに対応するビット伝送時間は、１０ｎｓに等しいことになる。
【００６２】
制御エンジン２１はプロセッサを備え、プロセッサは、任意の適切なマイクロプロセッサ、マイクロコントローラー、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、デジタル信号処理チップおよび／または状態機械、またはその組み合わせとすることができる。種々の実施の形態によれば、コンピューターのうちの１つまたは複数を、並列コンピューティングを提供するための複数のプロセッサを有するマルチプロセッサコンピューターとして構成することができる。また、制御エンジン２１は、プロセッサによって実行されるときに本明細書において説明される要素をプロセッサに実行させるコンピュータープログラム命令またはソフトウェアコードを記憶することができる、限定はしないが、メモリ２３等のコンピューター記憶媒体を備えるか、またはそのようなコンピューター記憶媒体と通信することができる。さらに、メモリ２３は、それと関連して記憶されたデータパケットの管理を容易にするために、制御エンジン２１に結合され、１つまたは複数のポート２２ａ〜２２ｄを用いて動作可能な任意のタイプのデータ記憶コンピューター記憶媒体とすることができる。
【００６３】
図２を参照しながら図示および説明されるネットワークノード２０は、一例として与えられるにすぎないことは理解されよう。数多くの他のアーキテクチャ、動作環境および構成が可能である。ノードの他の実施の形態は、より少ない、またはより多くの数の構成要素を含むことができ、図２に示されるネットワークノード構成要素に関して説明された機能のうちのいくつかまたは全てを組み込むことができる。したがって、制御エンジン２１、スイッチエンジン２５、多重化エンジン２６、トラフィックポリシングエンジン２７、トラフィックシェーピングエンジン２８、複数のポート２２ａ〜２２ｄ、時刻基準エンジン２９、およびメモリ２３はネットワークノード２０の一部として示されるが、構成要素２１〜２９の場所および制御に関して制約は課せられない。詳細には、他の実施の形態では、構成要素２１〜２９は、異なるエンティティまたはコンピューティングシステムの一部とすることができる。
【００６４】
帯域幅プロファイルは、パケットフローＦｉごとに与えることができ、フローＦｉのパケットがネットワークによってサービス提供されるべきである最大速度を表す伝送速度Ｒｉを含む。伝送速度Ｒｉはビット／秒（ｂｐｓ）において表すことができる。ネットワークノードは、シグナリングを用いるノードの自動構成方式を通して、および／または各ノードの手動構成のための管理ツールを通して、パケットフローに関連付けられる帯域幅プロファイルを使用するために構成することができる。
【００６５】
１つまたはいくつかの入口ポートにおいて同じフローに属するパケットまたはフレームを受信すると、そのフローに属するパケットが出力されるべきである出口ポート２２ｄに向けられるように、受信パケットは、他の処理に加えて、または他の処理に対する代替の処理として、スイッチエンジン２５によって処理することができる。
【００６６】
本主題開示の１つまたは複数の実施の形態において、例えば、先入れ先出し（ＦＩＦＯ）キュー管理アルゴリズムを用いて、キューとして管理されるメモリ空間を、出口ポート２２ｄにおいて管理されるパケットフローごとにメモリ２３において割り振ることができる。
【００６７】
その際、パケットフローＦｉに属し、１つまたはいくつかの入口ポート上で受信されるパケット
【数１６】
0006756070.tif 000017
は、ネットワークノードのスイッチングエンジンによって処理した後に、および／または受信パケットに関して他のタイプのパケット処理が実行された後に、パケットフローＦｉのために割り振られ、フローＦｉのための出口ポートに関連付けられるキューＱｉに入れることができる。
【００６８】
図３は、それぞれが１つのパケットフローＦｉに関連付けられる、Ｋ個のメモリキューＱｉを備えるネットワークノード（図２のネットワークノード２０等）における出口ポート３０を示し、ここで、Ｋは０より大きい整数である。
【００６９】
図３は、パケットフローＦ１、ＦｉおよびＦＫにそれぞれ関連付けられる３つのメモリキューＱ１  ３１ａ、Ｑｉ  ３２ｂおよびＱＫ  ３１ｃを示す。出口ポート３０に関連付けられるＫ個のメモリキューは、出口ポートのために割り振られるメモリバッファにおいて割り振ることができる。各Ｑｉ  ３１ａ〜３１ｃのサイズＳｉｚｅ＿Ｑｉはビット単位で表すことができ、キューの占有率は、キュー３１ａ〜３１ｃ内の利用可能な空間のサイズＦｒｅｅ＿Ｑｉを用いて測定することができる。キューのそれぞれのサイズは、全てのサイズの和
【数１７】
0006756070.tif 000018
が出口ポート３０において割り振られるメモリバッファの容量を超えないように選択されることが好ましい。上記のパラメーターを用いて、各キューＱｉ  ３１ａ〜３１ｃは、Ｆｒｅｅ＿Ｑｉ＝０であるときにフルであると見なされ、Ｆｒｅｅ＿Ｑｉ＝Ｓｉｚｅ＿Ｑｉであるときに空であると見なされる。
【００７０】
図３に示される例示的な出口ポート３０において、第１のメモリキューＱ１は、出口ポート３０を通して伝送するための１つのパケット
【数１８】
0006756070.tif 000019
のみを記憶し、一方、第ｉのメモリキューＱｉは、３つのパケット
【数１９】
0006756070.tif 000020
、    
【数２０】
0006756070.tif 000021
および
【数２１】
0006756070.tif 000022
を記憶し、第ＫのメモリキューＱＫは、２つのパケット
【数２２】
0006756070.tif 000023
および
【数２３】
0006756070.tif 000024
を記憶する。
【００７１】
１つまたは複数の実施の形態では、理論受信時刻（ＴＲＴ）値が、出口ポート３０においてメモリキューにおいてキューに入れられるパケットごとに計算される。パケットのＴＲＴ値は、以下に説明されるように、そのパケットが属するフローの以前に受信されたパケットのサイズ、そのフローに関連付けられる伝送速度値Ｒｉ、およびフローの以前に受信されたパケットのＴＲＴ値または実受信時刻（ＡＲＴ）値を用いて求めることができる。
【００７２】
１つまたは複数の実施の形態では、メモリキュー（Ｑｉ）ｉ＝１．．．ＫはＦＩＦＯキューとして管理され、それぞれのフロー（Ｆｉ）ｉ＝１．．．Ｋのパケットは、ノードにおける到着順に応じて順番に対応するキューに記憶され、それにより、シーケンス番号（図３においてインデックスｎを使用する）が各パケットに割り当てられる。
【００７３】
例えば、図３において示される第ｉのメモリキューＱｉの場合、対応するＴＲＴ値
【数２４】
0006756070.tif 000025
とともに記憶されるパケット
【数２５】
0006756070.tif 000026
はキューＱｉの先頭にあり、パケット
【数２６】
0006756070.tif 000027
の前にキューに入れられていることになり、パケット
【数２７】
0006756070.tif 000028
自体は、キューＱｉにおいて次に来る、パケット
【数２８】
0006756070.tif 000029
の前にキューに入れられた。
【００７４】
同様にフローＦｉに関連付けられる伝送速度Ｒｉは、フローＦｉのパケットが対応するＱｉ内で受信されると予想される速度に対応するように選択することができ、それゆえ、キューＱｉ内のパケット受信の理論速度を表すように選択することができる。
【００７５】
同じフローＦｉに属するパケット
【数２９】
0006756070.tif 000030
が、この理論速度Ｒｉよりわずかに高い周期性でキューＱｉに到着する場合には、キューＱｉは徐々に満たされていき、フローＦｉに関するジッタ条件が存在することになる。同様に、同じフローＦｉに属するパケット
【数３０】
0006756070.tif 000031
が、この理論速度Ｒｉよりはるかに高い周期性でキューＱｉに到着する場合には、キューＱｉは急速に満たされることになり、フローＦｉに関するバースト条件が存在することになる。
【００７６】
１つまたは複数の実施の形態において、各キューＱｉのサイズＳｉｚｅ＿Ｑｉは、フローＦｉの場合に許されるバーストまたはジッタ許容量に従って対応するフローＦｉの場合に求めることができる。
【００７７】
１つまたは複数の実施の形態において、出口ポート３０を通して伝送するために本明細書において説明されるようなトラフィックポリシング方式を用いてパケットを選択することができる。
【００７８】
出口ポート３０を通して伝送するためにパケットを選択すると、実施態様によるが、その関連するＴＲＴ値とともに、選択されたパケットがそのキューから除去される。パケットがキューから取り出されるとき、その関連するＴＲＴ値は、その値が記憶されたメモリから削除することができる。その後、出口ポート３０によって、そのポートが結合されるリンク上にパケットを出力できるように、パケットは伝送バッファ３２内に入れられる。以下に説明されるように、それぞれのキューの先頭パケットの中の最も小さな理論受信時刻に基づいて、キューの中の多重化機能を実行するように、伝送バッファ３２がトラフィックシェーピングエンジンによって管理される。
【００７９】
図３を参照しながら図示および説明される出口ポート３０は、一例として与えられるにすぎないことは理解されよう。数多くの他のアーキテクチャ、動作環境および構成が可能である。ポートの他の実施の形態は、より少ない、またはより多くの数の構成要素を含むことができ、図３に示されるポート構成要素に関して説明された機能のうちのいくつかまたは全てを組み込むことができる。
【００８０】
パケット受信時のトラフィックポリシング動作
図４を参照しながら、受信時のパケットのトラフィックポリシングが以下に説明されることになる。
【００８１】
フローＦｉのパケット
【数３１】
0006756070.tif 000032
の受信時（４１）に、受信パケット
【数３２】
0006756070.tif 000033
のサイズ
【数３３】
0006756070.tif 000034
が、パケット
【数３４】
0006756070.tif 000035
が到着した入口ポートにおけるパケットの受信プロセスの一部として、またはその後に求められる（４２）。
【００８２】
例えば、入口ポートにおいて受信されるパケットのビットは、受信パケット内の巡回冗長検査および検出誤りを計算するために、ポートに割り振られたメモリバッファに記憶される。パケットの最後のビットの受信を検出すると、パケットはその全体が受信されたと見なされ、その可変サイズ
【数３５】
0006756070.tif 000036
を求めることができる。
【００８３】
パケット
【数３６】
0006756070.tif 000037
の実受信時刻
【数３７】
0006756070.tif 000038
が求められる。１つまたは複数の実施の形態において、
【数３８】
0006756070.tif 000039
値は、パケット
【数３９】
0006756070.tif 000040
の最後のビットの受信を検出すると、図２に参照しながら説明されたように、現在時刻カウンター値をメモリに記憶することによって求めることができることが好ましい。代替的には、ＡＲＴ値は、パケット
【数４０】
0006756070.tif 000041
の任意の部分の受信を検出すると、例えば、パケット
【数４１】
0006756070.tif 000042
の第１のビットの受信を検出すると、記憶することができる。
【００８４】
フローＦｉに関連付けられるキューＱｉ内の利用可能な空間Ｓｉｚｅ＿Ｑｉが、受信パケット
【数４２】
0006756070.tif 000043
のサイズ
【数４３】
0006756070.tif 000044
以上である場合には（４３）、フローＦｉに関連付けられるキューＱｉ内に受信パケット
【数４４】
0006756070.tif 000045
を記憶するために利用可能な空間が依然として存在し、パケットがキューＱｉに入れられる（４４）。フローＦｉに関連付けられるキューＱｉ内の利用可能な空間Ｓｉｚｅ＿Ｑｉは、その後、キューに入れられたパケット
【数４５】
0006756070.tif 000046
のサイズ
【数４６】
0006756070.tif 000047
に基づいて更新される（４５）。
【００８５】
受信パケット
【数４７】
0006756070.tif 000048
の理論受信時刻
【数４８】
0006756070.tif 000049
が、フローＦｉの場合に規定された伝送速度Ｒｉに基づいて、フロー内の以前に受信されたパケット
【数４９】
0006756070.tif 000050
に関連する情報を用いて求められている。１つまたは複数の実施の形態では、受信パケット
【数５０】
0006756070.tif 000051
の理論受信時刻
【数５１】
0006756070.tif 000052
値は、パケット
【数５２】
0006756070.tif 000053
の受信前に、フローＦｉのパケットがそこを通して出力された出口ポートに割り振られたメモリキュー内に記憶されている場合がある。
【００８６】
受信パケット
【数５３】
0006756070.tif 000054
の理論受信時刻
【数５４】
0006756070.tif 000055
値および実受信時刻
【数５５】
0006756070.tif 000056
値は、メモリから引き出され、比較される（４７）。パケット
【数５６】
0006756070.tif 000057
の理論受信時刻
【数５７】
0006756070.tif 000058
がパケット
【数５８】
0006756070.tif 000059
の実受信時刻
【数５９】
0006756070.tif 000060
より大きい場合には、そのパケットは理論受信時刻前に到着している。上記で論じられたように、これは、パケットフローＦｉの場合のジッタまたはバースト条件のいずれかを示す。そのような場合、フローＦｉの場合に受信されることになる次のパケット
【数６０】
0006756070.tif 000061
の理論受信時刻
【数６１】
0006756070.tif 000062
は、パケット
【数６２】
0006756070.tif 000063
の理論受信時刻
【数６３】
0006756070.tif 000064
、フローＦｉの場合に規定される伝送速度Ｒｉおよび受信パケットのサイズ
【数６４】
0006756070.tif 000065
に基づいて求められ（４８）、フローの次に受信されるパケット
【数６５】
0006756070.tif 000066
の場合に使用するためにメモリに記憶される（５２）。例えば、フローＦｉの場合に受信されることになる次のパケット
【数６６】
0006756070.tif 000067
の理論受信時刻
【数６７】
0006756070.tif 000068
は以下のように求められる。
【数６８】
0006756070.tif 000069
【００８７】
フローＦｉに関連付けられるキューＱｉ内に依然として利用可能な空間が存在するので、パケット
【数６９】
0006756070.tif 000070
は、それにもかかわらず、おそらく、フロー内の次のパケットのために求められた理論受信時刻
【数７０】
0006756070.tif 000071
とともに、キューＱｉ内に記憶される。
【００８８】
それと反対に、フローＦｉに関連付けられるキューＱｉ内の利用可能な空間Ｓｉｚｅ＿Ｑｉが受信パケット
【数７１】
0006756070.tif 000072
のサイズ
【数７２】
0006756070.tif 000073
以上であると依然として仮定するとき、パケット
【数７３】
0006756070.tif 000074
の理論受信時刻
【数７４】
0006756070.tif 000075
がパケット
【数７５】
0006756070.tif 000076
の実受信時刻以下である場合には、そのパケットはその理論到着時刻に、またはその後に到着している。そのような場合、フローＦｉの場合に受信されることになる次のパケット
【数７６】
0006756070.tif 000077
の理論受信時刻
【数７７】
0006756070.tif 000078
は、パケット
【数７８】
0006756070.tif 000079
の実受信時刻
【数７９】
0006756070.tif 000080
と、フローＦｉの場合に規定される伝送速度Ｒｉと、受信パケットのサイズ
【数８０】
0006756070.tif 000081
とに基づいて求められ（４９）、フローの次に受信されるパケット
【数８１】
0006756070.tif 000082
の場合に使用するためにメモリに記憶される（５２）。例えば、フローＦｉの場合に受信されることになる次のパケット
【数８２】
0006756070.tif 000083
の理論受信時刻
【数８３】
0006756070.tif 000084
は、以下のように求められる。
【数８４】
0006756070.tif 000085
【００８９】
フローＦｉに関連付けられるキューＱｉ内に依然として利用可能な空間が存在するので、パケット
【数８５】
0006756070.tif 000086
は、それにもかかわらず、おそらく、フロー内の次のパケットのために求められた理論受信時刻
【数８６】
0006756070.tif 000087
とともに、キューＱｉ内に記憶される。
【００９０】
フローＦｉに関連付けられるキューＱｉ内の利用可能な空間Ｓｉｚｅ＿Ｑｉが受信パケット
【数８７】
0006756070.tif 000088
のサイズ
【数８８】
0006756070.tif 000089
より小さい場合には、受信パケットは破棄され（５０）、フローＦｉの場合に受信されることになる次のパケット
【数８９】
0006756070.tif 000090
の理論受信時刻
【数９０】
0006756070.tif 000091
が、パケット
【数９１】
0006756070.tif 000092
の理論受信時刻
【数９２】
0006756070.tif 000093
に等しいと判断される（５１）。
【数９３】
0006756070.tif 000094
【００９１】
フローＦｉの場合に受信されることになる次のパケット
【数９４】
0006756070.tif 000095
の理論受信時刻
【数９５】
0006756070.tif 000096
は、その後、フローの次の受信パケット
【数９６】
0006756070.tif 000097
の場合に使用するためにメモリに記憶される（５２）。パケットフローの次のパケットを受信すると、そのような次のパケットがトラフィックポリシングによって破棄されないとき、この次のパケットの理論受信時刻
【数９７】
0006756070.tif 000098
値は、同様にキューに入れられることになる次のパケットに関連してキュー内にコピーすることができる。実施態様に応じて、パケットの各受信時に求められたＴＲＴ値を記憶するために、メモリバッファを使用することができる。トラフィックポリシングによって次のパケットが破棄されない場合、次のパケットおよびそのＴＲＴ値がキューに入れられると、この次のパケットの理論受信時刻
【数９８】
0006756070.tif 000099
値は、次のパケットに基づいて求められた新たなＴＲＴ
【数９９】
0006756070.tif 000100
値で更新することができる。それゆえ、ＴＲＴメモリバッファは、新たなに受信されたパケットがそのフローに対応するメモリキュー内に入れられるたびに更新することができる。
【００９２】
１つまたは複数の実施の形態では、上記のトラフィックポリシング動作は、連続ループの繰り返しの一部として実行することができ、各ループ繰り返しは、パケットが受信されたか否かを判断する（４０）テストで開始される。パケット
【数１００】
0006756070.tif 000101
が受信された場合には、上記の動作が実行され、そのループの繰り返しは、図４に示されるように、計算値
【数１０１】
0006756070.tif 000102
を記憶して終了する。パケットが受信されていない場合には、ループは、別のパケット受信テストを実行する。
【００９３】
さらに、ループは、上記のトラフィックポリシング動作をドライブする基準時刻と同期させることができる。例えば、図４に示されるように、基準時刻値を与える時刻カウンターがインクリメントされると、ループの新たな繰り返しが実行されるように、ループを制御することができる。実施態様に応じて、時刻カウンター値が１時間単位または数時間単位ずつインクリメントされると、新たな繰り返しが実行されるように、ループを設計することができる。
【００９４】
現在処理されているパケット
【数１０２】
0006756070.tif 000103
のＴＲＴ値
【数１０３】
0006756070.tif 000104
は、そのフローＦｉの場合の一連の受信パケット内の現在処理されているパケット
【数１０４】
0006756070.tif 000105
に先行するパケット
【数１０５】
0006756070.tif 000106
に関して上記で説明されたのと同じ動作を用いて、すなわち、フロー
【数１０６】
0006756070.tif 000107
の以前に受信されたパケットのサイズ
【数１０７】
0006756070.tif 000108
と、フローに関連付けられる伝送速度値Ｒｉと、フローの以前に受信されたパケットのＴＲＴ値
【数１０８】
0006756070.tif 000109
が、フローの以前に受信されたパケットの実受信時刻（ＡＲＴ）値
【数１０９】
0006756070.tif 000110
より小さい場合には、
【数１１０】
0006756070.tif 000111
値と、そうでない場合には、
【数１１１】
0006756070.tif 000112
値とに基づいて、求めることができる。
【００９５】
例えば、これらの動作が、フローに属する受信パケットごとにループの一部として実行されるときに、これが当てはまる場合がある。そのようなループの第１の繰り返しの場合に、すなわち、パケットフローに対応する最初の受信パケットの場合に、その最初の受信パケットの受信に対応する時刻基準値が、そのようなパケットの理論受信時刻として選択される場合がある。同じフローの場合に次に受信されたパケットは、その後、上記のトラフィックポリシング動作を用いて取り扱うことができる。
【００９６】
パケット送信のためのトラフィックシェーピング動作
図５を参照しながら、パケットの送信のためのトラフィックシェーピング動作が以下に説明されることになる。
【００９７】
上記で説明され、図３に示されたように、パケットフローに属するパケットを、それぞれの理論受信時刻値とともに、おそらくＦＩＦＯキューとして管理されるメモリキュー内の出口ポートにおいて記憶することができる。
【００９８】
以下のトラフィックシェーピング動作は、それぞれのメモリキュー内に入れられるパケットの出口ポートを通しての送信を制御することを目的とする。
【００９９】
パケットが受信順に記憶されたメモリキューＱｉの場合（５０）、先頭パケット、すなわち、フロー内に記憶された最も早い受信パケットが送信するために検討され（５５）、その理論受信時刻が現在の時刻カウンター値と比較される（５１）。
【０１００】
メモリキューの先頭パケットのＴＲＴ値が、現在の時刻カウンター値以下である場合には、出口ポートを通して送信する（５２）ために、そのパケットが選択される。
【０１０１】
その後、そのパケットはキューから除去され（５３）、出力され、キューの利用可能な空間値が、出力されたパケットのサイズに従って更新される（５４）。
【０１０２】
トラフィックポリシング動作の場合のように、１つまたは複数の実施の形態において、上記のトラフィックシェーピング動作は、連続ループの繰り返しの一部として実行することができ、各ループ繰り返しは、メモリキューＱｉが空であるか否かを判断する（５０）テストで開始される。キューＱｉが空でない場合には、上記の動作が実行され、ループの繰り返しは、図５に示されるように、先頭パケットの送信で終了する。キューＱｉが空である場合には、ループは、別のキュー空テストを実行する。
【０１０３】
好ましくは、図５に示されるように、ループプロセスは、次の繰り返しに進む前に、出力されたパケットが完全に送信されるのを待つ（５６）。例えば、パケットの最後のビットが、出口ポートが結合されるリンク上に出力されたときに、パケットは、出口ポートから送信されたと見なすことができる。
【０１０４】
さらに、ループは、上記のトラフィックシェーピング動作をドライブする基準時刻と同期させることができる。例えば、図５に示されるように、基準時刻値を与える時刻カウンターが更新される（５５）と、ループの新たな繰り返しが実行されるように、ループを制御することができる。時刻カウンター更新は、１時間単位だけ、または複数時間単位ずつインクリメントすることを含むことができる。実施態様に応じて、時刻カウンター値が１時間単位または数時間単位ずつインクリメントされると、新たな繰り返しが実行されるように、ループを設計することができる。
【０１０５】
さらに、時刻基準（Ｔ）は、トラフィックポリシングの場合に使用される時刻基準と共通にすることができるか、またはそれに基づくことができる。この関連で、１つまたは複数の実施の形態では、トラフィックポリシングの場合に使用される時刻基準と比べてトラフィックシェーピングの場合に使用される時刻基準をオフセットするように、時間オフセットを実施することができる。詳細には、そのような時間オフセットの値は、あらかじめ決定することができるか、または動的に決定することができる。１つまたは複数の実施の形態では、時間オフセットは、トラフィックポリシングにおいて使用されるパケット受信方式に応じて決定することができる。例えば、上記で論じられたように、パケット
【数１１２】
0006756070.tif 000113
の第１のビットの受信を検出するとＡＲＴ値が記憶される実施の形態では、時刻基準Ｔの更新ための時間オフセットは、パケット
【数１１３】
0006756070.tif 000114
のために計算されたＴＲＴのシフトされた値に基づいて、本明細書において開示されるトラフィックシェーピング方式によるパケット
【数１１４】
0006756070.tif 000115
の送信をトリガーすることができるように計算することができる。
【０１０６】
図６は、本主題開示の別の実施の形態による、パケットの送信のためのトラフィックシェーピング動作を示す。
【０１０７】
図３に示されるように、いくつかのメモリキューは、それぞれのパケットフローにそれぞれ対応する出口ポートにおいて管理することができる。そのような場合、出口ポートの場合に実行されるトラフィックシェーピングループの繰り返しは、出口ポートが空であるか否か、すなわち、空でない出口ポートにおいて管理される少なくとも１つのメモリキューが存在するか否かに関する判断で開始することができる。
【０１０８】
出口ポートが空でない場合には、すなわち、パケットが受信順に記憶されている（図３に示される）１つまたはいくつかのメモリキュー（Ｑｉ）ｉ＝１．．．Ｋが存在する場合には、キューの先頭パケット（すなわち、キューごとの、キュー内に記憶されたフローの最も早期の受信パケット）のそれぞれのＴＲＴ値が互いに比較され、最小値
【数１１５】
0006756070.tif 000116
が選択される（６１）。この最小のＴＲＴ値は、その後、現在の時刻カウンター値と比較される（６２）。
【０１０９】
最小のＴＲＴ値が現在の時刻カウンター値以下である場合には、対応する先頭パケットが、出口ポートを通して送信する（６３）ために選択される。
【０１１０】
その後、パケットはキューから除去され（６４）、出力され、出力されたパケットのサイズに従って、キューの利用可能な空間値が更新される（６５）。
【０１１１】
出口ポートが空である場合には、ループは、別の出口ポートの空テストを実行する。
【０１１２】
好ましくは、図６に示されるように、ループプロセスは、次の繰り返しを処理する前に、出力されたパケットが完全に送信されるのを待つことができる（６７）。例えば、パケットの最後のビットが、出口ポートが結合されるリンク上に出力されたときに、パケットは、出口ポートから送信されたと見なすことができる。
【０１１３】
さらに、ループは、上記のトラフィックシェーピング動作をドライブする基準時刻と同期させることができる。例えば、基準時刻値を与える時刻カウンターが更新される（６６）と、ループの新たな繰り返しが実行されるように、ループを制御することができる。時刻カウンター更新は、１時間単位または複数時間単位ずつインクリメントすることを含むことができる。実施態様に応じて、時刻カウンター値が１時間単位または数時間単位ずつインクリメントされると、新たな繰り返しが実行されるように、ループを設計することができる。
【０１１４】
上記で論じられたように、１つまたは複数の実施の形態において、トラフィックシェーピングのために使用される時刻基準（Ｔ）は、トラフィックポリシングの場合に使用される時刻基準と共通にすることができるか、またはそれに基づくことができる。この関連で、１つまたは複数の実施の形態では、トラフィックポリシングの場合に使用される時刻基準と比べてトラフィックシェーピングの場合に使用される時刻基準をオフセットするように、時間オフセットを実施することができる。詳細には、そのような時間オフセットの値は、あらかじめ決定することができるか、または動的に決定することができる。１つまたは複数の実施の形態では、時間オフセットは、トラフィックポリシングにおいて使用されるパケット受信方式に応じて決定することができる。例えば、上記で論じられたように、パケット
【数１１６】
0006756070.tif 000117
の第１のビットの受信を検出するとＡＲＴ値が記憶される実施の形態では、時刻基準Ｔの更新ための時間オフセットは、パケット
【数１１７】
0006756070.tif 000118
のために計算されたＴＲＴのシフトされた値に基づいて、本明細書において開示されるトラフィックシェーピング方式によるパケット
【数１１８】
0006756070.tif 000119
の送信をトリガーすることができるように計算することができる。
【０１１５】
図７ａおよび図７ｂは、提案される方法の実施の形態による、ネットワークノードにおける受信および送信動作を示す。
【０１１６】
図７ａは、受信パケットの最後のビットの受信を検出すると受信パケットのＡＲＴ値が記憶される、ネットワークノードにおけるパケットの受信および送信を示し、それに対して、図７ｂは、受信パケットの最初のビットの受信を検出すると受信パケットのＡＲＴ値が記憶される、ネットワークノードにおけるパケットの受信および送信を示す。
【０１１７】
図７ａおよび図７ｂはそれぞれ、それぞれサイズ
【数１１９】
0006756070.tif 000120
、    
【数１２０】
0006756070.tif 000121
および
【数１２１】
0006756070.tif 000122
を有する、パケットフローＦｉの場合にネットワークノードによって連続して受信される３つのパケット
【数１２２】
0006756070.tif 000123
、    
【数１２３】
0006756070.tif 000124
および
【数１２４】
0006756070.tif 000125
を示す。第１の受信パケット
【数１２５】
0006756070.tif 000126
は、その理論受信時刻
【数１２６】
0006756070.tif 000127
に等しい実受信時刻
【数１２７】
0006756070.tif 000128
において受信される。第１の受信パケット
【数１２８】
0006756070.tif 000129
を送信するためにキューに入れることができると仮定すると、次のパケット
【数１２９】
0006756070.tif 000130
のＴＲＴは
【数１３０】
0006756070.tif 000131
として計算され、メモリに記憶される。図示されるように、次のパケット
【数１３１】
0006756070.tif 000132
は、そのＴＲＴ値
【数１３２】
0006756070.tif 000133
のはるかに前にネットワークノードによって受信される。次のパケット
【数１３３】
0006756070.tif 000134
を送信するためにキューに入れることができると仮定すると、後続のパケット
【数１３４】
0006756070.tif 000135
のＴＲＴは、
【数１３５】
0006756070.tif 000136
として計算される。後続のパケット
【数１３６】
0006756070.tif 000137
は、受信の理論時刻
【数１３７】
0006756070.tif 000138
後にネットワークノードによって受信される。次のパケット
【数１３８】
0006756070.tif 000139
を送信するためにキューに入れることができると仮定すると、フローＦｉの後続のパケット
【数１３９】
0006756070.tif 000140
のＴＲＴは、
【数１４０】
0006756070.tif 000141
として計算される。
【０１１８】
上記のように、トラフィックポリシング機能（パケットの受信用）およびトラフィックシェーピング機能（パケットの送信用）は、現在の時刻基準を共有することができる。時刻基準が時間単位だけインクリメントされる時刻カウンターを用いて実現されるとき、単一の時間単位内で生じるイベントは、パケットの受信の終了およびそのパケットの送信の開始の場合に図示されるように、瞬時と見なすことができる。そのような例示は表現にすぎないこと、および受信プロセス自体を含む、受信パケットの種々の処理は、図には表されていない処理上の時間遅延を受けることは、関連技術分野の当業者には理解されよう。
【０１１９】
図７ａを参照すると、パケットフローＦｉの場合にネットワークノードによって連続して受信されるパケット
【数１４１】
0006756070.tif 000142
、    
【数１４２】
0006756070.tif 000143
および
【数１４３】
0006756070.tif 000144
の送信に関して、これらの受信パケットがネットワークノードのトラフィックポリシング機能によって破棄されなかったと仮定すると、送信するために考慮されるときの時刻基準値ＴがそのＴＲＴ値
【数１４４】
0006756070.tif 000145
以上であるので、第１の受信パケットは受信すると概ね直ちに送信される。上記のことは、その理論受信時刻
【数１４５】
0006756070.tif 000146
のはるかに前にネットワークノードによって受信された次のパケット
【数１４６】
0006756070.tif 000147
の場合には当てはまらない。その際、トラフィックシェーピング機能は、時刻基準値がこの理論受信時刻
【数１４７】
0006756070.tif 000148
値以上になるまで待つことになり、その結果、
【数１４８】
0006756070.tif 000149
の送信は、理論受信時刻
【数１４９】
0006756070.tif 000150
値の後の時刻まで遅延することになる。ここでも再び、同じことは、その理論受信時刻
【数１５０】
0006756070.tif 000151
値の後に受信された後続のパケット
【数１５１】
0006756070.tif 000152
の場合には当てはまらない。トラフィックシェーピング機能によって遅延は加えられず、パケットの送信は、受信およびその処理が完了すると直ちに実行することができる。
【０１２０】
図７ｂを参照すると、パケットの送信に関して、パケットフローＦｉの場合にネットワークノードによって連続して受信される各パケット
【数１５２】
0006756070.tif 000153
、    
【数１５３】
0006756070.tif 000154
および
【数１５４】
0006756070.tif 000155
の送信は、各パケットの送信のために決定されたオフセットを除いて、図７ａに示される送信方式に類似である。送信するために考慮されるときのこのパケットのために決定されたオフセットｏｆｆｓｅｔ（ｎ）だけシフトした時刻基準値Ｔが、そのＴＲＴ値
【数１５５】
0006756070.tif 000156
以上であるので、第１の受信パケットは、オフセット
【数１５６】
0006756070.tif 000157
だけシフトしたそのＴＲＴ値に対応する時刻に送信される。上記のことは、その理論受信時刻
【数１５７】
0006756070.tif 000158
のはるかに前にネットワークノードによって受信された次のパケット
【数１５８】
0006756070.tif 000159
の場合には当てはまらない。その際、トラフィックシェーピング機能は、時刻基準値が、このパケットのために決定されたオフセットｏｆｆｓｅｔ（ｎ＋１）だけシフトしたこの理論受信時刻
【数１５９】
0006756070.tif 000160
値以上になるまで待つことになり、その結果、
【数１６０】
0006756070.tif 000161
の送信は、オフセットｏｆｆｓｅｔ（ｎ＋１）だけシフトした理論受信時刻
【数１６１】
0006756070.tif 000162
値の後の時刻まで遅延することになる。ここでも再び、同じことは、その理論受信時刻
【数１６２】
0006756070.tif 000163
値の後に受信された後続のパケット
【数１６３】
0006756070.tif 000164
の場合には当てはまらない。トラフィックシェーピング機能によって遅延は加えられず、パケットの送信は、この後続のパケット
【数１６４】
0006756070.tif 000165
のために決定されたオフセットｏｆｆｓｅｔ（ｎ＋２）を条件として、受信およびその処理が完了すると直ちに実行することができる。
【０１２１】
本発明は好ましい実施の形態に関して説明されてきたが、添付の特許請求の範囲によって規定されるような本発明の趣旨または範囲から逸脱することなく、本発明に対して種々の変更および／または修正を加えることができることは当業者には容易に理解されよう。
【０１２２】
本発明はある特定の好ましい実施の形態との関連で開示されてきたが、そのシステム、デバイスおよび方法のある特定の利点、特徴および態様は種々の他の実施の形態において実現される場合があることは理解されたい。さらに、本明細書において説明される種々の態様および特徴は、別々に実践することができるか、互いに組み合わせることができるか、または互いに代用することができること、並びに特徴および態様の種々の組み合わせおよび部分的な組み合わせを行うことができ、それでも本発明の範囲に入ることを意図している。さらに、上記のシステムおよびデバイスは、好ましい実施の形態において説明されたモジュールおよび機能の全てを含む必要はない。
【０１２３】
本発明において説明される情報および信号は、種々の異なる技術および技法のいずれかを用いて表すことができる。例えば、データ、命令、コマンド、情報、信号、ビット、シンボルおよびチップは、電圧、電流、電磁波、磁界または磁気粒子、光場または光子、またはその任意の組み合わせによって表すことができる。
【０１２４】
実施の形態によっては、本明細書において説明された方法のいずれかのある特定の動作、イベントまたは機能は、異なる順序において実行することができるか、追加されるか、統合されるか、または全て除外される場合がある（例えば、方法を実践するために、説明される全ての動作またはイベントが必要とされるとは限らない）。さらに、ある特定の実施の形態では、動作またはイベントは、順次にではなく、同時に実行される場合がある。
【図１】
0006756070.tif 000181
【図２】
0006756070.tif 000182
【図３】
0006756070.tif 000183
【図４】
0006756070.tif 000184
【図５】
0006756070.tif 000185
【図６】
0006756070.tif 000186
【図７ａ】
0006756070.tif 000187
【図７ｂ】
0006756070.tif 000188