JP4868991B2 - 通信装置および通信方法 - Google Patents

通信装置および通信方法 Download PDF

Info

Publication number
JP4868991B2
JP4868991B2 JP2006238355A JP2006238355A JP4868991B2 JP 4868991 B2 JP4868991 B2 JP 4868991B2 JP 2006238355 A JP2006238355 A JP 2006238355A JP 2006238355 A JP2006238355 A JP 2006238355A JP 4868991 B2 JP4868991 B2 JP 4868991B2
Authority
JP
Japan
Prior art keywords
address
node
unit
communication
assigned
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.)
Expired - Fee Related
Application number
JP2006238355A
Other languages
English (en)
Other versions
JP2008061146A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2006238355A priority Critical patent/JP4868991B2/ja
Publication of JP2008061146A publication Critical patent/JP2008061146A/ja
Application granted granted Critical
Publication of JP4868991B2 publication Critical patent/JP4868991B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、無線アドホックネットワークなど、通信の中継を行わずに1ホップの通信のみを行うIP(internet protocol)ネットワークで用いられる通信装置および通信方法に係り、特に、IPアドレスをユーザの操作なしに自律的に設定する通信装置および通信方法に関する。
インターネットなど、IPを用いた多くの通信ネットワークでは、特定の通信装置が他の通信装置にIPアドレスを動的に割り当てる通信プロトコルであるDHCP(dynamic host configuration protocol、非特許文献1参照)が多く用いられている。このような通信ネットワークでは、通信サービス利用側の通信装置に対して、IPアドレスの設定を含むIP通信を開始するのに必要な各種初期設定(以下、単に「初期設定」という)を行う装置(以下、「DHCPサーバ」という)を、通信サービス提供側に配置している。
一方、近年、ネットワーク技術の伸展により、従来では通信サービスにおいて普及していたIP通信機能を、テレビジョン、ビデオデッキ、ゲーム機器など、家庭内やオフィス内の電子機器に搭載させることが注目されている。このような電子機器は、互いに通信装置として機能してPAN(personal area network)を形成し、他の電子機器との連携動作を容易ならしめるだけでなく、電子機器の拡張性や配置の自由度を高めることができる。
ところが、このようなPANでは、DHCPサーバを配置した通信サービスを利用しないため、PAN内で各通信装置の初期設定を行わなければならない。
特に、家庭内でPANを構築する場合、ユーザがネットワークに関する専門的知識を持たないことが多い。このようなユーザにとって、初期設定を行うことは困難であり、ユーザへの負担が大きい。また、電子機器が、パーソナルコンピュータのようにキーボードやマウスなどの優れたユーザインタフェースを搭載しているとは限らない。したがって、ユーザが専門的知識を持っていたとしても、初期設定を行うのに多大な労力を伴う恐れがある。
また、最近では無線LAN(local area network)やBluetooth(登録商標)、UWB(ultra wideband)に代表される無線IPネットワーク技術の進歩により、IP通信機能は、ディジタルカメラやプリンタなど、さらに多種多様な電子機器に搭載されるようになってきている。したがって、PANを構成する通信装置の数は、将来、さらに増大することが考えられる。そのような多くの通信装置に対して手作業で1つ1つ初期設定を行い、動作確認を行うのは、ユーザに大きな手間となる。
このようなユーザへの負担を軽減するために、PAN内にDHCPサーバを配置することも考えられる。しかしながら、DHCPサーバに異常が発生した場合、特にネットワークに関する専門的知識を持たないユーザにとっては、復旧が困難であるという問題がある。
そこで、各通信装置自身で自装置のIPアドレスの割り当てを行う技術であり、Auto IPとも呼ばれるAPIPA(automatic private IP addressing、非特許文献2参照)を、DHCPと組み合わせることが、従来より行われている(たとえば、特許文献1および特許文献2参照)。
ここで、PANの一例を用いて、DHCPとAPIPAとの組み合わせにより初期設定を行う従来の通信装置について説明する。
図14は、従来の通信装置を配置したPANの構成の一例を示すシステム構成図である。無線PAN10には、相互にIP通信が可能な従来の通信装置としての第1のノード20−1および第2のノード20−2が存在している。すなわち、第1のノード20−1と第2のノード20−2との間には、無線通信路30が存在している。また、第1のノード20−1と第2のノード20−2は、同一の構成を有している。
図15は、図14に示す従来の通信装置としてのノード20の構成を示すブロック図である。以下、説明の対象となるノード以外のノードを、「他ノード」というものとする。
図15において、ノード20は、DHCPサーバ部21、自律割当部22、DHCPアドレス取得部23、統括割当部24、および通信部25を有する。
DHCPサーバ部21は、他ノードからの要求に応じてIPアドレスの割り当て(以下、単に「アドレス割り当て」という)を行う。自律割当部22は、自装置のアドレス割り当てにおいて、APIPAの動作を実施する。DHCPアドレス取得部23は、自装置のアドレス割り当てにおいて、DHCPサーバからIPアドレスを含めた初期設定情報を取得するDHCPクライアントとして、IPアドレスの取得処理を実施する。統括割当部24は、自装置のアドレス割り当てに、APIPAとDHCPのいずれを使用するか、つまり自律割当部22とDHCPアドレス取得部23のいずれを用いるかを選択する。これらDHCPサーバ部21、自律割当部22、DHCPアドレス取得部23、および統括割当部24は、それぞれプロトコルスタックのソフトウェアの機能である。通信部25は、IP通信を行うネットワークインタフェースであり、自装置のIPアドレスなどのIP通信に必要なパラメータが設定される。ノード20は、電源が投入されると、IP通信を開始するための初期設定を行う。
図16は、図14に示すPAN10における初期設定の動作の流れを示すフローチャートである。
DHCPサーバとして機能するノードは、DHCPDISCOVERメッセージを他ノードから受信した場合、そのノードに対して割り当てるIPアドレスを提示するDHCPOFFERメッセージを送出するようになっている。したがって、ステップS41において、統括割当部24は、DHCPアドレス取得部23で生成したDHCPのDHCPDISCOVERメッセージをブロードキャスト出力し、周囲のノードを検索する。
ステップS42において、統括割当部24は、DHCPOFFERメッセージの受信の有無によって、周囲(通信可能範囲内)にDHCPサーバが存在しているか否かを、判断する。周囲にDHCPサーバが存在している場合には(S42:YES)、統括割当部24は、自装置が他ノードからIPアドレスを割り当てられるDHCPクライアントとして動作することを決定し、ステップS43へ進む。周囲にDHCPサーバが存在していない場合には(S42:NO)、統括割当部24は、自装置が他ノードに対してIPアドレスを割り当てるDHCPサーバとして動作することを決定し、ステップS44へ進む。
ステップS43において、DHCPアドレス取得部23は、DHCPクライアントとして、IPアドレスを取得する。具体的には、DHCPアドレス取得部23は、DHCPサーバから提示されたIPアドレスを自装置で使用することを要求するDHCPREQUESTメッセージを送信する。DHCPサーバは、DHCPREQUESTメッセージの受信に対応して、その要求に対する承認を示すDHCPACKメッセージを返すようになっている。そして、ノード20は、初期設定を終了し、DHCPクライアントとしての動作を継続する。
一方、ステップ44において、自律割当部22は、APIPAにより、自装置のIPアドレスを決定する。具体的には、自律割当部22は、たとえば乱数を使用してIPアドレスを生成し、生成したIPアドレスが他ノードで使用されているかを問い合わせる状況確認のARP Probeメッセージをブロードキャスト出力する。そして、自律割当部22は、他ノードからの応答が無い場合には、生成したIPアドレスを取得する。
次に、ステップS45において、DHCPサーバ部21は、DHCPサーバとして起動し、周囲のDHCPクライアントに割り当てるIPアドレスの定義範囲を示すアドレスプールを作成する。そして、ノード20は、初期設定を終了し、DHCPクライアントから送出されるDHCPDISCOVERメッセージに応答するなど、DHCPサーバとして動作する。
このようにして、従来の通信装置は、周囲の状況に応じて、DHCPクライアントとしての動作と、DHCPサーバとしての動作を切り替えることができる。したがって、いずれかの通信装置に異常が発生しても、常にDHCPサーバが配置されることになり、PANを機能させることができる。
特開2005−277937号公報 特開2005−348337号公報 R. Droms、"Dynamic Host Configuration Protocol"、IETF RFC2131、1997 S. Cheshire、B. Aboba and E. Guttman、"Dynamic Configuration of IPv4 Link−Local Addresses"、IETF RFC3927、2005
ところが、上記した従来の通信装置を配置したPANでは、たとえば複数の通信装置を立て続けに起動させたときに、問題が発生する恐れがある。
図17は、図14に示すPAN10の各ノード20が初期設定を行う際の、各ノード20の動作および信号の様子の一例を示すシーケンス図である。ここでは、第1のノード20−1が先に電源投入されたものの、第1のノード20−1の初期設定が完了していない段階で、第2のノード20−2が電源投入された場合の例を図示している。
ステップS51において、時刻tに、第1のノード20−1は電源オン(ON)状態になり、第2のノード20−2は電源オフ(OFF)状態のままであったとする。
ステップS52において、第1のノード20−1は、時刻tの直後に、DHCPDISCOVERメッセージをブロードキャスト出力する。ただし、この時点で、第2のノード20−2はOFF状態であるため、第1のノード20−1に応答は返ってこない。
ステップS53において、第1のノード20−1は、ステップS52のDHCPDISCOVERメッセージに対する応答が返ってこないことから、自律設定状態に入る。
ステップS54において、ステップS53で第1のノード20−1が自律設定状態に入った直後に、第2のノード20−2がON状態になったとする。
ステップS55において、第2のノード20−2は、DHCPDISCOVERメッセージをブロードキャスト出力する。ただし、この時点で、第1のノード20−1はまだサーバとして起動していないため、第2のノード20−2に応答は返ってこない。
ステップS56において、第1のノード20−1は、自装置に割り当てるIPアドレスを選択し、選択したIPアドレスを指定した状況確認のARP Probeメッセージを、1〜2秒の間隔を置いて3回、ブロードキャスト出力する。第1のノード20−1は、たとえば「192.168.1.1」を、自装置に割り当てるIPアドレスとして選択する。
各ノード20は、既に使用されているIPアドレスを指定したARP Probeメッセージを受信した場合には、その旨を通知するようになっている。ただし、ステップS56の時点では、第2のノード20−2はまだIPアドレスを割り当てられていないことから、ステップS56の状況確認のARP Probeメッセージに対する応答は、第1のノード20−1に返ってこない。
ステップS57において、第2のノード20−2は、ステップS55のDHCPDISCOVERメッセージに対する応答が返ってこないことから、自律設定状態に入る。
ステップS58において、第2のノード20−2は、自装置に割り当てるIPアドレスを選択し、選択したIPアドレスを指定した状況確認のARP Probeメッセージを、ブロードキャスト出力する。ここで、第2のノード20−2は、たとえば「192.168.2.1」を、自装置に割り当てるIPアドレスとして選択する。ただし、この時点で、第1のノード20−1はまだサーバとしての動作を開始していないため、第2のノード20−2に応答は返ってこない。
ステップS59において、第1のノード20−1は、ステップS56で送出した状況確認のARP Probeメッセージが、いずれも応答が返ってこないままタイムアウトになったとする。このタイムアウトにより、第1のノード20−1は、要求したIPアドレスの自装置での使用に問題が無いものとして、自装置のIPアドレスを確定し、DHCPサーバ動作状態に遷移する。
ステップS60において、第1のノード20−1は、選択したIPアドレスの使用開始を通知する使用要求のARP Probeメッセージをブロードキャスト出力するとともに、アドレスプールを生成する。ただし、この時点で、第2のノード20−2にはまだサーバとしての動作を開始しておらず、自装置のIPアドレスを確定していないため、第1のノード20−1には応答は返ってこない。
ステップS61において、第2のノード20−2は、ステップS58で送出したARP Probeメッセージが、いずれも応答が返ってこないままタイムアウトになったことにより、第1のノード20−1と同様にDHCPサーバ動作状態に遷移する。
そして、ステップS62において、第2のノード20−2は、使用要求のARP Probeメッセージをブロードキャスト出力し、アドレスプールを生成する。
この結果、図17からも明らかなように、第1のノード20−1と第2のノード20−2の両方が、サーバとして動作し、それぞれ独立して自装置のIPアドレスとアドレスプールを設定する。このような状態では、これらのIPアドレスおよびアドレスプールが重複し、たとえば、同じIPアドレスが、異なる複数のノードに割り当てられ、それらのノード間でIP通信が不能となるなどの問題が発生する恐れがある。
このような事態を回避するために、最初に電源投入を行った通信装置が完全にサーバとしての機能を開始してから、他の通信装置の電源投入を行うようにすることも考えられる。ところが、ARP Probeメッセージの状況確認には、通常で4秒以上の時間を要するため、2つ目の通信装置に電源を投入するまでに比較的長い時間を置かなければならない。一方で、特に家庭内などのごく狭い範囲にPANを形成する場合、通常の操作として、複数の通信装置に立て続けに電源が投入されることが行われている。したがって、不自然な操作をユーザに強いることになり、使い勝手の面で問題が生じる。
本発明は、かかる点に鑑みてなされたものであり、複数の通信装置が立て続けに起動された場合であっても、サーバ機能とクライアント機能とを適切に選択できる通信装置および通信方法を提供することを目的とする。
本発明の通信装置は、他ノードに対してIPアドレスを割り当てるノードが通信可能範囲内に存在するとき、当該ノードに対して、自装置へのIPアドレスの割り当てを要求するクライアント動作部と、他ノードに対してIPアドレスを割り当てるノードが通信可能範囲内に存在しないとき、自装置に対して自律的にIPアドレスを割り当て、当該IPアドレスに基づき、他ノードに対してIPアドレスを割り当てるサーバ動作部と、前記サーバ動作部が自装置に割り当てたIPアドレスと同一のアドレスが他ノードに既に割り当てられているか否かを判断する割当判断部と、前記割当判断部が、前記サーバ動作部が自装置に割り当てたIPアドレスと同一のアドレスが他ノードに既に割り当てられていないと判断する前に、前記サーバ動作部が他ノードに対してIPアドレスの割り当てを行うとき、その割り当て先に対して当該IPアドレスの割り当てが仮のものであることを通知する仮設定通知部とを具備する構成を採る。
本発明の通信方法は、他ノードに対してIPアドレスを割り当てるノードが通信可能範囲内に存在するか否かを判断するサーバ有無判断ステップと、他ノードに対してIPアドレスを割り当てるノードが通信可能範囲内に存在しないと判断したとき、自装置に対して自律的にIPアドレスを割り当て、他ノードに対してIPアドレスを割り当てるノードが通信可能範囲内に存在すると判断したとき、当該ノードに対して自装置へのIPアドレスの割り当てを要求するアドレス取得ステップと、自装置に対して自律的にIPアドレスを割り当てたとき、当該IPアドレスに基づき他ノードに対してIPアドレスを割り当てる処理を開始するとともに、自装置に割り当てられたIPアドレスと同一のアドレスが他ノードに既に割り当てられているか否かを判断する処理を開始する処理開始ステップと、自装置に割り当てられたIPアドレスと同一のアドレスが他ノードに既に割り当てられていないと判断する前に、他ノードに対してIPアドレスの割り当てを行うとき、その割り当て先に対して当該IPアドレスの割り当てが仮のものであることを通知する仮設定通知ステップとを有するようにした。
本発明によれば、自装置のIPアドレスが確定する前であっても、他ノードに対して、IPアドレスの割り当ての重複や変更の可能性を通知した上で、仮のアドレス割当を行うことができ、複数の通信装置が立て続けに電源投入された場合でも、DHCPサーバ機能とDHCPクライアント機能とを適切に選択できるので、使い勝手を向上させることができる。さらに、自装置のIPアドレスが確定する前という早い段階で、他ノードに対してIPアドレスを割り当てるため、PANの立ち上がりを高速化することができる。
以下、本発明の一実施の形態について、図面を参照して詳細に説明する。
図1は、本発明の一実施の形態に係る通信装置を配置した無線PANの構成を示すシステム構成図である。
図1において、無線PAN100は、第1のノード200−1、第2のノード200−2を有する。第1のノード200−1および第2のノード200−2は、相互に無線IP通信が可能となっており、これらの間には無線通信路300が形成されている。また、第1のノード200−1と第2のノード200−2の通信に関する部分は、同一の構成を採っている。
第1のノード200−1と第2のノード200−2は、たとえば、テレビジョンとハードディスクレコーダであり、テレビジョンで受信する映像データをハードディスクレコーダへ転送することによって、映像データを記録するものである。映像データは無線通信路300により伝送されるため、ハードディスクレコーダの設置場所をより自由に選択することが可能となっている。
以下、各ノード200の構成および動作について説明する。説明の対象となるノード以外のノードを、「他ノード」というものとする。
図2は、本実施の形態に係る通信装置としてのノード200の構成を示すブロック図である。
図2において、ノード200は、通信部210、DHCPサーバ部220、DHCPサーバ初期設定部230、自律割当部240、DHCPアドレス取得部250、PAN指定判定部260、統括割当部270、アプリケーション部280、およびアプリケーション通信部290を有する。
通信部210は、無線によるIP通信を行うためのネットワークインタフェースであり、自装置のIPアドレスなどのIP通信に必要なパラメータが設定される。
DHCPサーバ部220は、DHCPクライアントとして動作する他ノードからの要求に応じてアドレス割り当てを行う。具体的には、DHCPサーバ部220は、通信部210でDHCPREQUESTメッセージが受信されると、通信部210を介して、そのメッセージの送信元に対しIPアドレスを割り当てる。
DHCPサーバ初期設定部230は、自装置の周囲にDHCPサーバが存在しない場合に、自装置をDHCPサーバとして機能させるために、DHCPサーバ部220に対して初期設定を行う。
自律割当部240は、自装置に対するアドレス割り当てにおいて、APIPAの動作を実施する。具体的には、自律割当部240は、自装置に対するアドレス割り当てを行うとともに、統括割当部270および通信部210を介して、割り当てたIPアドレスが他ノードで既に使用されているか否かの確認を行う。
DHCPアドレス取得部250は、自装置に対するアドレス割り当てにおいて、DHCPクライアントとして、DHCPサーバとして動作する他ノード200にIPアドレスの割り当てを要求する。具体的には、DHCPアドレス取得部250は、統括割当部270および通信部210を介して、DHCPREQUESTメッセージを送出するなどして、DHCPサーバとして動作する他ノード200からIPアドレスを取得し、取得したIPアドレスを自装置に対して割り当てる。
PAN指定判定部260は、DHCPアドレス取得部250が取得したIPアドレスと、周囲のノードのIPアドレスとの比較を行い、両者が重複する可能性があるか否かを判定する。具体的には、PAN指定判定部260は、通信部210で受信されたIPパケットの送信元IPアドレスを取得し、DHCPアドレス取得部250が取得したIPアドレスとの比較を行い、一致する場合には、当該IPアドレスに対する処理を行う。
統括割当部270は、自装置の各部を統括するとともに、自装置に対するアドレス割り当てに用いる手法を選択する。
アプリケーション部280は、IP通信を使用するアプリケーションソフトウェアであり、たとえば、通信部210を介して、映像データを送受信する機能を有している。また、アプリケーション部280は、IP通信を行う場合にはアプリケーション通信部290を使用して、通信部210を制御する。
アプリケーション通信部290は、DHCPアドレス取得部250の状況をアプリケーション部280に通知するともに、アプリケーション通信部290からの指示に応じて通信部210を制御する。
また、ノード200は、図示しないが、CPU(central processing unit)、制御プログラムを格納したROM(read only memory)などの記憶媒体、RAM(random access memory)などの作業用メモリ、および通信回路などでも実現できる。CPUが制御プログラムを実行することで、上記した各部の機能は実現される。
ノード200は、初期状態ではDHCPクライアントとして動作し、周囲の状況に応じて、DHCPサーバとして動作するモードに切り替わる。統括割当部270は、他の各部との連携により、ノード200の動作状態の制御および切り替えを行う。以下、ノード200の各部の動作について詳細に説明を行う。
図3は、ノード200の動作状態の遷移を示すフローチャートである。
ノード200は、初期状態では、電源が投入されていない電源OFF状態1000にある。この状態で電源が投入されると、ノード200は、DHCPクライアントとして動作するDHCPクライアント動作状態2000へ遷移する。
DHCPクライアント動作状態2000において、ノード200は、まず、DHCPを用いて、DHCPサーバとして動作する他ノードからのIPアドレスの取得を試みる。そして、IPアドレスの取得が成功した場合には、そのままDHCPクライアント動作状態2000を継続し、クライアント初期設定処理と、仮設定解除判定処理とを実行する。
クライアント初期設定処理は、サーバから取得したIPアドレスを、自装置に設定する処理である。仮設定解除判定処理は、自装置のIPアドレスの設定が仮設定であった場合に、DHCPサーバから受信するパケットを基に仮設定の解除を判定する処理である。これらクライアント初期設定処理および仮設定解除判定処理については、後にそれぞれ図11および図12を参照して詳しく説明する。
一方、ノードからのIPアドレスの取得が失敗した場合には、ノード200は、DHCPサーバとして動作するDHCPサーバ動作状態3000のへ遷移する。
DHCPサーバ動作状態3000において、ノード200は、サーバ初期設定処理と、IPアドレス割当処理とを実行する。
サーバ初期設定処理は、自装置のIPアドレスやアドレスプールを設定する処理である。IPアドレス割当処理は、DHCPクライアントとして動作する他ノードからの要求に応じてIPアドレスの割り当てを行う処理である。これらサーバ初期設定処理およびIPアドレス割当処理についても、後にそれぞれ図4および図10を参照して詳しく説明する。
DHCPサーバとして動作するノード200は、サーバ初期設定処理と並行してIPアドレス割当処理を実行することにより、サーバ初期設定処理が完了する前に、DHCPクライアントとして動作する他ノード200に対してアドレス割り当てを行うことを可能にする。ただし、アドレス割り当ての対象となるノード200に対して、そのアドレス割り当てが仮設定であることを通知する。
なお、DHCPクライアント動作状態2000あるいはDHCPサーバ動作状態3000にあるときに、ノード200の電源が落とされたり、ノード200の通信機能のリセット操作が行われた場合には、電源OFF状態1000へ戻ることになる。したがって、一旦DHCPサーバとしての動作を開始したものの、同一無線PAN100内の他ノード200にDHCPサーバ機能を移したい場合には、双方の電源を落とし、DHCPサーバとして機能させたい側のノード200に先に電源を投入するようにすればよい。また、このような電源遮断と電源投入のタイミングを、自動で制御するようにしてもよい。
図4は、図3のDHCPサーバ動作状態3000において実行されるサーバ初期設定処理の流れを示すフローチャートである。
ステップS3110において、DHCPサーバ初期設定部230は、統括割当部270からの要求に応じて、アドレスプールを生成するとともに、生成したアドレスプールの最初のIPアドレスを、自装置のIPアドレスに決定する。
図5は、図1に示す無線PAN100におけるIPアドレスの体系の一例およびIPアドレスの一例を示す説明図である。
無線PAN100において、各ノード200は、通信プロトコルとして、IPv4(IP version 4)を採用している。そして、各ノード200は、IPアドレス310を、ネットワークアドレス301、PAN指定部302、およびノード指定部303の、3つのビット列に分けて扱う。PAN指定部302とノード指定部303を設定しているのは、ノード間でIPアドレスが重複して割り当てられた場合に、このことを検出し易くするためである。これについては、後に詳しく説明する。ここでは、IPアドレス310の一例を、8ビットごとの10進表記311、2進表記312、および下位16ビットをPAN指定部302とノード指定部303で区切った10進表記313で記述している。
ネットワークアドレス301は、同一の無線PAN100に属するすべてのノード200に共通であり、所与の値が割り当てられるビット列である。ネットワークアドレス301が同一のノード同士は、通信が可能となっている。ここでは、ネットワークアドレス301は、16ビットであり、たとえば10進表記313で「192.168」が指定される。ネットマスクはネットワークアドレス301のビット数と対応しており、ここでは「255.255.0.0」となる。
無線PAN100における無線インタフェースの到達距離は、比較的短い。このため、比較的近い距離で、複数の無線PAN100が形成され、ノード200の移動によって、これら複数の無線PAN100の無線通信エリアが重なり合うことがある。すると、異なる無線PAN100に属するはずのノード200同士が、接続し無線通信を行ってしまう可能性がある。この場合に、異なった場所で構成された無線PAN100のノード200同士が通信を開始した時に、ネットワークアドレス301が異なると、ルーティング設定などを変更する必要が生じる可能性がある。したがって、本実施の形態では、全ての無線PAN100のノード200に、共通のネットワークアドレスを使用している。
PAN指定部302は、IPアドレス310において、無線PAN100を指定するためのビット列である。ここでは、PAN指定部302は、12ビットであり、たとえば10進表記313で「32」が指定される。したがって、2の12乗(=4,096)個の無線PAN100を指定することができる。
ノード指定部303は、IPアドレス310において、ノード200を指定するためのビット列である。ここでは、ノード指定部303は、4ビットであり、たとえば10進表記313で「1」が指定される。このように、ノード指定部303のビット数は少ないため、同一の無線PAN100におけるIPアドレス310の重複を、容易に検出することができる。
なお、ネットワークアドレス301、PAN指定部302、およびノード指定部303のそれぞれの配置およびビット長は、上記内容に限定されるものではない。また、IPv6(IP version 6)など、他の通信プロトコルのアドレスを適用してもよい。さらに、「10.x.x.x」のようなクラスAのプライベートアドレスを用いることも可能である。この場合は、PAN指定部302とノード指定部303を合わせて24ビット取ることができる。
図6は、DHCPサーバ初期設定部230が生成するアドレスプールの構成の一例を示す説明図である。アドレスプール350は、IPアドレス310、割当状態351、およびMAC(media access control)アドレス352をそれぞれ記述する複数のフィールドにより構成される。ここでは、IPアドレス310のネットワークアドレスおよびPAN指定部の値が、図5と同様である場合を図示している。
ネットワークアドレス301とPAN指定部302が同じであるIPアドレスは、「192.168.1.0〜192.168.1.15」である。したがって、これらのIPアドレス310のうち、ノード200に割り当てることができないブロードキャストアドレス「192.168.1.0」を除いた、「192.168.1.1〜192.168.1.15」が、IPアドレス310のフィールドに記述される。
割当状態351には、対応するIPアドレス310の割り当て状態を示す情報が記述される。「空き」は、対応するIPアドレス310が、いずれのノード200にも割り当てが行われていないことを示す。「予約中」は、対応するIPアドレス310が、いずれかのノード200に予約されているが、割り当ては完了していないことを示す。「使用中」は、いずれかのノード200に割り当てされており、使用されていることを示す。
MACアドレス352には、対応するIPアドレス310が予約あるいは割り当てられているノード200のMACアドレスが記述される。
DHCPサーバとして機能するノード200ごとにPAN指定302の値が異なれば、それぞれのアドレスプール350の間でIPアドレス310は重複しない。また、PAN指定部302の値は、DHCPサーバとして機能するノード200のIPアドレス310にも使用される。したがって、DHCPサーバとして機能するノード200のIPアドレス310のPAN指定部302を比較するだけで、それぞれのアドレスプール350に記述されるIPアドレス310が重複しているか否かを判定することができる。
図4のステップS3110において、DHCPサーバ初期設定部230は、乱数で図5に示すPAN指定部302の値を選択決定し、所与のネットワークアドレス301と組み合わせて、図6に示すアドレスプール350を生成し、DHCPサーバ部220に保持させる。そして、DHCPサーバ初期設定部230は、生成したアドレスプール350の最初のIPアドレスを、自装置のIPアドレスに決定する。そして、DHCPサーバ初期設定部230は、決定したIPアドレス(以下「仮サーバアドレス」という)を、統括割当部270を介して、通信部210に設定する。すなわち、仮サーバアドレスを、自装置に対して割り当てる。
次に、ステップS3120において、自律割当部240は、仮サーバアドレスが周囲のノードで使用されていないことを確認するための要求である状況確認のARP Probeメッセージを、統括割当部270および通信部210を介してブロードキャスト出力する。
図7は、状況確認のARP Probeメッセージの構成を示す説明図である。
ARPで使用されるパケットは、メッセージの種類を記述するための「Opcode」フィールド401を有している。また、ARPで使用されるパケットは、送信元のハードウェアアドレスを記述するための「sender hardware address」フィールド402、送信元のIPアドレスを記述するための「sender IP address」フィールド403、処理の対象となるハードウェアアドレスを記述するための「target hardware address」フィールド404、および処理の対象となるIPアドレスを記述するための「target IP address」フィールド405とを有している。
状況確認のARP Probeメッセージ410の場合、図7に示すように、「Opcode」フィールド401に、ARP要求であることを示す値「1」が記述される。また、「sender hardware address」フィールド402に、自装置のMACアドレスが記述され、「sender IP address」フィールド403および「target hardware address」フィールド404には、それぞれ値「0」が記述される。そして、「target IP address」フィールド405には、ステップS3110で決定した仮サーバアドレスが記述される。
図4のステップS3130において、自律割当部240は、ステップS3120で出力した状況確認のARP Probeメッセージに対する応答が入力されるのを監視する。
各ノード200は、自装置に既にIPアドレスが割り当てられているとき、そのIPアドレスと同一のIPアドレスが「target IP address」フィールド405に記述された状況確認のARP Probeメッセージ410を受信すると、IPアドレスの重複を示すARP応答をブロードキャスト出力するようになっている。具体的には、ARP Probeメッセージ410の「sender IP address」フィールド403の記述と一致するIPアドレスが割り当てられ、状況確認のARP Probeメッセージ410の「sender hardware address」フィールド402の記述と異なるMACアドレスを有するノード200から、ARP応答が出力される。
図8は、ARP応答の構成を示す説明図であり、図7に対応するものである。
ARP応答420の場合、「Opcode」フィールド401に、ARP要求に対する応答であることを示す値「2」が記述される。また、状況確認のARP Probeメッセージ410とは異なり、「sender IP address」フィールド403に、ARP応答420の送信元のIPアドレスが記述される。また、「sender hardware address」フィールド402には、ARP応答420の送信元のMACアドレスが記述される。
図4のステップ3120で、状況確認のARP Probeメッセージ410を出力したノード200は、他ノード200から図8に示すARP応答420を受信すると、ARP応答420の「sender IP address」フィールド403の記述に含まれる他ノードのIPアドレス310のPAN指定部302の値と、自装置に割り当てられたIPアドレス310のPAN指定部302の値とを比較する。一致する場合には、直接には通信できないものの、ステップS3110で決定した仮サーバアドレスと同一のIPアドレスを使用するノード200が周囲に存在していることになる。
したがって、自律割当部240は、タイムアウトになる前に状況確認のARP応答420の入力があった場合には、ステップS3110へ戻り、自装置のIPアドレスの選択をやり直す。タイムアウトになった場合には、ステップS3140へ進む。タイムアウトの時間としては、たとえば1秒が設定される。
ステップS3140において、自律割当部240は、IPアドレスの状況確認において、3回以上連続してタイムアウトとなったか否かを判断する。3回未満の場合には(S3140:NO)、ステップS3120へ戻り、状況確認のARP Probeメッセージ410を再び出力する。タイムアウトが3回以上となった場合には(S3140:YES)、ステップS3110で決定した仮サーバアドレスと同一のIPアドレスを使用するノードは周囲に存在しないとして、仮サーバアドレスを自装置で使用するIPアドレスとして選択し、ステップS3150へ進む。
ステップS3150において、自律割当部240は、仮サーバアドレスを自装置で利用することを通知する使用要求のARP Probeメッセージ(ARP Announcement)を生成し、統括割当部270および通信部210を介して出力する。
図9は、使用要求のARP Probeメッセージの構成を示す説明図であり、図7に対応するものである。
使用要求のARP Probeメッセージ430の場合、「Opcode」フィールド401に、ARP要求であることを示す値「1」が記述される。また、状況確認のARP Probeメッセージ410とは異なり、「sender IP address」フィールド403に、使用要求のARP Probeメッセージ430の送信元のIPアドレスが記述される。また、「target IP address」フィールド405には、使用要求のARP Probeメッセージ430の送信元で使用することが決定されたIPアドレスが記述される。
図4のステップS3160において、自律割当部240は、3回以上連続して図9に示す使用要求のARP Probeメッセージ430を出力したか否かを判断する。自律割当部240は、3回未満の場合には(S3160:NO)、ステップS3150へ戻り、使用要求のARP Probeメッセージ430を再び出力する。使用要求のARP Probeメッセージ430の出力回数が3回以上となった場合には(S3160:YES)、ノード200は、自装置のIPアドレスを確定し、一連の処理を終了する。
このようにして、DHCPサーバ動作を開始したノード200は、サーバ初期設定処理を終了し、アドレスプールと自装置のIPアドレスの設定が完了する。
ノード200は、サーバ初期設定処理のうち、ステップS3110の処理が完了し、アドレスプールを生成した時点で、上記したIPアドレス割当処理を開始する。
図10は、図3のDHCPサーバ動作状態3000において実行されるIPアドレス割当処理の流れを示すフローチャートである。DHCPサーバとして機能するノード200を検索するノード200は、従来技術で説明したように、DHCPDISCOVERメッセージをブロードキャスト出力する。
ステップS3210において、通信部210は、DHCPクライアントとして動作する他ノード200から、DHCPDISCOVERメッセージが入力されると、DHCPサーバ部220に対し、そのDHCPDISCOVERメッセージを通知する。
次に、ステップS3220において、DHCPサーバ部220は、通知されたDHCPDISCOVERメッセージに対して、図4のステップS3110で生成されたアドレスプール350から、割り当ての対象となるIPアドレス310を選択する。ただし、このとき、DHCPサーバ部220は、割当状態351が「空き」となっているIPアドレス310を選択する。そして、DHCPサーバ部220は、選択したIPアドレス310の割当状態351を、「予約中」に書き替えるとともに、通信部210から通知されたDHCPDISCOVERメッセージに含まれるMACアドレスを、対応するMACアドレス352のフィールドに記述する。
次に、ステップS3230において、統括割当部270は、自装置が既に使用要求のARP Probeメッセージ430を出力しているか、つまり自装置のアドレスプールが確定したか否かを判断する。具体的には、統括割当部270は、自律割当部240の状態を監視し、自装置が実行する上記IPアドレス割当処理が、既に図4のS3150の処理に到達しているか否かを判断する。まだ自律割当部240が使用要求のARP Probeメッセージ430を出力していない場合には(S3230:NO)、ステップS3240へ進む。
ステップS3240において、統括割当部270は、DHCPサーバ部220に対し、ステップS3220で行ったIPアドレス310の設定が仮のものであることを示す仮設定フラグを、DHCPOFFERメッセージに設定させる。DHCPOFFERメッセージは、DHCPDISCOVERメッセージに対する応答として、ステップS3220で選択したIPアドレス310を格納して当該IPアドレス310を提示するための信号である。
DHCPOFFERメッセージに仮設定フラグを設定するのは、IPアドレス割当処理が、図4のステップS3110へ戻り、アドレスプールが変更されて別のIPアドレスを提示し直す可能性があるためである。すなわち、仮設定フラグは、DHCPOFFERメッセージの受け取り側に対して、割り当てを行うIPアドレスが仮のものであることを通知するためである。仮設定フラグは、たとえばDHCPのフラグフィールドや、IPのオプションフィールドを使用すればよい。
次に、ステップS3250において、DHCPサーバ部220は、通信部210を介して、DHCPOFFERメッセージをブロードキャスト出力する。
一方、自装置から使用要求のARP Probeメッセージ430を既に出力している場合には(S3230:YES)、IPアドレス割当処理は図4のステップS3110へ戻らない。したがって、アドレスプール350は確定していることから、DHCPサーバ部220は、仮設定フラグの設定は行わずに、そのままステップS3250へ進み、DHCPOFFERメッセージを出力する。
ステップS3260において、DHCPサーバ部220は、ステップS3250で出力したDHCPOFFERメッセージに対する応答として、DHCPREQUESTメッセージが通信部210で受信されるのを監視する。DHCPREQUESTメッセージは、DHCPOFFERメッセージを受け取ったノード200が、そのDHCPOFFERメッセージが提示するIPアドレスを使用することを要求するための信号である。また、DHCPREQUESTメッセージには、要求先として選択されたノード200のIPアドレスである選択サーバIPアドレスが含まれている。ここで監視の対象となるのは、自装置のIPアドレスが、選択サーバIPアドレスとして指定され、かつ使用を要求するIPアドレスの割当状態351が「予約中」のものである。
DHCPサーバ部220は、タイムアウトになる前に該当するDHCPREQUESTメッセージが自装置に到着した場合には(S3260:YES)、ステップS3270へ進む。一方、該当するDHCPREQUESTメッセージが自装置に到着しないままタイムアウトになった場合には(S3260:NO)、ステップS3280へ進む。
ステップS3270において、DHCPサーバ部220は、アドレスプール350のうち、DHCPREQUESTメッセージが使用を要求するIPアドレス310に対応する割当状態351を、「予約中」から「使用中」へと書き替える。
次に、ステップS3290において、統括割当部270は、再び、自装置が既に使用要求のARP Probeメッセージ430を出力しているかを判断する。まだ自律割当部240が使用要求のARP Probeメッセージ430を出力していない場合には(S3290:NO)、ステップS3300へ進む。
ステップS3300において、統括割当部270は、DHCPサーバ部220に対して、仮設定フラグを、今度はDHCPACKメッセージに設定させる。DHCPACKメッセージは、周囲のノード200に対して、IPアドレス310の割り当てが成功したことを通知する信号であり、その割り当ての対象となるIPアドレス310を格納している。
次に、ステップS3310において、DHCPサーバ部220は、通信部210を介して、DHCPACKメッセージをブロードキャスト出力する。
そして、ステップS3320において、DHCPサーバ部220は、自装置のDHCPサーバ動作を終了するか否かを判断する。DHCPサーバ動作を継続する場合には(S3320:NO)、再びステップS3210へ戻り、新たなDHCPDISCOVERメッセージがクライアントとして動作する他ノード200から入力されるのを監視する。ユーザ操作により無線通信の停止が指示されるなどして、DHCPサーバ動作を終了する場合には(S3320:YES)、一連の処理を終了する。
一方、ステップS3280では、DHCPOFFERメッセージを出力したものの、対応するDHCPREQUESTメッセージが到着しないことから、DHCPサーバ部220は、ノード200に対して提示したIPアドレス310の解放を設定する。すなわち、DHCPサーバ部220は、アドレスプール350のうち、ステップS3220で選択したIPアドレス310の割当状態351を、「予約中」から「空き」に書き替える。そして、ステップS3320へ進む。
また、ステップS3270を終えた段階で、自装置から使用要求のARP Probeメッセージ430を既に出力している場合は(S3290:YES)、アドレスプール350は確定していることから、仮設定フラグの設定は行わずに、そのままステップS3310へ進み、DHCPACKメッセージを出力する。
このようにして、ノード200は、DHCPサーバ動作の状態にあるときに、クライアントとして動作する他ノード200からの要求に応じて、アドレス割り当てを行う。また、そのアドレス割り当てを行う段階でアドレスプールがまだ確定していない場合には、アドレス割り当てが仮のものであることを通知する。したがって、アドレス割り当てを受ける側では、DHCPサーバ動作を開始したノード200が初期設定を完了していないような早い段階で、DHCPクライアントとして動作するための初期設定を開始し、IP通信を開始することができる。なお、統括割当部270は、自装置のアドレスプールが確定した時点で、ステップS3230、S3240、S3290、S3300の処理を省略するようにしてもよい。
図11は、図3のDHCPクライアント動作状態2000において実行されるクライアント初期設定処理の流れを示すフローチャートである。
ステップS2110において、統括割当部270は、DHCPアドレス取得部250に対してDHCPDISCOVERメッセージを生成させ、通信部210を介してブロードキャスト出力し、DHCPサーバの検索を行う。
ステップS2120において、統括割当部270は、ステップS2110でDHCPDISCOVERメッセージに対する応答として、DHCPOFFERメッセージが通信部210で受信されるのを一定時間監視する。このDHCPOFFERメッセージは、DHCPサーバとして動作する他ノード200が、図10に示すIPアドレス割当処理を行うとき、図10のステップS3250で出力するものである。すなわち、DHCPOFFERメッセージが自装置に到着する場合には、通信可能範囲内にDHCPサーバとして機能する他ノード200が存在している。
統括割当部270は、DHCPOFFERメッセージが自装置に到着した場合には(図11、S2120:YES)、DHCPアドレス取得部250に対してDHCPOFFERメッセージを渡し、ステップS2130へ進む。そして、統括割当部270は、自装置のDHCPクライアント動作状態を継続させる。このとき、通信可能範囲内にDHCPサーバとして機能する他ノード200が複数存在している場合には、複数のDHCPOFFERメッセージが到着する。
一方、該当するDHCPOFFERメッセージが到着しないままタイムアウトになった場合には(S2120:NO)、ステップS3100へ進む。そして、統括割当部270は、通信可能範囲内にDHCPサーバとして機能する他ノード200が存在していないものとして、自装置を図3のDHCPサーバ動作状態3000に遷移させる。そして、ノード200は、図4および図10で説明したサーバ初期設定処理およびIPアドレス割当処理を実行する。
ステップS2130において、DHCPアドレス取得部250は、入力されたそれぞれのDHCPOFFERメッセージから、提示されるIPアドレス310を取得するとともに、各DHCPOFFERメッセージに仮設定フラグが設定されているか否かを判別する。この仮設定フラグは、DHCPサーバとして動作する他ノード200が、図10のステップS3240で設定するものである。すなわち、仮設定フラグが設定されているか否かによって、そのDHCPOFFERメッセージで提示されるIPアドレスが、後で変更される可能性があるか否かを判断することができる。
仮設定フラグが設定されているDHCPOFFERメッセージについては、(S2130:YES)、ステップS2140へ進む。仮設定フラグが設定されていないDHCPOFFERメッセージについては、(S2130:NO)、ステップS2140を経ることなく、ステップS2140の次のステップS2150へ進む。
ステップS2140において、DHCPアドレス取得部250は、該当するIPアドレスに対して、内部的に仮設定フラグを立てる。
ステップS2150において、DHCPアドレス取得部250は、DHCPOFFERメッセージによって提示されたIPアドレスの中から、自装置で使用することを要求するIPアドレスを選択する。このとき、DHCPアドレス取得部250は、仮設定フラグが立っていないIPアドレスが存在する場合には、仮設定フラグが立っていないIPアドレスの中から選択を行う。また、DHCPアドレス取得部250は、提示されたIPアドレスが複数である場合には、例えば最初に提示されたDHCPOFFERメッセージの相手先から提示されたIPアドレスを、優先的に選択する。
次に、ステップS2160において、DHCPアドレス取得部250は、DHCPREQUESTメッセージを生成し、統括割当部270および通信部210を介してブロードキャスト出力する。このとき、DHCPアドレス取得部250は、DHCPREQUESTメッセージに、ステップS2150で選択したIPアドレスを、要求IPアドレスとして指定するとともに、当該IPアドレスを提示したノード200のIPアドレスを、選択サーバIPアドレスとして指定する。
次に、ステップS2170において、DHCPアドレス取得部250は、ステップS2160で送出したDHCPREQUESTメッセージに対する応答として、DHCPACKメッセージを受信する。このDHCPACKメッセージは、DHCPサーバとして動作する他のノード200が、図10のステップS3310で出力するものである。
次に、ステップS2180において、DHCPアドレス取得部250は、入力されたDHCPACKメッセージに仮設定フラグが設定されているか否かを判別する。この仮設定フラグは、DHCPサーバとして動作する他ノード200が、図10のステップS3300で設定するものである。すなわち、仮設定フラグが設定されている場合には、そのDHCPACKメッセージによって割り当てられるIPアドレスは、後で変更される可能性があるということが分かる。仮設定フラグが設定されている場合には、(S2180:YES)、ステップS2190へ進む。仮設定フラグが設定されていない場合には、(S2180:NO)、ステップS2190を経ることなく、ステップS2190の次のステップS2200へ進む。
ステップS2190において、DHCPアドレス取得部250は、ステップS2140と同様に、該当するIPアドレスに対して、内部的に仮設定フラグを立てる。ただし、既に該当するIPアドレスに仮設定フラグが立っている場合には、そのままとする。
ステップS2200において、DHCPアドレス取得部250は、ステップS2150で選択し、ステップS2170で自装置に割り当てられたIPアドレスを、統括割当部270を介して通信部210に設定する。通信部210は、IPアドレスの設定に対応して、ネットマスク、デフォルトのゲートウェイのアドレス、DNS(domain name system)サーバのアドレスなど、DHCPで取得できる各種情報を取得し、自装置に設定する。そして、一連の処理を終了する。
このようにして、ノード200は、DHCPクライアントとして、IP通信が可能な状態となる。なお、ステップS2130とステップS2180の2段階で仮設定の有無をチェックするため、複数のサーバから提示される複数のIPアドレスの中に仮設定ではないIPアドレスが存在している場合に、迅速にこれを選択することができる。
ただし、自装置に割り当てられたIPアドレスが仮設定の場合、そのIPアドレスは変更される可能性があるだけでなく、他のノード200と重複して設定されている可能性がある。
そこで、アプリケーション通信部290は、DHCPアドレス取得部250に仮設定フラグが立っているか否かを監視し、仮設定フラグが立っている状態にあるときには、これをアプリケーション部280に通知する。アプリケーション部280は、この通知を受けると、重要な情報の送信を差し控えるなどして、自己が行う通信を制限したり、アプリケーション通信部290に、通信部210に対して受信を制限させるなどの制御を行わせる。
一方で、DHCPサーバがアドレスプールを確定した場合には、自装置に割り当てられたIPアドレスも確定される。このとき、上記した通信の制限は、速やかに解除されるべきである。そこで、DHCPクライアントとして動作するノード200は、図11のステップS2120でDHCPOFFERメッセージによりIPアドレスの提示を受けた時点で、仮設定指定を適宜解除して通常のIP通信を開始するための仮設定解除判定処理を開始する。
図12は、図3のDHCPクライアント動作状態2000において実行される仮設定解除判定処理の流れを示すフローチャートである。
ステップS2310において、通信部210は、他ノード200から自装置宛てに送信されるIPパケットを入力する。
ステップS2320において、統括割当部270は、受信したIPパケットの送信元がDHCPサーバであるか否かを判断する。具体的には、統括割当部270は、IPパケットの宛先IPアドレス310からノード指定部303に記述された値を抽出し、抽出した値が「1」であるか否かを判別する。IPパケットの送信元がDHCPサーバである場合には(S2320:YES)、ステップS2330へ進む。
ステップS2330において、統括割当部270は、自装置に割り当てられたIPアドレス310に対して仮設定フラグが設定されているか否かを判別する。仮設定フラグが設定されている場合には(S2330:YES)、ステップS2340へ進む。仮設定フラグが設定されていない場合には(S2330:NO)、仮設定の解除の判定を行う必要が無いため、そのまま処理を終了する。
ステップS2340において、統括割当部270は、受信したIPパケットに、仮設定フラグが設定されているか否かを判別する。本実施の形態では、上記したように、DHCPOFFERメッセージおよびDHCPACKメッセージに設定することが可能となっている。仮設定フラグが設定されていない場合には(S2340:NO)、ステップS2350へ進む。
ステップS2350において、PAN指定判定部260は、受信したIPパケットの送信元IPアドレス310のPAN指定部302に記述された値を抽出する。そして、PAN指定判定部260は、受信したIPパケットから抽出した値と、DHCPアドレス取得部250が図11のステップS2200でDHCPによって取得したIPアドレス310のPAN指定部302に記述された値とを比較する。これらの値が一致する場合には(S2350:YES)、ステップS2360へ進む。
ステップS2360において、PAN指定判定部260は、DHCPサーバとして動作し、自装置に対してIPアドレスを提示した他ノード200が、アドレスプールを確定してIP通信を開始したものとして、DHCPアドレス取得部250に対して、対応する仮設定フラグを削除させる。そして、一連の処理を終了する。
また、受信したIPパケットの送信元がDHCPサーバではない場合や(S2320:NO)、受信したIPパケットに仮設定フラグが設定されている場合(S2340:YES)、および受信したIPパケットの送信元アドレスと自装置で取得したIPアドレス310とでPAN指定部302の値が異なる場合は(S2350:NO)、ステップS2310へ戻る。
このようにして、ノード200は、DHCPクライアントとして動作するとき、DHCPサーバとして動作する他ノード200から割り当てられたIPアドレスが仮設定であったとしても、その他ノード200から自装置宛てのIPパケットを受信したときに、この仮設定を速やかに解除することができる。
たとえば、あるノード200から、仮設定フラグが立てられたDHCPOFFERメッセージを受信した後、仮設定フラグが立てられていないDHCPACKメッセージを受信した場合、DHCPACKメッセージを受信した時点で仮設定指定が解除されることになる。
なお、たとえば、DHCPACKメッセージの後、DHCPサーバとして機能するノード200から、特にパケットが送られてこない場合もある。そこで、このような場合には、能動的にIPアドレスの仮設定の解除の可否を問い合わせ、適宜IPアドレスの取得を再試行する異常系処理を行うことが望ましい。この異常系処理としては、たとえば、仮設定が解除されないまま所定の時間が経過してタイムアウトとなった場合に、自装置のIPアドレスを問い合わせるARP要求を出力するようにし、ARP応答が受信されないままタイムアウトになった場合には、IPアドレスの仮設定が継続しているものとして、再びクライアント初期設定処理を実行しなおすようにすればよい。
また、このような事態を避けるために、統括割当部270は、自装置がDHCPサーバとして動作する際には、自装置のアドレスプールが確定した時点で、アドレス割り当てを行った他ノード200に対して、仮設定フラグの設定されていないパケットを送るようにしてもよい。
さらに、本実施の形態においては、PAN指定判定部260を仮設定の削除の判定時に用いるが、移動して無線PAN100エリア内に進入した他の装置と自装置のIPアドレスが重複する可能性を判定する場合にも使用することは可能である。
以下、図1に示す無線PAN100における各ノード200の起動タイミングの具体例を用いて、各ノード200の動作および信号の様子について説明する。
図13は、図1に示す無線PAN100の各ノード200が初期設定を行う際の、各ノード200の動作および信号の様子の一例を示すシーケンス図である。ここでは、第1のノード200−1が先に電源投入され、その直後の第1のノード200−1の初期設定が完了していない段階で、第2のノード200−2が電源投入された場合の例を図示している。
ステップS5100において、時刻tに、第1のノード200−1は電源オン(ON)状態となり、第2のノード200−2は電源オフ(OFF)状態のままであったとする。
ステップS5200において、第1のノード200−1は、時刻tの直後に、DHCPDISCOVERメッセージをブロードキャスト出力する(図11のステップS2110)。ただし、この時点で、第2のノード200−2はOFF状態であるため、第1のノード200−1に応答は返ってこない(図11のステップS2120:NO)。
ステップS5300において、第1のノード200−1は、DHCPサーバ動作状態に入る(図11のステップS3100)。
ステップS5400において、ステップS5300で第1のノード200−1がDHCPサーバ動作状態に入った直後に、第2のノード200−2がON状態になったとする。
ステップS5500において、第2のノード200−2は、DHCPDISCOVERメッセージをブロードキャスト出力する(図11のステップS2110)。
ステップS5600において、第1のノード200−1は、既にサーバ初期設定処理およびIPアドレス割当処理を開始していることから、第2のノード200−2からのDHCPDISCOVERメッセージの入力に対応して、割り当ての対象となるIPアドレスを選択する(図10のステップS3220)。そして、第1のノード200−1は、DHCPOFFERメッセージを送出する(図10のステップS3250)。
ここでは、第1のノード200−1は、図6に示すアドレスプール350を生成し、自装置の仮サーバアドレスとして「192.168.1.1」を、第2のノード200−2のIPアドレスとして「192.168.1.2」を、それぞれ選択したものとする。
また、この時点で、第1のノード200−1のサーバ初期設定処理が、図4のステップS3120に到達していなかったとする(図10のステップS3230:NO)。この場合、上記したように、第1のノード200−1は、送出するDHCPOFFERメッセージに、仮設定フラグを設定する(図10のステップS3240)。したがって、第2のノード200−2には、仮設定フラグが立てられたIPアドレス「192.168.1.2」が提供される(図11のステップS2140)。
ステップS5700において、第1のノード200−1は、サーバ初期設定処理を継続し、状況確認のARP Probeメッセージ410を出力する(図4のステップS3120)。ただし、この時点で第2のノード200−2は、提供されたIPアドレスを使用することを決定していないため、第1のノード200−1に応答は返ってこない。なお、第2のノード200−2が提供されたIPアドレスを使用することを既に決定していたとしても、第1のノード200−1とは異なるIPアドレスであるため、やはり応答は返ってこない。
ステップS5800において、第2のノード200−2は、クライアント初期設定処理を継続し、DHCPREQUESTメッセージを出力する(図11のステップS2160)。
ステップS5900において、第1のノード200−1は、ステップS5800のDHCPREQUESTメッセージに対する応答として、DHCPACKメッセージを出力する(図10のステップS3310)。これにより、第2のノード200−2は、IPアドレス「192.168.1.2」が割り当てられ、IP通信が可能な状態となる。
この時点で、第1のノード200−1が、図4に示すサーバ初期設定処理において、状況確認のARP Probeメッセージ410をまだ1回しか出力していなかったとする(図10のステップS3230:NO)。この場合、上記したように、第1のノード200−1は、送出するDHCPACKメッセージに仮設定フラグを設定する(図10のステップS3300)。したがって、第2のノード200−2のIPアドレスには、仮設定フラグが立てられたままとなる(図11のステップS2190)。
ステップS6000において、第1のノード200−1は、サーバ初期設定処理を継続し、状況確認のARP Probeメッセージ410をさらに2回出力する(図4のステップS3120)。ただし、第2のノード200−2には第1のノード200−1とは異なるIPアドレスが割り当てられているため、第1のノード200−1に応答は返ってこない(図4のステップS3140:YES)。
ステップS6100において、第1のノード200−1は、使用要求のARP Probeメッセージ430を出力し(図4のステップS3140)、やがてサーバ初期設定処理を終了する。また、第2のノード200−2は、IPアドレスに仮設定フラグが立っているものの、やがてクライアント初期設定処理を終了する。
この結果、第1のノード200−1のサーバ初期設定処理および第2のノード200−2のクライアント初期設定処理が終了した後の時刻tには、第1のノード200−1は、DHCPサーバとして動作し、第2のノード200−2は、DHCPクライアントとして動作する。
従来技術では、正常に通信を行うためには、いずれかのノードがDHCPサーバ動作状態になってから他のノードをON状態にしなければならないが、本実施の形態のノード200では、第1のノード200−1がDHCPサーバ動作状態になる前に、第2のノード200−2をON状態としている。すなわち、本実施の形態では、複数のノード200に立て続けに電源を投入しても、各ノード200がサーバ機能とクライアント機能とを適切に選択でき、正常に通信を行うことが可能であることが分かる。また、DHCPサーバとして動作するノード200がアドレスプールを確定する前に、DHCPクライアントとして動作するノード200は、IPアドレスを取得し、IP通信を開始することができる。すなわち、2つ目以降に電源が投入されたノード200は、電源投入後、速やかにIP通信を開始することができる。
以上説明したように、本実施の形態によれば、ノードは、IPアドレスの割り当てを行うDHCPサーバとして動作する他ノードが通信範囲内に存在しないとき、DHCPサーバ動作状態に遷移する。そして、ノードは、DHCPサーバとして動作するための初期設定処理と並行して、DHCPクライアントとして動作する他ノードからの要求に応じてアドレス割り当てを行う処理を実行する。これにより、最初に電源投入が行われたノード200は、完全にサーバとしての機能を開始していなくても、DHCPクライアントとして動作する他ノードに対して、IPアドレスを割り当てることができる。すなわち、複数のノードに立て続けに電源の投入を行っても、各ノードでサーバ機能とクライアント機能とを適切に選択することができ、無線PAN全体の立ち上がりを高速化することができる。
ただし、DHCPサーバ動作状態に遷移したノードは、自装置に割り当てたIPアドレスと同一のアドレスが他ノードに既に割り当てられていないと判断する前、つまり自装置のアドレスプールを確定する前に、アドレス割り当てを行う場合には、その割り当て先に対して、アドレス割り当てが仮のものであることを通知する。すなわち、DHCPサーバ動作状態に遷移したノードは、自己が割り当てたIPアドレスが変更される可能性があることを、その割り当て先に通知する。これにより、アドレス割り当てを受ける側では、割り当てられたIPアドレスが他のノード200と重複していたり、変更される可能性があるということを知ることができ、重要度の高い情報の送信を禁止するというように、通信に適切な制限を加えることができる。
また、IPアドレスを、ネットワークアドレスと、PAN指定部と、ノード指定部とに分け、ノード200ごとに、ネットワークアドレスとPAN指定部とを共通にしてアドレスプールを生成する。これにより、DHCPサーバごとに異なるPAN指定部を設定することで、簡単にDHCPサーバ間でアドレスプールのIPアドレスの重複が発生しないようにすることができる。
さらに、DHCPサーバ及び周囲のデバイスでは、原則としてネットワークアドレスとPAN指定部が共通であることを利用して、PAN指定部を比較することにより、IPアドレスのチェックを行う。これにより、より簡単にDHCPサーバ間におけるIPアドレスやアドレスプールの重複の有無を判定することができ、IPアドレスのチェックの処理を高速化することができる。
なお、相互に無線通信を行うことができない環境下で立ち上がった複数のノードに、同一のIPアドレスが割り当てられ、ノードの移動によって、後で相互に無線通信を行うことができるようになる場合も考えられる。この場合には、DHCPサーバは、図12のステップS2350と同様に、自装置のIPアドレスのPAN指定部と、受信データの送信元のIPアドレスのPAN指定部とを比較することにより、自装置と同じアドレスプールを持つDHCPサーバの有無を調査することができる。具体的には、自己のアドレスプールに登録されていないMACアドレスを有するノードからデータを受信したときに、その送信元のIPアドレスのPAN指定部が、自装置のIPアドレスのPAN指定部と一致する場合には、自装置と同じアドレスプールを持つDHCPサーバが存在すると判断できる。この場合には、再び図4に示すサーバ初期設定処理を実行するようにすればよい。
また、以上説明した実施の形態では、本発明をテレビジョンおよびハードディスクレコーダに適用した例を説明したが、固定電話機、携帯電話機、ビデオデッキ、スピーカ、ゲーム機器など、他の各種電子機器に対して適用できることは勿論である。特に、たとえば、現金決済など、個人情報が含まれた重要な通信を行う可能性がある電子機器では、仮設定の間は重要な情報の送信は抑止することができる。また、仮設定の間は、重要な情報の送信を抑止する一方で、ウエブ(web)アクセスやストリーミングなど、IPアドレスの変更による途切れや情報の流出がある程度許容されるような通信については通常通り行う、というように、通信の可否を適切に使い分けることができる。すなわち、PANの立ち上がりの高速化と、安全性の確保とを、両立させることができる。
本発明に係る通信装置および通信方法は、周囲の状況に応じてサーバ機能とクライアント機能を切り替えることができるとともに、より使い勝手の向上させることができ、固定電話機、携帯電話機、テレビジョン、ビデオデッキ、ハードディスクレコーダ、スピーカ、ゲーム機器など、他の各種電子機器などに有用である。
本発明の一実施の形態に係る通信装置を配置した無線PANの構成を示すシステム構成図 本実施の形態に係る通信装置の構成を示すブロック図 本実施の形態に係る通信装置の動作状態の遷移を示すフローチャート 本実施の形態に係る通信装置におけるサーバ初期設定処理の流れを示すフローチャート 本実施の形態に係る通信装置を配置した無線PANにおけるIPアドレスの体系の一例およびIPアドレスの一例を示す説明図 本実施の形態に係る通信装置が生成するアドレスプールの構成の一例を示す説明図 本実施の形態に係る状況確認のARP Probeメッセージの構成を示す説明図 本実施の形態に係る状況確認のARP応答の構成を示す説明図 本実施の形態に係る使用要求のARP Probeメッセージの構成を示す説明図 本実施の形態に係る通信装置におけるIPアドレス割当処理の流れを示すフローチャート 本実施の形態に係る通信装置におけるクライアント初期設定処理の流れを示すフローチャート 本実施の形態に係る通信装置における仮設定解除判定処理の流れを示すフローチャート 本実施の形態に係る通信装置が初期設定を行う際の、各通信装置の動作および信号の様子の一例を示すシーケンス図 従来の通信装置を用いたPANの構成の一例を示すシステム構成図 従来の通信装置の構成を示すブロック図 従来の通信装置を用いたPANにおける初期設定の動作の流れを示すフローチャート 従来の通信装置が初期設定を行う際の、各通信装置の動作および信号の様子の一例を示すシーケンス図
符号の説明
100 無線PAN
200 ノード
210 通信部
220 DHCPサーバ部
230 DHCPサーバ初期設定部
240 自律割当部
250 DHCPアドレス取得部
260 PAN指定判定部
270 統括割当部
280 アプリケーション部
290 アプリケーション通信部
300 無線通信路

