(57)【要約】      （修正有）【課題】パッシブ光ネットワークにおいて、パケット断片化による損失をなくす。【解決手段】複数のＯＮＵｓに接続されたＯＬＴを提供するステップを含み、ＯＮＵｓの各々は、全バイト長を有するサブキューに配置されたパケットを伝送し、パケットは、グラント長を有するグラントに応答して伝送されると共に、ＯＬＴから受信される。前記方法は、全バイト長をグラント長に一致させる(matching)ステップを含み、これによってパケットの断片化の損失が消去される。【選択図】図５
2008193708.tif 000002
【特許請求の範囲】
【請求項１】
パッシブ光ネットワーク（ＰＯＮ）において、パケットの断片化を消去する方法であって、
ａ．複数の光ネットワークユニット（ＯＮＵｓ）に接続された光ライン端局装置（ＯＬＴ）を提供するステップを含み、前記ＯＮＵｓの各々が全バイト長を有するサブキューに配置されたパケットを伝送し、前記パケットが前記ＯＬＴから受信されるグラントに応答して伝送され、前記グラントがグラント長を有し、
ｂ．前記全バイト長を前記グラント長とマッチングさせるステップを含み、これにより前記パケットの断片化の損失を消去する方法。
【請求項２】
前記マッチングさせるステップは、各前記ＯＮＵにより、キューの状態の更新を前記ＯＬＴに対して秘密にするステップを含む、請求項１に記載の方法。
【請求項３】
前記秘密にするステップは、キューの伝送順序を凍結するステップを含む、請求項２に記載の方法。
【請求項４】
前記マッチングさせるステップは、さらに前記サブキューの各々を最上位の優先度のものから最下位の優先度のものへとチェックするステップと、各前記サブキューにおいて、グラント未付与のパケットを、それぞれグラント未付与のパケット長と識別するステップと、各前記グラント未付与のパケットを、伝送予定としてマーキングするステップとを含む、請求項２に記載の方法。
【請求項５】
前記マーキングは、レポートされた閾値以下のバイト、レポートされた全バイト、及び全バイトのグループから選択された段階の変数をゼロと比較するステップと、前記段階の変数がゼロより大きい場合に、前記グラント未付与のパケットを、グラントが付与されたものとしてマーキングするステップを含む、請求項４に記載の方法。
【請求項６】
前記マーキングの後に、前記グラント未付与としてマーキングされたパケット長を、レポートされた現行の変数から除去するステップを含む、請求項５の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（既存出願との相互参照）
本願は、２００２年９月１３日に出願された米国仮特許出願第60/410,317号、及び２００２年９月２５日に出願された米国仮特許出願第60/410,170号に基づいて優先権を主張すると共に、これら両出願の内容を引用して援用する。
【０００２】
本発明は、一般にデータアクセス方法に関し、特に、パッシブ光ネットワーク（ＰＯＮ）トポロジーにおける、イーサネット（登録商標）パケットトラフィック中のデータ伝送を最適化するため、パケットの断片化を消去する方法に関する。
【背景技術】
【０００３】
イーサネット（登録商標）パッシブ光ネットワーク（ＥＰＯＮ）は、毎秒１ギガビットイーサネット（登録商標）伝送を使用しており、これは、超高速データアプリケーションばかりでなく、集中型システム支援（電話、ビデオ等）にも適している。かつてない程大量の帯域が、単一エンティティー、即ち光ネットワークユニット（ＯＮＵ）と送受信されている。
ＥＰＯＮネットワークは、分散交換と考えることができる。光ライン端局装置（ＯＬＴ）は、各ＯＮＵの伝送を遠隔管理する。前記ＯＬＴとＯＮＵｓは、メッセージを交換する。かかる交換のサイクルごとに、前記ＯＬＴは、各ＯＮＵにグラントを付与し、前記ＯＮＵは、レポートメッセージで応答する。前記ＯＮＵは、キュー管理プログラムを備えており、かかるプログラムは、キュー状態情報を作成し、ＭＰＣＰメッセージを用いて前記ＯＬＴに伝送して効率的な管理を可能にする。換言すれば、前記ＯＮＵは、前記ＯＬＴに「その内部のキュー状態の情報を提供する」。前記ＯＬＴによる管理は、動的帯域割当（ＤＢＡ）アルゴリズムを使用して実行される。有効なアルゴリズムは、通信サービスレベル合意事項（ＳＬＡ）を遂行するのに必要なサービス品質（ＱｏＳ）を保証するのに不可欠である。洗練されたＳＬＡｓを顧客に販売することでオペレーターの収益が増大し、高帯域通信を利用することでネットワークを利用する顧客もより多くすることができる。従って、ＯＮＵにおけるキュー管理プログラムにより、前記ＯＬＴによって実行される任意のＤＢＡアルゴリズムの実行が可能となる。
低帯域を利用する重要な理由の一つは、パケットの断片化の損失である。断片化の損失は、グラントが前記ＯＮＵによって伝送されるバイト量と正確に一致しない(does not match)場合に生じる。ＯＮＵは、パケットを断片化することはできないため、消費されるグラントの一部が残ってしまう。図１は、グラント長１０２を有するグラントを示す。このグラント中に例えば＃１、＃２、＃３と印された３つのパケットが含まれる場合、＃１及び＃２のパケットは適合するが、＃３のパケットは適合しない。グラント長から伝送されるパケットの合計（バイトの合計）を差し引いて得られる断片化の損失１０４が生じる。
【０００４】
図２は、ＯＬＴ２００と複数のＯＮＵｓ２０２とを含む従来技術のＥＰＯＮシステムを示す。前記ＯＬＴと前記ＯＮＵｓは、メッセージを交換する。かかる交換の各サイクルにおいて、前記ＯＬＴは、各ＯＮＵにグラントＧを付与し、各ＯＮＵは、前記ＯＮＵから前記ＯＬＴへのレポートメッセージＲＥＰにより応答する。例えば、グラントメッセージ時間ｔG（Ｎ−１）におけるサイクル（Ｎ−１）において受信されるグラントに対するＯＮＵのレポートは、レポートメッセージ伝送時間ｔR（Ｎ−１）において発生する。ＯＮＵｓ同士の差別化に使用される特定のアルゴリズムに関係なく、基本のグラント付与スキームは同一である。ＯＮＵは、レポートメッセージ伝送とグラント付与メッセージ受信との間の時間、即ち〔ｔG（Ｎ−１）−ｔR（Ｎ−１）〕において、決定論的行動をとらなければならない。前記ＯＬＴの情報は、ｔR（Ｎ−１）によってのみ更新される。伝送の順序は、任意の値（例えば、ＥＰＯＮで０．７）になり得るパケットの優先度による。この場合、任意の値が０．７であるということは、０から７までの８つの優先度が存在し、最低は０、最高は７であるということを意味する。前記キューに優先度の高いパケットが存在する時はいつでも、そのパケットは、優先度が下位のパケットに先んじて伝送される。
前記ＯＮＵは、前記サブキューのいずれかに存在する全バイト数（「トータルバイト」）をレポートする。IEEE802.3規格は、サブキュー当たりの付加的情報をレポートすることができるが、この付加的情報は、サブキュー当たりのプログラム可能な閾値を定義することに基づく。前記閾値は、前記ＯＬＴによって所有メッセージを用いて設定される。例えば、優先度０．５のパッケージを５つ有するサブキューにおいて、それぞれの閾値をバイトで表すと、それぞれ１６００、４０００、３０００、３０００、４０００、２０００である。前記ＯＮＵは、プログラム可能な閾値以下の全バイト数をレポートする。上記の例では、この数は、１５００、０、２８００、０、３９００、１５００であることが可能であり、実際のキューの占有の結果である。この情報を利用することは、グラントの大きさを縮小するのに役立つため、より繊細なグラントの付与に用いることができる。
【０００５】
図３は、従来技術のシステムで見られるように、前記ＯＮＵによるキューへのパケットの受信におけるステップのフローチャートを示す。ステップ３００において、パケットが書き込まれ、ステップ３０２において、かかるパケットの優先度が抽出される。ステップ３０４において、新たなパケットの長さが、適切な（優先度が同じ）パケットのサブキューの内容（「全バイト」）に追加され、新たな「全バイト」値が得られる。「閾値以下のバイト」値とパケット長とを合わせた値が前記サブキューの閾値より小さい場合には、ステップ３０６において、特定のサブキューの「閾値以下のバイト」値は、パケット長を合わせて増分される。そうでない場合には、「閾値以下のバイト」値は、そのまま変わらない。例えば、Ｘバイトの長さを有するパケットは、閾値Ｔと「閾値以下のバイト」値Ｍとを有する関連のあるサブキューに加算される。Ｘ＋Ｍ＜Ｔの場合には、Ｍ＝Ｍ＋Ｘであり、そうでない場合には、Ｍの値は、そのままである。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来技術で用いられる方法は、パケットの断片化の損失をもたらすため、低帯域を利用することになる。従って、パケットの断片化の損失をなくす有効な管理方法とアルゴリズムの新たなセットを提供し、有効な全ての帯域を利用することができ、ＱｏＳを保証することが望ましい。
本発明は、パケットの断片化の損失を回避するように設計された動的帯域割当方法及びアルゴリズムの多様な実施形態を開示する。その主たる独創的な態様は、ＯＬＴにより発せられたグラントの長さがＯＮＵにより伝送されるバイト数と正確に一致する(match)ことを保証することである。本発明は、その多様な実施形態において、ＯＮＵのアップリンク伝送の送出順序（「ＯＮＵ送出順序」と称する）を決定する方法と、ＯＮＵのレポート閾値設定（「閾値設定」とも称する）の方法を提供する。「完全優先性」、「フェアキューイング」及びそれらの導出など既存のキュー管理アルゴリズムは、例えば「レポート」メッセージが伝送された時間等のＥＰＯＮプロトコルイベントを考慮しないため、分散型の切り換え管理には適さない。これに対して、ここで開示するキュー管理方法及びアルゴリズムは、「レポート」メッセージの作成時、及び「グラント」メッセージの処理時におけるキューの占有度のようなＥＰＯＮのプロトコルイベントを考慮するものである。
【課題を解決するための手段】
【０００７】
本発明によれば、パッシブ光ネットワークにおいて、ＯＮＵによりパケットを伝送する方法が提供され、かかる方法は、グラント長を有するグラントをＯＬＴから受信するステップと、このグラントに基づき、パケットの断片化をなくすＯＮＵパケットの送出順序を計算するステップを含む。
本発明によれば、パッシブ光ネットワークにおいて、パケットの断片化を消去する方法が提供され、かかる方法は、複数のＯＮＵｓに接続されたＯＬＴを提供するステップを含み、前記ＯＮＵｓの各々は、全バイト長を有するサブキューに配置されたパケットを伝送し、パケットは、グラント長を有するグラントに応答して伝送されると共に、前記ＯＬＴから受信される。前記方法は、全バイト長をグラント長に一致させる(matching)ステップを含み、これによってパケットの断片化の損失が消去されることになる。
本発明によれば、ＯＬＴと複数のＯＮＵｓを含むパッシブ光ネットワークにおける動的帯域割当に対する閾値の設定方法が提供され、かかる方法は、重み付けフェアキューイング構成を前記ＯＬＴに提供するステップと、ＯＮＵに対して所望のグラント長を有するグラントを保証する一方で、重み付けフェアキューイング構成と組み合わせて使用される閾値を提供するステップを含む。
本発明によれば、ＯＬＴと複数のＯＮＵｓを含むパッシブ光ネットワークにおいて、閾値を設定する方法が提供され、前記ＯＬＴは、前記ＯＮＵｓにグラントを付与し、前記ＯＮＵｓは、グラントに応答してサブキューに配置されたパッケージを順次伝送する。前記方法は、ＯＮＵのレポートパラメーターと所望のグラント長とを比較するステップと、この比較の結果に基づいて、閾値を調整するステップを含み、これにより、全てのサブキューの閾値が同一である目標帯域適用メカニズムが提供される。
本発明によれば、ＯＬＴと複数のＯＮＵｓを含むパッシブ光ネットワークにおいて、閾値を設定する方法が提供され、前記ＯＬＴは、各ＯＮＵにグラント長を有するグラントを定期的に付与し、前記ＯＮＵは、このグラントに応答してサブキューに配置されたパッケージを伝送する。かかる方法は、複数の優先度を提供するステップを含み、各優先度は、パッケージのサブキューに関連すると共に、独自の優先度閾値を有する。かかる方法は、さらに全ての調整された優先度閾値の合計が固定値を有するように各優先度閾値を調整するステップを含む。
【発明を実施するための最良の形態】
【０００８】
単なる例示として、添付の図面を参照しつつ、本発明を説明する。
本発明は、その多様な実施形態において、ＯＮＵの送出順序を決定する方法と、ＯＮＵの閾値を設定する方法を提供する。これらに関する実施形態を以下に詳細に記載する。
【０００９】
ＯＮＵ送出順序
パケットの断片化の損失を回避するための重要な特徴は、ＯＮＵの伝送するパケットの伝送順序をＯＬＴが制御できるということである。以下に述べる本発明の方法では、３段階のテスト手順を用いるのに対して、図２の従来システム及びアルゴリズムは、段階の変数の単一テストを使用するため、パケットの断片化の損失を回避できない。特定の時間にキューの状態（すなわちパケットの長さと優先度の関数である伝送順序とを有するパケットのリスト）を更新することは、前記ＯＬＴに対しては秘密にしなければならない。本発明によれば、パケットの伝送イベントを秘密にするために、ＯＮＵは、入ってくるグラントについてパケットの伝送順序の予備計算を実行する。グラントメッセージが到着すると、前記ＯＮＵは、伝送すべきと想定されるパケットの順序を計算し、これらのパケットを「伝送予定」としてマーキングする。多くのグラントが到着した場合、前記ＯＮＵは、これらのパケットが実際にはまだ伝送キュー中にあり、次回の伝送を待っているにもかかわらず、既に伝送されたかのようにマーキングされたパケットは無視する。伝送キューは、サブキューを含み、各サブキューは、同一優先度のパケットを含む。
パケット受信イベントを秘密にするために、ＯＮＵは、そのキューを凍結しなければならない（すなわち、キューの伝送順序をロックする）。前記ＯＮＵの予備計算がグラントメッセージ中に特定される開始時間内に「伝送予定」としてパケットをマーキングしない限り、ユーザーポートから受信されたパケットは、伝送されない。
【００１０】
図４は、ＯＮＵによるレポートメッセージの作成及びパラメーターの格納におけるステップを示すフローチャートである。レポートメッセージ作成ステップ４００において、各サブキューの「全バイト」の現在値と「閾値以下のバイト」の現在値がレポートメッセージ内部に挿入される。これらのパラメーターは、ステップ４０２において２つの格納アレイ変数で格納される：１つは「全バイト」の格納アレイ値であり、もう１つは「閾値以下のバイト」の格納アレイ値であり、両者は、以下の前記ＯＮＵの伝送送出順序決定方法で使用される。
【００１１】
図５は、本発明によるＯＮＵのアップリンク伝送の送出順序決定方法の好適な実施形態のフローチャートを示す。グラントの連続的動作を示す一連のサイクルにおける１つのサイクルについて記載する。各サイクルは、前記ＯＬＴにより付与されるグラントを確認する。ステップ５００において、前記ＯＬＴにより送られた新たなグラントが、前記ＯＮＵにより処理される。現サイクルにおいて、グラントと共に到着するグラント長の値と共に「残余グラント長」（即ち充填されるグラント内に残っている利用可能なスペースを（バイトで）格納する変数）がロードされる。マルチポイントコントロールプロトコル（ＭＰＣＰ）におけるレポートメッセージ等の特別なキューを介して処理される任意のメッセージが、ステップ５０２において残余グラント長からまず減じられる。かかる方法は、好ましくは３つの「段階」において実行される多数の動作を含み、各段階は「段階の変数」で実行される一連の動作を含む。それぞれが各サイクルにおいてテストされる又は「作用される」３つの段階の変数は、「レポートされた閾値以下のバイト」、「レポートされた全バイト」、及び「全バイト」である（この順序が好ましい）。各段階の変数は、個別に処理され、最初に「レポートされた閾値以下のバイト」を扱う段階がステップ５０４から（可能性として）ステップ５１８により処理され、次の段階では「レポートされた全バイト」に対してプロセスが繰り返され、第３の段階で「全バイト」に対してプロセスが繰り返される。
【００１２】
第１段階では、ステップ５０４において、段階の変数値が「レポートされた閾値以下のバイト」に初期化される。最も優先度の高いサブキューがステップ５０６で処理を開始される。ここで言う「処理」とは、このサブキューのみに作用する又はこのサブキューのみを取り扱うことを示す。ステップ５０８において、前記サブキューは、グラント未付与のパケットを含むか否か、即ちグラントをまだ付与されていない少なくとも１つのパケットが存在するか否か、そして伝送され得るか否かをチェックされる。このようなパケットが存在しない場合には、前記実行は、ステップ５１８から継続する。かかるパケットが存在する場合には、ステップ５１０において、その長さが残余グラント長と比較される。グラントを付与されていないパケットがグラント内部に適合する場合（即ち、グラント長がグラント未付与のパケット長より大きい場合）、ステップ５１２において「段階の状態」（以下に説明する）がチェックされる。グラントを付与されていないパケットがグラント内部に適合しない場合には、ステップ５１８において実行が継続する。ステップ５１２における段階の状態に対して実行されるチェックのタイプは、選択された段階の変数による。使用される段階の変数が「レポートされた閾値以下のバイト」である場合には、その値は、０と比較される。同様に、使用される段階の変数が「レポートされた全バイト」である場合には、その値は、０と比較され、使用される段階の変数が「全バイト」である場合には、その値は、０と比較される。換言すれば、以下のケースのそれぞれにおいて、前記実行は、ステップ５１８に移行し、ステップ５１８から継続する：ステップ５１２における比較の結果が０である、又は、ステップ５１０において障害が発生する（即ちグラント未付与のパケット長がグラント長に対して長すぎる）、又はステップ５０８において障害が発生する（即ちサブキュー中にグラント未付与のパケットが存在しない）。ステップ５１２においてチェックされた段階の状態が成功した場合には、比較された段階の変数の値は、０より大きいことを意味し、実行は、ステップ５１４から継続する。このステップにおいて、前記パケットは「グラント付与」としてマーキングされる（即ち、もはやグラント未付与と見なされることはない）。次のステップ５１６では、「グラント付与」パケット長が全ての変数、即ち「残余グラント長」、「レポートされた閾値以下のバイト」、「レポートされた全バイト」、「レポートされた閾値以下のバイト」、そして「全バイト」から減算される。しかし、これらの変数のうちの１つの値が０である場合、「グラント付与」のパケット長は、その変数からは減算されない。次に、前記実行は、ステップ５０８に戻り、ここで前記サブキューが次のパケットに対して再び調査される。
【００１３】
ステップ５０８、５１０、又は５１２における比較チェックのいずれかから前記実行がステップ５１８において実行されることになった場合には、現在処理中のキューの優先度は、最下位の優先度と比較される。現在処理中のサブキューの前記優先度が最下位の優先度でない場合には、次にステップ５２０において現在処理中のサブキューの優先度から１が減算され、次の優先度のサブキューの処理が可能となる。前記実行は、ステップ５０８に戻り、新たなサブキューが上記と同じステップシーケンスで実行され始める。ステップ５１８において現在処理されているサブキューの優先度が最下位である場合には、実行は、ステップ５２２から継続する。ステップ５２２において、段階の変数は、それが「全バイト」に設定されるか否かを確かめるためチェックされる。ＹＥＳの場合（段階の変数が「全バイト」である場合）には、オペレーションは完了し、前記実行は、ステップ５００に戻って次のグラントを待機する。ＮＯの場合（段階の変数が他の２つの可能性のうちの１つに設定される場合）には、前記実行は、ステップ５２４に続き、ここで段階の変数が更新される。即ち、処理された段階の変数が「レポートされた閾値以下のバイト」であった場合には、前記変数は、「レポートされた全バイト」に更新される（設定される）。また、処理された段階の変数が「レポートされた全バイト」であった場合には、前記変数は、「全バイト」に設定される。前記実行は、ステップ５０６から継続し、他のサブキューは、最上位の優先度のものから最下位の優先度のものまで、再び調査を開始する。
【００１４】
要約すると、この方法は、好ましくは３段階において、一連のテストを各サブキューに対して実行するステップを含む。各段階は、設定値（ゼロ）に対して段階の変数値をチェックすることを含む。このチェックの結果に基づいて、先にグラント未付与のパケットは、「グラントの付与としてマーキング」されて分岐させられるか、サブキューに残されるか、のいずれかとなり、前記処理は、次に優先度の最も高いサブキューに対して再び実行される。テストを（３回ではなく）１回のみ行う従来技術の方法に対して、図５のフローチャートにより実施される本発明の方法は、最新の知識に基づく前記ＯＬＴのグラント付与の決定と前記ＯＮＵのアップリンク伝送の送出順序との完全な一致(perfect match)（パケットの断片化の消去）を保証するものである。かかる方法は、柔軟性のあるＯＬＴのグラント長選択を可能にし、「閾値以下のバイト」値と「全バイト」値を任意に組み合わせることが可能である。唯一の制約は、これらの値が優先度の高いものから優先度の低いものへと集積されなければならないことであり、全ての「閾値以下のバイト」は、「全バイト」をグラント長に付加する前に集積されなければならない。従来技術の方法は、本発明の方法の１つの段階のみ（及びテスト）に等しいものを含むが、それは「全バイト」の段階である。換言すれば、従来技術の方法が実行する「段階」は、本文で開示する３つの「段階」のうちの１つのみであるため、パケットの断片化を消去することにおいては有効度が低い。このような「段階」に操作を分割することで、前記ＯＬＴは、上述のようにグラント長の計算において柔軟性を有することが可能となる。本発明の方法の主たる独創的な特徴は、ステップ５１４にあるが、このステップでは、パケットは前記サブキュー中にあっても「グラント付与」として「マーキング」され、さらなる計算は、これらの「グラント付与としてマーキングされた」パケットがあたかも伝送されたかのように実行される。ステップ５２２は、次のサイクルに続くことを決定することに対して責任を負うステップである。
【００１５】
図６は、前記ＯＬＴのグラント長が全てのサブキューに対する閾値以下のパケット長の合計と正確に一致する(match)場合の、本発明によるキュー送出プロセスの例を示す。（ａ）では、パケットＰ１−Ｐ１４は、最初のキューの占有状態を示す：Ｐ１は、伝送される第１のパケットを示し、Ｐ２は、伝送される第２のパケットを示す、といった具合である。簡単にするため、「０」、「１」及び「２」とマーキングした３つのサブキューのみを示しており、サブキューの閾値は、すべて同一とし、それらを閾値６４０とマーキングしている。前記ＯＬＴは、レポートされた閾値以下のバイトの合計、すなわち（Ｐ１＋Ｐ２）＋Ｐ３＋（Ｐ４＋Ｐ５＋Ｐ６）に等しい長さを有するグラントを送信する。前記グラントは、閾値以下の全パケットを含むのに十分な長さを有する。これらのパケットは、この図の下部の（ｃ）に示す別個の記憶装置６５０に格納される。それらは、伝送される次のパケットであり、後続のレポートには含まれない。図６（ｂ）中のパケットＰ７−Ｐ１４は、現在のキュー状態において考慮されるパケットのみであると共に、レポートされるパケットのみである。このキュー状態は、Ｐ１からＰ６のパケットが送信されたかのように更新される。パケットを別個の記憶装置６５０に物理的にコピーする必要性がないことは明白であり、そのためにポインタ管理操作を使用してもよい。
【００１６】
図７は、本文で説明する方法を用いた場合に生じるキュー送出プロセスと送入プロセスとのタイミングの関係の一例を示す図である。図面上部の（ａ）のセクションに、左から右へとＩ１−Ｉ１３とマーキングしたアイテム（パケット）を備えたキュー送入タイムラインＴを示す。図面下の（ｂ）のセクションに、３つのサブキュー「０」、「１」及び「２」において優先度によって配列されたパケットを示す。各アイテム内には２つの数がある：下部のものは、Ｉで始まり、送入順序がマーキングされており、上部のものは、送出順序がマーキングされている。ボックスＩ９は、パケット受理のイベントをマーキングする。送入タイムライン上には２つの主要なイベントが存在する：最初のアイテム７００（ボックスＩ９におけるパケット受信と一致(coincide)）は、レポートメッセージの作成であり、次の伝送要求レポート直前に実行される。次のイベント、アイテム７０２は、ＯＮＵによるグラントの受信である。パケットＩ１−Ｉ８は、アイテム７００においてレポートが作成される前に受信され、パケットＩ９−Ｉ１２は、アイテム７０２においてグラントが処理される前に受信されている。アイテム７１０は、レポートが作成された時にサブキュー＃０中に存在するパケットをマーキングし、その一方、アイテム７１１及び７１２は、それぞれサブキュー＃１及び＃２に存在するパケットをマーキングする。アイテム７２０は、グラントが受信された時に、サブキュー＃０中に存在するパケットをマーキングする。
【００１７】
図面に示すように、より上位の優先度を有するパケットは、より下位の優先度を有するパケットが以前に到着していたとしても、より下位の前記優先度を有するパケットより前に送信されるように選択される。例えば、３番目に受信されたパケットであるアイテムＩ３は、４番目に受信されたパケットであるアイテムＩ４の後に送信される。別の例を挙げると、１番目に受信された第１のパケットであるＩ１は、６番目に受信されたパケットであるアイテムＩ６の後に送信される。９番目に受信されたパケットであると識別されるアイテムＩ９は、閾値以下である（すなわち、閾値以上のパケットを超える優先度を有する）が、レポートが作成された後に受信されているため、１２番目に受信されたパケット（アイテムＩ１２）の後に送信される。それは、アルゴリズムによる情報は、レポート作成時の閾値以下のパケットの状態であるためである。１３番目に受信されたパケットであると識別されるアイテムＩ１３は、グラントが処理された後に受信されたものであるため、次のグラントでは全く伝送されない。
【００１８】
閾値の設定
本発明の動的帯域割当方法及びアルゴリズムでは、前記閾値の値は、パケットがグラントを付与される順序、異なる優先度同士のバランス、及びグラント長の選択に対して見込まれる精度に大きく影響する。最後のアイテムは、パケットの断片化によるエラーを回避するために、グラント長の計算に対して「閾値以下のバイト」の値、又は「全バイト」の値のいずれかをとり得るＯＬＴの決定の結果である。これらの２つの値の間のスパンが大きい場合もあるため、前記閾値を正確に設定することは、ユーザーに対する割当帯域を対象とする際に重要である。本発明は、閾値設定方法の３つの異なる実施形態を開示する。
本発明による閾値設定方法の第１の実施形態では、従来技術のメカニズムを改良して、前記閾値を動的に調節するメカニズムが提供される。このメカニズムは、重み付けフェアキューイング（ＷＦＱ）と称し、前記ＯＮＵが前記ＯＬＴによって遠隔制御される際の分配切り換えアーキテクチャに適応したものである。ここでの「適応」には、内部に閾値の概念を導入することにより、ＷＦＱアルゴリズムを強化するステップが含まれる。ＷＦＱ方式及びそれより派生するものは、クラス内のトラフィックの順序付け（「分類」）に基づく。分類処理は、当技術分野において周知である。各クラスは、前記帯域の一定の割当を受信する。例えば、クラス１は帯域の４０％、クラス２は帯域の３０％、クラス３は帯域の１０％、クラス４は帯域の２０％を有する。これは、決定的かつ公平な帯域制御を保証するものである。ＷＦＱをサポートするために、ＯＮＵは、分類をサポートしなければならない。パケットのパラメーターに基づくフローは、特定のクラスに送られる。
【００１９】
図８は、本発明による閾値設定を使用するＷＦＱの実行を示す図である。この実行をフローチャートで説明し、この実行にはステートマシンを用いる。複数のＯＮＵｓをサポートするために、前記ＯＬＴは、このステートマシン（各ＯＮＵに１つのステートマシン）の複数の実例を作成しなければならない。図８（ａ）は、動作環境を示す。ステップ８００において、前記ＯＬＴは、ＯＮＵからレポートメッセージを受信する。ステップ８０２において、前記ＯＬＴは、全てのキューによってレポートされる「閾値以下のバイト」の合計値にグラント長を設定する。ステップ８０４において、前記ＯＬＴは、前記ＯＮＵへグラントメッセージを送信する。
図８（ｂ）は、本発明による閾値と共にＷＦＱの独創的な適応方法（すなわち前記ＯＬＴが送信に対する前記閾値を決定する方法）を示す図である。ステップ８５０において、前記ＯＬＴは、各サブキューの優先度の比率の形でＷＦＱ構成を受信する。あるクラスからのパケットは、特定のサブキュー内に格納される。すなわち、クラス比率は、サブキュー比率である。所望のグラント長も同様に管理システム（加入者契約（図示せず）に責任を負う）から受信する。ステップ８５２において、ＯＮＵの送信中に計測（カウント）されたバイト数を格納する各サブキューに対する変数は、０に初期設定される。ステップ８５４において、前記ＯＬＴは、好ましくは次のスキームを使用して、各サブキューに対する前記閾値を計算する：所望のグラント長にサブキュー（クラス）比率を乗算し、さらに較正係数（典型的には１．２５に等しい）を乗算し、その積をサブキューに閾値として送る。例えば、所望のグラント長が８０００バイトであり、クラス比率が０．３、０．４、０．２、０．１であり、較正係数が１．２５である場合、前記閾値は、それぞれ３０００（８０００×０．３ ×１．２５）、４０００、２０００及び１０００となる。ここに示す定数は一例であり、他の定数を選択してもよいことは明らかである。次に前記ＯＬＴは、ステップ８５６において、全てのサブキューの閾値を含むメッセージを前記をＯＮＵに送信する。
【００２０】
以下のステップは、任意であり、適応するメカニズムにおいて望ましい場合にのみ必要となる。ステップ８５８において、前記ＯＬＴは、各サブキューから伝送されたバイト数をカウントする。ステップ８６０において、前記ＯＬＴは、カウントした値を全カウント変数で格納された値に加算する。ステップ８６２において、前記ＯＬＴは、カウントしたサブキューの値と期待値（全てのサブキューのバイトをカウントしてすべて合計し、次にこの合計値にサブクラス当たりの構成比率を乗算して算出したもの）との比率が大幅に異なる（例えば相対差が１０％あるいは絶対差が５％）か否かをチェックする。これらの差は、サブキュー間のパケット長の相違に起因する可能性がある。差が検出されない場合には、前記ＯＬＴは、ステップ８５８に戻り、送信されたバイト数を監視する。差を検出した場合には、前記ＯＬＴは、ステップ８６４において前記閾値を調整する。この調整は、例えば不足したサブキュー（全てのサブキューの送信されたバイトの合計に対する、そのキューの送信されたバイトのパーセンテージが設定値未満であるという意味）に対して前記閾値を増大させたり、充足したサブキュー（全てのサブキューの送信されたバイトの合計に対する、そのキューの送信されたバイトのパーセンテージが設定値より大きいという意味）に対して前記閾値を減少させる等、多くの方法で行うことができる。調整の後に、前記ＯＬＴは、ステップ８５６に戻ってメッセージを送信する。
【００２１】
重要なステップは、８５４であり、このステップでは、サブキュー当たりの前記閾値は、ＷＦＱ比率に基づいて計算される。送信比率を測定するメカニズムに基づいてパケットを選択する標準的なＷＦＱアルゴリズムに対して、２つの独創的な特徴を含む本発明の改良されたＷＦＱ方法では、パケットの選択は、閾値の設定に基づいており、それにより状況の報告に対するルールが定義され、また、閾値以下の全パケットを最初に伝送するＯＮＵ特性の使用は、任意の定期的な調整を行うことなく、優先度同士の比率の維持を簡便化する。
本発明による閾値設定方法の第２の実施形態では、閾値以下のレポートされるバイトを予告するように前記閾値を動的に調整するメカニズムが提供される。このメカニズムは、目標帯域適応（ＴＡＢＡ）と称する。目標は、グラント長を所望の長さにできるだけ一致させる(match)ことである。メカニズムは、全てのサブキューの全閾値の値を同一に設定する。すなわち、全ての優先度は、同一の閾値を有する。主たる概念は、全ての優先度のレポートされた閾値以下のバイトの合計が低すぎる場合に、前記閾値の値を増大させ、高い優先度を有するキューのレポートされた閾値以下のバイトの合計が高すぎる場合に、前記閾値の値を減少させることである。この概念を図９に示す。
【００２２】
図９は、ＴＡＢＡのメカニズムを使用する閾値設定方法のステップのフローチャートを示す。このフローチャートは、ＯＬＴの関連するステートマシンによるＯＮＵの一処理を示す。図８のＷＦＱ実施形態のように、複数のＯＮＵｓをサポートするために、前記ＯＬＴは、このステートマシン（各ＯＮＵ当たり１つ）の複数の実例を作成すべきである。ステップ９００において、前記ＯＬＴは、閾値の初期値（全サブキューに対し同一）を、（１．５／優先度数）×所望のグラント長に設定する。優先度数は、キュー中のサブキューの数及びパケットクラスの数である。ステップ９０２において、前記ＯＬＴは、特定のＯＮＵへ前記閾値を伝送する。ステップ９０４において、前記ＯＬＴは、特定のＯＮＵからレポートを受信する。ステップ９０６において、前記ＯＬＴは、ステップ９０４でレポートされた「全バイト」の値の合計を所望のグラント長と比較する。前記合計が所望のグラント長より小さい場合、前記ＯＮＵは、調整するのに十分なデータを持たないため前記閾値に対して調整を行うことができず、オペレーションは、ステップ９０４に戻る。換言すれば、前記閾値を調整するのになされたいかなる試みにも関係なく、前記ＯＮＵのトラフィックは、低すぎると共に所望のグラント長を満たすのに十分ではない。前記合計が所望のグラント長に等しいか、所望のグラント長より大きい場合には、オペレーションは、ステップ９０８から継続する。このステップでは、前記ＯＬＴはレポートされた閾値以下のバイトの値の合計を所望のグラント長と比較する。前記合計が所望のグラント長より大きい場合、前記オペレーションは、ステップ９１４から継続する。前記合計が所望のグラント長より小さい場合には、前記オペレーションは、ステップ９１０から継続する。ステップ９１０において、例えば、定数を乗算したり、又は定数を加算したりすること等の任意の機能によって、前記閾値（１つの値に全て等しい）を増大させる。次いで前記実行は、ステップ９１２に進行する。ここでは、前記閾値を更新する新たなメッセージが送信され、前記実行は、ステップ９０４に戻る。ステップ９１４において、前記ＯＬＴは、最高の優先度から設定可能な優先度へとレポートされた閾値以下のバイトの値を合計し、「高い優先度」の合計を得る。一般的には、設定可能な優先度は、最高優先度の約５０％である。次に、高い優先度の合計は、ステップ９１６で所望のグラント長と比較される。前記高い優先度の合計が所望のグラント長より小さい場合、前記実行は、ステップ９０４に戻る。高い優先度の合計が所望のグラント長より大きい場合、実行はステップ９１８から継続し、例えば定数で除算したり定数を減算したりする等の任意の機能により前記閾値が減少し、その後、前記実行は、ステップ９１２に進行する。
重要なステップは、９０８及び９１６であり、所望のグラント長がレポートメッセージ中の到着情報と比較される。この比較により、所望の値に可能な限り近い値をとるグラントを予告するように前記閾値を適応させることが可能となる。
【００２３】
例えば、所望のグラント長が１００００であり、優先度の数が４であると仮定する。最初の閾値は、（１．５／４）×１００００=３７５０である。分かりやすくするため、「全バイト」のレポートされた数と全ての優先度の閾値以下のバイトが同一であると仮定する。最初のサイクルにおいて、「全バイト」のレポートされた値が１つの優先度当たり２０００であると仮定する。この値は、前記閾値より小さいため、「閾値以下のバイト」の量としてレポートされる。「全バイト」の合計は、８０００であり、すなわち、所望のグラント長である１００００（ステップ９０６でチェックされた通り）より小さいため、調節は行われない。第２のサイクルにおいて、「全バイト」に対するレポートされた値が５０００であると仮定する。閾値以下のバイトのレポートされた値は、２０００（なぜなら、前記レポートされた値は、３７５０である前記閾値より小さい値でなければならないため）である。閾値以下のバイトの前記合計が所望のグラント長（１００００）より小さいため、前記閾値を増大すべきである。この例では、前記閾値を２０％増大して４５００とし、閾値更新コマンドがこのＯＮＵに送信される。第３のサイクルでは、「全バイト」のレポートされた値が再び５０００であり、閾値以下のバイトのレポートされた値が３０００であると仮定する。閾値以下のバイトの前記合計は、ここで１２０００であるため、前記閾値は、増大すべきではない。最高の優先度（ここでは２つの最高優先度のグループであると仮定した）の「閾値以下のバイト」の合計、すなわち、上記で定義した「高い優先度」の合計は、６０００であるため、この場合も前記閾値を減少すべきではない。換言すれば、第３のサイクルの後、前記閾値は、変更されずにサイクルが終了する。
本発明による閾値設定方法の第３の実施形態では、優先度間のトラフィック分割を可能な限り忠実に予告するように、前記閾値を動的に調整するさらに別のメカニズムが提供される。このメカニズムを優先度トラフィックモニター（ＰＴＭ）と名づける。前述の（ＴＡＢＡ）方法に対し、ＰＴＭの場合、各優先度は、前記優先度から届くデータの量に基づいて独自の閾値を有するが、全ての閾値の合計を固定値（所望のグラント長より一般的に大きい）に設定することが、その主たる概念である。前記閾値は、優先度に関連するサブキューにつきレポートされる実際の「閾値以下のバイト」に基づいて調整される。
【００２４】
図１０は、前記ＰＴＭメカニズムを使用する閾値設定方法のステップのフローチャートを示す。このフローチャートは、ＯＬＴに関連するステートマシンによる１つのＯＮＵの処理を示す。前掲の２つの方法（ＷＦＱとＴＡＢＡ）と同様に、前記ＰＴＭ方法は、前記ステートマシンの複数の事例を提供することにより、複数のＯＮＵｓと共に使用することができる。ステップ１０００−１００４は、図９におけるステップ９００−９０４に本質的に類似する。ステップ１０００において、前記ＯＬＴは、各閾値の初期値を一般的に［（１．５／優先度数）×（所望のグラント長）］に設定する。ステップ１００２において、前記ＯＬＴは、特定のＯＮＵに前記閾値を伝送する。ステップ１００４において、前記ＯＬＴは、特定のＯＮＵからレポートメッセージを受信するまで待機する。ステップ１００６において、ループインデックスにより定義されるループは、全ての優先度に対して実行される。前記ループが終了すると、実行は、ステップ１００２に戻る。ループが継続する限り、ステップ１００８は、優先度ループ変数に関連する現行のサブキューに対する閾値以下のバイトのレポートされた値を、同一のサブキューに対して予想される閾値と比較する。すなわち、前記ループインデックスは、現在調査中のサブキューをマーキングする。レポートされた閾値以下のバイトの値が大きすぎる場合、つまりレポートされた値が前記閾値の所定の部分（例えば２／３）より大きい場合には、前記実行は、ステップ１０１０に進行し、ループの変更可能な優先度に関連する前記サブキューの閾値を一定値だけ増大させ、他のサブキューの他の閾値を、同じ一定値を［（優先度の数）−１］で除算することによって減じる。例えば、閾値以下のバイトのレポートされた値が５０００で、予期した閾値が６０００である場合、この優先度に対する閾値は、この例では２／３の比率に基づいて増大される。４つの優先度があり、加算される値が６００であると仮定すると、このステップの後、この優先度に対する前記閾値は、６６００となり、全ての他の優先度の全ての他の閾値は、２００を差し引かれる。その後、実行は、ステップ１００６にループして戻る。値が小さすぎる場合、つまりレポートされた値が前記閾値の所定の部分（例えば１／３）より小さい場合には、前記実行は、ステップ１０１２に進行し、ループの変更可能な優先度に関連する前記サブキューの閾値を一定値だけ減じ、他のサブキューの他の閾値については同一の一定値を［（優先度の数）−１］で除算することによって増大させる。その後、前記実行は、ステップ１００６にループして戻る。前記値が大きくも小さくもない場合、つまり高い閾値と低い閾値の間にある場合には、調整は必要なく、前記実行は、ステップ１００６にループして戻る。ステップ１０１０及び１０１２は、全ての閾値の合計を一定に維持することを目的とする。
【００２５】
重要なステップは、１００８であり、このステップは、［レポートされた値］対［閾値］の観点から各サブキューを調査することで、閾値を調整する方法（増大、減少、あるいは不変のいずれかである）の決定を可能にする。
例えば、所望のグラント長が１００００、優先度の数が４、そして更新定数が４５０であると仮定する。初期の閾値の値は、（１．５／４）×１００００=３７５０である。最初のサイクルで、レポートされた「閾値以下のバイト」が全ての優先度に対して３０００であると仮定する。前記ループは、各優先度に対して実行を開始する。各所定の優先度に対して、前記閾値の値は、増大されるべきであり、他の優先度の閾値は、減少されるべきである。例えば、第１の優先度の閾値の値は、４５０増大され、全ての他の優先度の閾値の値は、４５０／３減少される。従って、第１のループ実行の後、前記閾値は４２００、３６００、３６００、３６００となる。第２のループ実行の後、前記閾値は、４０５０、４０５０、３４５０、３４５０となる。第３のループ実行の後、前記閾値は、３９００、３９００、３９００、３３００となり、最終的には、前記閾値は、全ての優先度に対して３７５０となる。このことから分かるように、前記レポートされた「閾値以下のバイト」が全て等しかったため、全ての閾値の元の値は、依然としてまだ有効である。第２のサイクルにおいて、レポートされた閾値以下のバイトがそれぞれ３０００、２０００、２０００、１０００であったと仮定する。第１のループ実行の後、前記閾値の値は（第１のサイクルの第１のループと同じく）４２００、３６００、３６００、３６００となる。「閾値以下のバイト」の値は、減少する条件（閾値の１／３）より大きく、増加する条件（閾値の２／３）より小さいため、第２の実行と第３の実行では、前記値は修正されない。最後の実行では、「閾値以下のバイト」の値は、前記閾値の１／３より小さく、この優先度に対して前記閾値の値の減少が必要であり、他の優先度の閾値の値の増大が必要である。最後の実行の後では、前記閾値は４３５０、３７５０、３７５０、３１５０となる。
【００２６】
完全さを期すため、図１１は、所望のグラント長を決定するための２例を示す。図面右側のメカニズム（ステップ１１００−１１０２）は、最小の帯域幅に所望のグラント長を調整することに基づき、図面左側のメカニズム（ステップ１１５０−１１５６）は、サイクル長に全てのＯＮＵの所望のグラント長の合計を調整することに基づく。すなわち、全てのＯＮＵｓの全ての所望のグラント長を得て、それらを合計し、サイクル長に調整する。「サイクル長」は、単一のＯＬＴのグラント付与の決定によりグラントを付与されるバイト数であり、全てのＯＮＵｓをカバーする。
図面右側のメカニズムから説明をすると、ステップ１１００において、前記ＯＮＵｓの１つに対する顧客サービス合意レベルに責任を負う管理システムから、新たな又は更新された最小帯域（ＭＩＮ  ＢＷ）の要求が到着する。ステップ１１０２において、（ＭＩＮ  ＢＷ）の値は、所望のグラント長を計算するために使用されるが、この所望のグラント長は、（ＭＩＮ  ＢＷ／利用可能なＢＷ）×サイクル長に等しいであろう。
図面左側のメカニズムは、ステップ１１５０で始まり、ここで、前記ＯＬＴは、１つ以上のＯＮＵｓに対する新たな、または更新された「公正パラメーター」の要求を受信する。公正パラメーターについては多くの可能な表現がある。例えば、帯域は、公平パラメーターに基づいたＯＮＵｓ同士の間で直線的に分割される。ステップ１１５２において、全ての公正パラメーター（ＯＮＵ当たり１つ）の合計が計算される。ステップ１１５４において、ループは、全てのＯＮＵｓに対して実行される。ステップ１１５６では、好ましくは以下の式を用いて、ループインデックス（ステップ１１５６は各ループサイクルに対して実行される）に対して所望のグラント長が計算される：
グラント長＝（ＯＮＵ公正パラメーター／公正パラメーターの合計）×サイクル長
本明細書中に記載した刊行物及び特許は、それらの刊行物及び特許が個々に、詳細かつ個別に引用されているという仮定と同一程度に、その全内容を引用して本文に援用している。さらに、本出願において参照した引用文等は、かかる参照が本発明に対する従来技術として利用可能なものとして認められたものであると解釈すべきではない。
【００２７】
本発明を限られた数の実施形態に関して説明してきたが、当然のことながら、本発明においては多くの変形、変更及び他の適用を行うことができる。上述したものは、本発明の原理の適用を単に例示したものにすぎず、当業者は、本発明の精神及び範囲から逸脱することなく他の構成及び方法を実行することができよう。
【図面の簡単な説明】
【００２８】
【図１】パケットの断片化損失の一例を示す概略図。
【図２】ＯＬＴとＯＮＵとの間のメッセージフローを制御するための従来技術による方法を示す概略図。
【図３】ＯＮＵによるパケット受信を示すフローチャート。
【図４】ＯＮＵによるレポートの作成と格納におけるステップを示すフローチャート。
【図５】本発明によるＯＮＵのアップリンク伝送の送出順序を決定する方法の好適な実施形態を示す図。
【図６】キュー送出プロセスの一例を示す図。
【図７】キュー送入プロセスとキュー送出プロセスとの間のタイミングの関係を示す図。
【図８】本発明による閾値設定を用いるＷＦＱの実行を示す図。
【図９】本発明によるＴＡＢＡメカニズムを用いる閾値設定方法のステップのフローチャート。
【図１０】本発明によるＰＴＭメカニズムを用いる閾値設定方法のステップのフローチャート。
【図１１】所望のグラント長の計算のフローチャート。
【符号の説明】
【００２９】
１０２  グラント長、１０４  断片の損失、２００  ＯＬＴ（光ライン端局装置）、２０２  ＯＮＵｓ（複数の光ネットワークユニット）、６４０  閾値。
【図１】
2008193708.tif 000003
【図２】
2008193708.tif 000004
【図３】
2008193708.tif 000005
【図４】
2008193708.tif 000006
【図５】
2008193708.tif 000007
【図６】
2008193708.tif 000008
【図７】
2008193708.tif 000009
【図８】
2008193708.tif 000010
【図９】
2008193708.tif 000011
【図１０】
2008193708.tif 000012
【図１１】
2008193708.tif 000013