【解決手段】第1の通信レイヤにおける宛先アドレスがブロードキャストアドレスであり、第2の通信レイヤにおける宛先アドレスがマルチキャストアドレスであるパケットを生成する生成部と、前記生成部により生成された前記パケットを送信する送信部と、を備える、通信装置である。
第1の通信レイヤにおける宛先アドレスがブロードキャストアドレスであり、第2の通信レイヤにおける宛先アドレスがマルチキャストアドレスであるパケットを生成する生成部と、
前記生成部により生成された前記パケットを送信する送信部と、
を備える、通信装置。
前記生成部は、前記第1の通信レイヤにおける宛先アドレスが、自装置に接続された中継装置におけるスヌーピング機能の対象外となっている特定のマルチキャストアドレスであり、前記第2の通信レイヤにおける宛先アドレスがマルチキャストアドレスであるパケットを生成し、
前記送信部は、前記パケットを送信する、
請求項1から3のいずれか1項に記載の通信装置。
前記生成部は、前記第1の通信レイヤにおける宛先アドレスが、前記中継装置におけるスヌーピング機能の対象外となっている特定のマルチキャストアドレスであり、前記第2の通信レイヤにおける宛先アドレスがマルチキャストアドレスであるパケットを生成し、
前記送信部は、前記パケットを送信する、
請求項8に記載の通信システム。
第1の通信レイヤにおける宛先アドレスがブロードキャストアドレスであり、第2の通信レイヤにおける宛先アドレスがマルチキャストアドレスである探索パケットを生成する生成部と、
前記生成部により生成された前記探索パケットを送信する送信部と、
外部機器から送信された前記探索パケットに対する応答を受信する受信部と、
前記受信部により受信された前記応答に基づいて、前記外部機器を検出する検出部と、
を備える、機器検出装置。
第1の通信レイヤにおける宛先アドレスがブロードキャストアドレスであり、第2の通信レイヤにおける宛先アドレスがマルチキャストアドレスである第1のパケットを生成する第1の生成部と、
データリンク層における宛先アドレスが探索対象機器のアドレスであり、ネットワーク層における宛先アドレスが前記探索対象機器のアドレスであり、前記ネットワーク層における送信元アドレスがマルチキャストアドレスである第2のパケットを生成する第2の生成部と、
前記第1の生成部により生成された前記第1のパケット、および前記第2の生成部により生成された前記第2のパケットを送信する送信部と、
を備える、通信装置。
【発明の概要】
【発明が解決しようとする課題】
【0004】
マルチキャストとは、マルチキャストIPアドレスを使用してマルチキャストパケットを送信し、マルチキャストグループに参加している機器によりマルチキャストパケットを受信する通信方式である。マルチキャスト対応ルータは、マルチキャストパケットを受信した場合、自身に接続された機器、またはマルチキャストグループに属している他のマルチキャスト対応ルータに、マルチキャストパケットを転送する。マルチキャストによれば、マルチキャストグループに属している機器が接続されていないマルチキャスト対応ルータには、マルチキャストパケットを転送しないことで、通信トラフィックを抑制することができる。
【0005】
しかし、マルチキャスト対応ルータは、複数の機器のうち一部の機器がマルチキャストグループに属している場合であっても、自身に接続されている全ての機器にマルチキャストパケットを転送するため、マルチキャストグループに属していない機器にもマルチキャストパケットが届いてしまう。このため、マルチキャストグループに属していない機器は、マルチキャストパケットの受信のために帯域が奪われてしまうという問題がある。
【0006】
そこで、LAN(Local Area Network)における中継装置は、IGMPスヌーピング(IGMP(Internet Group Management Protocol) Snooping)やMLDスヌーピング(MLD(Multicast Listener Discovery) Snooping)という機能を搭載する場合がある。IGMPスヌーピングはIPv4で動作する機能であり、MLDスヌーピングは、IGMPスヌーピングと同様の機能をIPv6で動作させたものであるため、ここでは説明を省略する。IGMPは、マルチキャストグループへの参加および離脱を管理するためのプロトコルである。IGMPにおいて、マルチキャストグループに参加する機器がマルチキャスト対応ルータにメンバーシップレポートを送信し、マルチキャスト対応ルータがマルチキャストグループへの参加を確認するため機器にメンバーシップクエリを送信する。メンバーシップクエリを受信した機器は、マルチキャストグループに参加中である場合、メンバーシップレポートを回答し、マルチキャストグループから離脱する場合、リーブグループを回答する。もしくは、メンバーシップレポートを回答しない。
【0007】
IGMPスヌーピングを搭載した中継装置は、IGMPパケットを監視し、マルチキャストグループに参加していない機器が接続されたLANポートからマルチキャストパケットを転送しない。これにより、マルチキャストグループに属していない機器における上記問題を防止する。IGMPスヌーピングは、中継装置の設定により、有効または無効に設定される。
【0008】
LANにおける中継装置は、マルチキャスト対応ルータに代わってメンバーシップレポートを送信するクエリア(Querier)機能を搭載する場合がある。クエリア機能によれば、マルチキャスト対応ルータが存在しないLANにおいて、中継装置のIGMPスヌーピングが有効に設定されている場合に、マルチキャストパケットが中継装置でブロックされることを防止することができる。
【0009】
しかし、マルチキャスト対応ルータがないLANにおいて、中継装置のIGMPスヌーピングが有効になっている場合において、中継装置のクエリア機能が有効になっていない場合、機器にメンバーシップクエリが送信されないので、機器がマルチキャストに対応していても、機器がメンバーシップレポートを回答する契機が無いため、マルチキャストグループに参加することができず、マルチキャストパケットが当該機器に転送されないという問題がある。
【0010】
本発明は、上記の課題に鑑みてなされたものであって、中継装置によりマルチキャストパケットが機器に転送されないという不具合を抑制することができる通信装置、通信方法、通信システム、プログラム、および機器検出装置を提供することを目的としている。
【課題を解決するための手段】
【0011】
(1)本発明の一態様は、第1の通信レイヤにおける宛先アドレスがブロードキャストアドレスであり、第2の通信レイヤにおける宛先アドレスがマルチキャストアドレスであるパケットを生成する生成部と、前記生成部により生成された前記パケットを送信する送信部と、を備える、通信装置である。
【0012】
(2)本発明の一態様は、上記の通信装置であって、前記パケットにおいて、前記第2の通信レイヤにおける送信元アドレスが自装置のアドレスである。
【0013】
(3)本発明の一態様は、上記の通信装置であって、前記送信部は、前記パケットを、所定時間ごとに送信する。
【0014】
(4)本発明の一態様は、上記の通信装置であって、前記所定期間は、前記第1の通信レイヤおよび/または前記第2の通信レイヤにおける宛先アドレスに基づいて通信制御を行う外部装置の処理間隔に依存する。
【0015】
(5)本発明の一態様は、上記の通信装置であって、前記生成部は、前記第1の通信レイヤにおける宛先アドレスが、自装置に接続された中継装置におけるスヌーピング機能の対象外となっている特定のマルチキャストアドレスであり、前記第2の通信レイヤにおける宛先アドレスがマルチキャストアドレスであるパケットを生成し、前記送信部は、前記パケットを送信する。
【0016】
(6)本発明の一態様は、第1の通信レイヤにおける宛先アドレスがブロードキャストアドレスであり、第2の通信レイヤにおける宛先アドレスがマルチキャストアドレスであるパケットを生成し、生成された前記パケットを送信する通信方法である。
【0017】
(7)本発明の一態様は、通信装置のコンピュータに、第1の通信レイヤにおける宛先アドレスがブロードキャストアドレスであり、第2の通信レイヤにおける宛先アドレスがマルチキャストアドレスであるパケットを生成させ、生成された前記パケットを送信させる、プログラムである。
【0018】
(8)本発明の一態様は、探索対象機器を含む通信システムであって、前記探索対象機器に接続され、スヌーピング(Snooping)機能が有効に設定された中継装置と、前記中継装置を介して前記探索対象機器に接続された通信装置であって、第1の通信レイヤにおける宛先アドレスがブロードキャストアドレスであり、第2の通信レイヤにおける宛先アドレスがマルチキャストアドレスであるパケットを生成する生成部と、探索対象機器に、前記生成部により生成された前記パケットを送信する送信部と、を備える、通信装置と、を備える通信システムである。
【0019】
(9)本発明の一態様は、上記の通信システムであって、前記生成部は、前記第1の通信レイヤにおける宛先アドレスが、前記中継装置におけるスヌーピング機能の対象外となっている特定のマルチキャストアドレスであり、前記第2の通信レイヤにおける宛先アドレスがマルチキャストアドレスであるパケットを生成し、前記送信部は、前記パケットを送信する。
【0020】
(10)本発明の一態様は、上記の通信システムであって、前記中継装置は、IGMPメンバーシップクエリを送信する機能が無効に設定される。
【0021】
(11)本発明の一態様は、第1の通信レイヤにおける宛先アドレスがブロードキャストアドレスであり、第2の通信レイヤにおける宛先アドレスがマルチキャストアドレスである探索パケットを生成する生成部と、前記生成部により生成された前記探索パケットを送信する送信部と、外部機器から送信された前記探索パケットに対する応答を受信する受信部と、前記受信部により受信された前記応答に基づいて、前記外部機器を検出する検出部と、を備える、機器検出装置である。
【0022】
(12)本発明の一態様は、第1の通信レイヤにおける宛先アドレスがブロードキャストアドレスであり、第2の通信レイヤにおける宛先アドレスがマルチキャストアドレスである第1のパケットを生成する第1の生成部と、データリンク層における宛先アドレスが探索対象機器のアドレスであり、ネットワーク層における宛先アドレスが前記探索対象機器のアドレスであり、前記ネットワーク層における送信元アドレスがマルチキャストアドレスである第2のパケットを生成する第2の生成部と、前記第1の生成部により生成された前記第1のパケット、および前記第2の生成部により生成された前記第2のパケットを送信する送信部と、を備える、通信装置である。
【発明の効果】
【0023】
本発明の一態様によれば、中継装置によりマルチキャストパケットが機器に転送されないという不具合を抑制することができる。
【発明を実施するための形態】
【0025】
以下、本発明を適用した通信装置、通信方法、通信システム、およびプログラムを、図面を参照して説明する。
【0026】
<第1の実施形態>
図1は、第1の実施形態の通信システム1の一構成例を示すブロック図である。実施形態の通信システム1は、マルチキャストパケットを利用して、各種のサービスを提供する。通信システム1は、例えば、家庭内に設置されたエアコンや照明などの宅内機器に搭載された通信機器にパケットを送信することで、宅内機器を制御するサービスを提供する。サービスは、例えば、HEMS(Home Energy Management System(ホーム エネルギー マネジメント システム))を実現するサービスである。
【0027】
通信システム1は、
図1に示すように、例えば、通信制御装置100と、中継装置200と、通信機器300とを備える。通信制御装置100、中継装置200、および通信機器300は、ネットワークNWに接続される。ネットワークNWに接続される各装置は、NIC(Network Interface Card)や無線通信モジュールなどの通信インターフェースを備えている(
図1では不図示)。ネットワークNWは、家庭内のLAN(ローカルエリアネットワーク)であるが、これに限定されず、一部にWifiなどが含まれて良い。
【0028】
通信制御装置100、中継装置200、および通信機器300は、例えば、ECHONET Lite規格に従って、パケットを送受信する。なお、実施形態は、通信プロトコルとしてECHONET Lite規格を記載したが、これに限定されず、マルチキャストパケットを送受信する規格であれば、DLNA(登録商標)(Digital Living Network Alliance)等の他の通信プロトコルにも適用可能である。
【0029】
通信制御装置100は、例えば、HEMSコントローラである。通信制御装置100は、探索パケット生成部110と、送受信部120とを備える。これらの機能部は、例えばCPU(Central Processing Unit)等のプロセッサがプログラムメモリに格納されたプログラムを実行することにより実現される。また、これらの機能部のうち一部または全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array)等のハードウェアにより実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【0030】
探索パケット生成部110は、探索パケットを生成する。探索パケットは、通信システム1においてマルチキャストに対応する通信機器300を探索するためのパケットである。送受信部120は、探索パケット生成部110により生成された探索パケットをネットワークNWに送信する。
【0031】
送受信部120は、IGMP(Internet Group Management Protocol)に従った処理を実行してよい。IGMPは、マルチキャストグループに対する参加および離脱を管理する通信プロトコルである。送受信部120は、通信制御装置100をマルチキャストグループに加入させる場合、IGMPメンバーシップレポートを中継装置200に送信する。これにより、送受信部120は、通信制御装置100をマルチキャストグループに加入させることができる。送受信部120は、中継装置200からIGMPメンバーシップクエリを受信した場合において、マルチキャストグループへの加入を継続する場合、IGMPメンバーシップクエリを中継装置200に返信する。送受信部120は、中継装置200からIGMPメンバーシップクエリを受信した場合において、マルチキャストグループから離脱する場合、IGMPリーブグループを回答する。もしくは、IGMPメンバーシップクエリを中継装置200に送信しない。これにより、送受信部120は、通信制御装置100をマルチキャストグループから離脱させることができる。
【0032】
図2は、第1の実施形態における探索パケット500の一例を示す図である。探索パケット500は、ペイロードフィールドと、送信元IPアドレスフィールドと、送信元MACアドレスフィールドと、宛先IPアドレスフィールドと、宛先MACアドレスフィールドとを含む。ペイロードフィールドには、例えば、通信機器300の応答を要求するコマンドが格納される。送信元IPアドレスフィールドには、通信制御装置100のIPアドレスが格納される。送信元MACアドレスフィールドには、通信制御装置100のMACアドレスが格納される。宛先IPアドレスフィールドには、マルチキャストIPアドレスが格納される。宛先MACアドレスフィールドには、ブロードキャストアドレスが格納される。
【0033】
中継装置200は、
図1に示すように、レイヤ2処理部210と、レイヤ3処理部220と、無線処理部230とを備える。これらの機能部は、例えばCPU等のプロセッサがプログラムメモリに格納されたプログラムを実行することにより実現される。また、これらの機能部のうち一部または全部は、LSI、ASIC、またはFPGA等のハードウェアにより実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【0034】
レイヤ2処理部210は、レイヤ2(データリンク層、第1の通信レイヤ)における処理を実行する。レイヤ2処理部210は、複数のポート212−1、212−2、および212−3を備える。レイヤ2処理部210は、パケットを受信した場合、宛先MACアドレスフィールドに格納されたMACアドレスに基づいてポート212を決定し、決定したポート212からパケットを転送する。
【0035】
レイヤ3処理部220は、レイヤ3(ネットワーク層、第2の通信レイヤ)における処理を実行する。レイヤ3処理部220は、パケットを受信した場合、宛先IPアドレスフィールドに格納されたIPアドレスに基づいてパケットの転送先を決定する。レイヤ3処理部220は、宛先IPアドレスが割り当てられている通信機器300、または宛先IPアドレスが割り当てられている通信機器300が接続されたルータ(不図示)をパケットの転送先として決定する。
【0036】
レイヤ3処理部220は、IGMP(Internet Group Management Protocol)に従った処理を実行する。レイヤ3処理部220は、通信制御装置100または通信機器300からIGMPメンバーシップレポートを受信した場合、IGMPメンバーシップレポートの送信元の通信制御装置100または通信機器300がマルチキャストグループに加入していることを認識する。レイヤ3処理部220は、マルチキャストグループに加入している通信制御装置100または通信機器300宛に、定期的(例えば2分毎)に、IGMPメンバーシップクエリを送信する。レイヤ3処理部220は、IGMPメンバーシップクエリに対してIGMPメンバーシップレポートを受信した場合、IGMPメンバーシップレポートの送信元の通信制御装置100または通信機器300が継続してマルチキャストグループに加入していることを認識する。レイヤ3処理部220は、IGMPメンバーシップクエリに対してIGMPメンバーシップレポートを受信しない場合、もしくは、通信制御装置100または通信機器300からIGMPリーブグループを受信した場合、IGMPメンバーシップクエリの宛先の通信制御装置100または通信機器300がマルチキャストグループから離脱したことを認識する。
【0037】
中継装置200は、マルチキャストグループに加入している通信制御装置100または通信機器300が接続されたポート212を認識する。中継装置200は、マルチキャストパケットを受信した場合、マルチキャストグループに加入している通信制御装置100または通信機器300が接続されたポート212にマルチキャストパケットを転送する。すなわち、中継装置200は、マルチキャストグループに加入している通信制御装置100または通信機器300が接続されていないポート212にマルチキャストパケットを転送しない。
【0038】
レイヤ2処理部210は、IGMPスヌーピング(IGMP Snooping)機能を搭載する。IGMPスヌーピング機能は有効または無効に設定可能である。なお、本実施形態においては、IPv4において動作するIGMPスヌーピング機能について説明するが、これに限定されず、IPv6において動作する機能であるMLDスヌーピング機能を搭載した機器についても、本実施形態において説明した処理を行ってもよいことは勿論である。なお、IGMPスヌーピング機能およびMLDスヌーピング機能は、スヌーピング機能の一例である。
【0039】
レイヤ2処理部210は、IGMPスヌーピング機能が有効である場合、各ポート212についてIGMPメンバーシップレポートを監視する。また、レイヤ2処理部210は、宛先MACアドレスを監視することで、受信したパケットがマルチキャストパケットであるか否かを判定する。レイヤ2において、マルチキャストパケットのMACアドレスはマルチキャストIPアドレスから生成されるので、レイヤ2処理部210は、MACアドレスを参照することで、マルチキャストパケットであるか否かを判定することができる。レイヤ2処理部210は、所定期間中にIGMPメンバーシップレポートを受信しているポート212−2がある場合において、マルチキャストパケットを受信した場合、当該ポート212−2にマルチキャストパケットを転送する。レイヤ2処理部210は、所定期間中にIGMPメンバーシップレポートを受信していないポート212−3がある場合において、マルチキャストパケットを受信した場合、当該ポート212−3にマルチキャストパケットを転送しない。なお、レイヤ2処理部210は、あるポートを経由してリーブグループを受信した場合においても、当該ポートにマルチキャストパケットを転送しない処理を実行してよい。
【0040】
レイヤ2処理部210は、マルチキャスト対応ルータに代わってメンバーシップレポートを送信するクエリア(Querier)機能を搭載する。クエリア機能は、有効または無効に設定可能である。レイヤ2処理部210は、クエリア機能が有効である場合、定期的に、通信機器300にIGMPメンバーシップクエリを送信し、通信機器300にIGMPメンバーシップレポートの返信を促す。
【0041】
無線処理部230は、例えば、WiFiなどの無線通信規格に従って、通信機器300と通信を実行する。
【0042】
通信機器300は、宅内機器に搭載される。通信機器300は、レイヤ2およびレイヤ3における処理を実行することで、パケットを送受信する。通信機器300は、パケットに格納されたMACアドレスおよびIPアドレスが自装置宛である場合、当該パケットを受信する。通信機器300は、パケットに格納されたMACアドレスおよびIPアドレスが自装置宛でない場合、当該パケットを破棄する。
【0043】
ネットワークNWにおいて、IGMPに対応している通信機器300と、IGMPに対応していない通信機器300とが存在する。IGMPに対応している通信機器300は、IGMPメンバーシップクエリを受信した場合、IGMPメンバーシップレポートを返信する。IGMPに対応していない通信機器300は、IGMPメンバーシップクエリを受信した場合、IGMPメンバーシップレポートを返信しない。なお、本実施形態において、IGMPに対応していない通信機器300は、IGMPを利用してマルチキャストグループに加入および離脱できないものの、マルチキャスト通信を行うことができるものとする。
【0044】
中継装置200において、IGMPスヌーピング機能が有効になっているが、クエリア機能が有効になっていない場合、通信制御装置100または通信機器300にIGMPメンバーシップクエリが送信されないため、IGMPスヌーピング機能によりマルチキャストパケットが通信制御装置100または通信機器300に転送されない場合がある。これに対し、本実施形態の通信制御装置100は、
図2に示す探索パケット500を生成して、通信機器300に送信する。
【0045】
図3は、第1の実施形態の通信システムにおけるシーケンスの一例を示す図である。まず、通信制御装置100は、探索パケット500を生成し、探索パケット500を送信する(ステップST1)。中継装置200は、探索パケット500における宛先MACアドレスフィールドにブロードキャストアドレスが格納されているので、当該探索パケット500を全てのポート212に転送(ブロードキャスト)する(ステップST2)。IGMPに対応する通信機器300は、探索パケット500を受信した場合、宛先IPアドレスフィールドにマルチキャストIPアドレスが格納されているので、当該探索パケット500を受信し、探索パケット500に対して返信を行う(ステップST3)。IGMPに対応しない通信機器300は、探索パケット500を受信した場合、宛先IPアドレスフィールドにマルチキャストIPアドレスが格納されているので、当該探索パケット500を受信し、探索パケット500に対して返信を行う(ステップST4)。
【0046】
図4は、第1の実施形態における通信制御装置100の処理の一例を示すフローチャートである。通信制御装置100は、探索パケット500を送信し(ステップST10)、所定の応答期間が経過したか否かを判定する(ステップST12)。通信制御装置100は、所定の応答期間が経過していない場合(ステップST12:NO)、待機する。通信制御装置100は、所定の応答期間が経過した場合(ステップST12:YES)、通信機器300からの応答に基づいて、ネットワークNW内の通信機器300を管理する(ステップST14)。ネットワークNW内の通信機器300を管理することには、例えば、通信機器300の状態を監視することや、通信機器300を制御することを含む。通信制御装置100は、探索タイミングが到来したか否かを判定する(ステップST16)。通信制御装置100は、探索タイミングが到来していない場合(ステップST16:NO)、待機する。通信制御装置100は、例えば、前回の探索パケット500の送信タイミングから所定期間(例えば2分)を経過した場合、探索タイミングが到来したと判定し(ステップST16:YES)、ステップST10に処理を戻す。
【0047】
なお、探索タイミングは、中継装置200においてマルチキャストグループを管理するための処理間隔よりも短い間隔で探索パケット500を送信するように設定されてよい。中継装置200においてマルチキャストグループを管理するための処理間隔は、例えば、IGMPスヌーピング機能によりIGMPメンバーシップレポートを受信しない場合に、ポート212からマルチキャストパケットの転送をしないことを設定する処理間隔である。すなわち、探索タイミングは、レイヤ2および/またはレイヤ3における宛先アドレスに基づいて通信制御を行う外部装置(中継装置200)の処理間隔に依存する。
【0048】
(第1の実施形態の効果)
以上説明したように、第1の実施形態の通信システム1によれば、レイヤ2における宛先アドレスがブロードキャストアドレスであり、レイヤ3における宛先アドレスがマルチキャストアドレスである探索パケット500を生成し、探索パケット500を送信する。中継装置200においてIGMPスヌーピング機能が有効になっているが、クエリア機能が有効になっていない場合において、通信機器300が接続されたポート212からマルチキャストパケットから転送されない場合であっても、探索パケット500の宛先MACアドレスがブロードキャストアドレスであるので、中継装置200から通信機器300に探索パケット500を転送させることができる。また、探索パケット500の宛先IPアドレスがマルチキャストIPアドレスであるので、マルチキャストに対応した通信機器300にマルチキャストパケット(探索パケット500)を受信させることができる。この結果、通信システム1によれば、中継装置200によりマルチキャストパケットが通信機器300に転送されないという不具合を抑制することができる。
【0049】
また、第1の実施形態の通信制御装置100によれば、探索パケット500に対する通信機器300からの応答を受信した場合に、マルチキャストに対応した通信機器300を検出することができる。具体的に、第1の実施形態の通信制御装置100によれば、IGMPに対応している通信機器300のみならず、IGMPに対応していなくてもマルチキャストに対応する通信機器300を検出することができる。これにより、通信制御装置100によれば、自身が接続されているネットワークNWに存在する通信機器300のうち、マルチキャストに対応した通信機器300を認識することができる。
【0050】
(変形例1)
図5は、第1の実施形態における変形例1の探索パケットの一例を示す図である。探索パケット500#における宛先MACアドレスフィールドには、ブロードキャストアドレスに代えて、特定のマルチキャストMACアドレスが含まれていてよい。特定のマルチキャストMACアドレスは、スヌーピング機能の対象外となっているマルチキャストMACアドレスである。すなわち、特定のマルチキャストMACアドレスが宛先MACアドレスフィールドに格納されている場合、中継装置200は、スヌーピング機能が有効に設定されていても、マルチキャストパケットを転送する。なお、通信制御装置100は、
図2に示した探索パケット500を送信し且つ
図5に示した探索パケット500#を送信しなくてよい。また、通信制御装置100は、
図2に示した探索パケット500を送信しなく且つ
図5に示した探索パケット500#を送信してよい。さらに、通信制御装置100は、
図2に示した探索パケット500を送信し且つ
図5に示した探索パケット500#を送信してよい。
【0051】
(変形例2)
上述した通信システム1において、通信制御装置100は、定期的に探索パケット500を送信してよい。通信制御装置100は、探索パケット500のペイロードフィールドには、探索パケット500に対して応答を要求する情報を格納する。通信制御装置100は、探索パケット500に対して返信した通信機器300を、マルチキャストに対応した機器であることを検出することができる。また、通信制御装置100は、定期的に探索パケット500を送信することで、マルチキャストに対応した機器の状態の変化を認識することができる。
【0052】
(変形例3)
上述した通信システム1において、通信制御装置100は、探索パケット500に加え、宛先MACアドレスフィールドにマルチキャストMACアドレスを格納した既存の探索パケットを送信してよい。通信制御装置100は、例えば、探索パケット500と、既存の探索パケットとを同時に送信する。これにより、通信制御装置100は、既存の探索パケットに応答したパケットに基づいて通信機器300を管理すると共に、探索パケット500に応答したパケットに基づいて通信機器300を管理することができる。
【0053】
(変形例4)
変形例3において、通信制御装置100は、既存の探索パケットに対するパケットの受信結果と、探索パケット500に対するパケットの受信結果とを比較してよい。通信制御装置100は、例えば、既存の探索パケットに対する応答パケットを受信しないが、探索パケット500に対してパケットを受信した場合、中継装置200においてIGMPスヌーピング機能が有効になっていると認識することができる。これにより、通信制御装置100は、例えば、IGMPメンバーシップクエリを送信することで、マルチキャストグループに加入するよう通信機器300に促すことができる。
【0054】
<第2の実施形態>
以下、第2の実施形態について説明する。なお、第1の実施形態と同じ部分については同一符号を付することにより詳細な説明を省略する。
【0055】
図6は、第2の実施形態の通信システム1Aの一構成例を示すブロック図である。通信システム1Aにおける通信制御装置100Aは、探索パケット生成部110Aと、送受信部120Aと、マルチキャスト処理部130Aとを備える。これらの機能部は、例えばCPU等のプロセッサがプログラムメモリに格納されたプログラムを実行することにより実現される。また、これらの機能部のうち一部または全部は、LSI、ASIC、またはFPGA等のハードウェアにより実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【0056】
探索パケット生成部110Aは、探索パケットを生成する。探索パケットは、通信システム1においてマルチキャストに対応する通信機器300を探索するためのパケットである。送受信部120Aは、探索パケット生成部110Aにより生成された探索パケットをネットワークNWに送信する。
【0057】
マルチキャスト処理部130Aは、IGMPに従って、中継装置200宛に送信されるIGMPメンバーシップレポートを生成する。送受信部120Aは、マルチキャスト処理部130Aにより生成されたIGMPメンバーシップレポートを中継装置200に送信する。マルチキャスト処理部130Aは、IGMPに従って、通信機器300宛に送信されるIGMPメンバーシップクエリを生成する。送受信部120Aは、マルチキャスト処理部130Aにより生成されたIGMPメンバーシップクエリを通信機器300に送信する。
【0058】
図7は、第2の実施形態における探索パケット510の一例を示す図である。探索パケット510は、ペイロードフィールドと、送信元IPアドレスフィールドと、送信元MACアドレスフィールドと、宛先IPアドレスフィールドと、宛先MACアドレスフィールドとを含む。ペイロードフィールドには、通信機器300の応答を要求するコマンドが格納される。通信機器300の応答を要求するコマンドは、例えば、ECHONET Lite規格におけるGETコマンドやICMP(Internet Control Message Protocol)におけるEcho Message等である。送信元IPアドレスフィールドには、マルチキャストIPアドレスが格納される。送信元MACアドレスフィールドには、通信制御装置100のMACアドレスが格納される。宛先IPアドレスフィールドには、任意の通信機器300のIPアドレスが格納される。宛先MACアドレスフィールドには、任意の通信機器300のMACアドレスが格納される。
【0059】
図8は、第2の実施形態における応答パケットの一例を示す図である。応答パケット520は、探索パケット510を受信したことに対して、通信機器300により生成される。応答パケット520は、ペイロードフィールドと、送信元IPアドレスフィールドと、送信元MACアドレスフィールドと、宛先IPアドレスフィールドと、宛先MACアドレスフィールドとを含む。ペイロードフィールドには、応答信号が格納される。応答信号は、通信機器300の応答を要求するコマンドに対する応答を表す信号である。送信元IPアドレスフィールドには、通信機器300のIPアドレスが格納される。送信元MACアドレスフィールドには、通信機器300のMACアドレスが格納される。宛先IPアドレスフィールドには、マルチキャストIPアドレスが格納される。宛先MACアドレスフィールドには、マルチキャストMACアドレスが格納される。
【0060】
図9は、第2の実施形態の通信システムにおけるシーケンスの一例を示す図である。まず、通信制御装置100は、探索パケット510を生成し、探索パケット510を送信する(ステップST120)。中継装置200は、探索パケット510における宛先MACアドレスフィールドに任意の通信機器300のIPアドレスが格納されているので、当該探索パケット510を、通信機器300が接続されているポート212に転送する(ステップST121)。任意の通信機器300は、探索パケット510を受信した場合、宛先IPアドレスフィールドに自身のIPアドレスが格納されているので、当該探索パケット510を受信し、探索パケット510に対して応答パケット520の返信を行う(ステップST122)。中継装置200は、応答パケット520のMACアドレスがマルチキャストMACアドレスであり、且つ通信制御装置100がマルチキャストグループに加入していないので、通信制御装置100が接続されたポート212には応答パケット520を転送しない(ステップST123)。
【0061】
通信制御装置100は、探索パケット510に対する応答を受信しないので、中継装置200でIGMPスヌーピング機能が有効になっていることを認識し、IGMPメンバーシップレポートを中継装置200に送信する。中継装置200は、IGMPメンバーシップレポートを受信したことに応じて、通信制御装置100Aをマルチキャストグループに加入させる(ステップST124)。
【0062】
次に通信制御装置100は、不特定の通信機器300においてIGMPメンバーシップクエリを受信できるように、IGMPメンバーシップクエリを送信する。通信機器300は、IGMPメンバーシップクエリを受信したことに応じて、IGMPメンバーシップレポートを中継装置200に送信する。中継装置200は、IGMPメンバーシップレポートを受信したことに応じて、通信機器300をマルチキャストグループに加入させる(ステップST125)。
【0063】
図10は、第2の実施形態における通信制御装置100Aの処理の一例を示すフローチャートである。
【0064】
通信制御装置100Aは、まず、通信可能な通信機器300のうち任意の通信機器300のIPアドレスを選択する(ステップST130)。次に、通信制御装置100Aは、選択したIPアドレス宛に、送信元IPアドレスをマルチキャストIPアドレスに設定した探索パケット510を送信する(ステップST132)。次に通信制御装置100Aは、探索パケット510に対する応答を受信するために待機する(ステップST134)。次に、通信制御装置100Aは、応答パケット520を受信したか否かを判定する(ステップST136)。通信制御装置100Aは、応答パケット520を受信した場合(ステップST136:YES)、次の処理のために待機した後(ステップST142)、ステップST130に処理を戻す。
【0065】
通信制御装置100Aは、応答パケット520を受信しない場合(ステップST136:NO)、IGMPメンバーシップレポートを送信する(ステップST138)。また、通信制御装置100Aは、IGMPメンバーシップクエリを、スヌーピング機能の対象外となっているマルチキャストIPアドレス宛に送信する(ステップST140)。なお、通信制御装置100Aは、ステップST138およびステップST140を同時に行ってよく、ステップST140の次にステップST138を行ってよい。通信制御装置100Aは、IGMPメンバーシップレポートおよびIGMPメンバーシップクエリの送信後、ステップST142に処理を進める。
【0066】
なお、ステップST142における次の処理のために待機時間は、中継装置200においてマルチキャストグループを管理するための処理間隔よりも短い間隔で探索パケット510を送信するように設定されてよい。中継装置200においてマルチキャストグループを管理するための処理間隔は、例えば、IGMPスヌーピング機能によりIGMPメンバーシップレポートを受信しない場合に、ポート212からマルチキャストパケットの転送をしないことを設定する処理間隔である。すなわち、次の処理のために待機時間は、レイヤ2および/またはレイヤ3における宛先アドレスに基づいて通信制御を行う外部装置(中継装置200)の処理間隔に依存する。
【0067】
(第2の実施形態の効果)
以上のように、第2の実施形態の通信システム1Aによれば、レイヤ2における宛先アドレスが探索対象機器としての通信機器300のアドレスであり、レイヤ3における宛先アドレスが探索対象機器のアドレスであり、レイヤ3における送信元アドレスがマルチキャストアドレスである探索パケット510を生成し、生成された探索パケット510を送信する。これにより、通信システム1Aによれば、探索パケット510に対する応答がない場合に、IGMPメンバーシップレポートを送信することができる。この結果、通信システム1Aによれば、通信制御装置100Aをマルチキャストグループに加入させることができる。
【0068】
また、通信システム1Aによれば、探索パケット510に対する応答が通信機器300からない場合に、通信制御装置100Aから当該通信機器300宛にIGMPメンバーシップクエリを送信することができる。これにより、通信システム1Aによれば、通信機器300からIGMPメンバーシップレポートを送信することを促すことができる。この結果、通信システム1Aによれば、通信機器300をマルチキャストグループに加入させることができる。
【0069】
(変形例5)
上述した通信システム1Aにおいて、通信制御装置100Aは、通信システム1Aにおける各通信機器300に対し、定期的に探索パケット510を送信してよい。通信制御装置100Aは、探索パケット510のペイロードフィールドには、探索パケット510に対して応答を要求する情報を格納する。通信制御装置100Aは、探索パケット510に対して返信した通信機器300を、マルチキャストに対応した機器であることを検出することができる。また、通信制御装置100Aは、定期的に探索パケット510を送信することで、マルチキャストに対応した機器の状態の変化を認識することができる。
【0070】
(変形例6)
上述した通信システム1Aにおいて、通信制御装置100Aは、探索パケット510に加え、宛先MACアドレスフィールドにマルチキャストMACアドレスを格納した既存の探索パケットを送信してよい。通信制御装置100Aは、例えば、探索パケット510と、既存の探索パケットとを同時に送信する。これにより、通信制御装置100Aは、既存の探索パケットに応答したパケットに基づいて通信機器300を管理すると共に、探索パケット510に応答したパケットに基づいて通信機器300を管理することができる。
【0071】
(変形例7)
変形例5において、通信制御装置100Aは、既存の探索パケットに対するパケットの受信結果と、探索パケット510に対するパケットの受信結果とを比較してよい。通信制御装置100Aは、例えば、既存の探索パケットに対してパケットを受信しないが、探索パケット510に対してパケットを受信した場合、中継装置200においてIGMPスヌーピング機能が有効になっているが、クエリア機能が有効になっていないと認識することができる。これにより、通信制御装置100Aは、例えば、IGMPメンバーシップクエリを送信することで、マルチキャストグループに加入するよう通信機器300に促すことができる。
【0072】
<第3の実施形態>
以下、第3の実施形態について説明する。なお、第1および第2の実施形態と同じ部分については同一符号を付することにより詳細な説明を省略する。
【0073】
図11は、第3の実施形態の通信システム1Bの一構成例を示すブロック図である。第3の実施形態の通信システム1Bにおいて、通信制御装置100Bは、探索パケット生成部110と、探索パケット生成部110Aと、送受信部120Bと、マルチキャスト処理部130Aとを備える。
【0074】
探索パケット生成部110は、第1の実施形態と同様に、探索パケット500を生成する。探索パケット生成部110Aは、第2の実施形態と同様に、探索パケット510を生成する。送受信部120Bは、探索パケット500および探索パケット510を送信する。マルチキャスト処理部130Aは、送受信部120Bにおいて応答パケット520が受信できない場合、IGMPメンバーシップレポートを中継装置200に送信し、IGMPメンバーシップクエリを通信機器300に送信する。
【0075】
以上説明した第3の実施形態の通信システム1Bによれば、探索パケット500を送信することで、第1の実施形態と同様の効果を発揮することができる。また、第3の実施形態の通信システム1Bによれば、探索パケット510を送信し、応答パケット520を受信しない場合に、IGMPメンバーシップレポートおよびIGMPメンバーシップクエリを送信することで、第2の実施形態と同様の効果を発揮することができる。
【0076】
なお、各実施形態、各変形例について説明したが、一例であってこれらに限られず、例えば、各実施形態や各変形例のうちのいずれかや、各実施形態の一部や各変形例の一部を、他の1または複数の実施形態や他の1または複数の変形例と組み合わせて本発明の一態様を実現させてもよい。
【0077】
なお、本実施形態における通信制御装置100および通信制御装置100Aの各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムを、コンピュータシステムに読み込ませ、実行することにより、通信制御装置100および通信制御装置100Aに係る上述した種々の処理を行ってもよい。
【0078】
なお、ここでいう「コンピュータシステム」とは、OSや周辺機器などのハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリなどの書き込み可能な不揮発性メモリ、CD−ROMなどの可搬媒体、コンピュータシステムに内蔵されるハードディスクなどの記憶装置のことをいう。
【0079】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネットなどのネットワークや電話回線などの通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic
Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置などに格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。
【0080】
ここで、プログラムを伝送する「伝送媒体」は、インターネットなどのネットワーク(通信網)や電話回線などの通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0081】
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計なども含まれる。