説明

経路最適化システム、プログラムおよび方法

【課題】同一ノードに至る複数の経路が存在する場合に、最適な経路を選択するためのシステム、プログラム及び方法を提供する。
【解決手段】始点ノードから第1ノードを経由して終点ノードへ至る第1経路と、始点ノードから第2ノードを経由して終点ノードへ至る第2経路とを含むマルチノードネットワークにおいて最適な経路を選択するシステムであって、リンクコストを記憶する記憶手段150と、始点ノードコスト、第1リンクコスト、第1ノードコスト、第2リンクコスト、及び終点ノードコストに基づいて算出される第1の経路コストと、始点ノードコスト、第3リンクコスト、第2ノードコスト、第4リンクコスト、及び終点ノードコストに基づいて算出される第2の経路コストとを比較し、コストが低い方の経路を選択することによって経路を最適化する経路計測最適化手段130とを備えることにある。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、同一ノードに至る複数の経路が存在する場合に、最適な経路を選択するためのシステム、プログラム及び方法に関する。
【背景技術】
【0002】
インターネットに代表されるオープンネットワークで通信経路を決定する場合、RIP(Routing Information Protocol)やOSPF(Open Shortest Path First)により経路が決定される。経路を動的に決定するには、OSPFが用いられることが多い。
【0003】
OSPFは、隣接するルータ間の回線速度(帯域幅)に基づいて、ルータ間の通信コストを算出し、目的のノードに至るまでの通信コストの合計が最小となるよう経路を決定する。計算には、ダイクストラ法や、A*アルゴリズムが使われる。
【0004】
このようにして決定される経路には、パケット遅延やパケット廃棄率などのネットワーク特性が反映されないため、VoIP(Voice over Internet Protocol)などの準リアルタイム通信には不適当な経路が割り当てられることがある。この現象を「2つの通信加入者間」の問題と位置づけて解決策を与えた技術が開示されている(例えば、特許文献1参照)。
【特許文献1】特開平9−121228号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、既に開示されている技術は、2つの通信加入者間の問題に限定されており、ある経路の通信に関する評価属性が動的に変化することが考慮されていない。例えば、ベストの通信品質を提供できるセッション数が50程度と見積もられる経路に、100の通信セッションが流入した場合、最適と評価された経路に負荷が集中することで、全セッションに於いて通信品質劣化が懸念される。特に、1つのノードが複数の経路に含まれていると、ノードの評価を行わないことが欠点になる。
【課題を解決するための手段】
【0006】
本発明の第1の特徴は、始点ノードから第1ノードを経由して終点ノードへ至る第1経路と、始点ノードから第2ノードを経由して終点ノードへ至る第2経路とを含むマルチノードネットワークにおいて最適な経路を選択するシステムであって、(1)始点ノードの始点ノードコスト、始点ノードと第1ノードとをつなぐ第1リンクの第1リンクコスト、第1ノードの第1ノードコスト、第1ノードと終点ノードとをつなぐ第2リンクの第2リンクコスト、及び終点ノードの終点ノードコスト、並びに始点ノードと第2ノードとをつなぐ第3リンクの第3リンクコスト、第2ノードの第2ノードコスト、及び第2ノードと終点ノードとをつなぐ第4リンクの第4リンクコスト、を記憶する記憶手段と、(2)始点ノードコスト、第1リンクコスト、第1ノードコスト、第2リンクコスト、及び終点ノードコストに基づいて算出される第1の経路コストと、始点ノードコスト、第3リンクコスト、第2ノードコスト、第4リンクコスト、及び終点ノードコストに基づいて算出される第2の経路コストとを比較し、コストが低い方の経路を選択することによって経路を最適化する経路計測最適化手段とを備えることにある。
【0007】
本発明の第2の特徴は、各ノードにおけるパケット遅延時間及びパケット廃棄率に基づいて各ノードのノードコストを計算することにある。
【0008】
本発明の第3の特徴は、各ノードのノードコストを再計算し、再計算によって得られた新たなノードコストに基づいて各経路コストを再計算し、再計算によって得られた新たな経路コストを比較して、経路変更の要否を判断することにある。
【発明の効果】
【0009】
本発明の第1の特徴によれば、経路(パス)コストを、リンクのみに附加するのではなく、ノードに附加することによって、ノードが最も効率的に稼働する経路を選択することができる。
【0010】
本発明の第2の特徴によれば、各ノードにおけるパケット遅延時間及びパケット廃棄率に基づいて算出されたノードコストに基づいて最適な経路を選択することができる。
【0011】
本発明の第3の特徴によれば、所定時間毎に又は所定イベントをトリガーとして、ノードコストを再計算することによって最適な経路を動的に選択することができる。
【発明を実施するための最良の形態】
【0012】
以下に図面に基づいて、本発明を実施するための最良の形態を説明する。なお、以下の説明は、単なる例示に過ぎず、本発明の技術的範囲は以下の説明に限定されるものではない。
【実施例】
【0013】
ネットワークを抽象化して扱うために「グラフ理論」が援用される。ここでも、グラフ理論で登場するノード,リンク,パスなどの用語を以下の意味で使用する。
【0014】
ノードとは、ルータ,ブリッジ,スイッチなどのネットワーク通信機器、さらには PCやサーバなどネットワークアドレスを持つネットワーク端末を含めることもある。
【0015】
リンクとは、ノード間を結ぶ配線を指す。1つのリンクは、少なくとも物理的な1本の配線に実体として対応付けることができる。ネットワークをモデル化する場合、リンクの両端でノードに接するポートの生死や、通信バッファの状態までをリンクに含める場合がある。
【0016】
リンクとノードで形成され、孤立点・枝分れ・ループを含まないグラフをパス(経路)と呼ぶ。パスには、始点となるノードと、終点となるノードがあり、始点から終点まで情報が流れる順路を示す。
【0017】
「グラフ理論」でパスを評価する場合には、リンクのコストを足し合わせ比較するが、ノードのコストは評価されない。ノードは、0次元の点と見なされ、距離などのコスト値も0(ゼロ)として取り扱われる。
【0018】
通常、ルータは、パケットのヘッダを読み取り、ルータ内に記憶されているルーティングテーブルを参照して、次のホップ先(次の転送先ルータ)を決定する。ルータが一定時間のうちに処理できるパケット量をルータの仕様から考慮し、経路決定の要因として計量モデルに組み入れる。
【0019】
なお、パケットを生成し送信するノードがパケットの通過経路を指定するソースルーティングを用いることもできる。ソースルーティングを利用するとパケットを生成し送信するノードが明示的に経路を指定することができる。途中のすべての経路を指定する「ストリクトソースルーティング」といくつかの経路を通過することを指定し、それ以外は途中のルータに任せる「ルーズソースルーティング」のいずれでも利用することができる。
【0020】
図1(a)にルータ及びリンクからなる経路の一例であって、各リンクの通信速度を示す。同図に示すように、各ルータ間の通信速度は以下のとおりとする。
【0021】
ルータR1−ルータR2間: 64Kbps
ルータR2−ルータR3間:1.5Mbps
ルータR1−ルータR4間: 64Kbps
ルータR2−ルータR4間:128Kbps
ルータR3−ルータR5間:128Kbps
ルータR4−ルータR5間: 64Kbps
ルータR3−ルータR6間: 64Kbps
そして、経路コストを、帯域の逆数に比例して付値する。1.5Mbps を コスト 1 とすると、
ルータR1−ルータR2間:1.5Mbps/ 64Kbps=23
ルータR1−ルータR4間:1.5Mbps/ 64Kbps=23
ルータR4−ルータR5間:1.5Mbps/ 64Kbps=23
ルータR3−ルータR6間:1.5Mbps/ 64Kbps=23
ルータR2−ルータR3間:1.5Mbps/1.5Mbps= 1
ルータR2−ルータR4間:1.5Mbps/128Kbps=12
ルータR3−ルータR5間:1.5Mbps/128Kbps=12
というコストになる。
【0022】
平均パケット長を1024Byteとすると、
64Kbps回線では8pps (Packet Per Second)
1.5Mbps回線では183pps
のパケットを1秒間に転送できることになる。
【0023】
ルータR2とルータR3の処理能力が200pps であったならば、ルータR2→ルータR3が飽和している時にはルータR2とルータR3の処理限界に達している可能性がある。
【0024】
従って、静的に経路を決める条件の下では、リンクのコストだけでは最適な経路を選べないことがある。
【0025】
表1に、各ルータの処理能力の一例を示す。
【表1】

