JP5087062B2 - 経路計算装置、経路計算方法、および、経路計算プログラム - Google Patents

経路計算装置、経路計算方法、および、経路計算プログラム Download PDF

Info

Publication number
JP5087062B2
JP5087062B2 JP2009258484A JP2009258484A JP5087062B2 JP 5087062 B2 JP5087062 B2 JP 5087062B2 JP 2009258484 A JP2009258484 A JP 2009258484A JP 2009258484 A JP2009258484 A JP 2009258484A JP 5087062 B2 JP5087062 B2 JP 5087062B2
Authority
JP
Japan
Prior art keywords
node
address
route calculation
information
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009258484A
Other languages
English (en)
Other versions
JP2011103613A (ja
Inventor
幸司 杉園
裕史 山崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2009258484A priority Critical patent/JP5087062B2/ja
Publication of JP2011103613A publication Critical patent/JP2011103613A/ja
Application granted granted Critical
Publication of JP5087062B2 publication Critical patent/JP5087062B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、経路計算装置、経路計算方法、および、経路計算プログラムに関する。
ルータなどが実行するデータ転送処理において、パケットの宛先に向かって正しい転送先を選択するために、ルーティングテーブルが参照される。ルーティングテーブルは、ノードをリンクで接続した集合であるネットワークトポロジの情報から、ルータごとに計算される。ネットワークトポロジは、時間の経過とともに変動する情報であるので、一度計算すればよいものではなく、ネットワークトポロジの更新を契機に、何度も再計算される。よって、経路計算処理は、高性能化(処理の高速化、使用メモリの省メモリ化)が求められる処理である。
ネットワークトポロジを構成する各ノードには、IPアドレスなどのノードを特定するためのノードアドレスが割り当てられている。そして、経路計算処理において各ノードを参照するための検索キーとして、このノードアドレスが使用される。
ノードアドレスの取りうる値が非常に広範囲であるので、ノードアドレスを管理するデータ構造として、非特許文献1などに記載されている平衡二分木を利用した方法などが、利用される。平衡二分木の各ノードにはノードアドレスが割り当てられているので、平衡二分木を辿ることによって、検索キーの値から検索対象を絞り込み、絞り込んだ検索対象の中から検索キーと合致するキーを持つ情報を探し出すことで情報を検索する。
microsoft、"An Extensive Examination of Data Structures Using C# 2.0"、[online]、[平成21年11月4日検索]、インターネット<URL:http://msdn.microsoft.com/en-us/library/ms379573%28VS.80%29.aspx>
平衡二分木などのデータ構造を用いるときには、検索キーの値から検索対象を求める処理が、1回の検索処理では収まらないので、検索処理の計算コストが大きくなってしまう。この計算コストは、そのままノード検索を呼び出す経路計算処理のコストへと影響するため、経路計算処理の計算量の増大を招いてしまう。
一方、検索キーから1回の検索で情報を検索する方法として、一次元配列を用いることにより、検索キーの値から検索対象を求める処理を、1回の検索処理(配列の添え字を入力すると、その添え字に対応する配列要素の値を出力する)に抑えることができる。しかし、検索キーにノードアドレスを使用する場合、検索キーとなりうる値が非常に広範囲の値になるため、確保すべきメモリ領域が膨大なものとなるという問題が生じる。つまり、計算コストの削減への代償として、使用メモリ量が増大してしまう。
よって、経路計算処理におけるトポロジのノード検索処理は、計算コストを削減するとともに、使用メモリ量も削減する必要がある。以上説明した従来の技術では、計算コスト削減と、使用メモリ量削減とをバランスよく行う手法は、提案されていない。
そこで、本発明は、前記した問題を解決し、経路計算処理におけるトポロジのノードアクセス処理において、計算コスト削減と、使用メモリ量削減とをバランスよく実現することを、主な目的とする。
前記課題を解決するために、本発明は、ノードアドレスで識別されるノードがリンクで接続されるトポロジ情報から、ノードごとに経路計算を行う経路計算装置であって、前記経路計算装置が、アドレスID索引データと、IDアドレス索引データとを記憶手段に記憶し、ノードID処理部と、アドレスID変換部と、経路計算部と、IDアドレス変換部とを有し、前記ノードID処理部が、前記トポロジ情報のノードアドレスごとに、ノードの識別情報としてのノードIDをノードアドレスと1:1対応するように発行し、その発行した結果を、ノードIDからノードアドレスを検索するための前記IDアドレス索引データと、ノードアドレスからノードIDを検索するための前記アドレスID索引データとにそれぞれ格納し、前記アドレスID変換部が、前記トポロジ情報のノードごとに、そのノードに関する経路計算に使用される情報のうちのノードアドレスを、前記アドレスID索引データを参照して前記ノードID処理部が発行したノードIDへと変換し、前記経路計算部が、前記アドレスID変換部が変換した前記トポロジ情報をもとに、変換したノードIDをノードの識別情報として前記トポロジ情報の経路を計算し、前記IDアドレス変換部が、前記経路計算部の計算結果を読み取り、その計算結果に含まれる各ノードIDについて、前記IDアドレス索引データを参照してノードアドレスへと変換することで、ルーティングテーブルを作成することを特徴とする。
さらに、本発明は、前記経路計算装置に、前記各処理を実行させることを特徴とする経路計算方法である。
さらに、本発明は、前記経路計算装置に、前記各処理を実行させるための経路計算プログラムである。
これにより、経路計算時にノード情報を検索する処理がノードアドレスからでなくノードIDでできるようになり、ノード情報の検索時間が短縮するとともに、検索空間が狭いノードIDを用いることで、省メモリ化が実現できる。
本発明は、前記経路計算装置が、さらに、ノード情報処理部を有し、前記ノード情報処理部が、前記ノードID処理部が既に発行したノードIDについて、その発行後に前記トポロジ情報の変更が通知されたときには、発行されたノードIDのうちの前記トポロジ情報の変更差分に該当するノードIDを差分更新することを特徴とする。
これにより、トポロジ変更のたびに全ノードアドレスに対しノードIDを割り当てる処理を省くことができ、ノードIDの割り当て時間を短縮することが可能になる。
本発明は、前記ノードID処理部が、ノードIDを発行するときに、そのノードIDと、そのノードに関する経路計算に使用される情報の格納先となるメモリアドレスとを対応づけて前記記憶手段に記憶し、前記経路計算部が、前記ノードID処理部が対応づけたデータを参照して、ノードIDから、そのノードに関する経路計算に使用される情報を取得することを特徴とする。
これにより、ノードIDをもとにノード情報のメモリアドレスを特定できるため、ノード情報を検索する処理時間を短縮することが可能となる。
本発明は、前記経路計算装置が、ノードIDを引数とする所定関数の出力値であるメモリアドレスに、ノードに関する経路計算に使用される情報をノードごとに前記記憶手段に記憶することを特徴とする。
これにより、ノードIDをもとにノード情報のメモリアドレスを計算できるため、ノード情報を検索する処理時間を短縮することが可能となる。
本発明によれば、経路計算処理におけるトポロジのノードアクセス処理において、計算コスト削減と、使用メモリ量削減とをバランスよく実現することができる。
本発明の一実施形態に関する通信システムを示す構成図である。 本発明の一実施形態に関する経路計算装置による経路計算対象であるトポロジ情報を示す説明図である。 本発明の一実施形態に関する通信システムの経路計算装置を示す構成図である。 本発明の一実施形態に関するヒープを用いるID発行管理データを示す説明図である。 本発明の一実施形態に関するアドレスID索引データを示す説明図である。 本発明の一実施形態に関する経路計算部による経路の計算結果の一例を示す説明図である。
以下、本発明の一実施形態を、図面を参照して詳細に説明する。
図1は、通信システムを示す構成図である。
通信システムは、経路計算装置1と、データ転送装置3とがネットワークで接続されて構成される。1台の経路計算装置1は、1台以上の(図1では3台の)データ転送装置3のルーティングテーブル32を計算して、各データ転送装置3に配布する。
なお、通信システムの各装置(経路計算装置1、データ転送装置3)は、それぞれCPUと記憶手段(メモリなど)とを備えるコンピュータとして構成される。ここで、経路計算装置1とデータ転送装置3とは、同一筐体として構成してもよいし、別々の筐体として構成してもよい。
経路計算装置1のインタフェース19は、経路計算装置1内の各処理部と、経路計算装置1とは別の外部装置(データ転送装置3など)との間でデータの入出力を行う。
データ転送装置3のインタフェース39は、データ転送装置3内の各処理部と、データ転送装置3とは別の外部装置(経路計算装置1など)との間でデータの入出力を行う。
各データ転送装置3は、経路管理部31と、ルーティングテーブル32と、データ転送部33とを備える通信装置(ルータ、スイッチなど)として構成される。
経路管理部31は、経路計算装置1から受信した自装置の経路情報を受け取り、ルーティングテーブル32として記憶手段に記憶する。
ルーティングテーブル32は、データ転送部33のデータ転送処理時に参照され、到着したパケットの宛先に到達するためのネクストホップの情報を含む(詳細は、表7で後記する)。
データ転送部33は、ルーティングテーブル32を参照して、受信したパケットを転送する。
図2は、経路計算装置1による経路計算対象であるトポロジ情報9(図3参照)を示す説明図である。
図2(a)に示すように、トポロジ情報9は、楕円で示す各ノードと、各ノード間を接続するリンクとで構成されるグラフである。
各ノード内には、「192.168.1.0」のようなノードアドレスを表記する。なお、1つのノードは、1つ以上のネットワークデバイスに対応する。ネットワークデバイスとは、経路の分岐点となりうるデータ転送装置3という1台の装置や、データ転送装置3内の1つのインタフェース39(図1参照、IPアドレスの割り当て対象)や、データ転送装置3間を接続する1つの下位レイヤネットワーク(ネットワークケーブルなど)として構成される。つまり、トポロジ情報9におけるノードとは、経路計算アルゴリズムにおける経路が分岐する1つの構成単位に対応する。
各リンクには、そのリンクをデータ通信で利用するときのコストを併記する。このコストは、ノード間の接続関係や経路への選ばれやすさを示す指標であり、コストの数値が高いほど経路として選ばれにくいように、経路計算される。
図2(b)は、図2(a)のトポロジ情報9を構成するノードごとのノード情報を、表形式で示す。本実施形態では、ノードごとのそのノードに関する情報を総称して、「ノード情報」とする。
なお、ノード情報は、ノードごとの識別情報としてのノードアドレスと、そのノードから1回のリンクで辿ることができる隣接ノードのノードアドレスと、その隣接ノードへのリンクのリンクコストとを対応づけて構成する。
例えば、1行目のノードは、自身に割り当てられているノードアドレスが「192.168.1.0」であり、1つめの隣接ノードとしてリンクコスト「1」で到達する隣接ノード「192.168.2.0」と、2つめの隣接ノードとしてリンクコスト「3」で到達する隣接ノード「192.168.3.0」と、それぞれ接続されている。
ノードアドレスは、ネットワーク全体でユニークに割り当てられるので、あるノードと別のノードとを区別するためのノードの識別情報として作用する。
しかし、ノードアドレスが取りうる値であるアドレス空間は、ノードアドレスとしてIPv4アドレスを使用するときには32ビット長(「0.0.0.0」から「255.255.255.255」まで)であるので、2の32乗通り≒約43億と非常に大きな範囲になってしまう。
よって、ノードアドレスをノードの識別情報として用いると、そのノードアドレスの検索処理は、その検索対象の空間が非常に広大であることにより、CPU使用率および使用メモリ効率の両面から、非効率な検索処理となってしまう。
そこで、本実施形態では、ノード情報へアクセス(リードアクセスだけでなく、ライトアクセスも)するためのノードの識別情報として、ノードアドレスをそのまま用いるのではなく、ノードアドレスと1:1対応であるノードIDを用いることにする。
ノードIDは、ノードアドレスと1:1対応であるため、ノードの識別情報として作用する。さらに、ノードIDには、整数連番値などの効率的な値(割り当てられた値の分布の密度が高く、連続する割り当てられた値どうしの間隔が狭い値)が割り当てられるので、効率的なノードアクセス処理を実現することができる。
そして、ノードIDを割り当てるノードの数の上限値が、利用可能なメモリ空間値(物理メモリでもよいし、仮想メモリでもよい)を超えないようにノードIDを発行することにより、メモリを節約することができる。
図3は、通信システムの経路計算装置1を示す構成図である。
経路計算装置1は、経路計算装置1の記憶手段に格納される各データ構造(ノード情報管理テーブル11、アドレスID索引データ12、IDアドレス索引データ13、ID発行管理データ14)と、経路計算装置1の記憶手段から読み出されるプログラムがCPUによって実行されることで構成される各処理部(ノードID処理部21、ノード情報処理部22、アドレスID変換部23、経路計算部24、IDアドレス変換部25、結果出力部26)とを有する。
ノードID処理部21は、1つのノードアドレスに対して、1つのノードIDを割り当てるとともに、その割り当てたノードアドレスを各データ構造(ノード情報管理テーブル11、アドレスID索引データ12、IDアドレス索引データ13、ID発行管理データ14)で管理する。
Figure 0005087062
表1は、ID発行管理データ14におけるノードIDの新規発行の手法を示す表である。
手法1(表の第2列)は、整数連番値になるように割り当てる方法である。これは1から順番に空いている番号を割り当てていく方法である。ノードIDを1、2、3、…と割り当てていく。
手法2(表の第3列)は、定数倍(例えば2倍)すると整数連番値になる値である。0.5、1、1.5、…と番号を割り当てていく。この番号は2倍すると1、2、3、…となり整数連番値になる。
手法3(表の第4列)は、整数連番値ではあるが、一部の値が飛んでいるような割り当て方である。1、2、3、…と連番で並んでいるが、4がとんで5からまた連番値になるよう割り当てられる方法である。
また、明示的にメモリ容量を考慮した割り当て方としては、トライアンドエラーを繰り返す方法がある。トライアンドエラー方式では、まずノードIDを割り当て、割り当てたノードIDから検索されたメモリアドレスが参照不可なものであれば、再度割り当て直し、参照可能であれば、その値を使用するというものである。なお、ここで挙げた例の他にも前記のようにノードIDから参照可能なメモリアドレスを検索可能なものであれば、割り当てを限定しない。
トポロジ情報が変更されたとき、特にノードの追加や削除が起こった場合、割り当てたノードIDを更新する必要がある。このとき、トポロジ変更が発生するたびに、変更箇所だけでなく、全てノードIDを再割り当てする方法があるが、この方法では、トポロジ変更対象でないノードについてもノードIDを割り当て直すことになり、変更に伴う負荷が大きくなってしまう。
そこで、トポロジの変更箇所(追加箇所、削除箇所)のみを対象として、ノードIDの変更処理を行うという方法がある。この方法を行うには、ノードIDの割り当てを記録し、トポロジ変更が生じるとトポロジの差分情報をチェックする。ノードが追加されたときには、空き番号となっている番号をノードIDとして割り当てる。そして、ノードが削除されたときには割り当てられていたノードIDを削除する。
このような、ノード情報処理部22が実行するノードIDの差分変更処理は、線形サーチなどの手段で行うと時間がかかることが予想される。この処理の高速化を行う方法として、ノードIDの割り当て状況や空き番号の管理を、ヒープを用いることで効率化できる。
図4は、ヒープを用いるID発行管理データ14を示す説明図である。ヒープはノードIDの割り当て候補値の集合のうち、最小値(図では、ノードID=4)を出力するときに使用されるデータ構造である。このデータ構造を用いて、空き番号のうちの最小値を出力することで、できるだけノードIDが連番になるよう割り当てることが可能になる。そして、ノードが削除されたとき、このヒープに削除されたノードのノードIDを入れることで空き番号を管理する。このように、ヒープを用いることにより、ノードIDが飛び飛びの値になることを防ぐことができる。
図3のノード情報処理部22は、トポロジ情報9を構成するノードの情報であるノード情報(新規登録分、追加分、削除分など)を受信すると、それらをもとにノード情報管理テーブル11へと更新する。
ノード情報管理テーブル11は、ノードIDと、そのノードIDが示すノード情報(またはそのノード情報の格納先へのポインタ)とを対応づけるテーブルである。以下、ノード情報管理テーブル11の構成例として、2つの例を説明する。
Figure 0005087062
表2は、ノードIDと、そのノードIDが示すノード情報とを配列で格納するノード情報管理テーブル11を示す。
ノード情報管理テーブル11の左列のノードIDは、検索キーとなる要素であり、ノード情報管理テーブル11を配列としたときの添え字(引数)となる。なお、表2では、ノードIDとして1から始まる整数連番値を用いているが、ノードIDとして任意の数字や文字列を用いてもよい。そのときには、配列の添え字には整数値以外の数字や文字列が代入されるので、ノード情報管理テーブル11の配列は、それらの添え字を許容する連想配列として構成される。
ノード情報管理テーブル11の右列のノード情報は、対応する左列で示されるノードIDのノード情報である。表2では、ノード情報として、隣接ノードIDと、その隣接ノードへのリンクコストとの組が、隣接ノードごとに記憶されている。
Figure 0005087062
表3は、ノードIDと、そのノードIDが示すノード情報の格納先を示すメモリアドレスとを配列で格納するノード情報管理テーブル11(表3の上部)と、そのメモリアドレスの位置に格納されているノード情報(表3の下部)とを示す。この方式では、ノードIDを検索キーとして、ノード情報へのポインタとなるメモリアドレスを検索するため、その検索されたメモリアドレスに格納されているノード情報の格納容量は、固定長でも可変長でもよい。
以上、表2および表3を参照して、ノード情報管理テーブル11について、説明した。さらに、ノード情報が固定長であり、ノードIDとして整数連番値が割り当てられるときなど、所定の規則性を有するときには、ノードIDごとのレコードを有するノード情報管理テーブル11を用意する代わりに、ノードIDの値を入力パラメータとして、所定の計算式を計算することにより、ノード情報の格納先を示すメモリアドレスを取得してもよい。
例えば、表3に示すノード情報管理テーブル11は、計算式「(メモリアドレス)=1000+(ノードID−1)×5」によって、ノードIDの値に応じたメモリアドレスを取得することができる。なお、1000とは、ノード情報を格納するメモリ空間(表3の下部)の先頭位置である。
図3のアドレスID変換部23は、アドレスID索引データ12をもとに、ノードアドレスからノードIDへの変換を行う。つまり、アドレスID変換部23は、ノード情報に記載されている情報のうち、ノードアドレスが記載されている箇所を対応するノードIDに書き換える。
アドレスID索引データ12は、ノードアドレスを検索キーとして、対応するノードIDを取得するためのデータ構造である。以下、アドレスID索引データ12の例を2つ挙げる。
Figure 0005087062
表4は、IPアドレスを8ビット4区切り表記としたときの、アドレスID索引データ12を示す表である。アドレスID索引データ12は、ノードアドレスであるIPアドレスを検索キーとして、対応するノードIDを検索するためのデータ構造である。検索キーがIPアドレスという文字列であるので、アドレスID索引データ12は、IPアドレスを添え字とする連想配列として実現される。連想配列は、添え字である検索キーの値と、その検索キーに対する情報が格納されているメモリアドレスの関係が状況に応じて動的に最適化される(詳細は、後記する図5の説明を参照)。
アドレスID変換部23は、IPアドレス「192.168.1.0」が検索キーとして入力されると、アドレスID索引データ12の1行目のレコードを参照して、対応するノードID「1」を得る。同様に、アドレスID変換部23は、IPアドレス「192.168.3.0」が検索キーとして入力されると、アドレスID索引データ12の3行目のレコードを参照して、対応するノードID「3」を得る。
Figure 0005087062
表5は、IPアドレスを10進数表記(情報キー)に変換したときの、アドレスID索引データ12を示す表(表5の上部)と、その10進数変換の計算結果の表(表5の下部)である。
10進化の計算方法であるが、ノードアドレス「a.b.c.d」に対し、「a*256^3+b*256^2+c*256^1+d」という計算(演算子「*」は乗算、演算子「^」はべき乗を示す)を行った結果がノードアドレス「a.b.c.d」を10進化した値である。
このように、IPアドレスを10進数の情報キーとして表記することにより、アドレスID索引データ12を連想配列ではなく通常の配列(添え字が整数値である配列)として実現できるうえに、IPアドレス同士の大小比較が可能となる。
図5は、アドレスID索引データを示す説明図である。表4,5で説明したアドレスID索引データ12は、例えば、以下の2種類の実装方法のいずれかとして実現される。
図5(a)に記載されているアドレスID索引データ12のデータ構造は、非特許文献1などに記載されている平衡二分木と呼ばれる実装方法である。この実装方法で管理する方法では、ノードごとに、そのノードのIPアドレスから計算した情報キー(10進数表記)と、ノードIDとの組の情報を保持する。そして、アドレスID索引データ12は、ノード間のリンクを、上部が親側、下部が子側とするツリー構造として構成する。
ここで、所定のノードの情報キーと、その所定のノードの子ノードの情報キーとの関係について、「(所定のノードの左側のリンクから辿る子ノードの情報キー)<(所定のノードの情報キー)<(所定のノードの右側のリンクから辿る子ノードの情報キー)」という大小関係を有する。
例えば、検索キー「3232236288」に該当するノードを検索するときには、以下の手順により、目的のノードへと順に辿る。
手順(1):検索キー「3232236288」が、ルートノードの情報キー「3232236544」と一致せず、かつ、それより小さいので、左側のリンクを辿り、ルートノードの子ノードへと進む(図ではリンクを辿るところは、実線の矢印で表記し、辿らないところは、点線の矢印で表記した)。
手順(2):検索キー「3232236288」が、子ノードの情報キー「3232236032」と一致せず、かつ、それより大きいので、右側のリンクを辿り、ルートノードの孫ノードへと進む。
手順(3):検索キー「3232236288」が、孫ノードの情報キー「3232236288」と一致するので、ここで検索を完了する。
図5(b)に記載されているアドレスID索引データ12のデータ構造は、ハッシュと呼ばれる実装方法である。この方法では、検索キーとして入力された、ノードのIPアドレスから計算した情報キー(10進数表記)に対して、ハッシュ関数と呼ばれる関数を計算し、その計算結果(ハッシュ値)をもとにノードを検索する手法である。なお、ハッシュ値が同じであるノードが複数存在するときには、それらのノードをリストで接続することで、所望のノードを検索できる。例えば、図5(b)では、ハッシュ関数として、情報キーを1000で割ったときの余りの値を用いている。
例えば、検索キー「3232236288」に該当するノードを検索するときには、以下の手順により、目的のノードへと順に辿る。
手順(1):検索キー「3232236288」のハッシュ値「288」に該当する検索結果として、リストの先頭要素である情報キー「3729340288」のエントリを得る。しかし、このエントリの情報キーは、検索キー「3232236288」と一致しないので、リストの次の要素へと進む。
手順(2):ハッシュ値「288」に該当するリストの2番目の要素として、情報キー「1029383288」のエントリを得る。しかし、このエントリの情報キーは、検索キー「3232236288」と一致しないので、リストの次の要素へと進む。
手順(3):ハッシュ値「288」に該当するリストの3番目の要素として、情報キー「3232236288」のエントリを得る。このエントリの情報キーは、検索キー「3232236288」と一致するので、ここで検索を完了する。
図6(a)は、図2(a)で示したIPアドレス表記のトポロジ情報9に対して、アドレスID変換部23がアドレスID索引データ12を参照して、ノードアドレスをノードIDへとノードごとに変換した結果を示す。図6(a)では、ノードの識別情報を書き換えただけなので、トポロジ情報9のノードやリンクの構成は、変更していない。
そして、図3の経路計算部24は、図6(a)で示したような、アドレスID変換部23がノードIDに書き換えたノード情報を含めたトポロジ情報9を用いて、経路を計算する。
図6(b)は、経路計算部24による経路の計算結果の一例として、ノードID=1のノードを起点として、他の各ノードへの経路情報を示す。
ここで、経路計算部24は、経路計算処理において、ノード情報ごとに割り当てられるノードの識別情報として、低効率なノードアドレスではなく高効率なノードIDを参照することができるため、ノード情報管理テーブル11から高速にノード情報を検索して取得することができる。
さらに、経路計算部24によるノード情報の検索動作が多いほど、計算時間は短縮される。検索動作が多くなる状況として、複数のデータ転送装置3の経路情報を一台で計算する場合がある。経路計算が終了すると、ノード間の経路情報が得られる。なお、経路計算部24による経路計算アルゴリズムは、例えば、ダイクストラアルゴリズムを用いることができる。
図3のIDアドレス変換部25は、IDアドレス索引データ13をもとに、経路計算部24による経路計算結果(図6(b))において、ノードの識別情報をノードIDからノードアドレスへの変換を行う。IDアドレス変換部25によるノードIDからノードアドレスへの変換処理は、アドレスID変換部23によるノードアドレスからノードIDへの変換処理に対する逆変換処理である。このように、逆変換処理が可能なのは、ノードIDとノードアドレスとが1:1対応しているためである。
これにより、データ転送装置3は、従来のデータ転送処理と同様に、ノードアドレスを元にしたフォワーディングが実行できるので、既に多くの台数が設置および稼動しているデータ転送装置3への変更や停止を行わずに済む。
Figure 0005087062
表6は、IDアドレス変換部25が参照するIDアドレス索引データ13を示す表である。IDアドレス索引データ13は、アドレスID索引データ12と等価なデータではあるが、IDアドレス索引データ13の検索キーは、ノードIDであるので、検索キーがIPアドレスであるアドレスID索引データ12よりも、高速な検索処理を実現することができる。
例えば、IDアドレス索引データ13を参照すると、ノードID「1」のノードアドレスは「192.168.1.0」であり、ノードID「2」のノードアドレスは「192.168.2.0」であり、ノードID「3」のノードアドレスは「192.168.3.0」であることが、それぞれ取得できる。このように変換した経路情報をデータ転送装置3における次の転送先の設定に使用する。
Figure 0005087062
表7は、IDアドレス変換部25による図6(b)からの変換結果である、ルーティングテーブル32を示す表である。図6(b)に記載された各経路について、ノードIDからIPアドレスへの変換が行われている。
そして、図3の結果出力部26は、表7に示すようなルーティングテーブル32を、経路計算結果として各データ転送装置3に出力する。これにより、データ転送装置3は、ノードIDが経路計算に用いられていることを全く意識せず、従来と同じようにパケットのデータ転送を実行することができる。
以上説明した本実施形態は、コンピュータネットワークにおける経路計算のときに、経路計算アルゴリズムから参照されるトポロジ情報9のノード情報のアクセスを高速化する技術である。
従来では、ノードの識別情報としてIPアドレスを使用するため、検索空間が非常に広範囲となってしまい、確保すべきメモリ領域が膨大なものとなるという問題があった。
これに対し、本実施形態では、経路計算部24の経路計算の前処理として、アドレスID変換部23がノードの識別情報をIPアドレスからノードIDに変換し、経路計算の後処理として、IDアドレス変換部25がノードの識別情報をノードIDからIPアドレスに変換する。これにより、経路計算部24は、経路計算に伴うノード情報のアクセス処理において、検索空間が狭いノードIDの検索空間だけを検索すればよいため、確保すべきメモリ領域を大幅に節約することができる。
Figure 0005087062
表8は、ノードアドレスとして、CIDR(Classless Inter-Domain Routing)に対応したときの、各索引データを示す表である。本実施形態では、ノードアドレスとして、IPv4アドレスを用いたが、割り当て可能なネットワークの識別情報なら、IPv6アドレスや、アドレスとそのアドレスの付加情報(マスク長)とを組とした情報を用いてもよい。CIDRは、IPアドレスとそのマスク長との組の情報をネットワークの識別情報として用いる方式である。
よって、表8に示すように、アドレスID索引データ12、IDアドレス索引データ13などの各データ構造を、IPv4アドレスからIPアドレスとそのマスク長との組の情報へと置き換えることで、経路計算部24による任意の経路情報の計算処理に、ノードIDを用いることができる。
1 経路計算装置
3 データ転送装置
11 ノード情報管理テーブル
12 アドレスID索引データ
13 IDアドレス索引データ
14 ID発行管理データ
21 ノードID処理部
22 ノード情報処理部
23 アドレスID変換部
24 経路計算部
25 IDアドレス変換部
26 結果出力部
31 経路管理部
32 ルーティングテーブル
33 データ転送部

Claims (9)

  1. ノードアドレスで識別されるノードがリンクで接続されるトポロジ情報から、ノードごとに経路計算を行う経路計算装置であって、
    前記経路計算装置は、アドレスID索引データおよびIDアドレス索引データを記憶する記憶手段と、ノードID処理部と、アドレスID変換部と、経路計算部と、IDアドレス変換部とを有し、
    前記ノードID処理部は、前記トポロジ情報のノードアドレスごとに、ノードの識別情報としてのノードIDをノードアドレスと1:1対応するように発行し、その発行した結果を、ノードIDからノードアドレスを検索するための前記IDアドレス索引データと、ノードアドレスからノードIDを検索するための前記アドレスID索引データとにそれぞれ格納し、
    前記アドレスID変換部は、前記トポロジ情報のノードごとに、そのノードに関する経路計算に使用される情報のうちのノードアドレスを、前記アドレスID索引データを参照して前記ノードID処理部が発行したノードIDへと変換し、
    前記経路計算部は、前記アドレスID変換部が変換した前記トポロジ情報をもとに、変換したノードIDをノードの識別情報として前記トポロジ情報の経路を計算し、
    前記IDアドレス変換部は、前記経路計算部の計算結果を読み取り、その計算結果に含まれる各ノードIDについて、前記IDアドレス索引データを参照してノードアドレスへと変換することで、ルーティングテーブルを作成することを特徴とする
    経路計算装置。
  2. 前記経路計算装置は、さらに、ノード情報処理部を有し、
    前記ノード情報処理部は、前記ノードID処理部が既に発行したノードIDについて、その発行後に前記トポロジ情報の変更が通知されたときには、発行されたノードIDのうちの前記トポロジ情報の変更差分に該当するノードIDを差分更新することを特徴とする
    請求項1に記載の経路計算装置。
  3. 前記ノードID処理部は、ノードIDを発行するときに、そのノードIDと、そのノードに関する経路計算に使用される情報の格納先となるメモリアドレスとを対応づけて前記記憶手段に記憶し、
    前記経路計算部は、前記ノードID処理部が対応づけたデータを参照して、ノードIDから、そのノードに関する経路計算に使用される情報を取得することを特徴とする
    請求項1または請求項2に記載の経路計算装置。
  4. 前記経路計算装置は、ノードIDを引数とする所定関数の出力値であるメモリアドレスに、ノードに関する経路計算に使用される情報をノードごとに前記記憶手段に記憶することを特徴とする
    請求項1または請求項2に記載の経路計算装置。
  5. ノードアドレスで識別されるノードがリンクで接続されるトポロジ情報から、ノードごとに経路計算を行う経路計算装置による経路計算方法であって、
    前記経路計算装置は、アドレスID索引データおよびIDアドレス索引データを記憶する記憶手段と、ノードID処理部と、アドレスID変換部と、経路計算部と、IDアドレス変換部とを有し、
    前記ノードID処理部は、前記トポロジ情報のノードアドレスごとに、ノードの識別情報としてのノードIDをノードアドレスと1:1対応するように発行し、その発行した結果を、ノードIDからノードアドレスを検索するための前記IDアドレス索引データと、ノードアドレスからノードIDを検索するための前記アドレスID索引データとにそれぞれ格納し、
    前記アドレスID変換部は、前記トポロジ情報のノードごとに、そのノードに関する経路計算に使用される情報のうちのノードアドレスを、前記アドレスID索引データを参照して前記ノードID処理部が発行したノードIDへと変換し、
    前記経路計算部は、前記アドレスID変換部が変換した前記トポロジ情報をもとに、変換したノードIDをノードの識別情報として前記トポロジ情報の経路を計算し、
    前記IDアドレス変換部は、前記経路計算部の計算結果を読み取り、その計算結果に含まれる各ノードIDについて、前記IDアドレス索引データを参照してノードアドレスへと変換することで、ルーティングテーブルを作成することを特徴とする
    経路計算方法。
  6. 前記経路計算装置は、さらに、ノード情報処理部を有し、
    前記ノード情報処理部は、前記ノードID処理部が既に発行したノードIDについて、その発行後に前記トポロジ情報の変更が通知されたときには、発行されたノードIDのうちの前記トポロジ情報の変更差分に該当するノードIDを差分更新することを特徴とする
    請求項5に記載の経路計算方法。
  7. 前記ノードID処理部は、ノードIDを発行するときに、そのノードIDと、そのノードに関する経路計算に使用される情報の格納先となるメモリアドレスとを対応づけて前記記憶手段に記憶し、
    前記経路計算部は、前記ノードID処理部が対応づけたデータを参照して、ノードIDから、そのノードに関する経路計算に使用される情報を取得することを特徴とする
    請求項5または請求項6に記載の経路計算方法。
  8. 前記経路計算装置は、ノードIDを引数とする所定関数の出力値であるメモリアドレスに、ノードに関する経路計算に使用される情報をノードごとに前記記憶手段に記憶することを特徴とする
    請求項5または請求項6に記載の経路計算方法。
  9. 請求項5ないし請求項8のいずれか1項に記載の経路計算方法を、コンピュータである前記経路計算装置に実行させるための経路計算プログラム。
JP2009258484A 2009-11-12 2009-11-12 経路計算装置、経路計算方法、および、経路計算プログラム Expired - Fee Related JP5087062B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009258484A JP5087062B2 (ja) 2009-11-12 2009-11-12 経路計算装置、経路計算方法、および、経路計算プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009258484A JP5087062B2 (ja) 2009-11-12 2009-11-12 経路計算装置、経路計算方法、および、経路計算プログラム

Publications (2)

Publication Number Publication Date
JP2011103613A JP2011103613A (ja) 2011-05-26
JP5087062B2 true JP5087062B2 (ja) 2012-11-28

Family

ID=44193752

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009258484A Expired - Fee Related JP5087062B2 (ja) 2009-11-12 2009-11-12 経路計算装置、経路計算方法、および、経路計算プログラム

Country Status (1)

Country Link
JP (1) JP5087062B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110867906A (zh) * 2019-12-02 2020-03-06 南京工程学院 一种基于功率平衡指标的电网拓扑关系辨识方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6155861B2 (ja) * 2013-06-06 2017-07-05 富士通株式会社 データ管理方法、データ管理プログラム、データ管理システム及びデータ管理装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4289098B2 (ja) * 2003-09-24 2009-07-01 日本電気株式会社 経路設計サーバ
JP4533354B2 (ja) * 2006-08-28 2010-09-01 日本電信電話株式会社 経路計算方法、経路計算プログラムおよび経路計算装置
JP5029373B2 (ja) * 2008-01-11 2012-09-19 日本電気株式会社 ノード、経路制御方法および経路制御プログラム
JP4627324B2 (ja) * 2008-02-12 2011-02-09 日本電信電話株式会社 マルチキャスト経路特定方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110867906A (zh) * 2019-12-02 2020-03-06 南京工程学院 一种基于功率平衡指标的电网拓扑关系辨识方法
CN110867906B (zh) * 2019-12-02 2021-11-02 南京工程学院 一种基于功率平衡指标的电网拓扑关系辨识方法

Also Published As

Publication number Publication date
JP2011103613A (ja) 2011-05-26

Similar Documents

Publication Publication Date Title
JP4734539B2 (ja) ネットワークに含まれるノード間の最短経路を探索するためのシステムおよび方法
US10164884B2 (en) Search apparatus, search configuration method, and search method
US8305934B2 (en) Computer program, apparatus, and method for managing network
Le et al. Scalable tree-based architectures for IPv4/v6 lookup using prefix partitioning
JP3813136B2 (ja) 通信制御装置、通信制御方法、通信制御プログラム、通信制御用データ構造
JP6951846B2 (ja) 計算機システム及びタスクの割当方法
KR101754618B1 (ko) 소프트웨어 정의 네트워크 기반의 가상 네트워크 동적 생성 방법 및 그 장치
TWI638554B (zh) 用於網路交換機中的可擴展且靈活的表格搜索的裝置和方法
CN103270727B (zh) 存储体感知多位特里结构
JP2016170526A (ja) 検索装置、検索方法、プログラム、及び記録媒体
JP4874225B2 (ja) 管理計算機、冗長化設定方法、冗長化設定プログラム及びスイッチの設定方法
CN116822422A (zh) 数字逻辑电路的分析优化方法及相关设备
US7633886B2 (en) System and methods for packet filtering
CN101562574A (zh) 一种路由表的更新方法及装置
JP5087062B2 (ja) 経路計算装置、経路計算方法、および、経路計算プログラム
Risso et al. Metaheuristic approaches for IP/MPLS network design
JP7436712B2 (ja) パケットマッチング方法、装置、ネットワークデバイスおよび媒体
US9396286B2 (en) Lookup with key sequence skip for radix trees
JP5182146B2 (ja) 経路決定プログラム、管理装置及びネットワーク・システム
JP6246885B1 (ja) 経路解析処理装置および経路解析処理プログラム
Erdem et al. Array design for trie-based ip lookup
JP5636078B1 (ja) 仮想ネットワークの物理ネットワークへの配置装置及び方法
JP2016189045A (ja) システム環境変更支援システム、方法およびプログラム
JP4783751B2 (ja) 中継装置、中継方法および中継プログラム
KR20020016732A (ko) 복수의 프리픽스로부터 데이터 패킷을 라우팅하기 위한데이터베이스 생성방법과 라우팅 방법 및 그 방법을이용한 라우터

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110407

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110407

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110822

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120525

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120904

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120907

R150 Certificate of patent or registration of utility model

Ref document number: 5087062

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150914

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees