(57)【特許請求の範囲】
【請求項１】
ネットワークに接続された通信装置が通信において送信元に指定する有効アドレスを決定するアドレス決定装置であって、
仮アドレスを選択し、前記ネットワーク上で問い合わせを行うことにより、前記ネットワークにおける該仮アドレスと重複する有効アドレスの有無を判断する重複有効アドレス判断手段と、
前記重複有効アドレス判断手段により前記ネットワークにおいて前記仮アドレスと重複する有効アドレスがないと判断された場合に、該仮アドレスを、前記ネットワークにおいて一意なアドレスであることを示す未確定アドレスとして記憶しておく記憶手段と、
当該アドレス決定装置ではない前記通信装置が送信元のアドレスの取得を要求する場合、該要求の前に前記記憶手段に記憶されている未確定アドレスを該通信装置の送信元として指定される有効アドレスに決定するアドレス決定手段と、
を有するアドレス決定装置。
【請求項２】
前記アドレス決定手段により決定される前記有効アドレスはＩＰアドレスである、請求項１に記載のアドレス決定装置。
【請求項３】
前記アドレス決定手段により前記アドレス決定装置の送信元として指定される有効アドレスが決定され、且つ、前記ネットワークにおける他の装置から該アドレス決定装置のリンク層アドレスを要求するメッセージを受信した場合、該アドレス決定装置のリンク層アドレスを示すメッセージを該他の装置へ送信するリンク層アドレス送信手段を更に有する、請求項２に記載のアドレス決定装置。
【請求項４】
前記他の装置が選択した仮アドレスと重複する有効アドレスの有無を問い合わせる重複確認メッセージを前記他の装置から受信した場合、該重複確認メッセージの示す該仮アドレスと前記記憶手段に記憶された前記未確定アドレスとが重複するか否かを判断する重複未確定アドレス判断手段と、
前記重複未確定アドレス判断手段により前記重複確認メッセージの示す前記仮アドレスと前記記憶手段に記憶された前記未確定アドレスとが重複すると判断された場合に、前記ネットワークにおいて該重複確認メッセージの示す仮アドレスと重複する有効アドレスがある旨を示すメッセージを送信する重複メッセージ送信手段と、
を更に有する請求項１乃至３のいずれか１項に記載のアドレス決定装置。
【請求項５】
前記通信装置は、前記ネットワークを通じて前記アドレス決定装置と接続される他の通信装置である、請求項１に記載のアドレス決定装置。
【請求項６】
前記通信装置から有効アドレスを要求するメッセージを受信した場合に、前記アドレス決定手段により決定された前記有効アドレスを示すアドレス伝達メッセージを該通信装置に送信するアドレス送信手段を更に有する、請求項５に記載のアドレス決定装置。
【請求項７】
前記ネットワークにおける前記通信装置が選択した仮アドレスと重複する有効アドレスの有無を問い合わせる重複確認メッセージを前記通信装置から受信した場合、該重複確認メッセージの示す該仮アドレスと前記記憶手段に記憶された前記未確定アドレスとが重複するか否かを判断する重複未確定アドレス判断手段と、
前記重複未確定アドレス判断手段により前記重複確認メッセージの示す前記仮アドレスと前記記憶手段に記憶された前記未確定アドレスとが重複すると判断された場合に、前記ネットワークにおいて該重複確認メッセージの示す仮アドレスと重複する有効アドレスがある旨を示すメッセージを送信する第１の重複メッセージ送信手段と、
前記重複確認メッセージの示す前記仮アドレスと前記アドレス伝達メッセージの示す前記アドレスとが重複する場合に、前記アドレス送信手段により前記アドレス伝達メッセージが送信されてから前記通信装置に有効アドレスを設定した旨を示すメッセージを受信するまで前記ネットワークにおいて該重複確認メッセージの示す前記仮アドレスと重複する有効アドレスがある旨を示すメッセージを送信する第２の重複メッセージ送信手段と、
を更に有する請求項６に記載のアドレス決定装置。
【請求項８】
前記アドレス決定装置はＤＨＣＰサーバ又はＤＨＣＰクライアントである、請求項１乃至７のいずれか１項に記載のアドレス決定装置。
【請求項９】
前記アドレス決定装置はＷｅｂシステムにおけるサーバ又はクライアントである、請求項１乃至７のいずれか１項に記載のアドレス決定装置。
【請求項１０】
ネットワークに接続された通信装置と、該通信装置が送信元に指定する有効アドレスを決定する、該通信装置ではないアドレス決定装置と、を有し、
前記アドレス決定装置は、仮アドレスを生成し、前記ネットワークにおける該仮アドレスと重複する有効アドレスの有無を判断し、該仮アドレスと重複する有効アドレスがないと判断された場合に、該仮アドレスを、前記ネットワークにおいて一意なアドレスであることを示す未確定アドレスとして記憶手段に記憶し、
前記通信装置は、送信元のアドレスの取得を要求する場合、前記アドレス決定装置へ有効アドレスを要求するメッセージを送信し、
前記アドレス決定装置は、前記通信装置から有効アドレスを要求するメッセージを受信した場合に、該要求の前に前記記憶手段に記憶されている未確定アドレスを前記通信装置に設定する有効アドレスとして決定し、該有効アドレスを示すアドレス伝達メッセージを該通信装置に送信し、
前記通信装置は、前記アドレス決定装置から前記アドレス伝達メッセージを受信し、該アドレス伝達メッセージの示す前記有効アドレスを該通信装置の送信元として指定される有効アドレスに設定する、通信システム。
【請求項１１】
ネットワークに接続された通信装置が通信において送信元に指定する有効アドレスを決定するアドレス決定方法であって、
仮アドレスを生成し、前記ネットワーク上で問い合わせを行うことにより、前記ネットワークにおける該仮アドレスと重複する有効アドレスの有無を判断し、
前記ネットワークにおいて前記仮アドレスと重複する有効アドレスがないと判断し場合に、該仮アドレスを、前記ネットワークにおいて一意なアドレスであることを示す未確定アドレスとして記憶手段に記憶しておき、
前記有効アドレスを決定する装置ではない前記通信装置が送信元のアドレスの取得を要求する場合、該要求の前に前記記憶手段に記憶されている未確定アドレスを該通信装置の送信元として指定される有効アドレスに決定する、アドレス決定方法。
【請求項１２】
ネットワークに接続された通信装置が通信において送信元に指定する有効アドレスを決定する処理をコンピュータに実行させるためのプログラムであって、
仮アドレスを生成し、前記ネットワーク上で問い合わせを行うことにより、前記ネットワークにおける該仮アドレスと重複する有効アドレスの有無を判断する重複アドレス判別手順、
前記重複アドレス判別手順により前記ネットワークにおいて前記仮アドレスと重複する有効アドレスがないと判断した場合に、該仮アドレスを、前記ネットワークにおいて一意なアドレスであることを示す未確定アドレスとして記憶手段に記憶する手順、及び
前記有効アドレスを決定する処理を実行するコンピュータではない前記通信装置が送信元のアドレスの取得を要求する場合、該要求の前に前記記憶手段に記憶されている未確定アドレスを該通信装置の送信元として指定される有効アドレスに決定するアドレス決定手順、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを通じて通信する通信装置においてアドレスを生成する技術に関する。
【背景技術】
【０００２】
インターネットなどのＩＰ（Internet  Protocol）ネットワークを介して通信を行う各通信装置にＩＰアドレスを動的に設定する場合、ＩＰアドレス要求のタイミングによってはネットワーク上に重複するＩＰアドレスが誤って設定されるおそれがある。これを防ぐため、RFC4862:  IPv6  Stateless  Address  Auto-configuration  ＜ＵＲＬ：http://www.ietf.org/rfc/rfc4862.txt＞に開示されているように、クライアントは、アドレスを実際に設定する前にＤＡＤ(Duplicate  Address  Detection)と呼ばれる処理を行う。【０００３】
ＤＡＤ処理では、まず、クライアントは、ネットワークにおいて他のいずれの通信装置にも設定されていないと認識している無効(Invalid)アドレスのうち１つを、図１に示すように設定候補の仮（Tentative）アドレスとする。【０００４】
そして、クライアントは、図２に示すように、仮アドレス（例えば「Address  Ｘ」）と重複する設定済の有効（Valid）アドレスがネットワークにあるか否かを問い合わせるＮＳ(Neighbor  Solicitation)メッセージＭ１を送信する。他の通信装置から重複するアドレスがある旨の返信が所定期間内にないのであれば、仮アドレスの一意性が確認されたので、クライアントは、図１に示すように、仮アドレスを有効アドレスとしてクライアント自身に設定する。図２における点線は、各クライアントからＮＳメッセージに対する返信がないことを意味する。【０００５】
図２に示すように、有効アドレスが設定された後は、クライアントは他の有効アドレスが設定済のクライアントと相互に宛先を指定して通信を行うことができる。図２〜図５における「ＮＳ（ｓｒｃ＝：：）」は、ＤＡＤのためのＮＳメッセージであることを意味し、「ＮＳ（ｓｒｃ≠：：）」は、Ｌ２アドレス解決のためのＮＳメッセージであることを意味する。図２〜図５において、ノード間における通常の矢印はＤＡＤ処理のためのＮＳメッセージの送信を意味し、白抜きの矢印は、Ｌ２アドレス解決のためのメッセージの送信を意味する。【０００６】
ここで、図３に示すように、クライアントＣ１が仮アドレス「Ｘ」の取得を試みたが、アドレス「Ｘ」と同じ有効アドレスがネットワークにおいて既にクライアントＣ２に設定されている場合について考える。この場合、クライアントＣ１からのＮＳメッセージＭ２に対し、重複するアドレスがある旨のＮＡ(Neighbor  Advertisement)メッセージＭ３をクライアントＣ２が返信する。Ｍ３を受信したクライアントＣ１は、仮アドレス「Ｘ」を破棄し、ＤＡＤは失敗する。【０００７】
また、図４に示すように、クライアントＣ１が仮アドレス「Ｘ」についてＤＡＤ処理のためのＮＡメッセージＭ４を送信し、そのＭ４受信後に他のクライアントＣ３が遅れて仮アドレス「Ｘ」と同じ有効アドレスを取得しようとＤＡＤ処理を行う場合がある。この場合、先のクライアントＣ１がＭ４を送信後、返信がないと判断する所定期間が経過する前に、後のクライアントＣ３のＮＳメッセージＭ５がクライアントＣ１に届くことがある。このときは、Ｍ５を受信した先のクライアントＣ１がＤＡＤ処理に失敗したと判断し、後のクライアントＣ３が後勝ちとなり、アドレス「Ｘ」を有効アドレスとしてクライアントＣ３自身に設定できる。【０００８】
図３および図４を参照して説明したように、ＤＡＤ処理を行うことで、重複する有効アドレスがネットワークに設定されることが防止される。【０００９】
とはいえ、ネットワーク上には性能の低いノードや様々な方法でプロトコル実装したノードが存在することを想定する必要があり、重複確認にはどのようなノードでも返事可能となるような十分な時間を要する。Ｅｔｈｅｒｎｅｔを用いる一般的な通信環境では1秒がその確認時間にあてられている。従って、ノードが新たにアドレスを利用する場合は、重複確認の1秒待ってからでないと、そのアドレスは使えない。ＤＡＤ処理に要する1秒という時間は、一般的な通信環境では無視ができないくらいの長時間である。【００１０】
また、図４に示すように、クライアントＣ１がＮＳメッセージＭ６を送信してからクライアントＣ３がＭ６を受信する前に、Ｃ３が遅れてＮＳメッセージＭ７を送信する場合がある。この場合、クライアントＣ１は、重複がないと判断する所定期間内にＭ７を受信してＤＡＤ処理が失敗し、クライアントＣ３も同様に所定期間内にＭ６を受信し、双方ＤＡＤ処理が失敗する。よってクライアントＣ１またはＣ３は再度ＤＡＤを行うことになり、さらに時間がかかる。【００１１】
このように、ＤＡＤ処理に時間がかかるため、通信装置は有効アドレスを設定するまでに時間を要する。【００１２】
アドレス設定までの時間を短縮するため、RFC4429:  Optimistic  Duplicate  Address  Detection  (DAD)  for  IPv6  ＜ＵＲＬ：http://www.ietf.org/rfc/rfc4429.txt＞に開示されているように、通信装置が楽観的な(Optimistic)ＤＡＤ処理を行う方法がある。楽観的なＤＡＤ処理は、ＩＰｖ６（Internet  Protocol  Version  6）においてはＩＰアドレス空間が広く、衝突の可能性が極めて低いことを利用した方法である。この方法は、DAD処理を無くしてしまう、あるいは形としてＤＡＤ処理は存在するものの、とりあえず衝突はないと仮にみなして処理を先に進めてしまう。そして、万一衝突したことが後から発見されれば、ノードが、発見された時点から先に行ったみなし処理の善後策を講じる方法である。【００１３】
或いは、特開２００７−１６６０６９号公報に開示されているように、自己のＩＰアドレスと仮アドレスとが重複する場合に、ＤＨＣＰサーバが、プールしたアドレス空間の範囲外のアドレスに自己のＩＰアドレスを変更することで、アドレス設定までの時間の短縮を図る方法もある。
【発明の開示】
【００１４】
しかしながら、非特許文献２の方法では、楽観的なアドレスは一意なアドレスと限らず、楽観的なアドレスと重複したアドレスが検出される場合がある。この場合、修正までに長時間がかかる。
【００１５】
また、特許文献１に開示された方法では、ＤＡＤ処理自体を省略することはできない。
【００１６】
このため、ネットワーク上の通信機器に一意なアドレスが設定されるまでの時間を依然として十分に短縮できていないという問題があった。
【００１７】
上記問題点に鑑み、本発明は、ネットワークにおいて一意なアドレスを通信装置に設定する時間を短縮する技術を提供することを目的とする。
【００１８】
上記目的を達成するために、本発明のアドレス決定装置は、ネットワークに接続された通信装置が通信において送信元に指定する有効アドレスを決定するアドレス決定装置であって、仮アドレスを選択し、前記ネットワーク上で問い合わせを行うことにより、前記ネットワークにおける該仮アドレスと重複する有効アドレスの有無を判断する重複有効アドレス判断手段と、前記重複有効アドレス判断手段により前記ネットワークにおいて前記仮アドレスと重複する有効アドレスがないと判断された場合に、該仮アドレスを未確定アドレスとして記憶しておく記憶手段と、前記通信装置が送信元のアドレスを指定する通信を開始する場合、前記記憶手段に記憶された前記未確定アドレスを該通信装置の送信元として指定される有効アドレスに決定するアドレス決定手段と、を有する。
【００１９】
本発明の通信システムは、ネットワークに接続された通信装置と、該通信装置が送信元に指定する有効アドレスを決定するアドレス決定装置と、を有し、前記アドレス決定装置は、仮アドレスを生成し、前記ネットワークにおける該仮アドレスと重複する有効アドレスの有無を判断し、該仮アドレスと重複する有効アドレスがないと判断された場合に、該仮アドレスを未確定アドレスとして記憶手段に記憶し、前記通信装置は、送信元のアドレスを指定する通信を開始する場合、前記アドレス決定装置へ有効アドレスを要求するメッセージを送信し、前記アドレス決定装置は、前記第２の通信装置から有効アドレスを要求するメッセージを受信した場合に、前記記憶手段から読み出した前記未確定アドレスを前記通信装置に設定する有効アドレスとして決定し、該有効アドレスを示すアドレス伝達メッセージを該通信装置に送信し、前記通信装置は、前記アドレス決定装置から前記アドレス伝達メッセージを受信し、該アドレス伝達メッセージの示す前記有効アドレスを該通信装置の送信元として指定される有効アドレスに設定する。
【００２０】
本発明のアドレス決定方法は、ネットワークに接続された通信装置が通信において送信元に指定する有効アドレスを決定するアドレス決定方法であって、仮アドレスを生成し、前記ネットワーク上で問い合わせを行うことにより、前記ネットワークにおける該仮アドレスと重複する有効アドレスの有無を判断し、前記ネットワークにおいて前記仮アドレスと重複する有効アドレスがないと判断し場合に、該仮アドレスを未確定アドレスとして記憶手段に記憶しておき、前記通信装置が送信元のアドレスを指定する通信を開始する場合、前記記憶手段に記憶された前記未確定アドレスを該通信装置の送信元として指定される有効アドレスに決定する。
【００２１】
本発明のプログラムは、ネットワークに接続された通信装置が通信において送信元に指定する有効アドレスを決定する処理をコンピュータに実行させるためのプログラムであって、仮アドレスを生成し、前記ネットワーク上で問い合わせを行うことにより、前記ネットワークにおける該仮アドレスと重複する有効アドレスの有無を判断する重複アドレス判別手順、前記重複アドレス判別手順により前記ネットワークにおいて前記仮アドレスと重複する有効アドレスがないと判断した場合に、該仮アドレスを未確定アドレスとして記憶手段に記憶する手順、及び前記通信装置が送信元のアドレスを指定する通信を開始する場合、前記記憶手段に記憶された前記未確定アドレスを該通信装置の送信元として指定される有効アドレスに決定するアドレス決定手順、をコンピュータに実行させる。
【００２２】
本発明によれば、ネットワークにおいて一意なアドレスを通信装置に設定する時間を短縮することができる。
【図面の簡単な説明】
【００２３】
【図１】一般的な通信システムにおけるＩＰアドレスのアドレス状態の遷移を時系列順に示した図である。
【図２】一般的な通信システムにおけるメッセージの流れの一例を時系列順に示したシーケンス図である。
【図３】一般的な通信システムにおけるメッセージの流れの一例を時系列順に示したシーケンス図である。
【図４】一般的な通信システムにおけるメッセージの流れの一例を時系列順に示したシーケンス図である。
【図５】一般的な通信システムにおけるメッセージの流れの一例を時系列順に示したシーケンス図である。
【図６】第１実施形態の通信システムの構成を示す全体図である。
【図７】第１実施形態の通信装置の構成を示すブロック図である。
【図８】第１実施形態の割り当てアドレスの構成を示す図である。
【図９】第１実施形態の通信装置の構成を示すブロック図である。
【図１０】第１実施形態の通信装置の動作を示すフローチャートである。
【図１１】第１実施形態の事前重複確認処理を示すフローチャートである。
【図１２】第１実施形態の返信処理を示すフローチャートである。
【図１３】第１実施形態のアドレス設定処理を示すフローチャートである。
【図１４】第１実施形態の通信装置の動作を示すフローチャートである。
【図１５】第１実施形態の返信処理を示すフローチャートである。
【図１６】第１実施形態のアドレス設定処理を示すフローチャートである。
【図１７】第１実施形態におけるＩＰアドレスのアドレス状態の遷移を時系列順に示した図である。
【図１８】第１実施形態におけるＩＰアドレスのアドレス状態の遷移を時系列順に示した図である。
【図１９】第１実施形態の通信システムにおけるメッセージの流れを時系列順に示したシーケンス図である。
【図２０】第１実施形態の通信システムにおけるメッセージの流れを時系列順に示したシーケンス図である。
【図２１】実施形態１の通信システムの構成を示す図である。
【図２２】変形例の通信システムの構成を示す図である。
【図２３】第２実施形態のアドレス設定処理を示すフローチャートである。
【図２４】第３実施形態のアドレス設定処理を示すフローチャートである。
【図２５】第３実施形態の返信処理を示すフローチャートである。
【図２６】第４実施形態の返信処理を示すフローチャートである。
【図２７】第４実施形態のアドレス設定処理を示すフローチャートである。
【図２８】第４実施形態のアドレス設定処理を示すフローチャートである。
【発明を実施するための最良の形態】
【００２４】
（第１実施形態）
本発明の第１実施形態について図面を参照して詳細に説明する。【００２５】
図６は、本実施形態の通信システム１の全体図である。通信システム１は、例えば、構内に構築されたイーサネットＬＡＮ（Local  Area  Network）を利用する。同図を参照すると、通信システム１は、ノード１１、１２、１３、および１４を有し、これらのノード１１〜１４はバス型でネットワークＮ１に接続されている。【００２６】
ネットワークＮ１の終端にはターミネーターＴ１、Ｔ２が設けられている。【００２７】
トポロジーは、バス型に限らず、リンク型、スター型など他の種類であってもよいのは勿論である。【００２８】
ノード１１は、他の通信装置とネットワークＮ１を通じて相互に通信する通信装置である。ノード１１は、予め未確定（Uncertain）アドレスを生成して記憶し、この未確定アドレスをノード自身に有効(Valid)アドレスとして設定する。また、他のノードからの要求に応じて、この未確定アドレスと同じアドレスを示すメッセージを送信する。例えば、ノード１１は通信機能を有するパソコンである。【００２９】
未確定アドレスとは、ネットワークにおいて通信装置が動的に生成した仮(Tentative)アドレスのうち、ネットワークにおいて一意なアドレスであると確認されたアドレスであって、通信装置に一意な有効アドレスとして設定される予定であるが、未だ設定されていない未確定の状態のアドレスをいう。【００３０】
これに対して、仮アドレスとは、ネットワーク上で一意なアドレスとして確認されておらず、且つ、通信装置に未だ設定されていないアドレスである。仮アドレスは、無効アドレスの中から有効アドレスの候補として選択（生成）される。そして、仮アドレスはＤＡＤ処理により、ネットワークにおける仮アドレスと重複する有効アドレスの有無が判断され、重複する有効アドレスがあると判断された場合、仮アドレスは破棄されて無効(Invalid)アドレスに戻る。ネットワークにおいて仮アドレスと重複する有効アドレスがないと判断された場合、一意性が確認されたので仮アドレスは通信装置に有効アドレスとして設定される。【００３１】
また、有効アドレスとは、通信装置の通信インターフェースに割り当てられた（設定された）、ネットワークにおいて一意なアドレスである。有効アドレスを通信装置に設定することにより、その通信装置は自身の送信元のアドレスを指定した通信を開始することができる。【００３２】
無効アドレスとは、ネットワークにおいて一意性が確認されておらず、通信機器に設定されていないアドレスである。【００３３】
本実施形態では、通信プロトコルとしてＩＰｖ６(Internet  Protocol  Version  6)を使用し、有効アドレス、無効アドレス、仮アドレス、および未確定アドレスは、ＩＰｖ６におけるＩＰアドレスである。【００３４】
ＩＰｖ６にＩＰｖ４(Internet  Protocol  Version  4)を組み込んでもよいし、ＩＰｖ４を使用してもよい。【００３５】
図７を参照してノード１１の構成について説明する。図７は、ノード１１の構成を示すブロック図である。同図を参照すると、ノード１１は、事前重複確認処理部１１１、記憶部１１３、およびアドレス設定部１１５を有する。【００３６】
事前重複確認処理部１１１は、仮アドレスを生成し、ＤＡＤ処理を実行することで、生成した仮ＩＰアドレスと重複する有効アドレスがネットワークＮ１上にあるか否かを判断する。そして、事前重複確認処理部１１１は、仮アドレスと重複する有効アドレスがないと確認されたのであれば、生成した仮アドレスを未確定アドレスとして記憶部１１３に格納する。【００３７】
ここで、事前重複確認処理部１１１は、ＩＰｖ６版のＤＡＤ以外の処理で重複する有効アドレスの有無の判断を行ってもよい。例えば、ＩＰｖ４を使用する場合、事前重複確認処理部１１１は、Gratuitous  ARPを送信することにより重複アドレスのないことを確認する。また、ＩＰｖ４版のＤＡＤも提案されており、Windows  Vistaなどの一部のＯＳ（Operation  System）での実装が知られている。このＩＰｖ４版ＤＡＤ処理を事前重複確認部１１１が行ってもよいのは勿論である。【００３８】
記憶部１１３は、割り当てアドレス１１３１および近隣キャッシュ１１３２を有する。記憶部１１３は、ＲＡＭ(Random  Access  Memory)等のメモリである。【００３９】
図８を参照して割り当てアドレス１１３１について説明する。同図は、割り当てアドレス１１３１の構成の一例を示した図である。割り当てアドレス１１３１には、ネットワークＮ１に割り当てられたアドレス範囲における各アドレス１１３１Ａと、これらのアドレスの状態１１３１Ｂとが対応付けて格納される。【００４０】
図８を参照すると、割り当てアドレス１１３１について、ＩＰアドレス１１３１Ａおよびアドレス状態１１３１Ｂの項目の内容が格納される。ＩＰアドレス１１３１Ａは、ネットワークＮ１に割り当てられているＩＰアドレスである。アドレス状態１１３１Ｂは、対応するＩＰアドレス１１３１Ａの状態を示す。各アドレスは、仮(Tentative)アドレス、未確定(Uncertain)アドレス、有効(Valid)アドレス、または無効(Invalid)アドレスという４つの状態をとりうる。アドレス状態１１３１Ｂは、ＩＰアドレス１１３１Ａごとに、「Tentative」、「Uncertain」、「Valid」、「Invalid」のいずれかとなりうる。例えば、ノード１１は割り当てられたＩＰアドレス１１３１Ａのアドレス状態１１３１Ｂは、最初は全て「Invalid」（無効アドレス）にし、ＤＡＤ処理を行う際には、いずれかのＩＰアドレス１１３１Ａのアドレス状態１１３１Ｂを「Tentative」（仮アドレス）とする。ＤＡＤ処理に成功した場合、ノード１１はそのアドレスのアドレス状態を「Uncertain」（未確定アドレス）に遷移させ、ＤＡＤ処理に失敗した場合は「Invalid」（無効アドレス）に戻す。「Uncertain」の未確定アドレスを有効アドレスとして設定した場合、ノード１１はそのアドレスのアドレス状態を「Valid」とする。【００４１】
図７に戻り、近隣キャッシュ１１３２は、ネットワークＮ１におけるノードの有効アドレスと、これらのノードのリンク層アドレスとを対応付けたテーブルである。リンク層アドレスは、例えば、ＭＡＣ(Media  Access  Control)アドレスである。【００４２】
アドレス設定部１１５は、ネットワークＮ１を通じて送信元のアドレスを指定した通信を開始する際に、記憶部１１３に格納された未確定アドレスを、ノード自身（１１）の送信元として指定される有効アドレスに決定（設定）する。有効アドレスを設定後、アドレス設定部１１５は、通信を開始したいノードへ、そのノードのリンク層（ＭＡＣ）アドレスを要求するメッセージを送信する。相手先からのＭＡＣアドレスを示すメッセージを受信したとき、アドレス設定部１１５は、そのＭＡＣアドレスに基づいて近隣キャッシュ１１３２を更新して、通信を開始する。【００４３】
また、アドレス設定部１１５は、他のノードからＩＰアドレスを取得したい旨の要求があった場合に、記憶部１１３に格納されている未確定アドレスを選択し、その未確定アドレスをそのノードの有効アドレスに決定する。そして、アドレス設定部１１５は、そのノードに、決定した有効アドレス（未確定アドレス）を示すメッセージを送信する。メッセージ送信後は、アドレス設定部１１５は、メッセージにかかる未確定アドレスを無効アドレスにする。【００４４】
メッセージを受信したノードは、メッセージにかかる未確定アドレスをノード自身に有効アドレスとして設定する。この処理の詳細については後述する。【００４５】
また、アドレス設定部１１５は、他のノードより、アドレスについての問い合わせであるＮＳ(Neighbor  Solicitation)メッセージを受信する。ＮＳメッセージには、仮アドレスと重複する有効アドレスの有無を問い合わせる（ＤＡＤ処理のための）ものと、相手先と互いに宛先を指定した通信を開始するためにＭＡＣアドレスの送信を要求するもの、即ちＬ２(Layer-2)アドレス解決のためのものとがある。【００４６】
受信したＮＳメッセージがＤＡＤ処理のためのものであり、且つ、仮アドレスと未確定アドレスのいずれかが重複する場合、アドレス設定部１１５は、重複するアドレスがある旨を示すＮＡ（Neighbor  Advertisement）メッセージを送信する。【００４７】
一方、Ｌ２アドレス解決のためのものであり、ノード自身（１１）に有効アドレスが設定されている場合は、アドレス設定部１１５はノード自身のＭＡＣアドレスを示すＮＡメッセージを送信する。【００４８】
このように、事前重複確認処理部１１１が、有効アドレスをノード自身（１１）に設定する前にＤＡＤ処理を行い、ネットワークＮ１において一意と確認された仮アドレスを未確定アドレスとして記憶部１１３に格納する。そして、有効アドレスがノード自身（１１）に必要になった際に、ノード１１は、記憶部１１３に格納された未確定アドレスを読み出し、ＤＡＤ処理を行うことなく自己に有効アドレスとして設定する。【００４９】
従来の通信装置では、有効アドレスの設定が必要になった後にＤＡＤ処理を行うのに対し、本実施形態のノード１１は、有効アドレスの設定が必要になる前に、上述のように事前にＤＡＤ処理を済ませている。このため、通信を開始する際に、ノード１１はＤＡＤ処理を行う必要がない。このため、ノード１１は、有効アドレスを通信装置に設定する時間を短縮することができる。【００５０】
また、従来の通信装置は、通信対象ノードからのＮＡメッセージの示すＭＡＣアドレスに基づいて近隣キャッシュ１１３２を更新する。よって、動的に仮アドレスを生成した装置と、その仮アドレスを有効アドレス（ＩＰアドレス）として使用する装置とが異なると、近隣キャッシュ１１３２の情報（ＩＰアドレスとＭＡＣアドレスとの対応関係）が整合せず、通信が混乱する。このため、動的に仮アドレスを生成した装置と、その仮アドレスを使用する装置とは同一でなければならない。【００５１】
これに対し、本実施形態のノード１１は、未確定アドレスが記憶されていても有効アドレスが設定されていない限り、ＭＡＣアドレスを示すＮＡメッセージを返信しない。このため、近隣キャッシュ１１３２が更新されることがなく、生成した未確定アドレスを他のノードに渡すことができる。従って、他の通信装置の有効アドレスの設定時間を短縮することもでき、ノード１１を有する通信システム１全体としての有効アドレスの設定時間が短縮される。【００５２】
図９を参照して、ノード１２〜１４の構成について説明する。ノード１２〜１４は、他の通信装置とネットワークＮ１を通じて相互に通信する通信装置である。同図は、ノード１２の構成を示すブロック図である。同図を参照すると、ノード１２は、記憶部１２１およびアドレス設定部１２３を有する。【００５３】
記憶部１２１は、割り当てアドレス１２１１および近隣キャッシュ１２１２を有する。これらの構成は、ノード１１の割り当てアドレス１１３１および近隣キャッシュ１１３２と同様である。但し、図８で示した割り当てアドレス１１３１と異なり、アドレス状態１１３１Ｂが「Uncertain」の状態をとることはない。【００５４】
アドレス設定部１２３は、ノード１１から未確定アドレスを示すメッセージを受信し、メッセージにかかる未確定アドレスをノード自身の有効アドレスとして設定する。例えば、アドレス設定部１２３は、ＩＰアドレスを取得したい旨を示すメッセージをブロードキャストで送信する。そして、ノード１１から未確定アドレスを示すメッセージを受信した場合に、アドレス設定部１２３は、ＤＡＤ処理を行なわずに受信したアドレスをノード自身の有効アドレスとして設定する。ノード１１から未確定アドレスを示すメッセージを受信できなかった場合、アドレス設定部１２３は、ＤＡＤ処理を行い、有効アドレスを生成して自身に設定する。【００５５】
また、アドレス設定部１２３は、他のノードからＮＳメッセージを受信し、メッセージの示す仮アドレスがノード自身の有効アドレスと一致するのであれば、重複アドレスが存在する旨を示すＮＡメッセージを返信する。【００５６】
ノード１３および１４の構成は、ノード１２と同様である。【００５７】
このように、ノード１１から受信したＩＰアドレスは、ノード１１により一意であると確認された未確定アドレスである。このため、未確定アドレスを示すメッセージを受信すれば、本実施形態のノード１２〜１４はＤＡＤ処理を行う必要がない。従って、ノード１２〜１４は有効アドレスを通信装置に設定する時間を短縮することができる。【００５８】
本実施形態によれば、ノード１１は、仮アドレスを生成して仮アドレスと重複する有効アドレスがネットワークＮ１にあるか否かを判断して、重複アドレスがない場合に仮アドレスを未確定アドレスとして格納する。【００５９】
そして、ノード１１は、格納した未確定アドレスをノード自身の有効アドレスとして設定する。また、ノード１２〜１４は、ＩＰアドレスを取得したい旨のメッセージを送信し、ノード１１は、未確定アドレスを示すメッセージをノード１４に送信する。ノード１２〜１４は、受信したメッセージにかかる未確定アドレスをノード自身の有効アドレスとして設定する。【００６０】
このため、有効アドレスをノード１１〜１４に設定する際にＤＡＤ処理を行う必要がなく、有効アドレスがノード１１〜１４に設定されるまでの時間が短縮される。【００６１】
次に、図１０〜図１６を参照して、本実施形態の通信システム１の動作について説明する。【００６２】
図１０は、本実施形態のノード１１の実行する通信処理を示すフローチャートである。この通信処理は、ノード１１が起動した場合または所定のアプリケーションが起動した場合に実行される。【００６３】
図１０を参照すると、まず、事前重複確認処理部１１１は、事前重複確認処理を実行する（ステップＳ１０）。アドレス設定部１１５は、返信処理を実行し（Ｓ２０）、アドレス設定処理を実行する（ステップＳ３０）。ステップＳ３０の後、ノード１１は、通信処理を終了する。【００６４】
事前重複確認処理について、図１１を参照して説明する。事前重複確認処理は、事前重複確認処理部１１１が、有効アドレスを設定する前に、ネットワークＮ１における仮アドレスと重複するアドレスの有無の確認を行う処理である。【００６５】
図１１を参照すると、事前重複確認処理部１１１は、記憶部１１３に格納済の未確定アドレスの数が所定の数に達したか否かを確認する（ステップＳ１０１）。格納する未確定アドレスの数は任意である。例えば、本実施形態では、ノード自身（１１）に有効アドレスとして設定するためのアドレス、および他のノード１２〜１４に送信するためのアドレスとして少なくとも４つの未確定アドレスをプールする。【００６６】
未確定アドレスが所定数に達していない場合（ステップＳ１０１：ＮＯ）、事前重複確認処理部１１１は、仮アドレスを生成し、生成した仮アドレスと重複する有効アドレスがネットワークＮ１上にあるか否かを確認する（ステップＳ１０３）。例えば、事前重複確認処理部１１１は、無効アドレスのいずれかを仮アドレスとし、この仮アドレスと重複する有効アドレスがネットワークＮ１上にあるか否かを問い合わせるＮＳメッセージを各ノード（１２〜１６）に送信する。【００６７】
そして、重複するアドレスがある旨を示すＮＡメッセージを所定期間内に受信しない場合、事前重複確認処理部１１１は、仮アドレスのアドレス状態を「Tentative」から「Uncertain」に遷移させ、仮アドレスを未確定アドレスとして記憶部１１３に格納する（ステップＳ１０５）。【００６８】
ＮＡメッセージを受信した場合、またはノード自身の生成した仮アドレスと同一の仮アドレスについて問い合わせるＮＳメッセージを受信した場合、事前重複確認処理部１１１は、仮アドレスのアドレス状態を「Tentative」から「Invalid」に遷移させて仮アドレスを破棄する。【００６９】
ステップ１０５の後、または未確定アドレスが所定数に達した場合（ステップＳ１０１：ＹＥＳ）、事前重複確認処理部１１１は、通信処理を終了する。【００７０】
このように、事前重複確認処理部１１１は事前にＤＡＤ処理を実行し、一意性が確認された仮アドレスを未確定アドレスとして記憶部１１３に格納する。【００７１】
図１２を参照して、返信処理について説明する。返信処理は、アドレス設定部１１５が、アドレスについて問い合わせるＮＳメッセージに対して所定条件下でＮＡメッセージを返信する処理である。【００７２】
図１２を参照すると、アドレス設定部１１５は、ＮＳメッセージを受信したか否かを判断する（ステップＳ２０１）。ＮＳメッセージを受信した場合（ステップＳ２０１：ＹＥＳ）、アドレス設定部１１５は、受信したＮＳメッセージがＤＡＤのためのメッセージであるか否かを判断する（ステップＳ２０３）。例えば、アドレス設定部１１５は、ＮＳメッセージの送信元のアドレスが未指定アドレス（「Unspecified  Address(::)」）である場合に、ＤＡＤのためのメッセージであると判断する。【００７３】
ＮＳメッセージがＤＡＤのためのメッセージである場合（ステップＳ２０３：ＹＥＳ）、アドレス設定部１１５は、自身に有効アドレスが既に設定されていれば、ＮＳメッセージにかかる仮アドレスとノード１１自身に設定された有効アドレスとが一致するか否かを判断する（ステップＳ２０５）。仮アドレスとノード１１自身に設定された有効アドレスとが一致しない場合、または有効アドレスがノード１１に設定されていない場合（ステップＳ２０５：ＮＯ）、アドレス設定部１１５は、記憶部１１３から未確定アドレスを読み出し、ＮＳメッセージにかかる仮アドレスと重複する未確定アドレスがあるか否かを判断する（ステップＳ２０７）。仮アドレスと重複する未確定アドレスがある場合（ステップＳ２０７：ＹＥＳ）、または仮アドレスとノード自身の有効アドレスとが一致する場合（ステップＳ２０５：ＹＥＳ）、アドレス設定部１１５は、仮アドレスと重複する有効アドレスがある旨を示すＮＡメッセージをブロードキャストで送信する（ステップＳ２０９）。【００７４】
ＮＳメッセージがＤＡＤのためのメッセージでない場合（ステップＳ２０３：ＮＯ）、受信したＮＳメッセージは、ノード１１と通信するためにＭＡＣアドレスの送信を要求する、Ｌ２アドレス解決のためのメッセージであると考えられる。アドレス設定部１１５は、この場合、アドレス設定部１１５は、ノード自身（１１）に有効アドレスが設定されており、且つ、メッセージの宛先がノード自身であるか否かを判断する（ステップＳ２５１）。ノード自身（１１）に有効アドレスが設定されており、且つ、メッセージの宛先がノード自身である場合（ステップＳ２５１：ＹＥＳ）、ノード１１のＭＡＣアドレスを示すＮＡメッセージをＮＳメッセージの送信元へ送信する（ステップＳ２５３）。ＮＡメッセージを受信したノードは、受信したメッセージの示すＭＡＣアドレスに基づいて近隣キャッシュ１２１２を更新することでＬ２アドレス解決を行う。【００７５】
ノード自身（１１）に有効アドレスが設定されていない、または、メッセージの宛先がノード自身でない場合（ステップＳ２５１：ＮＯ）、或いはＮＳメッセージを受信しない場合（ステップＳ２０１：ＮＯ）、或いは仮アドレスと重複する予約アドレスがない場合（ステップＳ２０７：ＮＯ）、或いはステップＳ２０９またはステップＳ２５３の後、アドレス設定部１１５は、返信処理を終了する。【００７６】
このように、アドレス設定部１１５は、ＤＡＤ処理のためのＮＳメッセージを受信した場合、仮アドレスが未確定アドレスまたは自己の有効アドレスと重複するときに、重複するアドレスがある旨のＮＡメッセージを返信する。このため、未確定アドレスと重複する有効アドレスが他のノードに設定されることはなく、本実施形態のノードが他のノードの通信に影響を与えることは全くない。【００７７】
また、アドレス設定部１１５は、Ｌ２アドレス解決のためのＮＳメッセージを受信し、且つ、ノード自身に有効アドレスが設定されている場合にＭＡＣアドレスを示すＮＡメッセージを返信する。このため、有効アドレスが設定されていない宛先と通信が開始されることがなく、本実施形態のノード間の通信において問題は全く生じない。【００７８】
図１３を参照してアドレス設定処理について説明する。アドレス設定処理は、アドレス設定部１１５が未確定アドレスを有効アドレスとしてノード自身に設定し、また、他のノードへ未確定アドレスを示すメッセージを送信する処理である。【００７９】
図１３を参照すると、まず、アドレス設定部１１５は、ノード自身に有効アドレスを設定する必要があるか否かを判断する（ステップＳ３０１）。例えば、ノード１１がネットワークＮ１に接続された他のノード１２〜１４と送信元のアドレスを指定して通信を開始する際に、有効アドレスが必要となる。【００８０】
有効アドレスを設定する必要がある場合（Ｓ３０１：ＹＥＳ）、アドレス設定部１１５は、記憶部１１３から読み出した未確定アドレスのアドレス状態を、「Uncertain」から「Valid」へ遷移させ、未確定アドレスをノード自身の有効アドレスとして設定する（ステップＳ３０３）。【００８１】
有効アドレスを設定する必要がない場合（Ｓ３０１：ＮＯ）、またはステップＳ３０３の後、アドレス設定部１１５は、ＩＰアドレスの取得を要求する旨のメッセージを他のノードから受信したか否かを判断する（ステップＳ３０５）。【００８２】
ＩＰアドレスを取得したい旨のメッセージを受信した場合（ステップＳ３０５：ＹＥＳ）、アドレス設定部１１５は、未確定アドレスが記憶部１１３に格納されているか否かを判断する（ステップＳ３０７）。【００８３】
未確定アドレスが記憶部１１３に格納されている場合（ステップＳ３０７：ＹＥＳ）定アドレス設定部１１５は、未確定アドレスを示すメッセージを送信し、送信した未確定アドレスのアドレス状態を「Uncertain」から「Invalid」へ遷移させる（ステップＳ３０９）。【００８４】
未確定アドレスが記憶部１１３に格納されていない場合（ステップＳ３０７：ＮＯ）、またはＩＰアドレスを取得したい旨のメッセージを受信しない場合（ステップＳ３０５：ＮＯ）、或いはステップＳ３０９の後、アドレス設定部１１５は、アドレス設定処理を終了する。【００８５】
このように、アドレス設定部１１５は、未確定アドレスがある場合は、ＤＡＤ処理を行うことなく未確定アドレスをノード自身に設定し、要求に応じて他のノードに未確定アドレスを示すメッセージを送信する。【００８６】
次に、図１４〜１６を参照してノード１２〜１４の動作について説明する。図１４は、ノード１２が実行する通信処理を示すフローチャートである。この通信処理は、ノード１２が起動した場合または所定のアプリケーションが起動した場合に開始される。【００８７】
図１４を参照すると、アドレス設定部１２３は、返信処理を実行し（ステップＳ２０ａ）、アドレス設定処理を実行する（ステップＴ３０）。ステップＴ３０の後、アドレス設定部１２３は、通信処理を終了する。【００８８】
図１５を参照して、アドレス設定部１２３の実行する返信処理について説明する。同図は、アドレス設定部１２３の実行する返信処理を示すフローチャートである。同図におけるステップＳ２０１ａ〜ステップＳ２０５ａ、ステップＳ２０９ａ、およびステップＳ２５１ａ〜Ｓ２５３ａは、図１２におけるステップＳ２０１〜Ｓ２０５、ステップＳ２０９、およびステップＳ２５１〜Ｓ２５３と同様である。【００８９】
そして、図１５に示す返信処理は、ＮＳメッセージの仮アドレスとノード自身の有効アドレスが一致しない場合（ステップＳ２０５ａ：ＮＯ）、図１２で示したステップＳ２０７を行わず、返信処理を終了する以外は、ノード１１の実行する返信処理と同様である。【００９０】
このように、ノード１２は未確定アドレスを記憶しないので、図１５に示す返信処理において、ＮＳメッセージの仮アドレスと重複する未確定アドレスの有無の判断（ステップＳ２０７）を行うことはない。【００９１】
図１６を参照して、アドレス設定部１２３が実行するアドレス設定処理について説明する。このアドレス設定処理は、ノード１２が、未確定アドレスを示すメッセージを受信し、メッセージにかかる未確定アドレスを有効アドレスとして設定するための処理である。【００９２】
図１６は、アドレス設定処理を示すフローチャートである。同図を参照すると、アドレス設定部１２３は、ＩＰアドレスを取得したい旨のメッセージをブロードキャストで送信する（ステップＴ３０１）。【００９３】
図１３に示したように、ＩＰアドレスを取得したい旨のメッセージをノード１１が受信し（ステップＳ３０５：ＹＥＳ）、未確定アドレスがあれば（ステップＳ３０７：ＹＥＳ）、ノード１１は、未確定アドレスを示すメッセージをブロードキャストで送信する（ステップＳ３０９）。【００９４】
図１６に戻り、ステップＴ３０１の後、未確定アドレス受信部１２３は、未確定アドレスを示すメッセージを受信したか否かを判断する（ステップＴ３０３）。未確定アドレスを示すメッセージを受信した場合（ステップＴ３０３：ＹＥＳ）、未確定アドレス受信部１２３は、メッセージの示す未確定アドレスをノード自身の有効アドレスとして設定する（ステップＴ３０５）。【００９５】
未確定アドレスを示すメッセージを所定期間内に受信しない場合（ステップＴ３０３：ＮＯ）、未確定アドレス受信部１２３は、仮アドレスを生成し、仮アドレスと重複する有効アドレスの有無を確認するＮＳメッセージを送信する（ステップＴ３０７）。ＮＡメッセージを所定期間内に受信しない場合は、未確定アドレス受信部１２３は、仮アドレスを有効アドレスとして設定する（ステップＴ３０９）。【００９６】
ステップＴ３０５またはステップＴ３０９の後、アドレス設定部１２３はアドレス設定処理を終了する。【００９７】
ノード１３および１４の動作は、ノード１２と同様である。【００９８】
このように、ノード１２〜１４は、ノード１１から未確定アドレスを受信できれば、ＤＡＤ処理を行うことなく、有効アドレスを設定できる。【００９９】
通信システム１の動作結果の一例について図１７〜図２０を参照して説明する。【０１００】
図１７は、ノード１１に格納されるアドレスのアドレス状態の遷移を時系列順に示したものであり、図１８は、ノード１１〜１４に格納されるアドレスのアドレス状態の遷移を時系列順に示したものである。【０１０１】
図１７を参照して、未確定アドレスを生成したノード１１が自身に、生成した未確定を有効アドレスとして設定する場合について説明する。【０１０２】
図１７の白抜き矢印の左側の図は、従来のノードにおけるＩＰアドレスのアドレス状態の遷移を時系列順に示した図であり、矢印の右側の図は、本実施形態のノード１１におけるＩＰアドレスのアドレス状態の遷移を時系列順に示した図である。同図を参照すると、従来のノード（矢印の左側）は、ＤＡＤ処理中は、「Tentative」のアドレス状態であり、ＤＡＤ処理に成功すれば、「Valid」に遷移する。【０１０３】
これに対して、本実施形態のノード１１（矢印の右側）では、ＤＡＤ処理が成功すれば、「Valid」に遷移するのでなく、アドレス状態は「Tentative」から「Uncertain」に遷移する（ステップＳ１０５）。【０１０４】
そして、ノード１１自身に有効アドレスが必要であれば（Ｓ３０１：ＹＥＳ）、ノード１１は、未確定アドレスの１つを自身の有効アドレスとして設定する。この場合、未確定アドレスのアドレス状態が「Uncertain」から「Valid」に遷移する。【０１０５】
つまり、ノード１１は、ＤＡＤ処理を「Valid」状態になるよりも前にすませることができ、アドレスを実際に利用する「Valid」状態に遷移する際にはＤＡＤ処理を行わずしてアドレス状態を即時遷移できるようになる。このため、アドレス設定までの時間が短縮される。【０１０６】
次に、図１８を参照して、ノード１１から他のノードへ未確定アドレスを有効アドレスとして渡す場合について説明する。【０１０７】
図１８を参照すると、最初はノード１２には有効アドレスが設定されていない。ノード１２は、ＩＰアドレスを取得したい旨のメッセージを送信する（ステップＴ３０１）。そして、ノード１１は、「Uncertain」状態の未確定アドレスを記憶していたのであれば（ステップステップＳ３０７：ＹＥＳ）、未確定アドレス（有効アドレス）を示すメッセージを送信する（ステップＳ３０９）。【０１０８】
ノード１２は受信したメッセージの示す未確定アドレス（有効アドレス）をノード自身の有効アドレスとして設定する（ステップＴ３０５）。この場合、図１８に示すように、受信したアドレスのアドレス状態が「Valid」となる。同図における斜線を施した矢印は、有効アドレスの送信を取得したい旨のメッセージの送信および未確定アドレス（有効アドレス）を示すメッセージの送信を意味する。【０１０９】
このように、アドレスのアドレス状態は、ＤＡＤ処理を開始した場合、「Invalid」から「Tentative」に遷移し、ＤＡＤ処理に成功すれば、「Uncertain」に遷移し、有効アドレスとして設定されたとき、「Valid」に遷移する。【０１１０】
図１９および図２０は、通信システム１におけるノード間のメッセージの流れを時系列順に示すシーケンス図である。【０１１１】
図１９において、ノード１１はＩＰアドレス「Ｘ１」を未確定アドレスとして予約している。ノード１３はＩＰアドレス「Ｘ１」を遅れて有効アドレスとして設定しようと試みる。ノード１４は、ＩＰアドレス「Ｘ１」を持つノードと通信を試みる。ノード１２は、ＩＰアドレス「Ｘ１」を設定しようとせず、ＩＰアドレス「Ｘ１」を持つノードと通信を行わない。【０１１２】
図１９および図２０において、ノード間における通常の矢印は、ＤＡＤ処理のためのＮＳメッセージの送信を意味し、白抜きの矢印は、Ｌ２アドレス解決のためのＮＳメッセージの送信を意味する。斜線を施した矢印は、有効アドレスの送信を取得したい旨のメッセージの送信および未確定アドレス（有効アドレス）を示すメッセージの送信を意味する。図１９および図２０における「ＮＳ（ｓｒｃ＝：：）」は、ＤＡＤのためのＮＳメッセージであることを意味し、「ＮＳ（ｓｒｃ≠：：）」は、Ｌ２アドレス解決のためのＮＳメッセージであることを意味する。【０１１３】
図１９を参照すると、ノード１１は、当初はＩＰアドレス「Ｘ１」を未確定アドレスとして格納していない。ノード１１は、ＩＰアドレス「Ｘ１」を予約しようと、このアドレスを仮アドレスとして重複する有効アドレスの有無を問い合わせるＮＳメッセージＭ１１をブロードキャストで送信する（ステップＳ１０３）。この時点で、他のノードにＩＰアドレス「Ｘ１」は設定されていないため、重複するアドレスがある旨のＮＡメッセージはいずれのノードからも送信されない（ステップＳ２０５ａ：ＮＯ）。同図において点線は、ＮＳメッセージに対するＮＡメッセージが各ノードから送信されないことを意味する。【０１１４】
ＤＡＤ処理に成功したので、ノード１１は、仮アドレス「Ｘ１」を未確定アドレスとして記憶する（ステップＳ１０５）。この後、ＩＰアドレス「Ｘ１」をノード１３が遅れて取得しようと、ＩＰアドレス「Ｘ１」を仮アドレスとするＮＳメッセージＭ１２を送信したときを考える（ステップＴ３０１）。このときは、ノード１１が記憶する未確定アドレスと仮アドレスとが一致するため（ステップＳ２０７：ＹＥＳ）、ノード１１は、重複する旨のＮＡメッセージＭ１３を返信する（ステップＳ２０９）。ノード１３は、ＮＡメッセージＭ１３を受信し、仮アドレスを破棄する。【０１１５】
このように、アドレス状態が「Uncertain」である場合は、この未確定アドレスと重複する有効アドレスが設定されることはない。【０１１６】
次に、ノード１１にＩＰアドレス「Ｘ１」が設定されていない場合に、ノード１４がＮＳメッセージＭ１４を送信してＩＰアドレス「Ｘ１」が設定されたノードとの通信を試みるときを考える。このとき、ノード１１は、ノード自身に有効アドレスが設定されていないため（ステップＳ２５１：ＮＯ）、ＮＡメッセージは返信されない。同図において点線は、ＮＳメッセージに対するＮＡメッセージが各ノードから送信されないことを意味する。【０１１７】
ノード１１が、通信を開始するために未確定アドレス「Ｘ１」を有効アドレスとしてノード自身に設定した場合（ステップＳ３０３）、再度ノード１４がＩＰアドレス「Ｘ１」を示すＮＳメッセージＭ１５を送信したときを考える。このとき、メッセージＭ１５の示すアドレスとノード自身の有効アドレスとが一致するため（ステップＳ２５１：ＹＥＳ）、ノード１１は、ノード自身のＭＡＣアドレスを示すＮＡメッセージＭ１６をノード１４へ返信する（ステップＳ２５３）。【０１１８】
このように、未確定アドレスが有効アドレスとして設定されていない場合、未確定アドレスと同じアドレスを示す、Ｌ２アドレス解決のためのＮＳメッセージをノード１１が受信しても、ノード１１は、ＮＡメッセージを返信することはない。このため、ＮＡメッセージに基づき近隣キャッシュが更新されることがなく、通信が混乱することは全くない。【０１１９】
図２０を参照して、ノード１１からノード１２へ未確定アドレスを示すＮＡメッセージが送信された場合について考える。【０１２０】
図２０において、ノード１１はＩＰアドレス「Ｘ１」を未確定アドレスとして予約している。ノード１２は、ＩＰアドレス「Ｘ１」を取得し、設定しようとしている。
ノード１４は、ＩＰアドレス「Ｘ１」を持つノードと通信を試みる。ノード１３は、ＩＰアドレス「Ｘ１」を設定しようとせず、ＩＰアドレス「Ｘ１」を持つノードと通信を行わない。【０１２１】
ノード１１が、ＩＰアドレス「Ｘ１」を未確定アドレスとして予約している間に、ノード１４がＩＰアドレス「Ｘ１」のノードとの通信を試みるＮＳメッセージＭ１７を送信しても、ＩＰアドレス「Ｘ１」はノード１１に設定されていないので（ステップＳ２５１：ＮＯ）、ＮＡメッセージは返信されない。同図において点線は、ＮＳメッセージに対するＮＡメッセージが各ノードから送信されないことを意味する。【０１２２】
しかし、ノード１２がＩＰアドレスの取得を要求するメッセージＭ１８を送信した場合（ステップＴ３０１）、これに対してノード１１はＩＰアドレス「Ｘ１」を示すメッセージＭ１９を送信する（ステップＳ３０９）。ノード１２は、Ｍ１９の示すＩＰアドレス「Ｘ１」をノード自身に設定する（ステップＴ３０５）。【０１２３】
Ｍ１８は、例えば、ＤＨＣＰのプロトコルにおけるＤＨＣＰＤＩＳＣＯＶＥＲのメッセージであり、Ｍ１９はＤＨＣＰＯＦＦＥＲのメッセージである。【０１２４】
この後、再度ノード１４が、ＩＰアドレス「Ｘ１」のノードとの通信を試みるＮＳメッセージＭ２０を送信した場合、ノード１２には、ＩＰアドレス「Ｘ１」が設定されているから（ステップＳ２５１ａ：ＹＥＳ）、ノード１２３は、ノード自身のＭＡＣアドレスを示すＮＡメッセージＭ２１を返信する（ステップＳ２５３ａ）。【０１２５】
このように、未確定アドレスを示すメッセージを受信したノードは、この未確定アドレスを有効アドレスとして設定し、他のノードと送信元のアドレスを指定した通信を開始することができる。【０１２６】
図２１を参照して、本実施形態の通信システム１におけるアドレス管理方式について整理する。同図に示すように、ノード１１にプールされる未確定アドレス（アドレスプール）はＮＤ（Neighbor  Discovery）のメッセージへの返答のための情報として用いられるため、近隣キャッシュなどと同様ノードのカーネル空間に用意するのが一般的である。アドレスに対する処理を以下のように命名し整理する。【０１２７】
Ｐｕｓｈ：アドレスをプールに蓄積すること
Ｐｏｐ：プールからアドレスを取出すこと
Ｓｅｔ：アドレスをプロセス（ソケット）に設定すること。【０１２８】
最終的には対応するＰＣＢ（Process  Control  Block）にアドレス情報が設定される。ＤＡＳ(Delayed  Address  Setting)処理とはプロセス起動後にこの処理を行うことである。アドレスプールにアドレスを蓄積する最も基本的な方法は手動によるＰｕｓｈ処理である。アドレスプールに蓄積されたアドレスはサービスの利用などに伴うＰｏｐ処理で当然然消費され減っていくので、新しいアドレスを供給し続ける必要があり、ユーザがその処理を手動で行い続けるのは限界がある。そこで、プールに蓄積したアドレスの量を確認しながら、新しいアドレスの補充作業を行うAddress  Manager  Daemonが使用されるのは、自然なことである。【０１２９】
Ｄａｓ処理を行うと内部でＳｅｔ処理が実行される。その処理はAddress  Manager  Daemonを通したＰｏｐ処理経由で行うと考えるのが基本ではある。しかし、実体は、カーネルに閉じた処理として、カーネル内のアドレスプールからユーザランドのプロセスに対応するカーネル内のＰＣＢに直接設定されることになる。【０１３０】
図１７に示したように、アドレスは一つのノード（１１）で閉じた遷移をする（自己完結型）。一方、Uncertain状態のアドレスはどのノードにも帰属していないので、図１８に示すように、プールに蓄積されたアドレスを他ノードが引継ぎ、引継いだノード側で、その続きのアドレス遷移をさせる（外部プール利用型）ことが可能である。このように、専用のプールサーバ（１１）が実現される。【０１３１】
なお、本実施形態では未確定アドレスを記憶するノード（１１）が１つであるが、２つ以上のノードが未確定アドレスを記憶する通信システムであってもよい。未確定アドレスをプールするノードが複数ある場合、引き継いだアドレスのアドレス状態を変化させず、「Uncertain」のまま留めておくことも可能である。従って、図２２に示すような多段のプールサーバを実現することも可能になる。ノード１１のような自己プールを持つクライアントは多段プールサーバになることが可能である。しかし、ノード１２〜１４のような自己プールを持たないクライアントの場合はなれず、アドレスを引き継いだ場合は自分に設定し、利用することになる（ステップＴ３０５）。【０１３２】
また、本実施形態の通信装置は、Ｍｏｂｉｌｅ  ＩＰのハンドオーバー処理を行う装置にも適用することができる。Ｍｏｂｉｌｅ  ＩＰのハンドオーバー処理では、移動したネットワーク先でＣｏＡ(Care  of  Address)と呼ばれるアドレスを動的に取得する必要があるが、本実施形態の通信装置の導入により、通信装置は、移動先でのＣｏＡ取得時のＤＡＤ処理を省略することができ、高速にハンドオーバーできる。【０１３３】
或いは、クライアントがセッションを張るたびにそのセッションに使う自分のアドレスを動的に生成して使用する通信システムや、サーバがクライアントからの接続要求に従いセッションを開始する際にそのセッションに動的に生成したアドレスを使用する通信システムがある。これらの通信システムにおいてもＤＡＤ処理を要するが、本実施形態の通信装置を適用することで、通信装置は、高速にアドレスを設定し、セッションを開始することができる。【０１３４】
（第２実施形態）
本発明の第２実施形態について説明する。本発明の通信装置は、従来の通信装置と混在させて使用することもできる。本実施形態にかかる通信システムは、本発明の通信装置と、従来の通信装置とを混在させたものである。【０１３５】
本実施形態の通信システムの構成は、ノード１２〜１４が従来の通信装置である以外は、第１実施形態と同様である。【０１３６】
一般的なノード１２〜１４の動作は、第１実施形態にかかるノード１２〜１４と、アドレス設定処理以外は同様である。【０１３７】
一般的なノード１２〜１４のアドレス設定処理について図２３を参照して説明する。【０１３８】
図２３は、本実施形態にかかるノード１２〜１４の実行するアドレス設定処理を示すフローチャートである。同図を参照すると、有効アドレス設定部１２３は、ＤＡＤ処理を行い（ステップＵ３０１）、成功した場合仮アドレスを有効アドレスとして設定する（ステップＵ３０３）。【０１３９】
このように、一般的なノード１２〜１４は、有効アドレスが必要になった後にＤＡＤ処理を行い、ＤＡＤ処理に成功した後に仮アドレスを有効アドレスとして設定する。【０１４０】
これら一般的なノード１２〜１４を、本実施形態のノード１１と同一ネットワーク内で同時に使用しても問題が生じることはない。ノード１２〜１４が、未確定アドレスと重複する仮アドレスについて問い合わせた場合（ステップＵ３０１）、ノード１１は、ＮＡメッセージを送信する（ステップＳ２０９）。このため、ノード１２〜１４は仮アドレスと重複する有効アドレスがあると判断し、生成した仮アドレスを破棄する。従って、未確定アドレスと重複する有効アドレスがノード１２〜１４に設定されることはなく、本実施形態のノード１１と、一般的なノード１２〜１４とは同一ネットワークにおいて全く問題なく使用できる。【０１４１】
本実施形態によれば、本実施形態のノード（１１）は、一般的なノード（１２〜１４）と混在させることができるため、既存のシステムの構成（１２〜１４）を維持しつつ、所望のノード（１１）についてアドレス設定時間を短縮することができる。【０１４２】
（第３実施形態）
本発明の第３実施形態について説明する。【０１４３】
第１実施形態において、本実施形態のノード１２〜１４のいずれかが未確定アドレスを受信した場合、受信から有効アドレスの設定まで時間は十分に短いので、この期間に、他のノードに未確定アドレスと重複する有効アドレスが設定されることはほとんどない。しかし、この期間は全くゼロとなるわけでなく、受信したノードにおける有効アドレスの設定に時間がかかった場合、他のノードがＤＡＤ処理に成功し、未確定アドレスと重複する有効アドレスが設定される可能性はある。重複アドレスが設定されると、通信が混乱するため、これを防ぐ必要がある。【０１４４】
本実施形態にかかる通信システムは、未確定アドレスの受信から設定までの時間に、重複アドレスが設定されるのを防ぐための構成を有するものである。【０１４５】
本実施形態の通信システム２の構成は第１実施形態のものと同様である。【０１４６】
図２４を参照して、本実施形態のノード１２〜１４の動作について説明する。ノード１２〜１４の動作は、アドレス設定処理において、ステップＴ３０５の後にステップＴ３１１を実行するほかは、第１実施形態におけるノード１２〜１４と同様である。【０１４７】
図２４は、ノード１２のアドレス設定処理を示したフローチャートである。同図を参照すると、ステップＴ３０５の後、アドレス設定部１２３は、ノード自身に有効アドレスを設定した旨を示すメッセージをノード１１へ送信する（ステップＴ３１１）。【０１４８】
図２５を参照して、本実施形態のノード１１の動作について説明する。ノード１１の動作は、返信処理において、更にステップＳ２１１、ステップ２１３を実行するほかは、第１実施形態におけるノード１１と同様である。【０１４９】
図２５は、ノード１１の返信処理を示したフローチャートである。同図を参照すると、ＮＳメッセージの示す仮アドレスと重複する未確定アドレスがない場合（ステップＳ２０７：ＮＯ）、アドレス設定部１１５は、未確定アドレスを示すメッセージを他のノードへ送信したか否かを判断する（ステップＳ２１１）。未確定アドレスを示すメッセージを他のノードへ送信した場合（ステップＳ２１１：ＹＥＳ）、アドレス設定部１１５は、有効アドレスを設定した旨のメッセージを受信したか否かを判断する（ステップＳ２１３）。有効アドレスを設定した旨のメッセージを受信していない場合（ステップＳ２１３：ＮＯ）、アドレス設定部１１５は、重複するアドレスがある旨のＮＡメッセージを送信する（ステップＳ２０９）。【０１５０】
有効アドレスを設定した旨のメッセージを受信した場合（ステップＳ２１３：ＹＥＳ）、または未確定アドレスを示すメッセージを他のノードへ送信していない場合（ステップＳ２１１：ＮＯ）、アドレス設定部１１５は、返信処理を終了する。【０１５１】
本実施形態によれば、ノード１１は、ノード１２へ未確定アドレスを示すメッセージを送信してから（ステップＳ２１１：ＹＥＳ）、有効アドレスがノード１２に設定された旨のメッセージを受信するまで（ステップＳ２１３：ＹＥＳ）、重複するアドレスがある旨を示すＮＡメッセージを送信し続ける（ステップＳ２０９）。【０１５２】
このため、ノード１２が未確定アドレスを受信してから有効アドレスとして設定する間、他のノードに未確定アドレスと重複する有効アドレスが設定されることはなく、通信システムの信頼性が向上する。【０１５３】
なお、未確定アドレスの受信から設定までの時間はある程度予測可能である。このため、設定した旨のメッセージの送受信をしなくとも、未確定アドレスを示すメールを送信後は、ノード１１が、その予測される時間の間ＮＡメッセージを送信し続ける構成とすることもできる。【０１５４】
（第４実施形態）
本発明の第４実施形態について説明する。本発明の通信装置はステートフルなアドレス自動生成のために使用することもできる。本実施形態は、ノード１１をＤＨＣＰサーバとして使用するものである。【０１５５】
本実施形態の通信システムの構成は、ノード１１がＤＨＣＰサーバ機能を有し、ノード１２〜１４がＤＨＣＰクライアント機能を有する以外は、第１実施形態にかかる通信システム１と同様である。【０１５６】
ＤＨＣＰサーバ（１１）は、ステップＳ１０においてＤＡＤ処理の代わりにGratuitous  ARPの送信によりＩＰアドレスの重複のないことを確認し、クライアントの数の分、ＩＰアドレス（未確定アドレス）をプールする。ＤＨＣＰクライアント（１２〜１４）は、ＤＨＣＰサーバにＩＰアドレスの取得を要求し、ＤＨＣＰサーバは、要求に応じてプールしたＩＰアドレスを一定期間リースする。【０１５７】
図２６および図２７を参照して本実施形態のノード１１の動作について説明する。【０１５８】
本実施形態のノード１１の動作は、返信処理においてステップＳ２０３〜Ｓ２０９を実行せず、アドレス設定処理においてステップＳ３０１の代わりにステップＳ３１１を実行する以外は、第１実施形態のノード１１と同様である。【０１５９】
図２６は、本実施形態のノード１１の実行する返信処理を示したフローチャートである。同図を参照すると、ＮＳメッセージを受信した場合（ステップＳ２０１：ＹＥＳ）、アドレス設定部１１５は、メッセージが重複アドレス確認のためのメッセージであるか否かの判断（ステップＳ２０３）を行わず、ステップＳ２５１を実行する。【０１６０】
図２７は、本実施形態のノード１１の実行するアドレス設定処理を示したフローチャートである。同図を参照すると、アドレス設定部１１５は、未確定アドレスが所定数に達したか否かを判断する（ステップＳ３１１）。未確定アドレスが所定数に達した場合（ステップＳ３１１：ＹＥＳ）、アドレス設定部１１５は、ステップＳ３０３を実行する。未確定アドレスが所定数に達していない場合（ステップＳ３１１：ＮＯ）、アドレス設定部１１５は、ステップＳ３０５を実行する。【０１６１】
例えば、未確定アドレスの数がネットワークＮ１におけるノード（１１〜１４）の数に達した場合（ステップＳ３１１：ＹＥＳ）、ＤＨＣＰサーバとして機能する準備が整ったので、ノード１１は、ＩＰアドレスのリースを開始する（ステップＳ３０９）。【０１６２】
図２８を参照して本実施形態のノード１２〜１４の動作について説明する。【０１６３】
本実施形態のノード１２〜１４の動作は、図１６で示した返信処理においてステップＴ３０７およびＴ３０９を実行しない以外は、第１実施形態のノード１２〜１４と同様である。【０１６４】
図２８は、本実施形態のノード１２の実行するアドレス設定処理を示したフローチャートである。同図を参照すると、未確定アドレスを示すメッセージを所定期間受信しなかった場合でも、アドレス設定部１２３は、Gratuitous  ARPの送信による重複アドレスの有無の判断（ステップＴ３０７およびステップＴ３０９）を行わず、アドレス設定処理を終了する。【０１６５】
ノード１３および１４の動作はノード１２と同様である。【０１６６】
このように、ノード１１は、事前に重複アドレスがないことが確認されたＩＰアドレスをリースするので、ノード１２〜１４は、重複アドレスのないことの確認を行うことなく、直ちに有効アドレスを設定することができる。ノード１１は、ノード１２〜１４が重複アドレスのないことの確認を行わないので、ＮＳメッセージが重複アドレス確認のためのものであるか否かの判断（ステップＳ２０３）を行わなくてよい。よって、本実施形態の通信システムにおける各ノードは、有効アドレス設定までの時間が短縮できる。【０１６７】
なお、本実施形態のノード１１〜１４の他にＤＨＣＰサーバを設け、ノード１１〜１４をＤＨＣＰクライアントとして使用することもできる。【０１６８】
また、ＩＰアドレスとドメイン名とを対応付けて記憶するＤＮＳサーバ、ＤＮＳサーバと名前解決を行うＷｅｂサーバ、および、これらのクライアントに上述した実施形態の通信装置を適用することもできる。【０１６９】
以上、実施形態を参照して本発明を説明したが、本発明は実施形態に限定されるものではない。クレームに定義された本発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【０１７０】
この出願は、２００８年２月１９日に出願された日本出願特願２００８−０３７７７２を基礎として優先権の利益を主張するものであり、その開示の全てを引用によってここに取り込む。
【図１】
0005392097.tif 000002
【図２】
0005392097.tif 000003
【図３】
0005392097.tif 000004
【図４】
0005392097.tif 000005
【図５】
0005392097.tif 000006
【図６】
0005392097.tif 000007
【図７】
0005392097.tif 000008
【図８】
0005392097.tif 000009
【図９】
0005392097.tif 000010
【図１０】
0005392097.tif 000011
【図１１】
0005392097.tif 000012
【図１２】
0005392097.tif 000013
【図１３】
0005392097.tif 000014
【図１４】
0005392097.tif 000015
【図１５】
0005392097.tif 000016
【図１６】
0005392097.tif 000017
【図１７】
0005392097.tif 000018
【図１８】
0005392097.tif 000019
【図１９】
0005392097.tif 000020
【図２０】
0005392097.tif 000021
【図２１】
0005392097.tif 000022
【図２２】
0005392097.tif 000023
【図２３】
0005392097.tif 000024
【図２４】
0005392097.tif 000025
【図２５】
0005392097.tif 000026
【図２６】
0005392097.tif 000027
【図２７】
0005392097.tif 000028
【図２８】
0005392097.tif 000029