Claims (5)

  1. 他ノードに対してIPアドレスを割り当てるノードが通信可能範囲内に存在するとき、当該ノードに対して、自装置へのIPアドレスの割り当てを要求するクライアント動作部と、
    他ノードに対してIPアドレスを割り当てるノードが通信可能範囲内に存在しないとき、自装置に対して自律的にIPアドレスを割り当て、当該IPアドレスに基づき、他ノードに対してIPアドレスを割り当てるサーバ動作部と、
    前記サーバ動作部が自装置に割り当てたIPアドレスと同一のアドレスが他ノードに既に割り当てられているか否かを判断する割当判断部と、
    前記割当判断部が、前記サーバ動作部が自装置に割り当てたIPアドレスと同一のアドレスが他ノードに既に割り当てられていないと判断する前に、前記サーバ動作部が他ノードに対してIPアドレスの割り当てを行うとき、その割り当て先に対して当該IPアドレスの割り当てが仮のものであることを通知する仮設定通知部と、
    を有する通信装置。
  2. 前記サーバ動作部は、
    割り当ての対象となるIPアドレスを格納した所定のメッセージを前記他ノードへ送信することにより、前記他ノードに対してIPアドレスを割り当て、
    前記仮設定通知部は、
    前記所定のメッセージに仮設定フラグを立てることにより、当該所定のメッセージによるIPアドレスの割り当てが仮のものであることを通知する、
    請求項1記載の通信装置。
  3. 自装置に割り当てられたIPアドレスを使用してIP通信を行う通信部と、
    自装置に対するIPアドレスの割り当てが仮のものであることを通知されたとき、前記通信部によるIP通信を制限する通信制限部と、
    をさらに有する請求項1記載の通信装置。
  4. 前記割当判断部が、前記サーバ動作部が自装置に割り当てたIPアドレスと同一のアドレスが他ノードに既に割り当てられていないと判断したとき、前記サーバ動作部によるIPアドレスの割り当て先に対して当該IPアドレスの割り当ての確定を通知する設定確定通知部と、
    前記通信部が、IP通信を制限した状態で自装置に対するIPアドレスの割り当ての確定を通知されたとき、前記通信制限部によるIP通信の制限を解除する制限解除部と、
    をさらに有する請求項3記載の通信装置。
  5. 他ノードに対してIPアドレスを割り当てるノードが通信可能範囲内に存在するか否かを判断するサーバ有無判断ステップと、
    他ノードに対してIPアドレスを割り当てるノードが通信可能範囲内に存在しないと判断したとき、自装置に対して自律的にIPアドレスを割り当て、他ノードに対してIPアドレスを割り当てるノードが通信可能範囲内に存在すると判断したとき、当該ノードに対して自装置へのIPアドレスの割り当てを要求するアドレス取得ステップと、
    自装置に対して自律的にIPアドレスを割り当てたとき、当該IPアドレスに基づき他ノードに対してIPアドレスを割り当てる処理を開始するとともに、自装置に割り当てられたIPアドレスと同一のアドレスが他ノードに既に割り当てられているか否かを判断する処理を開始する処理開始ステップと、
    自装置に割り当てられたIPアドレスと同一のアドレスが他ノードに既に割り当てられていないと判断する前に、他ノードに対してIPアドレスの割り当てを行うとき、その割り当て先に対して当該IPアドレスの割り当てが仮のものであることを通知する仮設定通知ステップと、
    を有する通信方法。