【0026】
処理コスト係数を、ルータ処理能力の逆数に比例して付値する。経路コストは183ppsを基準コストと定義したので、これに近いルータR3の処理能力(200pps)を基準コスト(コスト 1)とする。183pps≠200ppsで、若干の違いはあるが、183ppsはパケットサイズを1024Byteと仮定しての数値であるから、許容範囲とみなせる。
【0027】
ルータR1、R5、R6:200pps/ 50pps=4
ルータR2、R3 :200pps/200pps=1
ルータR4 :200pps/100pps=2
というコスト係数になる。コスト係数のまま仮コストとしたコスト行列を表2に示す。
【0028】
表2から、リンクコストとノードコストを対比できる。
【表2】

【0029】
図1(b)に、各リンクコストと各ノードコストとを示す。
【0030】
<経路コスト計算>
リンクの経路コストを、ノードの処理コストと統合し、計量評価する。コスト計算には、リンクコスト行列にダイクストラ法を適用する方式が、一般に用いられる。本方式では、ノードコストまで考慮に入れて総コストを計算するために、ノードベクトルを附加した行列に拡張する。なお、ルータ処理コストは、ルータの入口と、出口とで、それぞれ発生するものとする。
【0031】
例えば、ルータR1→ルータR2→ルータR3→ルータR5の経路では、まずルータR1の出口のコストが「4」、ルータR1とルータR2との間のコストが「23」、ルータR2の入口のコストが「1」となる。同様に、ルータR2の出口のコストが「1」、ルータR2とルータR3との間のコストが「1」、ルータR3の入口のコストが「1」となる。同様に、ルータR3の出口のコストが「1」、ルータR3とルータR5との間のコストが「12」、ルータR5の入口のコストが「4」となる。
【0032】
つまり、
ルータR1→ルータR2:4 +23 + 1 = 28
ルータR2→ルータR3:1 + 1 + 1 = 3
ルータR3→ルータR5:1 +12 + 4 = 17
であるから、総コストは 28 + 3 + 17 = 48となる。
【0033】
同様に、ルータR1→ルータR2→ルータR4→ルータR5の経路では、
ルータR1→ルータR2:4 + 23 + 1 = 28
ルータR2→ルータR4:1 + 12 + 2 = 15
ルータR4→ルータR5:2 + 23 + 4 = 29
であるから、総コストは 28 + 15 + 29 = 72となる。
【0034】
同様に、ルータR1→ルータR4→ルータR5の経路では、
ルータR1→ルータR4:4 + 23 +2 = 29
ルータR4→ルータR5:2 + 23 +4 = 29
であるから、総コストは29 + 29 = 58となる。
【0035】
<動的評価>
[ルータR2→ルータR3]リンクを経由する経路と、そうでない経路との差は、最小で 58−48 = 10、最大で72−48 = 24である。従って、ルータの処理負荷に応じて、ルータR2とルータR3の処理コストが10倍程度変化すれば、ボトルネックとなる懸念がある経路が動的に切り替わる。
【0036】
処理コストが10倍変化することは、ルータの平常時の負荷を、最大負荷の1/10と見積もることに相当する。最大負荷をベースにした試算では、200ppsを標準コストとしていたが、その1/10の20ppsを標準コストとすることで、各ルータのコストは以下のような変数を含む計算式で算出される。
【0037】
ルータR1、R5、R6:
(200pps/ 50pps)×(Xpps/ 20pps)
ただし Xは、R1,R5,R6の処理負荷で 0≦X≦50
ルータR2、R3 :
(200pps/200pps)×(Ypps/ 20pps)
ただし Yは、R2,R3の処理負荷で 0≦Y≦200
ルータR4 :
(200pps/100pps)×(Zpps/ 20pps)
ただし Zは、R4の処理負荷で 0≦Z≦100
というコスト式になる。
【0038】
平常時のコストは、上記の式にそれぞれX=Y=Z=20を代入して
ルータR1、R5、R6:200/ 50=4
ルータR2、R3 :200/200=1
ルータR4 :200/100=2
を得る。
【0039】
すべてのルータの負荷が、仮に最大となったとすれば
ルータR1、R5、R6:(200/ 50)×( 50/20)=10
ルータR2、R3 :(200/200)×(200/20)=10
ルータR4 :(200/100)×(100/20)=10
といずれも等しくなる。
【0040】
本実施例では、各ノードのコストは、各ルータのパケット処理負荷を、基準となるルータのパケット処理性能(pps)で除して求めている。このようにして求めたノードコストは、リンクコストとは異なる比例尺度となるため、コスト係数によってノードコストとリンクコストの整合性を図っている。本実施例では、ノードコストの方に係数を乗じて調整した。
【0041】
ルータの処理負荷を調べるには、直接的な方法と、間接的な方法とがある。直接的な方法とは、ルータ内部に処理負荷の変化が記録される場合に利用できる、ルータにネットワーク上の他の機器から当該ルータに「処理負荷」の問い合わせを行う方法である。
【0042】
間接的な方法とは、試験パケットの転送依頼を送って、パケットの転送に要した遅延時間や、パケット損失率などから、負荷を推定する方法である。高性能ルータがあれば、そのルータを起点にして負荷試験を行うこともできる。
【0043】
パケット遅延はCPU負荷と因果関係があるので、直接的な方法でCPU負荷を監視しノードコストの評価に反映させる。パケット遅延がある閾値を超えるとタイムアウトを引き起こし、パケットは廃棄される。パケット廃棄は、パケット再送(リトライ)の原因となる。パケット廃棄率は、一般のルータでは、SNMP(Simple Network Management Protocol)によりMIB(Management Information Base)エントリーを監視することによって評価することが可能である。
【0044】
<通信コスト評価>
通信可能な経路候補を準リアルタイムに再計算する。リンクコストの再計算は任意とする。リンクコストの再計算は例えばOSPFに基づいて行うことができる。ノードコストは、ノードにおけるパケット遅延時間,パケット廃棄率を用いて評価する。
【0045】
直接的方法では、パケット遅延時間はCPU利用率から推定し、パケット廃棄率はMIBより取得する。
【0046】
間接的方法では、パケット遅延時間は試験パケットで計測する。パケット廃棄率は、Socketライブラリを使ったカスタムアプリケーションを用いて、パケットヘッダに記されたパケット連番を参照し、番号の抜けをチェックすることで計算できる。例えば、パケット連番が 1から10000までの通信セッションで、10, 20, 30 の番号のパケットが受信側に届かなければ、廃棄率は3/10000 = 0.03(%)である。
【0047】
図2に、本実施の形態にかかる経路最適化システムにおけるルータのブロック構成図の一例を示す。同図に示すように、ルータ100は、計測データ交換手段110と、試験データ生成手段120と、経路計測最適化手段130と、経路評価手段140と、計測データ記憶手段150とを備える。
【0048】
同図に示すように、計測データ交換手段110は計測データ記憶手段150に、試験データ生成手段120は経路計測最適化手段130に、経路計測最適化手段130は計測データ記憶手段150に、計測データ記憶手段150は経路評価手段140にそれぞれ接続されている。
【0049】
クライアントからプロトコル、通信相手を指定した経路要求があった場合における各手段の機能は以下のとおりである。
【0050】
計測データ交換手段110は、隣接するルータと、ネットワークの利用状態を示す帯域利用、パケット遅延時間、パケット廃棄率などの計測情報を交換する。
【0051】
試験データ生成手段120は、最適経路に含まれていない利用率の低いリンクの最新状態を評価すべく、プロトコルに応じた試験データを生成する。試験データは、計測の起点となるルータ(例えば、ルータA)においては、パケット発送時におけるルータAの内部時計の時刻となる。起点となるルータAからパケット(例えば、パケットA)を受け取り、別のパケット(例えば、パケットB)を送り返すルータ(例えば、ルータB)では、
・パケットA受信時におけるルータBの内部時計の時刻に加えて、
・{(パケットA受信時にルータBの内部時計が示す時刻)−(パケットA内のタイムスタンプの時刻)}により算出される値
となる。詳細は後述する。
【0052】
経路計測最適化手段130は、試験データを用いて利用率の低いリンクを再評価し、再評価結果に基づいて例えばダイクストラ法等により新たな最適経路を求める。ソースルーティングによってパスを指定する場合は、クライアント10に最適経路を回答する。
【0053】
経路評価手段140は、帯域幅,パケット遅延時間,パケット廃棄率などの経路特性に合ったトラフィック配分になっているかを評価し、必要に応じ経路を追加する。例えば、最適な経路と、それ以外の経路とのコスト差が小さい場合は、最適な経路だけを使っていては転送効率が悪いので、そのような場合には、2番目以下の経路も推薦経路とすべく経路を追加する。
【0054】
図3は、本実施の形態にかかる経路最適化処理の流れを示すフローチャートである。同図に示すように、経路最適化処理においては、各リンクコストを取得し(ステップS110)、各ノードコストを算出し(ステップS120)、リンクコスト及びノードコストに基づいて経路(パス)コストを算出する(ステップS130)。そして、同一目的地へ到達する複数の経路の各コストを比較し(ステップS140)、所定条件を満たす場合に現在利用している経路(現行経路)よりコストが低い経路(候補経路)を新たな現行経路とする(ステップS150)。
【0055】
図4は、ノードコスト算出処理の流れを示すフローチャートである。同図に示すように、各ノードのパケット遅延時間、パケット廃棄率を取得し(ステップS121)、取得したパケット遅延時間、パケット廃棄率及び所定の計算式に基づいて各ノードの遅延時間コスト、廃棄率コストを算出し(ステップS122)、算出された遅延時間コスト、廃棄率コスト及び記憶されている旧コストを合算して各ノードの新コストを算出する(ステップS123)。
【0056】
図5は、経路変更処理の流れを示すフローチャートである。同図に示すように、現在利用している経路(現行経路)とそれよりコストが低い経路(候補経路)とを比較し(ステップS151)、候補経路コストと現行経路コストとの関係は経路変更条件を満たすかを調べ(ステップS152)、経路変更条件が満たされる場合は候補経路を新たな現行経路とする(ステップS153)。
【0057】
<ノードの計測>
リンクコストの高さ(帯域が狭いなどの理由)から利用経路から外れたリンクの両端に繋がるノードにSNMPパケットを送って、ノードコストを計測する。
【0058】
パケット遅延時間は、前記の如く、直接的方法でも間接的方法でも求めることができる。直接的方法又は間接的方法いずれの方法で求めても実用上問題ない精度が得られる。また、パケット廃棄率は、MIBから取得したり、CPU使用率から推定したり、TCPアプリケーションによって計測したりすることができる。さらに、処理能力は、ルータ仕様や、ルータ機器に負荷試験を行った結果得られたデータから決定する。
【0059】
図6は、パケット遅延時間、パケット廃棄率に基づいてノードコストを計測する例を説明するための図である。同図に示す例では、
遅延時間により加算されるノードコスト={(遅延時間 − 100msec)/100msec } × 100
とし、
パケット廃棄率により加算されるノードコスト=(廃棄率 − 0.1 ) × 100
とする。
【0060】
例えば、ルータR1の遅延時間が50msec、パケット廃棄率が0.1%の場合、
遅延時間により加算されるノードコスト
={(50msec−100msec)/100msec }×100
=−50
パケット廃棄率により加算されるノードコスト
=(0.1 − 0.1 ) × 100
=0
であるから、新たなノードコストは、旧コスト「1」と遅延時間コスト「−50」と廃棄率コスト「0」とを加算して、「−49」となる。
【0061】
同様に、ルータR2の旧コストが4、遅延時間が120msec、パケット廃棄率が0.4%の場合、
遅延時間により加算されるノードコスト=20
パケット廃棄率により加算されるノードコスト=30
であるから、新たなノードコストは、「54」となる。
【0062】
同様に、ルータR3の旧コストが1、遅延時間が90msec、パケット廃棄率が0.3%の場合、
遅延時間により加算されるノードコスト=−10
パケット廃棄率により加算されるノードコスト=20
であるから、新たなノードコストは、「11」となる。
【0063】
同様に、ルータR4の旧コストが2、遅延時間が30msec、パケット廃棄率が0.1%の場合、
遅延時間により加算されるノードコスト=−70
パケット廃棄率により加算されるノードコスト=0
であるから、新たなノードコストは、「−68」となる。
【0064】
<SNMPによるCPU使用率計測(直接的方法)>
パケット遅延時間を計測する方法(直接的方法)の一例について説明する。
【0065】
図7は、ルータのプライベートMIBにアクセスしてCPU使用率を計測する例を説明するための図である。同図に示すように、測定対象のOID(Object ID)701をダイレクトに指定する。プライベートMIBとは、全てのネットワーク機器が共通に持っているMIBではなく、装置固有のMIBを意味する。
【0066】
例えば、Cisco(登録商標)社のプライベートMIBを、NetVital(登録商標)というソフトウェアで指定するときは、最後に.0を付加して指定(指定例:1.3.6.1.4.1.9.2.1.57.0)する。
【0067】
例えば、ラスト5秒のCPU使用率は、1.3.6.1.4.1.9.2.1.56によって、ラスト1分のCPU使用率は、1.3.6.1.4.1.9.2.1.57によって指定することができる。そして、使用率35%、50%などの値を得ることができる。
【0068】
CPU使用率からパケット遅延時間を推定する方法について説明する。例えば、予めルータ負荷実験によりCPU使用率と遅延時間との相関を表す式を作成するか、ルータベンダーから取得した係数によりCPU使用率から遅延時間に変換する式を作成し、作成された式を用いてパケット遅延時間を推定する。
【0069】
<SNMPによるMIBエントリー計測(直接的方法)>
パケット廃棄率を計測する方法(直接的方法)の一例について説明する。OIDとそれに対応するMIBエントリーの一例を示す。
【0070】
[interfaces.ifTable.ifEntry] group
1.3.6.1.2.1.2.2.1.1 : ifIndex
1.3.6.1.2.1.2.2.1.2 : ifDescr
1.3.6.1.2.1.2.2.1.3 : ifType
1.3.6.1.2.1.2.2.1.7 : ifAdminStatus
1.3.6.1.2.1.2.2.1.8 : ifOperStatus
1.3.6.1.2.1.2.2.1.10 : ifInOctets
1.3.6.1.2.1.2.2.1.16 : ifOutOctets
1.3.6.1.2.1.2.2.1.11 : ifInUcastPkts
1.3.6.1.2.1.2.2.1.17 : ifOutUcastPkts
1.3.6.1.2.1.2.2.1.13 : ifInDiscards
1.3.6.1.2.1.2.2.1.19 : ifOutDiscards
1.3.6.1.2.1.2.2.1.14 : ifInErrors
1.3.6.1.2.1.2.2.1.20 : IfOutErrors

