(57)【要約】【課題】  １つ以上のルータが接続されたネットワークにおいて、ネットワーク状のルータのＬＡＮ側アドレス空間衝突の検出が可能なアドレス空間衝突検出装置を提供する。【解決手段】  第１の通信端末１０は、ＴＴＬを変化させたルータディスカバリ用パケットを、インターネット上の特定のＩＰアドレスに向けて送信する。第１の通信端末１０は、ルータディスカバリ用パケットに対して宅内ネットワーク１内のルータが送信するＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＥＳＡＧＥを受信して宅内ネットワーク１内のルータを検出する。第１の通信端末１０は、検出したルータのアドレス空間として推定したアドレス空間に対して、アドレス範囲推定パケットを送信し、その応答を用いて、検出したルータのＬＡＮ側アドレス空間を推定する。第１の通信端末１０は、推定したアドレス空間を用いて、宅内ネットワーク１内のアドレス空間衝突を検出する。【選択図】  図７
2006287478.tif 000002
【特許請求の範囲】
【請求項１】
外部ネットワークに接続するローカルネットワークにおいて、当該ローカルネットワーク内の通信機器と当該外部ネットワークとの間に１つ以上の中継装置が直列に接続されており、当該１つ以上の中継装置がそれぞれ備えるＬＡＮ側インターフェースに設定されたＬＡＮ側アドレス空間の衝突を検出する、当該通信機器に組み込まれたアドレス空間衝突検出装置であって、
前記１つ以上の中継装置とパケットの送受信を行うパケット送受信部と、
前記１つ以上の中継装置を検出するための１つ以上のルータディスカバリ用パケットを作成し、前記パケット送受信部に当該ルータディスカバリ用パケットの送信を指示するルータディスカバリ用パケット作成部と、
前記パケット送受信部がそれぞれの前記ルータディスカバリ用パケットに対する応答を受信したことを確認して前記１つ以上の中継装置を検出し、当該応答を参照して前記１つ以上の中継装置のＬＡＮ側インターフェースのＩＰアドレスであるＬＡＮ側アドレスを取得する受信パケット解析部と、
前記１つ以上の中継装置のアドレスを用いて前記ＬＡＮ側アドレス空間を推定し、前記１つ以上の中継装置の相互間、及び前記１つ以上の中継装置と前記外部ネットワークとの相互間において、ＬＡＮ側アドレス空間の衝突が発生しているか否かを判断するアドレス空間衝突検出部とを備える、アドレス空間衝突検出装置。
【請求項２】
前記ルータディスカバリ用パケット作成部は、ＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）を変化させたＴＴＬパケットを、ルータディスカバリ用パケットとして作成し、
前記ルータディスカバリ用パケットに対する応答は、ＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥであることを特徴とする、請求項１に記載のアドレス空間衝突検出装置。
【請求項３】
前記１つ以上の中継装置は、前記通信機器から外部ネットワークに向けて第１から第Ｎ（Ｎは１以上の自然数）の順に直列に接続されており、
前記アドレス空間衝突検出装置は、
既に検出された前記中継装置のＷＡＮ側インターフェースのＩＰアドレスであるＷＡＮ側アドレスを取得するＷＡＮ側アドレス取得部とをさらに備え、
前記ルータディスカバリ用パケット作成部は、第１の中継装置のＬＡＮ側アドレスを取得し、第ｉ（ｉは２〜Ｎの自然数）の中継装置を検出する場合、既に検出された前記第ｉ−１の中継装置のＷＡＮ側アドレスを用いて第ｉの中継装置のＬＡＮ側アドレスを推定し、推定した１つ以上のＬＡＮ側アドレスを送信先とした第ｉの推定ルータパケットを、前記ルータディスカバリ用パケットとして作成することを特徴とする、請求項１に記載のアドレス空間衝突検出装置。
【請求項４】
前記１つ以上の中継装置は、前記通信機器から外部ネットワークに向けて第１から第Ｎ（Ｎは１以上の自然数）の順に直列に接続されており、
前記アドレス空間衝突検出装置は、
既に検出された前記中継装置のＷＡＮ側インターフェースのＩＰアドレスであるＷＡＮ側アドレスを取得するＷＡＮ側アドレス取得部と、
前記ＴＴＬパケットに対する応答のタイムアウトを検出するタイムアウト検出部とをさらに備え、
前記ＷＡＮ側アドレス取得部は、
前記タイムアウト検出部がＴＴＬ＝１に設定された前記ＴＴＬパケットに対する応答のタイムアウトを検出した場合、前記ルータディスカバリ用パケット作成部が取得する第１の中継装置のＬＡＮ側アドレスに基づいて、当該第１の中継装置のＷＡＮ側アドレスを取得し、
前記タイムアウト検出部がＴＴＬ＝ｉ（ｉは２〜Ｎの自然数）に設定された前記ＴＴＬパケットに対する応答のタイムアウトを検出した場合、既に検出された第ｉ−１の中継装置のＷＡＮ側アドレスを取得し、
前記ルータディスカバリ用パケット作成部は、前記タイムアウト検出部がタイムアウトを検出した場合、前記ＴＴＬパケットの作成を中止し、前記第ｉ−１の中継装置のＷＡＮ側アドレスを用いて第ｉの中継装置のＬＡＮ側アドレスを推定し、推定した１つ以上のＬＡＮ側アドレスを送信先とした第ｉの推定ルータパケットを、前記ルータディスカバリ用パケットとして作成することを特徴とする、請求項２に記載のアドレス空間衝突検出装置。
【請求項５】
前記１つ以上の中継装置は、前記通信機器から外部ネットワークに向けて第１から第Ｎ（Ｎは１以上の自然数）の順に直列に接続されており、
前記アドレス空間衝突検出装置は、
既に検出された前記中継装置のＷＡＮ側インターフェースのＩＰアドレスであるＷＡＮ側アドレスを取得するＷＡＮ側アドレス取得部と、
既に検出された前記第ｉ（ｉは１〜Ｎの自然数）の中継装置のＷＡＮ側アドレスが、既に検出された第ｊ（ｊはｉ＋１〜Ｎ−１の自然数）の中継装置のＬＡＮ側アドレス空間の範囲内であるか否かを判定するルータアドレス検証部とをさらに備え、
前記ルータアドレス検証部は、第ｉの中継装置のＷＡＮ側アドレスが第ｊの中継装置のＬＡＮ側アドレス空間の範囲内でない場合、前記ＷＡＮ側アドレス検出部及び前記ルータディスカバリ用パケット作成部に、一致しない旨を通知し、
前記ＷＡＮ側アドレス取得部は、前記ルータアドレス検証部の通知に基づいて、前記第ｉの中継装置のＷＡＮ側アドレスを取得し、
前記ルータディスカバリ用パケット作成部は、第１の中継装置のＬＡＮ側アドレスを取得し、前記ルータアドレス検証部からの通知に基づいて、前記第ｉの中継装置のＷＡＮ側アドレスを用いて第ｉ＋１の中継装置のＬＡＮ側アドレスを推定し、推定した１つ以上のＬＡＮ側アドレスを送信した第ｉ＋１の推定ルータパケットを、前記ルータディスカバリ用パケットとして作成することを特徴とする、請求項２に記載のアドレス空間衝突検出装置。
【請求項６】
前記１つ以上の中継装置は、前記通信機器から外部ネットワークに向けて第１から第Ｎ（Ｎは１以上の自然数）の順に直列に接続しており、
前記アドレス空間衝突検出装置は、
既に検出された前記の中継装置のＷＡＮ側インターフェースのＩＰアドレスであるＷＡＮ側アドレスを取得するＷＡＮ側アドレス取得部とをさらに備え、
前記ルータディスカバリ用パケット作成部は、第１の中継装置のＬＡＮ側アドレスを取得し、ルータディスカバリ用パケットとして、前記第ｉ（ｉは１〜Ｎの自然数）の中継装置のＷＡＮ側アドレスを用いて推定した第ｉ＋１の中継装置のＬＡＮ側アドレスを送信先とした第ｉ＋１の推定ルータパケットと、ＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）＝ｉ＋１に設定した前記ＴＴＬパケットとを送信することを特徴とする、請求項２に記載のアドレス空間衝突検出装置。
【請求項７】
前記ルータディスカバリ用パケット作成部は、ＴＴＬの値と送信先ポート番号とを一対一で対応させた前記ＴＴＬパケットを作成することを特徴とする、請求項２または４〜６のいずれかに記載のアドレス空間衝突検出装置。
【請求項８】
前記推定ルータパケットは、ＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）  ＩＧＤ（Ｉｎｔｅｒｎｅｔ  Ｇａｔｅｗａｙ  Ｄｅｖｉｃｅ）仕様に基づくＭ−Ｓｅａｒｃｈであることを特徴とする、請求項３〜６のいずれかに記載のアドレス空間衝突検出装置。
【請求項９】
前記アドレス空間衝突検出部は、検出した前記中継装置のＬＡＮ側アドレスを用いて、検出した前記中継装置のＬＡＮ側アドレス空間を推定し、
推定した前記ＬＡＮ側アドレス空間のＩＰアドレスを送信先としたアドレス空間推定パケットを作成し、前記パケット送受信部が当該アドレス空間推定パケットの応答としてＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを受信した場合、当該アドレス空間推定パケットの送信先のＩＰアドレスが推定した前記ＬＡＮ側アドレス空間の範囲外であると判断し、判断結果に基づいて、推定した前記ＬＡＮ側アドレス空間を更新し、
前記アドレス空間推定パケットのＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）の値は、前記検出した中継装置と前記通信装置との間に直列に接続される前記中継装置の数に応じた値であることを特徴とする、請求項１に記載のアドレス空間衝突検出装置。
【請求項１０】
前記アドレス空間衝突検出部は、検出した前記中継装置のＷＡＮ側アドレスを用いて、検出した前記中継装置のＷＡＮ側インターフェースと接続する上位中継装置の前記ＬＡＮ側アドレス空間を推定し、推定した当該上位中継装置のＬＡＮ側アドレス空間のＩＰアドレスを送信先としたアドレス空間推定パケットを作成し、前記パケット送受信部が当該アドレス空間推定パケットの応答としてＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを受信した場合、当該アドレス空間推定パケットの送信先のＩＰアドレスが推定した当該上位中継装置のＬＡＮ側アドレス空間の範囲外であると判断し、判断結果に基づいて、推定した当該上位中継装置のＬＡＮ側アドレス空間を更新し、
前記アドレス空間推定パケットのＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）の値は、前記上位中継装置と前記通信装置との間に直列に接続される前記中継装置の数に応じた値であることを特徴とする、請求項１に記載のアドレス空間衝突検出装置。
【請求項１１】
前記アドレス空間衝突検出装置は、ＬＡＮ側アドレス空間の衝突を検出した場合、ユーザにＬＡＮ側アドレス空間の衝突の発生と、ＬＡＮ側アドレス空間の設定の変更内容とのうち、少なくとも１つを通知するユーザ通知部をさらに備える、請求項１に記載のアドレス空間衝突検出装置。
【請求項１２】
前記アドレス空間衝突検出装置は、アドレス空間の衝突を検出した場合、アドレス空間の衝突が発生している前記中継装置にアクセスして、ＬＡＮ側アドレス空間の設定を変更するアドレス空間設定修正部をさらに備えることを特徴とする、請求項１に記載のアドレス空間衝突検出装置。
【請求項１３】
前記アドレス空間設定修正部は、第ｉ（ｉは２〜Ｎの自然数）の中継装置のＬＡＮ側アドレス空間と、第ｊ（ｊは、１〜ｉ−１の自然数）の中継装置のＬＡＮ側アドレス空間との衝突を検出した場合、前記第ｊの中継装置のＬＡＮ側アドレス空間の設定を、他の中継装置のＬＡＮ側アドレス空間と異なるアドレス空間に変更することを特徴とする、請求項１１に記載のアドレス空間衝突検出装置。
【請求項１４】
前記アドレス空間衝突検出装置は、前記ローカルネットワーク内を伝送されるデータを中継するためのルーティング部をさらに備え、
前記アドレス空間衝突検出部は、前記ルーティング部と前記１つ以上の中継装置との相互間において、ＬＡＮ側アドレス空間が衝突しているか否かを検出し、
前記アドレス空間設定修正部は、前記ルーティング部と前記１つ以上の中継装置との相互間において、ＬＡＮ側アドレス空間の衝突を検出した場合、前記ルーティング部のＬＡＮ側アドレス空間を、前記１つ以上の中継装置のＬＡＮ側アドレス空間と異なるアドレス空間に変更することを特徴とする、請求項１２に記載のアドレス空間衝突検出装置。
【請求項１５】
外部ネットワークに接続するローカルネットワークにおいて、当該ローカルネットワーク内の通信機器と当該外部ネットワークとの間に１つ以上の中継装置が直列に接続されており、当該通信機器が実行可能な、当該１つ以上の中継装置が備える各ＬＡＮ側インターフェースに設定されたＬＡＮ側アドレス空間の衝突を検出するアドレス空間衝突検出方法であって、
前記１つ以上の中継装置を検出するための１つ以上のルータディスカバリ用パケットを作成するステップと、
前記パケット送受信部に当該ルータディスカバリ用パケットの送信を指示するステップと、
前記パケット送受信部がそれぞれの前記ルータディスカバリ用パケットに対する応答を受信したことを確認して前記１つ以上の中継装置を検出するステップと、
当該応答を参照して前記１つ以上の中継装置のＬＡＮ側インターフェースのＩＰアドレスであるＬＡＮ側アドレスを取得するステップと、
前記１つ以上の中継装置のアドレスを用いて前記ＬＡＮ側アドレス空間を推定するステップと、
前記１つ以上の中継装置の相互間、及び前記１つ以上の中継装置と前記外部ネットワークとの相互間において、ＬＡＮ側アドレス空間の衝突が発生しているか否かを判断するステップとを備える、アドレス空間衝突検出方法。
【請求項１６】
外部ネットワークに接続するローカルネットワークにおいて、当該ローカルネットワーク内の通信機器と当該外部ネットワークとの間に１つ以上の中継装置が直列に接続されており、当該通信機器が実行可能な、当該１つ以上の中継装置が備える各ＬＡＮ側インターフェースに設定されたＬＡＮ側アドレス空間の衝突を検出するプログラムを記録した記録媒体であって、
前記１つ以上の中継装置を検出するための１つ以上のルータディスカバリ用パケットを作成するステップと、
前記パケット送受信部に当該ルータディスカバリ用パケットの送信を指示するステップと、
前記パケット送受信部がそれぞれの前記ルータディスカバリ用パケットに対する応答を受信したことを確認して前記１つ以上の中継装置を検出するステップと、
当該応答を参照して前記１つ以上の中継装置のＬＡＮ側インターフェースのＩＰアドレスであるＬＡＮ側アドレスを取得するステップと、
前記１つ以上の中継装置のアドレスを用いて前記ＬＡＮ側アドレス空間を推定するステップと、
前記１つ以上の中継装置の相互間、及び前記１つ以上の中継装置と前記外部ネットワークとの相互間において、ＬＡＮ側アドレス空間の衝突が発生しているか否かを判断するステップとを備えるプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドレス空間衝突の検出方法及びアドレス空間衝突の検出装置に関し、より特定的には、ルータが接続されたプライベートネットワークにおける、アドレス空間衝突の検出方法及びアドレス空間衝突の検出装置に関する。
【背景技術】
【０００２】
企業や一般家庭においてプライベートネットワークを構築する場合、アドレス変換（ＮＡＴ：Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）機能を備えたルータ（以下、単にルータという）を用いてネットワークを構築することが多い。ルータのＬＡＮ側ネットワークは、通常、プライベートＩＰアドレス（以下、プライベートアドレスという）によって構築される。ルータのＬＡＮ側インターフェースに設定されるＬＡＮ側アドレス空間（ネットワークアドレス）は、ユーザが自由に設定することが可能である。
【０００３】
中継装置（ルータ）のＬＡＮ側アドレス空間とは、中継装置のＬＡＮ側ネットワークに接続される通信機器が設定することができるＩＰアドレスの集合である。中継装置のＬＡＮ側アドレス空間を設定することにより、中継装置のＬＡＮ側インターフェースには、アドレスとして中継装置のＬＡＮ側アドレス空間の範囲内のアドレスと、ＬＡＮ側アドレス空間に対応するネットマスクとが設定される。加えて、中継装置が通信端末に対するＩＰアドレス割り当て機能を持つ場合、中継装置のＩＰアドレス割り当て機能が通信機器に割り当てるＩＰアドレスとネットマスクとが、それぞれ、中継装置のＬＡＮ側アドレス空間内のＩＰアドレスと、ＬＡＮ側アドレス空間に対応するネットマスクとになる。以下、ルータのアドレス空間という場合には、特に断りのない限り、ルータのＬＡＮ側アドレス空間を指すものとして説明を行う。
【０００４】
複数のルータを用いてネットワークが構成された場合、各ルータのアドレス空間がユーザによってそれぞれ異なるように設定されていれば、ネットワークに問題は発生しない。しかし、各ルータのアドレス空間が重複している場合、ネットワークには、同一アドレスを持つ通信機器が存在することが可能になる。
【０００５】
例えば、図４２に示すネットワークの場合、ルータＡ９２とルータＣ９４とは、同一のアドレス空間（１９２．１６８．０．１〜１９２．１６８．０．２５４）を持つ。このため、ルータＡ９２に接続された通信端末９１とルータＣ９４に接続された通信端末９５とが同一のアドレスと持つことがあり得る。このようなネットワークでは、ネットワーク内の通信機器が互いに通信することが出来ないという問題が発生する。これは、以下の理由によって発生する。
（１）異なる通信機器に同一のアドレスが割り当てられると、アドレスで通信機器を一意に特定することができなくなる。
（２）送信先通信機器のアドレス空間が送信元通信機器のアドレス空間と同一である場合、送信元通信機器の通信処理モジュールは、送信先通信機器が同一ルータに接続されているものとして処理を行う。結果として、送信元通信機器が接続しているルータのＬＡＮ側ネットワークでアドレス解決を実行しようとするため、ルータは、誤った通信端末にパケットを送信するか、アドレス解決に失敗し、通信失敗と判断する。
【０００６】
このように、各ルータのアドレス空間が重複している状態を、アドレス空間が衝突しているという。このように、各ルータのアドレス空間が衝突した場合、どちらかのルータのアドレス空間を適切に変更する必要がある。また、ルータのＬＡＮ側ネットワークに接続する通信機器の設定を変更する必要がある。このため、各ルータのアドレス空間が衝突した場合、ユーザが行う作業は非常に複雑なものとなる。
【０００７】
また、近年、無線ルータの急速な普及に伴い、一般家庭において従来から使用されている宅内ネットワークに、新たに無線ルータを接続した宅内ネットワークが構成される場合がある。すなわち、一般家庭においても、ＮＡＴ機能を備えた複数のルータを接続した宅内ネットワークが構築される例が多く見られるようになってきている。しかし、宅内ネットワークには、ネットワーク技術に詳しい管理者を期待することはできない。このため、宅内ネットワークにおいてアドレス空間の衝突が発生した場合、宅内ネットワークの利用者は、アドレス空間の衝突に気がつかない、または、アドレス空間の衝突に気づいても修正できないという問題が発生する。
【０００８】
さらに、ＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）が、常時接続によるリスクの回避や、使用可能なグローバルＩＰアドレス（以下、グローバルアドレスという）の枯渇によって、プライベートアドレスを使用する場合がある。この場合、企業内ネットワークや宅内ネットワークと、ＩＳＰとを接続した場合、アドレス空間の衝突が発生する可能性がある。すなわち、この場合には、１台のルータだけで構成されたプライベートネットワークにおいてもアドレス空間の衝突が発生する場合がある。
【０００９】
このようなアドレス空間の衝突を解決する方法として、特許文献１に示す方法が知られている。図４３は、特許文献１が示すアドレス空間の衝突検出方法を示す図である。図４３において、ネットワークＡ９７とネットワークＢ９８とは、ゲートウェイ９６を介して接続されている。ゲートウェイ９６は、インターフェースＡ９６１とインターフェースＢ９６２とを備えている。インターフェースＡ９６１は、ネットワークＡ９７に接続するためのインターフェースであり、ネットワークＡ９７のプライベートアドレスが設定される。インターフェースＢ９６２は、ネットワークＢ９８に接続するためのインターフェースであり、ネットワークＢ９８のプライベートアドレスが設定される。ゲートウェイ９６は、インターフェースＡ９６１のプライベートアドレスと、インターフェースＢ９６２のプライベートアドレスとを比較して、アドレス衝突が発生しているかどうかを判定する。
【特許文献１】特開２００３−７８５４１号公報
【非特許文献１】「ユーピーエヌピー  デザイン  バイ  イグザンプル（ＵＰｎＰ  Ｄｅｓｉｇｎ  ｂｙ  Ｅｘａｍｐｌｅ）」、マイケル  ジェロニモ（Ｍｉｃｈａｅｌ  Ｊｅｒｏｎｉｍｏ）、ジャック  ウィースト（Ｊａｃｋ  Ｗｅａｓｔ）著、インテル  プレス（Ｉｎｔｅｌ  Ｐｒｅｓｓ）刊、２００３年４月
【非特許文献２】ユーピーエヌピー  フォーラム（ＵＰｎＰ（ＴＭ）  Ｆｏｒｕｍ），“インターネットゲートウェイデバイス：１  デバイス  テンプレート  バージョン１．０１（ＩｎｔｅｒｎｅｔＧａｔｅｗａｙＤｅｖｉｃｅ：１  Ｄｅｖｉｃｅ  Ｔｅｍｐｌａｔｅ  Ｖｅｒｓｉｏｎ  １．０１）”、［ｏｎｌｉｎｅ］、２００１年１１月１２日、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｕｐｎｐ．ｏｒｇ／ｓｔａｎｄａｒｄｉｚｅｄｄｃｐｓ／ｄｏｃｕｍｅｎｔｓ／ＵＰｎＰ＿ＩＧＤ＿１．０．ｚｉｐ＞
【非特許文献３】ユーピーエヌピー  フォーラム（ＵＰｎＰ（ＴＭ）  Ｆｏｒｕｍ），“ワンアイピーコネクション：１  サービス  テンプレート  バージョン１．０１（ＷＡＮＩＰＣｏｎｎｅｃｔｉｏｎ：１  Ｓｅｒｖｉｃｅ  Ｔｅｍｐｌａｔｅ  Ｖｅｒｓｉｏｎ  １．０１）”、［ｏｎｌｉｎｅ］、２００１年１１月１２日、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｕｐｎｐ．ｏｒｇ／ｓｔａｎｄａｒｄｉｚｅｄｄｃｐｓ／ｄｏｃｕｍｅｎｔｓ／ＵＰｎＰ＿ＩＧＤ＿１．０．ｚｉｐ＞
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、特許文献１が示すアドレス空間の衝突検出方法は、ルータ自身のＷＡＮ側のネットワーク情報とＬＡＮ側のネットワーク情報とを比較して、アドレス空間衝突を検出する。このため、ルータが特許文献１の方法に対応していないネットワークにおいては、アドレス空間の衝突を検出することができないという課題がある。この課題は、前述のように、１台のルータだけで構成されたプライベートネットワークでも発生する。
【００１１】
また、ルータが特許文献１に示す方法に対応している場合でも、ＮＡＴ機能を備えるルータが３段以上構成されたネットワークに対して適用した場合、特許文献１に示す方法では、アドレス空間の衝突が発生していても衝突を検出できないという問題が発生する。図４２に示す例では、宅内ネットワークにおいて、ルータＡ９２及びルータＣ９４のそれぞれのアドレス空間が衝突している。しかし、特許文献１が示す方法を、図４２に示す例に適用すると、アドレス空間の衝突はないと判断される。
【００１２】
また、特許文献１が示す方法は、ネットワーク間を接続する装置（例えば、ルータなど）に対してのみ適用可能である。このため、ネットワークに接続された各通信端末は、特許文献１に示す方法を用いて、ネットワークのアドレス空間衝突の検出及び修正を行うことができないという問題がある。
【００１３】
本発明は、上記の問題を解決するためになされたものであり、１つ以上のルータが接続されたネットワークにおいて、アドレス空間衝突を検出して、ルータのアドレス空間を修正することが可能なアドレス空間衝突の検出装置及びアドレス空間衝突の検出方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、本発明は、以下のような特徴を有する。外部ネットワークに接続するローカルネットワークにおいて、当該ローカルネットワーク内の通信機器と当該外部ネットワークとの間に１つ以上の中継装置が直列に接続されており、当該１つ以上の中継装置が備える各ＬＡＮ側インターフェースに設定されたＬＡＮ側アドレス空間の衝突を検出する、当該通信機器に組み込まれたアドレス空間衝突検出装置であって、１つ以上の中継装置とパケットの送受信を行うパケット送受信部と、１つ以上の中継装置を検出するための１つ以上のルータディスカバリ用パケットを作成し、パケット送受信部に当該ルータディスカバリ用パケットの送信を指示するルータディスカバリ用パケット作成部と、パケット送受信部がそれぞれのルータディスカバリ用パケットに対する応答を受信したことを確認して１つ以上の中継装置を検出し、当該応答を参照して１つ以上の中継装置のＬＡＮ側インターフェースのＩＰアドレスであるＬＡＮ側アドレスを取得する受信パケット解析部と、１つ以上の中継装置のアドレスを用いてＬＡＮ側アドレス空間を推定し、１つ以上の中継装置の相互間、及び１つ以上の中継装置と外部ネットワークとの相互間において、ＬＡＮ側アドレス空間の衝突が発生しているか否かを判断するアドレス空間衝突検出部とを備える。
【００１５】
好ましくは、ルータディスカバリ用パケット作成部は、ＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）を変化させたＴＴＬパケットを、ルータディスカバリ用パケットとして作成し、ルータディスカバリ用パケットに対する応答は、ＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥであるとよい。
【００１６】
好ましくは、１つ以上の中継装置は、通信機器から外部ネットワークに向けて第１から第Ｎ（Ｎは１以上の自然数）の順に直列に接続されており、アドレス空間衝突検出装置は、既に検出された中継装置のＷＡＮ側インターフェースのＩＰアドレスであるＷＡＮ側アドレスを取得するＷＡＮ側アドレス取得部とをさらに備え、ルータディスカバリ用パケット作成部は、第１の中継装置のＬＡＮ側アドレスを取得し、第ｉ（ｉは２〜Ｎの自然数）の中継装置を検出する場合、既に検出された第ｉ−１の中継装置のＷＡＮ側アドレスを用いて第ｉの中継装置のＬＡＮ側アドレスを推定し、推定した１つ以上のＬＡＮ側アドレスを送信先とした第ｉの推定ルータパケットを、ルータディスカバリ用パケットとして作成するとよい。
【００１７】
好ましくは、１つ以上の中継装置は、通信機器から外部ネットワークに向けて第１から第Ｎ（Ｎは１以上の自然数）の順に直列に接続されており、アドレス空間衝突検出装置は、既に検出された中継装置のＷＡＮ側インターフェースのＩＰアドレスであるＷＡＮ側アドレスを取得するＷＡＮ側アドレス取得部と、前記ＴＴＬパケットに対する応答のタイムアウトを検出するタイムアウト検出部とをさらに備え、ＷＡＮ側アドレス取得部は、タイムアウト検出部がＴＴＬ＝１に設定されたＴＴＬパケットに対する応答のタイムアウトを検出した場合、ルータディスカバリ用パケット作成部が取得する第１の中継装置のＬＡＮ側アドレスに基づいて、第１の中継装置のＷＡＮ側アドレスを取得し、タイムアウト検出部がＴＴＬ＝ｉ（ｉは２〜Ｎの自然数）に設定されたＴＴＬパケットに対する応答のタイムアウトを検出した場合、既に検出された第ｉ−１の中継装置のＷＡＮ側アドレスを取得し、ルータディスカバリ用パケット作成部は、タイムアウト検出部がタイムアウトを検出した場合、ＴＴＬパケットの作成を中止し、第ｉ−１の中継装置のＷＡＮ側アドレスを用いて第ｉの中継装置のＬＡＮ側アドレスを推定し、推定した１つ以上のＬＡＮ側アドレスを送信先とした第ｉの推定ルータパケットを、ルータディスカバリ用パケットとして作成するとよい。
【００１８】
好ましくは、１つ以上の中継装置は、通信機器から外部ネットワークに向けて第１から第Ｎ（Ｎは１以上の自然数）の順に直列に接続されており、アドレス空間衝突検出装置は、既に検出された中継装置のＷＡＮ側インターフェースのＩＰアドレスであるＷＡＮ側アドレスを取得するＷＡＮ側アドレス取得部と、既に検出された第ｉ（ｉは１〜Ｎの自然数）の中継装置のＷＡＮ側アドレスが、既に検出された第ｊ（ｊはｉ＋１〜Ｎ−１の自然数）の中継装置のＬＡＮ側アドレス空間の範囲内であるか否かを判定するルータアドレス検証部とをさらに備え、ルータアドレス検証部は、第ｉの中継装置のＷＡＮ側アドレスが第ｊの中継装置のＬＡＮ側アドレス空間の範囲内でない場合、ＷＡＮ側アドレス検出部及びルータディスカバリ用パケット作成部に、一致しない旨を通知し、ＷＡＮ側アドレス取得部は、ルータアドレス検証部の通知に基づいて、第ｉの中継装置のＷＡＮ側アドレスを取得し、ルータディスカバリ用パケット作成部は、第１の中継装置のＬＡＮ側アドレスを取得し、ルータアドレス検証部からの通知に基づいて、第ｉの中継装置のＷＡＮ側アドレスを用いて第ｉ＋１の中継装置のＬＡＮ側アドレスを推定し、推定したＬＡＮ側アドレスを送信した第ｉ＋１の推定ルータパケットを、ルータディスカバリ用パケットとして作成するとよい。
【００１９】
好ましくは、１つ以上の中継装置は、通信機器から外部ネットワークに向けて第１から第Ｎ（Ｎは１以上の自然数）の順に直列に接続しており、アドレス空間衝突検出装置は、既に検出されたの中継装置のＷＡＮ側インターフェースのＩＰアドレスであるＷＡＮ側アドレスを取得するＷＡＮ側アドレス取得部とをさらに備え、ルータディスカバリ用パケット作成部は、第１の中継装置のＬＡＮ側アドレスを取得し、ルータディスカバリ用パケットとして、第ｉ（ｉは１〜Ｎの自然数）の中継装置のＷＡＮ側アドレスを用いて推定した第ｉ＋１の中継装置のＬＡＮ側アドレスを送信先とした第ｉ＋１の推定ルータパケットと、ＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）＝ｉ＋１に設定したＴＴＬパケットとを送信するとよい。
【００２０】
また、ルータディスカバリ用パケット作成部は、ＴＴＬ値と送信先ポート番号とを一対一で対応させたＴＴＬパケットを作成するとよい。また、推定ルータパケットは、ＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）  ＩＧＤ（Ｉｎｔｅｒｎｅｔ  Ｇａｔｅｗａｙ  Ｄｅｖｉｃｅ）仕様に基づくＭ−Ｓｅａｒｃｈであるとよい。
【００２１】
好ましくは、アドレス空間衝突検出部は、検出した中継装置のＬＡＮ側アドレスを用いて、検出した中継装置のＬＡＮ側アドレス空間を推定し、パケット送受信部が当該アドレス空間推定パケットの応答としてＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを受信した場合、当該アドレス空間推定パケットの送信先のＩＰアドレスが推定したＬＡＮ側アドレス空間の範囲外であると判断し、判断結果に基づいて、推定したＬＡＮ側アドレス空間を更新し、アドレス空間推定パケットのＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）の値は、検出した中継装置と通信装置との間に直列に接続される中継装置の数に応じた値であるとよい。
【００２２】
好ましくは、アドレス空間衝突検出部は、検出した中継装置のＷＡＮ側アドレスを用いて、検出した中継装置のＷＡＮ側インターフェースと接続する上位中継装置のＬＡＮ側アドレス空間を推定し、推定した当該上位中継装置のＬＡＮ側アドレス空間のＩＰアドレスを送信先としたアドレス空間推定パケットを作成し、パケット送受信部が当該アドレス空間推定パケットの応答としてＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを受信した場合、当該アドレス空間推定パケットの送信先のＩＰアドレスが推定した当該上位中継装置のＬＡＮ側アドレス空間の範囲外であると判断し、判断結果に基づいて、推定した当該上位中継装置のＬＡＮ側アドレス空間を更新し、アドレス空間推定パケットのＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）の値は、上位中継装置と通信装置との間に直列に接続される中継装置の数に応じた値であるとよい。
【００２３】
好ましくは、アドレス空間衝突検出装置は、ＬＡＮ側アドレス空間の衝突を検出した場合、ユーザにＬＡＮ側アドレス空間の衝突の発生と、ＬＡＮ側アドレス空間の設定の変更内容とのうち、少なくとも１つを通知するユーザ通知部をさらに備えるとよい。
【００２４】
好ましくは、アドレス空間衝突検出装置は、アドレス空間の衝突を検出した場合、アドレス空間の衝突が発生している中継装置にアクセスして、ＬＡＮ側アドレス空間の設定を変更するアドレス空間設定修正部をさらに備えるとよい。また、アドレス空間設定修正部は、第ｉ（ｉは２〜Ｎの自然数）の中継装置のＬＡＮ側アドレス空間と、第ｊ（ｊは、１〜ｉ−１の自然数）の中継装置のＬＡＮ側アドレス空間との衝突を検出した場合、第ｊの中継装置のＬＡＮ側アドレス空間の設定を、他の中継装置のＬＡＮ側アドレス空間と異なるアドレス空間に変更するとよい。
【００２５】
また、アドレス空間衝突検出装置は、ローカルネットワーク内を伝送されるデータを中継するためのルーティング部をさらに備え、アドレス空間衝突検出部は、ルーティング部と１つ以上の中継装置との相互間において、ＬＡＮ側アドレス空間が衝突しているか否かを検出し、アドレス空間設定修正部は、ルーティング部と１つ以上の中継装置との相互間において、ＬＡＮ側アドレス空間の衝突を検出した場合、ルーティング部のＬＡＮ側アドレス空間を、１つ以上の中継装置のＬＡＮ側アドレス空間と異なるアドレス空間に変更するとよい。
【００２６】
また、本発明は、外部ネットワークに接続するローカルネットワークにおいて、当該ローカルネットワーク内の通信機器と当該外部ネットワークとの間に１つ以上の中継装置が直列に接続されており、当該通信機器が実行可能な、当該１つ以上の中継装置が備える各ＬＡＮ側インターフェースに設定されたＬＡＮ側アドレス空間の衝突を検出するアドレス空間衝突検出方法であって、１つ以上の中継装置を検出するための１つ以上のルータディスカバリ用パケットを作成するステップと、パケット送受信部に当該ルータディスカバリ用パケットの送信を指示するステップと、パケット送受信部がそれぞれのルータディスカバリ用パケットに対する応答を受信したことを確認して１つ以上の中継装置を検出するステップと、当該応答を参照して１つ以上の中継装置のＬＡＮ側インターフェースのＩＰアドレスであるＬＡＮ側アドレスを取得するステップと、１つ以上の中継装置のアドレスを用いてＬＡＮ側アドレス空間を推定するステップと、１つ以上の中継装置の相互間、及び１つ以上の中継装置と外部ネットワークとの相互間において、ＬＡＮ側アドレス空間の衝突が発生しているか否かを判断するステップとを備える。
【００２７】
外部ネットワークに接続するローカルネットワークにおいて、当該ローカルネットワーク内の通信機器と当該外部ネットワークとの間に１つ以上の中継装置が直列に接続されており、当該通信機器が実行可能な、当該１つ以上の中継装置が備える各ＬＡＮ側インターフェースに設定されたＬＡＮ側アドレス空間の衝突を検出するプログラムを記録した記録媒体であって、１つ以上の中継装置を検出するための１つ以上のルータディスカバリ用パケットを作成するステップと、パケット送受信部に当該ルータディスカバリ用パケットの送信を指示するステップと、パケット送受信部がそれぞれのルータディスカバリ用パケットに対する応答を受信したことを確認して１つ以上の中継装置を検出するステップと、当該応答を参照して１つ以上の中継装置のＬＡＮ側インターフェースのＩＰアドレスであるＬＡＮ側アドレスを取得するステップと、１つ以上の中継装置のアドレスを用いてＬＡＮ側アドレス空間を推定するステップと、１つ以上の中継装置の相互間、及び１つ以上の中継装置と外部ネットワークとの相互間において、ＬＡＮ側アドレス空間の衝突が発生しているか否かを判断するステップとを備える。
【発明の効果】
【００２８】
以下、本発明の効果について説明する。本発明によれば、本発明に係るアドレス空間衝突検出装置を備える通信機器は、自身と外部ネットワークとの間に接続されている中継機器を検出するためのルータディスカバリ用パケットを送信し、ルータディスカバリ用パケットの応答を受信することによって中継装置を検出し、中継装置のＬＡＮ側アドレスを取得する。また、検出した中継装置のＬＡＮ側アドレスを用いて、検出した中継装置のＬＡＮ側アドレス空間を推定し、推定したそれぞれの中継機器相互間において、ＬＡＮ側アドレス空間の衝突が発生しているか否か判断する。したがって、自身と外部ネットワークとの間に接続される一つ以上の中継装置を検出し、検出したルータのＬＡＮ側アドレス空間の衝突を検出することが可能になる。また、本発明のアドレス空間衝突装置は、中継装置を検出し、検出した中継装置のアドレス空間の衝突の判定を行うため、中継装置や通信端末の一機能として使用することができる。
【００２９】
ルータディスカバリ用パケットとしてＴＴＬを変化させたＴＴＬパケットを送信し、その応答としてＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを受信することによって、自身と外部ネットワークとの間に接続される中継装置を高速に検出することができる。また、既に検出された中継装置のＷＡＮ側アドレスを取得し、ＷＡＮ側アドレスから上位ルータのＬＡＮ側アドレスを推測した推定ルータパケットを送信し、その応答を受信することによって、ＩＣＭＰメッセージをフィルタリングする中継装置やＴＴＬを処理しない中継装置の検出が可能となる。
【００３０】
ルータディスカバリ用パケットとしてＴＴＬパケットを送信し、ＴＴＬパケットの応答を受信がタイムアウトした場合、既に検出された中継装置のＷＡＮ側アドレスを取得し、ＷＡＮ側アドレスから上位ルータのＬＡＮ側アドレスを推測した推定ルータパケットを送信し、その応答を受信することによって、ＩＣＭＰメッセージをフィルタリングする中継装置が存在するネットワークであっても、高速にルータを検出することが可能となる。
【００３１】
ルータディスカバリ用パケットとしてＴＴＬパケットを送信し、ＴＴＬパケットの応答によって検出した中継装置のＬＡＮ側アドレス空間と、検出した１つ下位の中継装置のＷＡＮ側アドレスとが一致しない場合、１つ下位の中継装置のＷＡＮ側アドレスを取得し、ＷＡＮ側アドレスから上位の中継装置のＬＡＮ側アドレスを推測した推定ルータパケットを送信し、その応答を受信することによって、ＴＴＬパケットを用いて検出することが不可能なＴＴＬを処理しない中継装置を高速に検出することが可能となる。
【００３２】
ルータディスカバリ用パケットとして、ＴＴＬパケットと推定ルータパケットとを同時に送信することによって、ＩＣＭＰメッセージをフィルタリングするルータや、ＴＴＬを処理しないルータ、ＵＰｎＰ  ＩＧＤ仕様に対応していないルータなどを確実に検出することができる。
【００３３】
検出した中継装置のアドレス空間を推定し、推定したアドレス空間内のアドレスに対してアドレス範囲推定パケットを送信し、その応答を受信することによって、検出した中継装置のアドレス空間を判定することができる。また、判定したアドレス空間を用いるため、正確なアドレス空間の衝突検出が可能となる。
【００３４】
アドレス空間の衝突を検出した場合、ユーザに通知することによって、アドレス空間の衝突の発生を直ちにユーザに知らせることが可能となる。また、アドレス空間の衝突を検出した場合、アドレス空間の衝突が発生している中継装置にアクセスしてＬＡＮ側アドレス空間の設定を変更することによって、ネットワーク内のアドレス空間の衝突を自動的に修正することが可能となる。
【発明を実施するための最良の形態】
【００３５】
（第１の実施形態）
以下、本発明の第１の実施形態について、図面を参照しながら説明する。図１は、本発明の第１の実施形態に係るアドレス空間検出装置が用いられるネットワークの一例を示す図である。図１において、宅内ネットワーク１及びインターネット２の異なる二つのネットワークが接続している。なお、宅内ネットワーク１は、ローカルネットワークであれば、家庭内のネットワークでなくても良い。
【００３６】
図１に示すように、宅内ネットワーク１は、第１の通信端末１０と、ルータＡ２０と、ルータＢ３０と、ルータＣ４０とを備える。ルータＡ２０は、ＷＡＮ側通信Ｉ／Ｆ２０１と、ＬＡＮ側通信Ｉ／Ｆ２０２とを含む。ルータＢ３０は、ＷＡＮ側通信Ｉ／Ｆ３０１と、ＬＡＮ側通信Ｉ／Ｆ３０２とを含む。ルータＣ４０は、ＷＡＮ側通信Ｉ／Ｆ４０１と、ＬＡＮ側通信Ｉ／Ｆ４０２とを含む。なお、ルータＡ２０、ルータＢ３０、及びルータＣ４０において、ＷＡＮ側通信Ｉ／Ｆ及びＬＡＮ側通信Ｉ／Ｆ以外の構成の記載を省略している。
【００３７】
第１の通信端末１０は、本発明の第１の実施形態に係るアドレス空間検出装置であり、宅内ネットワーク１のアドレス空間衝突の検出を行う。第１の通信端末１０は、例えば、ＰＣやネットワーク対応の家電機器（ネット家電）である。第１の通信端末１０には、プライベートアドレスが割り当てられる。なお、第１の通信端末１０は、ネット家電に内蔵されてもよいし、アドレス空間衝突を検出するための専用の端末でもよい。
【００３８】
ルータＣ４０は、インターネット２のルータＤ５０と接続することによって、宅内ネットワーク１とインターネット２とを接続するゲートウェイである。ルータＣ４０において、ＷＡＮ側通信Ｉ／Ｆ４０１には、グローバルアドレスが割り当てられ、ＬＡＮ側Ｉ／Ｆ４０２には、プライベートアドレスが割り当てられる。ルータＡ２０のＷＡＮ側通信Ｉ／Ｆ２０１及びＬＡＮ側通信Ｉ／Ｆ２０２と、ルータＢ３０のＷＡＮ側通信Ｉ／Ｆ３０１及びＬＡＮ側通信Ｉ／Ｆ３０２とには、それぞれプライベートアドレスが割り当てられる。
【００３９】
図２は、第１の通信端末１０の構成を示すブロック図である。第１の通信端末１０は、制御部１０１と、ルータディスカバリ用パケット作成部１０２と、受信パケット解析部１０３と、パケット送受信部１０４と、通信部１０５と、アドレス空間衝突検出部１０６とを含む。
【００４０】
制御部１０１は、第１の通信端末１０の各構成を制御する。ルータディスカバリ用パケット作成部１０２は、ルータを発見するためのパケットであるルータディスカバリ用パケット（以下、ＴＴＬパケットという）を作成して、ＴＴＬパケットの送信指示を行う。受信パケット解析部１０３は、ＴＴＬパケットの応答としてルータが送信した応答パケット（以下、ＴＴＬ応答パケットという）を解析して、ルータを検出して、検出したルータのアドレスを把握する。パケット送受信部１０４は、通信部１０５に対してパケットの送信処理を指示するとともに、通信部１０５が受信した受信パケットを解析して、受信パケットを対応するブロックへ引き渡す。アドレス空間衝突検出部１０６は、検出したルータのアドレス空間を推定し、その情報を記録する。そして、アドレス空間衝突検出部１０６は、記憶しているルータのアドレス空間で衝突しているものがある場合、これを検出する。
【００４１】
図３は、第１の通信端末１０が行う、宅内ネットワーク１内のアドレス空間の衝突検出処理を示すフローチャートである。第１の通信端末１０は、ルータのＬＡＮ側アドレス空間の衝突検出処理を開始すると、ルータディスカバリ用パケット作成部１０２が行うＴＴＬパケット送信処理を起動する（ステップＳ１０１）。ここで、起動したＴＴＬパケット送信処理は、ＴＴＬ応答パケット受信処理（ステップＳ１０２）などと並行して実行される。第１の通信端末１０は、ＴＴＬパケット送信処理の起動後、ＴＴＬ応答パケットを受信したか否かを判断する（ステップＳ１０２）。ＴＴＬ応答パケットを受信すると、第１の通信端末１０は、ルータを検出したと判断して、ＴＴＬ応答パケットの受信処理を実行する（ステップＳ１０３）。ＴＴＬ応答パケットは、具体的には、ＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥである。ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥとは、中継するパケットの生存時間（ＴＴＬ：Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）の超過によるパケットの破棄を、送信元に報告するメッセージである。
【００４２】
第１の通信端末１０は、ＴＴＬ応答パケットの送信元アドレスが、グローバルアドレスであるか否か判断する（ステップＳ１０４）。ＴＴＬ応答パケットの送信元アドレスがグローバルアドレスでない場合、第１の通信端末１０は、アドレス空間推定処理を実行する（ステップＳ１０５）。続いて、第１の通信端末１０は、アドレス衝突判定処理を実行する（ステップＳ１０６）。ＴＴＬ応答パケットの送信元アドレスがグローバルアドレスであった場合、第１の通信端末１０は、ＴＴＬパケット送信処理を中止する（ステップＳ１０７）。
【００４３】
第１の通信端末１０は、送信したＴＴＬパケットに対するＴＴＬ応答パケットを全て受信したか否かを判断する（ステップＳ１０８）。全て受信した場合、第１の通信端末１０は、図３に示すアドレス空間の衝突検出処理を終了する。全て受信していない場合、第１の通信端末１０は、ステップＳ１０２に戻り、ＴＴＬ応答パケットの受信待機状態となる。送信したＴＴＬパケットに対するＴＴＬ応答パケットを全て受信するまで、受信処理を継続する理由は、ＴＴＬパケットを送信した順にＴＴＬ応答パケットを受信するとは限らないためである。なお、送信元アドレスがグローバルアドレスであったＴＴＬ応答パケットに対応するＴＴＬパケットにおいて、設定したＴＴＬ値をＴＴＬｇとすると、ＴＴＬｇ以下のＴＴＬ値のＴＴＬパケットに対するＴＴＬ応答パケットを全て受信した場合、ＴＴＬ応答パケットを全て受信したと判断してもよい。
【００４４】
図４〜６を用いて、ＴＴＬパケット送信処理の詳細を説明する。図４は、ＴＴＬパケット送信処理のフローチャートである。図５は、ＴＴＬパケットの送信にＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を用いる場合の、ＴＴＬパケットの構成を示す図である。図６は、ＴＴＬパケットにおける、ＴＴＬと宛先ポート番号との対応関係の一例を示す図である。
【００４５】
図４を用いて、ＴＴＬパケット送信処理を説明する。第１の通信端末１０において、ルータディスカバリ用パケット作成部１０２は、制御部１０１からのＴＴＬパケット送信処理の指示に基づいて、図４に示す処理を開始する。ルータディスカバリ用パケット作成部１０２は、制御部１０１がＴＴＬパケットの作成の続行を指示しているか否かを確認する（ステップＳ１１１）。制御部１０１が行うＴＴＬパケットの作成を続行するか否かの判断基準については、後述する。
【００４６】
ＴＴＬパケット作成の中止を指示している場合、ルータディスカバリ用パケット作成部１０２は、ＴＴＬパケット送信処理を終了する。ＴＴＬパケット作成の続行を指示している場合、ルータディスカバリ用パケット作成部１０２は、ＴＴＬと宛先ポート番号とを、１つずつインクリメントしたＴＴＬパケットを作成する（ステップＳ１１２）。ルータディスカバリ用パケット作成部１０２は、パケット送受信部１０４と通信部１０５とを介して、作成したＴＴＬパケットを送信する（ステップＳ１１３）。なお、ルータディスカバリ用パケット作成部１０２は、送信したＴＴＬパケットに対応するＴＴＬ応答パケットの受信を待つことなく、ＴＴＬをインクリメントした次のＴＴＬパケットを送信してもよい。この場合、第１の通信端末１０は、複数のＴＴＬパケットを同時に送信できるため、高速にルータを検出することが可能となる。また、ＴＴＬパケットは、インターネット上の特定のグローバルアドレス宛（例えば、ルータＤ５０のＬＡＮ側Ｉ／Ｆ５０１、あるいはインターネット上の特定のサーバのアドレス（例えば、ｈｔｔｐ：／／ｐａｎａｓｏｎｉｃ．ｃｏｍなど）に向けて送信してもよい。
【００４７】
ルータディスカバリ用パケット作成部１０２は、図６に示すように、ＩＰヘッダのＴＴＬフィールドの値を１からインクリメントするとともに、ＵＤＰヘッダの宛先ポート番号フィールドを１０００１からインクリメントしながら、ＴＴＬパケットを作成する。宛先ポート番号は、図６に示す例に限られず、他のポート番号でもよい。宛先ポート番号は、宛先ポート番号からＴＴＬが一意に判別できればよい。
【００４８】
図７〜図９を用いて、ＴＴＬ応答パケットの受信処理を説明する。図７は、ＴＴＬパケットと、ＴＴＬ応答パケットとの対応を示す図である。図８は、ＴＴＬ応答パケットの一例を示す図である。図９は、ＴＴＬ応答パケット受信処理を示すフローチャートである。
【００４９】
図７において、ルータＡ２０、ルータＢ３０、ルータＣ４０、及びルータＤ５０は、それぞれのＬＡＮ側通信Ｉ／Ｆで受信したＴＴＬパケットを、ＴＴＬ値を１だけ引いてＷＡＮ側のルータに送信する。それぞれのルータは、ＴＴＬ値を１引いて、ＴＴＬ＝０となった場合、ＴＴＬパケットをＷＡＮ側のルータに送信せずに廃棄する。そして、それぞれのルータは、ＴＴＬ値が原因であるパケットの廃棄が発生したことを示すために、ＴＴＬ応答パケットをＴＴＬパケットの送信元へ送信する。図８に示すＴＴＬ応答パケットのデータ部には、廃棄したルータディスカバリ用パケットのＩＰヘッダと、それに続くＵＤＰヘッダを含む６４ビットのデータが付加される。
【００５０】
第１の通信端末１０が、ＴＴＬ＝１に設定したＴＴＬパケットを、インターネット２上の特定のＩＰアドレスに向けて送信した場合を考える。ＴＴＬ＝１のＴＴＬパケットは、ルータＡ２０のＬＡＮ側Ｉ／Ｆ２０２で受信される。ＴＴＬ＝１に設定したＴＴＬパケットは、ＷＡＮ側Ｉ／Ｆ２０１から送信される前に、ＴＴＬ＝０となる。このため、ルータＡ２０は、ＴＴＬ＝１のＴＴＬパケットは廃棄する。ルータＡ２０は、ＴＴＬ＝１のＴＴＬパケットを廃棄したことを通知するために、ＴＴＬ応答パケットを第１の通信端末１０に送信する。このとき、ＴＴＬ応答パケットの送信元ＩＰアドレス（以下、送信元アドレスという）は、ルータＡ２０のＬＡＮ側通信Ｉ／Ｆ２０２のＩＰアドレスとなる。（以下、各ルータのＬＡＮ側通信Ｉ／ＦのＩＰアドレスを、各ルータのＬＡＮ側アドレスという）第１の通信端末１０は、ＴＴＬ応答パケットの送信元アドレスを確認することによって、ルータＡ２０のＬＡＮ側アドレスを知ることが可能となる。
【００５１】
同様に、第１の通信端末１０が、ＴＴＬ＝２に設定したＴＴＬパケットを、インターネット上の特定のＩＰアドレスに向けて送信すると、ルータＢ３０は、ルータＢ３０自身のＬＡＮ側アドレスを送信元アドレスとしたＴＴＬ応答パケットを、第１の通信端末１０に送信する。また、第１の通信端末１０が、ＴＴＬ＝３に設定したＴＴＬパケットを、インターネット上の特定のＩＰアドレスに向けて送信すると、ルータＣ４０は、ルータＣ４０自身のＬＡＮ側アドレスを送信元アドレスとしたＴＴＬ応答パケットを、第１の通信端末１０に送信する。このように、第１の通信端末１０は、ＴＴＬパケットに対応するＴＴＬ応答パケットを受信することで、それぞれのルータを検出するとともに、それぞれのルータのＬＡＮ側アドレスを取得することができる。また、第１の通信端末１０は、自身とインターネット２との間に接続されているルータの接続順序に関する接続順序情報を取得することができる。
【００５２】
図９を用いて、ＴＴＬ応答パケットの受信処理の詳細を説明する。第１の通信端末１０は、ＴＴＬ応答パケットを受信すると、図９に示す処理を開始する。パケット送受信部１０４は、ＴＴＬ応答パケットを受信パケット解析部１０３に引き渡す（ステップＳ１３１）。受信パケット解析部１０３は、図８に示すＴＴＬ応答パケットから送信元ポート番号を取り出し、取り出した送信元ポート番号を用いて、受信したＴＴＬ応答パケットに対応するのＴＴＬ値を特定する（ステップＳ１３２）。また、受信パケット解析部１０３は、ＴＴＬ応答パケットの送信元アドレスを参照することで、送信元ルータのＬＡＮ側アドレスを取得する（ステップＳ１３３）。
【００５３】
ステップＳ１３２とステップＳ１３３において、例えば、ＴＴＬ応答パケットの送信元ポートが１０００１である場合、図６に示す関係から、第１の通信端末１０は、ＴＴＬ＝１のＴＴＬ応答パケットを受信したことが分かる。このため、第１の通信端末１０は、自身の一番近くに存在するルータＡ２０のＬＡＮ側アドレスを取得したことを認識できる。また、ＴＴＬ応答パケットの送信元ポートが１０００２である場合、第１の通信端末１０は、ＴＴＬ＝２のＴＴＬ応答パケットを受信したことが分かる。このため、第１の通信端末１０は、ルータＢ３０のＬＡＮ側アドレスを検出したことを認識できる。
【００５４】
受信パケット解析部１０３は、検出したルータのＬＡＮ側アドレスがローカルアドレスか否かを判断する（ステップＳ１３４）。検出したルータのＬＡＮ側アドレスがローカルアドレスである場合、受信パケット解析部１０３は、制御部１０１を通じて、アドレス空間衝突検出部１０６に、アドレス空間推定処理及びアドレス衝突判定処理の実行を指示する（ステップＳ１３５）。一方、検出したルータのＬＡＮ側アドレスがグローバルアドレスである場合、受信パケット解析部１０３は、制御部１０１を通じて、ルータディスカバリ用パケット作成部１０２に、グローバルアドレスを検出したＴＴＬ応答パケットに対応するＴＴＬ値以上のＴＴＬパケットの作成中止を指示する（ステップＳ１３６）。このように、第１の通信端末１０は、ＴＴＬ値と送信先ポート番号とを一対一で対応させたＴＴＬパケットを送信し、受信したＴＴＬ応答パケットに対応するＴＴＬ値と送信元ポート番号とをチェックすることによって、宅内ネットワーク１内に存在するルータのＬＡＮ側アドレスとを全て知ることが可能となる。
【００５５】
図９に示すフローチャートを用いることによって、第１の通信端末１０は、宅内ネットワーク１内のルータの存在を確認して、自身からインターネット２までに存在するルータのルータの接続順序情報を記憶することができる。また、第１の通信端末１０は、検出したルータのＬＡＮ側アドレスを記憶する。ルータのＬＡＮ側アドレスを用いて、第１の通信端末１０は、アドレス空間推定処理及びアドレス衝突判定処理を実行する。
【００５６】
図１０〜図１２を用いて、アドレス空間の推定処理を説明する。図１０は、アドレス空間衝突検出部１０６が行うアドレス空間の推定処理を示すフローチャートである。図１１は、ＩＣＭＰを用いたアドレス範囲推定パケットのフォーマットを示す図である。図１２は、アドレス範囲推定パケットの送信先とアドレス範囲推定パケットの応答との対応関係の一例を示す図である。
【００５７】
図１０を用いて、アドレス空間推定処理を説明する。アドレス空間衝突検出部１０６は、ＴＴＬ応答パケットの送信元アドレスがローカルアドレスであった場合に、ＴＴＬ応答パケットの送信元ルータを対象として、図１０に示す処理を実行する。アドレス空間衝突検出部１０６は、ＴＴＬ応答パケットに対応するＴＴＬパケットで指定したＴＴＬ値を用いて、送信先アドレスを変化させたアドレス範囲推定パケットを送信する（ステップＳ１５１）。例えば、ルータＡ２０であればＴＴＬ値は１、ルータＢ３０であれば、ＴＴＬ値は２を用いることになる。
【００５８】
また、アドレス空間衝突検出部１０６は、ＴＴＬ応答パケットから得られたルータのＬＡＮ側アドレスを基に、そのルータのアドレス空間を一次推測し記憶する。アドレス空間の一次推測の具体的な方法は、アドレス空間をクラスＣのアドレスとして推測する方法が考えられる。例えば、ルータＡ２０のＬＡＮ側アドレスが、１９２．１６８．０．１であれば、ルータＡ２０のアドレス空間は、１９２．１６８．０．１〜１９２．１６８．０．２５４と推測できる。なお、得られたルータのＬＡＮ側アドレスが、クラスＡまたはクラスＢのプライベートアドレスである場合、得られたルータのアドレス空間が、それぞれのクラスに応じたアドレス空間であると一次推測してもよい。例えば、ルータＡ２０のプライベートアドレスが１０．１．０．１３０であった場合、そのルータのアドレス空間を１０．０．０．１〜１０．２５５．２５５．２５４であると一次推測する。また、１０．１．０．１〜１０．１．０．２５４（最下位８ビットだけを変化）又は１０．１．０．１２９〜１０．１．０．２５４（最下位７ビットだけを変化）などのように一次推測してもよい。
【００５９】
アドレス空間衝突検出部１０６は、アドレス空間を一次推測する際に、少なくとも得られたルータのＬＡＮ側アドレスが含まれるように得られたルータのアドレス空間を一次推測して記憶する。そして、アドレス空間衝突検出部１０６は、記憶したアドレス空間のアドレスを順に送信先として指定し、アドレス範囲推定パケットを送信する。このとき、得られたルータのＬＡＮ側アドレスは必ず一次推測したアドレス空間に含まれていると考えることができるので、アドレス空間衝突検出部１０６は、得られたルータのＬＡＮ側アドレスにアドレス範囲推定パケットを送信しなくてもよい。
【００６０】
アドレス範囲推定パケットとは、アドレス空間衝突検出部１０６が、対象となるルータのアドレス空間として推定したアドレス空間が、対象ルータのアドレス空間であるか否かを確認するためのパケットである。アドレス範囲推定パケットは、図５に示すＵＤＰパケットまたは、図１１に示すＩＣＭＰパケットを用いる。ＴＴＬパケットとアドレス範囲推定パケットとの相違点は、ＴＴＬパケットの送信先アドレスが、インターネット上の特定のアドレスであるのに対し、アドレス範囲推定パケットの送信先アドレスが、対象ルータのアドレス空間内と思われるアドレス空間のローカルアドレスである点である。
【００６１】
また、パケット送受信部１０４において、ＴＴＬ応答パケットと、アドレス範囲推定パケットの応答であるＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥとを識別可能とするために、アドレス空間衝突検出部１０６は、図５に示すＵＤＰパケットを用いる場合、ＴＴＬパケットで使用しないポート番号を指定したＵＤＰパケットを、アドレス範囲推定パケットとして送信する。この結果、アドレス範囲推定パケットの応答であるＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥのデータ部には、アドレス範囲推定パケットで指定したポート番号が含まれることになる。このように、パケット送受信部１０４は、ポート番号を参照することによって、ＴＴＬ応答パケットと、アドレス範囲推定パケットの応答であるＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥとを識別することができる。同様に、アドレス範囲推定パケットとしてＩＣＭＰを使用する場合、シーケンス番号等にＴＴＬパケットでは使用しない値を設定する。なお、アドレス範囲推定パケットの応答を用いたルータのアドレス空間の推定方法は後述する。
【００６２】
アドレス範囲推定パケットに対する応答があった場合、アドレス空間衝突検出部１０６は、パケット送受信部１０４を通じて応答を受け取る。そして、アドレス空間衝突検出部１０６は、応答がＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥであるか否かを判定する（ステップＳ１５２）。応答がＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥでない場合、アドレス範囲推定パケットの送信先アドレスが、ルータのアドレス空間内であると判定する（ステップＳ１５３）。そして、アドレス空間衝突検出部１０６は、判定結果に基づきルータのアドレス空間の推定情報を更新して記憶する。
【００６３】
アドレス範囲推定パケットの応答としてＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを受信することによって、アドレス範囲推定パケットの送信先が、ルータのアドレス空間の範囲外のアドレスと判断できる理由について説明する。アドレス範囲推定パケットは、ルータのＬＡＮ側アドレスを取得するために送信したＴＴＬパケットと同一のＴＴＬ値を指定して送信される（例えば、ルータＡ２０のアドレス空間を推測する場合、ＴＴＬ値は１が指定される）。ルータのアドレス空間の範囲外のアドレスを指定してパケットを送信すると、ルータは、上位のルータにパケットを送信しようとする。このとき、ＴＴＬ値の減算が実行され、ＴＴＬ＝０となるため、ルータはアドレス範囲推定パケットを廃棄し、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを送信する。ゆえに、アドレス範囲推定パケットの応答としてＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを受信すると、アドレス範囲推定パケットの送信先アドレスは、ルータのアドレス空間の範囲外であることがわかる。
【００６４】
なお、アドレス範囲推定パケットに対する応答がない場合も、アドレス空間衝突検出部１０６は、アドレス範囲推定パケットの送信先アドレスが対象ルータのアドレス空間内であると判定してよい。応答がＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥである場合（ステップＳ１５４、Ｙｅｓ）、アドレス空間衝突検出部１０６は、アドレス範囲推定パケットの送信先アドレスが、ルータのアドレス空間外であると判定する（ステップＳ１５４）。そして、アドレス空間衝突検出部１０６は、判定結果に基づきルータのＬＡＮ側アドレス空間の推定情報を更新して記憶する。アドレス空間衝突検出部１０６は、アドレス空間の推定が終了したか否かを判定する（ステップＳ１５５）。具体的には、アドレス空間は、アドレス範囲推定パケットの送信及びアドレス範囲推定パケットに対する応答を全て受信したか否かを確認する。終了していない場合、アドレス空間衝突検出部１０６は、ステップＳ１５１へ戻る。終了した場合、アドレス空間衝突検出部１０６は、アドレス空間の推定処理を終了する。
【００６５】
なお、アドレス空間衝突検出部１０６は、アドレス空間内と判定されるアドレスと、アドレス空間外と判定されるアドレスとの境界のアドレスを検出した時に、アドレス空間の推定処理を終了してよい。これは、一般にルータのアドレス空間が、連続するアドレスで構成されるためである。例えば、図１２のように、１９２．２６８．２．２から順に（１９２．１６８．２．３、１９２．１６８．２．４、・・・）、アドレス空間衝突検出部１０６が送信先としてアドレス範囲推定パケットを送信した場合（１９２．１６８．２．１はルータのアドレスであり、必ずアドレス空間内であると分かっているため送信しない）、１９２．１６８．２．１２８で初めてアドレス空間の範囲外と判断される。この結果、アドレス空間が連続なら、１９２．１６８．２．１２８以降のアドレスは、全てアドレス空間の範囲外と判断されると予測することができる。このため、アドレス空間衝突検出部１０６は、１９２．１６８．２．１２８をアドレス空間の範囲外と判断した時点で、実際に一次推測したアドレス空間全体のアドレスにアドレス範囲推定パケットを送信せず、アドレス空間の判定処理を終了してよい。このとき、アドレス空間衝突検出部１０６が記憶するルータのアドレス空間情報は、判定結果に基づき更新される。
【００６６】
図１２を用いて、アドレス空間推定処理についてさらに詳しく説明する。図１２において、アドレス空間推定処理の対象ルータのＬＡＮ側アドレスを、１９２．１６８．２．１とする。ルータのＬＡＮ側アドレスが上記のように設定されている場合、一般的なルータは、クラスＣのアドレス空間（１９２．１６８．２．１〜１９２．１６８．２．２５４。１９２．１６８．２．２５５はブロードキャストアドレス）が初期値として設定されていることが多い。図１２の例では、第１の通信端末１０は、対象ルータのアドレスである１９２．１６８．２．１が確実にアドレス空間内にあることが分かっている。このため、アドレス空間衝突検出部１０６は、対象ルータのアドレス空間をクラスＣのアドレス空間全体と一次推測して記憶し、対象ルータのアドレスを除いたクラスＣのアドレス空間に対して、アドレス範囲推定パケットを送信する。
【００６７】
アドレス範囲推定パケットを送信した結果、図１２に示すように、アドレス範囲推定パケットの送信先アドレスに対応する応答が帰ってきたとする。アドレス範囲推定パケットの送信先アドレスが対象ルータのアドレス空間内であり、かつ、送信先アドレスに他の端末が接続されていた場合、アドレス空間衝突検出部１０６は、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥとは異なる応答を受信する。いま、対象ルータには１台の通信機器が接続されており、そのアドレスが１９２．１６８．２．４である場合を例に説明する。この場合、典型的な応答例としては、アドレス空間衝突検出部１０６は、送信先アドレス１９２．１６８．２．４にアドレス範囲推定パケットとしてＩＣＭＰエコーメッセージを送信した場合、ＩＣＭＰエコーリプライを応答として受信する。また、アドレス範囲推定パケットがルータのアドレス空間内であり、かつ、送信先アドレスに端末が接続されていない場合、アドレス空間衝突検出部１０６は、何の応答も受信しないか、ＩＣＭＰ  Ｈｏｓｔ  Ｕｎｒｅａｃｈａｂｌｅなどのメッセージを受信する。いずれの応答になるかは、対象ルータの実装によって変化する。いずれにしても、アドレス空間衝突検出部１０６は、アドレス範囲推定パケットの送信先アドレスがルータのアドレス空間内である場合、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥ  ＭＥＳＳＡＧＥと異なる応答を受信しない。一方、アドレス範囲推定パケットの送信先アドレスが対象ルータのアドレス空間の範囲外であれば、アドレス空間衝突検出部１０６は、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを受信する。ゆえに、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥだけに着目すれば、アドレス範囲推定パケットの送信先が対象ルータのアドレス空間の範囲内か、アドレス空間の範囲外かを容易に判定することができる。
【００６８】
例えば、図１２に示す例では、アドレス空間衝突検出部１０６は、１９２．１６８．２．１２８以降のアドレスに対して送信したアドレス範囲推定パケットの応答として、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを受信している。このため、アドレス空間衝突検出部１０６は、対象ルータのアドレス空間が１９２，１６８．２．１〜１９２．１６８．２．１２６（１９２．１６８．２．１２７はブロードキャストアドレス）であると推測し、記憶している対象ルータのアドレス空間情報を更新する。
【００６９】
アドレス範囲推定パケットの送信先アドレスが対象ルータのアドレス空間の範囲外である場合に、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥが送信される原理について説明する。図１に示すルータＣ４０を、アドレス空間推定処理の対象ルータとする。アドレス空間衝突検出部１０６がルータＣ４０のアドレス空間の範囲外のアドレス宛てにアドレス範囲推定パケットを送信したとする。このとき、アドレス範囲推定パケットのＴＴＬ値は３となる。
【００７０】
この場合、ルータＣ４０の一段下位にあるルータＢ３０のＷＡＮ側通信Ｉ／Ｆ３０２は、自身に設定されているアドレス空間（ルータＣ４０のＬＡＮ側アドレスと一致している）に対して、アドレス範囲推定パケットの宛先アドレスがＬＡＮ側アドレス空間の範囲外となるため、別のネットワークへの通信と判断する。そして、ルータＢ３０のＷＡＮ側通信Ｉ／Ｆ３０２は、デフォルトゲートウェイであるルータＣ４０へアドレス範囲推定パケットを送信する。このとき、アドレス範囲推定パケットの送信先論理的アドレス（送信先のＩＰアドレス）は、変更されない。ルータＣ４０は、受信したアドレス範囲推定パケットのルーティング処理を行うとともに、ルータＣ４０のＷＡＮ側にある上位のネットワークに対して、アドレス範囲推定パケットの送信処理を開始しようとする。しかし、送信処理の開始の際に、アドレス範囲推定パケットのＴＴＬの減算処理が実行されるため、ＴＴＬ値は０となる。従って、ルータＣ４０は、アドレス範囲推定パケットを廃棄した上で、送信元の第１の通信端末１０に対して、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを送信する。このとき、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥの送信元アドレスとして、ルータＣ４０のＬＡＮ側アドレスが設定される。
【００７１】
なお、図１２に示す例では、アドレス空間衝突検出部１０６が１９２．１６８．２．２から順にアドレス範囲推定パケットを送信するものとして説明したが、送信先アドレスの送信順序は、これに限られない。一般に、ルータのアドレス空間の設定にはパターンがある。このため、特定のアドレスに対して優先的にアドレス範囲推定パケットを送信することによって、効率良くアドレス範囲を推定することもできる。例えば、アドレス空間衝突検出部１０６は、送信先を１９２．１６８．２．２５４としたアドレス範囲推定パケットを送信してもよい。このアドレス範囲推定パケットに対する応答として、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを受信しなければ、アドレス空間衝突検出部１０６は、１９２．１６８．２．１〜１９２．１６８．２．２５４を対象ルータのアドレス空間として判定してもよい。また、アドレス空間衝突検出部１０６は、送信先を１９２．１６８．２．２５４としたアドレス範囲推定パケットに対してＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＧＥを受信した場合、次に、１９２．１６８．２．１２６及び１９２．１６８．２．１２９をそれぞれ送信先としたアドレス範囲推定パケットを送信してもよい。このとき、１９２．１６８．２．１２９を送信先としたアドレス範囲推定パケットに対するＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを受信すれば、アドレス空間衝突検出部１０６は、対象ルータのアドレス空間が１９２．１６８．２．１〜１９２．１６８．２．１２６（１９２．１６８．２．１２７はブロードキャストアドレス）と推測できる。ここで、１９２．１６８．２．１２７及び１９２．１６８．２．１２８に対して、アドレス範囲推定パケットを送信しなかった理由は、以下の理由による。１９２．１６８．２．１〜１９２．１６８．２．１２６が対象ルータのアドレス空間として設定されている場合、１９２．１６８．２．１２７及び１９２．１６８．２．１２８は、ブロードキャスト等の特別なアドレスになる。これらの特別なアドレスは、ルータによって取り扱いが異なる可能性があるため、アドレス空間の推定には不向きである。
【００７２】
なお、アドレス空間推定処理において、アドレス空間衝突検出部１０６は、アドレス範囲推定パケットを１つずつ送信するものとして説明したが、ＴＴＬパケット送信処理と同様に、複数のアドレス範囲推定パケットを同時送信してもよい。この場合、アドレス範囲推定パケットの応答であるＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥの送信先アドレスは、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥのデータに格納されているＩＰヘッダを参照することによって確認することができる。
【００７３】
なお、第１の通信端末１０が直接接続されているルータ（ルータＡ２０）のＬＡＮ側アドレス空間に対して、上述のアドレス範囲推定パケットを用いたアドレス空間推定処理を行わず、第１の通信端末１０に設定されているアドレス空間情報（ネットマスク情報）からアドレス空間を特定してもよい。例えば、第１の通信端末１０に設定されているネットマスクが２５５．２５５．２５５．０で、第１の通信端末１０のＩＰアドレスが１９２．１６８．０．１０であった場合、ルータＡ２０のアドレス空間は、１９２．１６８．０．１〜１９２．１６８．０．２５４であると判断できる。また、市販の家庭用ルータでは、ルータのＬＡＮ側アドレスは、クラスＣのアドレス空間設定になっていることが非常に多いため、アドレス空間衝突検出部１０６は、上述のアドレス範囲推定パケットを用いたアドレス空間推定処理を行わず、ルータのＬＡＮ側アドレスを基にアドレス空間の一次推測だけを行い、アドレス衝突判定処理を実行してもよい。
【００７４】
図１３を用いて、アドレス衝突判定処理の詳細を説明する。アドレス空間衝突検出部１０６は、対象ルータのアドレス空間推定処理が終了すると、図１３に示す処理を行う。アドレス空間衝突検出部１０６は、既に記憶している検出済みルータのアドレス空間と、新たに検出されたルータのアドレス空間とを比較して、アドレス空間の重なりがあるか否かを判断する（ステップＳ１６１）。アドレス空間の重なりがあるとは、既に検出されたルータのアドレス空間と、新たに検出されたルータのアドレス空間とに共通に含まれるアドレスが存在する状態のことをいう。アドレス空間に重なりがない場合、アドレス空間衝突検出部１０６は、アドレス空間衝突が検出されなかった旨を制御部１０１に通知して（ステップＳ１６２）、処理を終了する。アドレス空間に重なりがある場合、アドレス空間衝突検出部１０６は、衝突が発生しているルータの情報を制御部１０１に通知して（ステップＳ１６３）、処理を終了する。アドレス空間推定処理とアドレス衝突判定処理とを行うことによって、宅内ネットワーク１内に存在するルータのＬＡＮ側通信Ｉ／Ｆのアドレス空間の衝突を検出することができる。
【００７５】
なお、宅内ネットワーク１において、第１の通信端末１０は、アドレス空間の衝突を検出した場合、アドレス空間の衝突を検出した旨をユーザに通知してもよい。この場合の、第１の通信端末１０の構成を、図１４に示す。図１４に示す第１の通信端末１０は、図２に示す構成に加えて、さらにユーザ通知部１０７を備える。ユーザ通知部１０７は、画像等を用いて、宅内ネットワーク１におけるアドレス空間の衝突をユーザに通知する。
【００７６】
アドレス空間の衝突の例を図１５に示す。図１５に示すように、宅内ネットワーク１において、ルータＡ２０のアドレス空間と、ルータＣ４０のアドレス空間とが衝突している場合を考える。この場合、ユーザ通知部１０７は、アドレス空間衝突検出部１０６が記憶したルータＡ２０のアドレス空間の情報及びルータＣ４０のアドレス空間の情報と、検出した各ルータの接続順序情報とを表示する。図１６は、ユーザ通知部１０７が図１５に示すアドレス空間の衝突をユーザに通知する内容の一例を示す図である。図１６に示すように、ユーザ通知部１０７は、アドレス空間の衝突が発生しているルータ及びアドレス空間に対して、×印を表示することによって、アドレス空間の衝突の様子をユーザに通知する。
【００７７】
なお、アドレス空間の衝突が発生している場合、図１６に示すように、ユーザ通知部１０７は、アドレス空間衝突検出部１０６が記憶する各ルータのＬＡＮ側アドレス空間情報を参照し、どのルータのＬＡＮ側アドレス空間情報とも衝突しないアドレス空間を特定した上で、アドレス空間を変更すべきルータと推奨する変更後のアドレス空間とをユーザに通知してもよい。
【００７８】
アドレス空間の衝突の他の例を、図１７に示す。図１７に示す例では、宅内ネットワーク１において、ルータＢ３０のアドレス空間と、ルータＣ４０のアドレス空間とが衝突している。図１８は、ユーザ通知部１０７が、ユーザ通知部１０７が図１７に示すアドレス空間の衝突をユーザに通知する内容の一例を示す図である。図１８に示すように、ユーザ通知部１０７は、図１６と同様の表示方法を用いて表示している。
【００７９】
また、第１の通信端末１０は、宅内ネットワーク１におけるアドレス空間の衝突を検出した場合、衝突が発生しているルータのアドレス空間の設定を自動的に変更してもよい。図１９は、ルータのアドレス空間の設定を変更する第１の通信端末１０の構成を示す図である。図１９に示す第１の通信端末１０は、図２に示す構成に対して、さらにアドレス空間設定修正部１０８を備えた構成である。アドレス空間設定修正部１０８は、各ルータの接続順序情報と、各ルータのアドレス空間の設定情報とを用いて、アドレス空間の衝突が発生しているルータにアクセスして、各ルータのアドレス空間の設定を変更する。ルータは、一般にＷｅｂベースでのユーザインターフェースを持っている。このため、アドレス空間設定修正部１０８は、各ルータに対して適切なｈｔｔｐメッセージを送信することによって、アドレス空間の設定を変更することが可能である。
【００８０】
図１５に示す例を用いて、アドレス空間設定修正部１０８の動作を説明する。図１６に示すように、ルータＡ２０及びルータＣ４０のそれぞれのアドレス空間が衝突している場合、アドレス空間設定修正部１０８は、ルータＣ４０の下位のネットワークに位置するルータＡ２０のアドレス空間を変更する。具体的には、図１５において、アドレス空間設定修正部１０８は、ルータＡ２０のアドレス空間を１９２．１６８．２．１〜１９２．１６８．２．２５４に変更する。また、アドレス空間設定修正部１０８は、ＤＨＣＰを用いて第１の通信端末１０のアドレスの再取得を実行する。また、図１７に示す例の場合、アドレス空間設定修正部１０８は、ルータＣ４０の下位に位置するルータＢ３０にアクセスしてルータＢ３０のアドレス空間の設定を変更する。続いて、アドレス空間設定修正部１０８は、ルータＢ３０の下位のネットワークに位置するルータＡ２０のＷＡＮ側通信Ｉ／Ｆ２０１のＩＰアドレスを再取得させる。図１５及び図１７に示すの例のように、第１の通信端末１０は、アドレス空間の衝突が発生した場合、自身に近いルータ（インターネット２から遠い側のルータ）にアクセスして、ルータのアドレス空間の設定を変更する。これは、アドレス空間の衝突が発生している場合、衝突しているアドレス空間へのパケット送信において、ルータのルーティング機能や第１の通信端末１０自身の通信機能が有効に機能しない状況が発生し、自身から遠い側にある（インターネット２に近い側）のルータにアクセスできない場合が発生するためである。
【００８１】
このように、第１の実施形態に係るアドレス空間衝突検出装置は、ＴＴＬを変化させたＴＴＬパケットを送信し、ＴＴＬパケットに対応するＴＴＬ応答パケットを受信することによって、宅内ネットワーク内のルータを検出する。そして、第１の実施形態に係るアドレス空間衝突検出装置は、検出したルータのＬＡＮ側アドレスを基に、そのルータのアドレス空間を一次推測する。そして、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを用いてアドレス空間推定処理を行い、ルータのアドレス空間を推定する。これにより、アドレス空間衝突検出装置は、１つ以上のルータが接続された宅内ネットワーク内の各ルータのアドレス空間の衝突を判定することが可能になる。なお、プロバイダがローカルアドレスを割り当てるような場合、宅内ネットワーク１には１台のルータしかなくとも、宅内ネットワーク１のルータのアドレス空間と、プロバイダが割り当てるアドレス空間（ルータのＷＡＮ側アドレス空間）が衝突する場合が発生する。第１の実施形態に係るアドレス空間衝突検出装置は、このような場合でも、ルータでアドレス空間の衝突が発生していることを検出することが可能である。
【００８２】
なお、アドレス空間設定修正部１０８は、ｈｔｔｐメッセージを用いてルータのＬＡＮ側アドレス空間の設定を変更するとして説明したが、他の手段を用いてもよい。例えば、ＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）や、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）などのプロトコルを用いることが考えられる。また、アドレス空間衝突の発生及び各ルータのアドレス空間の設定変更処理に関するユーザへの通知は、宅内ネットワーク１内の全ルータの検出が終了してから行ってもよい。
【００８３】
また、第１の実施形態では、第１の通信端末１０がアドレス空間衝突検出機能を備えるものとして説明した。しかし、宅内ネットワーク１の各ルータがアドレス空間衝突検出機能を備えてもよい。例えば、ルータＡ２０がアドレス空間衝突検出機能を備えている場合を、図１９を用いて説明する。ルータＡ２０は、自身のアドレス空間を既に取得している。上記に説明した方法と同様の手順を用いて、ルータＡ２０のアドレス空間とルータＣ４０のアドレス空間との衝突を検出する。そして、アドレス空間設定修正部１０８が、自身（ルータＡ２０）のＬＡＮ側アドレス空間の設定を変更する。また、図１６に示す例の場合、ルータＡ２０は、ルータＢ３０にアクセスして、ルータＢ３０のＬＡＮ側アドレス空間の設定を変更する。そして、ルータＡ２０は、自身のＷＡＮ側通信Ｉ／Ｆ２０１のＩＰアドレスの再取得を行う。このように、各ルータがアドレス空間衝突検出機能を備える場合、各ルータは、自身とインターネット２との間に存在するルータを検出する。アドレス空間衝突検出機能を備えるルータは、検出したルータのアドレス空間及び自身のアドレス空間の衝突を検出すればよい。
【００８４】
また、第１の実施形態において、各ルータのＬＡＮ側アドレスとして、グローバルアドレスを取得した際に、第１の通信端末１０は、ルータディスカバリ用パケットの作成を中止するものとして説明した。しかし、ルータディスカバリ用パケットのＴＴＬに上限値を設けてもよい。この場合、ＴＴＬが上限値に達すると、第１の通信端末１０は、ルータディスカバリ用パケットの作成を中止する。
【００８５】
また、第１の実施形態において、ルータが３台接続された宅内ネットワーク１を例にして説明を行った。しかし、ルータの接続台数はこれに限られない。第１の実施形態に係るアドレス空間衝突検出装置は、ルータが１台からＮ台（Ｎは２以上の自然数）で構成される宅内ネットワークや企業内ネットワークに対して適用することが可能である。
【００８６】
また、第１実施形態において、第１の通信端末１０とインターネット２との間に存在するルータが１つである場合、第１の通信端末１０は、検出したルータのＬＡＮ側アドレス空間と、インターネット２のアドレス空間（図１のルータＤのＬＡＮ側アドレス空間）とが衝突しているか否かを判定してもよい。
【００８７】
また、第１の実施形態において、アドレス空間衝突検出部１０６が、アドレス範囲推定パケットを送信して、その応答を用いることによって、アドレス空間推定処理を行うとして説明した。しかし、アドレス空間衝突検出部１０６は、ｈｔｔｐを用いて対象ルータにアクセスすることによって、ルータのアドレス空間の情報を取得してもよい。また、アドレス空間衝突検出部１０６は、ＵＰｎＰまたはＳＮＭＰを用いて、対象ルータのＬＡＮ側アドレス空間の情報を取得してもよい。さらに、アドレス空間衝突検出部１０６は、対象ルータに対して、ＩＣＭＰ  ＡＤＤＲＥＳＳ  ＭＡＳＫ  ＭＥＳＳＡＧＥを送信して、対象ルータのＬＡＮ側アドレス空間の情報を取得してもよい。
【００８８】
さらに、第１の実施形態において、ルータディスカバリ用パケット作成部１０２は、ＴＴＬと宛先ポート番号とを変化させたルータディスカバリ用パケットを作成するとして説明した。しかし、ルータディスカバリ用パケットにおいて、ＴＴＬと宛先ＩＰアドレス、またはＴＴＬと送信元ポート番号とを変化させても、上記と同様の処理が可能である。また、ルータディスカバリ用パケットを、図１０に示すようなＩＣＭＰエコー要求として作成してもよい。この場合であっても、ＴＴＬを変化させることによって、ＴＴＬ応答パケットであるＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを得ることが可能である。また、ＩＣＭＰエコー要求をＴＴＬパケットして用いる場合、ＴＴＬに代えてシーケンス番号や宛先ＩＰアドレス、識別子などを変化させることによって、ＵＤＰを用いたＴＴＬパケットと同じ制御が可能となる。図２０に、ＴＴＬとシーケンス番号とを対応させた場合の一例を示す。図２０に示すシーケンス番号の値は、一例であり、この値に限られない。シーケンス番号から、ＴＴＬ値が一意に特定できればよい。
【００８９】
（第２の実施形態）
第１の実施形態では、ＴＴＬを変化させたＴＴＬパケットと、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥとを利用したＴＴＬ応答パケットとを用いて、宅内ネットワーク１に存在するルータの検出を行った。しかし、ＴＴＬ処理を行わないルータや、ＩＣＭＰパケットをフィルタリングするルータ等が市販されている。このため、第１の実施形態で説明したアドレス空間衝突検出装置が適用できないルータが存在する。第２の実施形態では、この問題を解決するためのアドレス空間衝突検出装置を説明する。
【００９０】
図２１は、本発明の第２の実施形態に係るアドレス空間衝突検出装置が用いられるネットワークの一例を示す図である。図２１において、宅内ネットワーク１は、第１の第１の通信端末１０に代えて、第２の通信端末１１を備える点が異なる。第２の通信端末１１は、第２の実施形態に係るアドレス空間衝突検出装置である。第２の通信端末１１は、ルータＡ２０、ルータＢ３０、及びルータＣ４０のＬＡＮ側アドレスの他に、それぞれのＷＡＮ側アドレスを取得する点が、第１の通信端末１０と異なる。
【００９１】
第２の通信端末１１の動作の概要を説明する。第１の実施形態において、第１の通信端末１０は、ＴＴＬ値を変化させたＴＴＬ応答パケットを用いて、宅内ネットワーク１の各ルータのＬＡＮ側アドレスを取得し、ＬＡＮ側アドレスを用いて各ルータのアドレス空間の衝突の検出を行った。しかし、第２の通信端末１１は、ＵＰｎＰ  ＩＧＤ（Ｉｎｔｅｒｎｅｔ  Ｇａｔｅｗａｙ  Ｄｅｖｉｃｅ）仕様などを用いて、自身が接続されているルータのＬＡＮ側アドレスを取得後、さらにＷＡＮ側アドレスを取得する。そして、第２の通信端末１１は、上位のルータのＬＡＮ側アドレスを取得しながら、上位のルータのアドレス空間の衝突の検出を行う。図２１に示す例の場合、第２の通信端末１１が取得するアドレスの順序は、Ａ→Ｂ→Ｃ→Ｄ→Ｅ→Ｆのようになる。なお、ＵＰｎＰ  ＩＧＤの詳細な仕様については、非特許文献１及び非特許文献２に詳しく記載されている。
【００９２】
図２２は、第２の通信端末１１の構成を示すブロック図である。第２の通信端末１１は、制御部１０１と、ルータディスカバリ用パケット作成部１１２と、受信パケット解析部１０３と、パケット送受信部１０４と、通信部１０５と、アドレス空間衝突検出部１１６と、ＷＡＮ側アドレス取得部１１１とを備える。第２の通信端末１１は、ＷＡＮ側アドレス取得部１１１と、ルータディスカバリ用パケット作成部１０２に代えてルータディスカバリ用パケット作成部１１２と、アドレス空間衝突検出部１０６に代えてアドレス空間衝突検出部１１６とをさらに備える点が、図２に示す第１の通信端末１０と異なる。なお、第１の通信端末１０と同一の構成に対しては、同じ参照番号を付し、その説明を省略する。ＷＡＮ側アドレス取得部１１１は、ＵＰｎＰ  ＩＧＤ使用を用いて、ルータのＷＡＮ側アドレスを取得する。ルータディスカバリ用パケット作成部１１２は、ＵＰｎＰのディスカバリメッセージである“Ｍ−Ｓｅａｒｃｈ”を用いたルータディスカバリ用パケット（以下、推定ルータパケットという）を作成して、マルチキャストまたはユニキャストで送信する。ここで、推定ルータパケットをマルチキャストするのは、第２の通信端末１１自身が接続されているルータ（図２１の場合、ルータＡ２０）を発見する場合のみである。
【００９３】
図２３を用いて、第２の通信端末１１が行うアドレス空間の衝突検出処理を説明する。図２３は、第２の通信端末１１が行うアドレス空間の衝突検出処理を示すフローチャートである。図２３に示す処理は、制御部１０１がルータディスカバリ用パケット作成部１１２に、自身が接続されているルータを検出する指示を行うことによって開始される。ルータディスカバリ用パケット作成部１１２は、自身が接続されたルータ（図２１の場合、ルータＡ２０）に対して推定ルータパケットをマルチキャスト送信する（ステップＳ２０１）。受信パケット解析部１０３は、送信した推定ルータパケットに対する応答パケット（以下、推定ルータ応答パケットという）を、通信部１０５及びパケット送受信部１０４を通じて受信したか否かを判断する（ステップＳ２０２）。図２４に、推定ルータパケットのデータ部の一例を示す。また、図２５に推定ルータ応答パケットのデータ部の一例を示す。なお、図２４及び図２５の詳細については、後述する。
【００９４】
受信パケット解析部１０３は、推定ルータ応答パケットを受信した場合、推定ルータ応答パケットを解析して、送信元ルータのＬＡＮ側アドレスを取得する（ステップＳ２０３）。なお、第２の通信端末１１は、ＵＰｎＰを使用しているため、推定ルータ応答パケットに含まれる情報から、デバイスディスクリプション及びサービスディスクリプションを取得する。これらの情報は、アクション送信のための情報として用いられる。受信パケット解析部１０３は、制御部１０１を通じてルータディスカバリ用パケット作成部１１２に、推定ルータパケットの送信処理中止を指示する（ステップＳ２０４）。受信パケット解析部１０３は、制御部１０１を通じてＷＡＮ側アドレス取得部１１１に、推定ルータ応答パケットの送信元ルータのＷＡＮ側アドレスの取得を指示する。ＷＡＮ側アドレス取得部１１１は、推定ルータ応答パケットの送信元のルータのＷＡＮ側アドレスを取得する（ステップＳ２０５）。
【００９５】
ルータのＷＡＮ側アドレスを、ＵＰｎＰ  ＩＧＤ仕様を用いて取得する手順を説明する。推定ルータ応答パケットの送信元ルータのＬＡＮ側アドレスに対して、第２の通信端末１１は、ＧｅｔＥｘｔｅｒｎａｌＩＰＡｄｄｒｅｓｓアクションを送信する。図２６は、ＧｅｔＥｘｔｅｒｎａｌＩＰＡｄｄｒｅｓｓアクションの一例を示す図である。ＧｅｔＥｘｔｅｒｎａｌＩＰＡｄｄｒｅｓｓアクションを受信したルータは、応答を第２の通信端末１１に返信することよって、第２の通信端末１１は、ルータのＷＡＮ側アドレスを取得する。図２７は、ＧｅｔＥｘｔｅｒｎａｌＩＰＡｄｄｒｅｓｓアクションに対する応答の一例を示す図である。本応答において、ルータのＬＡＮ側アドレスは、＜ＮｅｗＥｘｔｅｒｎａｌＩＰＡｄｄｒｅｓｓ＞タグで囲まれた部分にセットされる。そのため、第２の通信端末１１は、＜ＮｅｗＥｘｔｅｒｎａｌＩＰＡｄｄｒｅｓｓ＞タグの値を取り出すことで、ルータのＷＡＮ側アドレスを取得することができる。なお、ルータは、通常、Ｗｅｂベースでのユーザインターフェースが実装されている。このため、第２の通信端末１１は、Ｗｅｂベースのユーザインターフェースを用いて、推定ルータ応答パケットの送信元ルータのＷＡＮ側アドレスを取得してもよい。具体的には、ｈｔｔｐメッセージを推定ルータ応答パケットの送信元ルータに送信して、その応答を受信することによって、推定ルータ応答パケットの送信元ルータのＷＡＮ側アドレスを取得できる。
【００９６】
受信パケット解析部１０３は、推定ルータ応答パケットの送信元ルータのＷＡＮ側アドレスが、ローカルアドレスであるか否かを確認する（ステップＳ２０６）。受信パケット解析部１０３は、取得したＷＡＮ側アドレスがグローバルアドレスである場合、推定ルータ応答パケットの送信元ルータの上位ルータがインターネット２上のルータであると特定する。すなわち、受信パケット解析部１０３は、宅内ネットワーク１の全てのルータの検出が完了したと推測して、処理を終了する。一方、受信パケット解析部１０３は、取得したＷＡＮ側アドレスがローカルアドレスである場合、推定ルータ応答パケットの送信元ルータの上位に、宅内ネットワーク１に属するルータが存在すると判断する。そして、受信パケット解析部１０３は、制御部１０１を通じて、ルータディスカバリ用パケット作成部１１２に、ルータのＷＡＮ側アドレス情報を引き渡し、推定ルータパケットの送信処理を指示する（ステップＳ２０７）。推定ルータパケットの送信処理については、後述する。
【００９７】
そして、受信パケット解析部１０３は、制御部１０１を通じて、推定ルータ応答パケットの送信元ルータの情報（ＬＡＮ側アドレスやＷＡＮ側アドレスなど）をアドレス空間衝突検出部１１６に引き渡す。アドレス空間衝突検出部１１６は、アドレス空間推定処理を実行する（ステップＳ２０８）。
【００９８】
ここで、アドレス空間衝突検出部１１６は、第１の実施形態のアドレス空間衝突検出部１０６と異なり、通知されたＷＡＮ側アドレスを基に、上位ルータのアドレス空間を推測する。例えば、図２１において、第２の通信端末１１は、ルータＢ３０のＷＡＮ側アドレスを取得すると、アドレス空間推定処理（ステップＳ２０７）が起動される。具体的には、アドレス空間衝突検出部１１６は、ルータＢ３０のＷＡＮ側アドレスを用いて、ルータＣ４０のアドレス空間を一次推測し、推定したアドレス空間情報を記憶する。そして、アドレス空間衝突検出部１１６は、第１の実施形態と同様のアドレス範囲推定パケットを用いたアドレス空間推定を実行し、アドレス空間情報を更新する。第１の実施形態との違いは、アドレス空間に必ず含まれるアドレスが、推定対象のルータのＬＡＮ側アドレス（ルータＣ４０のＬＡＮ側アドレス）ではなく、下位ルータのＷＡＮ側アドレス（ルータＢ３０のＷＡＮ側アドレス）である点のみである。
【００９９】
第２の通信端末１１が直接接続されたルータ（ルータＡ２０）のＷＡＮ側アドレスを取得した場合、アドレス空間衝突検出部１１６は、ルータＡ２０のＷＡＮ側アドレスを用いて、上述のようにルータＢ３０のアドレス空間を推定し、記憶する。それに加えて、第２の通信端末１１自身のＩＰアドレスとネットマスク情報とを用いて、ルータＡ２０のＬＡＮ側アドレス情報を推測し、記憶する。
【０１００】
ステップＳ２０８を実行後、アドレス空間衝突検出部１１６アドレス衝突判定処理を実行し（ステップＳ２０９）。アドレス空間衝突検出部１１６は、各ルータのアドレス空間に重なりがあることを検出した場合、制御部１０１にその旨を通知する。アドレス衝突判定処理の詳細は、第１の実施形態と同様のため、説明を省略する。次に、制御部１０１は、アドレス衝突判定処理の結果、ルータのアドレス空間の衝突が検出されたか否かをチェックする（ステップＳ２１０）。ルータのアドレス空間の衝突が検出された場合、第２の通信端末１１は、図２３に示す処理を終了する。ルータのアドレス空間の衝突が検出されていない場合、制御部１０１は、推定ルータパケット送信処理を起動し、推定ルータ応答パケットを受信するため、ステップＳ２０２に戻る。
【０１０１】
図２３に示すフローチャートを用いることによって、第２の通信端末１１は、自身に接続されているルータから上位のルータの存在を確認することができるため、宅内ネットワーク１のルータの接続順序情報を記憶することができる。また、アドレス空間衝突検出部１１６は、各ルータのＬＡＮ側アドレス空間情報を記憶している。このため、第２の通信端末１１は、第１の実施形態で説明したアドレス衝突判定処理を実行できる。なお、上記では、アドレス空間推定処理において、アドレス範囲推定パケットを用いたアドレス空間推定処理を実行するとして説明した。しかし、第１の実施形態と同様に、アドレス空間衝突検出部１１６は、アドレス範囲推定パケットを用いたアドレス空間推定処理を実行せず、一次推測したアドレス空間情報を用いて、アドレス空間衝突判定処理を行ってもよい。
【０１０２】
次に、アドレス空間衝突検出部１１６が、通知されたＷＡＮ側アドレスを基に上位ルータのＬＡＮ側アドレス空間を推測する理由について説明する。第２の通信端末１１は、第２の通信端末１１自身が直接接続されているルータ（ルータＡ２０）を除き、ルータのＬＡＮ側アドレスと考えられるアドレスに推定ルータパケットを送信し、推定ルータ応答パケットを受信することによって、ルータのＬＡＮ側アドレスを取得する。しかし、ＬＡＮ側アドレスを取得しようとしているルータのアドレス空間が他のルータのアドレス空間と衝突している場合、第２の通信端末１１自身の通信機能またはルータのルーティング機能が有効に動作しない。このため、第２の通信端末１１が正しいＬＡＮ側アドレスで推定ルータパケットを送信しても、正しい応答を得ることができない場合が発生する。ゆえに、第１の実施形態のアドレス空間衝突検出部１０６のように、ルータのＬＡＮ側アドレスを基にアドレス空間を推測し、アドレス空間衝突の判定処理を行った場合、第２の通信端末１１は、アドレス空間衝突判定処理を実施できず、アドレス空間の衝突を検出できないおそれがある。一方、アドレス空間衝突検出部１１６は、ＷＡＮ側アドレスを基に上位ルータのＬＡＮ側アドレス空間を推測して、アドレス空間衝突の判定処理を行う。これにより、アドレス空間衝突の判定処理の対象となるルータのＬＡＮ側アドレスを取得する前に、アドレス空間衝突の判定処理を行うことができるため、上述のような問題を避けることが可能となる。
【０１０３】
図２８を用いて、ステップＳ２１０で起動される推定ルータパケット送信処理について説明する。図２８は、第２の通信端末１１に直接接続されていない上位ルータ（例えば、ルータＢ３０またはルータＣ４０）を検出するための推定ルータパケット送信処理を示すフローチャートである。図２８において、ルータディスカバリ用パケット作成部１１２は、制御部１０１が推定ルータパケットの作成の続行を指示しているか否か確認する（ステップＳ２１１）。第２の通信端末１１は、ステップＳ２１２を実行することによって、推定ルータパケットの作成と、推定ルータ応答パケットの受信処理とが独立に動作している状態で、ルータを検出することができる。このため、推定ルータパケットを送信する必要がない状態の場合、第２の通信端末１１は、推定ルータパケットの送信処理を停止することができる。
【０１０４】
ルータディスカバリ用パケット作成部１１２は、作成の続行が指示されている場合、推定ルータパケットを作成するために、検出したルータのＷＡＮ側アドレスを制御部１０１から受け取る（ステップＳ２１２）。ルータディスカバリ用パケット作成部１１２は、検出したルータのＷＡＮ側アドレスから、上位ルータのＬＡＮ側アドレスを推測して、推定ルータパケットを作成する（ステップＳ２１３）。上記のように、推定ルータパケットは、ＵＰｎＰのディスカバリメッセージＭ−Ｓｅａｒｃｈである。ルータディスカバリ用パケット作成部１１２は、パケット送受信部１０４及び通信部１０５を通じて、推定ルータパケットを送信する（ステップＳ２１４）。一方、ルータディスカバリ用パケット作成部１１２は、作成の中止が指示されている場合、図２８の処理を終了する。なお、図２８に示す処理は、ＵＰｎＰを用いて推定ルータパケットを送信しているが、この場合、推測した上位ルータのＬＡＮ側アドレスに対して、ユニキャストでＭ−Ｓｅａｒｃｈを送信するようにすることができる（ＵＰｎＰ  Ｆｏｒｕｍの規格上では、Ｍ−Ｓｅａｒｃｈはマルチキャストのみであるが、ほとんどのルータは、ユニキャストのＭ−Ｓｅａｒｃｈも受信可能としている）。
【０１０５】
図２９に、ルータディスカバリ用パケット作成部１１２が、推定ルータパケットの送信先として推測する上位ルータのＬＡＮ側アドレスの一例を示す。通常、ルータのＬＡＮ側アドレスは、工場出荷時の状態で使用すると、クラスＣのローカルアドレスが使用されている。この場合、ローカルアドレスの下位８ビットの値は、１または２５４である。このため、ルータディスカバリ用パケット作成部１１２は、上位ルータのＬＡＮ側アドレスを推測する場合、制御部１０１が検出したルータのＷＡＮ側アドレスの下位８ビットを１または２５４に置き換えたアドレスを、上位ルータのＬＡＮ側アドレスとして優先的に推測する。このように推測することで、ルータディスカバリ用パケット作成部１１２は、高速に上位ルータを検出することが可能となる。また、ユーザは、ルータのＬＡＮ側アドレスを変更する場合、ＬＡＮ側アドレスの下位８ビットの値を６４または１２８などの特定の値に設定することが多い。このため、ルータディスカバリ用パケット作成部１１２は、ＬＡＮ側アドレスの下位８ビットの値を、ユーザが設定する頻度が高い特定の値に設定したアドレスを、上位ルータのアドレスとして、優先的に推測する。
【０１０６】
原理的には、ルータディスカバリ用パケット作成部１１２は、図２９のように推測可能な全てのアドレスを宛先とした多量の推定ルータパケットを作成し、一度に送信することが可能である。しかし、多量の推定ルータパケットを一度に送信すると、ネットワークが輻輳状態になり、他の通信に悪影響が出る場合がある。また、送信した推定ルータパケットが廃棄され、ルータのＬＡＮ側アドレス獲得に悪影響がでることも考えられる。このような影響を避けるため、ルータディスカバリ用パケット作成部１１２は、一定期間に規定の数以下の推定ルータパケットを送信するように制御する。また、推定ルータパケットは、図２４に示すように、ルータだけが応答を返すように指定して送信される。
【０１０７】
図２４の例では、ＳＴ（ＳｅａｒｃｈＴａｒｇｅｔ）として、“ｕｒｎ：ｓｃｈｅｍａｓ−ｕｐｎｐ−ｏｒｇ：ｄｅｖｉｃｅ：ＩｎｔｅｒｎｅｔＧａｔｅｗａｙＤｅｖｉｃｅ：１”を設定することにより、ルータだけが応答を返すようになる。このため、第２の通信端末１１は、複数のアドレスに対して推定ルータパケットを送信しても、ルータ以外のアドレスから応答を受信しない。一方、ルータのアドレスを指定した推定ルータパケットに対して、第２の通信端末１１は、図２５の例のような推定ルータ応答パケットを受信する。第２の通信端末１１は、推定ルータ応答パケットのＩＰヘッダの送信元アドレスを参照することで、ルータのＬＡＮ側アドレスを入手することができる。
【０１０８】
このように、第２の通信端末１１は、自身が接続するルータのＬＡＮ側アドレスを取得した後に、ＷＡＮ側アドレスを取得する。そして、得られたＷＡＮ側アドレスを基に、上位ルータのアドレス空間の推定処理を行い、アドレス衝突判定処理を実行する。さらに、自身が接続するルータのＷＡＮ側アドレスから、上位のルータのＬＡＮ側アドレスを取得する。この動作を繰り返すことによって、第２の通信端末１１は、宅内ネットワーク１内の全てのルータのアドレスとルータの接続情報とを取得して、宅内ネットワーク１内のルータのＬＡＮ側アドレス空間の衝突検出処理を行う。これにより、第２の通信端末１１は、ＴＴＬパケットに含まれるＴＴＬの操作や、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥの受信処理を行う必要がない。また、ＴＴＬ処理を行わない市販のルータや、ＩＣＭＰパケットをフィルタリングする市販のルータに対しても適用することが可能となる。
【０１０９】
なお、第２の実施形態の図２３に示すフローチャートにおいて、ルータディスカバリ用パケット作成部１１２は、推定ルータパケットの送信の際に、ＵＰｎＰ  ＩＧＤ仕様のディスカバリメッセージであるＭ−Ｓｅａｒｃｈ送信を行うものとして説明した。しかし、通常のルータに実装されているＷｅｂベースのユーザインターフェースを用いて、推定ルータパケットを作成してもよい。例えば、デフォルトＧＷ（ＧａｔｅＷａｙ）のＬＡＮ側通信Ｉ／Ｆのアドレスに適切なｈｔｔｐメッセージを送信し、その応答を受信することによって、ｈｔｔｐメッセージの送信先がルータであることを確認できる。この場合、第２の通信端末１１は、自身が接続するルータのＬＡＮ側アドレスの取得の際に、図２３に示すフローチャートのステップＳ２０１〜Ｓ２０４に代えて、上記の処理を行えばよい。
【０１１０】
また、第２の実施形態において、アドレス空間推定処理及びアドレス衝突判定処理は、宅内ネットワーク１内の全ルータの検出が終了してから実行してもよい。この場合、第２の通信端末１１は、全ルータのアドレス空間推定処理を行った後で、各ルータのアドレス衝突判定処理を実行すればよい。
【０１１１】
また、第２の実施形態において、推定ルータ応答パケットを受信した場合、推定ルータパケットの作成中止の指示を行うものとして説明した。しかし、推定ルータパケットの作成中止の指示は、推測可能な全てのルータのアドレスに推定ルータパケットを送信した後に行ってもよい。これにより、ルータの上位に複数のルータが接続されている宅内ネットワークの場合（マルチホーミング）などでも、アドレス空間の衝突検出を正確に行うことが可能となる。
【０１１２】
また、第２の実施形態において、ルータディスカバリ用パケット作成部１１２は、推定ルータパケットの作成指示と関係なく、次の推定ルータパケットを送信してもよい。すなわち、ルータディスカバリ用パケット作成部１１２は、推定ルータ応答パケットの受信処理と関係なく、送信してもよい。これにより、宅内ネットワーク１内の上位ルータを高速に発見することが可能となる。
【０１１３】
また、第２の実施形態において、第２の通信端末１１は、推定ルータパケットにアドレス範囲推定パケットの機能を持たせることによって、ルータディスカバリ処理とアドレス空間の推定処理とを同時に実行してもよい。この場合、推定ルータパケットのＴＴＬ値を、上位ルータと第２の通信端末１１との間に存在するルータ数に応じて適切に設定する。第２の通信端末１１が推定ルータパケットに対するＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを受信した場合、アドレス空間衝突検出部１１６は、推定ルータパケットの送信先のアドレスが、上位ルータのアドレス空間外であると判断すればよい。
【０１１４】
具体的には、図２２に示すルータディスカバリ用パケット作成部１１２と、アドレス空間衝突検出部１１６とを一体化する。アドレス範囲推定パケットは、上記で説明した推定ルータパケットのフォーマット（Ｍ−Ｓｅａｒｃｈパケット）とする。このとき、第２の通信端末１１からターゲットとするルータまでの間に存在するルータ数に応じて、アドレス範囲推定パケットのＴＴＬ値を設定する。例えば、ルータＢ３０のＬＡＮ側アドレスを推定する場合には、ＴＴＬ値を２とし、ルータＣ４０のＬＡＮ側アドレスを推定する場合には、ＴＴＬ値を３に設定する。第２の実施形態では、第２の通信端末１１が自身に近いルータから順番にルータのアドレスを取得していくため、設定すべきＴＴＬ値は、１から新たなルータのＬＡＮ側アドレスを推測するたびにインクリメントしていけばよい。
【０１１５】
このようにして、送信された推定ルータパケット兼アドレス範囲推定パケットは、ターゲットとするルータのＬＡＮ側アドレスに送信されると、ルータは、応答として推定ルータ応答パケットを第２の通信端末１１に送信する。推定ルータ応答パケットを受信することで、第２の通信端末１１は、ターゲットとするルータのＬＡＮ側アドレスを知ることができる。一方、第２の通信端末１１は、ルータのＬＡＮ側アドレス以外に送信された推定ルータパケット兼アドレス範囲推定パケットの応答を受信しない。しかし、推定ルータパケット兼アドレス範囲推定パケットの送信先が、ターゲットとするルータのアドレス空間の範囲外であった場合、ターゲットのルータが上位のルータに推定ルータパケット兼アドレス範囲推定パケットを送信しようとするために、推定ルータパケット兼アドレス範囲推定パケットのＴＴＬ値が０になる。この結果、ターゲットのルータは、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを、第２の通信端末１１に送信する。第２の通信端末１１は、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥに格納されている推定ルータパケット兼アドレス範囲推定パケットの送信先アドレス情報を参照することによって、送信先アドレスがターゲットのルータのアドレス空間の範囲外であることを知ることができる。結果として、この情報を加味してアドレス空間推定を行うことができる。
【０１１６】
また、第２の実施形態において、アドレス空間推定処理は、第１の実施形態と同様の方法を行うものとして説明した。しかし、アドレス空間推定処理は、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを利用するため、第２の通信端末１１は、ＩＣＭＰメッセージをフィルタリングするルータに対して、第１の実施形態と同様のアドレス空間の推定処理を行うことができない。この場合、第２の通信端末１１は、ＩＣＭＰメッセージをフィルタリングするルータのアドレス空間が、クラスＣのアドレス空間であると推測してもよい。また、ｈｔｔｐメッセージやＳＮＭＰなどのプロトコルを利用して、ＩＣＭＰメッセージをフィルタリングするルータのアドレス空間を読み出してもよい。
【０１１７】
（第３の実施形態）
図３０は、本発明の第３の実施形態に係るアドレス空間衝突検出装置が用いられるネットワークの一例を示す図である。図３０において、宅内ネットワーク１は、第２の通信端末１１に代えて、第３の通信端末１２を備える点が異なる。第３の通信端末１２は、第３の実施形態に係るアドレス空間衝突検出装置である。
【０１１８】
第１の実施形態において、第１の通信端末１０は、ＴＴＬを変化させたＴＴＬパケットを用いて、宅内ネットワーク１内のルータのＬＡＮ側アドレスを取得した。また、第１の通信端末１０は、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを用いて、ルータのアドレス空間を推定して、ルータのアドレス空間の衝突検出を行う。第１の実施形態で説明したルータのアドレス空間の衝突検出方法は、ＴＴＬ応答パケットの受信を待つことなく送信することによって、非常に効率よくルータのＬＡＮ側アドレスを知ることができる。このため、アドレス空間の衝突検出処理を高速に実行することが可能となる。
【０１１９】
しかし、市販されているルータには、ＩＣＭＰメッセージをフィルタリングするものがある。そのため、ＩＣＭＰメッセージをフィルタリングするルータを含む宅内ネットワークに対して第１の通信端末１０を用いた場合、ＩＣＭＰメッセージをフィルタリングするルータは、上位ルータが第１の通信端末１０に送信するＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを破棄する。このため、第１の通信端末１０は、宅内ネットワーク内のルータを正確に検出することができない場合がある。結果として、第１の通信端末１０は、宅内ネットワーク内における完全なアドレス空間の衝突検出ができないという問題が生じる。
【０１２０】
図３０は、ルータＢ３０がＩＣＭＰメッセージをフィルタリングするルータである例を示している。第３の通信端末１２は、ＴＴＬ＝３及びＴＴＬ＝４にそれぞれ設定されたＴＴＬパケットを送信すると、ルータＣ４０及びルータＤ５０は、ＴＴＬ応答パケットを送信する。しかし、ルータＢ３０は、ＩＣＭＰメッセージをフィルタリングするため、ルータＣ４０及びルータＤ５０が送信したＴＴＬ応答パケットを破棄する。このため、第１の通信端末１０は、ＴＴＬパケットを利用して、ルータＣ４０及びルータＤ５０を検出することができない。
【０１２１】
また、第２の実施形態では、検出したルータのＷＡＮ側アドレスを取得して、ＷＡＮ側アドレスを用いて上位ルータを検出することによって、ルータのアドレス空間の衝突検出を行う方法を説明した。この方法は、ＩＣＭＰを使用しないため、ＩＣＭＰメッセージをフィルタリングするルータを含む宅内ネットワークに適用することができる。しかし、ルータのアドレスを推測してルータ推定パケットを送信する必要があるため、処理効率の面で、第１の実施形態より劣るという問題がある。
【０１２２】
そこで、第３の実施形態では、ＩＣＭＰメッセージをフィルタリングするルータを含むネットワークに適用できるとともに、処理効率を高めたアドレス空間衝突の検出装置を説明する。具体的には、第１の実施形態で説明したＴＴＬパケットを用いてルータを検出する方法と、第２の実施形態で説明した推定ルータパケットを用いてルータを検出する方法との両方の方法を使用する。以下に、詳しく説明する。
【０１２３】
図３１を用いて、宅内ネットワーク１内のルータの検出を行う際に、第３の通信端末１２が行う動作の概要を説明する。図３１において、ルータＢ３０が、ＩＣＭＰメッセージのフィルタリング機能を備えているものとする。第３の通信端末１２は、ＴＴＬを変化させたＴＴＬパケットを送信すると、ルータＡ２０及びルータＢ３０からＴＴＬ応答パケットを受信する（矢印Ａ及び矢印Ｂ）。そして、第３の通信端末１２は、ルータＡ２０及びルータＢ３０のＬＡＮ側アドレスを取得する。
【０１２４】
ルータＢ３０は、ルータＣ４０及びルータＤ５０が送信するＴＴＬ応答パケットを破棄する。このため、第３の通信端末１２は、ルータＢ３０より上位にあるルータＣ４０及びルータＢ５０が送信する、ＴＴＬ応答パケットを受信することができない。このため、第３の通信端末１２は、ＴＴＬ＝３のＴＴＬパケット（ルータＣ４０を検出するためのＴＴＬパケット）に対するＴＴＬ応答パケットの受信について、タイムアウトを検出する。第３の通信端末１２は、タイムアウトを検出すると、ＴＴＬパケット送信処理を中止する。第３の通信端末１２は、ルータＢ３０のＷＡＮ側アドレスを取得する（矢印Ｃ）。第３の通信端末１２は、ルータＢのＷＡＮ側アドレスを用いて、上位ルータのＬＡＮ側アドレスを推測した推定ルータパケットの送信処理を開始する。
【０１２５】
第３の通信端末１２は、送信した推定ルータパケットによって、ルータＣ４０のＬＡＮ側アドレスを取得し（矢印Ｄ）、ルータＣ４０に対してＮＡＴ設定及びファイアウォール設定を実行する。第３の通信端末１２は、ルータＣ４０のＷＡＮ側アドレスを取得し（矢印Ｅ）、ＷＡＮ側アドレスがグローバルアドレスであることを検出して、処理を終了する。
【０１２６】
図３２は、第３の通信端末１２の構成を示すブロック図である。第３の通信端末１２は、制御部１０１と、ルータディスカバリ用パケット作成部１２２と、受信パケット解析部１０３と、パケット送受信部１０４と、通信部１０５と、アドレス空間衝突検出部１２６と、ＷＡＮ側アドレス取得部１１１と、タイムアウト検出部１２１とを備える。第３の通信端末１２は、タイムアウト検出部１２１と、ルータディスカバリ用パケット作成部１１２に代えてルータディスカバリ用パケット作成部１２２と、アドレス空間衝突検出部１０６に代えてアドレス空間衝突検出部１２６とをさらに備える点が、図２２に示す第２の通信端末１１と異なる。タイムアウト検出部１２１は、ＴＴＬ応答パケットの受信に対するタイムアウトを検出する。ルータディスカバリ用パケット作成部１１２は、制御部１０１に指示に応じて、ＴＴＬパケット及び推定ルータパケットの送信処理を行う。アドレス空間衝突検出部１２６は、ルータのＬＡＮ側アドレスを用いたアドレス空間の推定と、ルータのＷＡＮ側アドレスを用いた上位ルータのアドレス空間の推定と、アドレス空間衝突の判定処理とを行う。なお、第２の通信端末１１と同一の構成に対しては、同じ参照番号を付し、その説明を省略する。
【０１２７】
第３の通信端末１２の詳細な動作を図３３〜図３６を用いて説明する。図３３は、第３の通信端末１２のアドレス空間衝突の検出動作全体を示すフローチャートである。図３４は、ルータディスカバリ用パケット作成部１１２が行うＴＴＬパケット送信処理を示すフローチャートである。図３５は、タイムアウト検出部１２１がタイムアウトを検出後に、第３の通信端末１２が行う処理を示すフローチャートである。図３６は、ルータディスカバリ用パケットに対する応答パケットの受信処理を示すフローチャートである。
【０１２８】
第３の通信端末１２は、ルータディスカバリ用パケットとして、ＴＴＬパケット及び推定ルータパケットの２種類を送信する。また、第３の通信端末１２は、ルータディスカバリ用パケットに対する応答パケットとしても、ＴＴＬ応答パケット及び推定ルータ応答パケットの２種類を受信する。まず、第３の通信端末１２のアドレス空間衝突の検出動作全体について、図３３を用いて説明する。第３の通信端末１２がアドレス空間衝突検出処理を開始すると、制御部１０１は、ルータディスカバリ用パケットの送信処理（ＴＴＬパケット送信処理及び推定ルータパケット送信処理）を起動し、ＴＴＬパケットの作成を指示する（ステップＳ３１）。この結果、図３４に示すＴＴＬパケット送信処理と、推定ルータパケット送信処理とが開始される。なお、この段階では、制御部１０１は、推定ルータパケットの作成の指示を行わない。
【０１２９】
制御部１０１は、ＴＴＬ応答パケットのタイムアウト監視処理を起動する（ステップＳ３２）。ＴＴＬ応答パケットのタイムアウト監視処理は、ＴＴＬパケット送信処理で送信されたＴＴＬパケットに対する応答が、予め規定している時間内に返ってきているか否かを監視する。タイムアウト監視処理が、ＴＴＬ応答パケットに対する応答が帰ってきていないことを検出した場合、制御部１０１により、図３５に示す処理が実行される。
【０１３０】
ＴＴＬ応答パケットのタイムアウト監視処理起動後、制御部１０１は、図３６に示すルータディスカバリ用パケットに対する応答パケット（以下、ルータ応答パケットという）の受信処理を起動する。その後、宅内ネットワーク１のアドレス空間の衝突チェックが完了するまで処理を継続し、完了すると、図３３に示す処理を終了する（ステップＳ３４）。
【０１３１】
以下、第３の通信端末１２の動作を、ルータディスカバリ用パケットの送信処理、ＴＴＬ応答パケット受信のタイムアウト検出処理、ルータ応答パケット受信処理の３つの分けて説明を行う。
【０１３２】
ルータディスカバリ用パケットの送信処理は、ＴＴＬパケット送信処理及び推定ルータパケット送信処理の２つの処理が行われる。ＴＴＬパケット送信処理について、図３４を用いて説明を行う。宅内ネットワーク１内のアドレス空間の衝突検出を行う場合、制御部１０１は、ＴＴＬパケット送信処理の開始をルータディスカバリ用パケット作成部１１２に指示する。ルータディスカバリ用パケット作成部１１２は、制御部１０１がＴＴＬパケットの作成の続行を指示しているか否か確認する（ステップＳ３０１）。続行を指示していない場合、ルータディスカバリ用パケット作成部１０２は、図３４に示す処理を終了する。一方、続行を指示している場合、ルータディスカバリ用パケット作成部１０２は、ＴＴＬパケットを作成する（ステップＳ３０２）。ルータディスカバリ用パケット作成部１０２は、作成したＴＴＬパケットと対応付けたタイムアウト時間を、タイムアウト検出部１２１に登録する（ステップＳ３０３）。ルータディスカバリ用パケット作成部１０２は、パケット送受信部１０４と通信部１０５とを介して、ＴＴＬパケットを送信する（ステップＳ３０４）。第３の実施形態におけるＴＴＬパケット送信処理は、ＴＴＬパケットに対するタイムアウト時間を登録処理を行う点が、第１の実施形態におけるＴＴＬパケット送信処理と異なっている。
【０１３３】
推定ルータパケット送信処理は、第２の実施形態（図２８）と同様の処理であるため、説明を省略する。
【０１３４】
図３５を用いて、ＴＴＬ応答パケット受信のタイムアウト検出後の処理について説明する。タイムアウト検出部１２１は、ＴＴＬ応答パケットのタイムアウト監視処理を実行し、送信したＴＴＬパケットに対応するＴＴＬ応答パケットをタイムアウト時間以内に受信しないことを検出した場合、タイムアウトを検出した旨を制御部１０１に通知する。タイムアウトの通知を受けた制御部１０１は、既にタイムアウト検出後に行われる、推定ルータパケットの送信処理が行われているか否かを判断する（ステップＳ３１１）。制御部１０１は、推定ルータパケット送信処理が行われている場合、図３５に示す処理を終了する。
【０１３５】
一方、推定ルータパケット送信処理が行われていない場合、制御部１０１は、受信したＴＴＬ応答パケットのうち、ＴＴＬ値が最大のＴＴＬ応答パケットから、送信元ルータのＬＡＮ側アドレスを取り出す（ステップＳ３１２）。これによって、ＩＣＭＰメッセージをフィルタリングするルータを推測することができる。ＴＴＬパケットは、ＴＴＬ＝１から順にインクリメントしながら送信される。このため、タイムアウトの発生は、ＴＴＬ値が小さいＴＴＬ応答パケットから順に発生する。このため、タイムアウトしたＴＴＬ応答パケットのＴＴＬ値より、１小さいＴＴＬ値に対応して検出されたルータが、ＩＣＭＰメッセージをフィルタリングするルータであると考えることができる。
【０１３６】
具体的な例を、図３０を用いて説明する。図３０に示すように、ルータＢ３０がＩＣＭＰメッセージをフィルタリングするルータである。このため、ルータＢ３０の上位ルータであるルータＣ４０がＴＴＬ＝３に設定されたＴＴＬパケットに対応するＴＴＬ応答パケットを送信しても、第３の通信端末１２において、ＴＴＬ応答パケットの受信は、タイムアウトとなる。同様に、ルータＤ５０がＴＴＬ＝４に設定されたＴＴＬパケットに対応するＴＴＬ応答パケットを送信しても、第３の通信端末１２において、ＴＴＬ応答パケットの受信は、タイムアウトとなる。ここで、ＴＴＬ値の順番にＴＴＬパケットを送信した場合、最初にタイムアウトするのは、ＴＴＬ＝３に設定されたＴＴＬパケットに対するＴＴＬ応答パケットの受信である。ＴＴＬ＝３に対応するＴＴＬ応答パケットの受信がタイムアウトするため、ＴＴＬ＝２に対応するＴＴＬ応答パケットを送信したルータＢ３０が、ＩＣＭＰメッセージをフィルタリングするルータとなる。なお、タイムアウトしたＴＴＬ応答パケットのＴＴＬ値を取得することが困難である場合、受信したＴＴＬ応答パケットのうち最大のＴＴＬ値を有するＴＴＬ応答パケットから検出されたルータが、ＩＣＭＰメッセージをフィルタリングするルータであるとみなしてもよい。
【０１３７】
ステップＳ３１２の処理を実行後、制御部１０１は、ＷＡＮ側アドレス取得部１１１に、ＩＣＭＰメッセージをフィルタリングするルータのＬＡＮ側アドレスを引き渡す。ＷＡＮ側アドレス取得部１１１は、第２の実施形態で説明した方法（ＵＰｎＰ  ＩＧＤ仕様等を用いる方法）と同様の方法を用いて、ステップＳ３１２で検出した、ＩＣＭＰメッセージをフィルタリングするルータのＷＡＮ側アドレスを取得する（ステップＳ３１３）。なお、ステップＳ３１３の処理は、図２３のステップＳ２０５の処理が相当する。
【０１３８】
制御部１０１は、ルータディスカバリ用パケット作成部１２２に対し、ＴＴＬパケット送信処理（図３４に示す処理）を中止するように指示する（ステップＳ３１４）。ＴＴＬパケット送信処理は、ＴＴＬ応答パケットのタイムアウト監視処理と並行して動作している。ＴＴＬパケット送信処理は、上記指示（ステップＳ３０１におけるＮｏ）によって、終了する。制御部１０１は、取得したＷＡＮ側アドレスをルータディスカバリ用パケット作成部１２２に引き渡すとともに、タイムアウト検出後のルータディスカバリ用パケットの送信処理として、推定ルータパケットを作成するように指示する（ステップＳ３１５）。
【０１３９】
図３６を用いて、ルータディスカバリ用パケットに対する応答パケット（以下、ルータ応答パケットという）の受信処理を説明する。制御部１０１は、ルータディスカバリ用パケット作成部１２２にＴＴＬパケット送信処理を指示した後、受信パケット解析部１０３にルータディスカバリ用パケットに対する応答パケットの受信処理を指示する。受信パケット解析部１０３は、制御部１０１からの指示に基づいて、図３６に示す処理を実行する。
【０１４０】
受信パケット解析部は、ルータ応答パケットの受信を待機する（ステップＳ３２１）。受信パケット解析部１０３は、ルータ応答パケットを受信すると、受信したルータ応答パケットが、ＴＴＬ応答パケットであるか、推定ルータ応答パケットであるかを判断する（ステップＳ３２２）。
【０１４１】
受信したルータ応答パケットがＴＴＬ応答パケットである場合（ステップＳ３２２，Ｎｏ）、受信パケット解析部１０３は、ステップＳ３２３〜Ｓ３２７に示す処理を実行する。受信パケット解析部１０３は、ＴＴＬ応答パケット（ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥ）の受信処理を実行する（ステップＳ３２３）。受信パケット解析部１０３は、ＴＴＬ応答パケットの送信元ルータのＬＡＮ側アドレスが、ローカルアドレスであるか否かを判断する（ステップＳ３２４）。ＴＴＬ応答パケットの送信元ルータのＬＡＮ側アドレスがローカルアドレスである場合、アドレス空間衝突検出部１２６は、制御部１０１を通じて、アドレス空間推定処理（ステップＳ３２５）と、アドレス空間衝突処理（ステップＳ３２６）とを実行する。なお、図３６に示すステップＳ３２３〜ステップＳ３２６において行われる処理は、図３に示すステップＳ１０３〜ステップＳ１０６の処理にそれぞれ相当する。これらのステップの詳細については、第１の実施形態で詳しく説明しているため、詳細な説明を省略する。一方、ステップＳ３２４において、ルータ応答パケットの送信元ルータのＬＡＮ側アドレスがローカルアドレスでない場合、受信パケット解析部１０３は、制御部１０１を通じて、ルータディスカバリ用パケット作成部１０２に、受信したＴＴＬ応答パケットに対応するＴＴＬ値以上のＴＴＬパケット送信処理の中止を指示する（ステップＳ３２７）。そして、受信パケット解析部１０３は、受信すべき他のルータ応答パケットを受信する必要があるか否かを判断する（ステップＳ３２８）。他のルータ応答パケットを受信する場合、受信パケット解析部１０３は、ステップＳ２１１に戻る。他のルータ応答パケットを受信しない場合、受信パケット解析部１０３は、処理を終了する。具体的には、受信パケット解析部１０３は、推定ルータ応答パケットや、ＴＴＬ応答パケットを受信する必要があるかないかを判断する。
【０１４２】
ステップＳ３２２において、受信したルータ応答パケットが、推定ルータ応答パケットである場合、受信パケット解析部１０３は、ステップＳ３２９〜Ｓ３３５に示す処理を実行する。受信パケット解析部１０３は、推定ルータ応答パケットを解析して、送信元ルータのＬＡＮ側アドレスを取得する（ステップＳ３２９）。受信パケット解析部１０３は、制御部１０１を通じて、ルータディスカバリ用パケット作成部１２２に、推定ルータパケットの送信処理中止を指示する（ステップＳ３３０）。受信パケット解析部１０３は、ＷＡＮ側アドレス取得部１１１を通じて、推定ルータ応答パケットの送信元ルータのＷＡＮ側アドレスを取得する（ステップＳ３３１）。受信パケット解析部１０３は、取得したＷＡＮ側アドレスが、ローカルアドレスであるか否かを判断する（ステップＳ３３２）。取得したＷＡＮ側アドレスがローカルアドレスの場合、受信パケット解析部１０３は、制御部１０１を通じてルータディスカバリ用パケット作成部１２２に、取得したＷＡＮ側アドレスを利用した推定ルータパケットの送信処理を指示する（ステップＳ３３３）。アドレス空間衝突検出部１２６は、制御部１０１を通じて、アドレス空間推定処理（ステップＳ３３４）と、アドレス空間衝突処理（ステップＳ３３５）とを実行する。なお、図３６に示すステップＳ３２９〜ステップＳ３３５において行われる処理は、図２３に示すステップＳ２０３〜Ｓ２０９の処理にそれぞれ相当する。これらのステップの詳細は、第１の実施形態で詳しく説明しているため、詳細な説明を省略する。一方、ステップＳ３３２において、取得したＷＡＮ側アドレスがローカルアドレスでない場合（グローバルアドレスの場合）、受信パケット解析部１０３は、ステップＳ３２８の処理に進む。
【０１４３】
このように、第３の通信端末１２は、ＴＴＬパケットに対するＴＴＬ応答パケットの受信がタイムアウトした場合、ＴＴＬ値が最大のＴＴＬ応答パケットの送信元ルータが、ＩＣＭＰメッセージをフィルタリングするルータであると判断する。そして、第３の通信端末１２は、ＩＣＭＰメッセージをフィルタリングするルータのＷＡＮ側アドレスを取得し、上位のルータに対して推定ルータパケットを送信するとともに、アドレス空間推定処理及びアドレス衝突判定処理を行う。これにより、ＩＣＭＰメッセージを破棄するルータを含むネットワークにおいても、アドレス空間の衝突検出を高速に、しかも確実に実行することができる。
【０１４４】
なお、アドレス空間推定処理及びアドレス衝突判定処理は、宅内ネットワーク１の全ルータの検出が終了してから行ってもよい。この場合、アドレス空間推定処理は、全ルータのＬＡＮ側アドレス空間を推定して記憶した後、各ルータのＬＡＮ側アドレス空間を比較すればよい。
【０１４５】
また、アドレス空間推定処理は、第１の実施形態で説明した方法と同様の方法を行うものとして説明した。しかし、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを利用してアドレス空間推定処理を行うため、第３の通信端末１２は、ＩＣＭＰメッセージをフィルタリングするルータに対して、第１の実施形態と同様のアドレス空間の推定処理を行うことができない。この場合、市販ルータは、一般にクラスＣのアドレス空間を使用するため、第３の通信端末１２は、ＩＣＭＰメッセージをフィルタリングするルータのアドレス空間がクラスＣのアドレス空間であると推測してもよい。また、ｈｔｔｐメッセージやＳＮＭＰなどのプロトコルを利用して、ＩＣＭＰメッセージをフィルタリングするルータのアドレス空間を読み出してもよい。
【０１４６】
（第４の実施形態）
第３の実施形態では、ＩＣＭＰメッセージをフィルタリングするルータを含むネットワークに対して適用可能な、効率的なアドレス空間の衝突検出方法を説明した。第４の実施形態では、ＴＴＬを処理しないルータを含む宅内ネットワークに対して適用可能な、効率的なアドレス空間の衝突検出方法について説明する。
【０１４７】
図３７は、本発明の第４の実施形態に係るアドレス空間衝突検出装置が用いられるネットワークの一例を示す図である。図３７に示す宅内ネットワーク１は、図３０に示す第３の通信端末１２に代えて、第４の通信端末１３を備える点が異なる。第４の通信端末１３は、第４の実施形態に係るアドレス空間衝突検出装置である。
【０１４８】
図３７を用いて、ＴＴＬを処理しないルータを宅内ネットワーク１が含む場合に発生する問題点について説明する。図３７において、ルータＢ３０がＴＴＬを処理しないルータであるとする。第４の通信端末１３は、ＴＴＬパケットをＴＴＬ＝１からインクリメントした値を順に設定して送信する。ＴＴＬ＝２に設定されたＴＴＬパケットは、通常、ルータＢ３０においてＴＴＬ＝０となり、ルータＢ３０からＴＴＬ応答パケットが送信される。しかし、ルータＢ３０がＴＴＬを処理しないため、ＴＴＬ＝２に設定された第１のディスカバリ用パケットは、ルータＡ２０においてＴＴＬがデクリメントされたＴＴＬ＝１の状態で、ルータＣ４０に送信される。ＴＴＬ＝２に設定されたＴＴＬパケットは、ルータＣ４０においてＴＴＬ＝０となる。このため、ルータＣ４０が、ＴＴＬ＝２に設定されたＴＴＬパケットに対応するＴＴＬ応答パケットを送信することになる。
【０１４９】
この結果、ＴＴＬを処理しないルータを含む宅内ネットワークに対して、第１の実施形態に係るアドレス空間衝突検出装置を適用すると、ルータＡ２０とルータＣ４０との間に存在するルータＢ３０を検出することができないまま、アドレス空間の衝突検出を行うという問題が発生する。第２の実施形態に係るアドレス空間衝突検出装置は、ＴＴＬを処理しないルータの検出が可能なため、ＴＴＬを処理しないルータを含む宅内ネットワークに対して適用することができる。しかし、第２の実施形態に係るアドレス空間衝突検出装置は、上位のルータのＬＡＮ側アドレスを推測しながら推定ルータパケットの送信処理を行う必要があるため、処理効率が第１の実施形態に係るアドレス空間衝突検出装置に対して劣るという問題がある。
【０１５０】
そこで、第４の実施形態では、ＴＴＬを処理しないルータを含む宅内ネットワークに対して適用できるとともに、処理効率の良いアドレス空間衝突検出処理装置について説明する。
【０１５１】
第４の実施形態に係るアドレス空間衝突検出装置の動作の概要を、図３８を用いて説明する。図３８に示すネットワークの構成は、図３７に示すネットワークと同じである。第４の通信端末１３が、第４の実施形態に係るアドレス空間衝突検出装置であり、ルータＢ３０がＴＴＬを処理しないルータであるとする。
【０１５２】
第４の通信端末１３は、ＴＴＬパケットを送信する。第４の通信端末１３は、ＴＴＬパケットに対応するＴＴＬ応答パケットをルータＡ２０から受信することによって、ルータＡ２０のＬＡＮ側アドレスを取得する（矢印Ａ）。第４の通信端末１３は、ＴＴＬ＝２のＴＴＬパケットに対するＴＴＬ応答パケットをルータＣ４０から受信して、ルータＣ４０のＬＡＮ側アドレスを取得する（矢印Ｂ）。第４の通信端末１３は、ルータＡ２０のＷＡＮ側アドレスを取得する（矢印Ｃ）。このとき、ルータＡ２０のＷＡＮ側アドレスが、“１９２．１６８．１０．３”であり、ルータＣ４０のＬＡＮ側アドレスが、“１９２．１６８．２．１”であるとする。この場合、第４の通信端末１３は、ルータＡ２０のＷＡＮ側アドレス及びルータＣ４０のＬＡＮ側アドレスのネットワークアドレスが一致していないことを検出する。この場合、第４の通信端末１３は、ルータＡ２０とルータＣ４０との間に他のルータが存在することを認識できる。ルータＡ２０のＷＡＮ側アドレス“１９２．１６８．１０．３”を用いて、検出されていないルータＢ３０のＬＡＮ側アドレスを推測して、推定ルータパケットを送信する（矢印Ｄ）。これにより、第４の通信端末１３は、ルータＢ３０のＬＡＮ側アドレスを取得することができるため、ルータＢ３０のアドレス空間の衝突検出処理を行う。
【０１５３】
第４の通信端末１３は、ルータＢ３０のＷＡＮ側アドレスを取得する（矢印Ｅ）。第４の通信端末１３は、ルータＢ３０のＷＡＮ側アドレスから上位ルータのＬＡＮ側アドレスを推測して、推定ルータパケットを送信する。これにより、第４の通信端末１３は、ルータＣ４０のＬＡＮ側アドレスを取得する（矢印Ｆ）。ルータＢ３０のＷＡＮ側アドレスを用いて取得したルータＣ４０のＬＡＮ側アドレスと、ＴＴＬ＝２のＴＴＬパケットに対応するＴＴＬ応答パケットから得たＬＡＮ側アドレスとが一致するため、第４の通信端末１３は、ルータＡ２０とルータＣ４０との間にあるルータを全て検出したと判断する。このように、第４の通信端末１３は、ＴＴＬを処理しないルータを検出することによって、宅内ネットワーク１内の全てのルータを検出する。
【０１５４】
図３９は、第４の通信端末１３の構成を示すブロック図である。第４の通信端末１３は、制御部１０１と、ルータディスカバリ用パケット作成部１３２と、受信パケット解析部１０３と、パケット送受信部１０４と、通信部１０５と、アドレス空間衝突検出部１２６と、ＷＡＮ側アドレス取得部１１１と、ルータアドレス検証部１３１とを備える。第４の通信端末１３は、ルータアドレス検証部１３１と、ルータディスカバリ用パケット作成部１１２に代えてルータディスカバリ用パケット作成部１３２をさらに備える点が、図２２に示す第２の通信端末１１と異なる。ルータアドレス検証部１３１は、ＴＴＬ応答パケットの送信元ルータのＬＡＮ側アドレスの正当性を検証する。すなわち、ルータアドレス検証部１３１は、検出されていないルータが存在するか否かを検証する。なお、第２の通信端末１１と同一の構成に対しては、同じ参照番号を付し、その説明を省略する。
【０１５５】
図４０及び図４１を用いて、第４の通信端末１３が行うアドレス空間の衝突判定処理について説明する。図４０は、ルータ応答パケットの受信処理を示すフローチャートである。図４１は、ＴＴＬ応答パケットの受信処理を示すフローチャートである。
【０１５６】
まず、ルータディスカバリ用パケット送信処理について説明する。第４の通信端末は、図４に示すフローチャートに従って、ＴＴＬパケット送信処理をするため、その説明を省略する。なお、第３の実施形態で説明したように、第３の通信端末１２は、ＩＣＭＰメッセージを処理しないルータを検出した場合、ＴＴＬパケット送信処理を中止する。しかし、第４の通信端末１３は、ＴＴＬ応答パケットを用いてＴＴＬを処理しないルータを検出することはできないため、ルータのＬＡＮ側アドレスがグローバルアドレスとなるまで、ＴＴＬパケット送信処理の中止しない。この点が、第３の実施形態と異なる。また、第４の通信端末１３は、図２８に示すフローチャートに従って第２のディスカバリ用パケットの送信処理をするため、その説明を省略する。
【０１５７】
図４０を用いて、ルータ応答パケットの受信処理について説明する。制御部１０１は、ルータディスカバリ用パケットの送信処理をルータディスカバリ用パケット作成部１０２に指示すると、受信パケット解析部１０３にルータ応答パケットの受信処理を指示する。受信パケット解析部１０３は、ルータ応答パケットの受信を待機する（ステップＳ４１１）。受信パケット解析部１０３は、ルータ応答パケットを受信した場合、ルータ応答パケットが、ＴＴＬ応答パケットであるか、推定ルータ応答パケットであるか否かを判断する（ステップＳ４１２）。
【０１５８】
ルータ応答パケットがＴＴＬ応答パケットである場合（ステップＳ４１２、Ｎｏ）、受信パケット解析部１０３は、ステップＳ４１３〜Ｓ４１７に示す処理を実行する。以下に説明する。受信パケット解析部１０３は、ＴＴＬ応答パケットを通信部１０５及びパケット送受信部１０４を介して受信する。受信パケット解析部１０３は、ＴＴＬ応答パケットの受信処理を行う（ステップＳ４１３）。ステップＳ４１３の処理の詳細については、図４１を用いて説明する。
【０１５９】
図４１において、受信パケット解析部１０３は、ＴＴＬ応答パケットに含まれる送信先ポート番号を取り出し、送信先ポート番号を元にＴＴＬパケットを送信した際のＴＴＬ値を特定する。ここでは、ＴＴＬ＝Ｎであるとして説明を行う。受信パケット解析部は、ＴＴＬ＝Ｎに設定されたＴＴＬパケットに対応するＴＴＬ応答パケットの送信元ルータのＬＡＮ側アドレスを取り出す（ステップＳ４５１）。
【０１６０】
受信パケット解析部１０３は、制御部１０１を通じてＷＡＮ側アドレス取得部１１１に、ＴＴＬ＝Ｎ−１に設定したＴＴＬパケットによって検出されたルータのＷＡＮ側アドレスを取得するように指示する（ステップＳ４５２）。
【０１６１】
受信パケット解析部１０３は、制御部１０１を通じてルータアドレス検証部１３１に、取得したＷＡＮ側アドレスの検証を指示する。ルータアドレス検証部１３１は、ＴＴＬ＝Ｎに対応するルータのＬＡＮ側アドレスから推測されるアドレス空間内と、ＴＴＬ＝Ｎ−１に対応するルータのＷＡＮ側アドレスとを比較し、ＴＴＬ＝Ｎ−１のＷＡＮ側アドレスが、ＴＴＬ＝ＮのルータのＬＡＮ側アドレス空間の範囲内であるか否かを判断する（ステップＳ４５３）。ＴＴＬ＝Ｎ−１のルータのＷＡＮ側アドレスが、ＴＴＬ＝ＮのルータのＬＡＮ側アドレス空間の範囲内でない場合、ルータアドレス検証部１３１は、ルータディスカバリ用パケット作成部１３２に、ＴＴＬ＝Ｎ−１に対応するルータのＷＡＮ側アドレスを用いた推定ルータパケットの作成を指示して（ステップＳ４５４）、図３５のステップＳ４１４に進む。
【０１６２】
図３５に戻って、ＴＴＬ応答パケットの受信処理の続きを説明する。受信パケット解析部１０３は、検出したルータのＬＡＮ側アドレスが、ローカルアドレスであるか否か判断する（ステップＳ４１４）。検出したルータのＬＡＮ側アドレスがローカルアドレスの場合、アドレス空間衝突検出部１２６は、アドレス空間推定処理（ステップＳ４１５）及びアドレス衝突判定処理（ステップＳ４１６）を実行する。アドレス空間推定処理及びアドレス衝突判定処理は、第１の実施形態で説明した処理と同様であるため、その説明を省略する。そして、受信パケット解析部１０３は、ルータ応答パケットの受信待機状態に戻る（ステップＳ４１１）。
【０１６３】
一方、ステップＳ４１４において、検出したルータのＬＡＮ側アドレスがローカルアドレスでない場合、受信パケット解析部１０３は、制御部１０１を通じてルータディスカバリ用パケット作成部１３２に、ＴＴＬパケット送信処理の中止を指示する（ステップＳ４１７）。受信パケット解析部１０３は、他のルータ応答パケットを受信する必要があるか否かを判断する（ステップＳ４１８）。具体的には、推定ルータ応答パケットや、今回受信したＴＴＬ＝Ｎより小さい値に設定されたＴＴＬパケットに対応するＴＴＬ応答パケットを受信する必要があるかないかを判断する。他のルータ応答パケットを受信する必要がない場合、受信パケット解析部１０３は、図３５に示す処理を終了する。他のルータ応答パケットを受信する必要がある場合、受信パケット解析部１０３は、ルータ応答パケットの受信待機状態に戻る（ステップＳ４１１）。このようにして、受信パケット解析部１０３は、ＴＴＬ応答パケットの受信処理を行う。
【０１６４】
ステップＳ４１２において、受信したルータ応答パケットが、推定ルータ応答パケットである場合、受信パケット解析部１０３は、ステップＳ４１９〜Ｓ４２５に示す処理を実行する。以下に説明する。
【０１６５】
受信パケット解析部１０３は、推定ルータ応答パケットを受信すると、推定ルータ応答パケットを解析して、送信元ルータのＬＡＮ側アドレスを取得する（ステップＳ４１９）。推定ルータパケットにＵＰｎＰを利用する場合、受信パケット解析部１０３は、推定ルータ応答パケットから、アクション送信のための情報であるデバイスディスクリプション及びサービスディスクリプションを取得する。受信パケット解析部１０３は、制御部１０１を通じてルータディスカバリ用パケット作成部１３２に、推定ルータパケットの送信処理の中止を指示する（ステップＳ４２０）。
【０１６６】
受信パケット解析部１０３は、取得したルータのＬＡＮ側アドレスと、ＴＴＬ＝Ｎのルータディスカバリ用パケットで得たルータのＬＡＮ側アドレスとが、一致するか否か確認する（ステップＳ４２１）。一致する場合、受信パケット解析部１０３は、ステップＳ４１８に進む。ステップＳ４１８以降の処理については、ＴＴＬ応答パケットの受信処理において既に説明しているため、その説明を省略する。
【０１６７】
一方、一致しない場合、アドレス空間衝突検出部１２６は、アドレス空間推定処理（ステップＳ４２２）とアドレス衝突判定処理（ステップＳ４２３）とを実行する。取得したルータのＬＡＮ側アドレスとＴＴＬ＝Ｎに設定されたＴＴＬパケットで得たルータのＬＡＮ側アドレスとが一致しない場合、ＴＴＬ＝Ｎに設定したＴＴＬパケットで検出されたルータと今回検出したルータとの間に、他のルータが存在する可能性があるため、受信パケット解析部１０３は、制御部１０１を通じてＷＡＮ側アドレス取得部１１１に、今回検出したルータのＷＡＮ側アドレスの取得を指示する（ステップＳ４２４）。受信パケット解析部１０３は、制御部１０１を通じてルータディスカバリ用パケット作成部１０２に、取得したＷＡＮ側アドレス用いた推定ルータパケットの送信処理を指示する（ステップＳ４２５）。そして、受信パケット解析部１０３は、ルータ応答パケットの受信待機状態に戻る（ステップＳ４１１）。以上のようにして、受信パケット解析部１０３は、ルータのＷＡＮ側アドレスを用いて上位ルータのＬＡＮ側アドレスを推測したルータディスカバリ用パケットに対するルータ応答パケットの受信処理を行う。
【０１６８】
このように、第４の実施形態に係るアドレス空間衝突検出装置は、検出したルータのＬＡＮ側アドレスと、検出したルータの下位ルータのＬＡＮ側アドレスを取得し、それぞれのアドレス空間が一致するか否かを判断する。一致しない場合、アドレス空間衝突検出装置は、ＴＴＬを処理しないルータが検出したルータと検出したルータの下位ルータとの間に存在すると判断して、推定ルータパケットを用いてＴＴＬを処理しないルータのＬＡＮ側アドレスを取得する。以上のような動作をすることによって、ＴＴＬを処理しないルータを含む宅内ネットワークであっても、アドレス空間の衝突の検出を高速に行うアドレス空間衝突検出装置を提供することが可能となる。
【０１６９】
また、第４の実施形態において、アドレス空間推定処理は、第１の実施形態と同様の方法を行うものとして説明した。しかし、アドレス空間推定処理は、ＩＣＭＰ  ＴＩＭＥ  ＥＸＣＥＥＤＥＤ  ＭＥＳＳＡＧＥを利用するため、第４の通信端末１３は、ＩＣＭＰメッセージをフィルタリングするルータに対して、第１の実施形態と同様のアドレス空間の推定処理を行うことができない。この場合、第３の通信端末１２は、ＩＣＭＰメッセージをフィルタリングするルータのアドレス空間がクラスＣのアドレス空間であると推測してもよい。また、ｈｔｔｐメッセージやＳＮＭＰなどのプロトコルを利用して、ＩＣＭＰメッセージをフィルタリングするルータのアドレス空間を読み出してもよい。
【０１７０】
なお、第１〜第４の実施形態において、アドレス空間の衝突検出は、端末またはルータの機能部が行うものとして説明したが、アドレス空間の衝突検出機能を全てソフトウェア（アドレス空間衝突検出ソフトウェア）として実装してもよい。このようにすることによって、ＰＣ等の情報処理装置にアドレス空間衝突検出ソフトウェアをインストールすることで、ＰＣ等の情報処理装置を第１〜第４の実施形態で説明したアドレス空間衝突検出装置としてどうさせることが可能となる。また、アドレス空間衝突検出ソフトウェアを、ＣＤ−ＲＯＭ、メモリカード、フロッピー（登録商標）ディスクなどの記憶媒体に記憶してもよい。このようにすることによって、本記憶媒体を用いて、ＰＣ等の情報処理装置にアドレス空間衝突検出ソフトウェアをインストールすることが可能となる。
【０１７１】
また、第２〜第４の実施形態において、通信端末がアドレス空間検出機能を備えるものとして説明した。しかし、第１の実施形態と同様に、宅内ネットワーク１の各ルータがアドレス空間検出機能を備えてもよい。
【０１７２】
また、第２〜第４の実施形態において、ルータが３台接続された宅内ネットワーク１を例にして説明を行った。しかし、ルータの接続台数はこれに限られない。第１の実施形態と同様に、アドレス空間衝突検出装置は、ルータが１台からＮ台（Ｎは２以上の自然数）で構成される宅内ネットワークや企業内ネットワークに対して適用することが可能である。また、通信端末とインターネット２との間に存在するルータが１つである場合、通信端末は、検出したルータのＬＡＮ側アドレス空間と、インターネット２のアドレス空間（図１のルータＤのＬＡＮ側アドレス空間）とが衝突しているか否かを判定してもよい。
【０１７３】
また、第２〜第４の実施形態において、アドレス空間衝突検出処理装置は、第１の実施形態と同様に、アドレス空間の衝突を検出した場合、アドレス空間の衝突を検出した旨をユーザに通知するユーザ通知部１０７を備えてもよい。また、第２の通信端末１１は、第１の実施形態と同様に、宅内ネットワーク１におけるアドレス空間の衝突を検出した場合、衝突が発生しているルータの設定を自動的に変更するアドレス空間設定修正部１０８をさらに備えていてもよい。
【０１７４】
また、第３及び第４の実施形態において、第１の実施形態で説明したＴＴＬを変化させたルータディスカバリ用パケットをＴＴＬ＝１からインクリメントして送信する方法を用いて、ルータのアドレス情報を検出する過程で問題を検出した時に、第２の実施形態で説明したルータのＬＡＮ側アドレスを推測してルータディスカバリ用パケットを送信して、ルータのアドレス情報を取得する方法について説明した。しかし、上記の方法は一例であり、第１の実施形態で説明した方法と第２の実施形態で説明した方法とを、最初から同時に実行してもよい。この場合、得られた結果を合成するように制御することによって、第３及び第４の実施形態と同様の効果を得ることが可能になる。
【産業上の利用可能性】
【０１７５】
本発明に係るアドレス空間衝突の検出方法及びアドレス空間衝突の検出装置は、２つ以上のルータが接続された宅内ネットワーク内の各ルータのアドレス空間の衝突を判定が可能であり、アドレス空間衝突の検出方法及びアドレス空間衝突の検出装置に関し、より特定的には、２つ以上のルータが接続されたネットワークにおける、アドレス空間衝突の検出方法及びアドレス空間衝突の検出装置として有用である。
【図面の簡単な説明】
【０１７６】
【図１】第１の実施形態に係るアドレス空間検出装置が用いられるネットワークの一例を示す図
【図２】第１の通信端末１０の構成を示すブロック図
【図３】第１の通信端末１０が行うアドレス空間の衝突検出処理を示すフローチャート
【図４】ＴＴＬパケット送信処理のフローチャート
【図５】ＵＤＰを用いる場合の、ＴＴＬパケットの構成を示す図
【図６】ＴＴＬパケットにおける、ＴＴＬと宛先ポート番号との対応関係の一例を示す図
【図７】ＴＴＬパケットとＴＴＬ応答パケットとの対応を示す図
【図８】ＴＴＬ応答パケットの一例を示す図
【図９】ルータ応答パケット受信処理を示すフローチャート
【図１０】アドレス空間衝突検出部１０６が行うアドレス空間の推定処理を示すフローチャート
【図１１】ＩＣＭＰを用いたアドレス範囲推定パケットのフォーマットを示す図
【図１２】アドレス範囲推定パケットの送信先とアドレス範囲推定パケットの応答との対応関係の一例を示す図
【図１３】アドレス衝突判定処理のフローチャート
【図１４】第１の通信端末の他のブロック構成例を示す図
【図１５】アドレス空間の衝突の一例を示す図
【図１６】ユーザ通知部１０７の表示の一例を示す図
【図１７】アドレス空間の衝突の他の例を示す図
【図１８】ユーザ通知部１０７の表示の他の例を示す図
【図１９】第１の通信端末１０の他のブロック構成例を示す図
【図２０】ＴＴＬとシーケンス番号とを対応させた場合の一例を示す図
【図２１】第２の実施形態に係るアドレス空間衝突検出装置が用いられるネットワークの一例を示す図
【図２２】第２の通信端末１１の構成を示すブロック図
【図２３】第２の通信端末１１が行うアドレス空間の衝突検出処理を説明する図
【図２４】推定ルータパケットのデータ部の一例を示す図
【図２５】推定ルータ応答パケットのデータ部の一例を示す図
【図２６】ＧｅｔＥｘｔｅｒｎａｌＩＰＡｄｄｒｅｓｓアクションの一例を示す図
【図２７】ＧｅｔＥｘｔｅｒｎａｌＩＰＡｄｄｒｅｓｓアクションに対する応答の一例を示す図
【図２８】推定ルータパケットの送信処理を説明する図
【図２９】推定ルータパケットの送信先として推測する上位ルータのＬＡＮ側アドレスの一例を示す図
【図３０】第３の実施形態に係るアドレス空間衝突検出装置が用いられるネットワークの一例を示す図
【図３１】第３の通信端末１２の構成を示すブロック図
【図３２】第３の通信端末１２のルータの検出動作の概要を説明する図
【図３３】第３の通信端末１２のアドレス空間衝突の検出動作全体を示すフローチャート
【図３４】ＴＴＬパケット送信処理を示すフローチャート
【図３５】タイムアウト検出部１２１がタイムアウトを検出した際に第３の通信端末１２が行う処理を示すフローチャート
【図３６】ルータ応答パケットの受信処理を示すフローチャート
【図３７】第４の実施形態に係るアドレス空間衝突検出装置が用いられるネットワークの一例を示す図
【図３８】第４の実施形態に係るアドレス空間衝突検出装置の動作の概要を説明する図
【図３９】第４の通信端末１３の構成を示すブロック図
【図４０】ルータ応答パケットの受信処理を示すフローチャート
【図４１】ＴＴＬ応答パケットの受信処理を示すフローチャート
【図４２】特許文献１が示すアドレス空間衝突の検出方法の問題点を説明する図
【図４３】特許文献１が示すアドレス空間の衝突検出方法を示す図
【符号の説明】
【０１７７】
１０、１１、１２、１３  通信端末
２０、３０、４０、５０  ルータ
２０１、３０１、４０１、５０１  ＷＡＮ側通信Ｉ／Ｆ
２０２、３０２、４０２、５０２  ＬＡＮ側通信Ｉ／Ｆ
１０１  制御部
１０２、１１２、１２２、１３２  ルータディスカバリ用パケット作成部
１０３  受信パケット解析部
１０４  パケット送受信部
１０５  通信部
１０６、１１６、１２６  アドレス空間衝突検出部
１０７  ユーザ通知部
１０８  アドレス空間設定修正部
１１１  ＷＡＮ側アドレス取得部
１２１  タイムアウト検出部
１３１  ルータアドレス検証部
【図１】
2006287478.tif 000003
【図２】
2006287478.tif 000004
【図３】
2006287478.tif 000005
【図４】
2006287478.tif 000006
【図５】
2006287478.tif 000007
【図６】
2006287478.tif 000008
【図７】
2006287478.tif 000009
【図８】
2006287478.tif 000010
【図９】
2006287478.tif 000011
【図１０】
2006287478.tif 000012
【図１１】
2006287478.tif 000013
【図１２】
2006287478.tif 000014
【図１３】
2006287478.tif 000015
【図１４】
2006287478.tif 000016
【図１５】
2006287478.tif 000017
【図１６】
2006287478.tif 000018
【図１７】
2006287478.tif 000019
【図１８】
2006287478.tif 000020
【図１９】
2006287478.tif 000021
【図２０】
2006287478.tif 000022
【図２１】
2006287478.tif 000023
【図２２】
2006287478.tif 000024
【図２３】
2006287478.tif 000025
【図２４】
2006287478.tif 000026
【図２５】
2006287478.tif 000027
【図２６】
2006287478.tif 000028
【図２７】
2006287478.tif 000029
【図２８】
2006287478.tif 000030
【図２９】
2006287478.tif 000031
【図３０】
2006287478.tif 000032
【図３１】
2006287478.tif 000033
【図３２】
2006287478.tif 000034
【図３３】
2006287478.tif 000035
【図３４】
2006287478.tif 000036
【図３５】
2006287478.tif 000037
【図３６】
2006287478.tif 000038
【図３７】
2006287478.tif 000039
【図３８】
2006287478.tif 000040
【図３９】
2006287478.tif 000041
【図４０】
2006287478.tif 000042
【図４１】
2006287478.tif 000043
【図４２】
2006287478.tif 000044
【図４３】
2006287478.tif 000045