JP2006238355A 2006-09-01 2006-09-01 通信装置および通信方法 Expired - Fee Related JP4868991B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006238355A JP4868991B2 (ja) 2006-09-01 2006-09-01 通信装置および通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006238355A JP4868991B2 (ja) 2006-09-01 2006-09-01 通信装置および通信方法

Publications (2)

Publication Number Publication Date
JP2008061146A JP2008061146A (ja) 2008-03-13
JP4868991B2 true JP4868991B2 (ja) 2012-02-01

Family

ID=39243350

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006238355A Expired - Fee Related JP4868991B2 (ja) 2006-09-01 2006-09-01 通信装置および通信方法

Country Status (1)

Country Link
JP (1) JP4868991B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5154345B2 (ja) * 2008-09-03 2013-02-27 日本無線株式会社 無線アクセスネットワークシステム
JP4971281B2 (ja) * 2008-10-06 2012-07-11 株式会社リコー 無線通信装置および画像情報処理装置
JP5334202B2 (ja) * 2010-02-08 2013-11-06 Necアクセステクニカ株式会社 通信中継装置、通信中継方法、通信中継プログラム
JP5135447B2 (ja) * 2011-03-02 2013-02-06 株式会社バッファロー 無線lan装置
US20150055575A1 (en) * 2012-03-30 2015-02-26 Nec Casio Mobile Communications, Ltd. Radio device, address determination method, communication system and radio terminal
JP2014033312A (ja) * 2012-08-02 2014-02-20 Sumitomo Electric Networks Inc 通信装置、通信方法および通信プログラム
JP5682610B2 (ja) * 2012-11-07 2015-03-11 トヨタ自動車株式会社 車載通信装置、車載通信システムおよび通信方法
JP6037446B2 (ja) * 2013-03-07 2016-12-07 Necプラットフォームズ株式会社 ネットワーク装置およびネットワーク装置の制御方法
JP6101124B2 (ja) * 2013-03-18 2017-03-22 キヤノン株式会社 通信装置及びその制御方法、プログラム
US20150281947A1 (en) * 2014-03-26 2015-10-01 Qualcomm Incorporated Method and apparatus for fast ip address assignment

