(57)【要約】 【課題】６ＬｏＷＰＡＮ向けでないパケットが６ＬｏＷＰＡＮ向けのルータに送信されることを防ぐ。【解決手段】本発明の通信装置は、第１の記憶手段と第２の記憶手段と第１の登録手段とを備える。第１の記憶手段は、パケットの宛先のＩＰｖ６アドレスを表す宛先アドレスと、パケットの次の転送先を示す次ホップのＩＰｖ６アドレスを表す次ホップアドレスとを少なくとも対応付けて記憶する。第２の記憶手段は、第１の記憶手段を用いて次ホップアドレスを決定できなかった場合のパケットの転送先となるデフォルトルータのＩＰｖ６アドレスを記憶する。第１の登録手段は、６ＬｏＷＰＡＮのＲＡパケットを表す第１のＲＡパケットを除いたＲＡパケットを表す第２のＲＡパケットを受信した場合に、第２のＲＡパケットの送信元のＩＰｖ６アドレスを、デフォルトルータのＩＰｖ６アドレスとして第２の記憶手段に登録する。【選択図】図５
2016082479.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信インターフェースを有する通信装置であって、
パケットの宛先のＩＰｖ６アドレスを表す宛先アドレスと、パケットの次の転送先を示す次ホップのＩＰｖ６アドレスを表す次ホップアドレスとを少なくとも対応付けて記憶する第１の記憶手段と、
前記第１の記憶手段を用いて前記次ホップアドレスを決定できなかった場合のパケットの転送先となるデフォルトルータのＩＰｖ６アドレスを記憶する第２の記憶手段と、
６ＬｏＷＰＡＮ（ＩＰｖ６  ｏｖｅｒ  Ｌｏｗ  ｐｏｗｅｒ  Ｗｉｒｅｌｅｓｓ  Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋｓ）のＲＡ（Ｒｏｕｔｅｒ  Ａｄｖｅｒｔｉｓｅｍｅｎｔ）パケットを表す第１のＲＡパケットを除いたＲＡパケットを表す第２のＲＡパケットを受信した場合に、前記第２のＲＡパケットの送信元のＩＰｖ６アドレスを、前記デフォルトルータのＩＰｖ６アドレスとして前記第２の記憶手段に登録する第１の登録手段と、を備える、
通信装置。
【請求項２】
前記第１の登録手段は、前記第１のＲＡパケットを受信した場合は、前記第１のＲＡパケットの送信元のＩＰｖ６アドレスを前記第２の記憶手段に登録しない、
請求項１に記載の通信装置。
【請求項３】
送信用のパケットを示す送信パケットを生成する生成手段と、
前記送信パケットの前記宛先アドレスに対する前記次ホップアドレスを決定する第１の決定手段と、をさらに備える、
請求項１または２に記載の通信装置。
【請求項４】
前記第１の決定手段は、
６ＬｏＷＰＡＮ向けではない前記送信パケットである第２の送信パケットの前記宛先アドレスに対する前記次ホップアドレスを決定するたびに、前記第２の送信パケットの前記宛先アドレスと、決定した前記次ホップアドレスとを対応付けて第３の記憶手段に記憶させる、
請求項３に記載の通信装置。
【請求項５】
前記第１の決定手段は、前記生成手段により前記第２の送信パケットが生成された場合、前記第３の記憶手段を用いて、前記第２の送信パケットの前記宛先アドレスに対する前記次ホップアドレスを決定する、
請求項４に記載の通信装置。
【請求項６】
リンクローカルアドレスのプレフィックスを少なくとも記憶する第４の記憶手段をさらに備え、
前記第１の決定手段は、前記第２の送信パケットの前記宛先アドレスと一致する前記宛先アドレスが前記第３の記憶手段に存在する場合は、前記第２の送信パケットの前記宛先アドレスと一致する前記宛先アドレスに対応付けられた前記次ホップアドレスを、前記第２の送信パケットの前記宛先アドレスに対する前記次ホップアドレスとして決定する一方、前記第２の送信パケットの前記宛先アドレスと一致する前記宛先アドレスが前記第３の記憶手段に存在しない場合は、前記第４の記憶手段を用いて、前記第２の送信パケットの前記宛先アドレスに対する前記次ホップアドレスを決定する、
請求項５に記載の通信装置。
【請求項７】
前記第１の決定手段は、前記第２の送信パケットの前記宛先アドレスに含まれる、ネットワークを識別するためのプレフィックスと、前記第４の記憶手段に記憶されたプレフィックスとが一致し、かつ、前記第４の記憶手段に記憶されたプレフィックスに対して、プリフィックスがリンク上にあることを示すＯｎ−Ｌｉｎｋフラグが設定されている場合は、前記第２の送信パケットの前記宛先アドレスを前記次ホップアドレスとして決定する一方、前記第２の送信パケットの前記宛先アドレスに含まれるプレフィックスと、前記第４の記憶手段に記憶されたプレフィックスと、が一致しない場合、または、前記Ｏｎ−Ｌｉｎｋフラグが設定されていない場合は、前記第１の記憶手段を用いて、前記第２の送信パケットの前記宛先アドレスに対する前記次ホップアドレスを決定する、
請求項６に記載の通信装置。
【請求項８】
前記第１の決定手段は、前記第２の送信パケットの前記宛先アドレスと一致する前記宛先アドレスが前記第１の記憶手段に存在する場合は、前記第２の送信パケットの前記宛先アドレスと一致する前記宛先アドレスに対応付けられた前記次ホップアドレスを、前記第２の送信パケットの前記宛先アドレスに対する前記次ホップアドレスとして決定し、前記第２の送信パケットの前記宛先アドレスと一致する前記宛先アドレスが前記第１の記憶手段に存在しない場合は、前記第２の記憶手段に記憶された前記デフォルトルータのＩＰｖ６アドレスを、前記第２の送信パケットの前記宛先アドレスに対する前記次ホップアドレスとして決定する、
請求項７に記載の通信装置。
【請求項９】
前記第１の決定手段は、前記生成手段によって６ＬｏＷＰＡＮ向けの前記送信パケットである第１の送信パケットが生成された場合は、前記第１の記憶手段を参照して、前記第１の送信パケットの前記宛先アドレスと一致する前記宛先アドレスに対応付けられた前記次ホップアドレスを、前記第１の送信パケットの前記宛先アドレスに対する前記次ホップアドレスとして決定する、
請求項２乃至８のうちの何れか１項に記載の通信装置。
【請求項１０】
前記第１の決定手段により前記次ホップアドレスが決定された場合、ＩＰｖ６アドレスとリンク層アドレスとを少なくとも対応付けた第５の記憶手段を参照し、前記決定手段により決定された前記次ホップアドレスと一致するＩＰｖ６アドレスに対応付けられたリンク層アドレスを決定する第２の決定手段と、
前記第２の決定手段により決定されたリンク層アドレスを用いて前記送信パケットを送信する制御を行う送信制御手段と、をさらに備える、
請求項２乃至９のうちの何れか１項に記載の通信装置。
【請求項１１】
前記第１の登録手段は、前記第１のＲＡパケットを受信した場合は、前記第１のＲＡパケットの送信元のＩＰｖ６アドレスを、前記次ホップアドレスとして前記第１の記憶手段に登録する、
請求項１乃至１０のうちの何れか１項に記載の通信装置。
【請求項１２】
前記第１のＲＡパケットを受信した場合は、前記第１のＲＡパケットの送信元のＩＰｖ６アドレスと、前記第１のＲＡパケットの送信元のリンク層アドレスとを少なくとも対応付けて第５の記憶手段に登録する第２の登録手段をさらに備える、
請求項１乃至１１のうちの何れか１項に記載の通信装置。
【請求項１３】
前記第２のＲＡパケットを受信した場合は、前記第２のＲＡパケットの送信元のＩＰｖ６アドレスと、前記第２のＲＡパケットの送信元のリンク層アドレスとを少なくとも対応付けて第５の記憶手段に登録する第２の登録手段をさらに備える、
請求項１乃至１１のうちの何れか１項に記載の通信装置。
【請求項１４】
前記次ホップアドレスを構成する複数のビットよりも少ないビット数で表現可能な複数のインデックスごとに、６ＬｏＷＰＡＮ用の前記次ホップアドレスを対応付けて記憶する第６の記憶手段をさらに備え、
前記第１の記憶手段は、６ＬｏＷＰＡＮ用の前記宛先アドレスごとに、前記インデックスを表現する複数のビットを対応付けて記憶する、
請求項１乃至１３のうちの何れか１項に記載の通信装置。
【請求項１５】
前記第１の記憶手段は前記第６の記憶手段を含む、
請求項１４に記載の通信装置。
【請求項１６】
６ＬｏＷＰＡＮのＲＡパケットを表す第１のＲＡパケットを除いたＲＡパケットを表す第２のＲＡパケットを受信した場合に、前記第２のＲＡパケットの送信元のＩＰｖ６アドレスを、パケットの宛先のＩＰｖ６アドレスを表す宛先アドレスと、パケットの次の転送先を示す次ホップのＩＰｖ６アドレスを表す次ホップアドレスと、を少なくとも対応付けて記憶する第１の記憶手段を用いて前記次ホップアドレスを決定できなかった場合のパケットの転送先となるデフォルトルータのＩＰｖ６アドレスとして、前記デフォルトルータのＩＰｖ６アドレスを記憶する第２の記憶手段に登録する登録ステップを含む、
通信方法。
【請求項１７】
コンピュータに、
６ＬｏＷＰＡＮのＲＡパケットを表す第１のＲＡパケットを除いたＲＡパケットを表す第２のＲＡパケットを受信した場合に、前記第２のＲＡパケットの送信元のＩＰｖ６アドレスを、パケットの宛先のＩＰｖ６アドレスを表す宛先アドレスと、パケットの次の転送先を示す次ホップのＩＰｖ６アドレスを表す次ホップアドレスと、を少なくとも対応付けて記憶する第１の記憶手段を用いて前記次ホップアドレスを決定できなかった場合のパケットの転送先となるデフォルトルータのＩＰｖ６アドレスとして、前記デフォルトルータのＩＰｖ６アドレスを記憶する第２の記憶手段に登録する登録ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法およびプログラムに関する。
【背景技術】
【０００２】
従来、ＩＥＥＥ８０２．１５．４の低消費電力ＰＡＮ（Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋｓ）でＩＰｖ６通信を行う規格として、６ＬｏＷＰＡＮ(ＩＰｖ６  ｏｖｅｒ  Ｌｏｗ  ｐｏｗｅｒ  Ｗｉｒｅｌｅｓｓ  Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋｓ)が規定されている。
【０００３】
例えば特許文献１には、６ＬｏＷＰＡＮに基づく通信を行う装置が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、ＩＰｖ６の仕様として、パケット送信時の次ホップアドレス（パケットの次の転送先を示す次ホップのＩＰｖ６アドレス）の決定で使用されるデフォルトルータ・リストには、２つ以上のデフォルトルータを設定することが求められている。パケット送信時において、宛先のＩＰｖ６アドレスを表す宛先アドレスと、過去に決定された次ホップアドレスとの対応表を示す終点キャッシュや、公知のプレフィックス・リストを用いて、送信用のパケットの宛先アドレスに対する次ホップアドレスを決定することができない場合、デフォルトルータ・リストから次ホップアドレスを決定する。この一連の処理は、６ＬｏＷＰＡＮでも同様である。
【０００５】
しかしながら、デフォルトルータ・リストに６ＬｏＷＰＡＮ向けのルータ（６ＬｏＷＰＡＮの規格に従った通信を行うルータ）が登録されていると、６ＬｏＷＰＡＮ向けでないパケット（６ＬｏＷＰＡＮの規格に従ったパケット以外のパケット）が当該ルータに送信されてしまう場合がある。これにより、６ＬｏＷＰＡＮ向けのルータに対して、本来送信する必要が無いパケットが送信されてしまい、当該ルータは、本来受信する必要のないパケットを受信することにより電力を無駄に消費してしまう。これは、低消費電力を前提としている６ＬｏＷＰＡＮでは特に問題となる。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、複数の通信インターフェースを有する通信装置であって、パケットの宛先のＩＰｖ６アドレスを表す宛先アドレスと、パケットの次の転送先を示す次ホップのＩＰｖ６アドレスを表す次ホップアドレスとを少なくとも対応付けて記憶する第１の記憶手段と、前記第１の記憶手段を用いて前記次ホップアドレスを決定できなかった場合のパケットの転送先となるデフォルトルータのＩＰｖ６アドレスを記憶する第２の記憶手段と、６ＬｏＷＰＡＮ（ＩＰｖ６  ｏｖｅｒ  Ｌｏｗ  ｐｏｗｅｒ  Ｗｉｒｅｌｅｓｓ  Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋｓ）のＲＡ（Ｒｏｕｔｅｒ  Ａｄｖｅｒｔｉｓｅｍｅｎｔ）パケットを表す第１のＲＡパケットを除いたＲＡパケットを表す第２のＲＡパケットを受信した場合に、前記第２のＲＡパケットの送信元のＩＰｖ６アドレスを、前記デフォルトルータのＩＰｖ６アドレスとして前記第２の記憶手段に登録する第１の登録手段と、を備える通信装置である。
【発明の効果】
【０００７】
本発明によれば、６ＬｏＷＰＡＮ向けでないパケットが６ＬｏＷＰＡＮ向けのルータに送信されることを防ぐことができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１実施形態の通信装置のハードウェア構成の一例を示す図である。
【図２】図２は、第１実施形態の通信処理部のハードウェア構成の一例を示す図である。
【図３】図３は、ルーティング・テーブルの構成例を示す図である。
【図４】図４は、パケット送信時の通信処理部の動作例を示すフローチャートである。
【図５】図５は、ＲＡパケット受信時の通信処理部の動作例を示すフローチャートである。
【図６】図６は、ＲＡパケット受信時の通信処理部のバリエーションの動作例を示すフローチャートである。
【図７】図７は、第２実施形態の通信処理部のハードウェア構成の一例を示す図である。
【図８】図８は、ルーティング・テーブル内の６ＬｏＷＰＡＮ用の次ホップアドレスに対応するフィールドを表す模式図である。
【図９】図９は、６ＬｏＷＰＡＮ用次ホップリストの一例を示す図である。
【図１０】図１０は、対比例におけるルーティング・テーブルの修正例を説明するための模式図である。
【図１１】図１１は、第２実施形態におけるルーティング・テーブルの修正例を説明するための模式図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら、本発明に係る通信装置、通信方法およびプログラムの実施形態を詳細に説明する。
【００１０】
（第１実施形態）
図１は、本実施形態の通信装置１のハードウェア構成の一例を示す図である。図１に示すように、通信装置１は、ＣＰＵ１０と、メモリ２０と、通信処理部３０とを備える。ＣＰＵ１０は、通信装置１の動作を統括的に制御する。メモリ２０は、プログラムや各種のデータを記憶する。通信処理部３０は、ＣＰＵ１０の制御の下、通信に関する処理を実行する。
【００１１】
図２は、通信処理部３０のハードウェア構成の一例を示す図である。図２の例では、通信処理部３０は、３つの通信インターフェース（第１の通信インターフェース３１、第２の通信インターフェース３２、第３の通信インターフェース３３）を有しており、第１の通信インターフェース３１はＩＥＥＥ８０２．１５．４に対応し、第２の通信インターフェース３２はＥｔｅｒｎｅｔに対応し、第３の通信インターフェース３３はＷｉ−Ｆｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ）に対応している。以下の説明では、第１の通信インターフェース３１、第２の通信インターフェース３２および第３の通信インターフェース３３を互いに区別しない場合は単に「通信インターフェース」と称する場合がある。
【００１２】
図２に示すように、通信処理部３０は、パケット処理部３４と、次ホップ管理部３５と、終点キャッシュ３６と、プレフィックス・リスト３７と、ルーティング・テーブル３８と、デフォルトルータ・リスト３９と、近隣キャッシュ管理部４０と、近隣キャッシュ４１と、パケット送受信部４２と、バッファ４３とを有している。
【００１３】
まず、通信処理部３０が、送信用のパケット（以下、「送信パケット」と称する場合がある）を生成して送信する場合における各部の機能を説明する。パケット処理部３４は、送信パケットを生成する。この例では、パケット処理部３４は、請求項の「生成部」に対応していると考えることができる。パケット処理部３４は、生成した送信パケットをバッファ４３に保存し、次ホップ管理部３５に対して、送信パケットの宛先のＩＰｖ６アドレスを表す宛先アドレスと、どの通信インターフェース向けか（使用すべき通信インターフェース）を伝え、送信パケットの宛先アドレスに対する次ホップアドレス（パケットの次の転送先を示す次ホップのＩＰｖ６アドレス）の決定を依頼する。
【００１４】
次ホップ管理部３５は、パケット処理部３４から次ホップアドレスの決定依頼を受け付けると、使用すべき通信インターフェースとしてパケット処理部３４から通知された通信インターフェースに基づいて、送信パケットが６ＬｏＷＰＡＮ向けの送信パケット（６ＬｏＷＰＡＮの規格に従った送信パケット）であるか否かを判断することができる。この例では、パケット処理部３４から通知された通信インターフェースが第１の通信インターフェース３１であった場合は、送信パケットは６ＬｏＷＰＡＮ向けの送信パケットであると判断し、第２の通信インターフェース３２または第３の通信インターフェース３３であった場合は、送信パケットは６ＬｏＷＰＡＮ向けの送信パケットではないと判断することができる。
【００１５】
以下の説明では、６ＬｏＷＰＡＮ向けの送信パケットを「第１の送信パケット」と称し、６ＬｏＷＰＡＮ向けではない送信パケットを「第２の送信パケット」と称し、両者を区別しない場合は単に「送信パケット」と称する場合がある。なお、送信パケットが６ＬｏＷＰＡＮ向けの送信パケットであるか否かを判断する方法は上記の方法に限られるものではなく、様々な方法を採用することができる。
【００１６】
送信パケットが６ＬｏＷＰＡＮ向けの送信パケットであると判断した場合（つまり、パケット処理部３４によって第１の送信パケットが生成された場合）、次ホップ管理部３５は、ルーティング・テーブル３８を参照して、第１の送信パケットの宛先アドレスに対する次ホップアドレスを決定する。ルーティング・テーブル３８は、宛先アドレスと次ホップアドレスとを少なくとも対応付けて記憶する。この例では、ルーティング・テーブル３８は、請求項の「第１の記憶手段」に対応している。
【００１７】
図３は、ルーティング・テーブル３８の構成例を示す図であり、最低限のフィールドは、宛先アドレスと、次ホップアドレスと、アドレスマスク長と、通信インターフェースを識別するインターフェース番号とから構成される。この例では、宛先アドレスおよび次ホップアドレスの各々は１２８ビットで構成される。アドレスマスク長は、宛先アドレスのうち検索の対象となるビット長を指定する。図３の例ではアドレスマスク長は、８ビット(一例であり、８ビットに限られるものではない)の情報で構成され、例えばアドレスマスク長が１０進数の「６４」を表現している場合は、宛先アドレスの上位６４ビット分が検索の対象となる。
【００１８】
また、インターフェース番号は、送信パケット向けの通信インターフェースが指定された場合に、その指定された通信インターフェースとの比較に用いられ、図３の例では２ビットで構成される。例えば１０進数の「０」を表現するビット（インターフェース番号）が第１の通信インターフェース３１を示し、１０進数の「１」を表現するビットが第２の通信インターフェース３２を示し、１０進数の「２」を表現するビットが第３の通信インターフェース３３を示すといった形態であってもよい。なお、ルーティング・テーブル３８は、上述した最低限のフィールドの他に、経由するルータの台数や送信遅延等を管理することもできる。実際には、ルーティング・テーブル３８のインターフェース番号を次ホップ決定の検索対象とするかどうかの有効／無効設定がある。送信パケット毎に設定する必要があるため、例えばインターフェース番号を各管理部に伝達するように、有効／無効設定を伝達する方法が考えられる。また例えば送信パケット（ヘッダーとデータを含む）に紐づけてバッファ４３に設定する方法などが考えられる。管理部がバッファ４３からパケットを参照する際に、有効／無効設定やインターフェース番号も一緒に参照することができる。
【００１９】
図２に戻り、次ホップ管理部３５が、送信パケットが６ＬｏＷＰＡＮ向けの送信パケットではないと判断した場合（つまり、パケット処理部３４によって第２の送信パケットが生成された場合）における次ホップアドレスの決定方法を説明する。本実施形態では、次ホップ管理部３５は、６ＬｏＷＰＡＮ向けではない送信パケット（第２の送信パケット）の宛先アドレスに対する次ホップアドレスを決定するたびに、第２の送信パケットの宛先アドレスと、決定した次ホップアドレスとを対応付けて終点キャッシュ３６に記憶させる。この例では、終点キャッシュ３６は、請求項の「第３の記憶手段」に対応している。以下、第２の送信パケットの宛先アドレスに対する次ホップアドレスの決定方法の具体的な内容を説明する。
【００２０】
まず、次ホップ管理部３５は、終点キャッシュ３６を用いて、第２の送信パケットの宛先アドレスに対する次ホップアドレスを決定する。より具体的には、次ホップ管理部３５は、第２の送信パケットの宛先アドレスと一致する宛先アドレスが終点キャッシュ３６に存在する場合は、第２の送信パケットの宛先アドレスと一致する宛先アドレスに対応付けられた次ホップアドレスを、第２の送信パケットの宛先アドレスに対する次ホップアドレスとして決定する。一方、第２の送信パケットの宛先アドレスと一致する宛先アドレスが終点キャッシュ３６に存在しない場合は、プレフィックス・リスト３７を用いて、第２の送信パケットの宛先アドレスに対する次ホップアドレスを決定する。
【００２１】
プレフィックス・リスト３７は、リンクローカルアドレスのプレフィックス（以下の説明では「ローカル用プレフィックス」と称する場合がある）を少なくとも記憶する。リンクローカルアドレスとは、ノード（通信装置１）が直接つながっているリンク（ノード間を結ぶ通信線）内でのみ有効なアドレスである。例えば、プレフィックス・リスト３７は、リンクローカルアドレスの他、グローバルアドレスを記憶し、それぞれに対して、プレフィックス（ネットワークを識別するための情報）がリンク上にあることを示すＯｎ−Ｌｉｎｋフラグを設定することができる。この例では、プレフィックス・リスト３７は、請求項の「第４の記憶手段」に対応している。
【００２２】
次ホップ管理部３５は、第２の送信パケットの宛先アドレスに含まれる、ネットワークを識別するためのプレフィックス（宛先アドレスの上位６４ビットで表現される）と、プレフィックス・リスト３７に記憶されたローカル用プレフィックスとが一致し、かつ、Ｏｎ−Ｌｉｎｋフラグが設定されている場合は、第２の送信パケットの宛先アドレスを次ホップアドレスとして決定する。一方、第２の送信パケットの宛先アドレスに含まれるプレフィックスと、プレフィックス・リスト３７に記憶されたローカル用プレフィックスとが一致しない場合、または、Ｏｎ−Ｌｉｎｋフラグが設定されていない場合は、次ホップ管理部３５は、ルーティング・テーブル３８を用いて、第２の送信パケットの宛先アドレスに対する次ホップアドレスを決定する。
【００２３】
ルーティング・テーブル３８を用いた次ホップアドレスの決定方法は以下のとおりである。次ホップ管理部３５は、第２の送信パケットの宛先アドレスと一致する宛先アドレスがルーティング・テーブル３８に存在する場合は、第２の送信パケットの宛先アドレスと一致する宛先アドレスに対応付けられた次ホップアドレスを、第２の送信パケットの宛先アドレスに対する次ホップアドレスとして決定する。一方、第２の送信パケットの宛先アドレスと一致する宛先アドレスがルーティング・テーブル３８に存在しない場合は、デフォルトルータ・リスト３９に記憶されたデフォルトルータのＩＰｖ６アドレスを、第２の送信パケットの宛先アドレスに対する次ホップアドレスとして決定する。
【００２４】
デフォルトルータ・リスト３９は、ルーティング・テーブル３８を用いて次ホップアドレスを決定できなかった場合のパケットの転送先となるデフォルトルータのＩＰｖ６アドレスを記憶する。この例では、デフォルトルータ・リスト３９は、請求項の「第２の記憶手段」に対応している。デフォルトルータ・リスト３９から１つのデフォルトルータのＩＰｖ６アドレスを選択する方法は、後述の近隣キャッシュ４１の状態がＩＮＣＯＭＰＬＥＴＥでないルータのＩＰｖ６アドレスが優先的に選択され、もし、そのようなルータが存在しない場合は、ラウンドロビン方式（全エントリを所定の順番で選択していく方式）で何れかのルータのＩＰｖ６アドレスが選択される。デフォルトルータ・リスト３９には最低２つのデフォルトルータのＩＰｖ６アドレスを持っている必要がある。
【００２５】
以上が、次ホップ管理部３５による次ホップアドレスの決定方法である。本実施形態では、次ホップ管理部３５は請求項の「第１の決定手段」に対応している。
【００２６】
次ホップ管理部３５は、以上のようにして決定した次ホップアドレスをパケット処理部３４および近隣キャッシュ管理部４０の各々へ通知する。この通知を受けた近隣キャッシュ管理部３５は、ＩＰｖ６アドレスと、機器自体が持つ物理アドレスを示すリンク層アドレス（ＩＰｖ４におけるＭＡＣアドレスに相当）とを少なくとも対応付けた近隣キャッシュ４１を参照して、次ホップ管理部３５により決定された次ホップアドレスと一致するＩＰｖ６アドレスに対応付けられたリンク層アドレスを決定する。この例では、近隣キャッシュ４１は請求項の「第５の記憶手段」に対応している。近隣キャッシュ管理部４０は、決定したリンク層アドレスをパケット処理部３４へ通知する。
【００２７】
パケット処理部３４は、送信パケットの宛先アドレスに対する次ホップアドレスとリンク層アドレスを送信パケットに反映させ、パケット送受信部４２に対して、送信パケットが保存されているバッファ４３上のパケット先頭アドレスとパケット長を引き渡す。パケット送受信部４２は、バッファ４３からパケットを引き取り、パケットの種類に応じた通信インターフェースからパケットを送信する。この例では、パケット処理部３４が、近隣キャッシュ管理部４０により決定されたリンク層アドレスを用いて送信パケットを送信する制御を行っていると考えることもできるし、パケット処理部３４とパケット送受信部４２の組み合わせが、近隣キャッシュ管理部４０により決定されたリンク層アドレスを用いて送信パケットを送信する制御を行っていると考えることもできるし、パケット送受信部４２が、近隣キャッシュ管理部４０により決定されたリンク層アドレスを用いて送信パケットを送信する制御を行っていると考えることもできる。
【００２８】
要するに、パケット処理部３４が請求項の「送信制御手段」に対応していると考えることもできるし、パケット処理部３４とパケット送受信部４２の組み合わせが請求項の「送信制御手段」に対応していると考えることもできるし、パケット送受信部４２が請求項の「送信制御手段」に対応していると考えることもできる。
【００２９】
次に、通信処理部３０が、パケットを受信した場合における各部の機能を説明する。パケットを受信した場合は、パケット送受信部４２がバッファ４３に当該パケット（以下の説明では「受信パケット」と称する場合がある）を保存し、パケット処理部３４に対して、受信パケットが保存されているバッファ４３上のパケット先頭アドレスとパケット長とインターフェース番号を引き渡す。パケット処理部３４は、受信パケットの情報（インターフェース番号、ＩＰアドレス、リンク層アドレス、オプション情報など）を次ホップ管理部３５および近隣キャッシュ管理４０に伝達し、次ホップ管理部３５および近隣キャッシュ４０は、その情報から適宜キャッシュの登録を行う。
【００３０】
以下、ＩＰｖ６におけるアドレスの自動設定に用いられるＲＡ（Ｒｏｕｔｅｒ  Ａｄｖｅｒｔｉｓｅｍｅｎｔ）パケットを受信した場合を例に挙げて説明する。以下の説明では、６ＬｏＷＰＡＮのＲＡパケットを「第１のＲＡパケット」と称し、ＲＡパケットのうち６ＬｏＷＰＡＮのＲＡパケットを除いたＲＡパケットを「第２のＲＡパケット」と称する場合がある。本実施形態では、次ホップ管理部３５は、第２のＲＡパケットを受信した場合に、第２のＲＡパケットの送信元のＩＰｖ６アドレスを、デフォルトルータのＩＰｖ６アドレスとしてデフォルトルータ・リスト３９に登録する。すなわち、次ホップ管理部３５は、第１のＲＡパケットを受信した場合は、第１のＲＡパケットの送信元のＩＰｖ６アドレスをデフォルトルータ・リスト３９に登録しない。この例では、次ホップ管理部３５は請求項の「第１の登録手段」に対応している。
【００３１】
例えば、パケット処理部３４から伝達される受信パケットの情報には、パケットの種類を識別する情報が含まれており、次ホップ管理部３５は、当該情報を参照することで、受信したＲＡパケットが第２のＲＡパケットであるのか第１のＲＡパケットであるのかを判断することもできる。なお、受信したＲＡパケットが第２のＲＡパケットであるのか第１のＲＡパケットであるのかを判断する方法はこれに限られるものではなく、例えば次ホップ管理部３５は、パケット処理部３４から伝達された受信パケットの情報に含まれるインターフェース番号から、受信したＲＡパケットが第２のＲＡパケットであるのか第１のＲＡパケットであるのかを判断することもできる。この例では、インターフェース番号が、ＩＥＥＥ８０２．１５．４に対応する第１の通信インターフェース３１を示す場合は、受信したＲＡパケットは第１のＲＡパケットであると判断し、インターフェース番号が、ＩＥＥＥ８０２．１５．４に対応していない第２の通信インターフェース３２または第３の通信インターフェース３３を示す場合は、受信したＲＡパケットは第２のＲＡパケットであると判断することもできる。
【００３２】
また、次ホップ管理部３５は、第１のＲＡパケット（ルータ有効期間がゼロでない第１のＲＡパケット）を受信した場合に、ルーティング・テーブル３８の登録を行う。より具体的には、次ホップ管理部３５は、第１のＲＡパケットを受信した場合、第１のＲＡパケットの送信元のＩＰｖ６アドレスを次ホップアドレスとしてルーティング・テーブル３８に登録する。より具体的には、第１のＲＡパケットの送信元のＩＰｖ６アドレスを、宛先アドレスおよび次ホップアドレスとしてルーティング・テーブル３８に登録し、当該第１のＲＡパケットの送信元のＩＰｖ６アドレスを、６ＬｏＷＰＡＮ向けのデフォルトルータとしてルーティング・テーブル３８に登録することもできる。
【００３３】
なお、６ＬｏＷＰＡＮ向けのルーティング・テーブル３８の登録は、ＲＡパケットの受信の他にも、ＮＡ（Ｎｅｉｇｈｂｏｒ  Ａｄｖｅｒｔｉｓｅｍｅｎｔ）受信、Ｒｅｄｉｒｅｃｔ受信、ＩＰｖ６受信などでも実施される。例えば次ホップ管理部３５は、ＮＳ（Ｎｅｉｇｈｂｏｒ  Ｓｏｌｉｃｉｔａｔｉｏｎ）送信の応答としてＮＡを受信した場合に、そのＮＡの送信元のＩＰｖ６アドレスを次ホップアドレスとして登録することができる。Ｒｅｄｉｒｅｃｔメッセージは、パケットを受信したルータがより適切な次ホップを知っている場合に、パケットの送信元のノードに通知するために送信される。次ホップ管理部３５は、受信したＲｅｄｉｒｅｃｔメッセージによって通知された適切な次ホップのＩＰアドレスを、次ホップアドレスとして登録することができる。また、リンクローカル（通信装置１が直接つながっているリンク）のホストから６ＬｏＷＰＡＮのパケットを受信した場合も、そのパケットの送信元のＩＰアドレスを、次ホップアドレスとして登録することができる。
【００３４】
また、次ホップ管理部３５は、第１のＲＡパケットを受信した場合は、第１のＲＡパケットにより指定されたグローバル用のネットワークを識別するグローバル用のプレフィックスをプレフィックス・リスト３７に登録する。第２のＲＡパケットを受信した場合も同様に、第２のＲＡパケットにより指定されたグローバル用のネットワークを識別するグローバル用のプレフィックスをプレフィックス・リスト３７に登録する。
【００３５】
また、本実施形態では、近隣キャッシュ管理部４０は、第１のＲＡパケットを受信した場合は、第１のＲＡパケットの送信元のＩＰｖ６アドレスと、第１のＲＡパケットの送信元のリンク層アドレスとを少なくとも対応付けて近隣キャッシュ４１に登録する。例えばパケット処理部３４から伝達される受信パケットの情報には、パケットの種類を識別する情報の他、パケットを受信した通信インターフェースを示すインターフェース番号も含まれており、近隣キャッシュ管理部４０は、第１のＲＡパケットを受信した場合は、第１のＲＡパケットの送信元のＩＰｖ６アドレスと、第１のＲＡパケットの送信元のリンク層アドレスと、第１のＲＡパケットを受信した通信インターフェースを示すインターフェース番号とを対応付けて近隣キャッシュ４１に登録することもできる。
【００３６】
また、近隣キャッシュ管理部４０は、第２のＲＡパケットを受信した場合は、第２のＲＡパケットの送信元のＩＰｖ６アドレスと、第２のＲＡパケットの送信元のリンク層アドレスとを少なくとも対応付けて近隣キャッシュ４１に登録する。第１のＲＡパケットを受信した場合と同様に、近隣キャッシュ管理部４０は、第２のＲＡパケットを受信した場合は、第２のＲＡパケットの送信元のＩＰｖ６アドレスと、第２のＲＡパケットの送信元のリンク層アドレスと、第２のＲＡパケットを受信した通信インターフェースを示すインターフェース番号とを対応付けて近隣キャッシュ４１に登録することもできる。この例では、近隣キャッシュ管理部４０は請求項の「第２の登録手段」に対応している。
【００３７】
以上が、通信処理部３０の構成内容である。なお、終点キャッシュ３６、プレフィックス・リスト３７、ルーティング・テーブル３８、デフォルトルータ・リスト３９、近隣キャッシュ４１、バッファ４３は、別々のメモリとして設けられてもよいし、ひとつのメモリ内に設けられてもよい。
【００３８】
また、上述のパケット処理部３４、次ホップ管理部３５、近隣キャッシュ管理部４０、および、パケット送受信部４２の少なくとも一部の機能は、通信装置１のＣＰＵ１０がプログラムを実行することにより実現される形態であってもよい。また、ここでは、通信処理部３０が有する機能のうち、本発明に係る機能を中心に説明しているが、通信処理部３０が有する機能はこれに限られるものではない。例えば通信処理部３０は、送受信パケットのチェックサム計算を行い、チェックサムが合致しない場合は、パケットを破棄することもできるし、必要に応じて、ヘッダーの追加・編集・除去などをすることもできるし、ＴＣＰセッションの確立なども行うこともできる。つまり、通信処理部３０は、一部ソフトウェアの協同によって、ＯＳＩ参照モデルのトランスポート層、ネットワーク層の機能を実現することができる。
【００３９】
図４は、送信パケットの宛先アドレスに対する次ホップアドレスを決定する場合の通信処理部３０（通信装置１）の動作例を示すフローチャートである。送信パケットが６ＬｏＷＰＡＮ向けの送信パケットではない場合（ステップＳ１：Ｎｏ）、つまり、送信パケットが第２の送信パケットである場合、次ホップ管理部３５は、当該第２の送信パケットの宛先アドレスと一致する宛先アドレスが終点キャッシュ３６に存在するか否かを判断する（ステップＳ２）。第２の送信パケットの宛先アドレスと一致する宛先アドレスが終点キャッシュ３６に存在する場合（ステップＳ２：Ｙｅｓ）、次ホップ管理部３５は、第２の送信パケットの宛先アドレスと一致する宛先アドレスに対応付けられた次ホップアドレスを、第２の送信パケットの宛先アドレスに対する次ホップアドレスとして決定し、決定した次ホップアドレスを近隣キャッシュ管理部４０へ通知する。この通知を受けた近隣キャッシュ管理部４０は、近隣キャッシュ４１を参照して、次ホップ管理部３５により決定された次ホップアドレスと一致するＩＰｖ６アドレスに対応付けられたリンクローカルアドレスを決定する（ステップＳ３）。以降の処理は上述したとおりである。
【００４０】
上述のステップＳ２において、第２の送信パケットの宛先アドレスと一致する宛先アドレスが終点キャッシュ３６に存在しない場合（ステップＳ２：Ｎｏ）、次ホップ管理部３５は、第２の送信パケットの宛先アドレスに含まれるプレフィックスがプレフィックス・リスト３７でヒットするか否かを判断する（ステップＳ４）。上述したように、第２の送信パケットの宛先アドレスに含まれるプレフィックスと、プレフィックス・リスト３７に記憶されたローカル用プレフィックスとが一致し、かつ、Ｏｎ−Ｌｉｎｋフラグが設定されていて、プレフィックス・リスト３７でヒットした場合（ステップＳ４：Ｙｅｓ）、次ホップ管理部３５は、第２の送信パケットの宛先アドレスを次ホップアドレスとして決定し、決定した次ホップアドレスを近隣キャッシュ管理部４０へ通知する。以降の処理は上述したとおりである。
【００４１】
上述のステップＳ４において、第２の送信パケットの宛先アドレスに含まれるプレフィックスがプレフィックス・リスト３７でヒットしない場合（ステップＳ４：Ｎｏ）、次ホップ管理部３５は、第２の送信パケットの宛先アドレスと一致する宛先アドレスがルーティング・テーブル３８に存在するか否かを判断する（ステップＳ５）。第２の送信パケットの宛先アドレスと一致する宛先アドレスがルーティング・テーブル３８に存在する場合（ステップＳ５：Ｙｅｓ）、次ホップ管理部３５は、第２の送信パケットの宛先アドレスと一致する宛先アドレスに対応付けられた次ホップアドレスを、第２の送信パケットの宛先アドレスに対する次ホップアドレスとして決定し、決定した次ホップアドレスを近隣キャッシュ管理部４０へ通知する。以降の処理は上述したとおりである。
【００４２】
上述のステップＳ５において、第２の送信パケットの宛先アドレスと一致する宛先アドレスがルーティング・テーブル３８に存在しない場合（ステップＳ５：Ｎｏ）、次ホップ管理部３５は、デフォルトルータ・リスト３９に記憶されたデフォルトルータのＩＰｖ６アドレスを、第２の送信パケットの宛先アドレスに対する次ホップアドレスとして決定し（ステップＳ６）、決定した次ホップアドレスを近隣キャッシュ管理部４０へ通知する。以降の処理は上述したとおりである。なお、デォルトルータのＩＰｖ６アドレスがデフォルトルータ・リスト３９に登録されていない状態の場合は、次ホップ管理部３５は、第２の送信パケットの宛先アドレスを次ホップアドレスとして決定することもできる。
【００４３】
ここで、上述したように、次ホップ管理部３５は、６ＬｏＷＰＡＮのＲＡパケット（第１のＲＡパケット）を受信した場合は、当該第１のＲＡパケットの送信元のＩＰｖ６アドレスをデフォルトルータ・リスト３９に登録しないので、６ＬｏＷＰＡＮに対応するルータに対して、６ＬｏＷＰＡＮ向けでないパケットが送信されることを防止することができる。
【００４４】
一方、送信パケットが６ＬｏＷＰＡＮ向けの送信パケットである場合（ステップＳ１：Ｙｅｓ）、つまり、送信パケットが第１の送信パケットである場合、次ホップ管理部３５は、ルーティング・テーブル３８を参照して、第１の送信パケットの宛先アドレスと一致する宛先アドレスがルーティング・テーブル３８に存在するか否かを判断する（ステップＳ５）。そして、次ホップ管理部３５は、第１の送信パケットの宛先アドレスと一致する宛先アドレスに対応付けられた次ホップアドレスを、第１の送信パケットの宛先アドレスに対する次ホップアドレスとして決定する。以降の処理は上述したとおりである。
【００４５】
図５は、ＲＡパケットを受信した場合の通信処理部３０（通信装置１）の動作例を示すフローチャートである。受信したＲＡパケットが６ＬｏＷＰＡＮのＲＡパケット（第１のＲＡパケット）ではない場合（ステップＳ１１：Ｎｏ）、つまり、受信したパケットが第２のＲＡパケットの場合、次ホップ管理部３５は、当該第２のＲＡパケットの送信元のＩＰｖ６アドレスを、デフォルトルータのＩＰｖ６アドレスとしてデフォルトルータ・リスト３９に登録する（ステップＳ１２）。なお、デフォルトルータ・リスト３９に登録する際に、既に同じアドレスが登録されていた場合は、デフォルトルータとして使用してよい期間（ＲＡパケットに含まれるルータ有効期間）をアップデートする。もし、有効期間がゼロのＲＡパケットを受信し、デフォルトルータ・リスト３９にそのＲＡパケットの送信元のＩＰｖ６アドレスが登録されていた場合は、その登録を削除する。なお、プレフィックスオプションにも同様に有効期間（Ｏｎ−Ｌｉｎｋの判定に利用できる期間）があり、ローカル用プレフィックスは、常にＯｎ−Ｌｉｎｋである。次に、次ホップ管理部３５は、当該第２のＲＡパケットにより指定されたグローバル用のプレフィックスをプレフィックス・リスト３７に登録する（ステップＳ１３）。
【００４６】
一方、受信したＲＡパケットが６ＬｏＷＰＡＮのＲＡパケット（第１のＲＡパケット）である場合（ステップＳ１１：Ｙｅｓ）、次ホップ管理部３５は、当該第１のＲＡパケットの送信元のＩＰｖ６アドレスを、デフォルトルータのＩＰｖ６アドレスとしてデフォルトルータ・リスト３９に登録せずに、当該第１のＲＡパケットにより指定されたグローバル用のプレフィックスをプレフィックス・リスト３７に登録する（ステップＳ１３）。
【００４７】
次に、受信したＲＡパケットが６ＬｏＷＰＡＮのＲＡパケット（第１のＲＡパケット）である場合（ステップＳ１４：Ｙｅｓ）、次ホップ管理部３５は、ルーティング・テーブル３８に空きがあるか否かを判断する（ステップＳ１５）。ルーティング・テーブル３８に空きがない場合は（ステップＳ１５：Ｎｏ）、ルーティング・テーブル３８で一番古いエントリを削除する（ステップＳ１６）。この例では、一番古いエントリを判断するために、次ホップ管理部３５は、ルーティング・テーブル３８の各エントリに対して「登録した時刻」を管理しており、エントリが使用された場合は、当該エントリの「登録した時刻」を「使用した時刻」で更新（アップデート）している。そして、ルーティング・テーブル３８内の複数のエントリのうち「登録した時刻」が最も古いエントリを、削除するエントリとして選択する。なお、近隣キャッシュ４１などの他のキャッシュについても同様に、空きがない場合は一番古いエントリを削除することができる。
【００４８】
ルーティング・テーブル３８に空きがある場合（ステップＳ１５：Ｙｅｓ）、または、上述のステップＳ１６の後、次ホップ管理部３５は、ルーティング・テーブル３８の登録を行う（ステップＳ１７）。上述したように、次ホップ管理部３５は、第１のＲＡパケットの送信元のＩＰｖ６アドレスを、次ホップアドレスとしてルーティング・テーブル３８に登録する。
【００４９】
ステップＳ１７の後、近隣キャッシュ管理部４０は、近隣キャッシュ４１の登録を行う（ステップＳ１８）。上述したように、近隣キャッシュ管理部４０は、受信したＲＡパケットが第１のＲＡパケットの場合、当該第１のＲＡパケットの送信元のＩＰｖ６アドレスと、当該第１のＲＡパケットの送信元のリンク層アドレスとを少なくとも対応付けて近隣キャッシュ４１に登録する。
【００５０】
一方、受信したＲＡパケットが６ＬｏＷＰＡＮのＲＡパケットではない場合（ステップＳ１４：Ｎｏ）、つまり、受信したＲＡパケットが第２のＲＡパケットの場合、ルーティング・テーブル３８の登録は行われず、近隣キャッシュ管理部４０は、近隣キャッシュ４１の登録を行う（ステップＳ１８）。上述したように、近隣キャッシュ管理部４０は、受信したＲＡパケットが第２のＲＡパケットの場合、当該第２のＲＡパケットの送信元のＩＰｖ６アドレスと、当該第２のＲＡパケットの送信元のリンク層アドレスとを少なくとも対応付けて近隣キャッシュ４１に登録する。
【００５１】
なお、この例では、受信したＲＡパケットが第２のＲＡパケットの場合、ルーティング・テーブル３８の登録は行われないが、これに限らず、例えば通信インターフェースごとに次ホップアドレスを指定したい場合、あるいは、複数ノードの宛先を、プレフィックス（具体的にはアドレスマスク長により規定されるビットの部分）に対応する１つの次ホップアドレスでまとめたい場合などに対応するために、受信したＲＡパケットが第２のＲＡパケットの場合であってもルーティング・テーブル３８の登録を行うという形態であってもよい。
【００５２】
図６は、ＲＡパケットを受信した場合の通信処理部３０（通信装置１）のバリエーションの動作例を示すフローチャートである。図６の例では、受信したＲＡパケットが６ＬｏＷＰＡＮのＲＡパケット（第１のＲＡパケット）である場合（ステップＳ２１：Ｙｅｓ）、次ホップ管理部３５は、当該第１のＲＡパケットにより指定されたグローバル用のプレフィックスをプレフィックス・リスト３７に登録する（ステップＳ２２）。次に、次ホップ管理部３５は、ルーティング・テーブル３８に空きがあるか否かを判断する（ステップＳ２３）。ルーティング・テーブル３８に空きがない場合は（ステップＳ２３：Ｎｏ）、ルーティング・テーブル３８で一番古いエントリを削除する（ステップＳ２４）。ルーティング・テーブル３８に空きがある場合（ステップＳ２３：Ｙｅｓ）、または、上述のステップＳ２４の後、次ホップ管理部３５は、ルーティング・テーブル３８の登録を行う（ステップＳ２５）。ステップＳ２５の後、近隣キャッシュ管理部４０は、近隣キャッシュ４１の登録を行う（ステップＳ２６）。
【００５３】
一方、受信したＲＡパケットが６ＬｏＷＰＡＮのＲＡパケットではない場合（ステップＳ２１：Ｎｏ）、つまり、受信したパケットが第２のＲＡパケットの場合、次ホップ管理部３５は、当該第２のＲＡパケットの送信元のＩＰｖ６アドレスを、デフォルトルータのＩＰｖ６アドレスとしてデフォルトルータ・リスト３９に登録する（ステップＳ２７）。次に、次ホップ管理部３５は、当該第２のＲＡパケットにより指定されたグローバル用のプレフィックスをプレフィックス・リスト３７に登録する（ステップＳ２８）。ステップＳ２８の後、近隣キャッシュ管理部４０は、近隣キャッシュ４１の登録を行う（ステップＳ２９）。
【００５４】
以上に説明したように、本実施形態では、６ＬｏＷＰＡＮのＲＡパケット（第１のＲＡパケット）を除いたＲＡパケット（第２のＲＡパケット）を受信した場合に限り、当該第２のＲＡパケットの送信元のＩＰｖ６アドレスを、デフォルトルータのＩＰｖ６アドレスとしてデフォルトルータ・リスト３９に登録する。すなわち、６ＬｏＷＰＡＮのＲＡパケット（第１のＲＡパケット）を受信した場合は、当該第１のＲＡパケットの送信元のＩＰｖ６アドレスをデフォルトルータ・リスト３９に登録することはしない。これにより、６ＬｏＷＰＡＮ向けではない送信パケット（第２の送信パケット）の宛先アドレスに対する次ホップアドレスがルーティング・テーブル３８内に明示的に存在せず、デフォルトルータ・リスト３９に登録されたデフォルトルータのＩＰｖ６アドレスを次ホップアドレスとして決定する場合であっても、６ＬｏＷＰＡＮ向けのルータのＩＰｖ６アドレスが次ホップアドレスとして決定されることはない。したがって、パケット送信時の次ホップアドレスの決定で、６ＬｏＷＰＡＮ向けでないパケットが６ＬｏＷＰＡＮ向けのルータに送信されることを防ぐことができる。
【００５５】
また、例えば上述の終点キャッシュ３６、プレフィックス・リスト３７、デフォルトルータ・リスト３９などを用いた次ホップアドレスの決定方法も、上述のルーティング・テーブル３８のみを用いて実現する構成、すなわち次ホップアドレスの決定をルーティング・テーブル３８のみで実現する構成も考えられるが、この構成では、フィールド数やエントリ数、ＣＰＵの検索コストを考慮すると、小さいメモリ領域、低性能のＣＰＵを前提とした６ＬｏＷＰＡＮの通信装置では大きなボトルネックになってしまう。
【００５６】
これに対して、本実施形態では、ルーティング・テーブル３８とは別に、上述の終点キャッシュ３６、プレフィックス・リスト３７、デフォルトルータ・リスト３９を設けている。そして、６ＬｏＷＰＡＮ向けでない送信パケットの宛先アドレスに対する次ホップアドレスを決定する場合は、まず終点キャッシュ３６を用いて次ホップアドレスの決定を行い、終点キャッシュ３６を用いて次ホップアドレスを決定できなかった場合は、プレフィックス・リスト３７を用いて次ホップアドレスの決定を行う。そして、プレフィックス・リスト３７を用いて次ホップアドレスを決定できなかった場合は、ルーティング・テーブル３８を用いて次ホップアドレスの決定を行い、ルーティング・テーブル３８を用いて次ホップアドレスを決定できなかった場合は、最後にデフォルトルータ・リスト３９を用いて次ホップアドレスの決定を行う。
【００５７】
ここで、次ホップアドレスの決定をルーティング・テーブル３８のみで実現する構成では、例えばデフォルトルータのＩＰｖ６アドレスの管理において不要なフィールドに対して、無効であることを示す値を入れておく必要がある。これにより、ルーティング・テーブル３８内の情報量が無駄に増大してしまう。これに対して、本実施形態では、ルーティング・テーブル３８内の各フィールドには必要な情報のみが格納され、無効であることを示す値を格納する必要が無いので、次ホップアドレスの決定をルーティング・テーブル３８のみで実現する構成に比べて、ルーティング・テーブル３８のメモリ容量を低減することができる上、全体のメモリ容量も低減できる。
【００５８】
（第２実施形態）
次に、第２実施形態について説明する。上述の第１実施形態と共通する部分については適宜に説明を省略する。図７は、本実施形態の通信処理部３０のハードェア構成の一例を示す図である。図７に示すように、通信処理部３０は、６ＬｏＷＰＡＮ用次ホップリスト４４をさらに備える。６ＬｏＷＰＡＮ用次ホップリスト４４は、次ホップアドレスを構成する複数のビットよりも少ないビット数で表現可能な複数のインデックスごとに、６ＬｏＷＰＡＮ用の次ホップアドレスを対応付けて記憶する。この例では、６ＬｏＷＰＡＮ用次ホップリスト４４は、請求項の「第６の記憶手段」に対応している。また、本実施形態では、ルーティング・テーブル３８は、６ＬｏＷＰＡＮ用の宛先アドレスごとに、インデックスを対応付けて記憶する。
【００５９】
図８は、ルーティング・テーブル３８内の６ＬｏＷＰＡＮ用の次ホップアドレスに対応するフィールド（以下、「次ホップフィールド」と称する場合がある）を表す模式図である。図８の例では、次ホップフィールドの下位ｎビット（図８の例では８ビット）をインデックスとみなしている。図９に示すように、６ＬｏＷＰＡＮ用次ホップリスト４４は、８ビットで表現可能な１０進数の「０」〜「２５５」と１対１に対応する２５６個のインデックス（インデックス「０」〜インデックス「２５５」）ごとに、６ＬｏＷＰＡＮ用の次ホップアドレスを対応付けて記憶している。
【００６０】
本実施形態では、次ホップ管理部３５は、６ＬｏＷＰＡＮの次ホップアドレス（６ＬｏＷＰＡＮ向けの送信パケットの宛先アドレスに対する次ホップアドレス）の決定の際に、ルーティング・テーブル３８を検索して、６ＬｏＷＰＡＮ向けの送信パケット（第１の送信パケット）の宛先アドレスと一致する宛先アドレスがヒットした場合、当該宛先アドレスに対応するインデックスを特定し、６ＬｏＷＰＡＮ用次ホップリスト４４を参照して、その特定したインデックスに対応付けられた次ホップアドレスを、第１の送信パケットの宛先アドレスに対する次ホップアドレスとして決定することができる。
【００６１】
ここで、対比例として、図１０に示すように、それぞれが、宛先アドレスと次ホップアドレスとを少なくとも対応付けて記憶する複数（ここでは４つ）のルーティング・テーブル３８ａ〜３８ｄが設けられる構成を想定する。図１０の例では、ルーティング・テーブル３８ａのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ａ[１２７：０]という宛先アドレス、ルーティング・テーブル３８ｂのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ｂ[１２７：０]という宛先アドレス、ルーティング・テーブル３８ｃのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ｃ[１２７：０]という宛先アドレス、および、ルーティング・テーブル３８ｄのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ｄ[１２７：０]という宛先アドレスの各々に対して、Ｎｅｘｔ＿Ｈｏｐ＿ＩＰ＿ａ[１２７：０]という次ホップアドレスが共通に対応付けられている。
【００６２】
対比例においては、例えばルーティング・テーブル３８ａのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ａ[１２７：０]という宛先アドレス、ルーティング・テーブル３８ｂのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ｂ[１２７：０]という宛先アドレス、ルーティング・テーブル３８ｃのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ｃ[１２７：０]という宛先アドレス、および、ルーティング・テーブル３８ｄのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ｄ[１２７：０]という宛先アドレスの各々に対して共通に対応する次ホップアドレスが、Ｎｅｘｔ＿Ｈｏｐ＿ＩＰ＿ａ[１２７：０]からＮｅｘｔ＿Ｈｏｐ＿ＩＰ＿ｆ[１２７：０]に代わった場合、これら４つの宛先アドレスと１対１に対応する４つの次ホップフィールドを全て修正する必要がある。
【００６３】
これに対して、本実施形態では、図１１に示すように、それぞれが、宛先アドレスと、インデックスを表現する複数のビットとを少なくとも対応付けて記憶する複数（ここでは４つ）のルーティング・テーブル３８ａ〜３８ｄが設けられるとともに、複数のインデックスごとに次ホップアドレスを対応付けて記憶する６ＬｏＷＰＡＮ用次ホップリスト４４が設けられている。
【００６４】
図１１の例では、ルーティング・テーブル３８ａのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ａ[１２７：０]という宛先アドレス、ルーティング・テーブル３８ｂのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ｂ[１２７：０]という宛先アドレス、ルーティング・テーブル３８ｃのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ｃ[１２７：０]という宛先アドレス、および、ルーティング・テーブル３８ｄのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ｄ[１２７：０]という宛先アドレスの各々に対して、インデックス「０」を表すＮｅｘｔ＿Ｈｏｐ＿ＩＰ＿０[１２７：０]が共通に対応付けられている。そして、修正前においては、６ＬｏＷＰＡＮ用次ホップリスト４４のインデックス「０」に対応する次ホップアドレスとして、Ｎｅｘｔ＿Ｈｏｐ＿ＩＰ＿ａ[１２７：０]が対応付けられている。つまり、ルーティング・テーブル３８ａのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ａ[１２７：０]という宛先アドレス、ルーティング・テーブル３８ｂのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ｂ[１２７：０]という宛先アドレス、ルーティング・テーブル３８ｃのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ｃ[１２７：０]という宛先アドレス、および、ルーティング・テーブル３８ｄのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ｄ[１２７：０]という宛先アドレスの各々に対して、Ｎｅｘｔ＿Ｈｏｐ＿ＩＰ＿ａ[１２７：０]という次ホップアドレスが共通に対応付けられていると考えることができる。
【００６５】
本実施形態においては、例えばルーティング・テーブル３８ａのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ａ[１２７：０]という宛先アドレス、ルーティング・テーブル３８ｂのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ｂ[１２７：０]という宛先アドレス、ルーティング・テーブル３８ｃのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ｃ[１２７：０]という宛先アドレス、および、ルーティング・テーブル３８ｄのＤｅｓｔｉｎａｔｉｏｎ＿ＩＰ＿Ｄ[１２７：０]という宛先アドレスの各々に対して共通に対応する次ホップアドレスが、Ｎｅｘｔ＿Ｈｏｐ＿ＩＰ＿ａ[１２７：０]からＮｅｘｔ＿Ｈｏｐ＿ＩＰ＿ｆ[１２７：０]に代わった場合、６ＬｏＷＰＡＮ用次ホップリスト４４のインデックス「０」に対応する１つの次ホップアドレスを、Ｎｅｘｔ＿Ｈｏｐ＿ＩＰ＿ａ[１２７：０]からＮｅｘｔ＿Ｈｏｐ＿ＩＰ＿ｆ[１２７：０]に修正するだけで済むので、対比例に比べて、ＣＰＵの処理負荷を低減することができる。
【００６６】
なお、本実施形態では、図１２に示すように、６ＬｏＷＰＡＮ用次ホップリスト４４はルーティング・テーブル３８とは別に設けられているが、これに限らず、例えばルーティング・テーブル３８は、６ＬｏＷＰＡＮ用次ホップリスト４４を含んで構成される形態であってもよい。
【００６７】
以上、本発明に係る実施形態について説明したが、本発明は、上述の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態および変形例にわたる構成要素を適宜組み合わせてもよい。
【００６８】
また、上述した通信装置１で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ＲＯＭ等の不揮発性の記録媒体に予め組み込んで提供するように構成してもよい。
【符号の説明】
【００６９】
１    通信装置
１０  ＣＰＵ
２０  メモリ
３０  通信処理部
３１  第１の通信インターフェース
３２  第２の通信インターフェース
３３  第３の通信インターフェース
３４  パケット処理部
３５  次ホップ管理部
３６  終点キャッシュ
３７  プレフィックス・リスト
３８  ルーティング・テーブル
３９  デフォルトルータ・リスト
４０  近隣キャッシュ管理部
４１  近隣キャッシュ
４２  パケット送受信部
４３  バッファ
４４  ６ＬｏＷＰＡＮ用次ホップリスト
【先行技術文献】
【特許文献】
【００７０】
【特許文献１】特表２０１４−５００６５３号公報
【図１】
2016082479.tif 000003
【図２】
2016082479.tif 000004
【図３】
2016082479.tif 000005
【図４】
2016082479.tif 000006
【図５】
2016082479.tif 000007
【図６】
2016082479.tif 000008
【図７】
2016082479.tif 000009
【図８】
2016082479.tif 000010
【図９】
2016082479.tif 000011
【図１０】
2016082479.tif 000012
【図１１】
2016082479.tif 000013