ifAdminStatusはポート管理状態、ifInUcastPktsは受信パケット数、ifOutUcastPktsは送信パケット数、ifInDiscardsは廃棄パケット数、ifInErrorsはエラーパケット数を意味する。下記式よりパケット廃棄率を求めることができる。
【0071】
パケット廃棄率=廃棄パケット数/受信パケット数
<遅延時間の計測(間接的方法)>
パケット遅延時間を計測する方法(間接的方法)の一例について説明する。ルータ間の遅延時間は、実際の転送時間から、標準の転送時間を差し引いた値となる。
【0072】
図8は、パケット遅延時間計測方法(間接的方法)を説明するための図である。同図に示すように、ルータAとルータBとの間に直接リンクが存在する場合を考える。なお、ルータAとルータBとの間に他のルータを挟む場合も、同様に遅延時間を評価できる。ルータAにコンピュータAが接続されている。ルータAの内部時計は、ルータBの内部時計より2秒進んでいる。つまり、ルータAの内部時計が12:00:02の時、ルータBの内部時計は12:00:00である。
【0073】
コンピュータAが計測を要求するLSA(Link State Advertisement)パケットP1を生成する。パケットP1内のタイムスタンプは12:00:02とする。そして、パケットP1が発信されてから5秒後に、ルータBがパケットP1を受信する。その時、ルータBの内部時計は12:00:05とする。パケットP1内のタイムスタンプは12:00:02であるため、ルータBの内部時計を基準とすると転送時間(転送に要した時間)は3秒と計測されてしまう。そして、ルータBは、受信時刻が12:00:05で、転送時間の計測値が3秒であることを示すパケットP2を生成し、送信する。
【0074】
ルータAはパケットP2を受信する。その時、ルータAの内部時計は12:00:14とする。パケットP2内のタイムスタンプは12:00:05であるため、ルータAの内部時計を基準として転送時間を計ると転送時間は9秒となってしまう。
【0075】
よって、コンピュータAは、
・往路に3秒
・復路に9秒
と転送時間を評価してしまう。
【0076】
しかし、全二重通信でなければ通信帯域を共有するので、往路と復路の転送時間はほぼ等しくなる。すなわち平均転送時間を12/2 = 6(秒)と評価することができる。そして、標準転送時間が5(秒)であれば、遅延時間は1(秒)と評価することができる。
【0077】
<パケット廃棄率の計測(間接的方法)>
パケット廃棄率を計測する方法(間接的方法)の一例について説明する。TCP(Transmission Control Protocol)通信で到着したパケットのシーケンス番号を調べ、番号の跳躍があれば、パケットが廃棄されたことがわかる。なお、廃棄の原因は、遅延だけでなく、ノイズなどによるエラーの場合もある。
【0078】
例えば、TCP通信ライブラリに、シーケンス番号を調べるルーチンを挿入し、通信の両端ノードで計測することにより、特定セッションのパケット廃棄率を調べることができる。そして、再計算するルート上の全てのノードを網羅するように選択した複数ルートを計測し、
{1−(ルートの廃棄率)}={1−(ルート上に存在する各ノードにおける廃棄率)}の積
という関係が成立するから、ルート上のノード数と等しい数の連立一次方程式を作成し、同方程式を解くことによって各ノードのパケット廃棄率を求めることができる。具体的には、両辺の対数を取って、積の式から、和の式へ変換する。そして、特定のセッションのパケット廃棄率から、全体のセッションの廃棄率を推定する。
【0079】
なお、TCP通信ではなく、ICMP通信を使う ping コマンドの結果から、パケット廃棄率を推定する方法を用いても良い。ただし、TCPプロトコルを使う一般セッションより高い優先度で処理される可能性あるため、TCPプロトコルを使う一般セッションよりもパケット廃棄率が低く推定される可能性がある。
【0080】
図9(a)は各ノードのパケット廃棄率の一例を示す図である。同図に示すように、ルータR1の廃棄率は1%、ルータR2の廃棄率は3%、ルータR3の廃棄率は4%、ルータR4の廃棄率は2%、ルータR5の廃棄率は1%であるとする。
【0081】
この場合、R1 →R2 →R3 →R5 という経路の廃棄率の計測結果は
1 −(1.00 − 0.01)×(1.00 − 0.03)× (1.00 − 0.04)×(1.00 − 0.01)
= 1 − 0.99 × 0.97 × 0.96 × 0.99 = 1 − 0.913 = 0.09
すなわち 9%となる。なお、図9(a)の例では、廃棄率を誇張するため、実際は0.1% 〜 0.4%程度の値を、1%〜4%と一桁上げている。
【0082】
<経路コスト再計算>
各ノードの処理コストを更新し、経路コストを再計算する場合の一例を説明する。表3及び図9(b)に、III-1で求めた値で各ノードの処理コストを更新した結果を示す。
【表3】

【0083】
II-4 に掲げた3経路のコストを再評価してみる。
【0084】
ルータR1→ルータR2→ルータR3→ルータR5の経路では、
ルータR1→ルータR2:−49+23 +54 = 28
ルータR2→ルータR3: 54+ 1 +11 = 66
ルータR3→ルータR5: 11+12 + 4 = 27
であるから、経路コストは 28 + 66 + 27 = 121となる。
【0085】
ルータR1→ルータR2→ルータR4→ルータR5の経路では、
ルータR1→ルータR2:−49 + 23 + 54 = 28
ルータR2→ルータR4: 54 + 12−68 =−2
ルータR4→ルータR5:−68 + 23 + 4 =−41
であるから、経路コストは 28−2−41 =−15となる。
【0086】
ルータR1→ルータR4→ルータR5の経路では、
ルータR1→ルータR4:−49 + 23−68 =−94
ルータR4→ルータR5:−68 + 23 + 4 =−41
であるから、経路コストは−94−41 =−135となる。
【0087】
再計算の結果 ルータR2→ルータR3を通過する経路コストが、他の経路コストを上回る結果となった。ルータの稼働レベルが変化した結果であり、負荷の高いルータR2を通過しない経路が優先される。
【0088】
上記の如く、本実施例によれば、動的に変化するノードのコストを含めてリンクのコストを評価した上で、最適なルートを選択することが可能となる。
【図面の簡単な説明】
【0089】
【図1】(a)はノード及びリンクからなる経路の一例であって、各リンクの通信速度を示し、(b)は各リンクコストと各ノードコストとを示す図である。
【図2】実施の形態にかかる経路最適化システムにおけるルータのブロック構成図の一例である。
【図3】実施の形態にかかる経路最適化処理の流れを示すフローチャートである。
【図4】実施の形態にかかるノードコスト算出処理の流れを示すフローチャートである。
【図5】実施の形態にかかる経路変更処理の流れを示すフローチャートである。
【図6】パケット遅延時間、パケット廃棄率に基づいてノードコストを計測する例を説明するための図である。
【図7】ルータのプライベートMIBにアクセスしてCPU使用率を計測する例を説明するための図である。
【図8】パケット遅延時間計測方法(間接的方法)を説明するための図である。
【図9】(a)は各ノードの廃棄率を示し、(b)は更新後の各リンクコストと各ノードコストとを示す図である。
【符号の説明】
【0090】
100…ルータ
110…計測データ交換手段
120…試験データ生成手段
130…経路計測最適化手段
140…経路評価手段
150…計測データ記憶手段

