説明

優先して扱われるべきパケットの間接的な判断でネットワークにおいてルートするためのパケットを順序付けるための方法及び装置

異なるフローに属するパケットを順序付ける方法は、前記パケットのフローに関連付けられたキューにおいて各パケットを待ち行列に入れる段階(E58)と、循環的に処理された前記キューのそれぞれのために、前記サイクルに対する割当まで前記キューに含まれたパケットを送信する段階と、前記段階(E58、E56,E48)が待ち行列に入れる前に前記パケットの優先度を判断する段階(E40、E54)と、前記優先パケットは、先ず、非アクティブフロー、即ちパケットが前記サイクルで受信されなかったフローの第1パケットであり、次に、前記サイクルで受信されたパケットの量が前記割当未満であるアクティブフローのパケットであり、前記判断段階(E40、E54)の間で優先度を有すると判断された前記サイクルパケットにおいて優先して送信する段階とを具備する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の領域は、電気通信ネットワークのアーキテクチャである。
【0002】
本発明は、具体的には複雑ではない、順序方法、順序装置、及びマルチサービスデータパケットルーターを目的とし、そのネットワークの各種フローに含まれたマルチサービスデータパケットがルートされるサービス品質を改善することが目的である。
【0003】
それは特に、インターネットネットワークに適用する。
【0004】
この明細書で使用された“フロー”の概念は例えば、2002年World Telecom Conferenceの、Bonaldらによる文献“IP traffic and QoS control: the need for a flow−aware architecture”において開示された“flow−aware”アーキテクチャである。
【背景技術】
【0005】
インターネットは、マルチサービスの適性を有し、広範なサービス及びアプリケーションを支援することが要請される。トラヒックの2つの主なクラスは、インターネット、即ち音声又は映像アプリケーションによって一般に生成された実時間トラヒック(フローイングトラヒックとしても知られる)と、デジタル文書の送信に相当するデータトラヒック(弾性トラヒックとしても知られる)とに区別される。実時間トラヒックは、信号の保護のための条件に相当するサービス品質条件を有し、ソースによって生成された信号を特徴付けるビットレートの変化は、信号がネットワークを通過する時に保護されなければならない。データトラヒックのサービス品質は、文書送信時間によって測定される。その時間、即ち送信の間に達成された対応する平均ビットレートは、ソースから目的地まで全体的な通信チェーンに依存する。インターネットネットワークを目的とするサービス品質は、他の場所(サーバー、ネットワーク上、ユーザー装置)でもたらされた制限を越えて任意の追加のビットレートの低減をもたらすことなく、データトラヒックに透明性を表すことができ、この場合、ネットワークは、データフローのビットレートを保護する。
【0006】
インターネット公衆ネットワークは、商業コンテキストにおいてユーザークライアントに送信サービスを提供する。課金問題が故に重要である。ネットワークアーキテクチャは、ユーザーによって要求された高品質サービスの競争的な価格付けに結合されたオペレータのために投資上の見返りを提供しなければならない。
【0007】
DRR(“不足ラウンドロビン”を表す)として知られた低い複雑性(0(1)単位で、即ちフローの数から独立している)である従来の順序方法は、1996年6月、第4巻第3発行、第375〜385頁の、IEEE/ACMネットワーク上の取引“Efficient fair queuing using deficit round robin”で、M.SHREEDHAR及びG.VARGHESEによって説明されている。
【0008】
DRR順序方法は、“ラウンドロビン”原理に従って、循環様式でフローを処理することに基づく。この方法は、各フローにキューを関連付け、循環的に処理された各キューは、割当量(例えばバイトで測定されたデータの量)までパケットを各サイクルで送信することが許可される。
【0009】
このDRR方法は、各種フローのパケットサイズにおいて任意の差を補償するための不足カウンタを操作することによって公平の適当な割合を確実にする。
【0010】
DRR方法の変形は、所定のフローのパケットに優先処理を関連付ける。
【0011】
特に、上記文献で説明されたDRR+方法は、“ベストエフォート”フローを損ねて、遅延に敏感なフローの優先処理を可能にする。その方法において、優先フローは、契約に従い、即ちそれらは、所定時間の間に一定量より多くのデータを送信してはならない。
【0012】
出願人の名前において、文献FR2854296は、優先して処理されるべきパケットの陰関数微分法を備えた順序方法を提案し、その結果そのタイプの契約の手間を省く利益をもたらす。しかし、その文献で説明された順序方法は、“self−clock fair queuing”タイプであり、0(1)単位であり、は、考慮されるべきフローの数であり、一定のタイプのルーターにおけるその実行上で限定となりうる。
【発明の開示】
【発明が解決しようとする課題】
【0013】
本発明は、上記問題を解決することを目的とする。
【課題を解決するための手段】
【0014】
このために、本発明の第1の実施形態は、異なるフローに属するパケットを順序付ける方法であって
・前記パケットのフローに関連付けられたキューにおいて各パケットをキューする段階と、
・循環的に処理された前記キューのそれぞれのために、前記サイクルに対する割当量まで前記キューに含まれたパケットを送信する段階と、
・前記キューする段階の前に前記パケットの優先度を判断する段階と、
前記優先パケットは、
・先ず、非アクティブフロー、即ちパケットが前記サイクルで受信されなかったフローの第1パケットであり、
・次に、前記サイクルで受信されたパケットの量が前記割当量未満であるアクティブフローのパケットであり、
・前記判断段階の間で優先度を有すると判断された前記サイクルパケットにおいて優先して送信する段階と、を具備する。
【0015】
本発明はまた、異なるストリームに属するパケットを順序付けるための装置であって、
・前記パケットのフローに関連付けられたキューにおいて各パケットをキューするための手段と、
・前記サイクルに対する割当量まで前記キューに含まれたパケットを送信するための手段を含む、循環的に前記キューのそれぞれを処理するための手段と、
・前記パケットをキューする前にパケットの優先度を判断するための手段と 、
前記優先パケットは、
・先ず、非アクティブフロー、即ちパケットが前記サイクルにおいて受信されなかったフローの第1パケットであり、
・次に、前記サイクルで受信されたパケットの量が前記割当量未満であるアクティブフローのパケットであり、
・前記判断手段によって優先度を有すると判断された前記サイクルパケットにおいて優先して送信するための手段と、を具備する。
【0016】
故に、本発明に従う順序付けは、それらの固有のビットレート特性の関数であるフローの優先度と、フローのパケットに関連付けられ、及びフローの数とは関係ない複雑性のレベルに関連付けられた契約または外部割当された優先度の関数ではないフローの優先度との間で区別するという点で従来技術から区別される。
【0017】
順序付け装置及び方法は、優先アルゴリズムの公平な共有に従ってキューにおいてパケットを置く。“優先度の公平な共有”順序付けは、送信するパケットを常に有したフローによって生成されるビットレートに相当する動的閾値をビットレートが下回るフローのパケットに優先度を与える。
【0018】
この順序処理及び装置は、上記で参照したDRR順序方法を有利に使用する。
【0019】
本発明による順序方法の一つの特定の実施形態はまた、認可制御に使用された混雑推定量を計算するために処理されるように構成された混雑カウンタを測定する段階を含む。
【0020】
これらの混雑推定量は特に、コアネットワークへの認可を制御するために使用されうる。
【0021】
一つの特定の実施形態において、これらの混雑推定量(即ちパラメータ)は:
・送信するパケットをそれが常に有した場合にデータフローが生成するビットレートの量である公平ビットレート値と、
・その期間の持続時間によって分割された期間の間に送信された前記優先パケットの量に相当する優先負荷値と、からなる。
【0022】
一つの特定の実施形態において、本発明に従う順序付けは、各フローに関連して“公平なキューイング”タイプの認可制御に関連付けられる。
【0023】
故に、本発明の第2の実施形態は、順序装置によって測定された混雑パラメータの関数としてパケットの認可を制御するための上記順序装置及びモジュールを含むパケットルーターにある。
【0024】
一つの特定の実施形態において、認可制御モジュールはまた、保護されたフロー、即ち少なくとも一つのパケットが所定の時間間隔で前記認可モジュールによって受信されたフローに属するパケットを直接ルートするように構成される。
【0025】
この種類の装置又は方法は、混雑のリスクがコアネットワークよりも簡単に制御できるアクセスネットワークの特定のコンテキストにおいて認可制御手段がなくても機能することができる。
【0026】
一つの特定の実施形態において、順序方法の段階は、コンピュータプログラムの命令の制御下でコンピュータによって実行される。
【0027】
結果として、本発明はまた、情報媒体上に記憶されたコンピュータプログラムにあり、そのプログラムは、そのプログラムが電子データ処理システムに対してロード、及び前記システムによって実行された時に上記順序方法が実行されるようにする命令を含む。
【0028】
本発明はまた、プログラムが電子データ処理システムに対してロード、及び前記システムによって実行された時、前記順序方法を実行するためのコンピュータプログラムの命令を含む、電子データ処理システムによって読取可能であり、かつ任意で全体的に又は部分的に取外し可能な情報媒体、特に、ハードディスク若しくはディスケット等のCD−ROM若しくは磁気媒体、又は電気的若しくは光学的信号等の伝達可能媒体に関する。
【0029】
順序装置、ルーター、情報媒体及びコンピュータプログラムの特定の利点が上記順序方法のそれらと同一であるため、それらは、ここで繰りかえされない。
【発明を実施するための最良の形態】
【0030】
本発明に従う順序方法の一つの特定の実施形態は、以下に説明される。ここで説明された例において、当該順序方法は、コンピュータプログラムPROG_ORDによって実行される。
【0031】
本発明に従い、この順序方法は、ビットレートが公平なビットレートを越えないフローのパケットを優先的に処理できるように修正されたDRRタイプの方法である。
【0032】
ここで説明された特定の実施形態において、この順序方法はまた、図4を参照して以下に説明された認可制御モジュールが必要とする混雑(congestion)測定を実行するのに使用される。
【0033】
順序方法は、フローに属するパケットを処理する、と以下に仮定する。
【0034】
ここで説明された特定の実施形態において、本発明の順序方法は、各アクティブフローのパケットを記憶するために異なるキューQueue_iを使用する。
【0035】
サービス品質における陰関数微分法の想定される用途は、割当量Q_iが同一であり最大パケットサイズMTU(maximum transfer unit)に等しいことを仮定するが、本発明の順序方法は、各フローに対して異なる割当量Q_iを許容する点に留意すべきである。
【0036】
いずれにせよ、割当Q_iは、最大パケットサイズMTUより大きいか又は等しい。
【0037】
ここで説明された詳細な例において、これらのキューは、1からまで数えられ、但し、は、アクティブフローの最大数である。
【0038】
ここで説明された順序方法はまた、公平なビットレートを測定するためのダミーフローのために用意された追加のキューを使用し、送信するパケットを常に有するデータフローによって生成されるビットレートを意味する。
【0039】
本発明に従う順序方法はまた、それらが属するフローのビットレートの固有の特徴の関数としての優先度を有すると判断されるパケットをサービスするために優先キューPQを使用する。
【0040】
説明の残りにおいて、区別は、公平なビットレートを測定するための“リアル”キュー(PQ、Queue_1、...、Queue_n)と“ダミー”キューとの間で行われる。
【0041】
リアルキューは、当業者に知られるFIFO(先入れ先出し)タイプの全てのキューである。
【0042】
ここで説明された本発明の順序方法はまた、アクティブフローのリストActiveListと2つの演算子InsertActiveList()及びRemoveActiveList()とを使用し、各演算子は、アクティブフローのリストActiveListの終端でフローインデックスを追加するように、及びそのリストからフローインデックスを除去するように構成される。
【0043】
この順序方法はまた、Research and Experience、Vol.2、Jan.1991、pp.113−131の、P.McKenneyによる“Stochastic Fairness Queuing”で説明された方法を用いて、最長キューQueue_iの先端に位置付けられたパケットを拒絶することによってメモリスペースを自由にするように構成された関数FreeBuffer()を使用する。
【0044】
フロー間で公平さを保とうとする他のメモリ自由方策も使用されうる。
【0045】
ほとんどの従来技術の順序方法において見られるように、ここで説明された本発明の順序方法は、2つの標準キュー操作演算子を主として使用する。
・キューの終端にパケットを挿入するための演算子InsertInQueue();
・キューの先端から要素を除去するための演算子RemoveFromQueue()
【0046】
予備的な初期段階の間、順序プログラムPROG_ORDは、全てのキューQueue_iのために不足カウンタDC_iを0に初期化し、アクティブフローのリストActiveListに公平なビットレートを測定するためのダミーフローに対応するインデックス0を挿入する。
【0047】
Enqueue()演算子の主な段階は、図1を参照して以下に説明される。
【0048】
パケットの受信時、演算子Enqueue()は、全てのアクティブフローのパケットが記憶されるバッファメモリ領域(“バッファゾーン”)が飽和しているか否かをテストする第1段階E10を実行する。
【0049】
バッファメモリが飽和している場合、テストE10の結果は、肯定的になる。
【0050】
テストはその後、上記関数FreeBuffer()を呼ぶことによって最長キューQueue_iの先端に位置決めされたパケットを拒絶することによってメモリスペースが自由にされる段階E20に続く。
【0051】
メモリ自由段階E20は、パケットが属するフローの数が得られる段階E30に続く。
【0052】
対照的に、アクティブフローのリストActiveListが満たされない場合、上記テストE10の結果は、否定的になる。テストはその後、上記段階E30に続く。
【0053】
フローインデックスを得る段階E30は、パケットのフローがアクティブであるか否かを確認するテストE40に続き、フローがアクティブフローのリストActiveListにあるか否かを確認することである。
【0054】
そうでない場合、テストE40の結果は、否定的になる。テストはその後、上記関数InsertActiveList()を呼ぶことによってアクティブフローのリストActiveListにフローが挿入される段階E42に続く。
【0055】
この挿入段階E42は、アクティブフローに関連付けられたキューQueue_iの不足カウンタDC_iが0に初期化される段階E44に続く。
【0056】
この不足カウンタDCiは、当業者に知られたDRR順序方法のそれに類似する。
【0057】
本発明に従い、各サイクルにおいて、各新規受信フローは、その割当量Q_iまで優先データを送信することができる。
【0058】
このために、初期段階E44は、優先的に処理されるべきフローのパケットのバイトの数を記憶する可変BytesCount_iに、パケットのサイズsize(p)が記憶される段階E46に続く。
【0059】
この割当段階E46は、キューの終端でパケットを挿入するための関数InsertInQueue()を用いて優先キューPQの終端にパケットが追加される段階E48に続く。
【0060】
キューにおける挿入のこの段階E48は、少なくとも一つのパケットpが送信される状態にある事実を記憶するために、可変Silenceがブール値FALSEで初期化される段階E50に続く。
【0061】
後に説明されるように、このフラグSilenceは、トラヒックの不在時に公平なビットレートを測定するために使用され、トラヒックの不在は、識別子がブール値TRUEに等しい事実によって示される。
【0062】
この段階E50は、この実施形態においてパケットをキューする処理を終了する。
【0063】
処理されているパケットがアクティブフローのパケットである場合、上記テストE40の結果は、肯定的になる。
【0064】
テストはその後、上記可変BytesCount_iの内容にパケットのサイズが追加される段階E52に続き、優先的に処理されるべきフローのパケットのバイトの数を記憶するために使用される。
【0065】
この蓄積段階は、優先して(即ち、BytesCount_iで)処理されるべきパケットのフローのバイトの数が、そのフローのために用意されたキューQueue_iの割当量Q_i未満か又は等しいかを確認するテストE54に続く。
【0066】
そうである場合、テストE54の結果は、肯定的になる。テストはその後、上記キューする段階E48に類似する、キューする段階E56に続き、その中でパケットは、優先キューPQの終端で追加される。
【0067】
さもなければ、フローに対して優先して処理されるべきバイトの数BytesCount_iがそのサイクルに対するクォウト(quote)を超える場合、テストE54の結果は、否定的になる。テストはその後、そのフローのために用意された通常の(即ち、非優先的)キューQueue_iにおいてパケットをキューする段階E58に続く。
【0068】
キューする段階E56及びE58は、この特定の実施形態の待ち行列段階を終了する。
【0069】
キュー演算Dequeue()からの抽出の主な段階は、図2を参照して次に説明される。
【0070】
パケットの処理を終了するためのこの演算子Dequeue()は:
・パケットを送信する各演算の端で;及び
・システムが空である時にパケットの到達に続いて;使用され、
この第2条件は、1からまで変わるに対する各キューQueue_iが空であり、かつキューPQが空である場合に満たされる。
【0071】
ここで説明された実施形態において、この演算子Dequeue()は、以下に説明された段階F10からF84からなる無限ループの形をとる。
【0072】
第1段階F10は、優先キューPQが空か否かを確認する。そうでない場合、テストF10は、リストの先端でパケットが優先キューPQから抽出される段階F20に続く。
【0073】
この演算は、キューの先端で要素を除去するように構成された関数RemoveFromQueue()を用いて達成される。
【0074】
この抽出段階F20は、このパケットのフロー数を得る図1を参照して既に説明された段階E30に類似する段階F22に続く。
【0075】
その数を得るこの段階F22は、パケットが送信される段階F24に続く。
【0076】
この送信段階F24は、段階F20で優先キューPQから除去されたパケットのフローに関連付けられたQueue_iの不足カウンタDC_i_からこのパケットのサイズ(p)が引かれる段階F26に続く。
【0077】
この減算段階F26は、優先して処理されるべきトラヒックの量を記憶するために使用される可変PBの内容にパケットのサイズが追加される段階F28に続く。
【0078】
この蓄積段階F28は、既に説明されたテストF10に続き、優先キューPQが空であるか否かを確認する。故に、段階F10からF28は、優先キューPQにパケットがある限り継続するループを構成する。
【0079】
このループの間、パケットが優先して送信されたフローに関連付けられた不足カウンタDC_iは、現在のサイクルにおいてその割当量Q_iを各フローが超えないように低減される。
【0080】
優先キューPQが空である場合、テストF10の結果は、肯定的になる。テストはその後、少なくとも一つの実フローがアクティブであるか否かを確認するテストF30に続く。
【0081】
ここで説明された実施形態において、これは、アクティブフローのリストActiveListが一つより多い要素を含むことを確認することであり、なぜなら、このリストは常に、公平なビットレートを測定するために使用された少なくともダミーフロー0を含むからである。
【0082】
そうでない場合、テストF30の結果は、否定的になる。テストはその後、優先キューPQにおいて、又は任意の非優先キューQueue_iにおいて送信されるべきパケットが存在しない事実を表すために、図1から段階E50に関して上述された可変Silenceにブール定数TRUEが割り当てられるテストF32に続く。
【0083】
この割当段階F32は、上記段階F10に続き、優先キューPQが空であるか否かをテストする。
【0084】
少なくとも一つの実フローがアクティブである場合、テストF30の結果は、肯定的になる。テストはその後、アクティブフローのリストActiveListの先端でフローの識別子を得る段階F34に続く。
【0085】
識別子を得るこの段階F34は、ダミーフロー0が送信したバイトFBの量を測定するための一組の段階F40からF44に続き、この量FBは、後に説明されるように、公平ビットレートを評価するために使用される。
【0086】
具体的には、段階F40は、先行段階F34におけるアクティブフローのリストActiveListの先端で得られたフローがダミーフロー0であるか否かをテストする。
【0087】
そうである場合、テストF40の結果は、肯定的になる。テストはその後、ダミーフロー0に割り当てられた割当量Q_0が量FBに追加される段階F42に続く。
【0088】
この蓄積段階F42は、ダミーキュー0がサイクルの先頭から除去され、上記標準演算InsertActiveList()及びRemoveActiveList()を用いてサイクルの終端にすぐに追加される段階F44に続く。
【0089】
段階F34の間にアクティブフローのリストActiveListをテストする時に得られたアクティブフローが実フローである場合、テストF40の結果は、否定的になる。
【0090】
テストはその後、その割当量Q_iがフローのための不足カウンタDC_iの現在値に追加される段階F50に続く。
【0091】
この蓄積段階F50は、その割当量Q_iまでフローのパケットを送信するための一連の段階F60からF68に続く。
【0092】
具体的には、テストF60は、不足カウンタDC_iが正確に肯定的であるか否か、及び非優先キューQueue_iが空でないか否かを確認する。
【0093】
そうである場合、テストF60の結果は、肯定的になる。テストはその後、キューQueue_iの先端でパケットのサイズが可変で記憶される段階F61に続く。
【0094】
この段階F62は、このサイズがこのフローのための不足カウンタDC_i未満か又は等しいかを確認するテストF62に続く。
【0095】
そうである場合、テストF62の結果は、肯定的になる。テストはその後、関数RemoveFromQueue()を用いてキューQueue_iからそれを除去してから、このパケットが送信される段階F64に続く。
【0096】
送信段階F64は、このパケットのサイズが不足カウンタDC_iから引かれる段階F66に続く。
【0097】
この減算段階F66は、フローに関連付けられたQueue_iが空でないか否か、及びそのキューのための不足カウンタDC_iが正確に肯定的であるか否かを確認する上記テストF60に続く。
【0098】
認可された割当量DC_iまで、フローの全てのパケットが送信された場合、その後テストF60又はテストF62の結果は、否定的になる。
【0099】
段階F70の間、フローはその後、上記演算子RemoveActiveListを用いてアクティブフローのリストActiveListから除去される。
【0100】
この除去段階F70は、フローに関連付けられたキューQueue_iが空か否かを確認するテストF80に続く。
【0101】
そうである場合、フローに関連付けられた不足カウンタDC_i_は、初期段階F82の間に0に初期化される。
【0102】
そうでない場合、フローは、関数InsertActiveListを用いて挿入段階F84の間にアクティブフローのリストActiveListの終端で挿入される。
【0103】
アクティブフローのリストActiveListへフローを挿入するF84と不足カウンタDC_iを初期化する段階F82とは、上記テストF10に続く。
【0104】
当業者であれば、実際には、アクティブフローのリストActiveListがオーバフローの低い可能性のために調節(size)されなければならないことが分かる。
【0105】
一つの特定の実施形態において、新規フローのパケットが受信されアクティブフローのリストActiveListが満杯になる時、そのパケットは、優先キューPQに設置されるが、それが属するフローは、アクティブフローのリストActiveListに追加されない。
【0106】
このパケットはその後、送信されるが(段階F24)、それが属するフローに関連付けられた情報は、更新されない。
【0107】
従って、除去処理が適用されるパケットは、たとえそれらのフローのビットレートが現在の公平なビットレートを超える場合でも、優先度を有する。
【0108】
この妨害は、パケットが公平なビットレートより大きいビットレートを備えたフローのために到達する限り、この状態で残る可能性がかなり低いことを考えれば、問題ではない。
【0109】
周知のDRR方法に基づく、本発明による順序アルゴリズムは、0(1)の複雑性である点に留意すべきである。
【0110】
図3Aから3Fは、図1及び2を参照して先に説明された本発明による順序方法の作動の一例を示す。
【0111】
説明は、3つのキューQueue_1、Queue_2、Queue_3が各フローflow1、flow2、flow3のパケットを含むと仮定する。これらのパケットのサイズは、これらの図に示される。
【0112】
優先キューPQがこのシナリオの開始に空であることも仮定される。
【0113】
最後に、各フローに割り当てられた割当量Q_iの値が1500に等しいと仮定される。
【0114】
これらの図において、黒い矢印は、フローのリストの先端がサイクルにおいてアクティブであることを示し、このサイクルは、非優先キューQueue_1、Queue_2、Queue_3、Queue_4の次の順番に続く。
【0115】
各種段階のそれぞれでサービスされているパケットは、影で示される。
【0116】
初めに、図3Aに示されるように、リストの先端にあるフローは、キューQueue_1に関連付けられたフロー1である。
【0117】
その不足カウンタDC_1は、その割当量Q_1、即ち1500まで増大される。
【0118】
ルーター100は故に、このキューQueue_1の第1パケット(影)をサービスし始めることができ、このパケットのサイズはここでは500バイトである。
【0119】
図3Bは、新規フロー4に属するパケットが先行パケットのサービスの間に到達すると仮定する。
【0120】
キューQueue_4が生成され、このフロー4に関連付けられる。
【0121】
従来のDRRタイプの順序に照らして起こることとは対照的に、ここではこのパケットは、段階E48を参照して先に説明されたように、優先キューPQに挿入される。
【0122】
しかし、フロー1の処理が続き、Queue_1の第2パケットのサイズは、500バイトであり、新たな不足DC_1未満である(テストF60及びF62両結果が肯定的)。
【0123】
図3Cに示された段階において、フロー1の処理は、キューQueue_1に関連付けられた不足DC_1が500に等しくなる時に完了され、その不足は、次のパケットのサイズ1000未満である(テストF62の結果が否定的)。
【0124】
本発明に従って、及び従来のDRRタイプの順序に照らして発生することと対照的に、不足DC_4が低減される(段階F66を参照)フロー4に属するパケットを含む優先キューPQは、サービスされる(テストF10の結果が否定的)。
【0125】
図3Dに示された次の段階の間、優先キューPQは現在、空であり(テストF10の結果が肯定的)、第1アクティブ実フローは、処理され(テストF30の結果が肯定的)、即ちフロー2がキューQueue_2に関連付けられる。
【0126】
図3Eに示された次の段階の間、次のフロー(フロー3)は、キューQueue_2において残るパケットのサイズが、そのキューに関連づけられた割当量DC_2より大きいので、処理される(テストF62の結果が否定的)。
【0127】
図3Fに示された最後の段階は、フロー1のサービスが再開される新たなサイクルの開始を構成する。フロー4は、そのキューQueue_4が空であるので、もはやアクティブではなく、そのためそれは、ActiveListの一部ではない。
【0128】
図4は、本発明による順序装置100の一つの特定の実施形態を示す。この順序装置は、ルーター、又はルーター用のプロセッサ若しくはマイクロプロセッサで通常実行される。
【0129】
従来の方法では、この装置は、それが、それらを送信することを目的として順序付けするか、又はオーバフローの場合には拒絶するかの何れか一方であるパケットを受信する。
【0130】
この図4において、参照34は、パケットの出発を示し(段階F24、F64)、参照32は、パケットの拒絶を示す(段階E20)。
【0131】
この順序装置100は、プロセッサ110、読取専用メモリ120、ランダムアクセスメモリ130及びクロック140を含む。
【0132】
順序装置100はまた、ハードウェア及びソフトウェア通信手段150を含み、手段150は例えば、インターネットネットワーク10に接続されたネットワークカードとTCP/IP通信プロトコルを実行するように構成されたソフトウェアレイヤーとからなる。
【0133】
これらの通信手段150は特に、パケットを受信するように、及びランダムアクセスメモリ130の領域131にそれを記憶するように、及びその領域からパケットを読み出すように構成され、インターネットワーク10上でそれを送信する。
【0134】
順序装置100の各種ハードウェアユニットは、バスシステム160によって相互接続される。これは、従来から知られる。
【0135】
本発明によると、読取専用メモリ120は、順序プログラムPROG_ORDを含み、ランダムアクセスメモリ130は、この順序プログラムPROG_ORDを実行するためのデータ構造170を含む。
【0136】
このデータ構造170は、テーブルの形で示され、各行は、フローに関連付けられたキューQueue_iに相当する。具体的には、このテーブルにおいて:
・第1列は、フローのインデックスを記憶し;
・第2列は、フローの識別子を記憶し;
・第3列は、キューQueue_iの割当Q_iを記憶し;
・第4列は、キューQueue_iの不足カウンタDC_iを記憶し;
・第5列は、そのリストにおけるキューQueue_iに続くキューのインデックスを記憶することによってアクティブフローのリストActiveListからフローのサイクルを管理するために使用され(従来から知られるように、これらのポインタを管理することで、アクティブフローのリストActiveListに対するフローの挿入及び抽出が可能となる);
・最後の列は、ランダムアクセスメモリ130におけるキューQueue_iの先端でパケットの記憶アドレスを与える(従来から知られるように、キューQueue_iにおける後続パケットは、連鎖ポインタのリストを用いてアクセス可能である)。
【0137】
一つの特定の実施形態において、フローのアクティビティは、フローの識別子をデータ構造1709の第2列の内容と比較することによって、例えば、連想記憶メモリ(CAM)を用いることによって確認される。
【0138】
本発明の一つの特定の実施形態に従うルーター50は、図5を参照して以下に説明される。
【0139】
このルーター50は、図4を参照して先に説明されたそれと同一又は類似の順序装置100を含む。ここで説明された特定の実施形態において、このルーターはまた、入来フロー(実線矢印31)の各パケットの認可を制御するためのモジュール24を含む。
【0140】
例えば、このモジュールに提供されたパケットは、フロー識別子の一部の領域にハッシング関数を適用することによって得られた負荷分散を含みうる標準ルーティング関数によって判断される。
【0141】
ここで説明された実施形態において、この認可制御モジュール24は、独立して実行できる2レベルの制御を達成する。
【0142】
このために、認可制御モジュール24は、“保護された”フロー、即ちアクティブな認可制御モジュール24によって認められたフロー(即ち、このフローのパケットが所定の時間間隔の間に識別された)のリスト30を制御及び更新し、所定のフローのパケットのサイズは、保護されたフローのこのリスト30に依存して、直接ルートされたか否かでなければならなく、即ちそれがないと、順序装置にパケットをルートするための認可条件を確認する必要がある。
【0143】
具体的には、保護されたフローのこのリスト30は、各フローの最終パケットの到達時間を示すフローの識別子のリストである。
【0144】
一つの特定の実施形態において、各リストの容量を限定するために、及びそれにより拡張性を保証するために、各リストは、識別子のスペースの分割に関連付けられる。
【0145】
その実施形態において、フローは、そのフローの最終パケットが受信されてから経過した時間が閾値を越えるか又は中断した場合、識別子のリスト30から削除される。この中断の長さは、例えば数秒単位であり、システムパラメータである。
【0146】
一つの特定の実施形態において、このリスト30は、飽和の可能性、このフローがリストに置かれる必要があるがリストが既に満杯な状態を限定するために調節される。
【0147】
そのような飽和の結果、保護されたフローの状況を確保するのにフローが遅れることになる。混雑状態がそれを許容する場合、パケットはそれにもかかわらず、正しくルートされる。従来から知られるように、飽和の可能性は、十分な調節によってかなり低くすることができる。
【0148】
保護されたフローにパケットが属する場合、それは、正しい出力インタフェースに対応する順序装置100に直接ルートされ(矢印38)、この保護されたフローの最終パケットの到達の時間は、識別子のリスト30に更新される。
【0149】
フローが既に保護されていない場合、順序モジュールから受信された認可条件に基づいて、ルーティング決定が行われねばならない。
【0150】
本発明に従い、他の関数は、順序装置100によって達成された混雑測定に基づいて認可条件を判断する。それらの条件の提供は、図5における矢印36によって示される。
【0151】
一つの特定の実施形態において、公平なビットレートDE及び優先負荷(priority load)CPの、2つの混雑推定量が使用される。
・公平なビットレートは、送信するパケットを常に有するデータフローによって生成されるビットレートの量である。
・優先負荷は、その期間の持続時間によって分割された所定期間に送信された優先パケットの長さの合計である。
【0152】
制御されたリンクの負荷状態の継続的なカウントは、周期的な測定を達成することによって得られる。公平なビットレート(例えば100ミリ秒単位)及び優先負荷(例えば10ミリ秒単位)に対して通常異なる測定期間がある。
【0153】
ここで説明された本発明の特定の実施形態において、混雑推定量CP及びDEは、先に説明した順序処理とは別の測定処理によって、及び段階F28及びF42における順序処理によって規則的に更新される混雑カウンタPB及びFBに基づいて、計算される。
【0154】
また、測定処理(又は他のモジュール)は、ここでは説明しないが手段を含み、論理可変Silenceがブール値TRUEに等しい全時間Silence−Timeを測定するように構成され、この可変Silenceは、段階F32で値TRUEに、段階E50で値FALSEに設定される点に留意すべきである。
【0155】
規則的な間隔で混雑カウンタPBをサンプリングすることによって、測定処理は、その期間の持続時間によって分割された測定期間の開始時と終了時とで測定されたPBの値の間の差として優先負荷の推定量を推定する。
【0156】
この間隔に対する優先負荷推定量CPはその時、以下の式によって与えられる。
CP(T1、T2)=(PB(T2)−PB(T1))×8/(T2−T1)/C
但し:
・PB(T)は、時間TにおけるPBのバイト値であり;
・(T1、T2)は、(秒単位での)測定期間であり;
・Cは、(bps単位での)リンクビットレートである。
【0157】
本発明に従って、公平なビットレートDEを推定するために、Q_0(ダミーフロー0に関連付けられた割当量)に等しい固定サイズのパケットをダミーフロー0が連続的に送信すると仮定する。
【0158】
優先度Qが常に占められている期間において、ダミーフロー0が送信したバイトの数は、混雑カウンタFBの変化状態から推量される。キューが空である時、ダミーフロー0は、リンクのビットレートCで送信した。
【0159】
一連のアクティブ期間及びsilenceの期間を結合することによって、公平なビットレートDEの推定は、以下の式から推量される。
DE(T1、T2)=
max(Silence_Time×C/(T2−T1)、(FB(T2)−
FB(T1))×8(T2−T1))
但し:
・FB(T)は、時間TにおけるFBのバイト値であり;
・(T1、T2)は、測定期間であり;
・Silence_Timeは、間隔(T1、T2)間のsilenceの全持続時間である。
【0160】
当業者であれば、公平なビットレートDEの計算において、第1項は、リンクの負荷が低い場合に優先し(利用可能なままのリンクの全ての能力をダミーフロー0が使用した時)、第2項は、アクティビティの期間において優先し、この項は、それに関連付けられたキューで少なくとも一つのパケットを常に有した実フローによって達成されるビットレートをおよそ測定することが直ちに分かる。
【0161】
順序モジュール100はその後、混雑推定量CP(優先負荷)及びDE(公平ビットレート)から認可条件を判断する。実際、この判断は、保護されたフロー状態を未だに有さない新規フローのパケットがルート(それぞれ拒絶)されなければならない場合、結果が1(それぞれ0)に等しい関数Admit(CP、DE)を用いて達成されることができ、この認可関数の結果は、ルーターモジュール24(矢印36)へ順序モジュール100によって供給される。
【0162】
認可条件が良好である場合、パケットがルートされる新規フローは、保護されたフローのリストに挿入されるので、保護されたフロー状態を獲得する。
【0163】
この図において、実線矢印39は、ルーターモジュール24が新規フローの第1パケットを拒絶することを表す。
【0164】
この図において、実線矢印38は、順序モジュール100に、保護されたフローのパケットをルートすることを表す。
【0165】
適用された条件は、IPv6における“トラヒッククラス”領域の値、又はIPv4における領域ToS、又はIPソース及び目的先アドレスを含む、パケットの特定の属性に依存することができる。
【0166】
認可制御は、認可されたフローの透明性を確実にし、実時間フローに対する信号を保護し、データフローに対するビットレートを保護する。
【0167】
実際、この透明性は、ピークビットレート(外部限定によって判断される)が所定の閾値より低いままであるフローにのみ提供される。
【0168】
フローの透明性を確実にするように認可制御を実行可能にする公平ビットレートと優先負荷とに関連して認可閾値を選択する詳細について、当業者は、出願人の名前において上記文献FR2854296を参照することができる。
【0169】
上記説明において、測定処理及び順序処理は、互いに別々である。測定処理は、代わりに順序処理に統合されてもよい。
【図面の簡単な説明】
【0170】
【図1】図1は、本発明の一つの特定の実施形態に従う順序方法において使用された待ち行列化演算子の主な段階を示すフローチャートである。
【図2】図2は、本発明の一つの特定の実施形態に従う順序方法において使用された待機解除演算子の主な段階を示すフローチャートである。
【図3A】図3Aは、図1及び2の順序方法の作動の一例を示す。
【図3B】図3Bは、図1及び2の順序方法の作動の一例を示す。
【図3C】図3Cは、図1及び2の順序方法の作動の一例を示す。
【図3D】図3Dは、図1及び2の順序方法の作動の一例を示す。
【図3E】図3Eは、図1及び2の順序方法の作動の一例を示す。
【図3F】図3Fは、図1及び2の順序方法の作動の一例を示す。
【図4】図4は、本発明の一つの特定の実施形態に従う順序方法を示す。
【図5】図5は、本発明の一つの特定の実施形態に従うパケット処理装置を示す。
【符号の説明】
【0171】
E10 メモリが満杯?
E20 自由メモリスペース
E30 フローiの数を抽出
E40 フローiがアクティブ?