Also Published As

Publication number Publication date
JP2008061146A (ja) 2008-03-13

Similar Documents

Publication Publication Date Title
JP4868991B2 (ja) 通信装置および通信方法
KR101098655B1 (ko) P2p 네트워크용 분산 서버에 대한 시스템 및 방법
JP4728792B2 (ja) Ip通信装置およびこれを備えたip通信システムならびにip通信装置のipアドレス設定方法
KR100908320B1 (ko) IPv6 네트워크 내 호스트 차단 및 탐색방법
US20050246431A1 (en) Method and apparatus for selecting forwarding modes
US20070133539A1 (en) Routing apparatus for supporting IPv6 anycast service and method thereof
WO2011150720A1 (zh) 一种IPv6网络中网络设备自动配置的方法、网络设备和系统
US20120182994A1 (en) Address compatibility in a network device reload
JP2007520970A (ja) トンネリングサービス方法及びシステム
JP2002094558A (ja) パケット転送方法、移動端末装置及びルータ装置
JP2006086800A (ja) ソースアドレスを選択する通信装置
JP2008017254A (ja) ルータ装置
US20070239860A1 (en) Information processing device, network connection method, and program recording medium
CN110365557B (zh) 一种网络互连的方法及装置
JP2003298635A (ja) ソースアドレス選択システム、ルータ装置、通信ノード及びソースアドレス選択方法
CN112654049B (zh) 用于配置无线通信覆盖扩展系统的方法、系统、节点和介质
JP2004260463A (ja) ルータ装置、通信装置、ネットワークアドレス管理システム、ネットワークアドレス管理方法及びネットワークアドレス管理プログラム
WO2016177185A1 (zh) 媒体访问控制mac地址的处理方法及装置
JP2005341287A (ja) ネットワーク装置、ネットワーク接続設定プログラム
JP2007274329A (ja) 複数のdhcpサーバにおけるアドレス管理方法、dhcpサーバ及びプログラム
JP5845964B2 (ja) 通信装置及びプログラム
JP2008227663A (ja) Ip通信装置及びこれを備えたip通信システム並びにipアドレス設定方法
JP3864397B2 (ja) ユーザエッジルータ、ゲートウェイルータ、マルチホーミング通信システム、マルチホーミング通信方法およびマルチホーミング通信プログラム
JP2005136718A (ja) ネットワークアクセス管理方法、ネットワークアクセス管理装置、ネットワークサービス提供方法、ネットワークサービス提供システム、プログラム及び記憶媒体
KR100977399B1 (ko) 동적 아이피 주소 할당시 네트워크 부하 감소를 위한 dhcp 패킷 처리 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090617

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111013

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: 20111025

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111115

R150 Certificate of patent or registration of utility model

Ref document number: 4868991

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141125

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees