以下、本発明の実施形態に係る通信システム1を、図面を参照して説明する。
通信システム1は、図1に示すように、第1の通信装置としての通信装置10と、通信装置10と通信を行う第2の(他の)通信装置としての通信装置20と、通信装置10および通信装置20との通信を媒介(中継)するアクセスポイント30と、を備えている。なお、通信システム1においては、通信装置10は、複数台であっても良いが、本実施形態では、1台として説明を行う。
通信システム1は、通信装置10と通信装置20との間で、アクセスポイント30を介した通信を確立するシステムである。なお、通信装置10および通信装置20は、例えば、パーソナルコンピュータや携帯端末装置(スマートフォン等)である。
通信装置10は、ハードウェア構成として、制御部100と、Wifi通信部107と、ハードウェアアドレス記憶部108と、ARPテーブル記憶部109と、バスライン110と、を備えている。
制御部100は、バスライン110を介して受け取った各種情報を利用して各部107〜109の制御を行う。
制御部100は、CPU(Central Processing Unit)、ROM(Read Only Memory)の他、RAM(Random Access Memory)101等を備えている。
RAM101は、通信装置20から割り当てられたIPアドレス、およびアクセスポイント30から割り当てられたIPアドレス等を記憶する。なお、ROM(不図示)には、通信装置10に予め付与されているハードウェアアドレス(MACアドレス)が記憶されている。
ここで、IPアドレスは、インターネットやイントラネットなどのIPネットワークに接続された通信装置に割り当てられた論理アドレスである。ハードウェアアドレスは、通信装置(ハードウェア)に一意に割り当てられた物理アドレスである。
また、制御部100は、CPUがROMに格納したプログラムを実行することにより、DHCPクライアント部102、ハードウェアアドレス取得部103、ARPテーブル取得部104、アドホック通信部105、インフラストラクチャ通信部106の機能を実現する。
DHCPクライアント部102は、通信装置20またはアクセスポイント30に対して、IPアドレスの割り当てを要求する。なお、以後の説明においては、アドホックモード通信によって通信装置20から割り当てられるIPアドレスを「第1のIPアドレス」と称し、インフラストラクチャモード通信によってアクセスポイント30から割り当てられるIPアドレスを「第2のIPアドレス」と称する。
なお、通信装置10,20は、第2のIPアドレスがアクセスポイント30から割り当てられることで、アクセスポイント30を介したインフラストラクチャモード通信が可能となる。
ハードウェアアドレス取得部103は、Wifi通信部107を介したアドホックモードによる直接通信(一対一通信)が通信装置20と確立された場合、通信装置20のハードウェアアドレスを取得し、ハードウェアアドレス記憶部108に記憶する。このように、ハードウェアアドレス取得部103は、通信装置20との直接通信が確立された場合にハードウェアアドレスを取得するので、通信装置20から間違いなくハードウェアアドレスを取得することができる。
ARPテーブル取得部104は、アクセスポイント30内に記録されるARP(Address Resolution Protocol)テーブルに記憶された内容を、Wifi通信部107を介して取得し、ARPテーブル記憶部109に記憶する。
アドホック通信部105は、Wifi通信部107を介して、通信装置20とアドホックモードによる直接通信を確立する。
インフラストラクチャ通信部106は、Wifi通信部107を介して、アクセスポイント30とインフラストラクチャモードによる通信を確立する。
更に、インフラストラクチャ通信部106は、ハードウェアアドレス記憶部108に記憶されたハードウェアアドレスに対応する通信装置20の第2のIPアドレスを、ARPテーブル記憶部109に記憶されたARPテーブル内容から特定する。そして、インフラストラクチャ通信部106は、特定された通信装置20の第2のIPアドレスを用いて、アクセスポイント30を介した通信を、通信装置20と確立する。
Wifi通信部107は、通信装置20またはアクセスポイント30と、Wifi(Wireless fidelity)規格による無線通信を行う。Wifi通信部107は、通信装置20と直接通信を確立するアドホックモードと、アクセスポイント30を中継器とした通信を確立するインフラストラクチャモードと、の両モードでの通信が可能である。
ハードウェアアドレス記憶部108は、フラッシュメモリで構成され、ハードウェアアドレス取得部103により取得した通信装置20のハードウェアアドレスを記憶する。
ARPテーブル記憶部109は、フラッシュメモリで構成され、ARPテーブル取得部104により取得したARPテーブルの内容を記憶する。
バスライン110は、制御部100と各部107〜109とを相互に接続する。
通信装置20は、ハードウェア構成として、制御部200と、Wifi通信部206と、バスライン207と、を備えている。
制御部200は、バスライン207を介してWifi通信部206を制御するものであり、CPU、ROMの他、RAM201等を備えている。
RAM201は、アクセスポイント30から割り当てられた第2のIPアドレス等を記憶する。なお、ROM(不図示)には、通信装置20に予め付与されているハードウェアアドレスが記憶されている。
また、制御部200は、CPUがROMに格納したプログラムを実行することにより、DHCPサーバ部202、DHCPクライアント部203、アドホック通信部204、インフラストラクチャ通信部205の機能を実現する。
DHCPサーバ部202は、アドホックモードで直接通信を行う場合に、通信装置10のDHCPクライアント部102からの要求に応じて、通信装置10に、第1のIPアドレスを割り当てる。
DHCPクライアント部203は、インフラストラクチャモードで通信を行う場合に、アクセスポイント30に対して、第2のIPアドレスの割り当てを要求する。
アドホック通信部204は、Wifi通信部206を介して、通信装置10とアドホックモードによる直接通信を確立する。
インフラストラクチャ通信部205は、Wifi通信部206を介して、アクセスポイント30とインフラストラクチャモードによる通信を確立する。
Wifi通信部206は、通信装置10またはアクセスポイント30と、Wifi規格による無線通信を行う。Wifi通信部206は、通信装置10と直接通信を確立するアドホックモードと、アクセスポイント30を中継器とした通信を確立するインフラストラクチャモードと、の両モードでの通信が可能である。
バスライン207は、制御部200とWifi通信部206とを相互に接続する。
アクセスポイント30は、インターネットやイントラネットに接続され、通信装置10および通信装置20を、インターネットやイントラネットに接続させると共に、通信装置10と通信装置20との通信の中継を行う機器である。
アクセスポイント30は、ハードウェア構成として、制御部300と、Wifi通信部305と、バスライン306と、を備えている。
制御部300は、バスライン306を介してWifi通信部305を制御するものであり、CPU、ROMの他、RAM301等を備えている。
RAM301は、通信装置10および通信装置20から送信された各種情報を中継する際、その各種情報を一時的に記憶する。なお、ROM(不図示)には、アクセスポイント30に予め付与されているハードウェアアドレスが記憶されている。
DHCPサーバ部302は、インフラストラクチャモードで通信を行う場合に、通信装置10のDHCPクライアント部102および通信装置20のDHCPクライアント部203からの要求に応じて、第2のIPアドレスを割り当てる。
なお、DHCPサーバ部302が、通信装置10,20へ割り当てる第2のIPアドレスは、一時的に割り当てられるものであり、予め定められた期間が経過する度に定期的に変更される。
ARPテーブル記録部303は、DHCPサーバ部302により通信装置10,20へ割り当てた第2のIPアドレスと、通信装置10,20のハードウェアアドレスとを対応付けたアドレス組であるARPテーブルを記録する。
インフラストラクチャ通信部304は、Wifi通信部305を介して、通信装置10および通信装置20とインフラストラクチャモードによる通信を確立する。
Wifi通信部305は、通信装置10および通信装置20と、Wifi規格による無線通信を行う。Wifi通信部305は、通信装置10および通信装置20の両方との通信を確立するインフラストラクチャモードでの通信を行う。
バスライン306は、制御部300とWifi通信部305とを相互に接続する。
次に、通信装置20へ割り当てられた第2のIPアドレスを、通信装置10が特定する動作を、図2および3を参照して説明する。
なお、図2および図3では、通信装置10と、通信装置20と、アクセスポイント30との各動作を示している。
図2に示すように、通信装置20の制御部200(アドホック通信部204)は、電源が投入されると、ユーザによる操作により、Wifi通信部206の初期化(アドホックモードへの設定)を行う(ステップS1)。なお、制御部200(アドホック通信部204)は、ステップS1で、更に、DHCPサーバ部202の起動も行う。
その後、通信装置20の制御部200(アドホック通信部204)は、Wifi接続待ち受け状態へ遷移する(ステップS2)。
通信装置10の制御部100(アドホック通信部105)は、電源が投入されると、ユーザによる設定により、Wifi通信部107の初期化(アドホックモードへの設定)を行う(ステップS61)。なお、制御部100は、ステップS61で、DHCPクライアント部102の起動も行う。
その後、通信装置10の制御部100(DHCPクライアント部102)は、第1のIPアドレスの割り当て要求を自機のハードウェアアドレスと共に、Wifi通信部107を介して通信装置20へ送信する(ステップS62)。
第1のIPアドレスの割り当て要求およびハードウェアアドレスを、Wifi通信部206を介して受信すると、通信装置20の制御部200(DHCPサーバ部202)は、割り当てる第1のIPアドレスを決定する(ステップS3)。
そして、通信装置20の制御部200(DHCPサーバ部202)は、受信したハードウェアアドレスを用いて、第1のIPアドレスと、自機のハードウェアアドレスと、自機のIPアドレスとを、Wifi通信部206を介して通信装置10へ送信する(ステップS4)。
なお、通信装置20がステップS4で送信した自機のIPアドレスは、予め設定されている。
第1のIPアドレスと、通信装置20のハードウェアアドレスおよびIPアドレスとを、Wifi通信部107を介して受信すると、通信装置10の制御部100(ハードウェアアドレス取得部103)は、そのハードウェアアドレスをハードウェアアドレス記憶部108に記憶する(ステップS63)。
その後、通信装置10の制御部100(アドホック通信部105)は、ステップS63で受信した通信装置20のIPアドレスおよびハードウェアアドレスを用いて、Wifi通信の初期化信号(インフラストラクチャモードへの切り換え信号)を、Wifi通信部107を介して通信装置20へ送信する(ステップS64)。
その後、通信装置10の制御部100(インフラストラクチャ通信部106)は、Wifi通信部107の初期化(インフラストラクチャモードへの切り換え設定)を行う(ステップS65)。
上述した動作によって、通信装置10は、通信装置20へ割り当てられた第2のIPアドレスの特定に使用する、通信装置20のハードウェアアドレスを記憶する。
なお、通信装置20の制御部200(インフラストラクチャ通信部205)は、Wifi通信の初期化信号を、Wifi通信部206を介して受信すると、Wifi通信部206の初期化(インフラストラクチャモードへの切り換え設定)を行う(ステップS5)。また、制御部200は、ステップS5で、DHCPクライアント部203の立ち上げも行う。
また、アクセスポイント30の制御部300(インフラストラクチャ通信部304)は、電源が投入されると、DHCPサーバ部302を起動し(ステップS31)、インフラストラクチャモードによるWifi接続待ち受け状態へ遷移する(ステップS32)。
ステップS5,S32,S65の実行後、各制御部100,200,300は、図3に示す動作へ移行する。
図3に示すように、通信装置10の制御部100(DHCPクライアント部102)は、第2のIPアドレスの割り当て要求を自機のハードウェアアドレスと共に、Wifi通信部107を介してアクセスポイント30へ送信する(ステップS66)。
また、通信装置20の制御部200(DHCPクライアント部203)は、第2のIPアドレスの割り当て要求を自機のハードウェアアドレスと共に、Wifi通信部206を介してアクセスポイント30へ送信する(ステップS6)。
通信装置10から送信された第2のIPアドレスの割り当て要求およびハードウェアアドレスを、Wifi通信部305を介して受信すると、アクセスポイント30の制御部300(DHCPサーバ部302)は、第2のIPアドレスの候補を決定し、重複がないかの確認の後、割り当てる第2のIPアドレスを決定する(ステップS33)。
そして、アクセスポイント30の制御部300(インフラストラクチャ通信部304)は、受信したハードウェアアドレスを用いて、第2のIPアドレスと、自機のハードウェアアドレスと、自機のIPアドレスとを、Wifi通信部305を介して通信装置10へ送信する(ステップS34)。
同様に、通信装置20から送信された第2のIPアドレスの割り当て要求およびハードウェアアドレスを、Wifi通信部305を介して受信すると、アクセスポイント30の制御部300(DHCPサーバ部302)は、割り当てる第2のIPアドレスを決定する(ステップS35)。
そして、アクセスポイント30の制御部300(インフラストラクチャ通信部304)は、受信したハードウェアアドレスを用いて、第2のIPアドレスと、自機のハードウェアアドレスと、自機のIPアドレスとを、Wifi通信部305を介して通信装置20へ送信する(ステップS36)。
なお、アクセスポイント30がステップS34,S36で送信した自機のIPアドレスは、予め設定されている。
第2のIPアドレスと、アクセスポイント30のハードウェアアドレスおよびIPアドレスとを、Wifi通信部107を介して受信すると、通信装置10の制御部100(インフラストラクチャ通信部106)は、受信した3つのアドレスを、RAM101に記憶する。そして、制御部100(インフラストラクチャ通信部106)は、記憶したアクセスポイント30のIPアドレスおよびハードウェアアドレスを用いて、自機への第2のIPアドレスの設定完了信号を、自機の第2のIPアドレスおよびハードウェアアドレスと共に、Wifi通信部107を介してアクセスポイント30へ送信する(ステップS67)。
同様に、第2のIPアドレスと、アクセスポイント30のハードウェアアドレスおよびIPアドレスとを、Wifi通信部206を介して受信すると、通信装置20の制御部200(インフラストラクチャ通信部205)は、受信した3つのアドレスを、RAM201に記憶する。そして、制御部200(インフラストラクチャ通信部205)は、記憶したアクセスポイント30のIPアドレスおよびハードウェアアドレスを用いて、自機への第2のIPアドレスの設定完了信号を、自機の第2のIPアドレスおよびハードウェアアドレスと共に、Wifi通信部206を介してアクセスポイント30へ送信する(ステップS7)。
なお、通信装置10から送信された設定完了信号、第2のIPアドレスおよびハードウェアアドレスを、Wifi通信部305を介して受信すると、アクセスポイント30の制御部300(インフラストラクチャ通信部304)は、ARPテーブル記録部303のARPテーブルに、受信した第2のIPアドレスとハードウェアアドレスとを対応付けて記録する(ステップS37)。
同様に、通信装置20から送信された設定完了信号、第2のIPアドレスおよびハードウェアアドレスを、Wifi通信部305を介して受信すると、アクセスポイント30の制御部300(インフラストラクチャ通信部304)は、ARPテーブル記録部303のARPテーブルに、受信した第2のIPアドレスとハードウェアアドレスとを対応付けて記録する(ステップS38)。
ここで、ステップS38が完了した時点での、ARPテーブル記録部303に記録されたARPテーブルの内容を、図6を参照して説明する。
図6に示すように、ARPテーブルは、アクセスポイント30が割り当てた第2のIPアドレスと、そのIPアドレスが割り当てられた通信装置のハードウェアアドレスとを対応付けた単純な構成のテーブルである。
記号「◎」で示される第2のIPアドレスおよびハードウェアアドレスが、通信装置10に該当することを示している。具体的には、通信装置10に割り当てられた第2のIPアドレスは、「192.168.1.1」であり、通信装置10のハードウェアアドレスは、「02−A8−9C−DF−G8−FF」であることを示している。
また、記号「※」で示される第2のIPアドレスおよびハードウェアアドレスが、通信装置20に該当することを示している。具体的には、通信装置20に割り当てられた第2のIPアドレスは、「192.168.1.2」であり、通信装置20のハードウェアアドレスは、「00−07−E9−2D−F5−BF」であることを示している。
図3の説明に戻る。通信装置10の制御部100(ARPテーブル取得部104)は、ステップS67の完了後、ステップS67でRAM101に記憶したアクセスポイント30のIPアドレスおよびハードウェアアドレスを用いて、ARPテーブルの内容の送信を要求する送信要求信号を、自機の第2のIPアドレスおよびハードウェアアドレスと共に、Wifi通信部107を介してアクセスポイント30へ送信する(ステップS68)。
ARPテーブル内容の送信要求信号を、第2のIPアドレスおよびハードウェアアドレスと共に、Wifi通信部305を介して受信すると、アクセスポイント30の制御部300(インフラストラクチャ通信部304)は、受信した第2のIPアドレスおよびハードウェアアドレスを用いて、ARPテーブル記録部303に記録されたARPテーブルの内容を、Wifi通信部305を介して通信装置10へ送信する(ステップS39)。
ARPテーブルの内容を、Wifi通信部107を介して受信すると、通信装置10の制御部100(ARPテーブル取得部104)は、そのARPテーブルの内容を、ARPテーブル記憶部109に記憶する(ステップS69)。
その後、通信装置10の制御部100(インフラストラクチャ通信部106)は、ARPテーブル記憶部109に記憶したARPテーブルの内容から、ハードウェアアドレス記憶部108に記憶されたハードウェアアドレスと一致するものを検索する(ステップS70)。
そして、通信装置10の制御部100(インフラストラクチャ通信部106)は、一致するハードウェアアドレスが検索できた場合には(ステップS70:Yes)、そのハードウェアアドレスに対応付けられている第2のIPアドレスを、ARPテーブルから特定する(ステップS71)。これにより、制御部100(インフラストラクチャ通信部106)は、通信装置20に割り当てられた第2のIPアドレスを特定することができる。
一方、例えば、ARPテーブルへのアドレス組の記録の遅れにより、ステップS70で、ARPテーブル記憶部109に記憶したARPテーブルの内容から、ハードウェアアドレス記憶部108に記憶されたハードウェアアドレスと一致するものが検索されない場合には(ステップS70:No)、通信装置10の制御部100(インフラストラクチャ通信部106)は、ステップS68およびS69を再び実行した後、再度、ステップS70で、ハードウェアアドレスの検索を実行する。
ステップS68〜S70の再度の実行は、ステップS70で、通信装置10の制御部100(インフラストラクチャ通信部106)が、一致するハードウェアアドレスを検索するまで、予め決定された期間中、繰り返し実行される。このS68〜S70の再実行により、制御部100(インフラストラクチャ通信部106)は、通信装置20に割り当てられた第2のIPアドレスを特定するのに必要となる通信装置20のハードウェアアドレスを検索することができる。よって、制御部100(インフラストラクチャ通信部106)は、ステップS71で、通信装置20に割り当てられた第2のIPアドレスを特定することができる。
なお、通信装置10の制御部100(インフラストラクチャ通信部106)は、予め決定された期間中に、ARPテーブルの内容から、ハードウェアアドレス記憶部108に記憶されたハードウェアアドレスと一致するものが検索されない場合は、エラーメッセージを表示画面に表示して、ステップS71以降の処理を中止する。
ARPテーブルの内容から、ハードウェアアドレス記憶部108に記憶されたハードウェアアドレスと一致するものを検索し(ステップS70:Yes)、ステップS71を実行すると、通信装置10の制御部100(インフラストラクチャ通信部106)は、特定した第2のIPアドレスおよびハードウェアアドレスを用いて、自機の第2のIPアドレスおよびハードウェアアドレスを含む通信確立要求信号を、Wifi通信部107を介して通信装置20へ送信する(ステップS72)。
アクセスポイント30の制御部300(インフラストラクチャ通信部304)は、ステップS72で通信装置10から送信された通信確立要求信号を中継し、通信装置20へ送信する(ステップS40)。
通信装置10からの通信確立要求信号を、Wifi通信部206を介して受信すると、通信装置20の制御部200(インフラストラクチャ通信部205)は、受信した第2のIPアドレスおよびハードウェアアドレスをRAM201に記憶する。そして、制御部200(インフラストラクチャ通信部205)は、記憶した第2のIPアドレスおよびハードウェアアドレスを用いて、通信確立応答信号を、Wifi通信部206を介して通信装置10へ送信する(ステップS7)。
アクセスポイント30の制御部300(インフラストラクチャ通信部304)は、ステップS7で通信装置20から送信された通信確立応答信号を中継し、通信装置10へ送信する(ステップS41)。
通信確立応答信号を、Wifi通信部107を介して受信すると、通信装置10の制御部100(インフラストラクチャ通信部106)は、通信装置20とのアクセスポイント30を介した通信を確立する(ステップS73)。
上述した通り、通信装置10は、アクセスポイント30を介して通信装置20と通信する前に、通信装置20に直接接続してそのハードウェアアドレスを取得する。そして、アクセスポイント30を介して通信装置20と通信する場合には、取得したハードウェアアドレスを用いて、アクセスポイント30から取得した第2のIPアドレスとハードウェアアドレスとのアドレス組を記録したARPテーブルの内容から、通信装置20の第2のIPアドレスを特定する。この構成により、マルチキャスト送信やディスクリプタの解析を行うことなく、通信装置20の第2のIPアドレスを特定することができる。従って、マルチキャスト送信やディスクリプタの解析を行う装置と比較して、通信装置20の第2のIPアドレスの特定を容易に行うことができる。
また、上述の通り、マルチキャスト送信やディスクリプタの解析を行う装置と比較して、通信装置20の第2のIPアドレスの特定を容易に行うことができるので、処理能力が低いCPUであっても制御部100に利用することができる。
なお、ステップS8,S41,S73の実行後、各制御部100,200,300は、図4に示す動作へ移行する。
次に、通信装置10と通信装置20との間で、アクセスポイント30を介した通信が確立した後の、通信装置10と、通信装置20と、アクセスポイント30との各動作を、図4および図5を用いて説明する。なお、図4および図5も、図2および図3と同様、通信装置20、アクセスポイント30および通信装置10の各動作を示している。
通信装置10と通信装置20との間で、アクセスポイント30を介した通信が確立した後、通信装置20は、図4および図5中に「A」の枠組みで示す通り、割り当てられた第2のIPアドレスおよびハードウェアアドレスを定期的に通信装置10へ送信する。
同様に、通信装置10は、図4および図5中に「B」の枠組みで示す通り、割り当てられた第2のIPアドレスおよびハードウェアアドレスを定期的に通信装置20へ送信する。
この動作は、通信装置10および通信装置20に割り当てられた第2のIPアドレスが、アクセスポイント30により変更された場合にも実行される。この動作の詳細を説明する。
図4に示すように、通信装置20の制御部200(インフラストラクチャ通信部205)は、ステップS8の実行後、即ち、通信装置10との通信確立後、所定時間後となると、RAM201に記憶された自機の第2のIPアドレスおよびROM(不図示)に記憶されたハードウェアアドレスを、Wifi通信部206を介して通信装置10へパケット送信する(ステップS9)。
なお、所定時間は、制御部200内のカウンタメモリ(不図示)を用いて計測される。また、送信されるパケットのペイロードの内容は特に限定されない。
アクセスポイント30の制御部300(インフラストラクチャ通信部304)は、通信装置20から送信されたパケットを中継し、通信装置10へ送信する(ステップS42)。
パケットに含まれる第2のIPアドレスおよびハードウェアアドレスを、Wifi通信部107を介して受信すると、通信装置10の制御部100(インフラストラクチャ通信部106)は、以下に示す条件の下、受信した第2のIPアドレスを、ARPテーブル記憶部109に記憶されたARPテーブルのハードウェアアドレスに対応付けて記録(更新)する(ステップS74)。
具体的には、ステップS74では、通信装置10の制御部100(インフラストラクチャ通信部106)は、受信したハードウェアアドレスと、ハードウェアアドレス記憶部108に記憶した通信装置20のハードウェアアドレスとが、一致するか否かを判定する。そして、制御部100(インフラストラクチャ通信部106)は、ハードウェアアドレスが一致すると判定すると、受信した第2のIPアドレスは通信装置20に割り当てられたものと判定し、その第2のIPアドレスを、ARPテーブル記憶部109に記憶されたARPテーブルのハードウェアアドレスに対応付けて記憶(更新)する。
一方、ステップS74で、通信装置10の制御部100(インフラストラクチャ通信部106)は、受信したハードウェアアドレスと、ハードウェアアドレス記憶部108に記憶した通信装置20のハードウェアアドレスとが、一致しないと判定すると、受信した第2のIPアドレスおよびハードウェアアドレスを破棄する。
上述したステップS74で実行される判定は、後述するステップS78,S79,S82でも実行される。
ステップS74の実行後、通信装置10の制御部100(インフラストラクチャ通信部106)は、RAM101に記憶された自機の第2のIPアドレスおよびROM(不図示)に記憶されたハードウェアアドレスを、Wifi通信部107を介して通信装置20へパケット送信する(ステップS75)。
アクセスポイント30の制御部300(インフラストラクチャ通信部304)は、通信装置10から送信されたパケットを中継し、通信装置20へ送信する(ステップS43)。
パケットに含まれる第2のIPアドレスおよびハードウェアアドレスを、Wifi通信部206を介して受信すると、通信装置20の制御部200(インフラストラクチャ通信部205)は、以下に示す条件の下、受信した第2のIPアドレスを、既に記憶されているハードウェアアドレスに対応付けてRAM201に記憶する(ステップS10)。
具体的には、ステップS10では、通信装置20の制御部200(インフラストラクチャ通信部205)は、受信したハードウェアアドレスと、ステップS8でRAM201に記憶した通信装置10のハードウェアアドレスとが、一致するか否かを判定する。そして、制御部200(インフラストラクチャ通信部205)は、ハードウェアアドレスが一致すると判定すると、受信した第2のIPアドレスは通信装置10に割り当てられたものと判定し、その第2のIPアドレスを、既に記憶されているハードウェアアドレスに対応付けてRAM201に記憶する。
一方、ステップS10で、通信装置20の制御部200(インフラストラクチャ通信部205)は、受信したハードウェアアドレスと、ステップS8でRAM201に記憶した通信装置10のハードウェアアドレスとが、一致しないと判定すると、受信した第2のIPアドレスおよびハードウェアアドレスを破棄し、ステップS10での記憶を実行しない。
上述したステップS10で実行される判定は、後述するステップS11,S15,S16でも実行される。
ステップS34で通信装置10へ割り当ててから予め定められた期間が経過すると、アクセスポイント30の制御部300(DHCPサーバ部302)は、第2のIPアドレスを、第2のIPアドレスの変更命令を、変更させる第2のIPアドレスと共に、Wifi通信部305を介して通信装置10へ送信する(ステップS44)。
その後、アクセスポイント30の制御部300(インフラストラクチャ通信部304)は、ARPテーブル記録部303のARPテーブルの内容を更新する(ステップS45)。
変更命令および第2のIPアドレスを、Wifi通信部107を介して受信すると、通信装置10の制御部100(インフラストラクチャ通信部106)は、受信した第2のIPアドレスへ、RAM101に記憶された自機の第2のIPアドレスを変更する(ステップS76)。
その後、通信装置10の制御部100(インフラストラクチャ通信部106)は、ステップS73の実行後、即ち、通信装置20との通信確立後、所定時間後となると、RAM101に記憶された自機の第2のIPアドレスおよびROM(不図示)に記憶されたハードウェアアドレスを、Wifi通信部107を介して通信装置20へパケット送信する(ステップS77)。
アクセスポイント30の制御部300(インフラストラクチャ通信部304)は、通信装置10から送信されたパケットを中継し、通信装置20へ送信する(ステップS46)。
パケットに含まれる第2のIPアドレスおよびハードウェアアドレスを、Wifi通信部206を介して受信すると、通信装置20の制御部200(インフラストラクチャ通信部205)は、ステップS10で上述した判定の下、受信した第2のIPアドレスを、既に記憶されているハードウェアアドレスに対応付けてRAM201に記憶する(ステップS11)。
ステップS11での記憶が実行されると、通信装置20の制御部200(インフラストラクチャ通信部205)は、RAM201に記憶された自機の第2のIPアドレスおよびROM(不図示)に記憶されたハードウェアアドレスを、Wifi通信部206を介して通信装置10へパケット送信する(ステップS12)。
アクセスポイント30の制御部300(インフラストラクチャ通信部304)は、通信装置20から送信されたパケットを中継し、通信装置10へ送信する(ステップS47)。
パケットに含まれる第2のIPアドレスおよびハードウェアアドレスを、Wifi通信部107を介して受信すると、通信装置10の制御部100(インフラストラクチャ通信部106)は、ステップS74で上述した判定の下、受信した第2のIPアドレスを、ARPテーブル記憶部109に記憶されたARPテーブルのハードウェアアドレスに対応付けて記憶(更新)する(ステップS78)。
ステップS12,S47,S78の実行後、各制御部100,200,300は、図5に示す動作へ移行する。
図5に示すように、アクセスポイント30の制御部300(DHCPサーバ部302)は、第2のIPアドレスを、ステップS36で通信装置20に割り当ててから予め定められた期間が経過すると、第2のIPアドレスの変更命令を、変更させる第2のIPアドレスと共に、Wifi通信部305を介して通信装置20へ送信する(ステップS48)。
その後、アクセスポイント30の制御部300(インフラストラクチャ通信部304)は、ARPテーブル記録部303のARPテーブルの内容を更新する(ステップS49)。
変更命令および第2のIPアドレスを、Wifi通信部206を介して受信すると、通信装置20の制御部200(インフラストラクチャ通信部205)は、受信した第2のIPアドレスへ、RAM201に記憶された自機の第2のIPアドレスを変更する(ステップS13)。
その後、通信装置20の制御部200(インフラストラクチャ通信部205)は、以前に実行したステップS9から所定時間後となると、RAM201に記憶された自機の第2のIPアドレスおよびROM(不図示)に記憶されたハードウェアアドレスを、Wifi通信部206を介して通信装置10へパケット送信する(ステップS14)。
アクセスポイント30の制御部300(インフラストラクチャ通信部304)は、通信装置20から送信されたパケットを中継し、通信装置10へ送信する(ステップS50)。
パケットに含まれる第2のIPアドレスおよびハードウェアアドレスを、Wifi通信部107を介して受信すると、通信装置10の制御部100(インフラストラクチャ通信部106)は、ステップS74で上述した判定の下、受信した第2のIPアドレスを、ARPテーブル記憶部109に記憶されたARPテーブルのハードウェアアドレスに対応付けて記録(更新)する(ステップS79)。
ステップS79での記憶が実行されると、通信装置10の制御部100(インフラストラクチャ通信部106)は、RAM101に記憶された自機の第2のIPアドレスおよびROM(不図示)に記憶されたハードウェアアドレスを、Wifi通信部107を介して通信装置20へパケット送信する(ステップS80)。
アクセスポイント30の制御部300(インフラストラクチャ通信部304)は、通信装置10から送信されたパケットを中継し、通信装置20へ送信する(ステップS51)。
パケットに含まれる第2のIPアドレスおよびハードウェアアドレスを、Wifi通信部206を介して受信すると、通信装置20の制御部200(インフラストラクチャ通信部205)は、ステップS10で上述した判定の下、受信した第2のIPアドレスを、その第2のIPアドレスを、既に記憶されているハードウェアアドレスに対応付けてRAM201に記憶する(ステップS15)。
その後、通信装置10の制御部100(インフラストラクチャ通信部106)は、以前に実行したステップS77から所定時間後となると、RAM101に記憶された自機の第2のIPアドレスおよびROM(不図示)に記憶されたハードウェアアドレスを、Wifi通信部107を介して通信装置20へパケット送信する(ステップS81)。
アクセスポイント30の制御部300(インフラストラクチャ通信部304)は、通信装置10から送信されたパケットを中継し、通信装置20へ送信する(ステップS52)。
パケットに含まれる第2のIPアドレスおよびハードウェアアドレスを、Wifi通信部206を介して受信すると、通信装置20の制御部200(インフラストラクチャ通信部205)は、ステップS10で上述した判定の下、受信した第2のIPアドレスを、その第2のIPアドレスを、既に記憶されているハードウェアアドレスに対応付けてRAM201に記憶する(ステップS16)。
ステップS16での記憶が実行されると、通信装置20の制御部200(インフラストラクチャ通信部205)は、RAM201に記憶された自機の第2のIPアドレスおよびROM(不図示)に記憶されたハードウェアアドレスを、Wifi通信部206を介して通信装置10へパケット送信する(ステップS17)。
アクセスポイント30の制御部300(インフラストラクチャ通信部304)は、通信装置20から送信されたパケットを中継し、通信装置10へ送信する(ステップS53)。
パケットに含まれる第2のIPアドレスおよびハードウェアアドレスを、Wifi通信部107を介して受信すると、通信装置10の制御部100(インフラストラクチャ通信部106)は、ステップS74で上述した判定の下、受信した第2のIPアドレスを、ARPテーブル記憶部109に記憶されたARPテーブルのハードウェアアドレスに対応付けて記録(更新)する(ステップS82)。
ステップS82の実行後、通信装置10の制御部10はFへ戻る。また、ステップS17の実行後、通信装置20の制御部20はDへ戻る。更に、ステップS53の実行後、アクセスポイント30の制御部30はEへ戻る。これは、通信装置10,20がアクセスポイント30を介した通信を確立している期間中、繰り返し実行される。
上述した通り、通信装置10および通信装置20は、アクセスポイント30を介した通信が確立すると、その通信が確立されている期間中、自機に割り当てられた第2のIPアドレスおよびハードウェアアドレスを、通信相手へ定期的に反復して送信する。よって、アクセスポイント30から割り当てられる第2のIPアドレスが変更になった場合でも、通信装置10と通信装置20とは、アクセスポイント30を介した通信を確立し続けることができる。
なお、ステップS9,S12,S14,S17,S75,S77,S80,S81で実行されるパケット送信では、IPアドレスおよびハードウェアアドレスの他に、ショートメッセージ等の情報を加えてもよい。
以上、この発明の実施形態を説明したが、この発明は上記の実施形態に限定されず、種々の変形および応用が可能である。例えば、上記実施形態では、通信システム1を構成する通信装置10は1つであったが、前述の通り、通信装置10は複数であってもよい。
通信装置10が複数台の場合は、各通信装置10と通信装置20との動作を次に示す順序で行えばよい。
まず、各通信装置10は、通信装置20と個別に図2および図3に示す動作を行う。これにより、通信装置10が複数の場合であっても、各通信装置10は、通信装置20のハードウェアアドレスを記憶でき、通信装置20のIPアドレスを特定することができる。従って、各通信装置10は通信装置20と、通信を確立することができる。
次に、各通信機器10は、通信装置20と個別に図4に示す動作を行う。これにより、通信装置10が複数の場合であっても、各通信装置10は、アクセスポイント30を介した通信を、通信装置20との間で継続することができる。
また、上述した実施形態では、通信装置10および通信装置20の間で、アクセスポイント30を介した通信が確立すると、その通信が確立されている期間中、自機に割り当てられた第2のIPアドレスおよびハードウェアアドレスを定期的に反復して相互に送受信する構成としたが、これに限られるものではない。
即ち、アクセスポイント30を介した通信が確立している期間中、定期的ではなく、アクセスポイント30から割り当てられた第2のIPアドレスが変更になった時を契機として、変更があった通信装置が、変更後のIPアドレスおよびハードウェアアドレスを送信する構成としてもよい。
この構成の場合には、第2のIPアドレスおよびハードウェアアドレスを定期的に送信する場合と比較して、その送受信回数を低減することができるので、通信装置10および通信装置20の処理負担を軽減することができる。
なお、上述した実施形態では、例えば、ステップS77の実行前に、通信装置20の第2のIPアドレスが変更になった場合、通信装置10は通信装置20へ、自機の第2のIPアドレスおよびハードウェアアドレスを送信できなくなる。
しかし、この場合には、ステップS77の実行に伴い、アクセスポイント30から送信不能信号を受信したとき、通信装置20は、アクセスポイント30から再びARPテーブルの内容を取得する構成とすることで、通信装置20の変更後の第2のIPアドレスを特定することができる。よって、通信装置10は、通信装置20との通信確立を継続することができる。
また、上述した実施形態では、例えば、ステップS14の実行前に、通信装置10の第2のIPアドレスが変更になった場合、通信装置20は通信装置10へ、自機の第2のIPアドレスおよびハードウェアアドレスを送信できなくなる。
しかし、この場合には、第2のIPアドレスおよびハードウェアアドレスを、通信装置20から前回受信した後の経過時間を制御部100で計測し、所定時間経過後も受信できないときには、制御部100が、通信装置20へ、自機の(変更後の)第2のIPアドレスおよびハードウェアアドレスを送信する構成とすればよい。
これにより、通信装置20は、通信装置10の変更後の第2のIPアドレスを特定することができる。よって、通信装置20は、通信装置10との通信確立を継続することができる。
また、上述した実施形態の通信装置10では、制御部100(インフラストラクチャ通信部106)は、ステップS74,S78,S79,S82で、通信装置20から受信したハードウェアアドレスとハードウェアアドレス記憶部108に記憶した通信装置20のハードウェアアドレスとが一致すると判定した場合、ARPテーブルに記録された第2のIPアドレスを更新したが、これに限られるものではない。
即ち、制御部100(インフラストラクチャ通信部106)は、上述のハードウェアアドレスが一致するかに加えて、更に、受信した第2のIPアドレスと、ARPテーブルに記録した通信装置20のIPアドレスとが一致するか否かを判定し、受信したIPアドレスと、記録されたIPアドレスとが異なる場合のみ、受信したIPアドレスを、既に記録されている通信装置20のハードウェアアドレスと対応付けて、ARPテーブルに記憶する(更新する)構成としてもよい。
また、上述した実施形態の通信装置20では、制御部200(インフラストラクチャ通信部205)は、ステップS10,S11,S15,S16で、通信装置10から受信したハードウェアアドレスとRAM201に記憶した通信装置10のハードウェアアドレスとが一致すると判定した場合、RAM201に記憶した通信装置10の第2のIPアドレスを、受信装置10から受信した第2のIPアドレスへ変更したが、これに限られるものではない。
即ち、制御部200(インフラストラクチャ通信部205)は、上述のハードウェアアドレスが一致するかに加えて、更に、受信した第2のIPアドレスと、RAM201に記憶した通信装置10のIPアドレスとが一致するか否かを判定し、受信したIPアドレスと、記憶されたIPアドレスとが異なる場合のみ、受信したIPアドレスを、既に記憶されている通信装置10のハードウェアアドレスと対応付けて、RAM201に記憶する構成としてもよい。
なお、上記実施形態において、通信装置10、通信装置20およびアクセスポイント30の動作を制御するプログラムは、フレキシブルディスク、CD−ROM(Compact Disc Read−Only Memory)、DVD(Digital Versatile Disc)、MO(Magneto−Optical Disc)等のコンピュータが読み取り可能な記録媒体に格納して配布し、そのプログラムを、コンピュータ等にインストールすることにより、図2〜図5に示す動作を実行するシステムを構成することとしてもよい。
また、上述のプログラムをインターネット等の通信ネットワーク上の所定のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、ダウンロード等するようにしてもよい。
また、上述の図2〜図5に示す通信装置10、通信装置20およびアクセスポイント30の動作を、各OS(Operating System)が分担して実現する場合、又は、OSとアプリケーションとの協働により実現する場合等には、OS以外の部分のみを媒体に格納して配布してもよく、また、ダウンロード等してもよい。