(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-21
(45)【発行日】2022-01-31
(54)【発明の名称】通信信号フレームを送信する方法、エンティティ及びプログラム
(51)【国際特許分類】
H04L 47/56 20220101AFI20220124BHJP
H04L 47/629 20220101ALI20220124BHJP
H04L 49/9023 20220101ALI20220124BHJP
H04L 47/22 20220101ALI20220124BHJP
【FI】
H04L47/56
H04L47/629
H04L49/9023
H04L47/22
(21)【出願番号】P 2019537015
(86)(22)【出願日】2018-03-20
(86)【国際出願番号】 JP2018012254
(87)【国際公開番号】W WO2018174302
(87)【国際公開日】2018-09-27
【審査請求日】2019-07-05
(32)【優先日】2017-03-22
(33)【優先権主張国・地域又は機関】EP
(31)【優先権主張番号】PCT/JP2018/003708
(32)【優先日】2018-01-26
(33)【優先権主張国・地域又は機関】JP
【前置審査】
(73)【特許権者】
【識別番号】503163527
【氏名又は名称】ミツビシ・エレクトリック・アールアンドディー・センター・ヨーロッパ・ビーヴィ
【氏名又は名称原語表記】MITSUBISHI ELECTRIC R&D CENTRE EUROPE B.V.
【住所又は居所原語表記】Capronilaan 46, 1119 NS Schiphol Rijk, The Netherlands
(74)【代理人】
【識別番号】100110423
【氏名又は名称】曾我 道治
(74)【代理人】
【識別番号】100111648
【氏名又は名称】梶並 順
(74)【代理人】
【識別番号】100122437
【氏名又は名称】大宅 一宏
(74)【代理人】
【識別番号】100147566
【氏名又は名称】上田 俊一
(74)【代理人】
【識別番号】100161171
【氏名又は名称】吉田 潤一郎
(72)【発明者】
【氏名】マンガン、クリストフ
【審査官】大石 博見
(56)【参考文献】
【文献】国際公開第2016/129205(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 47/56
H04L 47/629
H04L 49/9023
H04L 47/22
(57)【特許請求の範囲】
【請求項1】
パケット交換ネットワークにおいて通信エンティティのコンピューター手段によって実施される方法であって、前記通信エンティティは、通信信号のフレームを送信する少なくとも1つのポートを含み、前記フレームは、
トラフィックシェーピングが規定された複数のストリーム内で送信されるように意図された第1のタイプのフレーム(SF)と、
トラフィックシェーピングが規定されていない第2のタイプのフレーム(UF)であって、各フレームは、前記第2のタイプのフレームのみのフラグメントを送信するように細分化することができる、第2のタイプのフレームと、
を含み、
前記通信エンティティは、
前記第1のタイプのフレームの複数の第1のキューであって、前記第1のキュー(Qi)は、前記複数のストリームにそれぞれ関連付けられる、前記第1のタイプのフレームの複数の第1のキューと、
前記第2のタイプのフレームのための少なくとも1つの第2のキュー(Qu)と、
を記憶し、
第1のタイプのフレームの送信と、
少なくとも2つの第1のタイプのフレームの送信同士の間の、少なくとも1つの第2のタイプのフレームの少なくともフラグメントの送信と、
をスケジューリングし、
第2のタイプのフレームのみのフラグメントを送信することを判断するために、前記通信エンティティは、
送信中である前記フラグメントのサイズが閾値(MinFragSize)以上であるか否か、かつ、
前記第2のタイプのフレームの残りのフラグメントのサイズが前記閾値以上であるか否か、
を判断し、これらの2つの条件が満たされるのではない場合、フラグメントの送信を継続し、
前記第1のキュー及び前記第2のキューの各々は、先入れ先出し型バッファー(BUFF)に記憶され、第1のタイプのフレームが割り当てられるキューは、前記第1のタイプのフレームの特徴に依存して、前記第1のタイプのフレームが属する前記ストリームに従って決定され、
前記第1のタイプのフレームの前記特徴は、フレーム長と、前記第1のタイプのフレームが属する前記ストリームの現在のレートとを含み、
各第1のタイプのフレームの前記送信のために前記第1のタイプのフレームのキューにおいて割かれる時間が計算され、前記第1のタイプのフレームの前記送信のために割かれるそれぞれの時間に従って、前記第1のタイプのフレームのためにそれぞれの送信時間がスケジューリングされ
、
シェーピングされたストリームに属するフレームが、各第1のキューの先頭において配置されたフレームのスケジューリングされた送信時間(TTTi)を比較することによって、送信のために選択され、最小のスケジューリングされた送信時間(miniTTTi)に関連付けられたフレームは、送信のための次の候補として選択され、
前記通信エンティティは、前記次の候補の送信のいかなるレイテンシーをも回避するように、送信のための前記次の候補を含む前記第1のキューの少なくとも1つの前記先頭においてプローブフレーム(PF)を挿入する、
方法。
【請求項2】
前記通信エンティティは、現在の時間(T)を求める時間計測を実行し、
前記次の候補に関連付けられた前記スケジューリングされた送信時間(TTTk)が前記現在の時間(T)以下である場合、かつ、
他の第1のタイプのフレームが現在送信されていない場合、かつ、
第2のタイプのフレーム又はフラグメントが現在送信されていない場合、
前記次の候補の送信を実施する、請求項
1に記載の方法。
【請求項3】
前記通信エンティティは、第2のタイプのフレーム又はフレームフラグメントが送信されているか否かを判断し、送信されている場合、前記第2のタイプのフレーム又はフレームフラグメントの送信を中断するために前記第2のタイプのフレーム又はフレームフラグメントを更に細分化することができ、それにより、前記次の候補の送信を可能にすることができるか否かを判断する、請求項
1又は
2に記載の方法。
【請求項4】
前記通信エンティティは、
送信が中断されることになる前記第2のタイプのフレーム又はフレームフラグメントのサイズが前記閾値(MinFragSize)よりも大きい場合、かつ、
前記中断後に前記第2のキュー内に残るフレームフラグメントのサイズが前記閾値よりも大きい場合、
前記第2のタイプのフレーム又はフレームフラグメントの細分化を実施する、請求項
3に記載の方法。
【請求項5】
前記通信エンティティは、現在の時間を求める時間計測を実行し、
第1のタイプのフレームが現在送信されていない場合、かつ、
第1のキューの先頭において配置された第1のタイプのフレームが前記現在の時間(T)以下のスケジューリングされた送信時間(TTTi)を有しない場合、
フラグメント送信の観点において第2のタイプのフレーム細分化を実施する、請求項1~
4のいずれか1項に記載の方法。
【請求項6】
パケット交換ネットワークにおいて通信信号フレームを送信する少なくとも1つのポートを含み、請求項1~
5のいずれか1項に記載の方法を実行するコンピューター回路を更に備える、通信エンティティ。
【請求項7】
プロセッサによって実行されると、請求項1~
5のいずれか1項に記載の方法を実行する命令を含む、コンピュータープログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パケット交換ネットワーク管理に関する。
【背景技術】
【0002】
レイテンシー及び伝送遅延変動を受けることが不可能である制御データのトランスポートを可能にするレイヤー2機能の導入に起因して、パケット交換ネットワークが産業用制御応用にますます用いられている。
【0003】
例えば、低レイテンシーサンプリングデータ、(閉ループにおけるもの)制御及び画像ストリーミング(例えば、画像処理)は、非常に厳格なレイテンシー要件を有する。制御ループの一部としての画像ストリーミング及び関連付けられた処理は、収束ネットワークにおいて提供することができるベストエフォートトランスポートよりも多大な要件を有する。同時に、ベストエフォートストリームはタイムクリティカルではなく、むしろ干渉ストリームの一定の発生源を提供する。
【0004】
特に産業分野のバス:EtherCAT(登録商標)、Ethernet Powerlink(登録商標)、TCnet(登録商標)、PROFINET(登録商標)等の要件に対する交換Ethernet(登録商標)の適合のために、解決策が漸進的に開発されている。
【0005】
全てのこれらの解決策は、スケジューリングされたストリームのサポートを提供する、標準Ethernetプロトコルに対する特定の追加物に依拠している。
【0006】
これらの適合によって用いられる共通のスキームは、時間ウィンドウにおける送信多重化の編成に基づいており、各ウィンドウは、特定のストリームのために予約されている。時間ウィンドウの数及び反復周波数は、応用の要件に従って決定される。
【0007】
スケジューリングされたストリームを生成する(産業用制御)応用が周期的活動を有することを考慮して、送信多重化は、周期的サイクルにおいて編成される。
図1を参照すると、各サイクルは、スケジューリングされた(低レイテンシー)フレームSF送信のために予約された一連の時間ウィンドウSTWを含み、送信機会の残りは、スケジューリングされていないストリームに充てられる。
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、いくつかの他の制御応用は、さほど厳格ではないレイテンシー要件及びジッタ要件を有する。例えば、これらの応用の中に埋め込み型自動車制御ネットワーク(embedded automotive control networks)がある。これらの環境において、選ばれたトラフィック管理方法が、限られたジッタ、限度を設けられたレイテンシー及びクリティカルな制御ストリームに対する0パケットロスを保証することを仮定すると、スケジュール、及び、トラフィックソースのネットワークとの同期の計算によって要求される追加のネットワークエンジニアリングを回避することができる。
【0009】
ネットワーク中で確保されるとともにソースによってネットワークとネゴシエートされる所定のデータレートに従うトラフィックシェーピングは、これらの性能目標を達成するために良好に適合された技法である。このトラフィックシェーピングは、送信遅延限度と、シェーピングされたストリーム同士の間の公平性とを保証する手段を提供する。
【0010】
シェーピングされたストリームとシェーピングされていないストリームとの間の干渉に起因したレイテンシーの潜在的な発生源を更に削減するために、プリエンプションメカニズムを導入することもできる。プリエンプションは、
図2に示すように、シェーピングされていないストリーム送信機会とシェーピングされたストリーム送信機会との間の移行部において介入する。特に、そのような移行部において、シェーピングされたストリーム送信機会SFTOの開始は、シェーピングされていないストリームの送信機会の終了に重なる可能性がある。そのような場合、シェーピングされたストリームのフレームSFは、シェーピングされていないストリームのフレームUFの現在の送信が終了するまで、送信することができない。
【0011】
図2に更に示すように、シェーピングされていないフレームUFの残留部分の送信機会をプリエンプトすることによって、シェーピングされたストリームSFが被ることになる追加遅延を回避することが可能である。したがって、プリエンプション動作を容易にするために、シェーピングされていないストリームのフレームを、(
図2の下側部分に示すように、frag#1の送信を用いて)細分化することができ、それにより、シェーピングされたストリームの送信機会が完了するまで、残りのフラグメント(複数の場合もある)(
図2の例におけるfrag#2)の送信を遅延させる。
【0012】
これまでのところ、スケジューリングされたストリームとスケジューリングされていないストリームとの間の効率的な連携機能を提供するために、以下のものが提案されている。
【0013】
異なるタイプのストリーム(スケジューリングされたストリーム及びスケジューリングされていないストリーム)のための時間ウィンドウの予約に依拠するスケジューリングスキームを規定する、IEEE802.1Qbvのような第1のタイプの標準規格。
【0014】
通常、スケジューリングされたストリームに属する、いわゆる「エクスプレス(express)」フレームの同時送信の際に、いわゆる「ノーマル(normal)」フレームに適用される細分化メカニズムを指定するプリエンプションスキームを規定する、IEEE802.3br及びIEEE802.1Qbuのような第2のタイプの標準規格。
【0015】
IEEE802.1Qbvは、周期的カレンダー表に基づいており、この周期的カレンダー表の各エントリは、特定のクラスのストリーム(例えば、スケジューリングされたもの又はスケジューリングされていないもの)の送信のために予約された時間ウィンドウを規定している。
【0016】
したがって、これらの標準規格は、上記の産業標準規格によって提供されるサービスと同様のサービスを提供することができる、最小レイテンシーでの周期的にスケジューリングされたストリームのトランスポートの完全なフレームワークを提供する。
【0017】
IEEE802.3brにおいて指定されるメカニズムにより、シェーピングされたトラフィックの送信機会が開始する前に、「エクスプレス」トラフィック(ここでは、シェーピングされたストリーム)を有するMACクライアントが「ノーマル」フレームの送信(シェーピングされていないストリームに属する)をプリエンプトすることが可能になる。シェーピングされたストリームに属するフレームが送信のためにスケジューリングされると、このフレームは、即時送信することができる。
【0018】
加えて、IEEE802.3br標準規格は、ホップ単位細分化(per-hop fragmentation)、及び、ノーマルフレームの送信を停止してエクスプレスフレームに送信機会を与えることを可能にするノーマルフレームの再構築スキームを規定する。ノーマルフレームフラグメントとエクスプレスフレームとは、それらのプレアンブル長及び「フレームデリミター開始(Start of Frame Delimiter)」フィールドによって区別される。これにより、非エクスプレスフレーム(ノーマルフレーム)が、送信される前に過度に長いタイムスロットの間待機しないことが可能になる。この結果、ノーマルフローについての追加レイテンシーが限られたものとなるとともに、リンク容量の使用がより良好になる。
【0019】
いずれの時点においても(同じリンク上で又は同じ送信ポートにおいて)単一のノーマルフレームしか細分化することができないことに留意されたい。
【0020】
最小プリエンプトフラグメントサイズは、64バイトである。したがって、128バイト未満の長さを有するパケットは、プリエンプトすることも、(最終的に64バイト未満のフラグメントのままにすることはないので)最終的に細分化することもできない。その上、中間(non-final)フラグメントは、8バイトの倍数の長さを有する。
【0021】
これまでのところ、スケジューリングされていないストリームに属するフレーム又はフラグメントに干渉することに起因した残留レイテンシーの追加は、ノーマル(非エクスプレス)ストリームに専用の送信ウィンドウの開始及び終了の厳密な時間が利用可能であるために回避することができる。実際、次のエクスプレストラフィック送信ウィンドウが開始する時点を知ることにより、エクスプレストラフィック送信ウィンドウとの重複を何ら伴わずに、送信されることになるノーマルフレーム又はフラグメントを選択することが可能になる。
【0022】
しかしながら、クリティカルデータ転送がシェーピングされたストリーム又は少なくともレート制御されたストリームによってサポートされる場合(そのような転送が超低レイテンシーを要求しないときでさえ)、これらのストリームが、非クリティカルフレーム又はフラグメント送信と干渉することに起因した追加レイテンシーを被ることがないことを保証するメカニズムは規定されていない。
【0023】
現行の細分化標準規格(IEEE802.3br及び802.1Qbu)に基づいた現行技術水準の解決法を用いることで、シェーピングされたストリーム及びシェーピングされていないストリームの多重化は、プリエンプションから利益を得ることができるものの、依然として、シェーピングされていないストリームに属するフレームフラグメントの送信に起因した残留レイテンシーを被る。
【課題を解決するための手段】
【0024】
本発明は、この状況を改善することを目的とする。
【0025】
したがって、本発明は、パケット交換ネットワークにおいて通信エンティティのコンピューター手段によって実施される方法であって、上記通信エンティティは、通信信号フレームを送信する少なくとも1つのポートを含み、上記フレームは、
トラフィックシェーピングが規定された複数のストリーム内で送信されるように意図された第1のタイプのフレームと、
トラフィックシェーピングが規定されていない第2のタイプのフレームであって、各フレームは、この第2のタイプのフレームのフラグメントのみを送信するように細分化することができる、第2のタイプのフレームと、を提案する。
【0026】
より詳細には、通信エンティティは、第1のタイプのフレームの複数の第1のキューであって、この第1のキューは、上記複数のストリームにそれぞれ関連付けられる、第1のタイプのフレームの複数の第1のキューと、第2のタイプのフレームのための少なくとも1つの第2のキューとを記憶する。したがって、通信エンティティは、第1のタイプのフレームの送信と、少なくとも2つの第1のタイプのフレーム同士の間の、少なくとも1つの第2のタイプのフレームの少なくともフラグメントの送信とをスケジューリングすることができる。その上、そのため、第2のタイプのフレームのフラグメントのみを送信することを判断するために、通信エンティティは、送信されることになるフラグメントのサイズが閾値よりも大きいか否か、かつまた、上記第2のタイプのフレームの残りのフラグメントのサイズがその閾値よりも大きいか否かを更に判断することができる。他の状況において、すなわち、これらの2つの条件が満たされるのではない場合、通信エンティティは、フラグメント送信を阻止する。
【0027】
したがって、本発明の実施によって、シェーピングされたトラフィックのために予約された送信機会の開始時点及び終了時点がシェーピングされたストリームの送信に沿って動的に求められ、シェーピングされていないフラグメント又はフレーム(上述の「第2のタイプ」のフレーム)の送信機会のための時間境界を提供するように、シェーピングされたストリーム(上述の「第1のタイプ」のフレーム)に属するフレームの送信を編成することが可能である。
【0028】
可能な実施形態において、上記第1のキュー及び上記第2のキューの各々は、先入れ先出し型バッファーに記憶され、第1のタイプのフレームが割り当てられるキューは、この第1のタイプのフレームの特徴に依存して、第1のタイプのフレームが属するストリームに従って決定される。通常、フレームのヘッダー内に与えられる情報を用いて、そのフレームのタイプ(シェーピングされたトラフィックに属するのか又はシェーピングされていないトラフィックに属するのか)を特定することができる。さらに、上記第1のタイプのフレームの特徴は、そのフレーム長と、その第1のタイプのフレームが属するストリームの現在のレートとを含むことができる。したがって、各第1のタイプのフレームの送信のために、この第1のタイプのフレームのキューにおいて割かれる時間を(従来的に、フレームの長さをストリームレートで除算することによって)計算することができ、それに応じて、第1のタイプのフレームのためにそれぞれの送信時間をスケジューリングすることができる。
【0029】
したがって、本実施形態において、シェーピングされたストリームに属するフレームが、各第1のキューの先頭において配置されたフレームのスケジューリングされた送信時間(以降TTTiと表記する)を比較することによって、送信のために選択されることができ、最小のスケジューリングされた送信時間(以降miniTTTiと表記する)に関連付けられたフレームは、送信のための次の候補として選択される。
【0030】
したがって、通信エンティティが現在の時間を求める時間計測を実行することができる一実施形態では、通信エンティティは、
上記次の候補に関連付けられた、スケジューリングされた送信時間が現在の時間以下である場合、かつ、
他の第1のタイプのフレームが現在送信されていない場合、かつ、
第2のタイプのフレーム又はフラグメントが現在送信されていない場合、
上記次の候補の送信を実施することができる。
【0031】
通信エンティティは、第2のタイプのフレーム又はフレームフラグメントが現在送信されているか否かを更に判断することができ、送信されている場合、この第2のタイプのフレーム又はフレームフラグメントの送信を中断するためにこの第2のタイプのフレーム又はフレームフラグメントを更に細分化することができ、それにより、上記次の候補の送信を可能にすることができるか否かを判断することができる。
【0032】
本実施形態において、通信エンティティは、
送信が中断されることになる上記第2のタイプのフレーム又はフレームフラグメントのサイズが上記閾値よりも大きい場合、かつ、
中断後に上記第2のキュー内に残るフレームフラグメントのサイズが閾値よりも大きい場合、
上記第2のタイプのフレーム又はフレームフラグメントの細分化を実施することができる。
【0033】
一実施形態では、第2のタイプのフレームの送信のために、通信エンティティは、現在の時間を求める時間計測を実行することができ、
第1のタイプのフレームが現在送信されていない場合、かつ、
第1のキューの先頭において配置された第1のタイプのフレームが現在の時間以下のスケジューリングされた送信時間を有しない場合、
フラグメント送信の観点において第2のタイプのフレーム細分化を実施することができる。
【0034】
その上、第1のタイプのフレームの送信のレイテンシーを制限するように提供することができ、そのために、通信エンティティは、次の候補の送信のいかなるレイテンシーをも回避するように、送信のための次の候補を好ましくは含む第1のキューのうちの少なくとも1つの先頭においてプローブフレームを挿入することができる。
【0035】
また、本発明は、パケット交換ネットワークにおいて通信信号フレームを送信する少なくとも1つのポートを含み、上記で規定した方法を実行するコンピューター回路を更に備える、通信エンティティを目的とする。そのような通信エンティティの実施形態の一例が、以下で言及する
図4に示される。
【0036】
また、本発明は、プロセッサによって稼働されると、上記で規定した方法を実行する命令を含む、コンピュータープログラム製品も目的とする。そのようなコンピュータープログラムの全体アルゴリズムは、以下で言及する
図5、
図6、
図9、及び
図10に対応するフローチャートによる例を用いて示すことができる。
【0037】
より包括的には、本発明は、添付図面の図に、限定としてではなく例として示される。添付図面において、同様の参照符号は同様の要素を参照する。
【図面の簡単な説明】
【0038】
【
図1】従来技術による送信多重化のサイクリック編成を示す図である。
【
図2】シェーピングされたフレーム送信を保証する、シェーピングされていないフレーム細分化を示す図である。
【
図3】本発明による、通信エンティティの送信ポート(又は以降では「出力ポート」)におけるシェーピングされたキュー及びシェーピングされていないキューを示す図である。
【
図4】本発明の一実施形態による、通信エンティティのコンピューター回路(FPGA、集積チップ、又は他の任意のコンピューター回路)を概略的に示す図である。
【
図5】通信エンティティの送信ポートによって送信されることになるフレームを生成する通信エンティティの入力ポート及び/又は他の部分によって実行される動作を示す図である。
【
図6A】自身の送信ポートからシェーピングされたフレームを送信する通信エンティティによって実行される動作を示す図である。
【
図6B】自身の送信ポートからシェーピングされたフレームを送信する通信エンティティによって実行される動作を示す図である。
【
図7A】シェーピングされていないフレームのフラグメント送信の場合の、
図6A及び
図6Bの実施形態と一致する、シェーピングされたフレームのための送信条件を示す図であり、ここで、スケジューリングされた送信時間は、右([miniTTTi]1)から左([miniTTTi]2)に向かうものである。
【
図7B】シェーピングされていないフレームのフラグメントを送信することが不可能な場合の、
図6A及び
図6Bの実施形態と一致する、シェーピングされたフレームのための送信条件を示す図であり、ここで、スケジューリングされた送信時間は、右([miniTTTi]1)から左([miniTTTi]2)に向かうものである。
【
図8】シェーピングされていないフレームのための送信条件及び細分化条件を示す図である。
【
図9】シェーピングされていないフレーム又はフラグメントの送信が既に進行中である(テストS26からの矢印Y)場合の、
図8と一致する、自身の送信ポートからシェーピングされていないフレームを送信する通信エンティティによって実行される動作を示す図である。
【
図10】シェーピングされていないフレーム又はフラグメントの送信が現在進行していない(
図10を開始するテストS26からの矢印N)場合の、
図8と一致する、自身の送信ポートからシェーピングされていないフレームを送信する通信エンティティによって実行される動作を示す図である。
【発明を実施するための形態】
【0039】
本発明の実施により、ネットワークにおいて直面する連続多重化ステージにおいてシェーピングされたストリームが被るレイテンシーを制限することが可能になる。このために、本発明は、シェーピングされていないストリームに適用されるプリエンプションと連携して、シェーピングされたストリームに対して専用である送信機会を動的に規定するのに用いられる時間ベーススケジューリングメカニズムを利用する。時間ベーススケジューリングメカニズムによって提供されるタイミング情報により、シェーピングされたストリーム送信機会同士の間の送信のためのフレーム又はフラグメント候補のサイズを求めることが可能になる。
【0040】
以降、標準規格IEEE802.3brにおいて規定されるエクスプレスフレームは、シェーピングされたストリームに属するフレームである。
【0041】
標準規格IEEE802.3brにおいて規定されるノーマルフレームは、シェーピングされていないストリーム(通常、いわゆる「ベストエフォート」トランスポートサービスをサポートする)に属するフレームである。
【0042】
ノーマルフレームは、標準規格IEEE802.3brのように複数のフラグメントに分割することができる。
【0043】
多重化スキーム及びこれに伴うパラメーターが、
図3を参照して以下で記載される。
【0044】
各シェーピングされたストリームiは、送信レートRiに関連付けられるとともに、パケット交換ネットワークの各通信エンティティの出口ポートにおけるキューQiに関連付けられる。一実施形態では、通信エンティティは、ストリームが通過する多重化ノードとすることができる。代替的な一実施形態では、通信エンティティは、ピアツーピア通信構成において受信フレームを送信し、及び/又は、単に自身のフレームを発信する端末とすることができる。
【0045】
上述の送信レートRiは、ビット毎秒の単位で表される。全てのシェーピングされたストリームiについて、Riの総和は、総リンク(又はポート)送信レートρ未満である。さらに、送信するパケットは、オクテットから構成されることが想定されており、各オクテットは8ビットに対応し、これは、図面(例えば、以下で言及される
図10のテストS35)において後に登場する値「8」を説明する。
【0046】
Riは、シグナリング又はネットワーク管理を用いて、ストリームiによってトラバースされる連続ノードにおいて確保される。
【0047】
ストリームiのパケットは、メモリバッファーに、キューQiにおける順序を規定するFIFO(先入れ先出し法)に従って編成されて、記憶される。
【0048】
時間は、ビット送信時間(リンクレートにおける)ごとに増分される変数Tによって表され、通常、ノードの全てのリンク及びポートについて同じである。
【0049】
各シェーピングされたストリームiは、ストリームコンテキストSCiに関連付けられる。ストリームコンテキストSCiは、シェーピングメカニズムのために要求される変数、例えば、
出力ポートにおける関連付けられた、シェーピングされた送信キューの状態Stat(Qi)(空(0)又は非空(1)の値を取り得る)、
関連付けられた、シェーピングされた送信キューの先頭において記憶されるフレームの理論送信時間(以降TTTiと表記する)、
を含む。
【0050】
ここで簡潔にするために、全てのシェーピングされていないストリームは、単一の専用キュー、すなわち、FIFO順においてフレームを格納するシェーピングされていない送信キューQuを用いて分配される。
【0051】
キューコンテキストは、シェーピングされていない送信キューUCに関連付けられる。シェーピングされていない送信キューUCは、3つの変数、すなわち、
シェーピングされていないキューの状態Stat(Qu)(空(0)又は非空(1)の値を取り得る)、
シェーピングされていないキューの先頭において格納されるフレーム又は残りのフラグメントのサイズ、すなわち、sizeofQuHead、
現在のシェーピングされていないフレーム又はフラグメントの送信の開始から送信されたバイト数、すなわち、sizeofCurrFrag(各バイトの送信時に更新される)、
を含む。
【0052】
シェーピングされていないストリームに属するフレームの送信を考慮すると、1つのフラグメントは、規定の最小フラグメントサイズMinFragSizeよりも短くすることはできない。通常、1つのフレームフラグメントは、少なくとも、
ヘッダー、
フラグメントの位置のインジケーション(少なくともフレームの最初のフラグメント、又は中間フラグメント、又は最後のフラグメント)、
フラグメントの末尾におけるCRCコード、及び希望的にはその間にあるデータ、
を含む。
【0053】
実際には、最小サイズMinFragSizeは、これらの要件に対応するサイズ未満とすることはできないが、より一般的には、Ethernetフレームの最小サイズ(例えば、上記で示したように64バイト)未満とすることができない。
【0054】
シェーピングされたフレームの送信は、ShapedTxBusyフラグによって示され、このフラグは、送信中は1に設定され、送信中でない場合は0に再設定される。
【0055】
シェーピングされていないフレーム又はフラグメントの送信は、UnshapedTxBusyフラグによって示され、このフラグは、送信中は1に設定され、送信中でない場合は0に再設定される。シェーピングされたフレーム送信時間が既に到来している(due)場合、シェーピングされていないフレームの送信の中断をトリガーするのに、StopUnshapedTxフラグが用いられる。
【0056】
これらの動作は、通信エンティティ100(ネットワークのノード、又はピアツーピアネットワークにおける端末デバイス等)によって実施することができ、この通信エンティティ100は、
図4に概略的に示され、以下、すなわち、
処理するフレームを受信する1つ又はいくつかの入力ポート10と、
受信されたフレーム(及び/又は自身の直接のニーズのために通信エンティティ100によって送信されることになる他の任意のフレーム)を送信する1つ又はいくつかの出力ポート14と、
以下で詳述するようなフレームのキューの送信の前に、少なくともそれらのフレームのキューを記憶する1つ又はいくつかのバッファーメモリ13と、
例えば、本発明の一実施形態による方法を実行するためにコンピュータープログラムの少なくとも命令を記憶するメモリ12と協調するプロセッサ11を備えるコンピューター回路と、
を備える。
【0057】
図5は、そのような通信エンティティ100の入力ポート10の動作の一例を示している。
【0058】
受信されたフレームがシェーピングされたフレームであるのか又はそうではなくシェーピングされていないフレームであるのかを判断する(ステップS1)とともに、更に、いずれの送信キュー(複数の場合もある)において受信されたフレームが転送されなければならないのかを判断するために、最初のステップS0において、受信されたフレームが属するストリームが入力ポートにおいて識別される。この識別は、
宛先出力ポート(ステップS2)と、
選択された出力ポート内の宛先送信キューQ(ステップS3)と、
を判断するためにフレームのヘッダー及び/又はペイロード内に含まれる情報を用いる。
【0059】
ここで、送信ポート14における動作が、
図6A及び
図6Bを参照して開示される。
【0060】
シェーピングされたフレームを受信する(テストS4の出力における矢印Y)場合、及びシェーピングされた送信キューQi内でそのフレームを記憶する際、以下の動作が実行される。
テストS5において、Stat(Qi)=0の場合、テストS6が実行され、T>TTTiの場合、ステップS7においてTTTi=Tである。
その後、ステップS8においてソート関数にTTTi値が導入される(以下で詳述する)。
その後、値Stat(Qi)がStat(Qi)=1に設定される(ステップS9)。
【0061】
ここで、シェーピングされていないストリームに関して、シェーピングされていない送信キューQu内のフレームをソートする(テストS4からの矢印N)際、ステップS10において、Stat(Qu)が非空(=1)に設定されることが付け加えられる。
【0062】
ここで、シェーピングされたストリームに属するフレームの送信が開示される。
【0063】
送信されることになるシェーピングされたストリームに属するフレームは、(上述のソート関数を用いて)全てのTTTiを比較することによって選択される。(ステップS10において求められた)最小のTTTi値に関連付けられたフレームは、ステップS11において、送信の次の候補として決定される。このために、ソート関数は、Stat(Qi)=1である(すなわち、キューが非空である)ようなiを有する最小のTTTiを維持する。最小のTTTiは、以降minTTTiと表記する。
【0064】
全てのストリームiについてStat(Qi)が0に等しい(すなわち、ステップS12において求められたように、全てのシェーピングされたキューが空である)場合、ステップS13において、minTTTiは、ヌル値を取る。
【0065】
シェーピングされていないフレーム(又はフラグメント)が
図7Aに示すように現在送信されている場合、このシェーピングされていないフレームを(再)細分化することができるか否かがチェックされる。このために、
送信が中断されることになるフレーム(又はフラグメント)のサイズは、MinFragSizeよりも大きくなければならず、
送信中断後のシェーピングされていないキュー内に残っているフラグメントのサイズも、MinFragSizeよりも大きくなければならない。
【0066】
これら2つの条件の双方がともに満たされるのではない場合、
図7Bに示すように、更なる細分化を伴わずに、シェーピングされていないフレーム(又はフラグメント)のノーマル送信が通常通り継続する。
【0067】
それ以外の場合、
図7Aに示すように、シェーピングされていないフレームの細分化が可能であるとき、シェーピングされたフレームの送信同士の間に、シェーピングされていないフレームのフラグメントを送信することができる。
【0068】
したがって、シェーピングされたフレームは、主に、以下の場合に実効的に送信される。
TTTiが既に到来している場合、すなわち、現在の時間TがTTTi以上である場合。
現在送信されている別のシェーピングされたストリームに属するフレームがない場合。
現在送信されているシェーピングされていないストリームに属するフレーム又はフラグメントがない場合。
【0069】
再び
図6A及び
図6Bを参照すると、ステップS14において時間単位1つ分だけの時間変数Tの各増分の際、以下の動作が実行される。ステップS11において決定された、送信されることになるシェーピングされたフレーム(最小のTTTiを有する)は、インデックスkを有し、したがってTTTk=minTTTiである。ステップS15において、テストの結果は、通常TTTk≠nullであるべきである。なぜならば、ステップS11においてフレームが受信されるためである。さらに、ステップS16においてT≧TTTkである場合、シェーピングされていないフレームの送信が現在進行中であるのか否かを判断するようにテストS17が実行される。yesである(UnshapedTxBusy=1)場合、ステップS18において、その現在の送信を停止するための要求が設定される(StopUnshapedTx=1)。そうではない場合(テストS17からの矢印N)、テストS19において、シェーピングされたフレームの送信が進行中であるのか否かが更に評価される。進行中ではない(ShapedTxBusy=0)場合、ステップS20において、送信するシェーピングされたフレームがQkの先頭に配置される。
【0070】
その後、次の時間Tについて更新が実行される。ステップS21において、パラメーターShapedTxBusyが、サイズ(フレーム)*8/ρについて「1」に更新される。ステップS22において、TTTk値も、TTTk=TTTk+size(frame)*8/Rkに更新され、ステップS23においてStat(Qk)も更新される。その上、テストS24においてStat(Qk)が非ヌルである場合、ステップS25において再びTTTkがソート関数に導入される。
【0071】
シェーピングされていないストリームに属するフレームの送信及び細分化のために、ここで、
図9を参照しながら以下に詳細が与えられる。一般原則として、シェーピングされていないストリームに属するフレームの送信は、以下の条件が満たされた場合に開始される。
シェーピングされたフレームに属するフレームが現在送信されていない、
シェーピングされたキューのうちの1つに格納されたフレームが、既に到来している(現在の時間TがそのTTTi以上である)送信時間を有していない場合。
【0072】
したがってシェーピングされていないフレームを送信することができるのか又は細分化することができるのかをチェックするのに、シェーピングされたストリームに属する次に送信されることになるフレームの理論送信時間が用いられる。
【0073】
最後に、シェーピングされていないフレームの第1のフラグメントが、この第1のフラグメントの長さとQu内に残っているフラグメントの長さとの双方がMinFragSize以上である場合にのみ、送信される。
そうではない場合、シェーピングされていないキューからの送信は行われない。
【0074】
実際には、上記で見たように、シェーピングされていないフレーム送信が保留中である間に新たなシェーピングされたフレームが送信されなければならない場合、シェーピングされていないフレームの送信は、
中断までに送信されるフラグメントの長さがMinFragSize以上であり、
かつ、中断後にシェーピングされていないキュー内に残るフラグメントの長さがMinFragSize以上である、
場合にのみ、中断することができる。
【0075】
上記の条件のうちのいずれかでも満たされない場合、シェーピングされていないフレームの送信は、
図8に示すように中断することができない。
【0076】
図9を参照すると、時間単位1つ分だけの時間変数Tの各増分の際、以下の動作が実行される。
【0077】
UnshapedTxBusy=1である場合(テストS26)、かつStopTxUnshaped=1である場合(テストS27)、かつテストS28において(sizeofQuHead≧MinFragSizeかつsizeofCurrFrag≧MinFragSize)である場合、ステップS29において、現在のフレーム送信が停止される。その後、更新が実行されてUnshapedTxBusyがヌルに設定され(ステップS30)、StopUnshapedTxがヌルに設定される(ステップS31)。
【0078】
次に実行について、時間Tが「1」だけ増分される(ステップS14)。
【0079】
ここで
図10を参照すると、他の状況において、すなわち、UnshapedTxBusy≠1(テストS26からの矢印N)である場合、以下のテストが更に処理される。
Stat(Qk)≠0である場合(テストS32)、かつ、
ShapedTxBusy=0である場合(テストS33)、かつ、
min
iTTTi≠nullである場合(テストS34)、
以下の条件、すなわち、
[(minTTTi-T)≧MinFragSize*8/ρ]及び[size(frame)-(minTTTi-T)*ρ/8≧MinFragSize]
の双方が満たされる場合(テストS35)、
ステップS36において、現在のフレーム又はフラグメントがキューQuの先頭において送信され、
ステップS37において、パラメーターUnshapedTxBusyが、
(minTTTi-T)と、
size(frame)*8/ρ(このために、対応するテンポライゼーション(temporisation:時間稼ぎ、時間調整)を提供することができる)と、
の間の最小値の間、1に設定される。
【0080】
一方、テストS34においてminiTTTi=nullである場合(矢印N)、ステップS38において、Quの先頭においてフレーム又はフラグメントを送信する時機であり、ステップS39において、size(frame)*8/ρに対応する時間の間、UnshapedTxBusyを1に設定する時機である。
【0081】
その後、ステップS14において時間Tが増分されると、次の実行が実施される。
【0082】
以降で説明されるように、シェーピングされたストリーム内に挿入される「プローブ」フレームPFの提供によって残留レイテンシーを消去することができることに留意されたい。そのようなプローブフレームPFは、各シェーピングされたストリームキューの先頭において挿入することができる。実際には、通常例えばサイレンス期間の後にシェーピングされたストリームのフレームが送信される場合、
図7Bに示すように、(例えば作成されたフラグメントのサイズに起因して)細分化不可能なシェーピングされていないフレーム又はフラグメントの送信を中止することができず、その代りにシェーピングされたフレームの即時送信に順番を譲るということができない場合が起こり得る。結果としてもたらされる残留レイテンシーを回避するために、「プローブ」フレームをシェーピングされたストリーム内に挿入することができ、それにより、このプローブに後続する最初のシェーピングされたフレームが、そのような状況下でレイテンシーを何ら被ることがないようにする。
図3に示す代替的な一実施形態では、1つのプローブフレームPFのみをシェーピングされたフレームキューQk(ただし、
図3の例ではk=2)の先頭において挿入することができ、キューQk内の送信のための次の候補は、レイテンシーを何ら被ることがない。
【0083】
より包括的には、本発明は、プリエンプションを転送することが可能であるパケット交換ネットワークを対象としており、非サイクリックレート制御ストリーム上でトランスポートされるタイムクリティカルな応用に低レイテンシーデータ転送を提供することができる。通常、本発明は、産業用ネットワーク又は自動車ネットワーク等の組み込み制御ネットワークにおいて適用することができる。