【特許請求の範囲】
【請求項1】
始点ノードから第1ノードを経由して終点ノードへ至る第1経路と、前記始点ノードから第2ノードを経由して前記終点ノードへ至る第2経路とを含むマルチノードネットワークにおいて最適な経路を選択するシステムであって、
前記始点ノードの始点ノードコスト、前記始点ノードと前記第1ノードとをつなぐ第1リンクの第1リンクコスト、前記第1ノードの第1ノードコスト、前記第1ノードと前記終点ノードとをつなぐ第2リンクの第2リンクコスト、及び前記終点ノードの終点ノードコスト、並びに
前記始点ノードと前記第2ノードとをつなぐ第3リンクの第3リンクコスト、前記第2ノードの第2ノードコスト、及び前記第2ノードと前記終点ノードとをつなぐ第4リンクの第4リンクコスト、を記憶する記憶手段と、
前記始点ノードコスト、前記第1リンクコスト、前記第1ノードコスト、前記第2リンクコスト、及び前記終点ノードコストに基づいて算出される第1の経路コストと、前記始点ノードコスト、前記第3リンクコスト、前記第2ノードコスト、前記第4リンクコスト、及び前記終点ノードコストに基づいて算出される第2の経路コストとを比較し、コストが低い方の経路を選択することによって経路を最適化する経路計測最適化手段と
を備えることを特徴とする経路最適化システム。
【請求項2】
各ノードにおけるパケット遅延時間及びパケット廃棄率に基づいて各ノードのノードコストを計算する請求項1に記載の経路最適化システム。
【請求項3】
各ノードのノードコストを再計算し、再計算によって得られた新たなノードコストに基づいて各経路コストを再計算し、再計算によって得られた新たな経路コストを比較して、経路変更の要否を判断する請求項1又は2に記載の経路最適化システム。
【請求項4】
始点ノードから第1ノードを経由して終点ノードへ至る第1経路と、前記始点ノードから第2ノードを経由して前記終点ノードへ至る第2経路とを含むマルチノードネットワークにおいて最適な経路を選択するプログラムであって、コンピュータを
前記始点ノードの始点ノードコスト、前記始点ノードと前記第1ノードとをつなぐ第1リンクの第1リンクコスト、前記第1ノードの第1ノードコスト、前記第1ノードと前記終点ノードとをつなぐ第2リンクの第2リンクコスト、及び前記終点ノードの終点ノードコスト、並びに
前記始点ノードと前記第2ノードとをつなぐ第3リンクの第3リンクコスト、前記第2ノードの第2ノードコスト、及び前記第2ノードと前記終点ノードとをつなぐ第4リンクの第4リンクコスト、を記憶する記憶手段、
前記始点ノードコスト、前記第1リンクコスト、前記第1ノードコスト、前記第2リンクコスト、及び前記終点ノードコストに基づいて算出される第1の経路コストと、前記始点ノードコスト、前記第3リンクコスト、前記第2ノードコスト、前記第4リンクコスト、及び前記終点ノードコストに基づいて算出される第2の経路コストとを比較し、低コストの経路を選択することによって経路を最適化する経路計測最適化手段
として機能させることを特徴とする経路最適化プログラム。
【請求項5】
始点ノードから第1ノードを経由して終点ノードへ至る第1経路と、前記始点ノードから第2ノードを経由して前記終点ノードへ至る第2経路とを含むマルチノードネットワークにおいて最適な経路を選択する方法であって、
記憶手段が、前記始点ノードの始点ノードコスト、前記始点ノードと前記第1ノードとをつなぐ第1リンクの第1リンクコスト、前記第1ノードの第1ノードコスト、前記第1ノードと前記終点ノードとをつなぐ第2リンクの第2リンクコスト、及び前記終点ノードの終点ノードコスト、並びに
前記始点ノードと前記第2ノードとをつなぐ第3リンクの第3リンクコスト、前記第2ノードの第2ノードコスト、及び前記第2ノードと前記終点ノードとをつなぐ第4リンクの第4リンクコストを記憶するステップと、
経路計測最適化手段が、前記始点ノードコスト、前記第1リンクコスト、前記第1ノードコスト、前記第2リンクコスト、及び前記終点ノードコストに基づいて算出される第1の経路コストと、前記始点ノードコスト、前記第3リンクコスト、前記第2ノードコスト、前記第4リンクコスト、及び前記終点ノードコストに基づいて算出される第2の経路コストとを比較し、低コストの経路を選択することによって経路を最適化するステップと
を含むことを特徴とする経路最適化方法。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate