TDMネットワークでは、複数のノードが伝送路を共有した上で、各ノードが伝送路をに対してデータを送信するタイミングを定め、各ノードは、自ノードに割り当てられた周期的なタイミングでデータを伝送路上に送出する。通常は、送信用のタイミングとして一定の時間長の期間を1タイムスロット(TS:timeslot)と定め、送信元ノードと宛先ノードとの組み合わせごとに送信に用いるタイムスロットを決定する。送信元ノードと宛先ノードとの組み合わせのことを一般に対地と呼ぶ。対地ごとにデータ送信用のタイムスロットを割り当てることをスケジューリングと呼んでいる。このとき、対地ごとに他の対地と重ならないようタイムスロットを割り当て、要求帯域の大きな対地に対しては、より多くのタイムスロットを割り当てるようにする。また、2以上の所定の個数のタイムスロットに相当する時間をTDMフレーム長tと呼び、TDMフレーム長tごとに各対地に対するタイムスロットの割当が繰り返されるようにする。
図1(a)は、TDMネットワークの一例として、リング状伝送路からなるネットワークを示している。このネットワークでは、それぞれ光スイッチによって構成され図示A〜Eで表される5個のノードがリング状の伝送路(例えば、10Gbpsのリング伝送路)上に設けられている。ここでは、伝送路は一方向に信号を伝送する光伝送路であるとする。伝送路において、隣接する2つのノードに挟まれた区間のことをリンクと呼ぶ。図1(a)では、各タイムスロットの長さが1ms、TDMフレーム長tを5msとしている。1つのTDMフレームに対して5個のタイムスロットが含まれることになるから、これらのタイムスロットをS1〜S5とする。このとき、タイムスロット1個当たり2Gbps相当のデータ伝送が可能ということになる。それぞれの対地のデータ送信に対してタイムスロットを割り当てる場合、このとき、同一対地に関し、その経由するリンクには共通のタイムスロットが割り当てられる。また、同一のリンクに関し、異なる対地のデータ送信には同じタイムスロットを使用することはできない。
効率的な、すなわち伝送路の帯域を無駄にしないデータ伝送を行うためには、タイムスロットを可能な限り隙間なく割り当てる必要がある。ネットワーク内の各リンクに規定されたタイムスロットの割当状況を表すテーブルをスケジュールテーブルと呼ぶ。したがって、スケジューリングは、スケジュールテーブル上に示された各タイムスロットに対して通信を割り当てていく操作であるとも言え、リソース割当の一形態である。
図1(a)に示すように、ノードAからノードCに向けて2Gbpsのデータ送信が行われ、ノードBからノードDに向けて4Gbpsのデータ送信が行われるものとすると、ノードAからノードCへのデータ送信には例えばタイムスロットS1が使用され、ノードBからノードDへのデータ送信には例えばタイムスロットS2が使用される。ノードB,C間のリンクに着目すると、タイムスロットS1〜S3が使用されていることになる。この場合のスケジュールテーブルの内容は、図1(b)に示すものとなる。
TDMネットワークにおけるスケジューリング方法として、例えば、事前にデータ転送スケジュールを決定し、運用する方法がある。このとき、スケジュールの決定方法としては、Zhangら(非特許文献1)や後久ら(非特許文献2)に示されるような、ヒューリスティック法がある。ヒューリスティック法では、ネットワークトポロジが与えられたときに、与えられたトラヒックは全て収容し得るものとし、所定の判断基準でソーティングや条件判定を行い、1対地ずつシーケンシャルにタイムスロットの割当を行うものである。
また、通信トラヒックに応じて動的に、例えば、秒オーダー以下の時間間隔で、ネットワーク内の帯域割当すなわちタイムスロットのスケジューリングを行う方法も提案されている。タイムスロットの割当の計算は、ネットワーク規模が大きくなるにつれて急激に演算量が増大するので、中川らは、演算量を削減してスケジューリングを行う方法として、階層化方式(非特許文献3)や剥ぎ取り及び貼り付け(R&R:Rip-up & Re-allocate)方式(非特許文献4)を提案している。階層化方式は、リソース割当問題(すなわち前述のスケジューリング)を小さな単位に分割し、それぞれを独立に解くことによって、計算の高速化を図るものである。
図2は、階層化方式によるスケジューリングを説明する図である。図においてノード層として示されるように、リング状のネットワークに多数のノードが設けられているとして、これらのノードの1または複数をまとめることにより、図においてノードグループ層として示されるように、ノードグループを構成する。ここでは多数のノードが4個のノードグループP〜Sにまとめられている。その上でまず、ノードグループの相互間のデータ伝送に着目して、送信元ノードグループと宛先ノードグループとの組み合わせごとにタイムスロットを割り当てるかを決定して、ノードグループの対に対するスケジュールテーブルを生成する。次に、ノードグループの対に対するスケジュールテーブルに割り当てられた、送信元及び宛先ノードグループの組み合わせごとに、その組み合わせに含まれることとなる対地(すなわち送信元ノード及び宛先ノードの組み合わせ)ごとにタイムスロットを割り当てる。これによって対地ごとのタイムスロットの割当が決定して、スケジューリングが完了することになる。
一方、剥ぎ取り及び貼り付け方式(以下、R&R方式と呼ぶ)によるスケジューリングは、TDMネットワークにおいて動的なリソース割当を行う際に、トラヒック変動周期などの再計算周期ごとに全てのリソース割当についての再計算を行うのではなく、再計算周期Tの間のトラヒック変動分のみを考慮した再計算を行うものである。変動が生じていない箇所の計算を対象外とすることで、計算量を減らして計算の高速化を図り、かつ、タイムスロット割当の最適解に高速に漸近するようにしている。この方法では、対地ごとの要求タイムスロット数の計算を行った上で、要求タイムスロット数に関して変化があった部分についてのみ、スケジュールテーブルにおけるタイムスロット割当の変更を行う。タイムスロット割当の変更は、例えば、トラヒック量が減少して所要タイムスロット数が減少した対地(パス)について、割り当てられているタイムスロット数を減少させ(これをタイムスロットの剥ぎ取り(Rip-up)処理と呼ぶ)、トラヒック量が増加した対地について、追加のタイムスロットを割り当てる(これをタイムスロットの貼り付け(Re-allocation)処理と呼ぶ)ことによって行われる。
図3は、スケジュールテーブルにおける変化を示すことによって、R&R方式によるスケジューリングの概念を示している。4個のノードA〜Dを有する一方向リングネットワークにおいて、ある時点でのリンクスケジュールテーブルの内容が図3(a)に示すもののようであったとする。ここで、トラヒック変動があり、D→A及びD→Bの各対地のトラヒック量が減少し、C→A及びC→Bの各対地のトラヒックが増加したとすると、R&R方式によるスケジューリングでは、まず、図3(b)に示すように、D→A及びD→Bの各対地について割当タイムスロットを剥ぎ取り、次に、図3(c)に示すように、剥ぎ取った分をC→A及びC→Bの各対地に貼り付ける。これにより複数パス間で帯域を融通し合う。このとき、所要トラヒック量に変化があった対地についてのみ計算を行うことにより、計算量を大幅に減少させて計算速度を向上させ、トラヒック変動に追従し動的に帯域(すなわちタイムスロット)を再割当可能なネットワークシステムの大規模化を実現させる。
図4は、R&R方式によるスケジューリングをより模式的に示した図である。この方式では、前回と今回との間で要求トラヒック量の変動が大きい対地(パス)に注目し、大きく要求量が減少した対地で使われていた帯域を、要求量が大きく増加した対地に割り当てる。例えば、図4の(a)に示すように、ネットワーク上のノードA,Bのうち、ノードA向けのトラヒック量が多く、ノードA向けにより大きな帯域が割り当てられているものとする。この状態で、図4の(b)に示すように、ノードA向けのトラヒック量がノードB向けのトラヒック量が増加した場合には、A向けの帯域が余り、B向けの帯域が不足することになる。この方法では、余っている方のA向けの帯域を削って(すなわち剥ぎ取り処理)、不足している方のB向けの帯域に割り当てる(すなわち貼り付け処理)という操作を、変動が生じた全対地を対象として実行する。図4の(c)に示すように、剥ぎ取り及び貼り付けの実行回数(対象とするパスの本数)にしたがって、剥ぎ取りあるいは貼り付けのための計算時間は増加するが、タイムスロット割当における非効率さは改善され、ネットワークにおける実際の帯域利用率を向上させることができる。したがって、少ない回数の剥ぎ取り及び貼り付け処理によって非効率さが大幅に改善されればよく、そのために、どの順番で剥ぎ取り処理や貼り付け処理を行うパスを決定し、スケジュールテーブル上のどの位置から剥ぎ取り処理や貼り付け処理を行うかのアルゴリズムが重要となる。なお図4では剥ぎ取り処理を行ってから貼り付け処理を行っているが、後述するように、剥ぎ取り処理と貼り付け処理の実行順は任意である。
上述したようなタイムスロットのスケジューリングが適用されるTDMネットワークの例として、図5に示すように、ノード11ごとにそれぞれホストコンピュータ12が接続されているものがある。図示したものでは、リング状のネットワーク上に、A〜Eで示される5個のノード11が設けられており、隣接するノード11間はリンク10によって接続している。ノードAには、ネットワーク全体でのタイムスロットのスケジューリングを行うスケジューラ20が設けられている。
図6は、ノード11の構成例を示している。このノード11は、光TDMネットワークに用いられるノードとして一般的な構成を有しており、リンクを転送されてくるデータのタイムスロット単位での方路切替を行うスイッチ31と、ホストコンピュータ12との間でデータをやり取りするための入出力部(I/O)32と、ホストコンピュータ12側から送信されてきたデータを一時的に貯えるバッファ33と、バッファ33から送信データを受け取ってリンクに送り出される光信号を生成しスイッチ31に送出する送信部(Tx)34と、スイッチ31から光信号を受信し受信データとしてI/O32を介してホストコンピュータ12に送る受信部(Rx)35と、ノード11全体を制御するコントローラ36とを備えている。特にコントローラ36は、スケジューラ20から送信されてきたスケジュールテーブル(処理スケジュール)に基づいて、スイッチ31と送信部34を制御する。
スケジューラ20は、図7に示すように、例えば、ノード11のコントローラ36との間でトラフィック情報やスケジュールテーブルなどやり取りするための入出力部(I/O)41と、スケジューリングのための計算を行う演算装置42と、必要な情報を保持するためのメモリ43とを備えている。入出力部41は、その接続するノード11のコントローラ35から、ネットワークを構成する各ノード間のトラヒック情報44を受け取ると、送信元及び宛先の識別を行って、そのような識別(フィルタリング)を行った後のトラヒック情報45を演算装置42に送信する。演算装置42は、トラヒック情報45を受け取ると、各ノード11間のトラヒック情報を送信元及び宛先ごとに分類したもものをメモリ43に格納する。そして演算装置42は、メモリ43から読出された各ノード11間のトラヒック情報に基づいて、帯域割当計算を行い、メモリ43内にスケジュールテーブルを作成する。さらに演算装置42は、作成したスケジュールテーブルをメモリ43から読出して、帯域割当計算の結果(すなわち各ノード11のコントローラ36に送られるべき処理スケジュール)46として、入出力部41を介して各ノード11に送信する。
次に、以上のようなスケジューラ20がネットワーク内のいずれかのノード11に接続しているとしたときの、各ノードにおける処理について説明する。
図6に示すノード11において、入出力部32は、ホストコンピュータ12からの送信データSgを受け取ってフィルタリング処理を行い、フィルタリング処理後のデータShをバッファ33に格納する。バッファ33は、データShを宛先ごとに分類してバッファリングし、コントローラ36から読出指示信号Sqにしたがって、バッファリングしているデータSiを送信部34に転送する。またバッファ33は、自ノードのトラヒック情報Spとして、その使用状況をコントローラ36に通知する。送信部34は、コントローラ36からの送信指示信号Srに基づいて、データSiを光信号Sjに変換してスイッチ31に送出する。スイッチ31は、前段のノードからの光信号Skと送信部34からの光信号Srとを入力として、コントローラ36からの切替指示信号Stに基づいて方路切替を行い、次段のノードに向けて光信号Slを送出し、受信部35に向けて光信号Smを送出する。受信部35は光信号Smを受信して受信データSnとし、入出力部32を介してホストコンピュータに受信データSnを送信する。
ところで、ネットワーク内にはスケジューラ20は一般に1つしか設けられないので、スケジューラ20で生成したスケジュールをネットワーク上で転送して各ノード11に伝達する必要があり、また、各ノードにおけるトラヒック情報もネットワークを介してスケジューラ20に伝達する必要がある。そのため、スイッチ31は、光信号Skに含まれている、前段のノードからの制御信号Ss(トラヒック情報や他ノードから転送されてきたスケジュールテーブル情報)をドロップ(Drop)してコントローラ36に転送し、また、コントローラ36から他ノードあてに転送される制御信号Suを(トラヒック情報や他ノードのスケジュールテーブル情報)をアッド(Add)する機能も有する。他ノードあての制御信号Suは切替指示信号Stとともにスイッチ31に供給される。アッドされた制御信号Suは、光信号Slに含まれて次段のノードに転送される。
コントローラ36は、他ノードからの制御信号Ssに含まれる自ノードのスケジュールテーブルに基づいて制御を行い、スケジュールテーブルに記述されているタイムスロットに応じてデータの送信や方路切替が行われるように、読出指示信号Sq、送信指示信号Sr及び切替指示信号Stを生成して出力する。また、コントローラ36は、他のノードからの制御信号Ssに含まれる、自ノード以外のノードのスケジュールテーブル及びトラヒック情報を透過転送して制御信号Suによって次段のノードに転送し、自ノードのトラヒック情報Spを透過転送して制御信号Suによって次段のノードに転送する。なお、自ノードにスケジューラ20が接続している場合には、コントローラ36は、自ノードのトラヒック情報Spと前段のノードから送られてきた他ノードのトラヒック情報とをスケジューラ20に転送し、スケジューラ20から全ノードのスケジュールテーブルを受け取り、受け取ったスケジュールテーブルのうちの自ノードのスケジュールテーブルに基づいて読出指示信号Sq、送信指示信号Sr及び切替指示信号Stを生成して出力し、他ノードのスケジュールテーブルを制御信号Suによって次段のノードに転送する。
図7に示すスケジューラ20によってR&R方式によるスケジューリングを実行する場合、スケジューラ20は、論理的には図8に示す構成のものとして構成される。すなわちスケジューラは、上述した入出力部41と、入出力部41に入力したトラヒック情報を保持するトラヒック情報保持部51と、トラヒック情報保持部51に保持されている現在のトラヒック情報と過去のトラヒック情報とに基づいて各対地のトラヒック量の変動差分を算出するトラヒック変動差分算出部52と、算出されたトラヒック変動差分を保持するトラヒック変動差分保持部53と、スケジュールテーブルを保持する実スケジュールテーブル保持部54と、実スケジュールテーブル保持部54内のスケジュールテーブルを参照して各パスの帯域割当履歴を保持する割当履歴保持部55と、トラヒック変動差分保持部53に保持されたトラヒック変動差分と割当履歴保持部55に保持された過去の割当履歴とに基づいて、トラヒックが減少したパスのタイムスロットの剥ぎ取り処理を実行して実スケジュールテーブル保持部54内のスケジュールテーブルを更新する減少分剥ぎ取り変更部56と、同様にトラヒック変動差分と過去の割当履歴とに基づいて、トラヒックが増加したパスのタイムスロットの貼り付け処理を実行してスケジュールテーブルを更新する増加分貼り付け変更部57と、実スケジュールテーブル保持部54内のスケジュールテーブルに基づいて各ノードに送られる制御信号を生成するノード制御信号生成部58と、タイマ59と、を備えている。ノード制御信号生成部58で生成された制御信号は、入出力部41を介して各ノードに送信される。タイマ59は、各ノード11との同期をとり、時間管理を行うためのものであるが、特に、割当履歴保持部55やノード制御信号生成部58に対してトリガを出力することにより、割当履歴の初期化や各ノードに対する制御信号の送出タイミングの制御などを行うこともできる。
図8に示すスケジューラ20を構成する各機能ブロックのうち、トラヒック変動差分算出部52、減少分剥ぎ取り変更部56、増加分貼り付け変更部57、ノード制御信号生成部58及びタイマ59は、図7における演算装置42に設けられ、トラヒック情報保持部51、トラヒック変動差分保持部53、実スケジュールテーブル保持部54及び割当履歴保持部55は、図7におけるメモリ43内に設けられる。演算装置42に設けられるトラヒック変動差分算出部52、減少分剥ぎ取り変更部56、増加分貼り付け変更部57、ノード制御信号生成部58及びタイマ59については、それらのいずれをもハードウェアの電子回路として構成してもよいし、あるいは、それらの一部または全部をコンピュータ上で実行されるソフトウェアによって実現してもよい。本明細書において後述する各スケジューラについても、それらをハードウェアとして構成してもよいし、そのスケジューラを構成する機能ブロックの一部または全部をコンピュータ上のソフトウェアで実現するようにしてもよい。
R&R方式のスケジューリング方法では、トラヒック情報の差分をどのように決定するか、剥ぎ取り処理をどのように行うか、貼り付け処理をどのように行うかが、実装上の重要な点となる。また、剥ぎ取り処理及び貼り付け処理を行う順序によって、種々の実施方法が存在する。それらのうちの代表的なものを方法1〜方法3とする。
方法1では、トラヒックが減少したパスについて剥ぎ取り処理を行い、その後、トラヒックが増えたパスの貼り付け処理を行う。方法1は、トラヒック流量にしたがって帯域割当を行うものであり、剰余となる帯域については無視している。
方法2では、貼り付け処理を優先して行い、必要に応じて(割り当てる空き容量がない場合に)剥ぎ取り処理を行う。この方法では、余っている帯域も有効に活用することができる。
方法3は、上記の方法1と方法2とを組み合わせたものであり、ネットワーク内でトラヒックが減少したパスが多いか、増えたパスが多いかに応じて、方法1と方法2とを使い分ける。
さらに、上記の方法1〜方法3に共通した変更の例として、剥ぎ取り処理及び貼り付け処理の実行回数の制限を行うものがある。この変更例は、タイムスロット割当についての最適解に速く収束するようにして途中で計算を打ち切ることで、決められた時間内で良好な解を得ようとするものである。
剥ぎ取り処理や貼り付け処理は、所定のコスト関数を用いて剥ぎ取り対象となるパスとそのタイムスロット、貼り付け対象となるパスとそのタイムスロットを決定する処理である。剥ぎ取り処理や貼り付け処理のアルゴリズムには種々のバリエーションが存在し、しかも、どのようにコスト関数を設定するかによって、異なる効果が得られる。
例えば、剥ぎ取りを行うパスの選択順序を決定するアルゴリズムのバリエーションとしては、表1に示すようなものがある。
アルゴリズム[1]〜[9]を組み合わせて使用することも可能である。また、ソーティングを行うものについては、ソーティングの代わりにしきい値による分類を用いてもよい。しきい値による分類では、1つのしきい値を用いる場合(例としてパス長がその平均値より長いか短いかを用いる場合)には、パス長がしきい値を超える場合には例えばRandam Fitアルゴリズムを使用し、そうでなければ例えばFirst Fitアルゴリズムを用いることが考えられる。複数のしきい値を用い、しきい値で分類された各クラスごとにそれぞれ異なるアルゴリズムを用いるようにしてもよい。しきい値を用いる方法は、計算時間を短くしつつソーティングによるものと同等の効果を得ようとするものである。
同様に、貼り付けを行うパスの選択順序を決定するアルゴリズムのバリエーションとしては、表2に示すようなものがある。
アルゴリズム[1]〜[9]を組み合わせて使用することも可能である。また、剥ぎ取り処理の場合と同様に、ソーティングを用いる代わりにしきい値による分類を用いてもよい。
次に、本発明の好ましい実施形態について、図面を参照して説明する。
以下の説明では、図1(a)や図5に示したような5個のノードA〜Eを有する一方向リングネットワークを考え、リンク当たりで同一タイムスロットに同時に接続可能なチャネルは1つである(すなわちファイバ多重や波長多重を行わない)ものとして、このようなTDMネットワークにおけるタイムスロットの割当のスケジューリングを行う場合を考える。いずれかのノードにスケジューラが接続しており、このネットワークにおけるスケジューリング処理は全てこのスケジューラの内部で実行されるものとする。例えばこのようなTDMネットワークは、単一の波長を用いる光ネットワークであって、タイムスロット長を100μs、フレーム長を10msとするものである。しかしながら、本発明は、双方向リングをはじめとした任意のトポロジーのTDMネットワークに対して適用可能であり、また、波長多重を行うネットワークにも適用可能である。波長多重を行った場合には、各ファイバの各波長ごとにスケジュールテーブルが作成されることになる。
まず、本実施形態のスケジューリング方法について説明する前に、流入トラヒック量に見合った帯域(すなわちタイムスロット)が割り当てられているかどうかを示す指標として以下の説明において用いられている「割当計算の精度」について説明する。ここでは、一般的な指標であるブロッキング率Brを使用し、式(1)に示すように精度を定義する。ブロッキング率Brは式(2)によって与えられる。
ここでiはパス(対地)の始点ノード、jはパスの終点ノードを表している。min(a,b)は、実数a,bのうちの小さい方の値をとる関数であり、req(i,j)は、i→jのパスに流入するトラヒック量[bps]であり、alloc(i,j)は、i→jのパスに割り当てた帯域[bps]である。式(2)の分子は誤差を表している。
式(2)から明らかなように、精度は0以上1以下の値をとる。精度が1であるときは、遅延や損失なく流入トラヒックを転送することができる。また、一般に整数線形計画法(ILP)などによる最適解導出を行った場合には、計算時間を無視するとすれば、精度が最大化される。
スケジューリングにおける割当計算の精度を悪くする要因について検討すると、1つには、トラヒック変動の粒度(トラヒック変動の代表的な周期)に比べ、スケジューリングにおける制御周期(再計算周期T)が大きいことが挙げられる。図9の(a)に示されるように、トラヒック変動周期と制御周期がほとんど変わらない場合には、良好な精度が維持される。制御周期は、もちろん、再計算に必要な計算時間よりも長く設定される。これに対しトラヒック変動周期に比べて制御周期が長い場合には、図9の(b)に示されるように、特に各制御周期の末期において精度が劣化する。
割当計算の精度を悪くするもう一つの要因として、特に、R&R(剥ぎ取り及び貼り付け)方式のスケジューリングの場合に、大きなトラヒック変動の発生が挙げられる。図10に示すように、トラヒック変動が小さいときには、制御周期Tごとに定期的に剥ぎ取り及び貼り付け処理が行われ、タイムスロットの割当がトラヒックの変動に追従して行われる。各制御周期の末期では、当該制御周期中のトラヒック変動により、タイムスロット割当が最適解から乖離するものの、制御タイミングにおいて剥ぎ取り処理及び貼り付け処理によって再割当が行われることによって、最適解に収束する。R&R方式のスケジューリングでは、制御周期T(すなわち制限時間)内でトラヒック変動が生じたパスに対して割当変更を行うが、ここで大きなトラヒック変動があると、1つの制御周期Tの間に再割当可能なタイムスロットの数には上限があるので、1つの制御周期Tでは最適解に収束しないことになる。次の制御周期Tでも、当該制御周期T内で発生したトラヒック変動にも対応する必要があるから、そこでも最適解に収束しないことが考えられる。結局、大きなトラヒック変動が生じた場合には、剥ぎ取り処理及び貼り付け処理による改善では、最適解に収束するまでの長時間を要するようになる。最悪の場合、解の精度が悪化し続けて最適解に収束しない可能性もある。
本実施形態のスケジューリング方法は、R&R方式のスケジューリングでは大きなトラヒック変動が生じた際に最適解への収束が遅くなる、という問題点を解決するものであり、通常時にはR&R方式のスケジューリングによるタイムスロットの再割当を行うものとし、このように最適解への収束が遅くなると考えられる事象が発生したときには、既存のヒューリスティックなスケジューリング方法を利用して、解の補正を行うようにする。本実施形態で利用可能な、既存のヒューリスティックなスケジューリング方法とは、トラヒックに対して1パスずつシーケンシャルにタイムスロットを割り当てるアルゴリズムを用いる方法のことであり、例えば、Zhangらによる方法(非特許文献1)や後久らによる方法(非特許文献2)がある。ヒューリスティックを用いるスケジューリング方法では、R&R方式での1制御周期Tの間にはタイムスロット割当の解を得ることはできないが、得られる解は最適解あるいはそれに近い準最適解であるので、R&R方式によって最適解に収束するまでに要する時間より早くヒューリスティックな方法を用いて最適解あるいは準最適解を得ることができるのであれば、大きなトラヒック変動が生じたときには、ヒューリスティックによる方法を用いた方が有利である。トラヒック変動が小さくなり、かつ、再割当の計算が最適解に収束したら、再び、R&R方式によるスケジューリングに基づいてタイムスロットの再割当を実行する。
このような本実施形態のスケジューリング方法を実行するためには、後述するように、一つの形態として、スケジューリングに用いるアルゴリズムをR&R方式によるアルゴリズムとヒューリスティックなアルゴリズムとの間で動的に変更する機構をスケジューラに設け、動的変更の条件判定を行う機構をスケジューラ(あるいはノード)に設けることになる。
図11は、本実施形態のスケジューリング方法について、制御周期Tごとのトラヒック変動とタイムスロットの再割当との関係の一例を説明するものである。ここでは、R&R方式によるスケジューリングによって、1つの制御周期Tの間に割当変更が可能なタイムスロットの数を5000であるものとしている。
図11の(a)は、トラヒック変動が比較的小さい場合を示している。各制御周期内で変動したタイムスロットの数が、順に、4300、4500、4100、5100、…であるとして、R&R方式によって割当変更されるタイムスロットの数も4300、4500、4100、5000、…であり、最適解との乖離もたかだか200タイムスロットであって、この乖離も次の制御周期において解消している。ここで「最適解との乖離」とは、最適解に比べ、タイムスロット何個分だけタイムスロットの割当がずれているかを表す指標である。例えば、1個のタイムスロットが50Mbpsのデータ転送量に相当すると仮定すると、3000タイムスロットの乖離は150Gbpsのずれを表し、それだけのデータ転送が行えないことを示している。
ここで、4番目の制御周期において、8500タイムスロットという大きな変動が生じたとする。その場合、図11の(b)に示すように、R&R方式での1制御周期T内で再割当可能なタイムスロット数を大きく超過するので、最適解からの乖離が最大で3500となり、R&R方式を使用し続けた場合には、その後も連続する制御周期において最適解からの乖離が解消せず、要求通りに転送できない状態が続くこととなる。
本実施形態のスケジューリング方法では、R&R方式のスケジューリングと既存のヒューリスティックなスケジューリングとを動的に選択することで、大きなトラヒック変動(ここでは、制御周期間に変動したタイムスロット数が多いこと)があったことによる影響を解消している。上述と同様に、4番目の制御周期において、8500タイムスロットという大きな変動が生じたとして、図11の(c)に示すように、このような大きなトラヒック変動を検出してヒューリスティック法による補正の計算を実行する。その一方で、補正の計算の結果が得られるまでの制御周期(この場合、4番目から7番目の制御周期)では、R&R方式によるタイムスロットの再割当を実行する。ヒューリスティック法による補正の計算には、4制御周期が必要であるとすると、補正の計算の結果、8番目の制御周期において最適解が得られることになり、その時点で、最適解との乖離は0となる。最適解に収束したら、その後は、最初の状態と同様に、R&R方式によるスケジューリングを行い、これによって、高速かつ動的に要求通りのトラヒック転送を実行することが可能になる。図11の(b)と(c)を比較すると分かるように、R&R方式のみを用いる場合には、8番目の制御周期以降も最適解との乖離が2000、1800、1400、…と大きいが、本実施形態によりスケジューリングのアルゴリズムの動的な切替を行うことによって、8番目の制御周期以降は最適解との乖離が0(あるいは小さな正の値)となるので、より速やかに要求通りのトラヒック転送に復帰できることなる。本実施形態によれば、要求通りにトラヒックを転送できない状態を解消することができる。
図12は、本実施形態によるスケジューリングを行った場合の精度の変化とR&R方式によるスケジューリングのみを行った場合の精度の変化とを対比して示したグラフである。図12では、ヒューリスティック法によって全てのパスについてのスケジューリングの計算を行うために、3T(3制御周期)が必要であるものとしているが、ヒューリスティック法による計算時間が制御周期Tの何倍になるかは、対象パス数やリンク数など、割当計算の規模によって変化する。
本実施形態のスケジューリング方法では、R&R方式のスケジューリングと既存のヒューリスティックなスケジューリングとの間でのどのように動的にアルゴリズムを変更するかによって、種々の実施方法が存在する。それらのうちの代表的なものを方法1〜方法4とする。
方法1では、大きいトラヒック変動を検知して、動的なアルゴリズム選択を実行する。この方法を実行するためには、トラヒック変動量を把握する機能を設ける必要がある。例えば、トラヒック変動量のしきい値との比較と通知を行うことにより、スケジューラ内でトラヒック変動を検出することができる。あるいは、流入するトラヒックの変動量のしきい値との比較と通知を行うことにより、各ノードにおいてトラヒック変動を検出することができる。
方法2では、定期的にアルゴリズムの選択を実行する。具体的には、R&R方式での制御周期をTとして、既存のヒューリスティックなスケジューリング(計算時間としてkTを有する:ただしk≧2)とR&R方式のスケジューリングとを同時並行的に実行しておき、k番目の制御周期ごとに両者の結果を比較し、良好な結果を示す方を選択する。この方法では、比較を実行する時点を決定するためのタイマ機能と、両方の解を比較して選択を実行する機能とを設ける必要がある。方法2によれば、変更を行った際に、変更を行わない場合よりも解が悪くならないことが保証される。
方法3では、最適解からの乖離を検出し、例えば乖離が一定値を超えるとき(あるいは上述した精度が一定値を下回るとき)などに、精度は低いが計算時間が短くて済むスケジューリングアルゴリズムから精度は高いが計算時間が長いスケジューリングアルゴリズムへと、動的にスケジューリングアルゴリズムを変更する。この方法を実行するためには、最適解からの乖離を検出する機能を設ける必要がある。例えば、割当帯域と流入トラヒック量との比較からスケジューラ内で最適解からの乖離を検出することができる。あるいは、各ノードにおいて、割当帯域と流入トラヒック量の比較や、遅延や損失の監視を行い、これらに基づき、最適解からの乖離をノード内で検出することができる。各ノードにおいて最適解からの乖離を検出するようにした場合には、スケジューラ内に、ノードからの通知を受けてアルゴリズムを変更する機能を設ける必要がある。
方法4は、性能や所要計算時間が異なる3種類以上のスケジューリングアルゴリズムを使用できる場合に、上記の方法2と方法3とを組み合わせたものである。一般に、タイムスロット割当の性能と所要計算時間とはトレードオフの関係にあるから、性能は良いが計算時間が長いアルゴリズム(典型的は既存のヒューリスティックなスケジューリングアルゴリズム)を方法2でのR&R方式とともに定期的に実行するアルゴリズムとし、この定期的実行に用いるアルゴリズムよりは性能は劣るが計算時間が短くて済むアルゴリズムを方法3での乖離を検出したときに用いるアルゴリズムとし、通常時には最も計算時間が短いR&R方式によるアルゴリズムによってスケジューリングを行うものとする。上述したようにR&R方式にも種々のバリエーションがあってそれぞれ性能や所要計算時間が異なるから、乖離を検出したときに用いるアルゴリズムとしては、例えば、ヒューリスティック法に基づくものであって比較的計算時間が短いものや、R&R方式であって性能はよいが比較的計算時間が長いものを使用することができる。
以下、方法1〜方法4を実施するための構成について説明する。
まず、方法1について説明する。図13は、方法1に基づいてスケジューリングを行うTDMネットワークシステムにおいて用いられるスケジューラ20の構成の一例を示している。
図13に示すスケジューラ20は、通常時にはR&R方式によるスケジューリングを実行するものであって、トラヒック変動量を把握して大きなトラヒック変動があったときには既存のヒューリスティックなスケジューリングの実行に切り替わり、最適解に収束した後は再びR&R方式によるスケジューリングに復帰するものである。このスケジューラ20は、図7に示したスケジューラに対し、さらに、変動量しきい値比較部61、補正指示通知部62、スケジュール算出部63及び補正用スケジュールテーブル保持部64を追加したものである。変動量しきい値比較部61、補正指示通知部62及びスケジュール算出部63は演算装置の一部として設けられるものであり、補正用スケジュールテーブル保持部64はメモリ内に設定されるものである。
変動量しきい値比較部61は、トラヒック変動算出部52から各対地のトラヒック量の変動差分を受け取ってしきい値と比較し、しきい値を超える大きなトラヒック変動があるかどうかを検出する。補正指示通知部62は、大きなトラヒック変動があることを変動量しきい値比較部61が検出したときに、スケジュール算出部63に対し、補正指示を送る。スケジュール算出部63は、既存のヒューリスティックなスケジューリングの計算を行うために設けられている。スケジュール算出部63は、補正指示通知部62からの補正指示を受け取った場合に、トラヒック情報保持部51に保持されているトラヒック情報に基づいて、既存のヒューリスティックなスケジューリングを行って、生成したスケジュールテーブルを補正用スケジュールテーブルとして、補正用スケジュールテーブル保持部64に格納する。このスケジューラでは、R&R方式のスケジューリングでの制御タイミングのうち、補正用スケジュールテーブルの算出が完了してから最初の制御タイミングにおいて、補正用スケジュールテーブル保持部64に保持されている補正用スケジュールテーブルによって実スケジュールテーブル保持部54内のスケジュールテーブルが置き換えられるとともに、補正用スケジュールテーブルがノード制御信号生成部58に送られるようになっている。補正用スケジュールテーブルを受け取った制御タイミングでは、ノード制御信号生成部58は、その受け取った補正用スケジュールテーブルに基づいて、各ノードに送られる制御信号を生成する。
結局、図13に示すコントローラ20は、損失を招くような大きなトラヒック変動を検出するために変動量しきい値比較部61が設けられており、大きなトラヒック変動を検出した際にスケジュールテーブルの補正を行うために、補正指示通知部62、スケジュール算出部63及び補正用スケジュールテーブル64が設けられていることになる。スケジュール算出部63によって算出された補正用スケジュールテーブルは、R&R方式によるスケジューリングにおける最適解からの乖離を解消したものであり、補正用スケジュールテーブルによって実スケジュールテーブル保持部54内のスケジュールテーブルが置き換えられることによって、R&R方式でのスケジューリングに対する大きなトラヒック変動による影響の補正が完了することになる。
図14は、方法1での処理を説明するフローチャートであり、(a)はトラヒックの集計などを含めたスケジューリング処理の全体の流れを示し、(b)はタイムスロット割当における従来のR&R方式によるスケジューリングを示し、(c)は方法1でのスケジューリングを示している。
TDMネットワークにおけるスケジューリングの大まかな処理では、図14(a)に示すように、まず、各対地ごとの要求トラヒックを集計し(ステップ101)、集計結果に応じて必要となるタイムスロット数を算出し(ステップ102)、その後、各種のアルゴリズムを用いて、タイムスロットの割当(ネットワーク全体を対象としたスケジュールテーブルの作成)を実行する(ステップ103)。ネットワーク全体を対象としたスケジュールテーブルを各ノードに送信した場合には各ノードでの処理負荷が大きくなるから、次に、ネットワーク全体を対象としたスケジュールテーブルをノードごとのスケジュールテーブルに変換する(ステップ104)。この変換処理は、ノード制御信号生成部58によって行われる。そしてこのように得られたノードごとのスケジュールテーブルが、スケジューリング結果通知として、各ノードに送信される(ステップ105)。
ステップ103のタイムスロット割当の処理は、R&R方式によるスケジューリングを実行する場合には、図14の(b)に示すように、まず、トラヒック変動差分算出部52においてトラヒック変動差分の算出を行い(ステップ111)、トラヒックが減少したパスに対して減少分剥ぎ取り変更部56によって剥ぎ取り処理を行い(ステップ112)、トラヒックが増加したパスに対して増加分貼り付け変更部57によって貼り付け処理を行い(ステップ113)、タイマ59からの打切り指示があるかどうかを判断して(ステップ114)、打切り指示がなければステップ112からの処理を繰り返し、打切り指示があればその時点で剥ぎ取り処理及び貼り付け処理を打ち切って、実スケジュールテーブル保持部54内のスケジュールテーブルに基づき、各ノードに対する制御信号を生成する、というものである。
これに対し、方法1によるスケジューリングでは、ステップ103のタイムスロット割当の処理として、上述と同様にトラヒック変動差分の算出(ステップ121)を行った上で、変動量しきい値比較部62において、変動差分の総量がしきい値を超過したかどうかを判断する(ステップ122)。しきい値を超過していない場合には、ステップ112〜114と同様に、剥ぎ取り処理を実行し(ステップ123)、貼り付け処理を実行し(ステップ124)、タイマからの打切り指示の有無を判断して(ステップ125)、打切り指示がなければステップ123に戻り、打切り指示があれば、剥ぎ取り処理及び貼り付け処理を打ち切って、実スケジュールテーブル保持部54内のスケジュールテーブルに基づき、各ノードに対する制御信号を生成する。一方、ステップ122においてしきい値を超過している場合には、ステップ126において、スケジュール算出部63において既存のヒューリスティックなスケジューリングを行って、最適解あるいは準最適解を導出し(ステップ126)、その後、算出したスケジュールテーブルに基づいて各ノードに対する制御信号を生成するとともに、算出したスケジュールテーブルによって実スケジュールテーブル保持部54内のスケジュールテーブルを置き換える。
なお、既存のヒューリスティックなスケジューリングの計算時間は、R&R方式のスケジューリングにおける制御周期Tよりも長いため、図14(c)には明示されていないが、上述したようにR&R方式によるスケジューリングを継続して実行し、既存のヒューリスティックなスケジューリング結果が算出された時点でスケジュールテーブルを置き換えるようにする。
図15は、方法1によるスケジューリングを実行するスケジューラ20の別の例を示している。ここでは、スケジューラ自体がトラヒック変動を算出するのではなく、各ノードがトラヒックの変動を算出してスケジューラに報告するものとしている。図15に示すスケジューラは、図13に示すものと比べ、トラヒック変動差分算出部が設けられていない。各ノードにおいて算出されたトラヒック変動は、変動差分情報信号として各ノードからこのスケジューラに通知されるようになっており、変動差分情報信号は入出力部51からトラヒック変動差分保持部53と変動量しきい値比較部52とに与えらえるようになっている。変動差分情報信号は、図13に示すスケジューラでのトラヒック変動差分算出部での算出結果と同等の情報を有する信号であり、図15に示すスケジューラも、各ノードから変動差分情報信号を受け取ったのちは、図13に示すスケジューラと同様に動作する。
図15に示すスケジューラを備えるネットワークに設けられ、このスケジューラに対して変動差分情報信号を通知することができるノードの構成例が図16に示されている。図16に示すノードは、図6に示すノードに対し、トラヒックの変動を算出して変動差分情報信号を送信できるように、トラヒック情報保持部71、トラヒック変動差分算出部72及び変動差分情報信号生成部73を設け、さらに、コントローラ36内に変動差分情報信号通知部74を設けたものである。トラヒック情報保持部71は、そのノードの入出力部32に入力したトラヒック情報を保持する。トラヒック変動差分算出部72は、トラヒック情報保持部71に保持されている過去のトラヒック情報と入出力部32から得られる現在のトラヒック情報とに基づいてトラヒック量の変動差分を算出する。変動差分情報信号生成部73は、トラヒック量の変動差分の算出結果に基づいて、変動差分情報信号を生成し、コントローラ36内の変動差分情報信号通知部74に送出する。変動差分情報信号通知部74は、コントローラ36からスイッチ31に送られる、自ノードのトラヒック情報を示す制御信号に変動差分情報信号を付加する。自ノードのトラヒック情報を示す制御信号はネットワーク上のいずれかのノードに存在するスケジューラに送られるから、結局、変動差分情報信号もスケジューラに送られることになる。
図16に示すノードでは、自ノードにおけるトラヒック変動の算出を行うために、入出力部32からのトラヒック情報をトラヒック情報保持部71に保持してトラヒック変動差分算出部72によりトラヒック変動を算出していたが、トラヒック変動を算出するための構成はこれに限られるものではない。バッファ33における各宛先ごとのバッファリング量(すなわちキューの長さ)の変動を算出することで、トラヒック変動を検出することも可能である。図17は、バッファ33におけるキュー長の変動からトラヒック変動を算出するようにしたノードを示している。
図17に示すノードは、図16のノードにおけるトラヒック情報保持部71及びトラヒック変動差分算出部72の代わりに、バッファ33に接続してバッファ33でのキュー長の情報を保持するキュー長情報保持部75と、キュー長情報保持部75に保持された今回と前回のキュー長情報を比較してキュー長の変動差分を算出するキュー長変動差分算出部76を設けたものである。変動差分情報信号生成部73は、キュー長変動差分算出部76での算出結果に基づいて変動差分情報信号を生成して変動差分情報信号通知部74に送出する。
ところで、ノードのコントローラ36はバッファ33の状態を監視する機能を備えているので、この監視機能からバッファのキュー長情報を取得することも可能である。したがって、キュー長情報保持部75、キュー長変動差分算出部76及び変動差分情報信号生成部73をコントローラ36の内部に設けることも可能である。図18は、コントローラの内部にキュー長情報保持部75、キュー長変動差分算出部76及び変動差分情報信号生成部73を設けたノードの構成を示している。
図18に示すノードにおいてコントローラ36には、キュー長情報保持部75、キュー長変動差分算出部76及び変動差分情報信号生成部73の他に、スイッチ31でドロップされてスケジュールテーブル情報などを含む制御信号が入力し、スケジュールテーブル情報を保持するスケジュール保持部81と、スケジュール保持部81に保持されるスケジュールテーブル情報に基づいて切替指示信号Stを生成してスイッチ31での方路切替を制御する方路切替通知部82と、スケジュール保持部81に保持されるスケジュールテーブル情報に基づいて送信指示信号Srを生成して送信部34からの光信号Siの送信を制御する送信指示通知部83と、スケジュール保持部81に保持されるスケジュールテーブル情報に基づいて読出指示信号Sqを生成してバッファ33から送信部34へのデータ転送を制御するバッファ読出通知部84と、バッファ33からトラヒック情報Sq(ここではバッファ33の各キューの使用状況など)を受け取ってバッファ33の状態を監視するバッファ状態監視部85と、スイッチ31でアッドされて他ノードあてに転送される制御信号Suを生成する制御信号通知部86と、が設けられている。キュー長情報保持部73は、バッファ状態監視部85からキュー長の情報を取得して保持する。上述と同様に、キュー長変動差分算出部76は、キュー長情報保持部75を参照し今回と前回のキュー長情報を比較してキュー長の変動差分を算出し、変動差分情報信号生成部73は、キュー長の変動差分の算出結果に基づいて変動差分情報信号を生成する。図18に示すノードでは、変動差分情報信号通知部は設けられておらず、変動差分情報信号は変動差分情報信号生成部73から制御信号通知部86に送られる。制御信号通知部86は、変動差分情報信号が含まれるように制御信号Suを生成してスイッチ31に送出する。
次に、方法2について説明する。図19は、方法2に基づいてスケジューリングを行うTDMネットワークシステムにおいて用いられるスケジューラ20の構成の一例を示している。ネットワークシステム内に設けられるノードとしては、図6に示したものをそのまま使用することができる。
方法2では、既存のヒューリスティックなスケジューリングとR&R方式のスケジューリングとを同時並行的に実行しておき、定期的に両者の結果を比較し、良好な結果を示す方を選択する。そこで図19に示すスケジューラ20は、ノードのコントローラ36との間でトラフィック情報やスケジュールテーブルなどやり取りするための入出力部(I/O)91と、既存のヒューリスティックなスケジューリング(図面では(手法1)と記載)の計算を実行する演算装置92Aと、演算装置92Aにおける計算に必要な情報や計算結果であるスケジュールテーブルを保持するメモリ93Aと、R&R方式によるスケジューリング(図面では(手法2)と記載)の計算を実行する演算装置92Bと、演算装置92Bにおける計算に必要な情報や計算結果であるスケジュールテーブルを保持するメモリ93Bと、比較を実行する時点を決定するタイマ94と、タイマ94からの指示に基づきメモリ93Aに保持されているスケジューリング結果(すなわちスケジュールテーブル)とメモリ93Bに保持されているスケジューリング結果とを比較して、より良い方のスケジューリング結果を選択し、選択したスケジューリング結果を各ノードに送信する演算装置95(図では、(選択)と付記されている)と、を備えている。
次に、方法3について説明する。図20は、方法3に基づいてスケジューリングを行うTDMネットワークシステムにおいて用いられるスケジューラ20の構成の一例を示しており、図21は、このときにネットワークシステム内に設けられるノード11の構成の一例を示している。
図20に示すように、方法3に用いられるスケジューラ20は、図7に示したタイムスロットのスケジューリングに一般的に用いられるものと同様の構成を有するものであるが、演算装置42として、複数のスケジューリングアルゴリズムによってスケジューリングの計算を行うことができ、かつ、計算に用いるアルゴリズムを動的に変更するアルゴリズム動的変更部96を備えるものが用いられる。複数のスケジューリングアルゴリズムとしては、例えば、計算時間が短くて済むが精度がそれほど高くないR&R方式のスケジューリングアルゴリズムと、計算時間は長いが精度が高い既存のヒューリスティックなスケジューリングアルゴリズムが用いられる。
方法3で用いられるノード11は、図3に示したノードと同様のものであるが、最適解からの乖離を検出するために割当帯域・トラヒック監視装置97が設けられ、さらにコントローラ36内に最適解乖離通知部98が設けられている点で、図3に示したものと異なっている。割当帯域・トラヒック監視装置97は、コントローラ36に接続しており、例えば、割当帯域と流入トラヒック量の比較や、遅延や損失の監視を行うことによって、現在のスケジューリング結果が最適解から乖離しているかどうかを判定する。割当帯域・トラヒック監視装置97での判定結果はコントローラ36に送られ、最適解乖離通知部98は、最適解からの乖離を検出した場合に、そのことをスケジューラ20に通知する。スケジューラ20のアルゴリズム動的変更部96は、通常時には、計算時間が短くて済むが精度がそれほど高くないアルゴリズムでスケジューリングの計算が行われるようにするが、最適解からの乖離を検出したことの通知を受け取ると、計算時間はかかるが精度が高いアルゴリズムへと、スケジューリングアルゴリズムを動的に変更する。また、最適解からの乖離が解消したことをノードから通知されたときには、アルゴリズム動的変更部96は、通常時のアルゴリズムへとスケジューリングアルゴリズムを動的に変更する。
次に方法4について説明する。図22は、方法4に基づいてスケジューリングを行うTDMネットワークシステムにおいて用いられるスケジューラ20の構成の一例を示している。ネットワークシステム内に設けられるノードとしては、方法3において説明した図21に示したものをそのまま使用することができる。
図22に示したスケジューラ20は、方法2に用いられる図19に示したスケジューラと同様の構成のものであるが、手法2の演算装置92Bとして、複数のスケジューリングアルゴリズムによってスケジューリングの計算を行うことができ、かつ、計算に用いるアルゴリズムを動的に変更するアルゴリズム動的変更部96を備えるものが使用される。演算装置92Bの複数のスケジューリングアルゴリズムとしては、計算時間が最も短くて済むR&R方式のスケジューリングアルゴリズム(アルゴリズムAと呼ぶ)と、このアルゴリズムAよりは計算時間がかかり精度はよいが、手法1のアルゴリズムよりは精度が低くて計算時間も短いスケジューリングアルゴリズム(アルゴリズムB)が用いられる。
図22に示すスケジューラでは、方法2の場合と同様に、演算装置92Aでの既存のヒューリスティックなスケジューリングの計算と、演算装置92Bでのスケジューリングとを同時並行的に実行しておき、タイマ94からの指示によって演算装置95が定期的に両者のスケジューリング結果を比較し、良好な結果を示す方を選択する。また演算装置92Bでは、方法3の場合と同様に、通常時には、R&R方式による計算時間が短いアルゴリズムAによってスケジューリングの計算を行っているが、最適解からの乖離を検出したことをノードから通知されたときには、アルゴリズムBによりスケジューリングの計算を実行する。このようにして方法2と方法3とを組み合わせた方法4によるスケジューリングが実行される。
上述した説明では一方向リングネットワークを考えているが、本実施形態は双方向リングにも適用可能である。双方向リングに適用する場合には、右回り用のスケジュールテーブルと左回り用のスケジュールテーブルを考えて、それぞれのスケジュールテーブルに対するタイムスロットの割当計算を上述した各方法によって実行すればよい。
双方向リングネットワークとする場合、パスごとにそのパスを右回りにリングを経由するものか左回りにリングを経由するものであるかを固定しておくことができる。その場合、右回りのリングについての割当計算と左回りのリングの割当計算とを独立して実行することが可能となるから、どちらか一方の向きのパスについて動的アルゴリズム変更による補正を行うことも可能である。例えば、右回りのパスを流れるトラヒックに大きな変動が生じた場合には、右回りのリングについてのみ補正を行えばよい。
あるいは、各パスを左回りに経由させるか右回りに経由させるかを動的に決定するようにすることもできる。その場合には、右回りでのデータ伝送と左回りでのデータ伝送を同時に考慮した割当計算を行う必要があり、動的アルゴリズム変更を行う場合には、右回りと左回りとを同時に補正することとなる。動的に経路を変更することのメリットとして、例えば、ネットワーク状態を考慮したリソース割当が可能となるため、より割当効率の向上を期待できることが挙げられる。
上述した本実施形態でのスケジューリング方法は、TDMネットワークシステムにおいて、いずれかのノード11に設けられたスケジューラ20によって実行される。スケジューラ20は、図13、図15、図18、図19、図20あるいは図22に示したような機能部を有する専用ハードウェアとして構成することもできるが、マイクロプロセッサやメモリ、通信インタフェースなどを備える汎用のコンピュータを利用し、スケジューラ20の機能を実行するコンピュータプログラムをこのコンピュータ上で実行させることによっても実現できる。コンピュータ上でプログラムを実行することによってスケジューラ20を実現する場合、スケジュールテーブルなどは、そのコンピュータを構成するメモリ内に記憶され格納される。ノード11に接続されるホストコンピュータ12としては公知の構成のものを使用できる。