特許第6756070号(P6756070)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ミツビシ・エレクトリック・アールアンドディー・センター・ヨーロッパ・ビーヴィの特許一覧

特許6756070パケット交換ネットワーク内のネットワークノードにおけるトラフィック管理のための方法およびネットワークノード
<>
  • 特許6756070-パケット交換ネットワーク内のネットワークノードにおけるトラフィック管理のための方法およびネットワークノード 図000181
  • 特許6756070-パケット交換ネットワーク内のネットワークノードにおけるトラフィック管理のための方法およびネットワークノード 図000182
  • 特許6756070-パケット交換ネットワーク内のネットワークノードにおけるトラフィック管理のための方法およびネットワークノード 図000183
  • 特許6756070-パケット交換ネットワーク内のネットワークノードにおけるトラフィック管理のための方法およびネットワークノード 図000184
  • 特許6756070-パケット交換ネットワーク内のネットワークノードにおけるトラフィック管理のための方法およびネットワークノード 図000185
  • 特許6756070-パケット交換ネットワーク内のネットワークノードにおけるトラフィック管理のための方法およびネットワークノード 図000186
  • 特許6756070-パケット交換ネットワーク内のネットワークノードにおけるトラフィック管理のための方法およびネットワークノード 図000187
  • 特許6756070-パケット交換ネットワーク内のネットワークノードにおけるトラフィック管理のための方法およびネットワークノード 図000188
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6756070
(24)【登録日】2020年8月31日
(45)【発行日】2020年9月16日
(54)【発明の名称】パケット交換ネットワーク内のネットワークノードにおけるトラフィック管理のための方法およびネットワークノード
(51)【国際特許分類】
   H04L 12/815 20130101AFI20200907BHJP
   H04L 12/813 20130101ALI20200907BHJP
【FI】
   H04L12/815
   H04L12/813
【請求項の数】15
【全頁数】37
(21)【出願番号】特願2017-535718(P2017-535718)
(86)(22)【出願日】2016年3月15日
(65)【公表番号】特表2018-500851(P2018-500851A)
(43)【公表日】2018年1月11日
(86)【国際出願番号】JP2016058881
(87)【国際公開番号】WO2016158541
(87)【国際公開日】20161006
【審査請求日】2017年7月3日
【審判番号】不服2019-1657(P2019-1657/J1)
【審判請求日】2019年2月6日
(31)【優先権主張番号】15305482.0
(32)【優先日】2015年3月31日
(33)【優先権主張国】EP
(73)【特許権者】
【識別番号】503163527
【氏名又は名称】ミツビシ・エレクトリック・アールアンドディー・センター・ヨーロッパ・ビーヴィ
【氏名又は名称原語表記】MITSUBISHI ELECTRIC R&D CENTRE EUROPE B.V.
(74)【代理人】
【識別番号】100110423
【弁理士】
【氏名又は名称】曾我 道治
(74)【代理人】
【識別番号】100111648
【弁理士】
【氏名又は名称】梶並 順
(74)【代理人】
【識別番号】100122437
【弁理士】
【氏名又は名称】大宅 一宏
(74)【代理人】
【識別番号】100147566
【弁理士】
【氏名又は名称】上田 俊一
(74)【代理人】
【識別番号】100161171
【弁理士】
【氏名又は名称】吉田 潤一郎
(72)【発明者】
【氏名】マンガン、クリストフ
【合議体】
【審判長】 稲葉 和生
【審判官】 林 毅
【審判官】 岩田 玲彦
(56)【参考文献】
【文献】 特開2006−33002(JP,A)
【文献】 特開2003−333087(JP,A)
【文献】 再公表特許第2003/053012(JP,A1)
【文献】 特開平10−98472(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/815
H04L12/813
(57)【特許請求の範囲】
【請求項1】
パケット交換ネットワーク内のネットワークノードにおけるトラフィック管理のための方法であって、前記ネットワークノードは、パケットフローに属するパケットを出力するための少なくとも1つの出口ポートと、前記パケットフローの着信パケットを受信するための1つまたはいくつかの入口ポートとを備え、該方法は、前記パケットフローに属し、前記パケットフローに関連付けられるメモリキューに記憶された現在のパケットに関してトラフィックシェーピングを実行することを含み、前記トラフィックシェーピングは、
前記現在のパケットの理論受信時刻(TRT)値が時刻カウンター値以下である場合には、前記出口ポートを通して前記現在のパケットを出力することを含み、
前記パケットの前記TRT値は、
(a)前記現在のパケットの前に受信された前記パケットフローの先行するパケットがトラフィックポリシングによって破棄されていないときには、(i)前記先行するパケットのサイズと、(ii)前記パケットフローに関連付けられる伝送速度値と、
(iii−1)前記先行するパケットのTRT値が前記先行するパケットの実受信時刻(ART)値より大きい場合には、前記先行するパケットの前記TRT値と、
(iiiー2)前記先行するパケットのTRT値が前記先行するパケットのART値より大きくない場合には、前記先行するパケットの前記ART値と、を用いて、または、
(b)前記先行するパケットがトラフィックポリシングによって破棄されたときには、前記先行するパケットの前記TRT値を用いて、
前記パケットフローの着信パケットのトラフィックポリシングを実行することによって求められ
前記時刻カウンター値は、前記トラフィックポリシングと前記トラフィックシェーピングを協調して動作させるための時刻基準として使用される
トラフィック管理のための方法。
【請求項2】
前記トラフィックポリシングは、前記パケットフローのサイズが該パケットフローに関連付けられる前記メモリキュー内の利用可能な空間を超える前記パケットフローに属する受信パケットを破棄することを含む、請求項1に記載のトラフィック管理のための方法。
【請求項3】
前記トラフィックポリシングは、トラフィックポリシングループの繰り返しにおいて実行され、該トラフィックポリシングループの繰り返しは、前記時刻カウンター値が少なくとも1時間単位だけインクリメントされたときに実行される、請求項1または2に記載のトラフィック管理のための方法。
【請求項4】
前記トラフィックシェーピングは、トラフィックシェーピングループの繰り返しにおいて実行され、該トラフィックシェーピングループの繰り返しは、前記時刻カウンター値が更新されたときに実行される、請求項1から3のいずれか1項に記載のトラフィック管理のための方法。
【請求項5】
前記トラフィックシェーピングは、トラフィックシェーピングループの繰り返しにおいて実行され、該トラフィックシェーピングループの繰り返しは、前記時刻カウンター値が少なくとも1時間単位だけインクリメントされたときに実行される、請求項4に記載のトラフィック管理のための方法。
【請求項6】
前記トラフィックシェーピングは、トラフィックシェーピングループの繰り返しにおいて実行され、該トラフィックシェーピングループの繰り返しは、前記時刻カウンター値が時間オフセットだけシフトしたときに実行される、請求項4に記載のトラフィック管理のための方法。
【請求項7】
前記先行するパケットの前記TRT値
【数1】
が前記先行するパケットの前記ART値
【数2】
より大きいとき、前記パケットの前記TRT値
【数3】
は、
【数4】
として求められ、ただし、
【数5】
は、前記先行するパケットの前記TRT値であり、
【数6】
は、前記先行するパケットのサイズであり、Rは前記パケットフローに関連付けられる伝送速度値である、請求項1から6のいずれか1項に記載のトラフィック管理のための方法。
【請求項8】
前記先行するパケットの前記TRT値
【数7】
が前記先行するパケットの前記ART値
【数8】
以下であるとき、前記パケットの前記TRT値
【数9】
は、
【数10】
として求められ、ただし、
【数11】
は、前記先行するパケットの前記ART値であり、
【数12】
は、前記先行するパケットのサイズであり、Rは、前記パケットフローに関連付けられる伝送速度値である、請求項1から7のいずれか1項に記載のトラフィック管理のための方法。
【請求項9】
前記先行するパケットがトラフィックポリシングによって破棄されたとき、前記パケットの前記TRT値
【数13】
は、
【数14】
として求められ、ただし、
【数15】
は、前記先行するパケットの前記TRT値である、請求項1から8のいずれか1項に記載のトラフィック管理のための方法。
【請求項10】
前記先行するパケットの前記ART値は、前記1つまたはいくつかの入口ポートのうちの1つにおける前記先行するパケットの受信に対応する前記時刻カウンター値を用いて求められる、請求項1から9のいずれか1項に記載のトラフィック管理のための方法。
【請求項11】
異なるフローに属するパケットが前記パケットフローにそれぞれ関連付けられるメモリキュー内にそれぞれのTRT値とともに記憶され、前記方法は、
前記メモリキュー内のそれぞれの最小のTRT値を有する先頭パケットの中から、前記現在のパケットを、該パケットのTRT値に従って選択することをさらに含む、請求項1から10のいずれか1項に記載のトラフィック管理のための方法。
【請求項12】
前記パケットは、前記メモリキューの先頭パケットのそれぞれのTRT値のうちの最小値である該パケットのTRT値に従って選択される、請求項11に記載のトラフィック管理のための方法。
【請求項13】
プロセッサと、該プロセッサに動作可能に結合されるメモリと、パケットフローに属するパケットを出力するための少なくとも1つの出口ポートと、前記パケットフローの着信パケットを受信するための1つまたはいくつかの入口ポートとを備えるパケット交換ネットワーク内のネットワークノードであって、該ネットワークノードは、請求項1から12のいずれか1項に記載のトラフィック管理のための方法を実行するように構成される、ネットワークノード。
【請求項14】
実行されるときに、メモリと動作可能に結合されるプロセッサを備えるネットワークノードに、請求項1から12のいずれか1項に記載のトラフィック管理のための方法を実行させる実行可能命令を符号化された、非一時的コンピューター可読媒体。
【請求項15】
コンピューター可読媒体において有形に具現されるコンピュータープログラムコードを含むプログラムであって、前記コンピュータープログラムコードは、コンピューターシステムに与えられて実行されるときに、コンピューターに、請求項1から12のいずれか1項に記載のトラフィック管理のための方法を実行させる命令を含む、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、パケット交換ネットワークノードにおけるパケットフロー処理の分野に関し、詳細には、イーサネットベースネットワーク内のネットワークノードにおけるイーサネットフレーム処理に関する。
【背景技術】
【0002】
パケット交換ネットワーク、詳細にはイーサネット(登録商標)は、データ通信以外の分野において次第に使用されているようになっている。
【0003】
詳細には、いくつかの産業用ネットワークが、イーサネットのカスタム化されたバージョン、またはイーサネットから派生したプロトコルのカスタム化されたバージョンを使用することが知られている。さらに、国際プロフィバスおよびプロフィネット協会(PI)によって「プロフィバス」および「プロフィネット」として発行される産業用ネットワーク仕様は、自動化アプリケーションのために産業用ネットワークにおいてイーサネットベース技術を使用する可能性を提供する。
【0004】
これらの技術によって導入される発展は主に、これらのネットワークの回復力の改善、すなわち、データ伝送速度に影響を及ぼすことなく、単一の障害から保護することに焦点を合わせる。国際電気標準会議(International Electrotechnical Commission)によってIEC62439−3第5節として標準化された高可用シームレス冗長性(HSR:High-availability Seamless Redundancy)、IECによってIEC62439−3第4節として標準化されたパラレル冗長プロトコル(PRP:Parallel Redundancy Protocol)、IECによってIEC62439−2として標準化されたメディア冗長プロトコル(MRP: Media Redundancy Protocol)等の標準規格が、イーサネットベース産業用ネットワークにおいて使用できるように開発されてきた。
【0005】
しかしながら、産業用ネットワークは、データ伝送の厳密な時間特性の強制等の、標準的なイーサネットを用いて実施することができない特定の制約を有する。詳細には、厳しく制限された待ち時間および/またはジッタ、並びに厳密に損失のない移送を要求する制御/コマンドメッセージの伝送は、現在利用可能なイーサネット仕様において適切に対処されない。
【0006】
これらの特性は、ネットワークリソースが申し込み超過にならないのを確実にするためのネットワークリソース(バッファおよび帯域幅)予約方式、予約されたリソースに従ってトラフィックが送出されるのを確実にするためのトラフィックシェーピングおよびスケジューリング機構、並びにリソース予約/トラフィックシェーピングの均衡を乱す、障害のある、または動作不良のトラフィックソースが存在しないのを確実にするためのトラフィックポリシング方式を適用することによって、強制することができる。
異なる事業者のネットワークをリンクするネットワークインターフェース等の特定のネットワークインターフェースにおいてトラフィック契約を強制するために、電気通信ネットワークにおいてトラフィックポリシング技法が実施されてきた。トラフィック契約(関連技術分野において、「サービス水準合意」またはSLA(Service Level Agreement)とも呼ばれる)は通常、サービスネットワークを介して2つの終端間で移送されることになる1つまたは複数のデータフローに適用可能なトラフィックパラメーターの組を含む。ネットワークによって提供されるサービスは、例えば、中央コントローラーによる自動販売機の制御、一定の伝送速度におけるビデオデータの転送等に関連する場合がある。トラフィック契約は、一般に、発信元と宛先との間でネットワークを通して搬送される任意のデータフローに関して、ネットワークを通してのデータフローの移送に関連する要件の組(例えば、伝送速度、伝送時間、ジッタ、パケットサイズ等)として規定することができる。契約に従ってネットワークを介してフローに関連付けられるデータを移送するには、契約において規定される要件の履行が必要となる。これらの要件は一般に、データ通信ネットワークによって提供されるサービスのタイプによって規定されることになる。
ネットワークの可変長パケットの流れをトラフィック契約と整合させるトラフィックポリシング方法が記載された従来技術がある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】米国特許第6724726号明細書
【発明の概要】
【発明が解決しようとする課題】
【0008】
イーサネットが関係する限り、「仮想ブリッジローカルエリアネットワーク(Virtual Bridged Local Area Networks)」と題するローカルおよびメトロポリタンエリアネットワーク802.1Q−2005に関するIEEE標準規格が、第8.6.5節(「フロー分類およびメータリング」)および第8.6.7節(キュー管理)においてフレームメータリングフレームワークを含む。しかしながら、このフレームワークは、いかなる特定のメータリングアルゴリズムも規定せず、単に、メトロイーサネットフォーラム技術仕様書MEF10において記述されるメータリングアルゴリズムおよびIETF RFC2309において規定されるキュー管理アルゴリズム(ランダム早期検出(RED:Random Early Detection)アルゴリズムおよび重み付けランダム早期検出(WRED:Weighted Random Early Detection)アルゴリズム)を参照する。
【0009】
フレームのS−VLANタグおよびC−VLANタグ内のDEI(ドロップ適格指示:Drop Eligibility Indication)によって指示される「ドロップ適格」パラメーターを設定および使用するためのフレームワークを設けるために、IEEE802.1Q標準規格においてフレームメータリングが導入された。
【0010】
この標準仕様書は、メトロイーサネットフォーラム(MEF)がいわゆる帯域幅プロファイルを規定したメトロポリタンイーサネットネットワークの相互接続等の、異なるターゲットマーケットへの実現の融通性および適応性を持たせるために最小限に抑えられた。
【0011】
IEEE802.1Q−2005標準規格第8.6.5節は、オプションのイングレスメーターの使用を規定し、その役割は、フレームに関連付けられるドロップ適格パラメーターを設定することである。所与のメーターによって取り扱われる全てのフレームは、同じ受信ポートから着信し、異なるメーターを適用するために、宛先アドレス(DA)、発信元アドレス(SA)VLAN識別子(VID)および優先順位を含むパラメーターの任意の組み合わせに基づいて、フレームの分類が可能である。メータリングは、ブリッジキュー前、かつ全てのフィルタリング機能(アクティブトポロジ強制、入口VID、フィルタリングデータベース(FDB)および出口VID)後に適用される。メータリングアルゴリズムは規定されないが、MEFアルゴリズムが参照される。常に破棄されるフレームに予約された第3のカラー(赤)で拡張された、DEIビットを使用することによって、2カラー(緑および黄)方式が可能になる。
【0012】
キュー管理に関して、IEEE802.1Q−2005標準規格第8.6.7節は、フレームによって搬送されるカラー指示を利用する方法を大まかに規定し、ドロップ適格フレームは、非ドロップ適格フレームより破棄される確率が高い場合がある。実施者は、異なるカラー閾値、ランダム早期検出または重み付けランダム早期検出をとともに、例えば、テイルドロップ等のキュー管理方式を自由に選択することができる。
【0013】
2013年10月付けの「Ethernet Services Attributes Phase 3」と題するメトロイーサネットフォーラム(MEF)技術仕様書MEF10.3は、フレーム「カラーリング」方式に基づく、「帯域幅プロファイル」と呼ばれるポリシングアルゴリズムを含む。
【0014】
MEF方式によれば、サービスフレームのカラーは、先行するフレームの到着時刻の履歴に対する、メーターにおけるサービスフレームの到着時刻によって決定される属性である。この点において、カラーは、その優先順位とは異なり、サービスフレームに添付され、その内容によって決定されるサービスフレームの属性である。
【0015】
しかしながら、MEF技術仕様書は、着信するサービスフレームのためのサービス契約への順守または非順守を検証するためのトラフィックメータリングアルゴリズムしか提供しない。その仕様書は、トラフィックポリシングアルゴリズムまたはトラフィックシェーピングアルゴリズムを規定しないので、その結果、産業用ネットワークにおいて使用する状況において特に、データ伝送の厳密な時間特性およびデータ損失特性への順守を確実にするための有効性が制限される。別の言い方をすると、MEF技術仕様書は、サービス契約において規定される要件への順守を確実にするための手段を十分に提供しない場合がある。
【0016】
それゆえ、当該技術分野における従来技術の上記の欠点および短所に対処する、改善されたデータトラフィック管理方式、およびそれを実施するネットワークノードを提供することが必要とされている。
【0017】
本主題開示の目的は、改善されたデータトラフィック管理方式と、それを実施するネットワークノードとを提供することである。
【0018】
本主題開示の別の目的は、従来のデータトラフィック制御方式の上記の欠点および短所を軽減するための、改善されたトラフィック管理方式と、それを実施するネットワークノードとを提供することである。
【0019】
本主題開示のさらに別の目的は、ネットワーク内のデータの移送に関してトラフィックプロファイル要件への順守を確実にするための、改善されたトラフィック管理方式と、それを実施するネットワークノードとを提供することである。
【課題を解決するための手段】
【0020】
これらの目的および他の利点を達成するために、本明細書において具現され、大まかに説明されるような、本主題開示の目的によれば、本主題開示の1つの態様において、パケット交換ネットワーク内のネットワークノードにおけるトラフィック管理のための方法が提案され、そのネットワークノードは、パケットフローに属するパケットを出力するための少なくとも1つの出口ポートと、パケットフローの着信するパケットを受信するための1つまたは複数の入口ポートとを備える。本方法は、パケットフローに属し、パケットフローに関連付けられるメモリキュー内に記憶される現在のパケットに関するトラフィックシェーピングを実行することを含み、トラフィックシェーピングは、現在のパケットの理論受信時刻(TRT)値が時刻カウンター値以下である場合には、出口ポートを通して、現在のパケットを出力することを含む。提案される方法によれば、パケットのTRT値は、現在のパケットの前に受信されたパケットフローの先行するパケットがトラフィックポリシングによって破棄されていないとき、先行するパケットのサイズと、フローに関連付けられる伝送速度値と、先行するパケットのTRT値が先行するパケットの実受信時刻(ART)値より大きい場合には、先行するパケットのTRT値と、そうでない場合には、先行するパケットのART値とを用いて、または先行するパケットがトラフィックポリシングによって破棄されたとき、先行するパケットのTRT値を用いて、パケットフローの着信パケットのトラフィックポリシングを実行することによって求められる。
【0021】
時間および損失の影響を受けやすい制御フローおよびコマンドフローを移送するネットワークの場合、メッセージが安全に(いかなる損失も受けることなく)、かつ適時に(保証された帯域幅および最小のジッタで)送信されるのを保証するために、有利には、入口トラフィックポリシングおよび出口トラフィックシェーピングの両方を適用することができる。さらに、入口ポリシングは、ネットワークノードの誤動作、すなわち、フレームの繰り返し(キューイングエラー)、過剰な伝送速度(シェーピングエラー)、より長いフレーム(タギング/パディングエラー)、誤った伝送キューにおける転送(切替エラー)、過剰なブリッジ/スイッチ遅延(ハードウェア/ソフトウェア不履行)、「バブリング」ノード(欠陥のあるソースまたはスイッチ)に対処し、これらの誤動作を軽減できるようにする。
【0022】
提案される方法は、有利には、トラフィックポリシング方式によって求められたTRT値をトラフィックシェーピングステージにおいて使用することを通して、互いに協調するトラフィックシェーピング方式およびトラフィックポリシング方式を提供する。したがって、提案される方法は、トラフィックシェーピングおよびトラフィックポリシングの協調動作を提供する。
【0023】
1つまたは複数の実施の形態において、提案される方法は、トラフィックポリシングが、パケットフローのサイズがこのパケットフローに関連付けられるメモリキュー内の利用可能な空間を超えるパケットフローに属する受信パケットを破棄することを含むことをさらに提供することができる。
【0024】
提案される方法の1つまたは複数の実施の形態において、トラフィックポリシングは、トラフィックポリシングループの繰り返し時に実行され、トラフィックポリシングループの繰り返しは、時刻カウンター値が少なくとも1時間単位だけインクリメントされたときに実行される。
【0025】
さらに、トラフィックシェーピングもトラフィックシェーピングループの繰り返し時に実行される場合があり、トラフィックシェーピングループの繰り返しは、時刻カウンター値が更新されたときに実行される。1つまたは複数の実施の形態において、そのような更新は、時刻カウンターをインクリメントすることを含むことができ、トラフィックシェーピングループの繰り返しは、時刻カウンター値が少なくとも1時間単位だけインクリメントされたときに実行することができる。他の実施の形態において、そのような更新は、トラフィックシェーピングループの次の繰り返しのためのオフセットだけ、トラフィックシェーピングのために使用される時刻カウンター値をシフトすることを含むことができ、トラフィックシェーピングループの繰り返しは、時刻カウンター値が時間オフセットだけシフトされたときに実行することができる。
【0026】
トラフィックポリシングおよび/またはトラフィックシェーピングを上述した時刻カウンターによってドライブされるループとして動作させることにより、有利には、例えば、同じ時刻カウンターを通して、または同じ時刻基準に基づくが、(トラフィックシェーピング時刻カウンターとトラフィックポリシング時刻カウンターとの間で)ある時間オフセットだけシフトされたそれぞれの時刻カウンターを通して、トラフィックポリシングおよびトラフィックシェーピングのために単一の時刻基準が使用される。トラフィックポリシング方式は通常、入口ポートにおいて実行され、トラフィックシェーピング方式は通常、出口ポートにおいて実行されるので、これは、入口ポートおよび出口ポートの両方において同じ時刻基準を使用する機会を生み出す。この共通の時刻基準は、有利には、一ネットワークノードのレベルにおける全てのポートによってだけでなく、パケット交換ネットワーク内の複数のネットワークノードによっても使用されるように設計することもできる。
【0027】
トラフィックシェーピングおよびトラフィックポリシングのためのこの共通パラメーターの使用は、それらの機構の実施態様の複雑さも低減し、このことはそれらの機構を実施するネットワークノードを設計する場合に有益である。
【0028】
提案される方法の1つまたは複数の実施の形態において、先行するパケットのTRT値
【数1】
が、先行するパケットのART値
【数2】
より大きいとき、パケットのTRT値
【数3】
は以下のように求めることができる。
【数4】
ただし、
【数5】
は、先行するパケットのTRT値であり、
【数6】
は先行するパケットのサイズであり、Rはフローに関連付けられる伝送速度値である。そうではなく、先行するパケットのTRT値
【数7】
が、先行するパケットのART値
【数8】
以下であるとき、パケットのTRT値
【数9】
は以下のように求めることができる。
【数10】
ただし、
【数11】
は、先行するパケットのART値であり、
【数12】
は先行するパケットのサイズであり、Rはフローに関連付けられる伝送速度値である。さらに、先行するパケットがトラフィックポリシングによって破棄されたとき、パケットのTRT値
【数13】
は、
【数14】
として求めることができる。ただし、
【数15】
は先行するパケットのTRT値である。
【0029】
提案される方法の1つまたは複数の実施の形態において、先行するパケットのART値は、1つまたはいくつかの入口ポートのうちの1つにおける先行するパケットの受信に対応する時刻カウンターの値を用いて求められる。
【0030】
提案される方法の1つまたは複数の実施の形態において、異なるフローに属するパケットは、フローにそれぞれ関連付けられるメモリキュー内にそれぞれのTRT値とともに記憶され、本方法はさらに、メモリキュー内のそれぞれの最小のTRT値を有する先頭パケットの中から、現在のパケットを、そのパケットのTRT値に従って選択することを含む。有利には、パケットは、メモリキューの先頭パケットのそれぞれのTRT値のうちの最小値であるパケットのTRT値に従って選択することができる。
【0031】
提案される解決策の実施の形態は、有利には、単一の時刻基準と、理論的なフローごとのスケジュールとに基づいて、キューを切り替えることを通して多重化することができる、時間および損失の影響を受けやすいフローの統合ポリシングおよびスケジューリングを提供する。ポリシング機能によって強制されるフロージッタまたはバースト耐性は、出口ポート内のフローキューのために予約された利用可能なバッファの量に直接結び付けられる。
【0032】
別の態様によれば、パケット交換ネットワーク内のネットワークノードが提案され、このネットワークノードは、プロセッサと、プロセッサに動作可能に結合されるメモリと、パケットフローに属するパケットを出力するための少なくとも1つの出口ポートと、パケットフローの着信するパケットを受信するための1つまたはいくつかの入口ポートとを備え、ネットワークノードは、本主題開示の提案された方法に従ってトラフィック管理のための方法を実行するように構成される。
【0033】
さらに別の態様では、実行されるときに、メモリと動作可能に結合されるプロセッサを備えるネットワークノードに、本主題開示の提案された方法によるトラフィック管理のための方法を実行させる実行可能命令を符号化された非一時的コンピューター可読媒体が提案される。
【0034】
さらに別の態様によれば、コンピューター可読媒体内に有形に具現されるコンピュータープログラムコードを含むコンピュータープログラム製品が提案され、上記コンピュータープログラムコードは、コンピューターシステムに与えられて実行されるときに、上記コンピューターに、本主題開示の提案される方法によるトラフィック管理のための方法を実行させる命令と、例えば、圧縮または符号化を通して、コンピュータープログラムを表現するデータセットとを含む。
【0035】
本発明は、限定はしないが、プロセス、装置、システム、デバイスとして、また、現時点で既知であるアプリケーションおよび後に開発されるアプリケーションのための方法として含む、数多くの方法において実施し、利用できることは理解されたい。本明細書において開示されるシステムのこれらの、および他の特有の特徴は、以下の説明および添付の図面から、より容易に明らかになるであろう。
【図面の簡単な説明】
【0036】
図1】1つまたは複数の実施の形態による、例示的な産業用ネットワークを示す概略図である。
図2】1つまたは複数の実施の形態による、ネットワークノードの例示的な機能を示すブロック図である。
図3】1つまたは複数の実施の形態による、ネットワークノードの出口ポートの例示的な機能を示すブロック図である。
図4】1つまたは複数の実施の形態による、例示的なトラフィックポリシングプロセスを示すフローチャートである。
図5】1つまたは複数の実施の形態による、例示的なトラフィックシェーピングプロセスを示すフローチャートである。
図6】1つまたは複数の実施の形態による、例示的なトラフィックシェーピングプロセスを示すフローチャートである。
図7a】1つまたは複数の実施の形態による、ネットワークノードにおける受信動作および送信動作を示す図である。
図7b】1つまたは複数の実施の形態による、ネットワークノードにおける受信動作および送信動作を示す図である。
【発明を実施するための形態】
【0037】
簡潔および明確に例示するために、図面は構成の一般的な方法を示し、周知の機構および技法の説明および細部は、本発明の説明される実施の形態の検討を無用に分かりにくくするのを避けるために省略される場合がある。さらに、図面内の要素は必ずしも縮尺どおりに描かれていない。例えば、図面内の要素のうちのいくつかの要素の寸法は、本発明の実施の形態を理解しやすくするのを助けるために、他の要素に対して誇張される場合がある。現実世界の条件下であれば極めて対称性が低く、秩序正しくない可能性がある、直線、鋭い角度および/または平行な平面等を有する構造が示されるときのように、ある特定の図は、理解するのを助けるために理想的に示される場合がある。異なる図における同じ参照符号は同じ要素を表し、一方、類似の参照符号は、類似の要素を表す場合があるが、必ずしもそうとは限らない。
【0038】
さらに、本明細書における教示は、多種多様の形態において具現できること、および本明細書において開示される任意の具体的な構造および/または機能は典型にすぎないことは明らかにすべきである。詳細には、本明細書において開示される態様を、任意の他の態様から独立して実施できること、およびいくつかの態様を種々の方法で組み合わせることができることは当業者には理解されよう。
【0039】
本開示は、1つまたは複数の例示的な実施の形態による、方法、システムおよびコンピュータープログラムの機能、エンジン、ブロック図およびフローチャートを参照しながら以下に説明される。ブロック図およびフローチャートの説明される各機能、エンジン、ブロックは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコードまたは任意の適切なその組み合わせにおいて実現することができる。ソフトウェアにおいて実施される場合には、ブロック図および/またはフローチャートの機能、エンジン、ブロックは、コンピュータープログラム命令またはソフトウェアコードによって実施することができ、コンピュータープログラム命令またはソフトウェアコードは、コンピューター可読媒体に記憶されるか、またはコンピューター可読媒体を介して送信されるか、または汎用コンピューター、専用コンピューター若しくは機械を作り出す他のプログラマブルデータ処理装置上にロードすることができ、それにより、コンピューターまたは他のプログラマブルデータ処理装置上で実行されるコンピュータープログラム命令またはソフトウェアコードが、本明細書において説明される機能を実施するための手段を生み出す。
【0040】
コンピューター可読媒体の実施の形態は、限定はしないが、1つの場所から別の場所へのコンピュータープログラムの転送を容易にする任意の媒体を含む、コンピューター記憶媒体および通信媒体の両方を含む。本明細書において使用されるときに、「コンピューター記憶媒体」は、コンピューターまたはプロセッサによってアクセスすることができる任意の物理的な媒体とすることができる。さらに、「メモリ」および「コンピューター記憶媒体」という用語は、限定はしないが、ハードドライブ、フラッシュドライブ若しくは他のフラッシュメモリデバイス(例えば、メモリキー、メモリスティック、キードライブ)、CD−ROM若しくは他の光記憶装置、DVD、磁気ディスク記憶装置若しくは他の磁気記憶デバイス、メモリチップ(複数の場合もある)、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)、スマートカード、若しくはコンピュータープロセッサによって読み出すことができる命令若しくはデータ構造の形でプログラムコードを搬送または記憶するために使用することができる任意の他の適切な媒体、またはその組み合わせ等の、任意のタイプのデータ記憶デバイスを含む。また、種々の形のコンピューター可読媒体は、ルーター、ゲートウェイ、サーバーまたは他の伝送デバイスを含むコンピューターに、有線(同軸ケーブル、ファイバー、ツイストペア線、DSLケーブル)で、または無線(赤外線、電波、セルラー、マイクロ波)で、命令を送信または搬送することができる。命令は、限定はしないが、アセンブリ、C、C++、ビジュアルベーシック、SQL、PHPおよびJAVA(登録商標)を含む、任意のコンピュータープログラミング言語からのコードを含むことができる。
【0041】
具体的に他に明示されない限り、以下の説明を通して、処理、コンピューティング、計算、決定等の用語を利用する検討は、コンピューティングシステムのレジスタまたはメモリ内の電子的な量等の物理的な量として表されるデータを操作するか、または、このデータを、コンピューティングシステムのメモリ、レジスタ若しくは他のそのような情報記憶装置、伝送デバイス若しくは表示デバイス内の物理的な量として同様に表される他のデータに変換する、コンピューター、またはコンピューティングシステム、または類似の電子コンピューティングデバイスの動作またはプロセスを指していることは理解されよう。
【0042】
「備える」、「含む」、「有する」および任意のその変形のような用語は、非排他的包含を含むことを意図しており、それにより、要素のリストを含むプロセス、方法、物品または装置は、必ずしもそれらの要素には限定されず、そのようなプロセス、方法、物品または装置に明記されないか、または固有でない他の要素を含む場合がある。
【0043】
さらに、「例示的な」という言葉は、本明細書において、「一例、事例または例示としての役割を果たすこと」を意味するように使用される。「例示的」として本明細書において説明される任意の実施の形態または設計は、必ずしも、他の実施の形態または設計より好ましいか、または有利であると解釈されるべきではない。
【0044】
以下の説明および特許請求の範囲において、「結合される」および「接続される」という用語が、その派生語とともに使用される場合がある。特定の実施の形態において、「接続される」は、2つ以上の要素が互いに直接、物理的にまたは電気的に接触していることを示すために使用される場合がある。「結合される」は、2つ以上の要素が直接、物理的にまたは電気的に接触していることを意味する場合がある。しかしながら、「結合される」は、2つの要素が互いに直接、接触してはいないが、依然として互いに協働するか、または相互に作用することを意味する場合もある。
【0045】
本明細書において使用されるときに、パケットという用語は、ノード間若しくは局間、またはネットワークにわたってルーティングされるか、または伝送される場合があるデータの単位を含む場合がある。本明細書において使用されるとき、パケットという用語は、フレーム、プロトコルデータユニットまたは他のデータの単位を含む場合がある。パケットは、ビット群を含む場合があり、ビット群は、例えば、1つまたは複数のアドレスフィールド、制御フィールドおよびデータを含む場合がある。データブロックは、データまたは情報ビットの任意の単位とすることができる。
【0046】
本主題開示の実施の形態は種々の適用例において使用される場合があることは理解されたい。本発明はこの点において制限されないが、本明細書において開示されるトラフィック管理のための方法は、例えば、イーサネットスイッチ、イーサネットブリッジまたはイーサネットルータ等の、パケット交換ネットワークの任意のネットワークノードにあるような数多くの装置において使用される場合がある。明確にするために、以下の説明は、イーサネットネットワークに焦点を合わせる。しかしながら、本発明の技術的特徴はそれには限定されない。
【0047】
図1は、10Mbps、100Mbps、1Gbpsまたは10Gbpsイーサネットインターフェース等の標準的なイーサネットインターフェースを用いて、それぞれのイーサネットユーザ−ネットワークインターフェース(UNI)14a〜14cを通してカスタマー機器(CE)デバイス13a〜13cがアタッチするイーサネットサービスプロバイダーネットワーク12を備える例示的なイーサネットベース産業用ネットワーク10を示す。本主題開示の実施の形態が使用される場合がある複数のネットワークノード11a〜11cを含むイーサネットサービスプロバイダーネットワーク12によって、CEデバイス13a〜13cにイーサネットサービスが提供される。
【0048】
ネットワークノード11a〜11cは、イーサネットプロバイダーエッジスイッチとして構成することができ、ネットワーク接続15a〜15cを用いてリングトポロジー内で互いに接続することができる。イーサネットサービスプロバイダーネットワークは、例えば、イーサネットメトロポリタンエリアネットワーク(MAN)またはイーサネットワイドエリアネットワーク(WAN)とすることができ、例えば、スイッチまたはブリッジ等の任意の他のネットワークノード(図示せず)を含むことができる。
【0049】
ネットワーク12のためのリングトポロジーの代わりに、例えば、ツリートポロジーまたはメッシュトポロジー等の任意の適切なネットワークトポロジーを使用することができ、リングトポロジーは一例としてのみ与えられることは関連技術分野の当業者には理解されよう。
【0050】
1つまたは複数の実施の形態において、ネットワーク12は、それぞれのサービス品質(QoS)レベルを加入者に、または産業用ネットワークとの関連ではアプリケーション(例えば、自動化制御、ビデオ転送、ソフトウェア更新/アップグレード等)に与えるように動作することができ、QoSレベルはパケット損失特性および伝送時間特性を含む。加入者/アプリケーションの観点から、ネットワーク12によって提供されるQoSレベルは結果として、いわゆる「帯域幅プロファイル」に変換することができ、帯域幅プロファイルはQoSパラメーターおよび/またはトラフィックパラメーター(例えば、最大移送遅延、最大遅延変動(ジッタ)等)を規定する。
【0051】
本明細書において使用されるとき、パケットフローまたはフローという用語は、例えば、アドレス、発信元および/または宛先、回線識別子、識別子、移送プロトコルのタイプ、VLAN、VID、アドレスの対(例えば、SAおよびDA)、またはその組み合わせ等の、1つまたはいくつかの共通のパラメーターを共有するパケットの組を含むことができる。
【0052】
帯域幅プロファイルは、ネットワークによってサービス提供されるフローごとに、またはネットワークによってサービス提供されるフローの群ごとに与えることができる。
【0053】
本主題開示の実施の形態によれば、エッジネットワークノード11a〜11cのうちの1つは、帯域幅プロファイルを強制するためのトラフィック管理機能を実施する。
【0054】
図2は、本主題開示の実施の形態による、トラフィック管理機構を使用するように構成される例示的なネットワークノード20を示す。
【0055】
ネットワークノード20は、制御エンジン21と、スイッチエンジン25と、多重化エンジン26と、トラフィックポリシングエンジン27と、トラフィックシェーピングエンジン28と、複数のポート22a〜22dと、時刻基準エンジン29と、メモリ23とを備える。
【0056】
図2に示されるアーキテクチャにおいて、スイッチエンジン25、多重化エンジン26、トラフィックポリシングエンジン27、トラフィックシェーピングエンジン28、複数のポート22a〜22d、時刻基準エンジン29、およびメモリ23は全て、制御エンジン21を通して互いに動作可能に結合される。
【0057】
1つの実施の形態では、ポート22a〜22dはそれぞれ、イーサネットリンクに結合されるように、イーサネットインターフェースを含み、パケットを送信および受信することができる。さらに、「出口」ポートと呼ばれる、ポートのうちの1つ22aは、発信パケットを送信するために構成することができ、一方、「入口」ポートと呼ばれる、複数の他のポート22b、22c、22dは、着信パケットを受信するために構成することができる。
【0058】
1つの実施の形態では、スイッチエンジン25は、1つまたは複数の入口ポートにおいて受信されたパケットを、出力するために出口ポートのうちの1つに向けるように処理する。詳細には、スイッチエンジンは、各受信パケットが属するパケットフローを識別し、受信パケットを、パケットフロー識別子に割り振られた出口ポートに向けるように構成することができる。
【0059】
1つの実施の形態では、それぞれの入口ポートにおいて異なるパケットフロー(例えば、異なる識別子を有するパケットフロー)が受信される場合があり、同じ出口ポートを通して出力されるように、多重化エンジン26によって多重化することができる。
【0060】
トラフィックポリシングエンジン27は、以下に説明されるように、パケット受信時に動作するトラフィックポリシング機能を提供する。トラフィックシェーピングエンジン28は、以下に説明されるように、パケット送信時に動作するトラフィックシェーピング機能を提供する。本主題開示の実施の形態では、トラフィックポリシング機能およびトラフィックシェーピング機能は、トラフィックシェーピング機能がトラフィックポリシング機能によって決定された送信のために、メモリ23に記憶されるパケットの理論受信時刻値を使用するという点で協調して動作する。
【0061】
時刻基準エンジン29は、トラフィックポリシングエンジン27および/またはトラフィックシェーピングエンジン28によって操作される種々の処理に時刻基準を与えることができる。これにより、有利には、1つまたは複数の実施の形態において、ネットワークノード20において実行されるトラフィックポリシングおよびトラフィックシェーピングに対して同じ時刻基準を使用できるようになる。例えば、ネットワークノード20は、ノードのリンクおよびポート22a〜22dがすべて同じ時刻基準を使用するように構成することができる。時刻基準エンジンは、いくつかの実施の形態において、実施態様に応じた、時間単位ずつインクリメントされ、その値がトラフィックポリシングエンジン27および/またはトラフィックシェーピングエンジン28によって現在の時刻値として使用される基準クロックデバイス(例えば、水晶デバイス)に結合される時刻カウンターを実現することができる。いくつかの実施の形態では、時刻カウンター値Tは、ビット伝送時間ごとに、実施態様に応じて、1時間単位または数時間単位ずつインクリメントされる場合があり、ビット伝送時間は、ネットワークノード20によってサポートされるバイナリ伝送速度を考えた場合の1ビットの持続時間に対応する。例えば、100Mbpsイーサネットリンクに対応するビット伝送時間は、10nsに等しいことになる。
【0062】
制御エンジン21はプロセッサを備え、プロセッサは、任意の適切なマイクロプロセッサ、マイクロコントローラー、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、デジタル信号処理チップおよび/または状態機械、またはその組み合わせとすることができる。種々の実施の形態によれば、コンピューターのうちの1つまたは複数を、並列コンピューティングを提供するための複数のプロセッサを有するマルチプロセッサコンピューターとして構成することができる。また、制御エンジン21は、プロセッサによって実行されるときに本明細書において説明される要素をプロセッサに実行させるコンピュータープログラム命令またはソフトウェアコードを記憶することができる、限定はしないが、メモリ23等のコンピューター記憶媒体を備えるか、またはそのようなコンピューター記憶媒体と通信することができる。さらに、メモリ23は、それと関連して記憶されたデータパケットの管理を容易にするために、制御エンジン21に結合され、1つまたは複数のポート22a〜22dを用いて動作可能な任意のタイプのデータ記憶コンピューター記憶媒体とすることができる。
【0063】
図2を参照しながら図示および説明されるネットワークノード20は、一例として与えられるにすぎないことは理解されよう。数多くの他のアーキテクチャ、動作環境および構成が可能である。ノードの他の実施の形態は、より少ない、またはより多くの数の構成要素を含むことができ、図2に示されるネットワークノード構成要素に関して説明された機能のうちのいくつかまたは全てを組み込むことができる。したがって、制御エンジン21、スイッチエンジン25、多重化エンジン26、トラフィックポリシングエンジン27、トラフィックシェーピングエンジン28、複数のポート22a〜22d、時刻基準エンジン29、およびメモリ23はネットワークノード20の一部として示されるが、構成要素21〜29の場所および制御に関して制約は課せられない。詳細には、他の実施の形態では、構成要素21〜29は、異なるエンティティまたはコンピューティングシステムの一部とすることができる。
【0064】
帯域幅プロファイルは、パケットフローFごとに与えることができ、フローFのパケットがネットワークによってサービス提供されるべきである最大速度を表す伝送速度Rを含む。伝送速度Rはビット/秒(bps)において表すことができる。ネットワークノードは、シグナリングを用いるノードの自動構成方式を通して、および/または各ノードの手動構成のための管理ツールを通して、パケットフローに関連付けられる帯域幅プロファイルを使用するために構成することができる。
【0065】
1つまたはいくつかの入口ポートにおいて同じフローに属するパケットまたはフレームを受信すると、そのフローに属するパケットが出力されるべきである出口ポート22dに向けられるように、受信パケットは、他の処理に加えて、または他の処理に対する代替の処理として、スイッチエンジン25によって処理することができる。
【0066】
本主題開示の1つまたは複数の実施の形態において、例えば、先入れ先出し(FIFO)キュー管理アルゴリズムを用いて、キューとして管理されるメモリ空間を、出口ポート22dにおいて管理されるパケットフローごとにメモリ23において割り振ることができる。
【0067】
その際、パケットフローFに属し、1つまたはいくつかの入口ポート上で受信されるパケット
【数16】
は、ネットワークノードのスイッチングエンジンによって処理した後に、および/または受信パケットに関して他のタイプのパケット処理が実行された後に、パケットフローFのために割り振られ、フローFのための出口ポートに関連付けられるキューQに入れることができる。
【0068】
図3は、それぞれが1つのパケットフローFに関連付けられる、K個のメモリキューQを備えるネットワークノード(図2のネットワークノード20等)における出口ポート30を示し、ここで、Kは0より大きい整数である。
【0069】
図3は、パケットフローF、FおよびFにそれぞれ関連付けられる3つのメモリキューQ 31a、Q 32bおよびQ 31cを示す。出口ポート30に関連付けられるK個のメモリキューは、出口ポートのために割り振られるメモリバッファにおいて割り振ることができる。各Q 31a〜31cのサイズSize_Qはビット単位で表すことができ、キューの占有率は、キュー31a〜31c内の利用可能な空間のサイズFree_Qを用いて測定することができる。キューのそれぞれのサイズは、全てのサイズの和
【数17】
が出口ポート30において割り振られるメモリバッファの容量を超えないように選択されることが好ましい。上記のパラメーターを用いて、各キューQ 31a〜31cは、Free_Q=0であるときにフルであると見なされ、Free_Q=Size_Qであるときに空であると見なされる。
【0070】
図3に示される例示的な出口ポート30において、第1のメモリキューQは、出口ポート30を通して伝送するための1つのパケット
【数18】
のみを記憶し、一方、第iのメモリキューQは、3つのパケット
【数19】