【特許請求の範囲】
【請求項1】
異なるフロー(i)に属するパケット(p)を順序付ける方法であって、
・前記パケット(p)のフローに関連付けられたキュー(Queue_i)において各パケットをキューする段階(E58)と、
・循環的に処理された前記キュー(Queue_i)のそれぞれのために、前記サイクルに対する割当量(Q_i)まで前記キュー(Queue_i)に含まれたパケットを送信する段階(F64)と、
・前記段階(E58)がキューする前に前記パケット(p)の優先度を判断する段階(E40、E54)と、
前記優先パケットは、
・先ず、非アクティブフロー、即ちパケットが前記サイクルで受信されなかったフローの第1パケットであり、
・次に、前記サイクルで受信されたパケットの量(BytesCount_i)が前記割当量(Q_i)未満であるアクティブフローのパケットであり、
・前記判断段階(E40、E54)の間で優先度を有すると判断された前記サイクルパケットにおいて優先して送信する段階(F24)と
を具備することを特徴とする方法。
【請求項2】
認可制御に使用された混雑推定量(CP、DE)を計算するために処理されるように構成された混雑カウンタ(FB、PB)を測定する段階(F28、F42)をさらに具備することを特徴とする請求項1に記載の順序方法。
【請求項3】
前記混雑パラメータは、
・データフローが生成し、送信するパケットを常に有した、ビットレートの量である公平ビットレート値(DE)と、
・その期間の持続時間によって分割された期間の間に送信された前記優先パケットの量に相当する優先負荷値(CP)と
を具備することを特徴とする請求項2に記載の順序方法。
【請求項4】
異なるストリーム(i)に属するパケット(p)を順序付けるための装置であって、
・前記パケット(p)のフローに関連付けられたキュー(Queue_i)において各パケットをキューするための手段と、
・前記サイクルに対する割当量(Q_i)まで前記キュー(Queue_i)に含まれたパケットを送信するための手段を含む、循環的に前記キュー(Queue_i)のそれぞれを処理するための手段と、
・前記パケットをキューする前に前記パケットの優先度を判断するための手段と 、
前記優先パケットは、
・先ず、非アクティブフロー、即ちパケットが前記サイクルにおいて受信されなかったフローの第1パケットであり、
・次に、前記サイクルで受信されたパケットの量(BytesCount_i)が前記割当量(Q_i)未満であるアクティブフローのパケットであり、
・前記判断手段によって優先度を有すると判断された前記サイクルパケットにおいて優先して送信するための手段と
を具備することを特徴とする装置。
【請求項5】
認可制御に使用された混雑推定量(CP、DE)を計算するために処理されるように構成された混雑カウンタ(FB、PB)を測定するための手段をさらに含むことを特徴とする請求項4に記載の順序装置。
【請求項6】
混雑パラメータは、
・データフローが生成し、送信するパケットを常に有した、ビットレートの量である公平ビットレート値(DE)と、
・その期間の持続時間によって分割された期間の間に送信された前記優先パケットの量に相当する優先負荷値(CP)と
を具備することを特徴とする請求項5に記載の順序装置。
【請求項7】
請求項5又は6に従う順序装置(100)と、前記順序装置によって測定された混雑パラメータの関数として前記パケットの認可を制御するためのモジュール(24)とを具備することを特徴とするパケットルーター。
【請求項8】
前記認可モジュールは、保護されたフロー、即ち少なくとも一つのパケットが所定の時間間隔において前記認可モジュールによって受信されたフローに属するパケットを直接ルートするようにさらに構成されることを特徴とする請求項7に記載のルーター。
【請求項9】
プログラムが電子データ処理システムに対してロード及び前記システムによって実行された時、請求項1から3のうち何れか1項に記載の順序方法の実行を可能にする命令を具備する、情報媒体上に記憶されたコンピュータプログラム。
【請求項10】
電子データ処理システムによって読取可能であり、かつ任意で全体的に又は部分的に取外し可能な情報媒体、特に、ハードディスク若しくはディスケット等のCD−ROM若しくは磁気媒体、又は電気的若しくは光学的信号等の伝達可能媒体であって、プログラムが電子データ処理システムに対してロード、及び前記システムによって実行された時、請求項1から3のうち何れか1項に記載の順序方法を実行するためのコンピュータプログラムの命令を具備することを特徴とする媒体。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図3C】
image rotate

【図3D】
image rotate

【図3E】
image rotate

【図3F】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2008−520141(P2008−520141A)
【公表日】平成20年6月12日(2008.6.12)
【国際特許分類】
【出願番号】特願2007−540694(P2007−540694)
【出願日】平成17年11月15日(2005.11.15)
【国際出願番号】PCT/FR2005/050949
【国際公開番号】WO2006/051244
【国際公開日】平成18年5月18日(2006.5.18)
【出願人】(591034154)フランス テレコム (290)
【Fターム(参考)】