説明

経路制御方法とプログラムおよびエリア間通信装置とネットワーク経路制御システム

【課題】ノード数の多い大規模なIPネットワークにおける輻輳回避のための経路制御を効率的に行いIPネットワークの品質を向上させる。
【解決手段】それぞれルーティング機能を有する複数のノードをまとめて1つのエリアを構成し、各エリア内の各ノード単位での経路制御と共に、各エリア単位での経路制御を行う。例えば、ゲートウェイノード21aは、受信したパケットの宛先アドレスから当該受信パケットの宛先エリア28を特定し、隣接エリアj22,j'23における通信負荷状況情報、例えば自ノード内における隣接エリアj22,j'23への送信待ちパケット数と各隣接エリアj22,j'23内の待ちパケット数、および、宛先エリア28までのエリアホップ数を取得し、取得した通信負荷状況情報を用いて、最適な隣接エリアを決定し、決定した隣接エリアに受信パケットを送出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、IP(Internet Protocol)ネットワークにおける品質を制御する上で必要となる経路制御技術に係り、特に、ルーティング機能を有する通信装置(ノード)数の多い大規模な通信網における輻輳回避のための経路制御を効率的に行うのに好適な技術に関するものである。
【背景技術】
【0002】
IPネットワークが広く利用されてくるに伴って、IPネットワーク上での通信品質保証に対する要求が高まっている。通信品質の向上を図る技術として、ネットワーク内での輻輳を回避するようルーティングする輻輳回避ルーティング技術がある。
【0003】
従来の輻輳回避ルーティング技術として、特許文献1に記載のものがある。この技術においては、生体内代謝ネットワークの制御機構のひとつである拮抗阻害反応を模倣して負荷分散を実現するルーティングアルゴリズムが提案されている。
【0004】
すなわち、複数の経路が接続してある複数の分岐個所を有するネットワークで、任意の始分岐個所(始ノード)から任意の終分岐個所(終ノード)までに経由すべき1または複数の分岐個所(ノード)を選択することによってルートを選定する場合、各ノードの負荷量(通信負荷量)、および当該ノードに接続してある各ノードの負荷量に、生体における代謝制御を適用することで、ネットワークにおける負荷が分散されるように、各ノードの中から適切なノードを選択することができる。
【0005】
例えば、ノードXにノードY1,Y2,Y3,…が有線経路または無線経路でそれぞれ接続してあり、ノードXには負荷量[a]のパケットが、ノードY1,Y2,…,Ynへ移動すべく負荷されており、ノードY1,Y2,Y3,…,Ynには負荷量[b1],[b2],[b3],…,[bn]のパケットが他のノードへ移動すべく負荷されており、各経路における最大移動速度がそれぞれ、Vmax1,Vmax2,Vmax3,…,Vmaxnであるとすると、酵素の反応速度が当該酵素の反応生産物によってフィードバック阻害される状態を表す下記の式(イ)を前述した各負荷量に適用し、下記の式(ロ)および式(ハ)によって、各経路の通信の混雑状況といった送信状態値kを算出する。
【0006】
式(イ):d[A]/dt=(−Vmax[A])/{Km(1+[B]/Ki)+[A]}。ただし、[A]は基質濃度、[B]は酵素生産物濃度、Kmは0.5Vmaxを与える基質濃度([A])、Kiはフィールドの強さ(値が小さいほど強い)である。
【0007】
式(ロ):p=Vmaxn[a]/{Km(1+[bn]/Ki)+[a]}。
【0008】
式(ハ):k=p/Vmaxn
【0009】
式(ロ)中のKm及びKiはシミュレーションによって予め適当な値を定めておく。この送信状態値kの値が小さいほど、混雑しているといえる。この送信状態値kを次の式(ニ)式に代入して評価値fを算出する。
【0010】
式(ニ):f=w{(1−α)k+α(1/h)}。尚、wは任意定数、αは0<α<1でシミュレーションにより適当な値を定めておく。また、hは当該ノードから終ノードまでに経由するノードの数(ホップ数)である。
【0011】
このようにして各ノードY1,Y2,Y3,…,Yn別に評価値fnをそれぞれ算出し、得られた各評価値fnを互いに比較して、その値が最も大きいノードを選択する。
【0012】
尚、上記式(ニ)に示したように、評価値fを求める場合にホップ数(1/h)を考慮しており、これによって、送信状態値kが同じ値のノードが複数ある場合は、当該ノードから終ノードまでに経由するノードの数が少ないノードが選択される。
【0013】
一方、当該ノードから終ノードまでに経由するノードの数が比較的多くても、送信状態値kが大きい場合は、当該ノードが選択される。尚、任意のノードから終ノードまでのホップ数(最小ホップ数)は予め得られているものとする。
【0014】
このように、生体における代謝制御技術を適用してノードを選択する操作を、始ノードから順に行うことによって、送信状態値kが小さい、すなわち、混雑した状態のノードを回避しながら、経由するノード数がより少ないルートを選定することができる。これによって、既存のネットワークであっても輻輳の拡大を可及的に抑制し得、高いQoS(Quality of Service)を維持することができる。
【0015】
尚、通信ネットワークにおけるノードとしては、ルータ等のルーティング機能を有する通信装置であればよい。また、生体における代謝制御技術としては、前述したフィードバック制御方法に限らず、フィードフォワード制御方法、あるいは拮抗阻害、非拮抗阻害または不拮抗阻害における制御方法等の他の代謝制御技術を適用し得る。
【0016】
このように、特許文献1の技術では、IPネットワークを構成する各ノードでの送信待ちパケット数を、当該ノードの輻輳度を表す尺度として用い、それ(送信待ちパケット数)を経路選択制御への入力パラメータとすることによって、輻輳を回避して高品質な通信を実現可能とする。
【0017】
しかしながら、この技術は、ノード単位での制御を行っているため、ネットワークの規模が大きくなった場合にスケーラビリティに問題があると共に、経路を大きく変更することができないという問題点がある。
【0018】
【特許文献1】特開2004−172698号公報
【発明の開示】
【発明が解決しようとする課題】
【0019】
解決しようとする問題点は、従来の技術では、ノード単位での制御を行っているため、ノード数が多い大規模なネットワークへの適用に適さない点と、経路を大きく変更することができない点である。
【0020】
本発明の目的は、これら従来技術の課題を解決し、ノード数の多い大規模なIPネットワークにおける輻輳回避のための経路制御を効率的に行うことを可能とし、当該IPネットワークの品質を向上させることである。
【課題を解決するための手段】
【0021】
上記目的を達成するため、本発明では、それぞれルーティング機能を有する複数の通信装置(ノード)をまとめて1つのネットワークエリアを構成し、各ネットワークエリア内の各ノード間での経路制御(公知のノード単位での経路制御)と共に、各ネットワークエリア間(エリア単位)での経路制御の2階層で経路制御を行うことを特徴とする。このネットワークエリア単位での経路制御を行うために、各ネットワークエリアを仮想的な一つのノード(キュー)とみなし、仮想ノードでの待ちパケット数を定義して、その仮想ノードでの待ちパケット数を、当該ネットワークエリアの待ちパケット数として用いることで、公知のノード間(ノード単位)での経路制御と同様にして、ネットワークエリア間(エリア単位)での輻輳回避のための経路制御を行う。
【発明の効果】
【0022】
本発明によれば、公知のノード単位での経路制御と共に、ネットワークエリア間(エリア単位)での輻輳回避のための経路制御を行っており、ノード数の増加に対するスケーラビリティを向上させて、かつ、ノード単位での経路制御に比べて経路を大きく変えることができ、ノード数の多い大規模なIPネットワークにおける輻輳回避のための経路制御を効率的に行うことが可能となり、IPネットワークの品質を向上させることが可能となる。
【発明を実施するための最良の形態】
【0023】
以下、図を用いて本発明を実施するための最良の形態例を説明する。図1は、本発明に係るエリア間通信装置の構成例を示すブロック図であり、図2は、図1におけるエリア間通信装置を具備したIPネットワークの構成例を示すブロック図、図3は、図1におけるエリア間通信装置の処理動作例を示すフローチャートである。
【0024】
図2においては、本発明が適用されるIPネットワークの基本構成例を示しており、本ネットワークは複数のネットワークエリア(以下、単に「エリア」と記載)21〜28に分割され、各エリア21〜28内には、それぞれIPパケットのルーティング機能を有する本発明に係る通信装置としての複数のノード21a〜28bが存在する。その内のノード21a,22a〜22c,23a〜28aは、他のエリアとのコネクション(接続機能)を有した本発明に係るエリア間通信装置としてのゲートウェイノードであり、他のノード(非ゲートウェイノード)と区別する。
【0025】
図1に示すように、ゲートウェイノード1は、パケットヘッダ解析部1aと、隣接エリア内待ちパケット数計算部1b、送信待ちパケット数管理部1c、ホップ数カウント部1d、隣接エリア決定部1e、パケット転送部1fを有し、特に、図2においては、複数のノードを1つにまとめて構成されるエリア21〜28間を接続するためのゲートウェイノード21a,22a〜22c,23a〜28aとして配置されている。
【0026】
尚、本例のゲートウェイノード1は、CPU(Central Processing Unit)や主メモリ、表示装置、入力装置、外部記憶装置からなるコンピュータ構成とし、光ディスク駆動装置等を介してCD−ROM等の記憶媒体に記録されたプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みCPUで処理することにより、各処理部の機能を実行する。
【0027】
このような構成からなるゲートウェイノード1は、複数のノードをまとめて構成されたエリア間を接続するものであり、自エリア内のノードから受信したパケットの宛先アドレスをキーに、予め記憶装置に記憶した各アドレスと所属エリアとの対応付け情報を検索して当該パケットの宛先エリアを特定し、特定した宛先エリアと自エリア間にある各エリアで構成されるルーティング経路の通信負荷状況情報を取得し、取得した通信負荷状況情報を参照してパケットの転送先として最適な隣接エリアを決定し、決定した隣接エリア内のノード(ゲートウェイノード)に当該パケットを送出する。
【0028】
尚、例えば、図2におけるエリアJ22内のノード22dのように、自エリアJ22内の境界に位置していないノード(非ゲートウェイノード)は、他ノード宛のパケットを受信すると、自ノード22d内における隣接ノード22e,22fへの送信待ちパケット数a_jと、これらの隣接ノード22e,22f内における送信待ちパケット数b_jを参照して、いずれか一方を、当該パケットを次に転送すべき隣接ノードとして決定する。
【0029】
このように、次に転送すべき隣接ノードを決定する際には、まず、前述の特許文献1でも述べた生体内代謝ネットワークの制御機構のひとつである「nonessential actication 反応」(参照:I.H. Segel, Enzyme Kinetics : Behavior and Analysis of Rapid Equilibrium and Steady-State Enzyme Systems (Wiley, New York, 1975))を模倣した下記の式(A),(B)の負荷分散評価式を用いて、隣接ノード22e,22fの混雑指標k_jを計算する。
【0030】
式(A):k_j=1−(p/Vmax_1)
【0031】
式(B):p=(Vmax_1×a_j)/((Ks_1×(1+b_j/Ka_1))/(1+x_1×b_j/(y_1×Ka_1))+(a_j×(1+b_j/(y_1×Ka_1)))/(1+x_1×b_j/(y_1×Ka_1)))
【0032】
ただし、x_1は、隣接ノード内の送信待ちパケット数b_jの混雑指標k_jへのインパクトの度合いを左右させるために予め定められるパラメタ(係数)であり、例えばx_1=3.0等とし、このx_1を大きくすると、隣接ノード内送信待ちパケット数b_jの値を、大きく、混雑指標k_jに反映させることになる。
【0033】
また、y_1は、主に自ノード内の当該隣接ノード向けの送信待ちパケット数a_jの混雑指標k_jへのインパクトの度合いを左右させるために予め定められるパラメタ(係数)であり、例えばy_1=0.3等とし、このy_1を大きくすると、現在の自ノード内送信待ちパケット数a_jの値を、大きく、混雑指標k_jに反映させる方向に動作する。
【0034】
また、Vmax_1は、ノード22dとノード22e,22fを結ぶ経路の最大通信速度であり、Ka_1およびKs_1は予め定められる定数である。
【0035】
このようにして計算した隣接ノード22e,22fの混雑指標k_jと、転送すべきパケットの宛先ノードまでのノードホップ数h_j(尚、宛先ノードが同一エリアJ22内に属する場合は当該宛先ノードまでのノードホップ数、また、エリア宛先ノードが他エリア28に属する場合は転送すべき隣接エリア24,25とつながるエリアJ22内のゲートウェイノード22b,22cまでのノードホップ数)とを用いて、下記の式(C)から評価値f_jを算出し、この評価値f_jを最大にする隣接ノード22e,22fを次に転送すべきノードとして決定する。
【0036】
式(C):f_j=(1−α)k_j+α(1/h_j)…ただし、αは予め定めるパラメータで0<α<1。
【0037】
本例では、このような、「次に転送すべき『隣接ノード』の決定」に用いた技術を、例えば図2におけるエリア21のゲートウェイノード21aにおいて、「次に転送すべき『隣接エリア』の決定」に用いる。
【0038】
この際、例えば、図2におけるエリアi21の境界に位置するゲートウェイノード21aは、自ノード内における隣接エリアJ22への送信待ちパケット数A_Jと隣接エリアJ'23への送信待ちパケット数A_J'、および、隣接エリアJ22内の待ちパケット数B_Jと隣接エリアJ'23内の待ちパケット数B_j'等を用いて、パケットを次に転送すべき隣接エリアを決定する。
【0039】
すなわち、まず、隣接エリアJ22,J'23の混雑指標K_J,K_J'を下記の式(1),(2)および式(1'),(2')を用いて算出する。
【0040】
式(1):K_J=1−(P/Vmax_2)
【0041】
式(2):P=Vmax_2×A_J/((Ks_2×(1+B_J/Ka_2))/(1+x_2×B_J/(y_2×Ka_2))+(A_J×(2+B_J/(y_2×Ka_2)))/(1+x_2×B_J/(y_2×Ka_2)))
【0042】
式(1'):K_J'=1−(P/Vmax_2')
【0043】
式(2'):P=Vmax_2'×A_J'/((Ks_2×(1+B_J'/Ka_2))/(1+x_2×B_J'/(y_2×Ka_2))+(A_J'×(2+B_J'/(y_2×Ka_2)))/(1+x_2×B_J'/(y_2×Ka_2)))
【0044】
尚、x_2は、上述のx_1と同様に、隣接エリア内の送信待ちパケット数B_Jの混雑指標K_Jへのインパクトの度合いを左右させるために予め定められるパラメタ(係数)であり、例えばx_2=3.5等とし、このx_2を大きくすると、隣接エリア内送信待ちパケット数B_Jの値を、大きく、混雑指標K_Jに反映させることになる。
【0045】
また、y_2は、上述のy_1と同様に、主に自ノード内の当該隣接エリアへの送信待ちパケット数A_Jの混雑指標K_Jへのインパクトの度合いを左右させるために予め定められるパラメタ(係数)であり、例えばy_2=0.5等とし、このy_2を大きくすると、現在の自ノード内の当該隣接エリアへの送信待ちパケット数A_Jの値を、大きく、混雑指標K_Jに反映させる方向に動作する。
【0046】
また、Vmax_2は、エリアi21とエリアJ22を結ぶ経路の最大通信速度であり、Vmax_2'は、エリアi21とエリアJ'23を結ぶ経路の最大通信速度、そして、Ka_2およびKs_2は予め定められた定数である。
【0047】
そして、計算した混雑指標K_J,K_J'と、転送すべきパケットの宛先エリア28までの隣接エリアJ22もしくは隣接エリアJ'23を経由したときのエリアホップ数H_J,H_J'とを用いて、下記の式(3),(3')から評価値F_Jを算出し、この評価値F_Jが最大となる隣接エリア24,25のいずれかを次に転送すべき隣接エリアとして決定する。
【0048】
式(3):F_J=(1−α)K_j+α(1/H_J)
【0049】
式(3'):F_J'=(1−α)K_j'+α(1/H_J')
【0050】
ただし、式(3)および式(3')におけるαは予め定めるパラメータで0<α<1。
【0051】
このようにして、本例では、ノード単位での経路制御のみならず、エリア単位での経路制御を行う。このことにより、ネットワークを構成するノード数の増加に対するスケーラビリティを向上させ、かつ、ノード単位での経路制御に比べて経路を大きく変えることが可能となる。
【0052】
以下、このようなエリア単位での経路制御動作に関して、図1のゲートウェイノード1の構成例を用いて説明する。
【0053】
ゲートウェイノード1は、エリア内の他ノード(非ゲートウェイノード)から到着したパケットに対しては、パケットヘッダ解析部1aが、宛先IPアドレスを読み出し、予め記憶装置に記憶されたIPアドレスとエリアとの対応表を参照し、受信したパケットの宛先エリアを調べる。
【0054】
このようにして、宛先エリアを判別すると、パケットヘッダ解析部1aは、当該宛先エリア、例えば図2におけるエリア28の識別情報を、ホップ数カウント部1dへ通知する。同時に、送信待ちパケット数管理部1c、および隣接エリア内待ちパケット数計算部1bに対して計算の開始を指示する。
【0055】
パケットヘッダ解析部1aからの宛先エリア28の通知を受けたホップ数カウント部1dは、それぞれの隣接エリア(J22,J'23)を経由した場合の当該宛先エリア28までの各々のエリアホップ数(H_J,H_J')を計算する。
【0056】
ここでは、例えば、予め記憶装置に記憶されている、各エリアがどのように接続されているかを示すトポロジー情報を参照して、各隣接エリア(J22,J'23)経由での宛先エリア(28)までの最小エリアホップ数を計算する。
【0057】
図2において、エリア28内のノード28bを宛先ノードとした場合の、エリアi21内のゲートウェイノード21aを例にすると、隣接エリアJ22を経由した場合のエリアホップ数H_Jは「3」、隣接エリアJ'23を経由した場合のエリアホップ数H_J'は「4」となる。
【0058】
図1のホップ数カウント部1dは、このようにして計算したエリアホップ数H_J,H_J'の値を隣接エリア決定部1eへ通知する。
【0059】
送信待ちパケット数管理部1cは、自ノード(21a)から隣接エリア(J22,J'23)への出力待ちキュー長(A_J,A_J')を管理しており、パケットヘッダ解析部1aから指示を受けると、隣接エリア(J22,J'23)への出力待ちキュー長(A_J,A_J')を読み出して隣接エリア決定部1eへ通知する。
【0060】
図2の例では、隣接エリアJ22への出力待ちキュー長「A_J」および隣接エリアJ'23への出力待ちキュー長「A_J'」の2つが、隣接エリア決定部1eへ通知すべきキュー長となる。
【0061】
隣接エリア内待ちパケット数計算部1bは、隣接エリア(J22,J'23)内の各ノードm(22a〜22f,23a,23b)からそれぞれにおける自ノード内待ちパケット数b_j,mを受信しておいて、その値(b_j,m)をもとに、各隣接エリア(J22,J'23)単位で、待ちパケット数B_J,B_J'を求め、更新して記憶装置に保持している。
【0062】
尚、図2の例では、エリアJ22内の各ノード22a〜22fは、一定周期毎に、自ノード内待ちパケット数b_j,mを計測し、計測した自ノード内待ちパケット数b_j,mが予め定められた閾値thを超えたときのみゲートウェイノード21aに対して、当該値b_j,mを通知し、以降、閾値thを越えている間は、一定周期毎に当該「自ノード内待ちパケット数b_j,m」をゲートウェイノード21aに対して通知する。
【0063】
このように、閾値thを超えたときのみ、各ノード22a〜22fからゲートウェイノード21aに対して、自ノード内待ちパケット数b_j,mを通知するようにすることにより、自ノード内待ちパケット数b_j,m通知のための制御パケット数を削減する。
【0064】
ゲートウェイノード21aは、予め定められた測定周期(測定区間)毎に、隣接エリアJ22,J'23内の待ちパケット数B_J,B_J'を、「{更新後のB_J,B_J'}←{更新前のB_J,B_J'}×exp(−θ×({更新時の時間}−{前回の更新時間}))+{その測定区間に通知されたb_j,mの平均}」の手順で更新する。尚、θは定数である。
【0065】
隣接エリア内待ちパケット数計算部1bは、このように更新している「待ちパケット数B_J,B_J'」の値を、パケットヘッダ解析部1aからの指示に従って、隣接エリア決定部1eへ通知する。
【0066】
隣接エリア決定部1eは、送信待ちパケット数管理部1cから通知された隣接エリアへの出力待ちキュー長A_J,A_J'と、隣接エリア内待ちパケット数計算部1bから通知された待ちパケット数B_J,B_J'を用いて、隣接エリアJ22,J'23の混雑指標K_j,K_j'を、上記の式(1)、(2)、(1')、(2')を用いて算出し、さらに、算出した混雑指標K_j,K_j'と、ホップ数カウント部1dから通知されたエリアホップ数(経由するエリア数)H_J,H_J'を用いて、上記の式(3),(3')(F_J=(1−α)K_j+α(1/H_J),F_J'=(1−α)K_j'+α(1/H_J'))を計算し、この評価値F_J,F_J'が最大となる隣接エリア(J22,J'23)を、次に転送すべき隣接エリアとして決定する。
【0067】
パケット転送部1fは、隣接エリア決定部1eが決定した隣接エリア(J22,J'23)のゲートウェイノード(22a,23a)に向けて、当該パケットを転送する。
【0068】
尚、上述の隣接エリア内待ちパケット数計算部1bにおいて、隣接エリアJ22,J'23内の待ちパケット数B_J,B_J'の更新を、「{更新後のB_J,B_J'}←{更新前のB_J,B_J'}×exp(−θ×({更新時の時間}−{前回の更新時間}))+{その測定区間に通知されたb_j,mの平均}」として行っているが、例えば、「{更新後のB_J,B_J'}←{更新前のB_J,B_J'}×exp(−θ×({更新時の時間}−{前回の更新時間}))+{その測定区間に通知されたb_j,mの最大}」の手順で更新することでも良い。
【0069】
また、図2におけるエリアi21内のゲートウェイノード21aは、上述のように、隣接エリア内待ちパケット数計算部1bにより隣接エリアJ22,J'23内の各ノード22a〜22f,23a,23bからのキュー長の通知を受ける代わりに、これらのエリアJ22,J'23に隣接するエリアi21以外のエリアI(24〜26)内に属しかつエリアJ22,J'23と接続されているゲートウェイノードj,I(24a,24b,25a,26a)までの通信に対して利用可能な帯域C_J,I(n)、C_J',I(n)を、時間区間[(n-1)τ,nτ]において推定(τは周期)すると共に、同時間区間内に、ゲートウェイノード21aからゲートウェイノードj,I(24a,24b,25a,26a)へ向かったパケットバイト数を、周期τで除した値「R_J,I(n)[bps]」を測定し、時点nτにおいてエリアJ22からゲートウェイノードJ,I(24a,24b,25a)ヘ向かう通信に対する仮想キュー長B_J,I(n)およびエリアJ'23からゲートウェイノードJ,I(26a)ヘ向かう通信に対する仮想キュー長B_J',I(n)を、下記の式(4),(4')を用いて計算し、エリアJ22,J'23の待ちパケット数B_J,B_J'を、ΣB_J,I、ΣB_J',Iによって決定することでも良い。
【0070】
式(4):B_J,I(n)=max{B_J,I(n−1)+(R_J,I(n)−C_J,I(n))×τ,0}」
【0071】
式(4'):B_J',I(n)=max{B_J',I(n−1)+(R_J',I(n)−C_J',I(n))×τ,0}」
【0072】
より具体的には、図2においては、エリアi21を除いたエリアJ22に隣接するエリアとして、エリア24,25の2つが存在し、エリアJ22と接続されているゲートウェイノードとしてノード(j,1)24a、ノード(j,2)24b、ノード(j,3)25aの3つが存在している。
【0073】
着目するゲートウェイノード21aからこれら3つのノードそれぞれに対して、利用可能帯域C_J,I(n),C_J',I(n)と、入力されたトラヒック量R_J,I(n),R_J',I(n)(I=1,2,3)を求めればよい。
【0074】
ここでは、利用可能帯域C_J,I(n),C_J',I(n)を、ノードI(ノード(j,1)24a、ノード(j,2)24b、ノード(j,3)25a)へ向かうエリアJ22を一つの仮想キューとみなしたときのキューの出力レートを意味する。
【0075】
実際には(ノード(j,1)24a、ノード(j,2)24b、ノード(j,3)25a)へ向かうエリアJ22内のノードは複数存在するが、各ノードの状態を管理するコストを削減するために、このような仮想キューという概念を導入している。
【0076】
一方、トラヒック量R_J,I(n),R_J',I(n)は、当該仮想キューヘの入力レートを意味する。従って、上述の式(4),式(4')における「(R_J,I(n)−C_J,I(n))×τ」および「(R_J',I(n)−C_J',I(n))×τ」は、時間[(n-1)τ,nτ]の間に、キューに蓄積された量に相当するため、その値を、時点(n-1)τでのキュー長B_J,I(n-1),B_J',I(n-1)に加算することにより、現時点nτでのキュー長B_J,I(n),B_J',I(n)を推定する。
【0077】
尚、式(4)および式(4')において、「0」とのmax(最大値)を取る理由は、「R_J,I(n)−C_J,I(n)」,「R_J',I(n)−C_J',I(n)」が負になった場合、キュー長は「0」となるようにするためである。
【0078】
また、上述の利用可能な帯域C_J,I(n)、C_J',I(n)を決定する手順においては、ゲートウェイノード21aからゲートウェイノードj,I(24a,24b,25a,26a)の経路上に存在する各リンクの物理帯域の内、その最小値を調査し、それを利用可能帯域C_J,I(n)、C_J',I(n)とする。
【0079】
その際の最小物理帯域の調査技術としては、エリア内のネットワーク情報(トポロジーと各リンクの帯域)を入手して求めるか、試験パケットを用いて推定する公知技術、例えば、「V. Paxson, "End-to-end internet packet dynamics," IEEE/ACM Trans. on Networking, vol.7, pp.277-292, June 1999」に記載の技術を利用する。
【0080】
また、上述のように、利用可能帯域C_J,I(n)、C_J',I(n)を、最小物理帯域とする代わりに、ゲートウェイノード21aから各ゲートウェイノードj,I(24a,24b,25a,26a)の経路上に存在する各リンクでの空き帯域(=物理帯域−使用帯域)の最小値を調査し、それを利用可能帯域C_J,I(n) 、C_J',I(n)とすることでも良い。
【0081】
尚、空き帯域を決定する技術としては、エリア内のネットワーク情報(トポロジーと各リンクの帯域と各リンクの使用帯域)を入手して求めるか、例えば、「M. Jain and C. Dovrolis, "Pathload : a measurement tool for end-to-end available bandwidth, " Passive and active measurements Workshop(PAM), March 2002」に記載のように、試験パケットを用いて推定する技術を利用する。
【0082】
また、利用可能帯域C_J,I(n) 、C_J',I(n)を決定する手順として、ゲートウェイノード21aから各ゲートウェイノードj,I(24a,24b,25a,26a)間において、往復伝播遅延時間RTT_J,I(n)、RTT_J',I(n)とパケット損失率Q_J,I(n)、Q_J',I(n)を測定し、この往復伝播遅延時間RTTとパケット損失率Qから帯域を推定する関数f(RTT,Q)を用いて、利用可能帯域「C_J,I(n)=f(RTT_J,I(n),Q_J,I(n))」,「C_J',I(n)=f(RTT_J',I(n),Q_J',I(n))」とすることでも良い。
【0083】
尚、関数f(RTT,Q)として、例えば、「J. Padhye et al., "Modeling TCP Reno performance : a simple model and its empirical validation, " IEEE/ACM Transactions on Networking, 2000」において記載の、TCPスループットを推定する式を利用する。
【0084】
次に、図3を用いて、図2に示すネットワークにおけるゲートウェイノード21aによる本発明に係る経路制御方法の処理手順例を説明する。ゲートウェイノード21aは、他ノード宛のパケットを受信すると(ステップS301)、まず、受信したパケットの宛先アドレスをキーに、予め記憶装置に記憶した各アドレスと所属エリアとの対応付け情報を検索して受信パケットの宛先エリア28を特定する(ステップS302)。
【0085】
特定した宛先エリア28と自エリアi21間にある各エリア22〜27で、自エリアi21に隣接するエリアj22,j'23における通信負荷状況情報、例えば自ノード(21a)内における隣接エリアj22,j'23への送信待ちパケット数A_J,A_J'と隣接エリアj22,j'23内の待ちパケット数B_J,B_J'、および、宛先エリア28までのエリアホップ数H_J,H_J'を取得し(ステップS303)、取得した通信負荷状況情報を参照して、受信パケットの転送先として最適な隣接エリアを決定し(ステップS304)、決定した隣接エリア内のゲートウェイノードに、受信パケットを送出する(ステップS305)。
【0086】
以上、図1〜図3を用いて説明したように、本例では、それぞれルーティング機能を有する複数のノードからなるIPネットワークにおいて、ノードの幾つかをまとめて1つのエリアを構成し、各エリア21〜28内の各ノード間(ノード単位)での経路制御と共に、各エリア間(エリア単位)21〜28での経路制御の2階層での経路制御を行う。
【0087】
このようなエリア単位での経路制御を行う際、各エリア21〜28を仮想的な一つのノード(キュー)とみなし、仮想ノードでの待ちパケット数を定義して、その仮想ノードでの待ちパケット数を、当該エリアの待ちパケット数として用いることで、ノード間(ノード単位)での経路制御と同様にして、エリア間(エリア単位)での輻輳回避のための経路制御を行う。
【0088】
具体的には、エリア内の各ノードは、他ノード宛パケットを受信すると、自ノード内における隣接ノードjへの送信待ちパケット数a_jと隣接ノードj内の送信待ちパケット数b_jを用いて次に転送すべき隣接ノードを決定するが、他のエリアとの境界に位置するゲートウェイノード21aは、自ノード内における隣接エリアへの送信待ちパケット数A_Jと隣接エリア内の待ちパケット数B_Jを用いて次に転送すべきエリアを決定する。
【0089】
この隣接エリア内の待ちパケット数B_Jは、以下の第1〜第3のいずれかの技術を用いて求める。
【0090】
第1の技術では、定期的に隣接エリア内の各ノードが自ノード内待ちパケット数を計測し、予め定められた閾値を超えたときに、ゲートウェイノード21aに対して、当該パケット数を通知する。
【0091】
ゲートウェイノード21aは、隣接エリア内の各ノードから通知される自ノード内待ちパケット数を用いて、一定周期毎に、「{更新後のB_J}←{更新前のB_J}×exp(−θ×({更新時の時間}−{前回の更新時間}))+{その測定区間に通知された自ノード内待ちパケット数b_j,iの平均}」の手順により、エリア内待ちパケット数B_Jを変更する。
【0092】
第2の技術では、上記第1の技術における「{更新後のB_J}←{更新前のB_J}×exp(−θ×({更新時の時間}−{前回の更新時間}))+{その測定区間に通知された自ノード内待ちパケット数b_j,iの平均}」の手順の代わりに、「{更新後のB_J}←{更新前のB_J}×exp(−θ×({更新時の時間}−{前回の更新時間}))+{その測定区間に通知された自ノード内待ちパケット数b_j,iの最大値}」の手順を用いる。
【0093】
第3の技術では、エリアi内のゲートウェイノード21aは、例えば隣接エリアJの待ちパケット数B_Jを決定する際、このエリアJに隣接するエリアI(Iはiを含まず)内に属しかつエリアJと接続されているゲートウェイノードJ,Iまでの通信に対して利用可能な帯域C_J,I(n)を時間区間[(n-1)τ,nτ]において推定し(τは周期)、同時間区間内にゲートウェイノード21aからゲートウェイノードJ,Iへ向かったパケットバイト数をτで除した値「R_J,I(n)[bps]」を測定し、時点nτにおいてエリアJからゲートウェイノードJ,Iヘ向かう通信に対する仮想キュー長B_J,I(n)を、「B_J,I(n)=max{B_J,I(n-1)+(R_J,I(n)−C_J,I(n))×τ,0}」により計算し、エリアJの待ちパケット数B_Jを「ΣB_j,I」によって決定する。
【0094】
尚、第3の技術における「利用可能帯域C_J,I(n)」を決定する手順としては、ゲートウェイノード21aからゲートウェイノードJ,Iの経路上に存在する各リンクの物理帯域のうちその最小値を調査してそれを利用可能帯域C_J,I(n)とする手順、あるいは、ゲートウェイノード21aからゲートウェイノードJ,Iの経路上に存在する各リンクでの空き帯域(=物理帯域−使用帯域)の最小値を調査してそれを「利用可能帯域C_J,I(n)」とする手順、さらに、ゲートウェイノード21aからゲートウェイノードJ,I間において往復伝播遅延時間RTT_J,I(n)とパケット損失率Q_J,I(n)を測定し、これらの往復伝播遅延時間RTTとパケット損失率Qから帯域を推定する関数f(RTT,Q)を用いて、「C_J,I(n)=f(RTT_J,I(n),Q_J,I(n))とする手順がある。
【0095】
このように、本例では、ノード間(ノード単位)での経路制御と共に、エリア間(エリア単位)での輻輳回避のための経路制御を行っており、ノード数の増加に対するスケーラビリティを向上させて、かつ、ノード単位での経路制御に比べて経路を大きく変えることができ、ノード数の多い大規模なIPネットワークにおける輻輳回避のための経路制御を効率的に行うことが可能となり、IPネットワークの品質を向上させることが可能となる。
【0096】
尚、本発明は、図1〜図3を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、図1におけるゲートウェイノード1は、CPUや主メモリ等からなるコンピュータ構成とし、プログラムをCPUで処理することにより、各処理部の機能を実行するソフトウェア構成としているが、論理素子を用いて各処理部の機能を実行するハードウェア構成とすることでも良い。
【0097】
また、コンピュータ構成例としても、キーボードや光ディスクの駆動装置の無いコンピュータ構成としても良い。また、本例では、光ディスクを記録媒体として用いているが、FD(Flexible Disk)等を記録媒体として用いることでも良い。また、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【図面の簡単な説明】
【0098】
【図1】本発明に係るエリア間通信装置の構成例を示すブロック図である。である。
【図2】図1におけるエリア間通信装置を具備したIPネットワークの構成例を示すブロック図である。
【図3】図1におけるエリア間通信装置の処理動作例を示すフローチャートである。
【符号の説明】
【0099】
1,21a,22a〜22c,23a〜28a:ゲートウェイノード、1a:パケットヘッダ解析部、1b:隣接エリア内待ちパケット数計算部、1c:送信待ちパケット数管理部、1d:ホップ数カウント部、1e:隣接エリア決定部、1f:パケット転送部、21〜28エリア、22d〜22f:ノード(非ゲートウェイノード)。

【特許請求の範囲】
【請求項1】
それぞれIPパケットのルーティング機能を具備した複数の通信装置をまとめて構成されたネットワークエリア間を接続するエリア間通信装置の経路制御方法であって、
自ネットワークエリア内の通信装置から受信したパケットの宛先アドレスをキーに、予め記憶装置に記憶した各アドレスと所属ネットワークエリアとの対応付け情報を検索して上記パケットの宛先となるネットワークエリアを特定する第1の手順と、
該第1の手順で特定した宛先ネットワークエリアに向けて自ネットワークエリアと隣接したネットワークエリアの通信負荷状況情報を取得する第2の手順と、
該第2の手順で取得した通信負荷状況情報を参照して上記パケットの次の転送先として最適な隣接ネットワークエリアを決定する第3の手順と、
該第3の手順で決定した隣接ネットワークエリア内のエリア間通信装置に上記パケットを送出する第4の手順と
を有することを特徴とする経路制御方法。
【請求項2】
請求項1に記載の経路制御方法であって、
上記第2の手順は、
自装置内における当該隣接ネットワークエリアJへの送信待ちパケット数A_Jを求める手順と、
当該隣接ネットワークエリアJ内の待ちパケット数B_Jを求める手順とを有し、
上記通信負荷状況情報として、上記送信待ちパケット数A_Jと待ちパケット数B_Jを取得し
上記第3の手順は、上記隣接ネットワークエリアJへの送信待ちパケット数A_Jと上記隣接ネットワークエリアJ内の待ちパケット数B_Jを用いて、次の転送先となる隣接ネットワークエリアを決定する手順を有することを特徴とする経路制御方法。
【請求項3】
請求項2に記載の経路制御方法であって、
上記第3の手順は、
上記送信待ちパケット数A_Jと上記待ちパケット数B_Jとを用いて下記の式(1)と式(2)から、隣接ネットワークエリアJの混雑指標K_Jを算出する手順と、
隣接ネットワークエリアJを経由して上記宛先ネットワークエリアまでに要するネットワークエリアの数であるエリアホップ数H_Jを取得する手順と、
取得したエリアホップ数H_Jと算出した混雑指標K_Jとを用いて下記の式(3)から評価値F_Jを算出する手順と、
算出した評価値F_Jが最大となる隣接ネットワークエリアを、次の転送先として決定する手順と
を有することを特徴とする経路制御方法。
式(1):K_J=1−(P/Vmax_2)
式(2):P=Vmax_2×A_J/((Ks_2×(1+B_J/Ka_2))/(1+x_2×B_J/(y_2×Ka_2))+(A_J×(2+B_J/(y_2×Ka_2)))/(1+x_2×B_J/(y_2×Ka_2)))
…ただし、x_2>0,y_2>0,Vmax_2は隣接ネットワークエリアJとの経路の最大通信速度,Ka_2は定数,Ks_2は定数。
式(3):F_J=(1−α)K_J+α(1/H_J)
…ただし、αは予め定めるパラメータで0<α<1。
【請求項4】
請求項2もしくは請求項3のいずれかに記載の経路制御方法であって、
上記隣接ネットワークエリアJ内の待ちパケット数B_Jを求める手順は、
上記隣接ネットワークエリアJ内の各通信装置mが定期的に計測する自通信装置内待ちパケット数b_j,mが予め定められた閾値を超えた場合に当該通信装置mから通知される自通信装置内待ちパケット数b_j,mを受信する手順と、
受信した自通信装置内待ちパケット数b_j,mを用いて、一定周期の測定区間毎に、下記の更新手順で、上記隣接ネットワークエリアJ内の待ちパケット数B_Jを更新する手順と
を有することを特徴とする経路制御方法。
更新手順:{更新後のB_J}←{更新前のB_J}×exp(−θ×({更新時の時間}−{前回の更新時間}))+{測定区間に通知された自通信装置内待ちパケット数b_j,mの平均}
…ただし、θは定数。
【請求項5】
請求項2もしくは請求項3のいずれかに記載の経路制御方法であって、
上記隣接ネットワークエリアJ内の待ちパケット数B_Jを求める手順は、
上記隣接ネットワークエリアJ内の各通信装置mが定期的に計測する自通信装置内待ちパケット数b_j,mが予め定められた閾値を超えた場合に当該通信装置mから通知される自通信装置内待ちパケット数b_j,mを受信する手順と、
受信した自通信装置内待ちパケット数b_j,mを用いて、一定周期の測定区間毎に、下記の更新手順で、上記隣接ネットワークエリアJ内の待ちパケット数B_Jを更新する手順と
を有することを特徴とする経路制御方法。
更新手順:{更新後のB_J}←{更新前のB_J}×exp(−θ×({更新時の時間}−{前回の更新時間}))+{測定区間に通知された自通信装置内待ちパケット数b_j,mの最大値}
…ただし、θは定数。
【請求項6】
請求項2もしくは請求項3のいずれかに記載の経路制御方法であって、
上記隣接ネットワークエリアJ内の待ちパケット数B_Jを求める手順は、
上記隣接ネットワークエリアJに隣接し、自装置が属するネットワークエリアが含まれないネットワークエリアI内に属しかつ上記隣接ネットワークエリアJと接続されているエリア間通信装置J,Iまでの通信に対して利用可能な帯域C_J,I(n)を、時間区間[(n-1)τ,nτ](τは周期)において推定する手順と、
上記時間区間[(n-1)τ,nτ]内に自装置から上記エリア間通信装置J,Iへ向かったパケットバイト数を上記周期τで除した値R_J,I(n)[bps]を求める手順と、
時点nτにおいて上記隣接ネットワークエリアJから上記エリア間通信装置J,Iヘ向かう通信に対する仮想キュー長B_J,I(n)を、下記の式(4)により算出する手順と、
算出した仮想キュー長B_J,I(n)から求められるΣB_J,Iによって上記隣接ネットワークエリアJ内の待ちパケット数B_Jを算出する手順と
を有することを特徴とする経路制御方法。
式(4):B_J,I(n)=max{B_J,I(n-1)+(R_J,I(n)−C_J,I(n))×τ,0}
【請求項7】
請求項6に記載の経路制御方法であって、
上記利用可能な帯域C_J,I(n)を推定する手順は、
自装置から上記エリア間通信装置J,Iの経路上に存在する各リンクの物理帯域の最小値を求め、求めた物理帯域を上記利用可能な帯域C_J,I(n)とすることを特徴とする経路制御方法。
【請求項8】
請求項6に記載の経路制御方法であって、
上記利用可能な帯域C_J,I(n)を推定する手順は、
自装置から上記エリア間通信装置J,Iの経路上に存在する各リンクでの物理帯域と使用帯域との差である空き帯域の最小値を求め、求めた空き帯域を上記利用可能な帯域C_J,I(n)とすることを特徴とする経路制御方法。
【請求項9】
請求項6に記載の経路制御方法であって、
上記利用可能な帯域C_J,I(n)を推定する手順は、
自装置から上記エリア間通信装置J,I間において往復伝播遅延時間RTT_J,I(n)とパケット損失率Q_J,I(n)を測定する手順と、
測定した往復伝播遅延時間RTTとパケット損失率Qから帯域を推定する関数f(RTT,Q)を用いて、下記の式(8)により上記利用可能な帯域C_J,I(n)を算出する手順とを有することを特徴とする経路制御方法。
式(8):C_J,I(n)=f(RTT_J,I(n),Q_J,I(n))
【請求項10】
請求項1から請求項9のいずれかに記載の経路制御方法であって、
隣接ネットワークエリアから他通信装置宛パケットを受信すると、自装置内の自装置と同じネットワークエリア内の隣接通信装置jへの送信待ちパケット数a_jと、当該隣接通信装置j内の送信待ちパケット数b_jを用いて、次の転送先となる隣接通信装置を決定する手順を有することを特徴とする経路制御方法。
【請求項11】
請求項10に記載の経路制御方法であって、
上記次の転送先となる隣接通信装置を決定する手順は、
下記の式(A)と式(B)から隣接通信装置jの混雑指標k_jを算出する手順と、
宛先通信装置が自装置と同じネットワークエリア内に属する場合は当該宛先通信装置までのホップ数h_jを求め、また、宛先通信装置が他ネットワークエリアに属する場合は転送すべき隣接ネットワークエリアとつながる自装置と同じネットワークエリア内のエリア間通信装置までのホップ数h_jを求める手順と、
上記混雑指標k_jと上記ホップ数h_jとを用いて下記の式(C)から評価値f_jを算出し、該評価値f_jを最大にする隣接通信装置を次の転送先として決定する手順とを有することを特徴とする経路制御方法。
式(A):k_j=1−(p/Vmax_1)
式(B):p=Vmax_1×a_j/((Ks_1×(1+b_j/Ka_1))/(1+x_1×b_j/(y_1×Ka_1))+(a_j×(1+b_j/(y_1×Ka_1)))/(1+x_1×b_j/(y_1×Ka_1)))
…ただし、x_1>0,y_1>0,Vmax_1は隣接通信装置との経路の最大通信速度,Ka_1は定数,Ks_1は定数。
式(C):f_j=(1−α)k_j+α(1/h_j)
…ただし、αは予め定めるパラメータで0<α<1。
【請求項12】
コンピュータに、請求項1から請求項11のいずれかに記載の経路制御方法における各手順を実行させるためのプログラム。
【請求項13】
それぞれIPパケットのルーティング機能を具備した複数の通信装置をまとめて構成されたネットワークエリア間を接続するエリア間通信装置であって、
自ネットワークエリア内の通信装置から受信したパケットの宛先アドレスをキーに、予め記憶装置に記憶した各アドレスと所属ネットワークエリアとの対応付け情報を検索して上記パケットの宛先となるネットワークエリアを特定する第1の手段と、
該第1の手段が特定した宛先ネットワークエリアと自ネットワークエリア間にある自ネットワークエリアに隣接したネットワークエリアの通信負荷状況情報を取得する第2の手段と、
該第2の手段が取得した通信負荷状況情報を参照して上記パケットの次の転送先として最適な隣接ネットワークエリアを決定する第3の手段と、
該第3の手段が決定した隣接ネットワークエリア内のエリア間通信装置に上記パケットを送出する第4の手段と
を有することを特徴とするエリア間通信装置。
【請求項14】
請求項13に記載のエリア間通信装置であって、
上記第2の手段は、請求項2に記載の経路制御方法における第2の手順を用いて、上記通信負荷状況情報としての上記隣接ネットワークエリアJへの送信待ちパケット数A_Jと当該隣接ネットワークエリアJ内の待ちパケット数B_Jとを求める手段を有し、
上記第3の手段は、請求項3に記載の経路制御方法における第3の手順を用いて、上記次の転送先となる隣接ネットワークエリアを決定する手段を有することを特徴とするエリア間通信装置。
【請求項15】
請求項14に記載のエリア間通信装置であって、
上記第2の手段は、
請求項4から請求項6のいずれかに記載の経路制御方法における各手順を用いて、上記隣接ネットワークエリアJ内の待ちパケット数B_Jを求める手段を有することを特徴とするエリア間通信装置。
【請求項16】
請求項14に記載のエリア間通信装置であって、
上記第2の手段は、
請求項6に記載の経路制御方法における各手順を用いて、上記隣接ネットワークエリアJ内の待ちパケット数B_Jを求める手段と、
請求項7から請求項9のいずれかに記載の経路制御方法における各手順を用いて、利用可能な帯域C_J,I(n)を推定する手段とを有することを特徴とするエリア間通信装置。
【請求項17】
請求項13から請求項16のいずれかに記載のエリア間通信装置であって、
請求項10もしくは請求項11のいずれかに記載の経路制御方法における手順を用いて、隣接ネットワークエリアから受信した他通信装置宛パケットの次の転送先となる隣接通信装置を決定する手段を有することを特徴とするエリア間通信装置。
【請求項18】
請求項13から請求項17のいずれかに記載のエリア間通信装置と、該エリア間通信装置に接続されネットワークエリア内におけるパケットの転送経路制御を請求項10もしくは請求項11のいずれかに記載の各手順を用いて行う通信装置とを具備したことを特徴とするネットワーク経路制御システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2008−22245(P2008−22245A)
【公開日】平成20年1月31日(2008.1.31)
【国際特許分類】
【出願番号】特願2006−191794(P2006−191794)
【出願日】平成18年7月12日(2006.7.12)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【出願人】(504145342)国立大学法人九州大学 (960)
【Fターム(参考)】