(57)【要約】【課題】経路の更新を高速に実行する。【解決手段】受信したパケットをネクストホップとして設定された隣接ルータに転送するルータであって、複数の経路毎に、当該ルータに隣接する複数の隣接ルータのいずれかが、ネクストホップとして設定され、複数の隣接ルータのそれぞれと接続された複数のポートと、複数の経路毎に設定された複数のネクストホップのそれぞれと接続されたポートを示すポート情報を重複なく記憶するとともに、複数の経路のそれぞれと、記憶されたポート情報のうち、当該経路に設定されたネクストホップと接続されたポートを示すポート情報とを対応付けて記憶するメモリと、受信したパケットの宛先アドレスに基づいて複数の経路のいずれかを選択し、選択された経路に対応するポート情報が示すポートから、選択された経路に設定されたネクストホップへ当該受信したパケットを転送する転送制御部とを有する。【選択図】図２
2011244132.tif 000002
【特許請求の範囲】
【請求項１】
受信したパケットをネクストホップとして設定された隣接ルータに転送するルータであって、
当該ルータにて受信したパケットを転送するための複数の経路毎に、当該ルータに隣接する複数の隣接ルータのいずれかが前記ネクストホップとして設定され、
前記複数の隣接ルータのそれぞれと接続された複数のポートと、
前記複数のポートのうち、前記複数の経路毎に設定された複数のネクストホップのそれぞれと接続されたポートを示すポート情報を重複なく記憶するとともに、前記複数の経路のそれぞれと、前記記憶されたポート情報のうち、当該経路に設定されたネクストホップと接続されたポートを示すポート情報とを対応付けて記憶するメモリと、
パケットを受信し、該受信したパケットの宛先アドレスに基づいて前記複数の経路のいずれかを選択し、前記複数のポートのうち、前記選択された経路に対応するポート情報が示すポートから、前記選択された経路に設定されたネクストホップへ当該受信したパケットを転送する転送制御部と、を有するルータ。
【請求項２】
請求項１に記載のルータにおいて、
前記複数の経路毎に設定されたネクストホップが当該ネクストホップ以外の前記複数の隣接ルータのいずれかに変更されると、前記記憶されたポート情報のうち、当該変更の対象となったネクストホップが設定された経路に対応するポート情報を、当該変更後のネクストホップと接続されたポートを示すポート情報に変更する経路変更部を有し、
前記経路変更部は、前記メモリに記憶されたポート情報が変更された結果、前記複数の経路のうちのいずれかに設定されたネクストホップと接続されたポートを示すポート情報が前記メモリに記憶されていない場合、当該ポート情報を前記メモリに新たに記憶させ、該新たに記憶させたポート情報と当該経路とを対応付けるルータ。
【請求項３】
請求項２に記載のルータにおいて、
前記経路変更部は、前記メモリに記憶されたポート情報が変更された結果、前記メモリに同一のポートを示す複数のポート情報が記憶された場合、当該複数のポート情報を１つだけ残して他を削除し、該削除されたポート情報に対応する経路と、前記残されたポート情報とを対応付けるルータ。
【請求項４】
メモリと、複数のポートとを有し、受信したパケットをネクストホップとして設定された隣接ルータに転送するルータにおける経路記憶方法であって、
当該ルータにて受信したパケットを転送するための複数の経路毎に、当該ルータに隣接する複数の隣接ルータのいずれかが、前記ネクストホップとして設定され、
前記複数のポートのそれぞれが、前記複数の隣接ルータのそれぞれと接続され、
前記複数のポートのうち、前記複数の経路毎に設定された複数のネクストホップのそれぞれと接続されたポートを示すポート情報が重複なく前記メモリに記憶されるとともに、前記複数の経路のそれぞれと、前記記憶されたポート情報のうち、当該経路に設定されたネクストホップと接続されたポートを示すポート情報とが対応付けられて前記メモリに記憶され、
パケットを受信し、該受信したパケットの宛先アドレスに基づいて前記複数の経路のいずれかを選択し、前記複数のポートのうち、前記選択された経路に対応するポート情報が示すポートから、前記選択された経路に設定されたネクストホップへ当該受信したパケットを転送する処理を有する経路記憶方法。
【請求項５】
請求項４に記載の経路記憶方法において、
前記複数の経路毎に設定されたネクストホップが当該ネクストホップ以外の前記複数の隣接ルータのいずれかに変更されると、前記記憶されたポート情報のうち、当該変更の対象となったネクストホップが設定された経路に対応するポート情報を、当該変更後のネクストホップと接続されたポートを示すポート情報に変更する処理と、
前記メモリに記憶されたポート情報が変更された結果、前記複数の経路のうちのいずれかに設定されたネクストホップと接続されたポートを示すポート情報が前記メモリに記憶されていない場合、当該ポート情報を前記メモリに新たに記憶させ、該新たに記憶させたポート情報と当該経路とを対応付ける処理と、をさらに有する経路記憶方法。
【請求項６】
請求項５に記載の経路記憶方法において、
前記メモリに記憶されたポート情報が変更された結果、前記メモリに同一のポートを示す複数のポート情報が記憶された場合、当該複数のポート情報を１つだけ残して他を削除し、該削除されたポート情報に対応する経路と、前記残されたポート情報とを対応付ける処理をさらに有する経路記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットを転送するルータ及び経路記憶方法に関する。
【背景技術】
【０００２】
ルータは、転送されてきたパケットを受信すると、受信したパケットのヘッダ情報の１つである宛先アドレスに基づいて経路表を検索する。そして、ルータは、受信したパケットの次の転送先として設定されたネクストホップ（Ｎｅｘｔ  Ｈｏｐ）、または、そのルータが備える複数のポート（Ｐｏｒｔ）の中から受信したパケットを出力するポートを決定する。なお、経路表では、パケットを転送するための複数の経路のそれぞれと、ネクストホップまたはポートとが対応付けられている。
【０００３】
インターネットにおいては、ＣＩＤＲ（Ｃｌａｓｓｌｅｓｓ  Ｉｎｔｅｒ  Ｄｏｍａｉｎ  Ｒｏｕｔｉｎｇ）が導入されており、経路表の経路は、３２ビットのＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスと、プレフィクス長の組み合わせで表される。具体的には、経路表の経路は、「ＩＰアドレス／プレフィクス長」の形式で表される。
【０００４】
経路を表す３２ビットのＩＰアドレスのうち、プレフィクス長で指定された長さよりも下位のビットは、“Ｄｏｎ'ｔ  ｃａｒｅ”である。具体的には、経路表の経路が１２９.１３１.１７５.１２９／３２で表される場合、３２ビットの全てのビットが経路として有効となる。一方、経路表の経路が１２９.６０.８３／２４で表される場合には、先頭から２４ビットが経路として有効となる。この場合、１２９.６０.８３.１も、１２９.６０.８３.１１１も、経路としては１２９.６０.８３／２４となる。
【０００５】
上述したように、経路表は、ルータが受信したパケットの宛先アドレスに基づいて検索されるが、ＣＩＤＲでは、最長一致と呼ばれる経路検索規則を用いて経路表が検索される。最長一致においては、経路表の複数の経路のうち、宛先アドレスと最も長く一致する経路が選択される。
【０００６】
例えば、１２９.３８.１１１／２４で表される経路と、１２９.３８／１６で表される経路との２つの経路が経路表に存在する場合を考えてみる。この場合、受信したパケットの宛先アドレスが１２９.３８.１１１.１２だとすると、１２９.３８.１１１／２４で表される経路が選択される。これは、１２９.３８.１１１／２４の方が、１２９.３８／１６よりも長く、宛先アドレスである１２９.３８.１１１.１２と一致するからである。
【０００７】
図１１は、パケットが転送される仕組みを説明するための図であり、（ａ）はネットワーク構成の一例を示す図、（ｂ）は（ａ）に示したルータＡの経路表の一例を示す図である。なお、図１１（ｂ）に示す経路表では、経路と、ポートを示すポート情報とが対応付けられている。また、図１１（ａ）に示すルータＡは、ポート情報Ｐ_Ｂが示すポートＢと、ポート情報Ｐ_Ｃが示すポートＣとを備えている。
【０００８】
図１１（ａ）に示すように、端末Ａから端末Ｂへパケットを送信する場合、端末Ａは、端末ＢのＩＰアドレスを宛先ＩＰアドレスとするパケットをルータＡへ送信する。
【０００９】
端末Ａから送信されたパケットを受信したルータＡは、受信したパケットの宛先ＩＰアドレスに基づいて経路表を検索することにより、パケットを出力するポートを決定する。
【００１０】
図１１に示す例の場合、宛先ＩＰアドレスが１９２.６０.３０.５であるため、１９２.６０.３０／２４で表された経路が選択され、このパケットを出力するポートはＰ_Ｂが示すポートＢとなる。
【００１１】
従って、ルータＡは、受信したパケットをポートＢから出力してルータＢへ送信する。そして、ルータＡから送信されたパケットを受信したルータＢは、受信したパケットを端末Ｂへ送信する。
【００１２】
インターネット上においてネットワークの追加・削除やルータの追加・削除、リンク故障、ルータの故障等が発生すると、経路表が変更される。この変更は、ＢＧＰ（Ｂｏｒｄｅｒ  Ｇａｔｅｗａｙ  Ｐｒｏｔｏｃｏｌ）や、ＯＳＰＦ（Ｏｐｅｎ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ）等のルーティングプロトコルによって実行される。経路表の変更は、迅速に実行されなければ、宛先の端末へ正しく送信されなくなるパケット数が増えてしまう。
【００１３】
図１２は、経路表の変更を説明するための図であり、（ａ）はネットワーク構成の一例を示す図、（ｂ）は（ａ）に示したルータＡの経路表の更新の一例を説明するための図である。
【００１４】
図１２（ａ）に示すようなリンク故障やルータ故障等の場合には、図１２（ｂ）に示すように、経路表の経路は変更されずに、ポート（ネクストホップ）だけが変更される場合が多くなる。ここで、実際に運用されているＢＧＰルータのＢＧＰテーブルを公開しているウェブサイト（http://www.routeviews.org/）において経路表の変更の実態を４点について測定した。その結果、経路の追加や削除の合計数に比べ、ネクストホップだけの変更（同じ経路でネクストホップが違うもの）の方が２.６〜１３倍程度も多かった。
【００１５】
図１３は、経路表の変更の実態を説明するための図である。図１３は、上述したウェブサイトにおいて経路表の変更の実態を測定した４点のうちの１点について示している。
【００１６】
図１３に示すように、経路の追加や削除の合計数に比べ、ネクストホップだけの変更（同じ経路でネクストホップが違うもの）の方が１３倍程度も多いことがわかる。これは、経路表の変更においては、経路の追加や削除よりも、ネクストホップだけの変更が多いことの証明となる。
【００１７】
ここで、最長一致による経路表の検索を行うための具体的な方法が例えば、非特許文献１に開示されている。
【００１８】
非特許文献１に開示されている技術では、Ｐａｔｒｉｃｉａツリーと呼ばれるデータ構造で経路表を表現する。
【００１９】
Ｐａｔｒｉｃｉａツリーとは、経路表をツリー構造で表現するものである。ツリーの各ノードには、宛先ＩＰアドレスのビットのうち参照するビットの位置である参照ビット位置と経路とが記載されており、宛先ＩＰアドレスの参照ビット位置と経路の参照ビット位置とが一致しているかどうかで経路が判定される。
【００２０】
図１４は、Ｐａｔｒｉｃｉａツリーを用いた場合の経路表の検索方法を説明するための図である。なお、図１４に示す経路表を備えたルータは、ポートＡ〜Ｅを備えているものとする。また、図１４において、ポート情報Ｐ_Ａ〜Ｐ_Ｅのそれぞれは、ポートＡ〜Ｅのそれぞれを示すものとする。
【００２１】
図１４において、例えば宛先ＩＰアドレスが２２４.０.１１６.１５である場合、まず、一番上のノードにおける参照ビット位置である１ビット目が０か１を調べる。ここでは１なので右下のノードへ移る。右下のノードにおける参照ビット位置は２ビット目なので２２４.０.１１６.１５の２ビット目を調べる。ここも１なので右下へ移る。
【００２２】
ここに格納されている２２４.０／１６は、２２４.０.１１６.１５を含む。また、２２４.０／１６の経路に対応するポートはＰ_Ａで示されるポートＡである。そのため、宛先ＩＰアドレスが２２４.０.１１６.１５であるパケットを出力するポートはポートＡとなる。
【００２３】
図１５は、図１４に示したＰａｔｒｉｃｉａツリーを用いた場合の経路の更新方法を説明するための図である。
【００２４】
Ｐａｔｒｉｃｉａツリーを用いた場合、図１５に示すように経路が変更されずポートだけが変更される場合でも、ポートを１つずつ変更しなければならず、ツリーの更新に時間を要することとなる。つまり、経路の更新に時間がかかってしまうという問題点がある。
【００２５】
最長一致による経路表の検索を行うための別の方法として連想メモリＣＡＭ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）と呼ばれる素子を使う方法がある。
【００２６】
ＣＡＭとは、メモリアドレスをキーとしてアクセスするのではなく、各メモリアドレスに記録された値をキーとしてアクセスすることができる記憶素子である。各メモリアドレスとしては、“０”と“１”とのバイナリ（Ｂｉｎａｒｙ）の値だけでなく、“Ｄｏｎ'ｔ  Ｃａｒｅ”も使えるターナリー（Ｔｅｒｎａｒｙ）のものもある。このようなターナリーの連想メモリ（以降、ＴＣＡＭ（Ｔｅｒｎａｒｙ  ＣＡＭ）という）を用いる事で高速な経路表の検索が可能となる。
【００２７】
図１６は、ＴＣＡＭを用いた場合の経路表の検索方法を説明するための図である。
【００２８】
ＴＣＡＭを用いた経路検索方法では、複数の経路のそれぞれがＴＣＡＭに記憶され、メモリ（ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等）に、複数の経路のそれぞれに対応するポートを示すポート情報が記憶される。
【００２９】
ＴＣＡＭを用いた場合、ＴＣＡＭに入力されたデータと記憶されているデータとを比較し、それらが一致した場合に、そのデータが記憶されているＴＣＡＭ上のメモリアドレスが返される。そのため、経路とその経路に対応するポートを導き出すための方法の１つとして、図１６に示すように、経路とその経路に対応するポートを示すポート情報とを同じメモリアドレスに記憶させる方法がある。
【００３０】
ＴＣＡＭを用いて宛先アドレスからポートを求める場合、まず、宛先アドレスをＴＣＡＭに入力して検索を開始する。そして、入力された宛先アドレスに最長一致する経路が検索されると、ＴＣＡＭは、検索された経路が記憶されたＴＣＡＭ上のメモリアドレスを出力する。そして、出力されたメモリアドレスに基づいてメモリからポートが導き出される。
【００３１】
図１７は、ＴＣＡＭを用いた場合の経路の更新方法を説明するための図であり、（ａ）はルーティングテーブルを示す図、（ｂ）はネクストホップとポートとの対応関係を示す図、（ｃ）は経路表を示す図である。
【００３２】
図１７（ａ）に示すルーティングテーブルにおいて、複数の経路のそれぞれと、当該経路に設定されたネクストホップとは、ＯＳＰＦやＢＧＰなどによって生成される。なお、「ＴＣＡＭ上のメモリアドレス」は、複数の経路のそれぞれが記憶されているＴＣＡＭ上のメモリアドレスである。このメモリアドレスは、ルーティングテーブルによって生成された経路をＴＣＡＭに記憶させるときに決められる。
【００３３】
また、図１７（ｃ）に示す経路表では、ＴＣＡＭに記憶された複数の経路のそれぞれと、それぞれの経路に設定されたネクストホップに接続されたポートを示すポート情報のそれぞれとが対応付けられている。
【００３４】
図１７を参照しながら、経路が変更されず、ネクストホップだけが変更される場合について説明する。ここでは、経路Ａ，Ｃ，Ｄに設定されたネクストホップがＮＨ_Ａが示すネクストホップからＮＨ_Ｂが示すネクストホップに変更される場合について説明する。なお、ここでは、ＮＨ_Ａが示すネクストホップとＰ_Ａが示すポートとが接続され、ＮＨ_Ｂが示すネクストホップとＰ_Ｂが示すポートとが接続されているものとする。
【００３５】
まず、ＯＳＰＦやＢＧＰ等のルーティングプロトコルにより、図１７（ａ）に示すルーティングテーブルにおいて、経路Ａに設定されたネクストホップが、ＮＨ_Ａが示すネクストホップからＮＨ_Ｂが示すネクストホップへ変更される。
【００３６】
次に、図１７（ｂ）に示す対応関係から、ＮＨ_Ｂが示すネクストホップと接続されたポートが、Ｐ_Ｂが示すポートであることが認識される。
【００３７】
次に、図１７（ａ）に示すルーティングテーブルにおいて経路Ａと対応付けられているＴＣＡＭ上のメモリアドレスが抽出される。
【００３８】
そして、抽出されたメモリアドレスに記憶された経路と対応付けられたポート情報がＰ_ＡからＰ_Ｂに変更される。経路Ｃ，Ｄについても、上述した手順でポート情報がＰ_ＡからＰ_Ｂに変更される。
【先行技術文献】
【非特許文献】
【００３９】
【非特許文献１】D. R. Morrison. PATRICIA - Practical Algorithm to Retrieve Information Coded in Alphanumeric. Jrnl. of the ACM, 15(4) pp514-534, Oct 1968）
【発明の概要】
【発明が解決しようとする課題】
【００４０】
図１７を参照しながら説明した経路の更新方法においては、Ｎ個の経路に設定されたネクストホップが変更される場合、ポート情報の変更もＮ回繰り返される。
【００４１】
つまり、ＴＣＡＭを用いた経路の更新方法において、経路が変更されずにネクストホップ（ポート）だけが変更された場合でも、メモリに記憶されているポート情報を１つずつ変更しなければならない。従って、経路の更新に時間がかかってしまうという問題点は解決されない。
【００４２】
本発明は、経路の更新を高速に実行することを可能にするルータ及び経路記憶方法を提供することを目的とする。
【課題を解決するための手段】
【００４３】
上記目的を達成するために本発明のルータは、受信したパケットをネクストホップとして設定された隣接ルータに転送するルータであって、
当該ルータにて受信したパケットを転送するための複数の経路毎に、当該ルータに隣接する複数の隣接ルータのいずれかが前記ネクストホップとして設定され、
前記複数の隣接ルータのそれぞれと接続された複数のポートと、
前記複数のポートのうち、前記複数の経路毎に設定された複数のネクストホップのそれぞれと接続されたポートを示すポート情報を重複なく記憶するとともに、前記複数の経路のそれぞれと、前記記憶されたポート情報のうち、当該経路に設定されたネクストホップと接続されたポートを示すポート情報とを対応付けて記憶するメモリと、
パケットを受信し、該受信したパケットの宛先アドレスに基づいて前記複数の経路のいずれかを選択し、前記複数のポートのうち、前記選択された経路に対応するポート情報が示すポートから、前記選択された経路に設定されたネクストホップへ当該受信したパケットを転送する転送制御部と、を有する。
【００４４】
また、上記目的を達成するために本発明の経路記憶方法は、メモリと、複数のポートとを有し、受信したパケットをネクストホップとして設定された隣接ルータに転送するルータにおける経路記憶方法であって、
当該ルータにて受信したパケットを転送するための複数の経路毎に、当該ルータに隣接する複数の隣接ルータのいずれかが、前記ネクストホップとして設定され、
前記複数のポートのそれぞれが、前記複数の隣接ルータのそれぞれと接続され、
前記複数のポートのうち、前記複数の経路毎に設定された複数のネクストホップのそれぞれと接続されたポートを示すポート情報が重複なく前記メモリに記憶されるとともに、前記複数の経路のそれぞれと、前記記憶されたポート情報のうち、当該経路に設定されたネクストホップと接続されたポートを示すポート情報とが対応付けられて前記メモリに記憶され、
パケットを受信し、該受信したパケットの宛先アドレスに基づいて前記複数の経路のいずれかを選択し、前記複数のポートのうち、前記選択された経路に対応するポート情報が示すポートから、前記選択された経路に設定されたネクストホップへ当該受信したパケットを転送する処理を有する。
【発明の効果】
【００４５】
本発明によれば、複数のポートのうち、複数の経路毎に設定された複数のネクストホップのそれぞれと接続されたポートを示すポート情報が重複なくメモリに記憶される。そして、複数の経路のそれぞれと、当該経路に設定されたネクストホップと接続されたポートを示すポート情報とが対応付けられる。
【００４６】
これにより、Ｎ個の経路に設定されたネクストホップが変更される場合でも、ポート情報の変更をＮ回繰り返す必要がなくなる。
【００４７】
従って、経路の更新を高速に実行することが可能となる。
【図面の簡単な説明】
【００４８】
【図１】本発明のルータを適用した通信システムの実施の一形態の構成を示すブロック図である。
【図２】図１に示した転送制御部がパケットを転送するために必要な情報の一例を示す図であり、（ａ）はルーティングテーブルを示す図、（ｂ）はネクストホップとポインタとポートとの対応関係を示す図、（ｃ）は経路表を示す図である。
【図３】図１に示したルータにおいてルーティングテーブルのネクストホップが変更された場合の動作を説明するための図であり、（ａ）はルーティングテーブルを示す図、（ｂ）はネクストホップとポインタとポートとの対応関係を示す図、（ｃ）は経路表を示す図である。
【図４】図１に示したルータにおいてルーティングテーブルのネクストホップが変更された場合の動作を説明するためのフローチャートである。
【図５】図１に示したルータにおいてルーティングテーブルのネクストホップが変更された場合の動作を説明するための図であり、（ａ）はルーティングテーブルを示す図、（ｂ）はネクストホップとポインタとポートとの対応関係を示す図、（ｃ）は経路表を示す図である。
【図６】図１に示したルータにおいてルーティングテーブルのネクストホップが変更された場合の動作を説明するための図であり、（ａ）はルーティングテーブルを示す図、（ｂ）はネクストホップとポインタとポートとの対応関係を示す図、（ｃ）は経路表を示す図である。
【図７】図１に示したルータにおいてルーティングテーブルのネクストホップが変更された場合の動作を説明するための図であり、（ａ）はルーティングテーブルを示す図、（ｂ）はネクストホップとポインタとポートとの対応関係を示す図、（ｃ）は経路表を示す図である。
【図８】図１に示したルータにおいてルーティングテーブルのネクストホップが変更された場合の動作を説明するための図であり、（ａ）はルーティングテーブルを示す図、（ｂ）はネクストホップとポインタとポートとの対応関係を示す図、（ｃ）は経路表を示す図である。
【図９】図１に示したルータにおいてルーティングテーブルのネクストホップが変更された場合の動作を説明するための図であり、（ａ）はルーティングテーブルを示す図、（ｂ）はネクストホップとポインタとポートとの対応関係を示す図、（ｃ）は経路表を示す図である。
【図１０】図１に示したルータにおいてルーティングテーブルのネクストホップが変更された場合の動作を説明するための図であり、（ａ）はルーティングテーブルを示す図、（ｂ）は経路表を示す図である。
【図１１】パケットが転送される仕組みを説明するための図であり、（ａ）はネットワーク構成の一例を示す図、（ｂ）は（ａ）に示したルータＡの経路表の一例を示す図である。
【図１２】経路表の変更を説明するための図であり、（ａ）はネットワーク構成の一例を示す図、（ｂ）は（ａ）に示したルータＡの経路表の更新の一例を説明するための図である。
【図１３】経路表の変更の実態を説明するための図である。
【図１４】Ｐａｔｒｉｃｉａツリーを用いた場合の経路表の検索方法を説明するための図である。
【図１５】図１３に示したＰａｔｒｉｃｉａツリーを用いた場合の経路の更新方法を説明するための図である。
【図１６】ＴＣＡＭを用いた場合の経路表の検索方法を説明するための図である。
【図１７】ＴＣＡＭを用いた場合の経路の更新方法を説明するための図であり、（ａ）はルーティングテーブルを示す図、（ｂ）はネクストホップとポートとの対応関係を示す図、（ｃ）は経路表を示す図である。
【発明を実施するための形態】
【００４９】
以下に、本発明の実施の形態について図面を参照して説明する。
【００５０】
図１は、本発明のルータを適用した通信システムの実施の一形態の構成を示すブロック図である。
【００５１】
本実施形態の通信システムは図１に示すように、ルータ１０と、ルータ１０に隣接する隣接ルータ２０−１〜２０−ｎとを備えている。
【００５２】
ルータ１０は、転送制御部１１と、経路変更部１２と、メモリ１３と、ＴＣＡＭ１４とを備えている。また、ルータ１０は、隣接ルータ２０−１〜２０−ｎのそれぞれと接続され、接続された隣接ルータとの間でパケットを送受信するポート１５−１〜１５−ｎを備えている。
【００５３】
また、ルータ１０においては、パケットを転送するための相互に異なる複数の経路毎に、隣接ルータ２０−１〜２０−ｎのいずれかが、その経路におけるパケットの次の転送先となるネクストホップとして設定されている。ネクストホップは、例えばルーティングプロトコルによって自動的に設定される。
【００５４】
メモリ１３は、ポート１５−１〜１５−ｎのうち、複数の経路毎に設定された複数のネクストホップのそれぞれと接続されたポートを示すポート情報を重複することなく記憶する。
【００５５】
ＴＣＡＭ１４は、複数の経路のそれぞれを記憶する。そして、転送制御部１１から出力された宛先アドレスを受け付け、複数の経路の中から、受け付けた宛先アドレスと最長一致する経路を検索する。そして、ＴＣＡＭ１４は、検索された経路が記憶されたＴＣＡＭ１４上のメモリアドレスを転送制御部１１へ出力する。
【００５６】
転送制御部１１は、ルータ１０へ転送されてきたパケットをネクストホップとして設定された隣接ルータへ転送する。ここで、転送制御部１１がパケットを転送するために必要な情報について説明する。
【００５７】
図２は、図１に示した転送制御部１１がパケットを転送するために必要な情報の一例を示す図であり、（ａ）はルーティングテーブルを示す図、（ｂ）はネクストホップとポインタとポートとの対応関係を示す図、（ｃ）は経路表を示す図である。なお、図２（ａ）に示すルーティングテーブル、及び、図２（ｂ）に示すネクストホップとポインタとポートとの対応関係は、メモリ１３に記憶されている。
【００５８】
図２（ａ）に示すルーティングテーブルでは、複数の経路のそれぞれと、それぞれの経路に設定されたネクストホップと、それぞれの経路が記憶されたＴＣＡＭ１４上のメモリアドレスとが対応付けられている。例えば図２（ａ）においては、経路Ａと、隣接ルータ２０−１〜２０−ｎのいずれかであり、経路Ａに設定されたネクストホップを示すネクストホップ情報（ＮＨ_Ａ）と、経路Ａが記憶されたＴＣＡＭ１４上のメモリアドレス（Ｍｅｍ  Ａｄ_Ａ）とが対応付けられている。
【００５９】
また、図２（ｃ）に示す経路表では、ＴＣＡＭ１４に記憶された複数の経路のそれぞれと、複数のポインタのそれぞれとが対応付けられている。複数のポインタのそれぞれは、ポート情報が記憶されたメモリ１３上のメモリアドレスを指している。例えば図２（ｃ）において経路Ａに対応するポインタＰＯ_Ａは、経路Ａに設定されたネクストホップと接続されたポートを示すポート情報（Ｐ_Ａ）が記憶されたメモリ１３上のメモリアドレスを指している。
【００６０】
転送制御部１１は、ルータ１０へ転送されてきたパケットをポート１５−１〜１５−ｎを介して受信する。そして、転送制御部１１は、受信したパケットの宛先アドレスをＴＣＡＭ１４へ出力する。その後、ＴＣＡＭ１４から出力されたメモリアドレスを受け付ける。そして、転送制御部１１は、受け付けたメモリアドレスとルーティングテーブルにおいて対応付けられているネクストホップ情報を抽出する。また、転送制御部１１は、受け付けたメモリアドレスに対応する経路と経路表において対応付けられているポインタが指すポート情報を抽出する。そして、転送制御部１１は、抽出したポート情報が示すポートから、抽出したネクストホップ情報が示すネクストホップへ受信したパケットを転送する。また、転送制御部１１は、ルータ１０と隣接ルータ２０−１〜２０−ｎとの間の通信状況等に応じ、ルーティングプロトコルを用いてルーティングテーブルを変更する。ルーティングテーブルの変更とは例えば、ある経路に設定されたネクストホップを、そのネクストホップ以外の隣接ルータに変更することである。
【００６１】
経路変更部１２は、転送制御部１１によってルーティングテーブルが変更されると、その変更を検知し、その変更の内容に応じてメモリ１３に記憶されたポート情報の変更や追加及び削除を行う。また、経路変更部１２は、その変更の内容に応じてポインタの変更を行う。なお、経路変更部１２の動作の詳細については後述する。
【００６２】
以下に、上記のように構成されたルータ１０においてルーティングテーブルのネクストホップが変更された場合の動作について説明する。
【００６３】
図３は、図１に示したルータ１０においてルーティングテーブルのネクストホップが変更された場合の動作を説明するための図であり、（ａ）はルーティングテーブルを示す図、（ｂ）はネクストホップとポインタとポートとの対応関係を示す図、（ｃ）は経路表を示す図である。なお、以下の説明において参照する図５〜９は、いずれも図１に示したルータ１０においてルーティングテーブルのネクストホップが変更された場合の動作を説明するための図であり、（ａ）はルーティングテーブルを示す図、（ｂ）はネクストホップとポインタとポートとの対応関係を示す図、（ｃ）は経路表を示す図である。
【００６４】
また、図３及び図５〜９においてＰ_Ａ，Ｐ_Ｂ，Ｐ_Ｘのそれぞれは、上述したポート１５−１〜１５−ｎのいずれかを示すポート情報である。
【００６５】
また、図３及び図５〜９においてＮＨ_Ａ，ＮＨ_Ｂ，ＮＨ_Ｘのそれぞれは、上述した隣接ルータ２０−１〜２０−ｎのいずれかを示すネクストホップ情報である。
【００６６】
図４は、図１に示したルータ１０においてルーティングテーブルのネクストホップが変更された場合の動作を説明するためのフローチャートである。
【００６７】
図３及び図４を参照しながら、経路Ａに設定されたネクストホップが、ＮＨ_Ａが示すネクストホップからＮＨ_Ｂが示すネクストホップへ変更される場合について説明する。なお、ここでは、ＮＨ_Ｂが示すネクストホップが、当該変更前に、経路Ａ以外の経路に設定されたネクストホップとなっているものとする。
【００６８】
転送制御部１１は、ルーティングテーブルから経路Ａを検索し、検索された経路Ａに設定されたネクストホップをＮＨ_Ａが示すネクストホップからＮＨ_Ｂが示すネクストホップへ変更する（ステップＳ１）。
【００６９】
次に、経路変更部１２は、経路Ａに設定されたネクストホップが、ＮＨ_Ａが示すネクストホップからＮＨ_Ｂが示すネクストホップへ変更されたことを検知する。
【００７０】
そして、経路変更部１２は、ＮＨ_Ｂが示すネクストホップと接続されたポートが、Ｐ_Ｂが示すポートであることを、図３（ｂ）に示す対応関係から認識する（ステップＳ２）。
【００７１】
次に、経路変更部１２は、図３（ａ）に示すルーティングテーブルにおいて経路Ａと対応付けられているＴＣＡＭ１４上のメモリアドレスを抽出する（ステップＳ３）。
【００７２】
次に、経路変更部１２は、抽出されたメモリアドレスに記憶された経路と対応付けられたポインタを読み込む（ステップＳ４）。ここでは、ポインタＰＯ_Ａが読み込まれる。
【００７３】
次に、経路変更部１２は、図３（ｃ）に示すように、読み込んだポインタＰＯ_Ａが指すメモリ１３上のメモリアドレスに記憶されたポート情報をＰ_ＡからＰ_Ｂへ変更する（ステップＳ５）。
【００７４】
そして、経路変更部１２は、図３（ｂ）に示す対応関係を修正する（ステップＳ６）。
【００７５】
次に、図５を参照しながら、経路Ａ，Ｃ，Ｄに設定されたネクストホップが、ＮＨ_Ａが示すネクストホップからＮＨ_Ｂが示すネクストホップへ変更される場合について説明する。ここでは、ＮＨ_Ａが示すネクストホップの全てが、ＮＨ_Ｂが示すネクストホップに変更される。なお、ここでは、ＮＨ_Ｂが示すネクストホップが、当該変更前に、経路Ａ，Ｃ，Ｄ以外の経路に設定されたネクストホップとなっていないものとする。
【００７６】
転送制御部１１は、ルーティングテーブルから経路Ａを検索し、検索された経路Ａに設定されたネクストホップをＮＨ_Ａが示すネクストホップからＮＨ_Ｂが示すネクストホップへ変更する。経路Ｃ，Ｄに設定されたネクストホップも、同様に変更される。
【００７７】
次に、経路変更部１２は、経路Ａに設定されたネクストホップが、ＮＨ_Ａが示すネクストホップからＮＨ_Ｂが示すネクストホップへ変更されたことを検知する。
【００７８】
そして、経路変更部１２は、ＮＨ_Ｂが示すネクストホップと接続されたポートが、Ｐ_Ｂが示すポートであることを、隣接ルータ２０−１〜２０−ｎとポート１５−１〜１５−ｎとの接続関係から認識する。
【００７９】
次に、経路変更部１２は、図５（ａ）に示すルーティングテーブルにおいて経路Ａと対応付けられているＴＣＡＭ１４上のメモリアドレスを抽出する。
【００８０】
次に、経路変更部１２は、抽出されたメモリアドレスに記憶された経路と対応付けられたポインタを読み込む。ここでは、ポインタＰＯ_Ａが読み込まれる。
【００８１】
次に、経路変更部１２は、図５（ｃ）に示すように、読み込んだポインタＰＯ_Ａが指すメモリ１３上のメモリアドレスに記憶されたポート情報をＰ_ＡからＰ_Ｂへ変更する。
【００８２】
そして、経路変更部１２は、図５（ｂ）に示す対応関係を修正する。
【００８３】
次に、図６を参照しながら、経路Ａ，Ｃ，Ｄに設定されたネクストホップが、ＮＨ_Ａが示すネクストホップからＮＨ_Ｂが示すネクストホップへ変更される場合について説明する。ここでは、ＮＨ_Ａが示すネクストホップの全てが、ＮＨ_Ｂが示すネクストホップに変更される。なお、ここでは、ＮＨ_Ｂが示すネクストホップが、当該変更前に、経路Ａ，Ｃ，Ｄ以外の経路に設定されたネクストホップとなっているものとする。
【００８４】
転送制御部１１は、ルーティングテーブルから経路Ａを検索し、検索された経路Ａに設定されたネクストホップをＮＨ_Ａが示すネクストホップからＮＨ_Ｂが示すネクストホップへ変更する。経路Ｃ，Ｄに設定されたネクストホップも、同様に変更される。
【００８５】
次に、経路変更部１２は、経路Ａに設定されたネクストホップが、ＮＨ_Ａが示すネクストホップからＮＨ_Ｂが示すネクストホップへ変更されたことを検知する。
【００８６】
そして、経路変更部１２は、ＮＨ_Ｂが示すネクストホップと接続されたポートが、Ｐ_Ｂが示すポートであることを、図６（ｂ）に示す対応関係から認識する。
【００８７】
次に、経路変更部１２は、図６（ａ）に示すルーティングテーブルにおいて経路Ａと対応付けられているＴＣＡＭ１４上のメモリアドレスを抽出する。
【００８８】
次に、経路変更部１２は、抽出されたメモリアドレスに記憶された経路と対応付けられたポインタを読み込む。ここでは、ポインタＰＯ_Ａが読み込まれる。
【００８９】
次に、経路変更部１２は、図６（ｃ）に示すように、読み込んだポインタＰＯ_Ａが指すメモリ１３上のメモリアドレスに記憶されたポート情報をＰ_ＡからＰ_Ｂへ変更する。
【００９０】
そして、経路変更部１２は、図６（ｂ）に示す対応関係を修正する。
【００９１】
次に、図７を参照しながら、経路Ａ，Ｃ，Ｄ，Ｅに設定されたネクストホップのうち、経路Ａ，Ｃ，Ｅに設定されたネクストホップが、ＮＨ_Ａが示すネクストホップからＮＨ_Ｂが示すネクストホップへ変更され、経路Ｄに設定されたネクストホップが変更されない場合について説明する。つまり、ここでは、ＮＨ_Ａが示すネクストホップの一部だけがＮＨ_Ｂが示すネクストホップに変更される。なお、ここでは、ＮＨ_Ｂが示すネクストホップが、当該変更前に、経路Ａ，Ｃ，Ｄ以外の経路に設定されたネクストホップとなっていないものとする。
【００９２】
転送制御部１１は、ルーティングテーブルから経路Ａを検索し、検索された経路Ａに設定されたネクストホップをＮＨ_Ａが示すネクストホップからＮＨ_Ｂが示すネクストホップへ変更する。経路Ｃ，Ｅに設定されたネクストホップも、同様に変更される。
【００９３】
次に、経路変更部１２は、経路Ａに設定されたネクストホップが、ＮＨ_Ａが示すネクストホップからＮＨ_Ｂが示すネクストホップへ変更されたことを検知する。
【００９４】
そして、経路変更部１２は、ＮＨ_Ｂが示すネクストホップと接続されたポートが、Ｐ_Ｂが示すポートであることを、隣接ルータ２０−１〜２０−ｎとポート１５−１〜１５−ｎとの接続関係から認識する。
【００９５】
次に、経路変更部１２は、図７（ａ）に示すルーティングテーブルにおいて経路Ａと対応付けられているＴＣＡＭ１４上のメモリアドレスを抽出する。
【００９６】
次に、経路変更部１２は、抽出されたメモリアドレスに記憶された経路と対応付けられたポインタを読み込む。ここでは、ポインタＰＯ_Ａが読み込まれる。
【００９７】
次に、経路変更部１２は、図７（ｃ）に示すように、読み込んだポインタＰＯ_Ａが指すメモリ１３上のメモリアドレスに記憶されたポート情報をＰ_ＡからＰ_Ｂへ変更する。
【００９８】
そして、経路変更部１２は、図７（ｂ）に示すように、ＮＨ_ＢとＰＯ_ＡとＰ_Ｂとの対応関係を追加する。
【００９９】
このとき、経路Ｄに設定されたネクストホップと接続されたポートを示すポート情報（Ｐ_Ａ）がメモリ１３に記憶されていないことになってしまう。そのため、経路変更部１２は、図７（ｃ）に示すように、Ｐ_Ａをメモリ１３に新たに追加して記憶させる。そして、経路変更部１２は、経路Ｄに対応するポインタを、Ｐ_Ａが記憶されたメモリ１３上のメモリアドレスを指すポインタにする。このポインタは図７（ｃ）においてＰＯ_Ｙと表記している。
【０１００】
また、経路変更部１２は、図７（ｂ）に示す対応関係において、ポインタをＰＯ_ＡからＰＯ_Ｙに変更する。これにより、ＮＨ_ＡとＰＯ_ＹとＰ_Ａとが対応付けられる。
【０１０１】
次に、図８を参照しながら、経路Ａ，Ｃ，Ｄ，Ｅに設定されたネクストホップのうち、経路Ａ，Ｃ，Ｅに設定されたネクストホップが、ＮＨ_Ａが示すネクストホップからＮＨ_Ｂが示すネクストホップへ変更され、経路Ｄに設定されたネクストホップが変更されない場合について説明する。つまり、ここでは、ＮＨ_Ａが示すネクストホップの一部だけがＮＨ_Ｂが示すネクストホップに変更される。なお、ここでは、ＮＨ_Ｂが示すネクストホップが、当該変更前に、経路Ａ，Ｃ，Ｄ以外の経路に設定されたネクストホップとなっているものとする。
【０１０２】
転送制御部１１は、ルーティングテーブルから経路Ａを検索し、検索された経路Ａに設定されたネクストホップをＮＨ_Ａが示すネクストホップからＮＨ_Ｂが示すネクストホップへ変更する。経路Ｃ，Ｅに設定されたネクストホップも、同様に変更される。
【０１０３】
次に、経路変更部１２は、経路Ａに設定されたネクストホップが、ＮＨ_Ａが示すネクストホップからＮＨ_Ｂが示すネクストホップへ変更されたことを検知する。
【０１０４】
そして、経路変更部１２は、ＮＨ_Ｂが示すネクストホップと接続されたポートが、Ｐ_Ｂが示すポートであることを、図８（ｂ）に示す対応関係から認識する。
【０１０５】
次に、経路変更部１２は、図８（ａ）に示すルーティングテーブルにおいて経路Ａと対応付けられているＴＣＡＭ１４上のメモリアドレスを抽出する。
【０１０６】
次に、経路変更部１２は、抽出されたメモリアドレスに記憶された経路と対応付けられたポインタを読み込む。ここでは、ポインタＰＯ_Ａを読み込まれる。
【０１０７】
次に、経路変更部１２は、図８（ｃ）に示すように、読み込んだポインタＰＯ_Ａが指すメモリ１３上のメモリアドレスに記憶されたポート情報をＰ_ＡからＰ_Ｂへ変更する。
【０１０８】
そして、経路変更部１２は、図８（ｂ）に示すように、ＮＨ_ＢとＰＯ_ＡとＰ_Ｂとの対応関係を追加する。
【０１０９】
このとき、経路Ｄに設定されたネクストホップと接続されたポートを示すポート情報（Ｐ_Ａ）がメモリ１３に記憶されていないことになってしまう。そのため、経路変更部１２は、図８（ｃ）に示すように、Ｐ_Ａをメモリ１３に新たに追加して記憶させる。そして、経路変更部１２は、経路Ｄに対応するポインタを、Ｐ_Ａが記憶されたメモリ１３上のメモリアドレスを指すポインタにする。このポインタは図８（ｃ）においてＰＯ_Ｙと表記している。
【０１１０】
また、経路変更部１２は、図８（ｂ）に示す対応関係において、ポインタをＰＯ_ＡからＰＯ_Ｙに変更する。これにより、ＮＨ_ＡとＰＯ_ＹとＰ_Ａとが対応付けられる。
【０１１１】
ここで、図６を参照しながら説明した例の場合、ネクストホップが変更された結果、同一のポートを示す複数のポート情報がメモリ１３に記憶されていることになる。つまり、相互に異なる複数のポインタ（ＰＯ_Ａ，ＰＯ_Ｂ）が同一のポート情報（Ｐ_Ｂ）を指していることとなってしまう。以下に、メモリ１３に記憶された同一のポート情報を削除する場合の動作を図９を参照しながら説明する。
【０１１２】
経路変更部１２は、図９（ｃ）に示すように、経路Ｂに対応するポインタＰＯ_Ｂが指すメモリ１３上のメモリアドレスに記憶されたポート情報（Ｐ_Ｂ）を削除する。
【０１１３】
次に、経路変更部１２は、図９（ｃ）に示すように、経路Ｂに対応するポインタをＰＯ_ＢからＰＯ_Ａに変更する。そして、経路変更部１２は、図９（ｂ）に示す対応関係において、ＮＨ_ＢとＰＯ_ＡとポートＰ_Ｂとの対応付けを削除する。
【０１１４】
なお、経路変更部１２がタイマーを用い、タイマーの経過時間が予め決められた閾値を超えたときに、重複して記憶されたポート情報を削除するようにしてもよい。これは、リンク故障、ルータ故障等の場合には、故障が回復すると、ネクストホップが変更前の状態に戻る可能性があるためである。
【０１１５】
このように本実施形態のルータ１０において、ポート１５−１〜１５−ｎのうち、複数の経路毎に設定された複数のネクストホップのそれぞれと接続されたポートを示すポート情報が重複なくメモリ１３に記憶される。そして、複数の経路のそれぞれと、当該経路に設定されたネクストホップと接続されたポートを示すポート情報とが対応付けられる。
【０１１６】
これにより、Ｎ個の経路に設定されたネクストホップが変更される場合でも、ポート情報の変更をＮ回繰り返す必要がなくなる。
【０１１７】
従って、経路の更新を高速に実行することが可能となる。
【０１１８】
なお、本実施形態においては、１つのネクストホップが他の１つのネクストホップに変更される場合について説明した。しかし、１つのネクストホップが相互に異なる複数のネクストホップに変更される場合でも、本発明を適用することにより、経路の更新を高速に実行することが可能である。
【０１１９】
図１０は、図１に示したルータ１０においてルーティングテーブルのネクストホップが変更された場合の動作を説明するための図であり、（ａ）はルーティングテーブルを示す図、（ｂ）は経路表を示す図である。
【０１２０】
ここでは、図１０（ａ）に示すように、経路Ａ〜Ｄの４つに設定されたネクストホップが、ＮＨ_Ａが示すネクストホップからＮＨ_Ｂが示すネクストホップに変更されるため、ＮＨ_ＡからＮＨ_Ｂへの変更される経路の数（以降、Ｎと表記する）は４となる。同様に、経路Ｇ，Ｈの２つに設定されたネクストホップが、ＮＨ_Ａが示すネクストホップからＮＨ_Ｃが示すネクストホップに変更されるため、ＮＨ_ＡからＮＨ_Ｃへの変更される経路の数（以降、Ｚ１と表記する）は２となる。
【０１２１】
また、同様に、経路Ｉに設定されたネクストホップが、ＮＨ_Ａが示すネクストホップからＮＨ_Ｄが示すネクストホップに変更されるため、ＮＨ_ＡからＮＨ_Ｄへ変更される経路の数（以降、Ｚ２と表記する）は１となる。また、同様に、経路Ｊに設定されたネクストホップが、ＮＨ_Ａが示すネクストホップからＮＨ_Ｅが示すネクストホップに変更されため、ＮＨ_ＡからＮＨ_Ｅへ変更される経路の数（以降、Ｚ３と表記する）は１となる。
【０１２２】
なお、経路Ｅ，Ｆに設定されたネクストホップは、ＮＨ_Ａが示すネクストホップから変更されないため、ＮＨ_Ａのまま変更されない経路の数（以降、Ｋと表記する）は２となる。
【０１２３】
ここで、変更される経路の数を比較すると、Ｚ１〜Ｚ３の全てがＮよりも小さい。このような条件でネクストホップが変更された場合、経路変更部１２は、まず、図１０（ｂ）に示すように、ポインタＰＯ_Ａが指すメモリ１３上のメモリアドレスに記憶されたポート情報をＰＯ_ＡからＰＯ_Ｂに変更する。これは、ＮがＺ１〜Ｚ３よりも大きく、ポート情報の変更を最も効率的に実行することができるためである。
【０１２４】
このとき、経路Ｅ，Ｆに設定されたネクストホップと接続されたポートを示すポート情報（Ｐ_Ａ）がメモリ１３に記憶されていないことになる。この場合、図７及び図８を参照しながら説明したのと同様に、Ｐ_Ａをメモリ１３に新たに追加して記憶させ、経路Ｅ，Ｆに対応するポインタを、Ｐ_Ａが記憶されたメモリ１３上のメモリアドレスを指すポインタにすればよい。
【０１２５】
ここで、１つのネクストホップが相互に異なる複数のネクストホップに変更される場合に、従来の方法のように、複数の経路毎に設定された複数のネクストホップのそれぞれと接続されたポートを示すポート情報が、当該複数の経路毎にメモリに記憶されていると、ポート情報の変更回数は（Ｚ１＋Ｚ２＋Ｚ３・・・Ｋ＋Ｎ）となる。従って、メモリ１３へのアクセス回数も（Ｚ１＋Ｚ２＋Ｚ３・・・Ｋ＋Ｎ）（以降、式１という）となる。
【０１２６】
一方、本発明のように、複数の経路毎に設定された複数のネクストホップのそれぞれと接続されたポートを示すポート情報が、重複することなくメモリに記憶されていると、ポート情報の変更回数が１回（Ｐ_Ａ→Ｐ_Ｂ）となり、ポインタの変更回数が（Ｚ１＋Ｚ２＋Ｚ３＋・・・＋Ｋ）回となり、ポート情報の追加回数が１回となる。従って、メモリへのアクセス回数は（２＋Ｚ１＋Ｚ２＋Ｚ３＋・・・＋Ｋ）（以降、式２という）となる。
【０１２７】
式１と式２との差を求めると（Ｎ−２）となるが、上述したように、Ｎ＝４であるため、式１と式２との差は２となる。つまり、１つのネクストホップが相互に異なる複数のネクストホップに変更される場合でも、本発明が経路表の更新を高速に実行するのに有効であることがわかる。
【符号の説明】
【０１２８】
１０    ルータ
１１    転送制御部
１２    経路変更部
１３    メモリ
１４    ＴＣＡＭ
１５−１〜１５−ｎ    ポート
２０−１〜２０−ｎ    隣接ルータ
【図１】
2011244132.tif 000003
【図２】
2011244132.tif 000004
【図３】
2011244132.tif 000005
【図４】
2011244132.tif 000006
【図５】
2011244132.tif 000007
【図６】
2011244132.tif 000008
【図７】
2011244132.tif 000009
【図８】
2011244132.tif 000010
【図９】
2011244132.tif 000011
【図１０】
2011244132.tif 000012
【図１１】
2011244132.tif 000013
【図１２】
2011244132.tif 000014
【図１３】
2011244132.tif 000015
【図１４】
2011244132.tif 000016
【図１５】
2011244132.tif 000017
【図１６】
2011244132.tif 000018
【図１７】
2011244132.tif 000019