【数20】
および
【数21】
を記憶し、第KのメモリキューQは、2つのパケット
【数22】
および
【数23】
を記憶する。
【0071】
1つまたは複数の実施の形態では、理論受信時刻(TRT)値が、出口ポート30においてメモリキューにおいてキューに入れられるパケットごとに計算される。パケットのTRT値は、以下に説明されるように、そのパケットが属するフローの以前に受信されたパケットのサイズ、そのフローに関連付けられる伝送速度値R、およびフローの以前に受信されたパケットのTRT値または実受信時刻(ART)値を用いて求めることができる。
【0072】
1つまたは複数の実施の形態では、メモリキュー(Qi=1...KはFIFOキューとして管理され、それぞれのフロー(Fi=1...Kのパケットは、ノードにおける到着順に応じて順番に対応するキューに記憶され、それにより、シーケンス番号(図3においてインデックスnを使用する)が各パケットに割り当てられる。
【0073】
例えば、図3において示される第iのメモリキューQの場合、対応するTRT値
【数24】
とともに記憶されるパケット
【数25】
はキューQの先頭にあり、パケット
【数26】
の前にキューに入れられていることになり、パケット
【数27】
自体は、キューQにおいて次に来る、パケット
【数28】
の前にキューに入れられた。
【0074】
同様にフローFに関連付けられる伝送速度Rは、フローFのパケットが対応するQ内で受信されると予想される速度に対応するように選択することができ、それゆえ、キューQ内のパケット受信の理論速度を表すように選択することができる。
【0075】
同じフローFに属するパケット
【数29】
が、この理論速度Rよりわずかに高い周期性でキューQに到着する場合には、キューQは徐々に満たされていき、フローFに関するジッタ条件が存在することになる。同様に、同じフローFに属するパケット
【数30】
が、この理論速度Rよりはるかに高い周期性でキューQに到着する場合には、キューQは急速に満たされることになり、フローFに関するバースト条件が存在することになる。
【0076】
1つまたは複数の実施の形態において、各キューQのサイズSize_Qは、フローFの場合に許されるバーストまたはジッタ許容量に従って対応するフローFの場合に求めることができる。
【0077】
1つまたは複数の実施の形態において、出口ポート30を通して伝送するために本明細書において説明されるようなトラフィックポリシング方式を用いてパケットを選択することができる。
【0078】
出口ポート30を通して伝送するためにパケットを選択すると、実施態様によるが、その関連するTRT値とともに、選択されたパケットがそのキューから除去される。パケットがキューから取り出されるとき、その関連するTRT値は、その値が記憶されたメモリから削除することができる。その後、出口ポート30によって、そのポートが結合されるリンク上にパケットを出力できるように、パケットは伝送バッファ32内に入れられる。以下に説明されるように、それぞれのキューの先頭パケットの中の最も小さな理論受信時刻に基づいて、キューの中の多重化機能を実行するように、伝送バッファ32がトラフィックシェーピングエンジンによって管理される。
【0079】
図3を参照しながら図示および説明される出口ポート30は、一例として与えられるにすぎないことは理解されよう。数多くの他のアーキテクチャ、動作環境および構成が可能である。ポートの他の実施の形態は、より少ない、またはより多くの数の構成要素を含むことができ、図3に示されるポート構成要素に関して説明された機能のうちのいくつかまたは全てを組み込むことができる。
【0080】
パケット受信時のトラフィックポリシング動作
図4を参照しながら、受信時のパケットのトラフィックポリシングが以下に説明されることになる。
【0081】
フローFのパケット
【数31】
の受信時(41)に、受信パケット
【数32】
のサイズ
【数33】
が、パケット
【数34】
が到着した入口ポートにおけるパケットの受信プロセスの一部として、またはその後に求められる(42)。
【0082】
例えば、入口ポートにおいて受信されるパケットのビットは、受信パケット内の巡回冗長検査および検出誤りを計算するために、ポートに割り振られたメモリバッファに記憶される。パケットの最後のビットの受信を検出すると、パケットはその全体が受信されたと見なされ、その可変サイズ
【数35】
を求めることができる。
【0083】
パケット
【数36】
の実受信時刻
【数37】
が求められる。1つまたは複数の実施の形態において、
【数38】
値は、パケット
【数39】
の最後のビットの受信を検出すると、図2に参照しながら説明されたように、現在時刻カウンター値をメモリに記憶することによって求めることができることが好ましい。代替的には、ART値は、パケット
【数40】
の任意の部分の受信を検出すると、例えば、パケット
【数41】
の第1のビットの受信を検出すると、記憶することができる。
【0084】
フローFに関連付けられるキューQ内の利用可能な空間Size_Qが、受信パケット
【数42】
のサイズ
【数43】
以上である場合には(43)、フローFに関連付けられるキューQ内に受信パケット
【数44】
を記憶するために利用可能な空間が依然として存在し、パケットがキューQに入れられる(44)。フローFに関連付けられるキューQ内の利用可能な空間Size_Qは、その後、キューに入れられたパケット
【数45】
のサイズ
【数46】
に基づいて更新される(45)。
【0085】
受信パケット
【数47】
の理論受信時刻
【数48】
が、フローFの場合に規定された伝送速度Rに基づいて、フロー内の以前に受信されたパケット
【数49】
に関連する情報を用いて求められている。1つまたは複数の実施の形態では、受信パケット
【数50】
の理論受信時刻
【数51】
値は、パケット
【数52】
の受信前に、フローFのパケットがそこを通して出力された出口ポートに割り振られたメモリキュー内に記憶されている場合がある。
【0086】
受信パケット
【数53】
の理論受信時刻
【数54】
値および実受信時刻
【数55】
値は、メモリから引き出され、比較される(47)。パケット
【数56】
の理論受信時刻
【数57】
がパケット
【数58】
の実受信時刻
【数59】
より大きい場合には、そのパケットは理論受信時刻前に到着している。上記で論じられたように、これは、パケットフローFの場合のジッタまたはバースト条件のいずれかを示す。そのような場合、フローFの場合に受信されることになる次のパケット
【数60】
の理論受信時刻
【数61】
は、パケット
【数62】
の理論受信時刻
【数63】
、フローFの場合に規定される伝送速度Rおよび受信パケットのサイズ
【数64】
に基づいて求められ(48)、フローの次に受信されるパケット
【数65】
の場合に使用するためにメモリに記憶される(52)。例えば、フローFの場合に受信されることになる次のパケット
【数66】
の理論受信時刻
【数67】
は以下のように求められる。
【数68】
【0087】
フローFに関連付けられるキューQ内に依然として利用可能な空間が存在するので、パケット
【数69】
は、それにもかかわらず、おそらく、フロー内の次のパケットのために求められた理論受信時刻
【数70】
とともに、キューQ内に記憶される。
【0088】
それと反対に、フローFに関連付けられるキューQ内の利用可能な空間Size_Qが受信パケット
【数71】
のサイズ
【数72】
以上であると依然として仮定するとき、パケット
【数73】
の理論受信時刻
【数74】
がパケット
【数75】
の実受信時刻以下である場合には、そのパケットはその理論到着時刻に、またはその後に到着している。そのような場合、フローFの場合に受信されることになる次のパケット
【数76】
の理論受信時刻
【数77】
は、パケット
【数78】
の実受信時刻
【数79】
と、フローFの場合に規定される伝送速度Rと、受信パケットのサイズ
【数80】
とに基づいて求められ(49)、フローの次に受信されるパケット
【数81】
の場合に使用するためにメモリに記憶される(52)。例えば、フローFの場合に受信されることになる次のパケット
【数82】
の理論受信時刻
【数83】
は、以下のように求められる。
【数84】
【0089】
フローFに関連付けられるキューQ内に依然として利用可能な空間が存在するので、パケット
【数85】
は、それにもかかわらず、おそらく、フロー内の次のパケットのために求められた理論受信時刻
【数86】
とともに、キューQ内に記憶される。
【0090】
フローFに関連付けられるキューQ内の利用可能な空間Size_Qが受信パケット
【数87】
のサイズ
【数88】
より小さい場合には、受信パケットは破棄され(50)、フローFの場合に受信されることになる次のパケット
【数89】
の理論受信時刻
【数90】
が、パケット
【数91】
の理論受信時刻
【数92】
に等しいと判断される(51)。
【数93】
【0091】
フローFの場合に受信されることになる次のパケット
【数94】
の理論受信時刻
【数95】
は、その後、フローの次の受信パケット
【数96】
の場合に使用するためにメモリに記憶される(52)。パケットフローの次のパケットを受信すると、そのような次のパケットがトラフィックポリシングによって破棄されないとき、この次のパケットの理論受信時刻
【数97】
値は、同様にキューに入れられることになる次のパケットに関連してキュー内にコピーすることができる。実施態様に応じて、パケットの各受信時に求められたTRT値を記憶するために、メモリバッファを使用することができる。トラフィックポリシングによって次のパケットが破棄されない場合、次のパケットおよびそのTRT値がキューに入れられると、この次のパケットの理論受信時刻
【数98】
値は、次のパケットに基づいて求められた新たなTRT
【数99】
値で更新することができる。それゆえ、TRTメモリバッファは、新たなに受信されたパケットがそのフローに対応するメモリキュー内に入れられるたびに更新することができる。
【0092】
1つまたは複数の実施の形態では、上記のトラフィックポリシング動作は、連続ループの繰り返しの一部として実行することができ、各ループ繰り返しは、パケットが受信されたか否かを判断する(40)テストで開始される。パケット
【数100】
が受信された場合には、上記の動作が実行され、そのループの繰り返しは、図4に示されるように、計算値
【数101】
を記憶して終了する。パケットが受信されていない場合には、ループは、別のパケット受信テストを実行する。
【0093】
さらに、ループは、上記のトラフィックポリシング動作をドライブする基準時刻と同期させることができる。例えば、図4に示されるように、基準時刻値を与える時刻カウンターがインクリメントされると、ループの新たな繰り返しが実行されるように、ループを制御することができる。実施態様に応じて、時刻カウンター値が1時間単位または数時間単位ずつインクリメントされると、新たな繰り返しが実行されるように、ループを設計することができる。
【0094】
現在処理されているパケット
【数102】
のTRT値
【数103】
は、そのフローFの場合の一連の受信パケット内の現在処理されているパケット
【数104】
に先行するパケット
【数105】
に関して上記で説明されたのと同じ動作を用いて、すなわち、フロー
【数106】
の以前に受信されたパケットのサイズ
【数107】
と、フローに関連付けられる伝送速度値Rと、フローの以前に受信されたパケットのTRT値
【数108】
が、フローの以前に受信されたパケットの実受信時刻(ART)値
【数109】
より小さい場合には、
【数110】
値と、そうでない場合には、
【数111】
値とに基づいて、求めることができる。
【0095】
例えば、これらの動作が、フローに属する受信パケットごとにループの一部として実行されるときに、これが当てはまる場合がある。そのようなループの第1の繰り返しの場合に、すなわち、パケットフローに対応する最初の受信パケットの場合に、その最初の受信パケットの受信に対応する時刻基準値が、そのようなパケットの理論受信時刻として選択される場合がある。同じフローの場合に次に受信されたパケットは、その後、上記のトラフィックポリシング動作を用いて取り扱うことができる。
【0096】
パケット送信のためのトラフィックシェーピング動作
図5を参照しながら、パケットの送信のためのトラフィックシェーピング動作が以下に説明されることになる。
【0097】
上記で説明され、図3に示されたように、パケットフローに属するパケットを、それぞれの理論受信時刻値とともに、おそらくFIFOキューとして管理されるメモリキュー内の出口ポートにおいて記憶することができる。
【0098】
以下のトラフィックシェーピング動作は、それぞれのメモリキュー内に入れられるパケットの出口ポートを通しての送信を制御することを目的とする。
【0099】
パケットが受信順に記憶されたメモリキューQの場合(50)、先頭パケット、すなわち、フロー内に記憶された最も早い受信パケットが送信するために検討され(55)、その理論受信時刻が現在の時刻カウンター値と比較される(51)。
【0100】
メモリキューの先頭パケットのTRT値が、現在の時刻カウンター値以下である場合には、出口ポートを通して送信する(52)ために、そのパケットが選択される。
【0101】
その後、そのパケットはキューから除去され(53)、出力され、キューの利用可能な空間値が、出力されたパケットのサイズに従って更新される(54)。
【0102】
トラフィックポリシング動作の場合のように、1つまたは複数の実施の形態において、上記のトラフィックシェーピング動作は、連続ループの繰り返しの一部として実行することができ、各ループ繰り返しは、メモリキューQが空であるか否かを判断する(50)テストで開始される。キューQが空でない場合には、上記の動作が実行され、ループの繰り返しは、図5に示されるように、先頭パケットの送信で終了する。キューQが空である場合には、ループは、別のキュー空テストを実行する。
【0103】
好ましくは、図5に示されるように、ループプロセスは、次の繰り返しに進む前に、出力されたパケットが完全に送信されるのを待つ(56)。例えば、パケットの最後のビットが、出口ポートが結合されるリンク上に出力されたときに、パケットは、出口ポートから送信されたと見なすことができる。
【0104】
さらに、ループは、上記のトラフィックシェーピング動作をドライブする基準時刻と同期させることができる。例えば、図5に示されるように、基準時刻値を与える時刻カウンターが更新される(55)と、ループの新たな繰り返しが実行されるように、ループを制御することができる。時刻カウンター更新は、1時間単位だけ、または複数時間単位ずつインクリメントすることを含むことができる。実施態様に応じて、時刻カウンター値が1時間単位または数時間単位ずつインクリメントされると、新たな繰り返しが実行されるように、ループを設計することができる。
【0105】
さらに、時刻基準(T)は、トラフィックポリシングの場合に使用される時刻基準と共通にすることができるか、またはそれに基づくことができる。この関連で、1つまたは複数の実施の形態では、トラフィックポリシングの場合に使用される時刻基準と比べてトラフィックシェーピングの場合に使用される時刻基準をオフセットするように、時間オフセットを実施することができる。詳細には、そのような時間オフセットの値は、あらかじめ決定することができるか、または動的に決定することができる。1つまたは複数の実施の形態では、時間オフセットは、トラフィックポリシングにおいて使用されるパケット受信方式に応じて決定することができる。例えば、上記で論じられたように、パケット
【数112】
の第1のビットの受信を検出するとART値が記憶される実施の形態では、時刻基準Tの更新ための時間オフセットは、パケット
【数113】
のために計算されたTRTのシフトされた値に基づいて、本明細書において開示されるトラフィックシェーピング方式によるパケット
【数114】
の送信をトリガーすることができるように計算することができる。
【0106】
図6は、本主題開示の別の実施の形態による、パケットの送信のためのトラフィックシェーピング動作を示す。
【0107】
図3に示されるように、いくつかのメモリキューは、それぞれのパケットフローにそれぞれ対応する出口ポートにおいて管理することができる。そのような場合、出口ポートの場合に実行されるトラフィックシェーピングループの繰り返しは、出口ポートが空であるか否か、すなわち、空でない出口ポートにおいて管理される少なくとも1つのメモリキューが存在するか否かに関する判断で開始することができる。
【0108】
出口ポートが空でない場合には、すなわち、パケットが受信順に記憶されている(図3に示される)1つまたはいくつかのメモリキュー(Qi=1...Kが存在する場合には、キューの先頭パケット(すなわち、キューごとの、キュー内に記憶されたフローの最も早期の受信パケット)のそれぞれのTRT値が互いに比較され、最小値
【数115】
が選択される(61)。この最小のTRT値は、その後、現在の時刻カウンター値と比較される(62)。
【0109】
最小のTRT値が現在の時刻カウンター値以下である場合には、対応する先頭パケットが、出口ポートを通して送信する(63)ために選択される。
【0110】
その後、パケットはキューから除去され(64)、出力され、出力されたパケットのサイズに従って、キューの利用可能な空間値が更新される(65)。
【0111】
出口ポートが空である場合には、ループは、別の出口ポートの空テストを実行する。
【0112】
好ましくは、図6に示されるように、ループプロセスは、次の繰り返しを処理する前に、出力されたパケットが完全に送信されるのを待つことができる(67)。例えば、パケットの最後のビットが、出口ポートが結合されるリンク上に出力されたときに、パケットは、出口ポートから送信されたと見なすことができる。
【0113】
さらに、ループは、上記のトラフィックシェーピング動作をドライブする基準時刻と同期させることができる。例えば、基準時刻値を与える時刻カウンターが更新される(66)と、ループの新たな繰り返しが実行されるように、ループを制御することができる。時刻カウンター更新は、1時間単位または複数時間単位ずつインクリメントすることを含むことができる。実施態様に応じて、時刻カウンター値が1時間単位または数時間単位ずつインクリメントされると、新たな繰り返しが実行されるように、ループを設計することができる。
【0114】
上記で論じられたように、1つまたは複数の実施の形態において、トラフィックシェーピングのために使用される時刻基準(T)は、トラフィックポリシングの場合に使用される時刻基準と共通にすることができるか、またはそれに基づくことができる。この関連で、1つまたは複数の実施の形態では、トラフィックポリシングの場合に使用される時刻基準と比べてトラフィックシェーピングの場合に使用される時刻基準をオフセットするように、時間オフセットを実施することができる。詳細には、そのような時間オフセットの値は、あらかじめ決定することができるか、または動的に決定することができる。1つまたは複数の実施の形態では、時間オフセットは、トラフィックポリシングにおいて使用されるパケット受信方式に応じて決定することができる。例えば、上記で論じられたように、パケット
【数116】
の第1のビットの受信を検出するとART値が記憶される実施の形態では、時刻基準Tの更新ための時間オフセットは、パケット
【数117】
のために計算されたTRTのシフトされた値に基づいて、本明細書において開示されるトラフィックシェーピング方式によるパケット
【数118】
の送信をトリガーすることができるように計算することができる。
【0115】
図7aおよび図7bは、提案される方法の実施の形態による、ネットワークノードにおける受信および送信動作を示す。
【0116】
図7aは、受信パケットの最後のビットの受信を検出すると受信パケットのART値が記憶される、ネットワークノードにおけるパケットの受信および送信を示し、それに対して、図7bは、受信パケットの最初のビットの受信を検出すると受信パケットのART値が記憶される、ネットワークノードにおけるパケットの受信および送信を示す。
【0117】
図7aおよび図7bはそれぞれ、それぞれサイズ
【数119】

【数120】
および
【数121】
を有する、パケットフローFの場合にネットワークノードによって連続して受信される3つのパケット
【数122】

【数123】
および
【数124】
を示す。第1の受信パケット
【数125】
は、その理論受信時刻
【数126】
に等しい実受信時刻
【数127】
において受信される。第1の受信パケット
【数128】
を送信するためにキューに入れることができると仮定すると、次のパケット
【数129】
のTRTは
【数130】
として計算され、メモリに記憶される。図示されるように、次のパケット
【数131】
は、そのTRT値
【数132】
のはるかに前にネットワークノードによって受信される。次のパケット
【数133】
を送信するためにキューに入れることができると仮定すると、後続のパケット
【数134】
のTRTは、
【数135】
として計算される。後続のパケット
【数136】
は、受信の理論時刻
【数137】
後にネットワークノードによって受信される。次のパケット
【数138】
を送信するためにキューに入れることができると仮定すると、フローFの後続のパケット
【数139】
のTRTは、
【数140】
として計算される。
【0118】
上記のように、トラフィックポリシング機能(パケットの受信用)およびトラフィックシェーピング機能(パケットの送信用)は、現在の時刻基準を共有することができる。時刻基準が時間単位だけインクリメントされる時刻カウンターを用いて実現されるとき、単一の時間単位内で生じるイベントは、パケットの受信の終了およびそのパケットの送信の開始の場合に図示されるように、瞬時と見なすことができる。そのような例示は表現にすぎないこと、および受信プロセス自体を含む、受信パケットの種々の処理は、図には表されていない処理上の時間遅延を受けることは、関連技術分野の当業者には理解されよう。
【0119】
図7aを参照すると、パケットフローFの場合にネットワークノードによって連続して受信されるパケット
【数141】

【数142】
および
【数143】
の送信に関して、これらの受信パケットがネットワークノードのトラフィックポリシング機能によって破棄されなかったと仮定すると、送信するために考慮されるときの時刻基準値TがそのTRT値
【数144】
以上であるので、第1の受信パケットは受信すると概ね直ちに送信される。上記のことは、その理論受信時刻
【数145】
のはるかに前にネットワークノードによって受信された次のパケット
【数146】
の場合には当てはまらない。その際、トラフィックシェーピング機能は、時刻基準値がこの理論受信時刻
【数147】
値以上になるまで待つことになり、その結果、
【数148】
の送信は、理論受信時刻
【数149】
値の後の時刻まで遅延することになる。ここでも再び、同じことは、その理論受信時刻
【数150】
値の後に受信された後続のパケット
【数151】
の場合には当てはまらない。トラフィックシェーピング機能によって遅延は加えられず、パケットの送信は、受信およびその処理が完了すると直ちに実行することができる。
【0120】
図7bを参照すると、パケットの送信に関して、パケットフローFの場合にネットワークノードによって連続して受信される各パケット
【数152】

【数153】
および
【数154】
の送信は、各パケットの送信のために決定されたオフセットを除いて、図7aに示される送信方式に類似である。送信するために考慮されるときのこのパケットのために決定されたオフセットoffset(n)だけシフトした時刻基準値Tが、そのTRT値
【数155】
以上であるので、第1の受信パケットは、オフセット
【数156】
だけシフトしたそのTRT値に対応する時刻に送信される。上記のことは、その理論受信時刻
【数157】
のはるかに前にネットワークノードによって受信された次のパケット
【数158】
の場合には当てはまらない。その際、トラフィックシェーピング機能は、時刻基準値が、このパケットのために決定されたオフセットoffset(n+1)だけシフトしたこの理論受信時刻
【数159】
値以上になるまで待つことになり、その結果、
【数160】
の送信は、オフセットoffset(n+1)だけシフトした理論受信時刻
【数161】
値の後の時刻まで遅延することになる。ここでも再び、同じことは、その理論受信時刻
【数162】
値の後に受信された後続のパケット
【数163】
の場合には当てはまらない。トラフィックシェーピング機能によって遅延は加えられず、パケットの送信は、この後続のパケット
【数164】
のために決定されたオフセットoffset(n+2)を条件として、受信およびその処理が完了すると直ちに実行することができる。
【0121】
本発明は好ましい実施の形態に関して説明されてきたが、添付の特許請求の範囲によって規定されるような本発明の趣旨または範囲から逸脱することなく、本発明に対して種々の変更および/または修正を加えることができることは当業者には容易に理解されよう。
【0122】
本発明はある特定の好ましい実施の形態との関連で開示されてきたが、そのシステム、デバイスおよび方法のある特定の利点、特徴および態様は種々の他の実施の形態において実現される場合があることは理解されたい。さらに、本明細書において説明される種々の態様および特徴は、別々に実践することができるか、互いに組み合わせることができるか、または互いに代用することができること、並びに特徴および態様の種々の組み合わせおよび部分的な組み合わせを行うことができ、それでも本発明の範囲に入ることを意図している。さらに、上記のシステムおよびデバイスは、好ましい実施の形態において説明されたモジュールおよび機能の全てを含む必要はない。
【0123】
本発明において説明される情報および信号は、種々の異なる技術および技法のいずれかを用いて表すことができる。例えば、データ、命令、コマンド、情報、信号、ビット、シンボルおよびチップは、電圧、電流、電磁波、磁界または磁気粒子、光場または光子、またはその任意の組み合わせによって表すことができる。
【0124】
実施の形態によっては、本明細書において説明された方法のいずれかのある特定の動作、イベントまたは機能は、異なる順序において実行することができるか、追加されるか、統合されるか、または全て除外される場合がある(例えば、方法を実践するために、説明される全ての動作またはイベントが必要とされるとは限らない)。さらに、ある特定の実施の形態では、動作またはイベントは、順次にではなく、同時に実行される場合がある。
図1
図2
図3
図4
図5
図6
図7a
図7b