JPWO2009104482A1 - アドレス決定装置、通信システム、アドレス決定方法及びプログラム - Google Patents

アドレス決定装置、通信システム、アドレス決定方法及びプログラム Download PDF

Info

Publication number
JPWO2009104482A1
JPWO2009104482A1 JP2009554269A JP2009554269A JPWO2009104482A1 JP WO2009104482 A1 JPWO2009104482 A1 JP WO2009104482A1 JP 2009554269 A JP2009554269 A JP 2009554269A JP 2009554269 A JP2009554269 A JP 2009554269A JP WO2009104482 A1 JPWO2009104482 A1 JP WO2009104482A1
Authority
JP
Japan
Prior art keywords
address
message
temporary
network
effective
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009554269A
Other languages
English (en)
Other versions
JP5392097B2 (ja
Inventor
北村 浩
浩 北村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009554269A priority Critical patent/JP5392097B2/ja
Publication of JPWO2009104482A1 publication Critical patent/JPWO2009104482A1/ja
Application granted granted Critical
Publication of JP5392097B2 publication Critical patent/JP5392097B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5092Address allocation by self-assignment, e.g. picking addresses at random and testing if they are already in use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • H04L61/5014Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/659Internet protocol version 6 [IPv6] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5053Lease time; Renewal aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

ネットワークにおいて一意なアドレスを通信装置に設定する時間を短縮する技術を提供する。ネットワークに接続された通信装置が通信において送信元に指定する有効アドレスを決定するアドレス決定装置は、仮アドレスを選択し、前記ネットワーク上で問い合わせを行うことにより、前記ネットワークにおける該仮アドレスと重複する有効アドレスの有無を判断する重複有効アドレス判断手段と、前記重複有効アドレス判断手段により前記ネットワークにおいて前記仮アドレスと重複する有効アドレスがないと判断された場合に、該仮アドレスを未確定アドレスとして記憶しておく記憶手段と、前記通信装置が送信元のアドレスを指定する通信を開始する場合、前記記憶手段に記憶された前記未確定アドレスを該通信装置の送信元として指定される有効アドレスに決定するアドレス決定手段と、を有する。

Description

本発明は、ネットワークを通じて通信する通信装置においてアドレスを生成する技術に関する。
インターネットなどのIP(Internet Protocol)ネットワークを介して通信を行う各通信装置にIPアドレスを動的に設定する場合、IPアドレス要求のタイミングによってはネットワーク上に重複するIPアドレスが誤って設定されるおそれがある。これを防ぐため、RFC4862: IPv6 Stateless Address Auto-configuration <URL:http://www.ietf.org/rfc/rfc4862.txt>に開示されているように、クライアントは、アドレスを実際に設定する前にDAD(Duplicate Address Detection)と呼ばれる処理を行う。
DAD処理では、まず、クライアントは、ネットワークにおいて他のいずれの通信装置にも設定されていないと認識している無効(Invalid)アドレスのうち1つを、図1に示すように設定候補の仮(Tentative)アドレスとする。
そして、クライアントは、図2に示すように、仮アドレス(例えば「Address X」)と重複する設定済の有効(Valid)アドレスがネットワークにあるか否かを問い合わせるNS(Neighbor Solicitation)メッセージM1を送信する。他の通信装置から重複するアドレスがある旨の返信が所定期間内にないのであれば、仮アドレスの一意性が確認されたので、クライアントは、図1に示すように、仮アドレスを有効アドレスとしてクライアント自身に設定する。図2における点線は、各クライアントからNSメッセージに対する返信がないことを意味する。
図2に示すように、有効アドレスが設定された後は、クライアントは他の有効アドレスが設定済のクライアントと相互に宛先を指定して通信を行うことができる。図2〜図5における「NS(src=::)」は、DADのためのNSメッセージであることを意味し、「NS(src≠::)」は、L2アドレス解決のためのNSメッセージであることを意味する。図2〜図5において、ノード間における通常の矢印はDAD処理のためのNSメッセージの送信を意味し、白抜きの矢印は、L2アドレス解決のためのメッセージの送信を意味する。
ここで、図3に示すように、クライアントC1が仮アドレス「X」の取得を試みたが、アドレス「X」と同じ有効アドレスがネットワークにおいて既にクライアントC2に設定されている場合について考える。この場合、クライアントC1からのNSメッセージM2に対し、重複するアドレスがある旨のNA(Neighbor Advertisement)メッセージM3をクライアントC2が返信する。M3を受信したクライアントC1は、仮アドレス「X」を破棄し、DADは失敗する。
また、図4に示すように、クライアントC1が仮アドレス「X」についてDAD処理のためのNAメッセージM4を送信し、そのM4受信後に他のクライアントC3が遅れて仮アドレス「X」と同じ有効アドレスを取得しようとDAD処理を行う場合がある。この場合、先のクライアントC1がM4を送信後、返信がないと判断する所定期間が経過する前に、後のクライアントC3のNSメッセージM5がクライアントC1に届くことがある。このときは、M5を受信した先のクライアントC1がDAD処理に失敗したと判断し、後のクライアントC3が後勝ちとなり、アドレス「X」を有効アドレスとしてクライアントC3自身に設定できる。
図3および図4を参照して説明したように、DAD処理を行うことで、重複する有効アドレスがネットワークに設定されることが防止される。
とはいえ、ネットワーク上には性能の低いノードや様々な方法でプロトコル実装したノードが存在することを想定する必要があり、重複確認にはどのようなノードでも返事可能となるような十分な時間を要する。Ethernetを用いる一般的な通信環境では1秒がその確認時間にあてられている。従って、ノードが新たにアドレスを利用する場合は、重複確認の1秒待ってからでないと、そのアドレスは使えない。DAD処理に要する1秒という時間は、一般的な通信環境では無視ができないくらいの長時間である。
また、図4に示すように、クライアントC1がNSメッセージM6を送信してからクライアントC3がM6を受信する前に、C3が遅れてNSメッセージM7を送信する場合がある。この場合、クライアントC1は、重複がないと判断する所定期間内にM7を受信してDAD処理が失敗し、クライアントC3も同様に所定期間内にM6を受信し、双方DAD処理が失敗する。よってクライアントC1またはC3は再度DADを行うことになり、さらに時間がかかる。
このように、DAD処理に時間がかかるため、通信装置は有効アドレスを設定するまでに時間を要する。
アドレス設定までの時間を短縮するため、RFC4429: Optimistic Duplicate Address Detection (DAD) for IPv6 <URL:http://www.ietf.org/rfc/rfc4429.txt>に開示されているように、通信装置が楽観的な(Optimistic)DAD処理を行う方法がある。楽観的なDAD処理は、IPv6(Internet Protocol Version 6)においてはIPアドレス空間が広く、衝突の可能性が極めて低いことを利用した方法である。この方法は、DAD処理を無くしてしまう、あるいは形としてDAD処理は存在するものの、とりあえず衝突はないと仮にみなして処理を先に進めてしまう。そして、万一衝突したことが後から発見されれば、ノードが、発見された時点から先に行ったみなし処理の善後策を講じる方法である。
或いは、特開2007−166069号公報に開示されているように、自己のIPアドレスと仮アドレスとが重複する場合に、DHCPサーバが、プールしたアドレス空間の範囲外のアドレスに自己のIPアドレスを変更することで、アドレス設定までの時間の短縮を図る方法もある。
しかしながら、非特許文献2の方法では、楽観的なアドレスは一意なアドレスと限らず、楽観的なアドレスと重複したアドレスが検出される場合がある。この場合、修正までに長時間がかかる。
また、特許文献1に開示された方法では、DAD処理自体を省略することはできない。
このため、ネットワーク上の通信機器に一意なアドレスが設定されるまでの時間を依然として十分に短縮できていないという問題があった。
上記問題点に鑑み、本発明は、ネットワークにおいて一意なアドレスを通信装置に設定する時間を短縮する技術を提供することを目的とする。
上記目的を達成するために、本発明のアドレス決定装置は、ネットワークに接続された通信装置が通信において送信元に指定する有効アドレスを決定するアドレス決定装置であって、仮アドレスを選択し、前記ネットワーク上で問い合わせを行うことにより、前記ネットワークにおける該仮アドレスと重複する有効アドレスの有無を判断する重複有効アドレス判断手段と、前記重複有効アドレス判断手段により前記ネットワークにおいて前記仮アドレスと重複する有効アドレスがないと判断された場合に、該仮アドレスを未確定アドレスとして記憶しておく記憶手段と、前記通信装置が送信元のアドレスを指定する通信を開始する場合、前記記憶手段に記憶された前記未確定アドレスを該通信装置の送信元として指定される有効アドレスに決定するアドレス決定手段と、を有する。
本発明の通信システムは、ネットワークに接続された通信装置と、該通信装置が送信元に指定する有効アドレスを決定するアドレス決定装置と、を有し、前記アドレス決定装置は、仮アドレスを生成し、前記ネットワークにおける該仮アドレスと重複する有効アドレスの有無を判断し、該仮アドレスと重複する有効アドレスがないと判断された場合に、該仮アドレスを未確定アドレスとして記憶手段に記憶し、前記通信装置は、送信元のアドレスを指定する通信を開始する場合、前記アドレス決定装置へ有効アドレスを要求するメッセージを送信し、前記アドレス決定装置は、前記第2の通信装置から有効アドレスを要求するメッセージを受信した場合に、前記記憶手段から読み出した前記未確定アドレスを前記通信装置に設定する有効アドレスとして決定し、該有効アドレスを示すアドレス伝達メッセージを該通信装置に送信し、前記通信装置は、前記アドレス決定装置から前記アドレス伝達メッセージを受信し、該アドレス伝達メッセージの示す前記有効アドレスを該通信装置の送信元として指定される有効アドレスに設定する。
本発明のアドレス決定方法は、ネットワークに接続された通信装置が通信において送信元に指定する有効アドレスを決定するアドレス決定方法であって、仮アドレスを生成し、前記ネットワーク上で問い合わせを行うことにより、前記ネットワークにおける該仮アドレスと重複する有効アドレスの有無を判断し、前記ネットワークにおいて前記仮アドレスと重複する有効アドレスがないと判断し場合に、該仮アドレスを未確定アドレスとして記憶手段に記憶しておき、前記通信装置が送信元のアドレスを指定する通信を開始する場合、前記記憶手段に記憶された前記未確定アドレスを該通信装置の送信元として指定される有効アドレスに決定する。
本発明のプログラムは、ネットワークに接続された通信装置が通信において送信元に指定する有効アドレスを決定する処理をコンピュータに実行させるためのプログラムであって、仮アドレスを生成し、前記ネットワーク上で問い合わせを行うことにより、前記ネットワークにおける該仮アドレスと重複する有効アドレスの有無を判断する重複アドレス判別手順、前記重複アドレス判別手順により前記ネットワークにおいて前記仮アドレスと重複する有効アドレスがないと判断した場合に、該仮アドレスを未確定アドレスとして記憶手段に記憶する手順、及び前記通信装置が送信元のアドレスを指定する通信を開始する場合、前記記憶手段に記憶された前記未確定アドレスを該通信装置の送信元として指定される有効アドレスに決定するアドレス決定手順、をコンピュータに実行させる。
本発明によれば、ネットワークにおいて一意なアドレスを通信装置に設定する時間を短縮することができる。
一般的な通信システムにおけるIPアドレスのアドレス状態の遷移を時系列順に示した図である。 一般的な通信システムにおけるメッセージの流れの一例を時系列順に示したシーケンス図である。 一般的な通信システムにおけるメッセージの流れの一例を時系列順に示したシーケンス図である。 一般的な通信システムにおけるメッセージの流れの一例を時系列順に示したシーケンス図である。 一般的な通信システムにおけるメッセージの流れの一例を時系列順に示したシーケンス図である。 第1実施形態の通信システムの構成を示す全体図である。 第1実施形態の通信装置の構成を示すブロック図である。 第1実施形態の割り当てアドレスの構成を示す図である。 第1実施形態の通信装置の構成を示すブロック図である。 第1実施形態の通信装置の動作を示すフローチャートである。 第1実施形態の事前重複確認処理を示すフローチャートである。 第1実施形態の返信処理を示すフローチャートである。 第1実施形態のアドレス設定処理を示すフローチャートである。 第1実施形態の通信装置の動作を示すフローチャートである。 第1実施形態の返信処理を示すフローチャートである。 第1実施形態のアドレス設定処理を示すフローチャートである。 第1実施形態におけるIPアドレスのアドレス状態の遷移を時系列順に示した図である。 第1実施形態におけるIPアドレスのアドレス状態の遷移を時系列順に示した図である。 第1実施形態の通信システムにおけるメッセージの流れを時系列順に示したシーケンス図である。 第1実施形態の通信システムにおけるメッセージの流れを時系列順に示したシーケンス図である。 実施形態1の通信システムの構成を示す図である。 変形例の通信システムの構成を示す図である。 第2実施形態のアドレス設定処理を示すフローチャートである。 第3実施形態のアドレス設定処理を示すフローチャートである。 第3実施形態の返信処理を示すフローチャートである。 第4実施形態の返信処理を示すフローチャートである。 第4実施形態のアドレス設定処理を示すフローチャートである。 第4実施形態のアドレス設定処理を示すフローチャートである。
(第1実施形態)
本発明の第1実施形態について図面を参照して詳細に説明する。
図6は、本実施形態の通信システム1の全体図である。通信システム1は、例えば、構内に構築されたイーサネットLAN(Local Area Network)を利用する。同図を参照すると、通信システム1は、ノード11、12、13、および14を有し、これらのノード11〜14はバス型でネットワークN1に接続されている。
ネットワークN1の終端にはターミネーターT1、T2が設けられている。
トポロジーは、バス型に限らず、リンク型、スター型など他の種類であってもよいのは勿論である。
ノード11は、他の通信装置とネットワークN1を通じて相互に通信する通信装置である。ノード11は、予め未確定(Uncertain)アドレスを生成して記憶し、この未確定アドレスをノード自身に有効(Valid)アドレスとして設定する。また、他のノードからの要求に応じて、この未確定アドレスと同じアドレスを示すメッセージを送信する。例えば、ノード11は通信機能を有するパソコンである。
未確定アドレスとは、ネットワークにおいて通信装置が動的に生成した仮(Tentative)アドレスのうち、ネットワークにおいて一意なアドレスであると確認されたアドレスであって、通信装置に一意な有効アドレスとして設定される予定であるが、未だ設定されていない未確定の状態のアドレスをいう。
これに対して、仮アドレスとは、ネットワーク上で一意なアドレスとして確認されておらず、且つ、通信装置に未だ設定されていないアドレスである。仮アドレスは、無効アドレスの中から有効アドレスの候補として選択(生成)される。そして、仮アドレスはDAD処理により、ネットワークにおける仮アドレスと重複する有効アドレスの有無が判断され、重複する有効アドレスがあると判断された場合、仮アドレスは破棄されて無効(Invalid)アドレスに戻る。ネットワークにおいて仮アドレスと重複する有効アドレスがないと判断された場合、一意性が確認されたので仮アドレスは通信装置に有効アドレスとして設定される。
また、有効アドレスとは、通信装置の通信インターフェースに割り当てられた(設定された)、ネットワークにおいて一意なアドレスである。有効アドレスを通信装置に設定することにより、その通信装置は自身の送信元のアドレスを指定した通信を開始することができる。
無効アドレスとは、ネットワークにおいて一意性が確認されておらず、通信機器に設定されていないアドレスである。
本実施形態では、通信プロトコルとしてIPv6(Internet Protocol Version 6)を使用し、有効アドレス、無効アドレス、仮アドレス、および未確定アドレスは、IPv6におけるIPアドレスである。
IPv6にIPv4(Internet Protocol Version 4)を組み込んでもよいし、IPv4を使用してもよい。
図7を参照してノード11の構成について説明する。図7は、ノード11の構成を示すブロック図である。同図を参照すると、ノード11は、事前重複確認処理部111、記憶部113、およびアドレス設定部115を有する。
事前重複確認処理部111は、仮アドレスを生成し、DAD処理を実行することで、生成した仮IPアドレスと重複する有効アドレスがネットワークN1上にあるか否かを判断する。そして、事前重複確認処理部111は、仮アドレスと重複する有効アドレスがないと確認されたのであれば、生成した仮アドレスを未確定アドレスとして記憶部113に格納する。
ここで、事前重複確認処理部111は、IPv6版のDAD以外の処理で重複する有効アドレスの有無の判断を行ってもよい。例えば、IPv4を使用する場合、事前重複確認処理部111は、Gratuitous ARPを送信することにより重複アドレスのないことを確認する。また、IPv4版のDADも提案されており、Windows Vistaなどの一部のOS(Operation System)での実装が知られている。このIPv4版DAD処理を事前重複確認部111が行ってもよいのは勿論である。
記憶部113は、割り当てアドレス1131および近隣キャッシュ1132を有する。記憶部113は、RAM(Random Access Memory)等のメモリである。
図8を参照して割り当てアドレス1131について説明する。同図は、割り当てアドレス1131の構成の一例を示した図である。割り当てアドレス1131には、ネットワークN1に割り当てられたアドレス範囲における各アドレス1131Aと、これらのアドレスの状態1131Bとが対応付けて格納される。
図8を参照すると、割り当てアドレス1131について、IPアドレス1131Aおよびアドレス状態1131Bの項目の内容が格納される。IPアドレス1131Aは、ネットワークN1に割り当てられているIPアドレスである。アドレス状態1131Bは、対応するIPアドレス1131Aの状態を示す。各アドレスは、仮(Tentative)アドレス、未確定(Uncertain)アドレス、有効(Valid)アドレス、または無効(Invalid)アドレスという4つの状態をとりうる。アドレス状態1131Bは、IPアドレス1131Aごとに、「Tentative」、「Uncertain」、「Valid」、「Invalid」のいずれかとなりうる。例えば、ノード11は割り当てられたIPアドレス1131Aのアドレス状態1131Bは、最初は全て「Invalid」(無効アドレス)にし、DAD処理を行う際には、いずれかのIPアドレス1131Aのアドレス状態1131Bを「Tentative」(仮アドレス)とする。DAD処理に成功した場合、ノード11はそのアドレスのアドレス状態を「Uncertain」(未確定アドレス)に遷移させ、DAD処理に失敗した場合は「Invalid」(無効アドレス)に戻す。「Uncertain」の未確定アドレスを有効アドレスとして設定した場合、ノード11はそのアドレスのアドレス状態を「Valid」とする。
図7に戻り、近隣キャッシュ1132は、ネットワークN1におけるノードの有効アドレスと、これらのノードのリンク層アドレスとを対応付けたテーブルである。リンク層アドレスは、例えば、MAC(Media Access Control)アドレスである。
アドレス設定部115は、ネットワークN1を通じて送信元のアドレスを指定した通信を開始する際に、記憶部113に格納された未確定アドレスを、ノード自身(11)の送信元として指定される有効アドレスに決定(設定)する。有効アドレスを設定後、アドレス設定部115は、通信を開始したいノードへ、そのノードのリンク層(MAC)アドレスを要求するメッセージを送信する。相手先からのMACアドレスを示すメッセージを受信したとき、アドレス設定部115は、そのMACアドレスに基づいて近隣キャッシュ1132を更新して、通信を開始する。
また、アドレス設定部115は、他のノードからIPアドレスを取得したい旨の要求があった場合に、記憶部113に格納されている未確定アドレスを選択し、その未確定アドレスをそのノードの有効アドレスに決定する。そして、アドレス設定部115は、そのノードに、決定した有効アドレス(未確定アドレス)を示すメッセージを送信する。メッセージ送信後は、アドレス設定部115は、メッセージにかかる未確定アドレスを無効アドレスにする。
メッセージを受信したノードは、メッセージにかかる未確定アドレスをノード自身に有効アドレスとして設定する。この処理の詳細については後述する。
また、アドレス設定部115は、他のノードより、アドレスについての問い合わせであるNS(Neighbor Solicitation)メッセージを受信する。NSメッセージには、仮アドレスと重複する有効アドレスの有無を問い合わせる(DAD処理のための)ものと、相手先と互いに宛先を指定した通信を開始するためにMACアドレスの送信を要求するもの、即ちL2(Layer-2)アドレス解決のためのものとがある。
受信したNSメッセージがDAD処理のためのものであり、且つ、仮アドレスと未確定アドレスのいずれかが重複する場合、アドレス設定部115は、重複するアドレスがある旨を示すNA(Neighbor Advertisement)メッセージを送信する。
一方、L2アドレス解決のためのものであり、ノード自身(11)に有効アドレスが設定されている場合は、アドレス設定部115はノード自身のMACアドレスを示すNAメッセージを送信する。
このように、事前重複確認処理部111が、有効アドレスをノード自身(11)に設定する前にDAD処理を行い、ネットワークN1において一意と確認された仮アドレスを未確定アドレスとして記憶部113に格納する。そして、有効アドレスがノード自身(11)に必要になった際に、ノード11は、記憶部113に格納された未確定アドレスを読み出し、DAD処理を行うことなく自己に有効アドレスとして設定する。
従来の通信装置では、有効アドレスの設定が必要になった後にDAD処理を行うのに対し、本実施形態のノード11は、有効アドレスの設定が必要になる前に、上述のように事前にDAD処理を済ませている。このため、通信を開始する際に、ノード11はDAD処理を行う必要がない。このため、ノード11は、有効アドレスを通信装置に設定する時間を短縮することができる。
また、従来の通信装置は、通信対象ノードからのNAメッセージの示すMACアドレスに基づいて近隣キャッシュ1132を更新する。よって、動的に仮アドレスを生成した装置と、その仮アドレスを有効アドレス(IPアドレス)として使用する装置とが異なると、近隣キャッシュ1132の情報(IPアドレスとMACアドレスとの対応関係)が整合せず、通信が混乱する。このため、動的に仮アドレスを生成した装置と、その仮アドレスを使用する装置とは同一でなければならない。
これに対し、本実施形態のノード11は、未確定アドレスが記憶されていても有効アドレスが設定されていない限り、MACアドレスを示すNAメッセージを返信しない。このため、近隣キャッシュ1132が更新されることがなく、生成した未確定アドレスを他のノードに渡すことができる。従って、他の通信装置の有効アドレスの設定時間を短縮することもでき、ノード11を有する通信システム1全体としての有効アドレスの設定時間が短縮される。
図9を参照して、ノード12〜14の構成について説明する。ノード12〜14は、他の通信装置とネットワークN1を通じて相互に通信する通信装置である。同図は、ノード12の構成を示すブロック図である。同図を参照すると、ノード12は、記憶部121およびアドレス設定部123を有する。
記憶部121は、割り当てアドレス1211および近隣キャッシュ1212を有する。これらの構成は、ノード11の割り当てアドレス1131および近隣キャッシュ1132と同様である。但し、図8で示した割り当てアドレス1131と異なり、アドレス状態1131Bが「Uncertain」の状態をとることはない。
アドレス設定部123は、ノード11から未確定アドレスを示すメッセージを受信し、メッセージにかかる未確定アドレスをノード自身の有効アドレスとして設定する。例えば、アドレス設定部123は、IPアドレスを取得したい旨を示すメッセージをブロードキャストで送信する。そして、ノード11から未確定アドレスを示すメッセージを受信した場合に、アドレス設定部123は、DAD処理を行なわずに受信したアドレスをノード自身の有効アドレスとして設定する。ノード11から未確定アドレスを示すメッセージを受信できなかった場合、アドレス設定部123は、DAD処理を行い、有効アドレスを生成して自身に設定する。
また、アドレス設定部123は、他のノードからNSメッセージを受信し、メッセージの示す仮アドレスがノード自身の有効アドレスと一致するのであれば、重複アドレスが存在する旨を示すNAメッセージを返信する。
ノード13および14の構成は、ノード12と同様である。
このように、ノード11から受信したIPアドレスは、ノード11により一意であると確認された未確定アドレスである。このため、未確定アドレスを示すメッセージを受信すれば、本実施形態のノード12〜14はDAD処理を行う必要がない。従って、ノード12〜14は有効アドレスを通信装置に設定する時間を短縮することができる。
本実施形態によれば、ノード11は、仮アドレスを生成して仮アドレスと重複する有効アドレスがネットワークN1にあるか否かを判断して、重複アドレスがない場合に仮アドレスを未確定アドレスとして格納する。
そして、ノード11は、格納した未確定アドレスをノード自身の有効アドレスとして設定する。また、ノード12〜14は、IPアドレスを取得したい旨のメッセージを送信し、ノード11は、未確定アドレスを示すメッセージをノード14に送信する。ノード12〜14は、受信したメッセージにかかる未確定アドレスをノード自身の有効アドレスとして設定する。
このため、有効アドレスをノード11〜14に設定する際にDAD処理を行う必要がなく、有効アドレスがノード11〜14に設定されるまでの時間が短縮される。
次に、図10〜図16を参照して、本実施形態の通信システム1の動作について説明する。
図10は、本実施形態のノード11の実行する通信処理を示すフローチャートである。この通信処理は、ノード11が起動した場合または所定のアプリケーションが起動した場合に実行される。
図10を参照すると、まず、事前重複確認処理部111は、事前重複確認処理を実行する(ステップS10)。アドレス設定部115は、返信処理を実行し(S20)、アドレス設定処理を実行する(ステップS30)。ステップS30の後、ノード11は、通信処理を終了する。
事前重複確認処理について、図11を参照して説明する。事前重複確認処理は、事前重複確認処理部111が、有効アドレスを設定する前に、ネットワークN1における仮アドレスと重複するアドレスの有無の確認を行う処理である。
図11を参照すると、事前重複確認処理部111は、記憶部113に格納済の未確定アドレスの数が所定の数に達したか否かを確認する(ステップS101)。格納する未確定アドレスの数は任意である。例えば、本実施形態では、ノード自身(11)に有効アドレスとして設定するためのアドレス、および他のノード12〜14に送信するためのアドレスとして少なくとも4つの未確定アドレスをプールする。
未確定アドレスが所定数に達していない場合(ステップS101:NO)、事前重複確認処理部111は、仮アドレスを生成し、生成した仮アドレスと重複する有効アドレスがネットワークN1上にあるか否かを確認する(ステップS103)。例えば、事前重複確認処理部111は、無効アドレスのいずれかを仮アドレスとし、この仮アドレスと重複する有効アドレスがネットワークN1上にあるか否かを問い合わせるNSメッセージを各ノード(12〜16)に送信する。
そして、重複するアドレスがある旨を示すNAメッセージを所定期間内に受信しない場合、事前重複確認処理部111は、仮アドレスのアドレス状態を「Tentative」から「Uncertain」に遷移させ、仮アドレスを未確定アドレスとして記憶部113に格納する(ステップS105)。
NAメッセージを受信した場合、またはノード自身の生成した仮アドレスと同一の仮アドレスについて問い合わせるNSメッセージを受信した場合、事前重複確認処理部111は、仮アドレスのアドレス状態を「Tentative」から「Invalid」に遷移させて仮アドレスを破棄する。
ステップ105の後、または未確定アドレスが所定数に達した場合(ステップS101:YES)、事前重複確認処理部111は、通信処理を終了する。
このように、事前重複確認処理部111は事前にDAD処理を実行し、一意性が確認された仮アドレスを未確定アドレスとして記憶部113に格納する。
図12を参照して、返信処理について説明する。返信処理は、アドレス設定部115が、アドレスについて問い合わせるNSメッセージに対して所定条件下でNAメッセージを返信する処理である。
図12を参照すると、アドレス設定部115は、NSメッセージを受信したか否かを判断する(ステップS201)。NSメッセージを受信した場合(ステップS201:YES)、アドレス設定部115は、受信したNSメッセージがDADのためのメッセージであるか否かを判断する(ステップS203)。例えば、アドレス設定部115は、NSメッセージの送信元のアドレスが未指定アドレス(「Unspecified Address(::)」)である場合に、DADのためのメッセージであると判断する。
NSメッセージがDADのためのメッセージである場合(ステップS203:YES)、アドレス設定部115は、自身に有効アドレスが既に設定されていれば、NSメッセージにかかる仮アドレスとノード11自身に設定された有効アドレスとが一致するか否かを判断する(ステップS205)。仮アドレスとノード11自身に設定された有効アドレスとが一致しない場合、または有効アドレスがノード11に設定されていない場合(ステップS205:NO)、アドレス設定部115は、記憶部113から未確定アドレスを読み出し、NSメッセージにかかる仮アドレスと重複する未確定アドレスがあるか否かを判断する(ステップS207)。仮アドレスと重複する未確定アドレスがある場合(ステップS207:YES)、または仮アドレスとノード自身の有効アドレスとが一致する場合(ステップS205:YES)、アドレス設定部115は、仮アドレスと重複する有効アドレスがある旨を示すNAメッセージをブロードキャストで送信する(ステップS209)。
NSメッセージがDADのためのメッセージでない場合(ステップS203:NO)、受信したNSメッセージは、ノード11と通信するためにMACアドレスの送信を要求する、L2アドレス解決のためのメッセージであると考えられる。アドレス設定部115は、この場合、アドレス設定部115は、ノード自身(11)に有効アドレスが設定されており、且つ、メッセージの宛先がノード自身であるか否かを判断する(ステップS251)。ノード自身(11)に有効アドレスが設定されており、且つ、メッセージの宛先がノード自身である場合(ステップS251:YES)、ノード11のMACアドレスを示すNAメッセージをNSメッセージの送信元へ送信する(ステップS253)。NAメッセージを受信したノードは、受信したメッセージの示すMACアドレスに基づいて近隣キャッシュ1212を更新することでL2アドレス解決を行う。
ノード自身(11)に有効アドレスが設定されていない、または、メッセージの宛先がノード自身でない場合(ステップS251:NO)、或いはNSメッセージを受信しない場合(ステップS201:NO)、或いは仮アドレスと重複する予約アドレスがない場合(ステップS207:NO)、或いはステップS209またはステップS253の後、アドレス設定部115は、返信処理を終了する。
このように、アドレス設定部115は、DAD処理のためのNSメッセージを受信した場合、仮アドレスが未確定アドレスまたは自己の有効アドレスと重複するときに、重複するアドレスがある旨のNAメッセージを返信する。このため、未確定アドレスと重複する有効アドレスが他のノードに設定されることはなく、本実施形態のノードが他のノードの通信に影響を与えることは全くない。
また、アドレス設定部115は、L2アドレス解決のためのNSメッセージを受信し、且つ、ノード自身に有効アドレスが設定されている場合にMACアドレスを示すNAメッセージを返信する。このため、有効アドレスが設定されていない宛先と通信が開始されることがなく、本実施形態のノード間の通信において問題は全く生じない。
図13を参照してアドレス設定処理について説明する。アドレス設定処理は、アドレス設定部115が未確定アドレスを有効アドレスとしてノード自身に設定し、また、他のノードへ未確定アドレスを示すメッセージを送信する処理である。
図13を参照すると、まず、アドレス設定部115は、ノード自身に有効アドレスを設定する必要があるか否かを判断する(ステップS301)。例えば、ノード11がネットワークN1に接続された他のノード12〜14と送信元のアドレスを指定して通信を開始する際に、有効アドレスが必要となる。
有効アドレスを設定する必要がある場合(S301:YES)、アドレス設定部115は、記憶部113から読み出した未確定アドレスのアドレス状態を、「Uncertain」から「Valid」へ遷移させ、未確定アドレスをノード自身の有効アドレスとして設定する(ステップS303)。
有効アドレスを設定する必要がない場合(S301:NO)、またはステップS303の後、アドレス設定部115は、IPアドレスの取得を要求する旨のメッセージを他のノードから受信したか否かを判断する(ステップS305)。
IPアドレスを取得したい旨のメッセージを受信した場合(ステップS305:YES)、アドレス設定部115は、未確定アドレスが記憶部113に格納されているか否かを判断する(ステップS307)。
未確定アドレスが記憶部113に格納されている場合(ステップS307:YES)定アドレス設定部115は、未確定アドレスを示すメッセージを送信し、送信した未確定アドレスのアドレス状態を「Uncertain」から「Invalid」へ遷移させる(ステップS309)。
未確定アドレスが記憶部113に格納されていない場合(ステップS307:NO)、またはIPアドレスを取得したい旨のメッセージを受信しない場合(ステップS305:NO)、或いはステップS309の後、アドレス設定部115は、アドレス設定処理を終了する。
このように、アドレス設定部115は、未確定アドレスがある場合は、DAD処理を行うことなく未確定アドレスをノード自身に設定し、要求に応じて他のノードに未確定アドレスを示すメッセージを送信する。
次に、図14〜16を参照してノード12〜14の動作について説明する。図14は、ノード12が実行する通信処理を示すフローチャートである。この通信処理は、ノード12が起動した場合または所定のアプリケーションが起動した場合に開始される。
図14を参照すると、アドレス設定部123は、返信処理を実行し(ステップS20a)、アドレス設定処理を実行する(ステップT30)。ステップT30の後、アドレス設定部123は、通信処理を終了する。
図15を参照して、アドレス設定部123の実行する返信処理について説明する。同図は、アドレス設定部123の実行する返信処理を示すフローチャートである。同図におけるステップS201a〜ステップS205a、ステップS209a、およびステップS251a〜S253aは、図12におけるステップS201〜S205、ステップS209、およびステップS251〜S253と同様である。
そして、図15に示す返信処理は、NSメッセージの仮アドレスとノード自身の有効アドレスが一致しない場合(ステップS205a:NO)、図12で示したステップS207を行わず、返信処理を終了する以外は、ノード11の実行する返信処理と同様である。
このように、ノード12は未確定アドレスを記憶しないので、図15に示す返信処理において、NSメッセージの仮アドレスと重複する未確定アドレスの有無の判断(ステップS207)を行うことはない。
図16を参照して、アドレス設定部123が実行するアドレス設定処理について説明する。このアドレス設定処理は、ノード12が、未確定アドレスを示すメッセージを受信し、メッセージにかかる未確定アドレスを有効アドレスとして設定するための処理である。
図16は、アドレス設定処理を示すフローチャートである。同図を参照すると、アドレス設定部123は、IPアドレスを取得したい旨のメッセージをブロードキャストで送信する(ステップT301)。
図13に示したように、IPアドレスを取得したい旨のメッセージをノード11が受信し(ステップS305:YES)、未確定アドレスがあれば(ステップS307:YES)、ノード11は、未確定アドレスを示すメッセージをブロードキャストで送信する(ステップS309)。
図16に戻り、ステップT301の後、未確定アドレス受信部123は、未確定アドレスを示すメッセージを受信したか否かを判断する(ステップT303)。未確定アドレスを示すメッセージを受信した場合(ステップT303:YES)、未確定アドレス受信部123は、メッセージの示す未確定アドレスをノード自身の有効アドレスとして設定する(ステップT305)。
未確定アドレスを示すメッセージを所定期間内に受信しない場合(ステップT303:NO)、未確定アドレス受信部123は、仮アドレスを生成し、仮アドレスと重複する有効アドレスの有無を確認するNSメッセージを送信する(ステップT307)。NAメッセージを所定期間内に受信しない場合は、未確定アドレス受信部123は、仮アドレスを有効アドレスとして設定する(ステップT309)。
ステップT305またはステップT309の後、アドレス設定部123はアドレス設定処理を終了する。
ノード13および14の動作は、ノード12と同様である。
このように、ノード12〜14は、ノード11から未確定アドレスを受信できれば、DAD処理を行うことなく、有効アドレスを設定できる。
通信システム1の動作結果の一例について図17〜図20を参照して説明する。
図17は、ノード11に格納されるアドレスのアドレス状態の遷移を時系列順に示したものであり、図18は、ノード11〜14に格納されるアドレスのアドレス状態の遷移を時系列順に示したものである。
図17を参照して、未確定アドレスを生成したノード11が自身に、生成した未確定を有効アドレスとして設定する場合について説明する。
図17の白抜き矢印の左側の図は、従来のノードにおけるIPアドレスのアドレス状態の遷移を時系列順に示した図であり、矢印の右側の図は、本実施形態のノード11におけるIPアドレスのアドレス状態の遷移を時系列順に示した図である。同図を参照すると、従来のノード(矢印の左側)は、DAD処理中は、「Tentative」のアドレス状態であり、DAD処理に成功すれば、「Valid」に遷移する。
これに対して、本実施形態のノード11(矢印の右側)では、DAD処理が成功すれば、「Valid」に遷移するのでなく、アドレス状態は「Tentative」から「Uncertain」に遷移する(ステップS105)。
そして、ノード11自身に有効アドレスが必要であれば(S301:YES)、ノード11は、未確定アドレスの1つを自身の有効アドレスとして設定する。この場合、未確定アドレスのアドレス状態が「Uncertain」から「Valid」に遷移する。
つまり、ノード11は、DAD処理を「Valid」状態になるよりも前にすませることができ、アドレスを実際に利用する「Valid」状態に遷移する際にはDAD処理を行わずしてアドレス状態を即時遷移できるようになる。このため、アドレス設定までの時間が短縮される。
次に、図18を参照して、ノード11から他のノードへ未確定アドレスを有効アドレスとして渡す場合について説明する。
図18を参照すると、最初はノード12には有効アドレスが設定されていない。ノード12は、IPアドレスを取得したい旨のメッセージを送信する(ステップT301)。そして、ノード11は、「Uncertain」状態の未確定アドレスを記憶していたのであれば(ステップステップS307:YES)、未確定アドレス(有効アドレス)を示すメッセージを送信する(ステップS309)。
ノード12は受信したメッセージの示す未確定アドレス(有効アドレス)をノード自身の有効アドレスとして設定する(ステップT305)。この場合、図18に示すように、受信したアドレスのアドレス状態が「Valid」となる。同図における斜線を施した矢印は、有効アドレスの送信を取得したい旨のメッセージの送信および未確定アドレス(有効アドレス)を示すメッセージの送信を意味する。
このように、アドレスのアドレス状態は、DAD処理を開始した場合、「Invalid」から「Tentative」に遷移し、DAD処理に成功すれば、「Uncertain」に遷移し、有効アドレスとして設定されたとき、「Valid」に遷移する。
図19および図20は、通信システム1におけるノード間のメッセージの流れを時系列順に示すシーケンス図である。
図19において、ノード11はIPアドレス「X1」を未確定アドレスとして予約している。ノード13はIPアドレス「X1」を遅れて有効アドレスとして設定しようと試みる。ノード14は、IPアドレス「X1」を持つノードと通信を試みる。ノード12は、IPアドレス「X1」を設定しようとせず、IPアドレス「X1」を持つノードと通信を行わない。
図19および図20において、ノード間における通常の矢印は、DAD処理のためのNSメッセージの送信を意味し、白抜きの矢印は、L2アドレス解決のためのNSメッセージの送信を意味する。斜線を施した矢印は、有効アドレスの送信を取得したい旨のメッセージの送信および未確定アドレス(有効アドレス)を示すメッセージの送信を意味する。図19および図20における「NS(src=::)」は、DADのためのNSメッセージであることを意味し、「NS(src≠::)」は、L2アドレス解決のためのNSメッセージであることを意味する。
図19を参照すると、ノード11は、当初はIPアドレス「X1」を未確定アドレスとして格納していない。ノード11は、IPアドレス「X1」を予約しようと、このアドレスを仮アドレスとして重複する有効アドレスの有無を問い合わせるNSメッセージM11をブロードキャストで送信する(ステップS103)。この時点で、他のノードにIPアドレス「X1」は設定されていないため、重複するアドレスがある旨のNAメッセージはいずれのノードからも送信されない(ステップS205a:NO)。同図において点線は、NSメッセージに対するNAメッセージが各ノードから送信されないことを意味する。
DAD処理に成功したので、ノード11は、仮アドレス「X1」を未確定アドレスとして記憶する(ステップS105)。この後、IPアドレス「X1」をノード13が遅れて取得しようと、IPアドレス「X1」を仮アドレスとするNSメッセージM12を送信したときを考える(ステップT301)。このときは、ノード11が記憶する未確定アドレスと仮アドレスとが一致するため(ステップS207:YES)、ノード11は、重複する旨のNAメッセージM13を返信する(ステップS209)。ノード13は、NAメッセージM13を受信し、仮アドレスを破棄する。
このように、アドレス状態が「Uncertain」である場合は、この未確定アドレスと重複する有効アドレスが設定されることはない。
次に、ノード11にIPアドレス「X1」が設定されていない場合に、ノード14がNSメッセージM14を送信してIPアドレス「X1」が設定されたノードとの通信を試みるときを考える。このとき、ノード11は、ノード自身に有効アドレスが設定されていないため(ステップS251:NO)、NAメッセージは返信されない。同図において点線は、NSメッセージに対するNAメッセージが各ノードから送信されないことを意味する。
ノード11が、通信を開始するために未確定アドレス「X1」を有効アドレスとしてノード自身に設定した場合(ステップS303)、再度ノード14がIPアドレス「X1」を示すNSメッセージM15を送信したときを考える。このとき、メッセージM15の示すアドレスとノード自身の有効アドレスとが一致するため(ステップS251:YES)、ノード11は、ノード自身のMACアドレスを示すNAメッセージM16をノード14へ返信する(ステップS253)。
このように、未確定アドレスが有効アドレスとして設定されていない場合、未確定アドレスと同じアドレスを示す、L2アドレス解決のためのNSメッセージをノード11が受信しても、ノード11は、NAメッセージを返信することはない。このため、NAメッセージに基づき近隣キャッシュが更新されることがなく、通信が混乱することは全くない。
図20を参照して、ノード11からノード12へ未確定アドレスを示すNAメッセージが送信された場合について考える。
図20において、ノード11はIPアドレス「X1」を未確定アドレスとして予約している。ノード12は、IPアドレス「X1」を取得し、設定しようとしている。
ノード14は、IPアドレス「X1」を持つノードと通信を試みる。ノード13は、IPアドレス「X1」を設定しようとせず、IPアドレス「X1」を持つノードと通信を行わない。
ノード11が、IPアドレス「X1」を未確定アドレスとして予約している間に、ノード14がIPアドレス「X1」のノードとの通信を試みるNSメッセージM17を送信しても、IPアドレス「X1」はノード11に設定されていないので(ステップS251:NO)、NAメッセージは返信されない。同図において点線は、NSメッセージに対するNAメッセージが各ノードから送信されないことを意味する。
しかし、ノード12がIPアドレスの取得を要求するメッセージM18を送信した場合(ステップT301)、これに対してノード11はIPアドレス「X1」を示すメッセージM19を送信する(ステップS309)。ノード12は、M19の示すIPアドレス「X1」をノード自身に設定する(ステップT305)。
M18は、例えば、DHCPのプロトコルにおけるDHCPDISCOVERのメッセージであり、M19はDHCPOFFERのメッセージである。
この後、再度ノード14が、IPアドレス「X1」のノードとの通信を試みるNSメッセージM20を送信した場合、ノード12には、IPアドレス「X1」が設定されているから(ステップS251a:YES)、ノード123は、ノード自身のMACアドレスを示すNAメッセージM21を返信する(ステップS253a)。
このように、未確定アドレスを示すメッセージを受信したノードは、この未確定アドレスを有効アドレスとして設定し、他のノードと送信元のアドレスを指定した通信を開始することができる。
図21を参照して、本実施形態の通信システム1におけるアドレス管理方式について整理する。同図に示すように、ノード11にプールされる未確定アドレス(アドレスプール)はND(Neighbor Discovery)のメッセージへの返答のための情報として用いられるため、近隣キャッシュなどと同様ノードのカーネル空間に用意するのが一般的である。アドレスに対する処理を以下のように命名し整理する。
Push:アドレスをプールに蓄積すること
Pop:プールからアドレスを取出すこと
Set:アドレスをプロセス(ソケット)に設定すること。
最終的には対応するPCB(Process Control Block)にアドレス情報が設定される。DAS(Delayed Address Setting)処理とはプロセス起動後にこの処理を行うことである。アドレスプールにアドレスを蓄積する最も基本的な方法は手動によるPush処理である。アドレスプールに蓄積されたアドレスはサービスの利用などに伴うPop処理で当然然消費され減っていくので、新しいアドレスを供給し続ける必要があり、ユーザがその処理を手動で行い続けるのは限界がある。そこで、プールに蓄積したアドレスの量を確認しながら、新しいアドレスの補充作業を行うAddress Manager Daemonが使用されるのは、自然なことである。
Das処理を行うと内部でSet処理が実行される。その処理はAddress Manager Daemonを通したPop処理経由で行うと考えるのが基本ではある。しかし、実体は、カーネルに閉じた処理として、カーネル内のアドレスプールからユーザランドのプロセスに対応するカーネル内のPCBに直接設定されることになる。
図17に示したように、アドレスは一つのノード(11)で閉じた遷移をする(自己完結型)。一方、Uncertain状態のアドレスはどのノードにも帰属していないので、図18に示すように、プールに蓄積されたアドレスを他ノードが引継ぎ、引継いだノード側で、その続きのアドレス遷移をさせる(外部プール利用型)ことが可能である。このように、専用のプールサーバ(11)が実現される。
なお、本実施形態では未確定アドレスを記憶するノード(11)が1つであるが、2つ以上のノードが未確定アドレスを記憶する通信システムであってもよい。未確定アドレスをプールするノードが複数ある場合、引き継いだアドレスのアドレス状態を変化させず、「Uncertain」のまま留めておくことも可能である。従って、図22に示すような多段のプールサーバを実現することも可能になる。ノード11のような自己プールを持つクライアントは多段プールサーバになることが可能である。しかし、ノード12〜14のような自己プールを持たないクライアントの場合はなれず、アドレスを引き継いだ場合は自分に設定し、利用することになる(ステップT305)。
また、本実施形態の通信装置は、Mobile IPのハンドオーバー処理を行う装置にも適用することができる。Mobile IPのハンドオーバー処理では、移動したネットワーク先でCoA(Care of Address)と呼ばれるアドレスを動的に取得する必要があるが、本実施形態の通信装置の導入により、通信装置は、移動先でのCoA取得時のDAD処理を省略することができ、高速にハンドオーバーできる。
或いは、クライアントがセッションを張るたびにそのセッションに使う自分のアドレスを動的に生成して使用する通信システムや、サーバがクライアントからの接続要求に従いセッションを開始する際にそのセッションに動的に生成したアドレスを使用する通信システムがある。これらの通信システムにおいてもDAD処理を要するが、本実施形態の通信装置を適用することで、通信装置は、高速にアドレスを設定し、セッションを開始することができる。
(第2実施形態)
本発明の第2実施形態について説明する。本発明の通信装置は、従来の通信装置と混在させて使用することもできる。本実施形態にかかる通信システムは、本発明の通信装置と、従来の通信装置とを混在させたものである。
本実施形態の通信システムの構成は、ノード12〜14が従来の通信装置である以外は、第1実施形態と同様である。
一般的なノード12〜14の動作は、第1実施形態にかかるノード12〜14と、アドレス設定処理以外は同様である。
一般的なノード12〜14のアドレス設定処理について図23を参照して説明する。
図23は、本実施形態にかかるノード12〜14の実行するアドレス設定処理を示すフローチャートである。同図を参照すると、有効アドレス設定部123は、DAD処理を行い(ステップU301)、成功した場合仮アドレスを有効アドレスとして設定する(ステップU303)。
このように、一般的なノード12〜14は、有効アドレスが必要になった後にDAD処理を行い、DAD処理に成功した後に仮アドレスを有効アドレスとして設定する。
これら一般的なノード12〜14を、本実施形態のノード11と同一ネットワーク内で同時に使用しても問題が生じることはない。ノード12〜14が、未確定アドレスと重複する仮アドレスについて問い合わせた場合(ステップU301)、ノード11は、NAメッセージを送信する(ステップS209)。このため、ノード12〜14は仮アドレスと重複する有効アドレスがあると判断し、生成した仮アドレスを破棄する。従って、未確定アドレスと重複する有効アドレスがノード12〜14に設定されることはなく、本実施形態のノード11と、一般的なノード12〜14とは同一ネットワークにおいて全く問題なく使用できる。
本実施形態によれば、本実施形態のノード(11)は、一般的なノード(12〜14)と混在させることができるため、既存のシステムの構成(12〜14)を維持しつつ、所望のノード(11)についてアドレス設定時間を短縮することができる。
(第3実施形態)
本発明の第3実施形態について説明する。
第1実施形態において、本実施形態のノード12〜14のいずれかが未確定アドレスを受信した場合、受信から有効アドレスの設定まで時間は十分に短いので、この期間に、他のノードに未確定アドレスと重複する有効アドレスが設定されることはほとんどない。しかし、この期間は全くゼロとなるわけでなく、受信したノードにおける有効アドレスの設定に時間がかかった場合、他のノードがDAD処理に成功し、未確定アドレスと重複する有効アドレスが設定される可能性はある。重複アドレスが設定されると、通信が混乱するため、これを防ぐ必要がある。
本実施形態にかかる通信システムは、未確定アドレスの受信から設定までの時間に、重複アドレスが設定されるのを防ぐための構成を有するものである。
本実施形態の通信システム2の構成は第1実施形態のものと同様である。
図24を参照して、本実施形態のノード12〜14の動作について説明する。ノード12〜14の動作は、アドレス設定処理において、ステップT305の後にステップT311を実行するほかは、第1実施形態におけるノード12〜14と同様である。
図24は、ノード12のアドレス設定処理を示したフローチャートである。同図を参照すると、ステップT305の後、アドレス設定部123は、ノード自身に有効アドレスを設定した旨を示すメッセージをノード11へ送信する(ステップT311)。
図25を参照して、本実施形態のノード11の動作について説明する。ノード11の動作は、返信処理において、更にステップS211、ステップ213を実行するほかは、第1実施形態におけるノード11と同様である。
図25は、ノード11の返信処理を示したフローチャートである。同図を参照すると、NSメッセージの示す仮アドレスと重複する未確定アドレスがない場合(ステップS207:NO)、アドレス設定部115は、未確定アドレスを示すメッセージを他のノードへ送信したか否かを判断する(ステップS211)。未確定アドレスを示すメッセージを他のノードへ送信した場合(ステップS211:YES)、アドレス設定部115は、有効アドレスを設定した旨のメッセージを受信したか否かを判断する(ステップS213)。有効アドレスを設定した旨のメッセージを受信していない場合(ステップS213:NO)、アドレス設定部115は、重複するアドレスがある旨のNAメッセージを送信する(ステップS209)。
有効アドレスを設定した旨のメッセージを受信した場合(ステップS213:YES)、または未確定アドレスを示すメッセージを他のノードへ送信していない場合(ステップS211:NO)、アドレス設定部115は、返信処理を終了する。
本実施形態によれば、ノード11は、ノード12へ未確定アドレスを示すメッセージを送信してから(ステップS211:YES)、有効アドレスがノード12に設定された旨のメッセージを受信するまで(ステップS213:YES)、重複するアドレスがある旨を示すNAメッセージを送信し続ける(ステップS209)。
このため、ノード12が未確定アドレスを受信してから有効アドレスとして設定する間、他のノードに未確定アドレスと重複する有効アドレスが設定されることはなく、通信システムの信頼性が向上する。
なお、未確定アドレスの受信から設定までの時間はある程度予測可能である。このため、設定した旨のメッセージの送受信をしなくとも、未確定アドレスを示すメールを送信後は、ノード11が、その予測される時間の間NAメッセージを送信し続ける構成とすることもできる。
(第4実施形態)
本発明の第4実施形態について説明する。本発明の通信装置はステートフルなアドレス自動生成のために使用することもできる。本実施形態は、ノード11をDHCPサーバとして使用するものである。
本実施形態の通信システムの構成は、ノード11がDHCPサーバ機能を有し、ノード12〜14がDHCPクライアント機能を有する以外は、第1実施形態にかかる通信システム1と同様である。
DHCPサーバ(11)は、ステップS10においてDAD処理の代わりにGratuitous ARPの送信によりIPアドレスの重複のないことを確認し、クライアントの数の分、IPアドレス(未確定アドレス)をプールする。DHCPクライアント(12〜14)は、DHCPサーバにIPアドレスの取得を要求し、DHCPサーバは、要求に応じてプールしたIPアドレスを一定期間リースする。
図26および図27を参照して本実施形態のノード11の動作について説明する。
本実施形態のノード11の動作は、返信処理においてステップS203〜S209を実行せず、アドレス設定処理においてステップS301の代わりにステップS311を実行する以外は、第1実施形態のノード11と同様である。
図26は、本実施形態のノード11の実行する返信処理を示したフローチャートである。同図を参照すると、NSメッセージを受信した場合(ステップS201:YES)、アドレス設定部115は、メッセージが重複アドレス確認のためのメッセージであるか否かの判断(ステップS203)を行わず、ステップS251を実行する。
図27は、本実施形態のノード11の実行するアドレス設定処理を示したフローチャートである。同図を参照すると、アドレス設定部115は、未確定アドレスが所定数に達したか否かを判断する(ステップS311)。未確定アドレスが所定数に達した場合(ステップS311:YES)、アドレス設定部115は、ステップS303を実行する。未確定アドレスが所定数に達していない場合(ステップS311:NO)、アドレス設定部115は、ステップS305を実行する。
例えば、未確定アドレスの数がネットワークN1におけるノード(11〜14)の数に達した場合(ステップS311:YES)、DHCPサーバとして機能する準備が整ったので、ノード11は、IPアドレスのリースを開始する(ステップS309)。
図28を参照して本実施形態のノード12〜14の動作について説明する。
本実施形態のノード12〜14の動作は、図16で示した返信処理においてステップT307およびT309を実行しない以外は、第1実施形態のノード12〜14と同様である。
図28は、本実施形態のノード12の実行するアドレス設定処理を示したフローチャートである。同図を参照すると、未確定アドレスを示すメッセージを所定期間受信しなかった場合でも、アドレス設定部123は、Gratuitous ARPの送信による重複アドレスの有無の判断(ステップT307およびステップT309)を行わず、アドレス設定処理を終了する。
ノード13および14の動作はノード12と同様である。
このように、ノード11は、事前に重複アドレスがないことが確認されたIPアドレスをリースするので、ノード12〜14は、重複アドレスのないことの確認を行うことなく、直ちに有効アドレスを設定することができる。ノード11は、ノード12〜14が重複アドレスのないことの確認を行わないので、NSメッセージが重複アドレス確認のためのものであるか否かの判断(ステップS203)を行わなくてよい。よって、本実施形態の通信システムにおける各ノードは、有効アドレス設定までの時間が短縮できる。
なお、本実施形態のノード11〜14の他にDHCPサーバを設け、ノード11〜14をDHCPクライアントとして使用することもできる。
また、IPアドレスとドメイン名とを対応付けて記憶するDNSサーバ、DNSサーバと名前解決を行うWebサーバ、および、これらのクライアントに上述した実施形態の通信装置を適用することもできる。
以上、実施形態を参照して本発明を説明したが、本発明は実施形態に限定されるものではない。クレームに定義された本発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2008年2月19日に出願された日本出願特願2008−037772を基礎として優先権の利益を主張するものであり、その開示の全てを引用によってここに取り込む。

Claims (13)

  1. ネットワークに接続された通信装置が通信において送信元に指定する有効アドレスを決定するアドレス決定装置であって、
    仮アドレスを選択し、前記ネットワーク上で問い合わせを行うことにより、前記ネットワークにおける該仮アドレスと重複する有効アドレスの有無を判断する重複有効アドレス判断手段と、
    前記重複有効アドレス判断手段により前記ネットワークにおいて前記仮アドレスと重複する有効アドレスがないと判断された場合に、該仮アドレスを未確定アドレスとして記憶しておく記憶手段と、
    前記通信装置が送信元のアドレスを指定する通信を開始する場合、前記記憶手段に記憶された前記未確定アドレスを該通信装置の送信元として指定される有効アドレスに決定するアドレス決定手段と、
    を有するアドレス決定装置。
  2. 前記通信装置は前記アドレス決定装置自身である、請求項1に記載のアドレス決定装置。
  3. 前記アドレス決定手段により決定される前記有効アドレスはIPアドレスである、請求項2に記載のアドレス決定装置。
  4. 前記アドレス決定手段により前記アドレス決定装置の送信元として指定される有効アドレスが決定され、且つ、前記ネットワークにおける他の装置から該アドレス決定装置のリンク層アドレスを要求するメッセージを受信した場合、該アドレス決定装置のリンク層アドレスを示すメッセージを該他の装置へ送信するリンク層アドレス送信手段を更に有する、請求項3に記載のアドレス決定装置。
  5. 前記他の装置が選択した仮アドレスと重複する有効アドレスの有無を問い合わせる重複確認メッセージを前記他の装置から受信した場合、該重複確認メッセージの示す該仮アドレスと前記記憶手段に記憶された前記未確定アドレスとが重複するか否かを判断する重複未確定アドレス判断手段と、
    前記重複未確定アドレス判断手段により前記重複確認メッセージの示す前記仮アドレスと前記記憶手段に記憶された前記未確定アドレスとが重複すると判断された場合に、前記ネットワークにおいて該重複確認メッセージの示す仮アドレスと重複する有効アドレスがある旨を示すメッセージを送信する重複メッセージ送信手段と、
    を更に有する請求項1乃至4のいずれか1項に記載のアドレス決定装置。
  6. 前記通信装置は、前記ネットワークを通じて前記アドレス決定装置と接続される他の通信装置である、請求項1に記載のアドレス決定装置。
  7. 前記通信装置から有効アドレスを要求するメッセージを受信した場合に、前記アドレス決定手段により決定された前記有効アドレスを示すアドレス伝達メッセージを該通信装置に送信するアドレス送信手段を更に有する、請求項6に記載のアドレス決定装置。
  8. 前記ネットワークにおける前記通信装置が選択した仮アドレスと重複する有効アドレスの有無を問い合わせる重複確認メッセージを前記通信装置から受信した場合、該重複確認メッセージの示す該仮アドレスと前記記憶手段に記憶された前記未確定アドレスとが重複するか否かを判断する重複未確定アドレス判断手段と、
    前記重複未確定アドレス判断手段により前記重複確認メッセージの示す前記仮アドレスと前記記憶手段に記憶された前記未確定アドレスとが重複すると判断された場合に、前記ネットワークにおいて該重複確認メッセージの示す仮アドレスと重複する有効アドレスがある旨を示すメッセージを送信する第1の重複メッセージ送信手段と、
    前記重複確認メッセージの示す前記仮アドレスと前記アドレス伝達メッセージの示す前記アドレスとが重複する場合に、前記アドレス送信手段により前記アドレス伝達メッセージが送信されてから前記通信装置に有効アドレスを設定した旨を示すメッセージを受信するまで前記ネットワークにおいて該重複確認メッセージの示す前記仮アドレスと重複する有効アドレスがある旨を示すメッセージを送信する第2の重複メッセージ送信手段と、
    を更に有する請求項7に記載のアドレス決定装置。
  9. 前記アドレス決定装置はDHCPサーバ又はDHCPクライアントである、請求項1乃至8のいずれか1項に記載のアドレス決定装置。
  10. 前記アドレス決定装置はWebシステムにおけるサーバ又はクライアントである、請求項1乃至8のいずれか1項に記載のアドレス決定装置。
  11. ネットワークに接続された通信装置と、該通信装置が送信元に指定する有効アドレスを決定するアドレス決定装置と、を有し、
    前記アドレス決定装置は、仮アドレスを生成し、前記ネットワークにおける該仮アドレスと重複する有効アドレスの有無を判断し、該仮アドレスと重複する有効アドレスがないと判断された場合に、該仮アドレスを未確定アドレスとして記憶手段に記憶し、
    前記通信装置は、送信元のアドレスを指定する通信を開始する場合、前記アドレス決定装置へ有効アドレスを要求するメッセージを送信し、
    前記アドレス決定装置は、前記第2の通信装置から有効アドレスを要求するメッセージを受信した場合に、前記記憶手段から読み出した前記未確定アドレスを前記通信装置に設定する有効アドレスとして決定し、該有効アドレスを示すアドレス伝達メッセージを該通信装置に送信し、
    前記通信装置は、前記アドレス決定装置から前記アドレス伝達メッセージを受信し、該アドレス伝達メッセージの示す前記有効アドレスを該通信装置の送信元として指定される有効アドレスに設定する、通信システム。
  12. ネットワークに接続された通信装置が通信において送信元に指定する有効アドレスを決定するアドレス決定方法であって、
    仮アドレスを生成し、前記ネットワーク上で問い合わせを行うことにより、前記ネットワークにおける該仮アドレスと重複する有効アドレスの有無を判断し、
    前記ネットワークにおいて前記仮アドレスと重複する有効アドレスがないと判断し場合に、該仮アドレスを未確定アドレスとして記憶手段に記憶しておき、
    前記通信装置が送信元のアドレスを指定する通信を開始する場合、前記記憶手段に記憶された前記未確定アドレスを該通信装置の送信元として指定される有効アドレスに決定する、アドレス決定方法。
  13. ネットワークに接続された通信装置が通信において送信元に指定する有効アドレスを決定する処理をコンピュータに実行させるためのプログラムであって、
    仮アドレスを生成し、前記ネットワーク上で問い合わせを行うことにより、前記ネットワークにおける該仮アドレスと重複する有効アドレスの有無を判断する重複アドレス判別手順、
    前記重複アドレス判別手順により前記ネットワークにおいて前記仮アドレスと重複する有効アドレスがないと判断した場合に、該仮アドレスを未確定アドレスとして記憶手段に記憶する手順、及び
    前記通信装置が送信元のアドレスを指定する通信を開始する場合、前記記憶手段に記憶された前記未確定アドレスを該通信装置の送信元として指定される有効アドレスに決定するアドレス決定手順、
    をコンピュータに実行させるためのプログラム。
JP2009554269A 2008-02-19 2009-02-06 アドレス決定装置、通信システム、アドレス決定方法及びプログラム Expired - Fee Related JP5392097B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009554269A JP5392097B2 (ja) 2008-02-19 2009-02-06 アドレス決定装置、通信システム、アドレス決定方法及びプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008037772 2008-02-19
JP2008037772 2008-02-19
JP2009554269A JP5392097B2 (ja) 2008-02-19 2009-02-06 アドレス決定装置、通信システム、アドレス決定方法及びプログラム
PCT/JP2009/052018 WO2009104482A1 (ja) 2008-02-19 2009-02-06 アドレス決定装置、通信システム、アドレス決定方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2009104482A1 true JPWO2009104482A1 (ja) 2011-06-23
JP5392097B2 JP5392097B2 (ja) 2014-01-22

Family

ID=40985366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009554269A Expired - Fee Related JP5392097B2 (ja) 2008-02-19 2009-02-06 アドレス決定装置、通信システム、アドレス決定方法及びプログラム

Country Status (3)

Country Link
US (1) US9497067B2 (ja)
JP (1) JP5392097B2 (ja)
WO (1) WO2009104482A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8224900B2 (en) * 2009-02-09 2012-07-17 Novell, Inc. Network-aware communications
JP7109225B2 (ja) * 2018-03-28 2022-07-29 三菱電機エンジニアリング株式会社 通信システム
US10992637B2 (en) 2018-07-31 2021-04-27 Juniper Networks, Inc. Detecting hardware address conflicts in computer networks
US11165744B2 (en) 2018-12-27 2021-11-02 Juniper Networks, Inc. Faster duplicate address detection for ranges of link local addresses
US10931628B2 (en) 2018-12-27 2021-02-23 Juniper Networks, Inc. Duplicate address detection for global IP address or range of link local IP addresses
US10965637B1 (en) * 2019-04-03 2021-03-30 Juniper Networks, Inc. Duplicate address detection for ranges of global IP addresses

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724510A (en) * 1996-09-06 1998-03-03 Fluke Corporation Method of configuring a valid IP address and detecting duplicate IP addresses in a local area network
JP2000316016A (ja) * 1999-04-30 2000-11-14 Hitachi Cable Ltd Dhcpサーバ
JP2000316002A (ja) * 1999-04-30 2000-11-14 Hitachi Cable Ltd 動的ホストコンフィグレーションサーバ及び動的ホストコンフィグレーション方法
JP2001202344A (ja) 2000-01-19 2001-07-27 Hitachi Ltd データ統合方法および分散制御システム
US6930988B2 (en) * 2002-10-28 2005-08-16 Nokia Corporation Method and system for fast IP connectivity in a mobile network
JP2006025389A (ja) * 2004-06-09 2006-01-26 Ricoh Co Ltd 通信機器、ipアドレス設定方法
JP4728792B2 (ja) 2005-12-12 2011-07-20 パナソニック株式会社 Ip通信装置およびこれを備えたip通信システムならびにip通信装置のipアドレス設定方法
WO2009089643A1 (en) * 2008-01-14 2009-07-23 Lucent Technologies Inc. Method for detecting a duplicate address, mobile station, network element and communication system

Also Published As

Publication number Publication date
US9497067B2 (en) 2016-11-15
US20110004673A1 (en) 2011-01-06
JP5392097B2 (ja) 2014-01-22
WO2009104482A1 (ja) 2009-08-27

Similar Documents

Publication Publication Date Title
US7414996B2 (en) Address autoconfiguration in ad hoc networks
JP4728792B2 (ja) Ip通信装置およびこれを備えたip通信システムならびにip通信装置のipアドレス設定方法
JP5392097B2 (ja) アドレス決定装置、通信システム、アドレス決定方法及びプログラム
US9184930B2 (en) Detection and support of a dual-stack capable host
US20120324063A1 (en) Method, network device, and system for automatically configuring network device in ipv6 network
US6424654B1 (en) Network system and DHCP server selection method
US8054839B2 (en) Apparatus and method of processing stateful address auto-configuration protocol in IPv6 network
WO2009117963A1 (zh) 地址配置方法、装置和系统
EP2888863B1 (en) Method and apparatus for configuring dhcp client
CN113660357B (zh) 一种IPv6双栈系统自动获取IP地址的方法和装置
US8291111B1 (en) Responding to a DHCPLEASEQUERY message
US20060067350A1 (en) Method of assigning network identifiers by means of interface identifiers
WO2013186969A1 (ja) 通信情報検出装置及び通信情報検出方法
WO2018006684A1 (zh) 报文处理方法、装置及路由器
WO2016177185A1 (zh) 媒体访问控制mac地址的处理方法及装置
CN108632198B (zh) 一种设备管理方法及装置
JP2005210554A (ja) Dhcp代理サーバ
US20080301229A1 (en) Client device, communication method and computer readable medium
JP2006211347A (ja) 無線通信システム
JP4893041B2 (ja) Ipアドレスの割り当て方法
Fan IPv6 stateless address autoconfiguration in ad hoc networks
KR100687746B1 (ko) 주소 충돌 방지 장치 및 방법
JP2009231986A (ja) 通信装置
US20060143304A1 (en) Method of and system for establishing a communication address of a device
CN117812045A (zh) Ip地址分配方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130409

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130822

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130917

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130930

R150 Certificate of patent or registration of utility model

Ref document number: 5392097

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees