(57)【特許請求の範囲】
【請求項１】
電気通信ネットワークにおいて送信するデータフレームのトラフィックシェーピングの方法であって、前記送信するフレームは、
所定の時間ウィンドウ内で送信する必要があるエクスプレスフレームと、
前記時間ウィンドウ外の時刻に送信されるように意図されたノーマルフレームと、
に区別され、
送信処理対象の現在のノーマルフレームについて、該方法は、
前記ノーマルフレームをフラグメント化することができるか否かを判断するステップと、
フラグメント化することができる場合に、次の時間ウィンドウがオープンするまでの残りの時間が、前記ノーマルフレームの１つ又は幾つかのフラグメントを送信するのに十分であるか否かを判断するステップと、
十分である場合に、前記１つ又は幾つかのフラグメントを送信するステップと、
を含み、
幾つかのフローは送信処理されており、各フローは、連続したノーマルフレームと、以前のノーマルフレームの送信処理から残っている１つ又は幾つかのフラグメントがある場合にはそれらのフラグメントとを含み、
各フローの前記ノーマルフレーム及び、又は前記フラグメントは、メモリにキューイングされ、前記ノーマルフレーム及び、又は前記フラグメントはそれぞれの処理時点を割り当てられ、
現時刻が最小処理時点よりも大きい場合には、前記ステップを実施するために該現時刻がそれぞれの前記フローの全ての前記キューの中の最小処理時点と比較され、
前記ノーマルフレーム及び、又は前記フラグメントの前記処理時点は、フレーム又はフラグメントの各スケジューリングされた送信の際に、送信するフローの前記フレーム又は前記フラグメントの長さをそのフローの現在のビットレートによって除算することによって送信フロービットレートに基づいて推定された前記スケジューリングされた送信の継続時間だけ更新される、方法。
【請求項２】
前記現在のノーマルフレームをフラグメント化することができない場合には、次の時間ウィンドウがオープンするまでの残りの時間が前記現在のノーマルフレーム全体を送信するのに十分であるか否かが判断され、
十分である場合には、前記現在のノーマルフレーム全体が送信され、
十分でない場合には、次のステップまで待機状態となる、請求項１に記載の方法。
【請求項３】
前記現在のノーマルフレームをフラグメント化することができる場合には、次の時間ウィンドウがオープンするまでの残りの時間が少なくとも１つのフラグメントを送信するのに十分でない場合には、次のステップまで待機状態とする、請求項１または２に記載の方法。
【請求項４】
前記現在のノーマルフレームをフラグメント化することができる場合には、前記次のウィンドウがオープンするまでの前記残りの時間が完全なノーマルフレームの残りの部分を送信するのに十分であるか否かが更に判断され、
十分である場合に、前記完全なノーマルフレームの残りの部分の対応するフラグメントが送信され、
十分でない場合には、前記次のウィンドウがオープンするまでの前記残りの時間よりも少ない送信の全継続時間に対応する１つ又は幾つかのフラグメントが送信される、
請求項３に記載の方法。
【請求項５】
前記次のウィンドウがオープンするまでの前記残りの時間は、フラグメント又はノーマルフレームが送信されるリンクの能力に基づいて推定された該フラグメント又は該フレームを送信するのに要する時間と比較される、請求項１から４までのいずれか１項に記載の方法。
【請求項６】
ノーマルフレームは、その全長が最小フラグメントサイズの長さの少なくとも２倍である場合に、フラグメント化することができるとみなされる、請求項１から５までのいずれか１項に記載の方法。
【請求項７】
前記ノーマルフレームの全長は、送信されていないその残りのフラグメントを用いて更新される、請求項６に記載の方法。
【請求項８】
前記時間ウィンドウは、サイクリックタイムテーブルに連続的に規定される、請求項１から７までのいずれか１項に記載の方法。
【請求項９】
請求項１から８までのいずれか１項に記載の方法を実行するトラフィックシェーピング手段を有する、デバイス。
【請求項１０】
コンピューターに、請求項１から８までのいずれか１項に記載の方法の手順を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、イーサネット(登録商標)等のパケット交換ネットワークに関する。
【背景技術】
【０００２】
そのようなネットワークは、データ通信以外の領域においてますます多く用いられている。
産業ネットワークが、現在において、この用途の一例(例えば、冗長に関するプロフィネット(Profinet)標準、ＩＥＣ標準：ＨＳＲ、ＰＲＰ、ＭＲＰ)である。
これらの技術によってもたらされる発展は、主として、これらのネットワークの回復力の改善、すなわち、データ送信に影響を与えることなく、単一障害に対する保護を改善することに焦点を当てている。
【０００３】
しかしながら、データ送信の厳密な時間特性の実施等の他の制約は、標準的なイーサネットを用いると実施することができない。より詳細に言えば、タイトに制限されたレイテンシー及び／又はジッターを必要とする制御／コマンドメッセージの送信は適切に対処されない。
輸送分野、主として航空学では、幾つかの解決策、すなわち、アビオニクス全二重交換イーサネット(ＡＦＤＸ(Avionics Full−Duplex Switched Ethernet)、プロトコルＡＲＩＮＣ６６４  パート７)及びＴＴＥｔｈｅｒｎｅｔ(ＳＡＥ  ＡＳ６８０２)技術が開発及び標準化されてきた。双方の解決策は、パケット多重の編成にタイミング特性を追加することに依拠している。
【０００４】
一例として、ＡＦＤＸは、所与のフローのデータを送信することができる最大保証レートを固定する帯域幅割り当てギャップ(ＢＡＧ)を定義している。すなわち、ＢＡＧは、ＢＡＧによるＡＦＤＸトラフィックシェーピングの２つの例を示す図１に見て取ることができるように、フローが固定時間間隔内で送信することができるデータの量を設定する。各フローについてＢＡＧレートを設定するとき、他のフローに十分な帯域幅を提供するように注意がなされ、総ビットレートはリンク能力を越えることができない。ＢＡＧによるシェーピングは、送信元でしか実行されず、多重化は、その後、下流ノードにおいて非同期に実行される。この技法は、ジッター及び転送遅延に対してタイトな制限を設けていない。
【０００５】
第２の例として、ＴＴＥｔｈｅｒｎｅｔは、ネットワークノードのタイトな同期に基づいており、３つのタイプのトラフィック、すなわち、タイムトリガー型(ＴＴ)、レート制約型(ＲＣ)及びベストエフォート型(ＢＥ)を定義している。
【０００６】
ＴＴメッセージが、領域全体にわたる同期クロックを利用する既定の静的なスケジュールに従ってネットワークを通じて送信される。これらのメッセージは、他の全てのメッセージタイプよりも優先度が高い。このスケジュールは、ＴＴフレームが送信される各スイッチ出力ポートについて一組のＴＴウィンドウを規定する。タイムトリガー型メッセージの発生、時間遅延及び精度は、事前に規定され、保証される。
【０００７】
あまり過酷でない決定性(determinism)及びリアルタイム要件を有する用途にはＲＣメッセージが用いられる。ＴＴウィンドウ及び広い領域の同期クロックが、ＲＣトラフィックを制御するシェーピングアルゴリズムの入力として用いられる。このアルゴリズムは、次のＴＴウィンドウが開始する前に各フレーム送信を終了することができるか否かを調べる。フレームが適合していない場合、送信機は、次のスケジューリングされたＴＴフレームの送信が開始するまでアイドル状態に留まる。このアイドル時間(「保護帯域」と呼ばれる)は、ＲＣフレーム(及び、以下で説明するようにＢＥフレームも)がＴＴフレームと決して干渉しないことを保証する。これらのメッセージは、帯域幅が各用途について既定され、遅延及び時間的ずれが制限された範囲を有することを保証する。
【０００８】
ＢＥメッセージは、通常のイーサネットポリシーに従い、上記で説明した干渉回避メカニズムを用いて、残りのＴＴウィンドウにおいて送信される。これらのメッセージを送信することができるか否か、いつ送信することができるのか、どのような遅延が発生するのか、及びメッセージが受信者に到達するのか否かの保証はない。
【０００９】
これらの３つのタイプのトラフィックは、ＴＴＥｔｈｅｒｎｅｔフロースケジューリングを示す図２に見て取ることができるように、サブサイクル(基準期間)に細分された回帰サイクルにおいて送信多重を編成するＴＤＭＡ(時分割多元接続)方式に従ってタイムスロットを用いて割り当てられる。各トラフィックタイプに割り当てられたタイムスロットは、基準期間当たりのデータの量に対応し、それらの(時間)位置は、ネットワーク全体にわたって固定されている。
【００１０】
パケットは、事前に規定された通信スケジュールに従って中継される。したがって、ローカルクロックが同期されているとき、通信スケジュールは同期して実行され、ネットワークにおける競合は回避される。したがって、タイムトリガー型通信は、２人以上の通信参加者がネットワークに同時点にアクセスする可能性を設計によって排除することができるので、強力な時間的分割(temporal partitioning：時間保護)を提供する。
【００１１】
標準的なイーサネットベースのネットワークにわたってＴＴトラフィックをサポートする枠組みを提供するために、ＩＥＥＥ(８０２．１ＴＳＮ作業グループ)は、現在、「タイムアウェアスケジューラ(Time Aware Scheduler)」と呼ばれる送信選択メカニズムを標準化している。この仕様は、「８０２．１Ｑｂｖ−スケジューリングされたトラフィックのための拡張(Enhancements for Scheduled Traffic)」と呼ばれる８０２．１Ｑ標準の修正を目的としている。この送信選択メカニズムは、各トラフィッククラスキューに関連付けられた送信ゲートに依拠している。すなわち、トラフィッククラスキューにおけるフレームは、送信ゲートが閉鎖状態にある場合又はそのキューに関連付けられた次のゲート閉鎖イベント前にそのフレームの全体を送信するのに利用可能な時間が十分でない場合には送信に利用可能でない。トラフィッククラスキューごとの「queueMaxSDU」パラメーターは、各キューの最大サービスデータユニットサイズを規定する。キューのこの最大サイズを越えるフレームは廃棄される。
【００１２】
各ポートに関連付けられたゲート制御リストは、各ポートのトラフィッククラスキュー(図３の＃７、＃６、…、＃０)に関連付けられたゲートの送信ゲート状態を変更する。スケジューリングされたトラフィックの拡張をサポートしていない一実施態様では、全てのゲートは、常時開放状態にあると仮定される。状態マシンが、ＩＥＥＥ８０２．１Ｑｂｖに従った送信選択の原理を示す図３に見て取ることができるようなキューごとのゲート状態の遷移の制御を担当する。
【００１３】
しかしながら、多重化の編成のための固定スケジュールの導入によって、媒体へのアクセスに或る不公平が引き起こされる。すなわち、ＲＣフロー及びＢＥフローのフレームは、フレーム全体を含むように十分長いタイムスロットにしか挿入することができないが、この長さは、それにもかかわらず可変である。これによって、追加の(常に不可避とは限らない)遅延及びジッターがＲＣフレームの送信にもたらされるとともにリンク上の帯域幅が浪費される。
【００１４】
この課題を解決するために、ＩＥＥＥ８０２．３ｂｒ(８０２．３の修正：「エクスプレストラフィックを散在させる仕様及び管理パラメーター(Specification and Management Parameters for Interspersing Express Traffic)」)は、いわゆる「エクスプレスフレーム」(低レイテンシーが保証されるフレームであり、通常、ＴＴフレーム)の送信がスケジューリングされたときに衝突が発生せず、その結果、エクスプレストラフィックのレイテンシーが追加されないことを保証する、いわゆる「ノーマルフレーム」(優先度の低いフレームであり、通常、ＲＣフレーム及びＢＥフレーム)のプリエンプションメカニズムを規定している。
【００１５】
このメカニズムによって、エクスプレストラフィックのスケジュールを有するＭＡＣクライアントは、(エクスプレストラフィックデータパス及びノーマルトラフィックデータパスを示す図４に見て取ることができるように)スケジューリングされたエクスプレストラフィックが到着する前にノーマルフレームをプリエンプトすることが可能になる。スケジューリングされたフレームは、到着すると、直ちに送信することができる。
【００１６】
加えて、８０２．３ｂｒ仕様は、ノーマルフレームの送信を停止してエクスプレスフレームに送信機会を与えることを可能にするホップごとのフラグメンテーション及び再組み立て方式を規定している。ノーマルフレームフラグメント及びエクスプレスフレームは、ＩＥＥＥ８０２．３ｂｒのフレームフォーマット及びフラグメントフォーマットに関係した図５に示すように、それらのプリアンブル長及びいわゆる「開始フレームデリミター」(ＳＦＤ)フィールドによって区別される。これによって、非エクスプレスフレーム(ノーマルフレーム)が十分長いタイムスロットの送信を待機しなくてよく、その結果、ノーマルフローに追加されるレイテンシーは限られたものとなり、リンク能力の使用がより良好なものとなる。
【００１７】
どの時点においても単一のノーマルフレーム、すなわち、その送信時間スパンが１つ又は幾つかのＴＴウィンドウをカバーするフレームしかフラグメント化することができないということに留意すべきである。図５において、ＭＦＣＳは、非最終フラグメントのＣＲＣ(巡回冗長検査)である。ここで、その値は、送信されるフレームオクテットのＦＣＳ(フレーム検査シーケンス)とＦＦＦＦ００００とをＸＯＲしたものと同じである。ＳＭＤ−Ｉｘは、ノーマルフレームの最初のフラグメント(初期フラグメント)等のそのノーマルフレームの先頭を示す一方、ＳＭＤ−Ｃｘは、そのフレームの非初期フラグメントを示す。説明の完全を期すために、ＭＡＣ  ＤＡ及びＭＡＣ  ＳＡはそれぞれ、宛先ＭＡＣアドレス及び送信元ＭＡＣアドレスである。「Ethertype」(イーサタイプ)は、イーサネットタイプ長フィールドを意味する。図５の上側部分は、この場合、フラグメント化されたエクスプレスフレーム及びノーマルフレームを示しておらず、その下側部分は、ノーマルフレームの連続したフラグメントを示している。
【００１８】
プリエンプトされた最小フラグメントサイズは６４バイトである。したがって、１２８バイト未満の長さを有するパケットは、プリエンプトすることができない。非最終フラグメントは、８バイトの倍数の長さを有する。
【発明の概要】
【発明が解決しようとする課題】
【００１９】
しかしながら、上記で説明した多重化メカニズムは、以下のことを保証していない。
エクスプレスフレームと比較して、ノーマルフレームに対する媒体への公平なアクセス、
他のノーマルフローと比較して、所与のフローに属するノーマルフレームに対する媒体への公平なアクセス、
ノーマルフレーム又はフラグメントを、それらの割り当てられたタイムスロット中にＩＥＥＥ８０２．１Ｑｂｖに従って多重化して挿入することができること、
ＩＥＥＥ８０２．３ｂｒに従ってノーマルフレームをフラグメント化することができること。
この発明は、上記状況を改善することを目的としている。
【課題を解決するための手段】
【００２０】
そのために、電気通信ネットワークにおいて送信するデータフレームのトラフィックシェーピングの方法であって、前記送信するフレームは、
所定の時間ウィンドウ内で送信する必要があるエクスプレスフレームと、
前記時間ウィンドウ外の時刻に送信されるように意図されたノーマルフレーム(以下で解説する図９のステップｂ))と、
に区別される、方法が最初に提案される。
より詳細には、現在のノーマルフレームについて、該方法は、
前記ノーマルフレームをフラグメント化することができるか否かを判断するステップ(図９のステップｃ))と、
フラグメント化することができる場合に、次の時間ウィンドウがオープンするまでの残りの時間が、前記ノーマルフレームの１つ又は幾つかのフラグメントを送信するのに十分であるか否かを判断するステップと、
十分である場合に、前記１つ又は幾つかのフラグメントを送信するステップと、
を含む。
【００２１】
特定の実施の形態では、前記ノーマルフレームと、以前のノーマルフレームの処理から残っている１つ又は幾つかのフラグメントがある場合にはそれらのフラグメントとは、メモリにキューイングされ、それぞれの処理時点(processing instant)を割り当てられ、現時刻が最小処理時点よりも大きい場合には前記ステップを実施するために該現時刻が該最小処理時点と比較される(図９のステップａ))。
フレームの幾つかのフローがともに処理されているこの発明のより特定の実施の形態では、各フローは、連続したノーマルフレームと、以前のノーマルフレームの処理から残っている１つ又は幾つかのフラグメントがある場合にはそれらのフラグメントとを含む。各フローのこれらのノーマルフレーム及び／又はフラグメントは、メモリにそれぞれキューイングされ、それぞれの処理時点を割り当てられる。次に、現時刻がそれぞれの前記フローの全ての前記キューの中の最小処理時点よりも大きい場合には前記方法の前記ステップを実施するために該現時刻が該最小処理時点と比較される(図９のステップａ))。
【００２２】
特定の実施の形態では、前記現在のノーマルフレームをフラグメント化することができない場合には、次の時間ウィンドウがオープンするまでの残りの時間が前記現在のノーマルフレーム全体を送信するのに十分であるか否かが判断され、
十分である場合には、前記現在のノーマルフレーム全体が送信され、
十分でない場合には、時間稼ぎステップが次の現時刻まで適用される。
【００２３】
特定の実施の形態では、前記現在のノーマルフレームをフラグメント化することができる場合には、次の時間ウィンドウがオープンするまでの残りの時間が少なくとも１つのフラグメントを送信するのに十分であるか否かが判断され、
十分である場合には、少なくとも１つのフラグメントが送信され、
十分でない場合には、時間稼ぎステップが次の現時刻まで適用される。
【００２４】
より詳細には、前記現在のノーマルフレームをフラグメント化することができる場合には、前記次のウィンドウがオープンするまでの前記残りの時間が完全なノーマルフレームの残りの部分を送信するのに十分であるか否かが更に判断され、
十分である場合に、前記完全なノーマルフレームの残りの部分の対応するフラグメントが送信され、
十分でない場合には、前記次のウィンドウがオープンするまでの前記残りの時間よりも少ない全継続時間に対応する１つ又は幾つかのフラグメントが送信される。
【００２５】
特定の実施の形態では、前記次のウィンドウがオープンするまでの前記残りの時間は、フラグメント又はフレームが送信されるリンクの能力に基づいて推定された該フラグメント又は該ノーマルフレーム全体を送信するのに要する時間と比較される。
【００２６】
その上、(前記キューイングされたフレーム及び／又はフラグメントに割り当てた)前記処理時点は、好ましくは、フレーム又はフラグメントの各スケジューリングされた送信の際に、送信フロービットレートに基づいて推定されたそのスケジューリングされた送信の継続時間だけ更新される。
【００２７】
一実施の形態では、ノーマルフレームは、その全長が最小フラグメントサイズの長さの少なくとも２倍である場合に、フラグメント化することができるとみなされる。
【００２８】
好ましくは、ノーマルフレームのその全長は、送信されていないその残りのフラグメントを用いて更新される(そのようなフレーム長を更新するステップは、図９においてＳ１５及びＳ１８のラベルが付けられている)。
【００２９】
一実施の形態では、前記時間ウィンドウは、(図８の実施の形態の例に示すように)サイクリックタイムテーブル(cyclic timetable)に連続的に規定される。
【００３０】
この発明は、この発明による方法を実行するトラフィックシェーピング手段(プロセッサ及び少なくとも１つのメモリ等)を有するデバイスも目的としている。
【００３１】
この発明は、プロセッサによって実行されるとこの発明の方法を実行する命令を含むコンピュータープログラム製品も目的としている。
【００３２】
この発明は、添付図面の図に、限定としてではなく例として示される。添付図面において、同様の参照符号は同様の要素を参照する。
【図面の簡単な説明】
【００３３】
【図１】ＢＡＧによるＡＦＤＸトラフィックシェーピングの２つの例を示す図である。
【図２】ＴＴＥｔｈｅｒｎｅｔフロースケジューリングを示す図である。
【図３】ＩＥＥＥ８０２．１Ｑｂｖによる送信選択の原理を示す図である。
【図４】エクスプレストラフィックデータパス及びノーマルトラフィックデータパスを示す図である。
【図５】非フラグメント化されたエクスプレスフレーム及びノーマルフレーム、並びにノーマルフレームの連続したフラグメント(下側部分)を示す図である。
【図６】この発明によるデバイスを含むことができる要素を備えるシステムを示す図である。
【図７】この発明による方法を実行するためにトラフィックシェーピング手段を備えるこの発明によるデバイスの構造の一例を示す図である。
【図８】前述の時間ウィンドウを規定するサイクリックタイムテーブルの一例を示す図である。
【図９】この発明の実施の形態の一例による方法のステップを示す図である。
【発明を実施するための形態】
【００３４】
以下の本明細書では、「エクスプレストラフィック」(又は「エクスプレスフレーム」)は、低レイテンシーのスケジューリングされたトラフィック(又はフレーム)又はＴＴ(「タイムトリガー型」)トラフィック(又はフレーム)を示す一方、「ノーマルトラフィック」(又は「ノーマルフレーム」)は、レート制約型(ＲＣ)トラフィック、若しくはベストエフォート型(ＢＥ)トラフィック、又は他の任意の非エクスプレストラフィック(又はフレーム)を示す。
【００３５】
この発明は、上記に列挙した条件を保証することを可能にする、フレームスケジューリング及びフラグメンテーションメカニズムを組み合わせたものを提案する。
【００３６】
図６を参照すると、スケジューリング機能は、ネットワークＮＥＴのスイッチＳＷの出力ポートごとに設けられるデバイスＤに配置することもできるし、端末Ｔ１、Ｔ２からデータ又は音声データを送信する端末局(Ｔ１、Ｔ２)にフレーム送信機能を有するデバイスＤに配置することもできる。図７に示すように、デバイスＤの入力インターフェースＩＮを通じて受信される各フロー(Ｆ１、…、Ｆｉ、…、Ｆｍ)の着信フレームは、ワーキングメモリＭＥＭＡ内の独立したキュー(フローｉについてはＱｉ)にＦＩＦＯ順序(「先入れ先出し」)で記憶される。デバイスＤは、同期クロックデータＣＬＫ(ネットワーク又は同期された内部クロックから取得される)を用いてこの発明の方法を実行するプロセッサＰＲＯＣを更に備える。さらに、デバイスＤは、送信されるフレーム又はフラグメント(ＦＲ)にタイムスロットを割り当てる、図８において詳述するタイムテーブルＴＳＴを記憶するメモリＭＥＭＢ(ワーキングメモリＭＥＭＡと同じメモリユニットとすることもできるし、異なるメモリユニットとすることもできる)を備える。最後に、送信するフレーム又はフラグメント(図７では、ＦＲで参照される)は、図９を参照して以下で詳述するようにこの発明の実施によって、好都合な順序でデバイスの出力インターフェースＯＵＴにおいて受信される。もちろん、デバイスＤは、この発明の方法を実施するためにプロセッサＰＲＯＣによって実行されるコンピュータープログラムコード命令(ＩＮＳＴ)を記憶する第３のメモリＭＥＭＣを(ＭＥＭＡ及びＭＥＭＢと同じメモリユニット又は異なるメモリユニットに)更に有することができる。
【００３７】
デバイスＤは、端末Ｔ１、Ｔ２又はスイッチＳＷの独立したチップ等の自律的なデバイスとして実施することもできるし、代替的にそのような端末又はスイッチ(又はより広く言えば、ネットワークの任意の要素)のハードウェアリソース(プロセッサ及び／又はメモリユニット等)を用いることもできる。
【００３８】
図８を参照すると、タイムテーブルＴＳＴは以下のように用いられる。
時刻は、出力ポートに取り付けられた送信リンク上の１ビットの継続時間に対応する単位で表される。ネットワーク内の全てのノードは、好ましくは、同じクロックで同期され、現時刻ＣＬＫの同じイメージを有する。現在の時刻値は、以下ではＴとして示される。
【００３９】
各フローｉには、そのフローがノーマルであるか又はエクスプレスであるかを問わず、ｒｉで示すビットレートが関連付けられている。
すなわち、エクスプレスフローの反復する送信ウィンドウにおいて送信されるデータの量は、そのフローのビットレートを規定することを可能にし、
ノーマルフローには、ビットレート(最大、強制的か否かを問わない)を割り当てることができる。
全てのビットレートｒｉの合計は、リンクの全能力よりも大きくあってはならない。簡単にするために、全てのリンクは、好ましくは、以下においてρで示す同じ能力を有する(ただし、任意選択的である)。
【００４０】
各エクスプレスフローのフレームの送信は、周期パターンに従う。テーブルＴＳＴ(有限長)は、スケジューリングされた全てのエクスプレスフローの一連の全ての連続した送信ウィンドウのオープン時刻及びクローズ時刻(それぞれ、ｔｏｋ及びｔｃｋ)を含むことができる。これは、エクスプレスフレーム又はフラグメントが時間間隔［ｔｏｋ，ｔｃｋ］内で送信される一方、ノーマルフレーム又はフラグメントは、逆に、残された時間間隔［ｔｃｋ，ｔｏｋ＋１］において送信されることを意味する(ｋはｎを法とする)。ウィンドウは、オープンされているとき、そのウィンドウが提供されているエクスプレスフレームの送信を可能にすることができるように、各ウィンドウの継続時間は事前に計算されるという前提も置かれる。全てのエクスプレスウィンドウのオープン時刻及びクローズ時刻は、循環テーブルＴＳＴに記憶される(ｋ［ｎ］は、図８における円形矢印ＣＩＲＣによって示されている)。実際には、テーブルの各エントリーは、ウィンドウｋのオープン時刻及びクローズ時刻をそれぞれ表す対(ｔｏｋ，ｔｃｋ)である。テーブルの読み出しポインターがテーブルの最初の要素に巻き戻されるごとに、テーブルの深さに対応するオフセットがエントリーに追加される。この読み出しポインターは、現在の時刻値Ｔを考慮する。
【００４１】
ノーマルフローの場合、各フローキューの先頭に記憶された各ノーマルフレームは、そのフレームの最初のビットが送信されることになっている理論的な時刻に対応する理論的な送信時刻(ＴＴｉ)に関連付けられている。ＴＴｉは昇順にソートされ、最小のＴＴｉ(図９では、ｍｉｎ(ＴＴｉ)で参照される)を有するノーマルフレーム又はフラグメントが、多重化に挿入される次のノーマルフレーム又はフラグメントの候補である。
【００４２】
次に図９を参照する。
Ｓは、送信される現在のノーマルフレーム又はフラグメントのサイズであり、
ｍｉｎｆｓは、ＩＥＥＥ８０２．３ｂｒによって規定された最小フラグメントサイズ(その仕様におけるその値の表記によれば「ｍｉｎＦｒａｇ」)であり、
ｒｉは、フローｉのビットレートであり、
ρは、(ここで説明する例では)リンクの平均能力であり、
Δｔは、時間稼ぎステップＳ２の間の時間増分(例えば、１ビット送信の継続時間)であり、
ＴＴｉは、この発明の方法による計算の前に、キューＱｉにおけるフレーム又はフラグメントＦＲの最初のビットが送信されることになっている理論的な時刻である。
【００４３】
ノーマルフレーム又はフラグメントは、少なくとも以下の条件が満たされる場合に、多重化して挿入される(実際に送信される)。
ａ)Ｔ≧ｍｉｎ(ＴＴｉ)であり(図９におけるテストａ)からの矢印「ＯＫ」)、かつ、
ｂ)Ｔが現在の(ｔｏｋ，ｔｃｋ)ウィンドウに含まれず(図９におけるテストｂ)からの矢印「ＫＯ」)、かつ、
ｃ)Ｓ≧２＊ｍｉｎｆｓである(図９におけるテストｃ)からの矢印「ＯＫ」)。
「ＫＯ」はＮＯを表す。
【００４４】
条件ａ)は、現時刻Ｔが、ノーマルフレームの検討を開始するようになったことを意味する。
条件ａ)が系統的に検証された場合、システムは、各ノーマルフローがｒｉよりも大きなレートで送信されないことを保証する。ＲＣフロー間のみの公平性が、それらのそれぞれのビットレートｒｉによって表される重みに比例して達成される場合、条件ａ)を任意選択的なものとすることができることに留意すべきである。
【００４５】
条件ｂ)は、現時刻Ｔが時間ウィンドウｋ内(例えば、そのオープン時刻ｔｏｋとそのクローズ時刻ｔｃｋとの間)にある場合にエクスプレスフレームの送信に優先度を与えるために、現時刻Ｔが時間ウィンドウｋ内にあるか否かが調べられることを意味する。
【００４６】
条件ｃ)は、(上記条件ａ)及びｂ)が達成された場合に)ノーマルフレームをフラグメント化することができるか否かが調べられることを意味する。ノーマルフレームをフラグメント化することができない場合(テストｃ)の出力における矢印ＫＯ)、時間稼ぎステップＳ２が、継続時間［ｔｃｋ，ｔｏｋ＋１］(ｋ［ｎ］は、「ｋはｎを法とする」を意味する)がこのフラグメント化不能なノーマルフレームを送信するのに十分長くなるまで実行される。ノーマルフレームをフラグメント化することができる場合(テストｃ)の出力における矢印ＯＫ)、フラグメンテーションを良好で公平な条件で実行するために、更なるテスト及びステップが以下で詳述するように実施される。
【００４７】
プロセスは、最初のステップＳ１、すなわち、
送信するノーマルフレーム又はフラグメントを検討し(アルゴリズムは、送信の処理を行うノーマルフレーム及びフラグメントに専用化されたルーチンを指し示す−フレーム全体又はフラグメントを送信するために、このルーチンの共通のステップはアルゴリズム最適化に用いられる)、
次に、各キューにおいてＴＴｉを計算し、
現在のインデックスｋを有する現時刻ウィンドウを求めるために、テーブルＴＳＴを参照し、
現時刻値Ｔを求めるためにクロックを参照する、
ステップから開始する。
【００４８】
次に、ステップａ)が実行される。すなわち、ノーマルフレーム又はフラグメントを送信する現在のＴに達した場合、現在のウィンドウインデックスｋを検討して、現時刻が時間ウィンドウｋのクローズ後に含まれる(テストＴ３からの矢印ＯＫ)か否かが検証される。現時刻が時間ウィンドウｋのクローズ後に含まれるということは、その後にウィンドウインデックスｋを更新する必要があることを意味する(ｋ［ｎ］を用いたステップＳ４の増分)。次に、ステップｂ)が、優先権がエクスプレスフレームに与えられるか否かを判断するために実行される。優先権が与えられない場合(テストｂ)からの矢印ＫＯ)、ノーマルフレームをフラグメント化することができるか否かが判断される。フラグメント化することができない場合(テストｃ)からの矢印ＫＯ)、フレームをフラグメント化することができないという情報(テストｃ)からの点線矢印ラインＫＯ)を用いてテストＴ６を実行することができる。テストＴ６において、次のウィンドウがオープンするｔｏｋまでの残りの時間Ｔとリンク能力ρとを考慮しながら、完全なフレーム全体を送信することができるか否かが判断される。送信することができる場合(テストＴ６からの矢印ＯＫ)、フレームＦＲはステップＳ７において送信される。次のフレーム(又は後に見られるようなフラグメント)を送信するための次のスケジューリングされた時刻ＴＴｉは、サイズＳを有する新たなフレームを送信するフロービットレートｒｉを考慮しながら、ステップＳ８において更新される。ステップＳ７において送信される最新のフラグメント(通常はその先頭)を読み出して、そのフラグメントがフレームの最後であったか否かを判断するために、テストＴ９が更に実行される。このアルゴリズムに従う本分岐では、完全なフレームがステップＳ７において送信されるので、テストＴ９の出力は「ＯＫ」であることになり、次の候補フレームが検討対象となり(ステップＳ１０)、再びステップＳ１に関して処理される。
【００４９】
テストＴ６によると完全なフレーム全体を送信することができない場合(フレームをフラグメント化することができないという情報を有する、テストＴ６からの点線矢印ラインＫＯ)、フレーム全体を送信するのに十分長い新たな時間間隔［ｔｃｋ，ｔｏｋ＋１］を待機するために、時間稼ぎステップがステップＳ２において実行される。
【００５０】
フレームをフラグメント化することができる場合(ステップｃ)からの矢印ＯＫ)、フラグメンテーションが考慮され、テストＴ５において、次のウィンドウがオープンするまでの残された時間が、継続時間ｍｉｎｆｓを有するフラグメントを送信するのに十分長いか否かが調べられる。十分長い場合には(テストＴ５からの矢印ＯＫ)、フレーム全体を送信することができるか否かが(上記で説明したテストＴ６において)更に調べられる。フラグメントしか送信することができない場合(フレームをフラグメント化することができるという情報を有する、テストＴ６からの矢印ＫＯ)、テストＴ１２において、次のウィンドウがオープンするまでの残りの時間が完全なフレームの残りの部分を送信するのに十分であるか否かが調べられる(テストＴ１２の矢印「ＫＯ」。このテストＴ１２の条件は、(ｔｏｋ−Ｔ)ρ≧Ｓ−ｍｉｎｆｓと記述することもでき、その場合、これは、次の送信フレーム又はフラグメントを妨害することなく、ステップＳ１３において、長さＳ−ｍｉｎｆｓを有する少なくとも１つのフラグメント(完全なフレームを構築するための補完的なもの)を作成して送信することができることを意味する)。次に、スケジューリングされた時刻ＴＴｉが、それに応じてステップＳ１４において更新され、ステップＳ１５において，検討対象となる次のフレームの長さも更新される。次に、そのフラグメントがフレームの最後であるか否かを調べることができる(テストＴ９)。通常、調べられるべきである。それでも、最後のステップ(図９に図示せず)は、送信するフレームの最後に追加するＦＣＳ(フレーム検査シーケンス)を計算することからなることができるので、図示した例では、それを調べることが好ましい。
【００５１】
(ｔｏｋ−Ｔ)ρ≦Ｓ−ｍｉｎｆｓである場合(テストＴ１２からの矢印ＯＫであるとともにテストＴ５において(ｔｏｋ−Ｔ)＊ρ≧ｍｉｎｆｓである)である場合、これは、ステップＳ１６において少なくとも１つのフラグメント(ただし、フレームを終了する最後のフラグメントではない)を作成して送信することができることを意味する。フラグメントの長さは、ステップＳ１６において(ｔｏｋ−Ｔ)＊ρによって与えられる。次に、スケジューリングされた時刻ＴＴｉが、それに応じてステップＳ１７において更新され、ステップＳ１８において、検討対象となる次のフレームの長さも更新される。次に、そのフラグメントがフレームの最後であるか否かを調べることができる(テストＴ９)。ここでは、これは調べられることもあるし、調べられないこともある。調べられない場合(テストＴ９からの矢印ＫＯ)、次のフラグメントを用いてステップＳ１を再度実施するために、次のフラグメントがステップＳ１１において検討対象となる。
【００５２】
ステップＳ１が再度実施されるとき、(異なるフローＦ１、…、Ｆｍの)キューＱ１、…、Ｑｍ内のそれぞれの時刻ＴＴｉは、ステップＳ８、Ｓ１４及びＳ１７のうちの１つにおいて更新されており、現時刻Ｔも、フラグメント又はフレームの送信中にステップＳ７、Ｓ１３、Ｓ１６のうちの１つにおいて進んでいることに留意すべきである。したがって、これらのパラメーターＴＴｉ及びＴは、必然的に更新され、(ステップＳ４においても更新することができる現在のウィンドウインデックスｋとともに)ステップＳ１において用いられる準備がなされる。
【００５３】
図９に示すアルゴリズムの主なステップを以下に列挙する。
ａ)Ｉｆ  Ｔ≧ｍｉｎ(ＴＴｉ)、及び
ｂ)Ｉｆ  Ｔが現在の(ｔｏｋ、ｔｃｋ)ウィンドウに含まれない、及び
ｃ)Ｉｆ  Ｓ≧２＊ｍｉｎｆｓ、
Ｉｆ  (ｔｏｋ−Ｔ)＊ρ≧ｍｉｎｆｓ
Ｉｆ  (ｔｏｋ−Ｔ)＊ρ≧Ｓ
フレーム又は最終フラグメントを送信する
ＴＴｉ＝ＴＴｉ＋(Ｓ／ｒｉ)
次のフレーム又はフラグメントの送信候補を選択する
Ｅｌｓｅ
Ｉｆ  (Ｔ＋Ｓ／ρ)−ｔｏｋ≧ｍｉｎｆｓ／ρ
長さ(ｔｏｋ−Ｔ)＊ρのフラグメントを作成して送信する
ＴＴｉ＝ＴＴｉ＋((ｔｏｋ−Ｔ)＊ρ／ｒｉ)
Ｓ＝Ｓ−(ｔｏｋ−Ｔ)＊ρ
次のフラグメント又はフレームの送信候補を選択する
Ｅｌｓｅ
長さ(Ｓ−ｍｉｎｆｓ)のフラグメントを作成して送信する
ＴＴｉ＝ＴＴｉ＋((Ｓ−ｍｉｎｆｓ)／ｒｉ)
Ｓ＝ｍｉｎｆｓ
次のフラグメント又はフレームの送信候補を選択する
Ｅｎｄｉｆ
Ｅｎｄｉｆ
Ｅｎｄｉｆ
Ｅｌｓｅ
Ｉｆ(Ｔ＋Ｓ／ρ)＜ｔｏｋ
フレーム又は最終フラグメントを送信する
ＴＴｉ＝ＴＴｉ＋(Ｓ／ｒｉ)
次のフレーム又はフラグメントの送信候補を選択する
Ｅｎｄｉｆ
Ｅｎｄｉｆ
【００５４】
この発明は、作業負荷(計算時間、プロセススケジューリング等)を時間において共有しなければならないいずれの領域にも適用することができる。それらの場合に、特定の変更は行われない。
【００５５】
この発明は、様々な時間制約(厳しいリアルタイム性(例えば、臨界制御ループ)からより緩やかなレイテンシー及び同期(オーディオビデオトランスポート)並びにベストエフォート型に及ぶ)を有する用途の混合したものをサポートするネットワークにおいて適用することができる。
【００５６】
この発明は、例えば、時間的制約のある制御ネットワーク(又はファクトリーオートメーション、若しくは自動車若しくは公共事業設備若しくは列車等における任意のネットワーク)において実施することができる。
【００５７】
この発明は、標準的な実装問題(standard implementation problem)を解決するが、ＩＥＥＥ８０２．１ＴＳＮ内の他の任意の「送信選択」メカニズムの標準化のサポートとして用いることができ、その場合、極低レイテンシー及びネットワーク負荷共有最適化をネットワークトラフィックシェーピングに提供する。
【００５８】
図７に示すような並列キュー(Ｑ１、…、Ｑｍ)における幾つかのフローの処理が上記で詳細に説明されてきた。しかしながら、この発明は、１つの単一フローの単一キューを用いて実行することもできる。その場合、このキューの各フレーム又は各フラグメントは、どのフラグメント又はフレームを図９に示すステップの次の実施において処理するのかを判断するために、それらのステップの各実施の際に更新及び再配列することができる処理時刻ＴＴｉを有する。
【００５９】
この発明は、コンピュータープログラム製品に組み込むことができ、このコンピュータープログラム製品は、本明細書において説明した方法の実施を可能にする全ての特徴を含み、情報処理システム(例えば、ユーザー機器又はネットワーク要素)にロードされると、この情報処理システムにこの発明を実行させる。本文脈におけるコンピュータープログラム手段又はコンピュータープログラムは、情報処理能力を有するシステムに特定の機能を直接又は別の言語への変換後に実行させるように意図された一組の命令の任意の言語、コード又は表記による任意の表現を意味する。そのようなコンピュータープログラムは、コンピューター可読媒体又はマシン可読媒体に記憶することができ、これによって、データ、命令、メッセージ又はメッセージパケット、及び他のマシン可読情報をこの媒体から読み出すことが可能になる。コンピューター可読媒体又はマシン可読媒体は、ＲＯＭ、フラッシュメモリ、ディスクドライブメモリ、ＣＤ−ＲＯＭ、及び他の永久記憶装置等の不揮発性メモリを含むことができる。加えて、コンピューター可読媒体又はマシン可読媒体は、例えば、ＲＡＭ、バッファー、キャッシュメモリ、及びネットワーク回路等の揮発性記憶装置を含むことができる。さらに、コンピューター可読媒体又はマシン可読媒体は、一時的状態媒体におけるコンピューター可読情報又はマシン可読情報を含むことができ、この一時的状態媒体は、有線ネットワーク又は無線ネットワークを含むネットワークリンク及び／又はネットワークインターフェース等であり、デバイスがそのようなコンピューター可読情報又はマシン可読情報を読み取ることを可能にするものである。
【００６０】
現在のところ、この発明の好ましい実施の形態と考えられるものを図示及び説明してきたが、この発明の真の範囲から逸脱することなく、様々な他の変更を行うことができること及び等価なものに取り替えることができることが当業者によって理解されるであろう。加えて、本明細書において説明した中心の発明概念から逸脱することなく、特定の状況をこの発明の教示に適合させるように多くの変更が行うことができる。さらに、この発明の一実施の形態は、上記で説明した特徴の全てを含むとは限らない場合がある。したがって、この発明は、開示された特定の実施の形態に限定されるものではなく、この発明は、上記で広く画定されたこの発明の範囲内に含まれる全ての実施の形態を含むことが意図されている。
【００６１】
当業者であれば、この発明の範囲から逸脱することなく、上記説明において開示された様々なパラメーターを変更することができ、開示された及び／又は請求項に記載された様々な実施の形態を組み合わせることができることを容易に理解するであろう。
【産業上の利用可能性】
【００６２】
この発明は、多種の分野においてネットワークに適用可能である。
【図１】
0006395170.tif 000002
【図２】
0006395170.tif 000003
【図３】
0006395170.tif 000004
【図４】
0006395170.tif 000005
【図５】
0006395170.tif 000006
【図６】
0006395170.tif 000007
【図７】
0006395170.tif 000008
【図８】
0006395170.tif 000009
【図９】
0006395170.tif 000010