[0003]通信ネットワーク内でメッセージを転送するための様々な実施形態が開示される。いくつかの実施形態では、方法は、第1の通信ネットワーク内で転送するために第1のネットワークデバイスにおいてメッセージを受信することと、メッセージ内の第1のあらかじめ定義されたフィールドに少なくとも部分的に基づいて、メッセージを転送するべきかどうかを決定することと、メッセージを転送することを決定したことに応答して、メッセージ内の第2のあらかじめ定義されたフィールドに少なくとも部分的に基づいて、第1の通信ネットワーク内の中央コーディネータに対して上流経路を介してメッセージを転送するべきか下流経路を介して転送するべきかを決定することと、ここにおいて、第2のあらかじめ定義されたフィールドは、中央コーディネータが以前にメッセージを転送したかどうかを示す、を備える。
[0004]いくつかの実施形態では、上流経路を介してメッセージを転送するべきか下流経路を介して転送するべきかを決定することが、第2のあらかじめ定義されたフィールドが第1のインジケータを含むと決定したことに応答して、第1の通信ネットワーク内の下流経路を介してメッセージを転送することを決定することと、第2のあらかじめ定義されたフィールドが第2のインジケータを含むと決定したことに応答して、第1の通信ネットワーク内の上流経路を介してメッセージを転送することを決定することとを備える。
[0005]いくつかの実施形態では、第1のインジケータが、中央コーディネータが以前に第1の通信ネットワークの第2のネットワークデバイスからメッセージを受信したことを示す、または第1のインジケータが、中央コーディネータがメッセージを生成したことを示す。
[0006]いくつかの実施形態では、第2のインジケータが、中央コーディネータが第1の通信ネットワークの第2のネットワークデバイスからメッセージを受信していないことを示す、または第2のインジケータが、中央コーディネータがメッセージを生成しなかったことを示す。
[0007]いくつかの実施形態では、第1のネットワークデバイスからメッセージを転送するべきかどうかを決定することが、第1のあらかじめ定義されたフィールド内の第1のデバイス識別子を、第1のネットワークデバイスと直接的に接続されている第2のネットワークデバイスに関連付けられた第2のデバイス識別子と比較することと、第1のあらかじめ定義されたフィールド内の第1のデバイス識別子は第2のネットワークデバイスに関連付けられた第2のデバイス識別子と一致すると決定したことに応答して、第1の通信ネットワーク内でメッセージを転送することを決定することと、第1のあらかじめ定義されたフィールド内の第1のデバイス識別子は第2のネットワークデバイスに関連付けられた第2のデバイス識別子と一致しないと決定したことに応答して、第1のネットワークデバイスにおいてメッセージを破棄することとを備える。
[0008]いくつかの実施形態では、第1のあらかじめ定義されたフィールド内の第1のデバイス識別子が、第2のネットワークデバイスに関連付けられた第2のデバイス識別子と一致すると決定したことに応答して、方法が、第2のあらかじめ定義されたフィールドが第1のインジケータを含むと決定したことに応答して、第1の通信ネットワークの下流経路を介してメッセージを送信することを決定することと、第2のあらかじめ定義されたフィールドが第2のインジケータを含むと決定したことに応答して、第1の通信ネットワークの上流経路を介してメッセージを送信することを決定することとをさらに備える。
[0009]いくつかの実施形態では、第1の通信ネットワークの上流経路を介してメッセージを送信することを決定したことに応答して、方法が、第1のネットワークデバイスから第1のネットワークデバイスに関連付けられたプロキシネットワークデバイスにメッセージを送信すること、ここにおいて、プロキシネットワークデバイスは、中央コーディネータにメッセージを転送するように構成される、または第1のネットワークデバイスから中央コーディネータに直接的にメッセージを送信することをさらに備える。
[0010]いくつかの実施形態では、第1の通信ネットワークの下流経路を介してメッセージを送信することを決定したことに応答して、方法が、第1のネットワークデバイスが第1の通信ネットワークの第2のネットワークデバイスのためのプロキシネットワークデバイスであることを決定することと、第2のネットワークデバイスに関連付けられたデバイス識別子とメッセージに含まれる送信元識別子とを比較することに少なくとも部分的に基づいて、第2のネットワークデバイスがメッセージを生成したかどうかを決定することとをさらに備える。
[0011]いくつかの実施形態では、方法は、第2のネットワークデバイスがメッセージを生成しなかったと決定したことに応答して、第1のネットワークデバイスから第2のネットワークデバイスにメッセージを送信することと、第2のネットワークデバイスがメッセージを生成したと決定したことに応答して、第2のネットワークデバイスにメッセージを送信しないことを決定することとをさらに備える。
[0012]いくつかの実施形態では、第1の通信ネットワークの第2のネットワークデバイスから第1のネットワークデバイスにおいてメッセージを受信したことに応答して、方法が、第1のネットワークデバイスから第1の通信ネットワーク内の第3のネットワークデバイスにメッセージを送信する前に、第1のネットワークデバイスに関連付けられたデバイス識別子を含むようにメッセージの第1のあらかじめ定義されたフィールドを更新することと、メッセージが以前に第1の通信ネットワーク内で転送されたことを示すようにメッセージの第3のあらかじめ定義されたフィールドを更新することとをさらに備える。
[0013]いくつかの実施形態では、第2の通信ネットワークの第2のネットワークデバイスから第1のネットワークデバイスにおいてメッセージを受信したことに応答して、方法が、第1のネットワークデバイスから第1の通信ネットワーク内の第3のネットワークデバイスにメッセージを送信する前に、第1のネットワークデバイスに関連付けられたデバイス識別子と異なる所定の値を含むようにメッセージの第1のあらかじめ定義されたフィールドを更新することと、メッセージが以前に第1の通信ネットワーク内で転送されなかったことを示すようにメッセージの第3のあらかじめ定義されたフィールドを更新することをさらに備える。
[0014]いくつかの実施形態では、第1の通信ネットワーク内で転送するために第1のネットワークデバイスにおいてメッセージを受信することが、第1の通信ネットワークの第2のネットワークデバイスから第1のネットワークデバイスにおいてメッセージを受信すること、第2の通信ネットワークの第3のネットワークデバイスから第1のネットワークデバイスにおいてメッセージを受信すること、または第1のネットワークデバイスにおいてメッセージを生成することのうち1つを備える。
[0015]いくつかの実施形態では、方法が、通信ネットワーク内で転送するために通信ネットワークの中央コーディネータにおいてメッセージを受信することと、メッセージ内の第1のあらかじめ定義されたフィールドに少なくとも部分的に基づいて、通信ネットワーク内でメッセージを転送するべきかどうかを決定することと、メッセージを転送することを決定したことに応答して、中央コーディネータがメッセージを受信したことを示すためにメッセージ内に第1のインジケータを含むように第2のあらかじめ定義されたフィールドを更新することと、第1のインジケータを含むメッセージを、中央コーディネータと直接的に接続されている第1のネットワークデバイスに送信することとを備える。
[0016]いくつかの実施形態では、メッセージを転送するべきかどうかを決定することが、第1のあらかじめ定義されたフィールド内の第1のデバイス識別子を、下流ネットワークデバイスに関連付けられた第2のデバイス識別子と比較することと、ここにおいて、下流ネットワークデバイスが、通信ネットワークの下流経路を介して第1のネットワークデバイスと直接的に接続される、第1のあらかじめ定義されたフィールド内の第1のデバイス識別子が、下流ネットワークデバイスに関連付けられた第2のデバイス識別子と一致すると決定したことに応答して、メッセージを転送することを決定することと、第1のあらかじめ定義されたフィールド内の第1のデバイス識別子が、下流ネットワークデバイスに関連付けられた第2のデバイス識別子と一致しないと決定したことに応答して、中央コーディネータにおいてメッセージを破棄することとを備える。
[0017]いくつかの実施形態では、方法が、中央コーディネータとの直接通信リンクを確立した通信ネットワークの複数のネットワークデバイスを識別することをさらに備え、ここにおいて、第1のインジケータを含むメッセージを第1のネットワークデバイスに送信することが、第1のインジケータを含むメッセージを、中央コーディネータとの直接通信リンクを確立した複数のネットワークデバイスに送信することを備える。
[0018]いくつかの実施形態では、通信ネットワーク内で転送するために中央コーディネータにおいてメッセージを受信することが、通信ネットワークの第2のネットワークデバイスから中央コーディネータにおいてメッセージを受信すること、別の通信ネットワークの第3のネットワークデバイスから中央コーディネータにおいてメッセージを受信すること、または中央コーディネータにおいてメッセージを生成することのうち1つを備える。
[0019]いくつかの実施形態では、第1のネットワークデバイスは、プロセッサと、プロセッサと結合された通信ユニットとを備え、通信ユニットが、第1の通信ネットワーク内で転送するためにメッセージを受信し、メッセージ内の第1のあらかじめ定義されたフィールドに少なくとも部分的に基づいて、メッセージを転送するべきかどうかを決定し、メッセージを転送することを決定したことに応答して、メッセージ内の第2のあらかじめ定義されたフィールドに少なくとも部分的に基づいて、第1の通信ネットワーク内の中央コーディネータに対して上流経路を介してメッセージを転送するべきか下流経路を介して転送するべきかを決定する、ここにおいて、第2のあらかじめ定義されたフィールドは、中央コーディネータが以前にメッセージを転送したかどうかを示す、ように構成される。
[0020]いくつかの実施形態では、上流経路を介してメッセージを転送するべきか下流経路を介して転送するべきかを決定するように構成された通信ユニットが、第2のあらかじめ定義されたフィールドが第1のインジケータを含むと決定したことに応答して、第1の通信ネットワーク内の下流経路を介してメッセージを転送し、第2のあらかじめ定義されたフィールドが第2のインジケータを含むと決定したことに応答して、第1の通信ネットワーク内の上流経路を介してメッセージを転送するように構成された通信ユニットを備える。
[0021]いくつかの実施形態では、第1のインジケータが、中央コーディネータが以前に第1の通信ネットワークの追加ネットワークデバイスからメッセージを受信したことを示す、および第2のインジケータが、中央コーディネータが第1の通信ネットワークの追加ネットワークデバイスからメッセージを受信していないことを示す。
[0022]いくつかの実施形態では、メッセージを転送するべきかを決定するように構成された通信ユニットが、第1のあらかじめ定義されたフィールド内の第1のデバイス識別子を、第1のネットワークデバイスと直接的に接続されている第2のネットワークデバイスに関連付けられた第2のデバイス識別子と比較し、第1のあらかじめ定義されたフィールド内の第1のデバイス識別子が、第2のネットワークデバイスに関連付けられた第2のデバイス識別子と一致すると決定したことに応答して、第1の通信ネットワーク内でメッセージを転送することを決定し、第1のあらかじめ定義されたフィールド内の第1のデバイス識別子が、第2のネットワークデバイスに関連付けられた第2のデバイス識別子と一致しないと決定したことに応答して、第1のネットワークデバイスにおいてメッセージを破棄するように構成された通信ユニットを備える。
[0023]いくつかの実施形態では、第1の通信ネットワークの上流経路を介してメッセージを送信することを決定したことに応答して、通信ユニットが、第1のネットワークデバイスから第1のネットワークデバイスに関連付けられたプロキシネットワークデバイスにメッセージを送信する、ここにおいて、プロキシネットワークデバイスは、中央コーディネータにメッセージを転送するように構成される、または第1のネットワークデバイスから中央コーディネータに直接的にメッセージを送信する、ようにさらに構成される。
[0024]いくつかの実施形態では、第1の通信ネットワークの下流経路を介してメッセージを送信することを決定したことに応答して、通信ユニットが、第1のネットワークデバイスが第1の通信ネットワークの第2のネットワークデバイスのためのプロキシネットワークデバイスであることを決定し、第2のネットワークデバイスに関連付けられたデバイス識別子とメッセージに含まれる送信元識別子とを比較することに少なくとも部分的に基づいて、第2のネットワークデバイスがメッセージを生成したかどうかを決定するようにさらに構成される。
[0025]いくつかの実施形態では、通信ユニットは、第2のネットワークデバイスがメッセージを生成しなかったと決定したことに応答して、第1のネットワークデバイスから第2のネットワークデバイスにメッセージを送信し、第2のネットワークデバイスがメッセージを生成したと決定したことに応答して、第2のネットワークデバイスにメッセージを送信しないことを決定するようにさらに構成される。
[0026]いくつかの実施形態では、第1の通信ネットワークの第2のネットワークデバイスから第1のネットワークデバイスにおいてメッセージを受信したことに応答して、通信ユニットが、第1のネットワークデバイスから第1の通信ネットワーク内の第3のネットワークデバイスにメッセージを送信する前に、第1のネットワークデバイスに関連付けられたデバイス識別子を含むようにメッセージの第1のあらかじめ定義されたフィールドを更新し、メッセージが以前に第1の通信ネットワーク内で転送されたことを示すようにメッセージの第3のあらかじめ定義されたフィールドを更新するようにさらに構成される。
[0027]いくつかの実施形態では、第2の通信ネットワークの第2のネットワークデバイスから第1のネットワークデバイスにおいてメッセージを受信したことに応答して、通信ユニットが、第1のネットワークデバイスから第1の通信ネットワーク内の第3のネットワークデバイスにメッセージを送信する前に、第1のネットワークデバイスに関連付けられたデバイス識別子と異なる所定の値を含むようにメッセージの第1のあらかじめ定義されたフィールドを更新し、メッセージが以前に第1の通信ネットワーク内で転送されなかったことを示すようにメッセージの第3のあらかじめ定義されたフィールドを更新するようにさらに構成される。
[0028]いくつかの実施形態では、機械実行可能命令を記憶した非一時的な機械可読記憶媒体、機械実行可能命令が、通信ネットワーク内で転送するために第1のネットワークデバイスにおいてメッセージを受信し、メッセージ内の第1のあらかじめ定義されたフィールドに少なくとも部分的に基づいて、メッセージを転送するべきかどうかを決定し、メッセージを転送することを決定したことに応答して、メッセージ内の第2のあらかじめ定義されたフィールドに少なくとも部分的に基づいて、通信ネットワーク内の中央コーディネータに対して上流経路を介してメッセージを転送するべきか下流経路を介して転送するべきかを決定する、ここにおいて、第2のあらかじめ定義されたフィールドは、中央コーディネータが以前にメッセージを転送したかどうかを示す命令を備える。
[0029]いくつかの実施形態では、上流経路を介してメッセージを転送するべきか下流経路を介して転送するべきかを決定する命令は、第2のあらかじめ定義されたフィールドが第1のインジケータを含むと決定したことに応答して、通信ネットワーク内の下流経路を介してメッセージを転送し、ここにおいて、第1のインジケータが、中央コーディネータが以前にメッセージを転送したことを示す、および第2のあらかじめ定義されたフィールドが第2のインジケータを含むと決定したことに応答して、通信ネットワーク内の上流経路を介してメッセージを転送する、ここにおいて、第2のインジケータが、中央コーディネータが以前にメッセージを転送していないことを示す、命令を備える。
[0030]いくつかの実施形態では、メッセージを転送するべきかどうかを決定する命令は、第1のあらかじめ定義されたフィールド内の第1のデバイス識別子を、第1のネットワークデバイスと直接的に接続されている第2のネットワークデバイスに関連付けられた第2のデバイス識別子と比較し、第1のあらかじめ定義されたフィールド内の第1のデバイス識別子が、第2のネットワークデバイスに関連付けられた第2のデバイス識別子と一致すると決定したことに応答して、通信ネットワーク内でメッセージを転送することを決定し、第1のあらかじめ定義されたフィールド内の第1のデバイス識別子が、第2のネットワークデバイスに関連付けられた第2のデバイス識別子と一致しないと決定したことに応答して、第1のネットワークデバイスにおいてメッセージを破棄する命令を備える。
[0031]いくつかの実施形態では、通信ネットワークの上流経路を介してメッセージを送信することを決定したことに応答して、命令が、第1のネットワークデバイスから第1のネットワークデバイスに関連付けられたプロキシネットワークデバイスにメッセージを送信する、ここにおいて、プロキシネットワークデバイスは、中央コーディネータにメッセージを転送するように構成される、または第1のネットワークデバイスから中央コーディネータに直接的にメッセージを送信する命令を備える。
[0032]いくつかの実施形態では、通信ネットワークの下流経路を介してメッセージを送信することを決定したことに応答して、命令が、第1のネットワークデバイスが通信ネットワークの第2のネットワークデバイスのためのプロキシネットワークデバイスであることを決定し、第2のネットワークデバイスに関連付けられたデバイス識別子が、メッセージに含まれる送信元識別子と一致しないと決定したことに応答して、第1のネットワークデバイスから第2のネットワークデバイスにメッセージを送信し、第2のネットワークデバイスに関連付けられたデバイス識別子が、メッセージに含まれる送信元識別子と一致すると決定したことに応答して、第2のネットワークデバイスにメッセージを送信しないことを決定する命令を備える。
[0033]添付の図面を参照することによって、本実施形態がより良く理解され、多数の目的、特徴、および利点が当業者に明らかになるであろう。
[0041]以下の説明は、本発明の主題の技法を実施する、例示的なシステムと、方法と、技法と、命令シーケンスと、コンピュータプログラム製品とを含む。しかしながら、説明される実施形態は、これらの具体的な詳細がなくても実施され得ることが理解される。たとえば、例は、電力線通信ネットワーク(たとえば、HomePlug(登録商標)GreenPHYプロトコルを実施するネットワーク)内でメッセージを転送することに言及しているが、実施形態は、そのように限定されない。他の実施形態では、メッセージを転送するための技法は、他の適切なワイヤード通信プロトコル(たとえば、イーサネット(登録商標)、multimedia over coax alliance(MoCA)、HomePlug AV/AV2など)またはワイヤレス通信プロトコル(たとえば、IEEE802.11プロトコルなどのワイヤレスローカルエリアネットワークプロトコル)を実施する通信ネットワーク内で実施され得る。他の例では、よく知られている命令インスタンス、プロトコル、構造、および技法は、説明を不明瞭にしないために、詳細に示されていない。
[0042]電力線通信(PLC)ネットワークは、一般に、PLCネットワーク内の他のネットワークデバイスの通信を管理する中央コーディネータを含む。中央コーディネータを検出し、これとの直接通信リンクを確立し得るネットワークデバイスもあれば、中央コーディネータを検出しないことがあり、「隠されたネットワークデバイス」と呼ばれることがあるネットワークデバイスもある。隠されたネットワークデバイスは、中央コーディネータと通信するための、「プロキシネットワークデバイス」と呼ばれることがある中間ネットワークデバイスを識別および使用してよい。隠されたネットワークデバイスは、プロキシネットワークデバイスを介して中央コーディネータにメッセージを送信し、これからメッセージを受信し得る。PLCプロトコル(たとえば、HomePlug GreenPHYプロトコル)によれば、中央コーディネータは、各ネットワークデバイスがブロードキャストメッセージとマルチキャストメッセージとをどのようにして転送するべきかを示すために、転送テーブルを作成して、PLCネットワーク内の各ネットワークデバイスに送信する。各ネットワークデバイスは、単に、中央コーディネータから受信された転送テーブルに従って、受信されたブロードキャスト/マルチキャストメッセージを他のネットワークデバイスに転送する。しかしながら、そのような機構は、ネットワークデバイスの各々がブロードキャスト/マルチキャストメッセージをどのようにして転送するべきかを決定するために、中央コーディネータに依存し得る。これは、中央コーディネータで利用可能なリソースおよびPLCネットワーク内のネットワークデバイスの数によっては、時間を多く使用し、メモリの使用率が高いプロセスである場合がある。そのうえ、ブロードキャスト/マルチキャストメッセージの無差別な転送は、メッセージが通信ネットワーク内で無期限に再送信されること(「ブロードキャストメッセージストーム(broadcast message storm)」)と、PLCネットワーク内の重複メッセージの再送信をもたらすことがある。
[0043]いくつかの実施形態では、通信ネットワーク内のネットワークデバイスは、通信ネットワーク内でブロードキャストメッセージとマルチキャストメッセージとを転送するための転送テーブルを独立して決定するように構成可能である。ネットワークデバイスは、通信ネットワークの中央コーディネータからの補助なしで転送テーブルを決定することができる。ネットワークデバイスは、ネットワークデバイスがプロキシネットワークデバイスに関連付けられるかどうか、および/またはネットワークデバイスが別のネットワークデバイスのためのプロキシネットワークデバイスとして動作するかどうかに応じて、転送テーブルを決定することができる。そのうえ、ネットワークデバイスは、通信ネットワーク内でブロードキャストするために、メッセージを受信することがある。ネットワークデバイスは、メッセージが第1のインジケータを含むかまたは第2のインジケータを含むかに応じて、メッセージを通信ネットワークの上流経路を介して転送するべきか下流経路を介して転送するべきかを決定し得る。上流経路を介してメッセージを転送することは、ネットワークデバイスから中央コーディネータの方へ向かうネットワーク経路内の別のネットワークデバイスにメッセージを再送信すること、またはネットワークデバイスから中央コーディネータにメッセージを再送信することを含み得る。下流経路を介してメッセージを転送することは、中央コーディネータから遠ざかるネットワーク経路内の別のネットワークデバイスにメッセージを再送信することを含み得る。メッセージが第1のインジケータを含む場合、これは、中央コーディネータが以前にメッセージを転送したことを示すことができる。次いで、ネットワークデバイスは、下流経路を介して、ネットワークデバイスがプロキシネットワークデバイスとして動作するすべてのネットワークデバイス(もしあれば)に、メッセージを再送信してよい。メッセージが第2のインジケータを含む場合、これは、中央コーディネータがメッセージを受信していないことを示すことができる。次いで、ネットワークデバイスは、上流経路を介して−中央コーディネータ、またはその後の中央コーディネータへの転送のためにプロキシネットワークデバイス、のいずれかに直接的にメッセージを再送信し得る。中央コーディネータがメッセージを受信すると、中央コーディネータは、中央コーディネータがメッセージを受信したことを示す第1のインジケータを含むようにメッセージを更新することができる。上流経路を介してメッセージを転送するべきか下流経路を介して転送するべきかを決定することに加えて、ネットワークデバイスは、メッセージを転送するべきかメッセージを破棄するべきかを決定するために、メッセージ内の情報を使用してよい。ネットワークデバイスは、ネットワークデバイスがプロキシネットワークデバイスを有するかおよび/またはプロキシネットワークデバイスとして動作するかに応じて、その転送テーブルを決定するように構成可能であるので、中央コーディネータが通信ネットワーク内の各ネットワークデバイスに転送テーブルを提供するのを妨げることができる。これは、中央コーディネータによって消費されるリソースと、通信ネットワーク内で送信されるメッセージとを最小限にすることもできる。さらに、通信ネットワーク内でブロードキャストメッセージを転送するべきかどうかと、どのようにして転送するかとを決定するために、ブロードキャストメッセージに含まれる第1のインジケータと第2のインジケータとを使用することは、ブロードキャストメッセージストームと、通信ネットワーク内での重複メッセージの再送信とを最小限にすることができる。
[0044]図1は、通信ネットワーク100内でメッセージを転送するための機構を含む例示的なブロック図である。通信ネットワーク100は、中央コーディネータ102と、ネットワークデバイス104、106、および108とを含む。ネットワークデバイス104は、転送ユニット110と、リンク確立ユニット112とを含む。図1には示されていないが、中央コーディネータ102ならびにネットワークデバイス106および108は各々、転送ユニットとリンク確立ユニットとを含んでよい。
[0045]一例では、通信ネットワーク100は、HomePlug AV論理ネットワーク(AVLN)であってよい。中央コーディネータ102ならびにネットワークデバイス104、106、および108は各々、PLC対応ネットワークデバイスであってよい。通信ネットワーク100内では、中央コーディネータ102ならびにネットワークデバイス104、106、および108は、メッシュ型トポロジ、ツリー型トポロジ、スター型トポロジ、バス型トポロジなどの任意の適切なネットワークトポロジをサポートしてよい。いくつかの実装形態では、中央コーディネータ102ならびにネットワークデバイス104、106、および108は各々、屋外PLC環境における電子デバイスであってよい。たとえば、屋外PLC環境は、スマートパワーグリッドとすることができる。この例では、中央コーディネータ102ならびにネットワークデバイス104、106、および108は各々、電力計、電気自動車充電スタンド、電気自動車、発電機、配電デバイスなどの、屋外環境で動作するように構成されたPLCデバイスまたはPLC対応電子デバイスであってよい。いくつかの実装形態では、中央コーディネータ102ならびにネットワークデバイス104、106、および108は各々、屋内環境(たとえば、ホームネットワーク)におけるPLC対応電子デバイスであってよい。この実装形態では、中央コーディネータ102ならびにネットワークデバイス104、106、および108は、ラップトップコンピュータ、タブレットコンピュータ、モバイル電話、スマートアプライアンス、ウェアラブルデバイス、ゲームコンソール、アクセスポイント、または他の適切な電子デバイスなどのPLC対応電子デバイスであってよい。いくつかの実装形態では、中央コーディネータ102ならびにネットワークデバイス104、106、および108は、屋内PLC環境内または屋外PLC環境内に配置可能なPLC対応電子デバイスであってよい。いくつかの実施形態では、中央コーディネータ102ならびにネットワークデバイス104、106、および108は、HomePlug AV通信プロトコル、HomePlug GreenPHY通信プロトコル、または他の適切な電力線通信プロトコルを使用して通信するように構成可能である。いくつかの実施形態では、PLCプロトコルに加えて、中央コーディネータ102ならびにネットワークデバイス104、106、および108は、他のワイヤード通信プロトコルまたはワイヤレス通信プロトコル(たとえば、ブルートゥース(登録商標)、WiMAX(登録商標)、イーサネット、WLAN(たとえば、IEEE802.11プロトコル)など)を実施し得る。そのうえ、いくつかの実施形態では、中央コーディネータ102ならびにネットワークデバイス104、106、および108は各々、1つまたは複数の無線トランシーバ、プロセッサ、アナログフロントエンド(AFE)ユニット、メモリ、および/または通信プロトコルと関連機能とを実施する論理を含み得る。
[0046]いくつかの実施形態では、中央コーディネータ102は、通信ネットワーク100内の通信を制御するネットワークデバイスであってよい。ネットワークデバイス104、106、および108は、中央コーディネータ102に関連付けられて、通信ネットワーク100に参加することができる。しかしながら、いくつかの実施形態では、通信ネットワーク100内の2つのネットワークデバイス間の通信は、より長い距離、ネットワーク輻輳、または不良な信号品質により、信頼性が高くないことがある(または、その可能性がある)。たとえば、ネットワークデバイス104のリンク確立ユニット112は、中央コーディネータ102から中央ビーコンメッセージを受信しないことがあり、したがって、中央コーディネータ102を検出しないことがある。中央コーディネータ102との直接通信リンクを確立することができないネットワークデバイス104は、「隠されたネットワークデバイス」と呼ばれることがある。リンク確立ユニット112が中央コーディネータ102を検出することができない場合、隠されたネットワークデバイス104は、中間「プロキシ」ネットワークデバイス(たとえば、ネットワークデバイス106)を介して中央コーディネータ102と通信しようとしてよい。
[0047]いくつかの実施形態では、通信ネットワーク100内のネットワークデバイスは、通信ネットワーク100内でブロードキャストメッセージとマルチキャストメッセージとを転送するためのその転送テーブルを生成するように構成可能である。転送テーブルは、ネットワークデバイスおよび/またはネットワークデバイスをサービスするプロキシネットワークデバイス(または中央コーディネータ)によってサービスされる隠されたネットワークデバイスを認識していることに基づいて決定され得る。たとえば、ネットワークデバイス106および108は、中央コーディネータ102を検出して、これとの直接通信リンクを確立し得る。ネットワークデバイス104は、中央コーディネータ102を検出することができないことがあり、隠されたネットワークデバイスと呼ばれることがある。ネットワークデバイス104は、ネットワークデバイス106を、そのプロキシネットワークデバイスとして選択し得る。ネットワークデバイス104は、ネットワークデバイス104とネットワークデバイス104によって検出可能な各追加ネットワークデバイスとの間の通信リンクの性能測定を推定し得る。ネットワークデバイス104は、好ましい性能測定(たとえば、最も高い信号対雑音比)に関連付けられた追加ネットワークデバイスをプロキシネットワークデバイスとして選択し得る。代替的に、ネットワークデバイス104は、そのプロキシネットワークデバイスを選択するために、他の適切な技法を使用してもよい。図1の例では、ネットワークデバイス106の転送テーブルは、中央コーディネータ102がネットワークデバイス106の上流経路内で直接的に接続されている(「上流ネットワークデバイス」)ことを示し得る。転送テーブルは、ネットワークデバイス106が隠されたネットワークデバイス104のためのプロキシネットワークデバイスとして動作することも示し得る。言い換えれば、転送テーブルは、隠されたネットワークデバイス104がネットワークデバイス106の下流経路内で直接的に接続されていること(「下流ネットワークデバイス」)を示し得る。別の例として、隠されたネットワークデバイス104の転送テーブルは、プロキシネットワークデバイス106がネットワークデバイス104の上流経路内で直接的に接続されており、ネットワークデバイス104の下流経路内で接続されているネットワークデバイスは存在しないことを示し得る。別の例として、中央コーディネータ102の転送テーブルは、ネットワークデバイス106および108が中央コーディネータ102の下流経路内で直接的に接続されており、中央コーディネータ102の上流経路内で接続されているネットワークデバイスは存在しないことを示し得る。
[0048]転送テーブルに加えて、ネットワークデバイスは、通信ネットワーク100内でメッセージを転送するべきかどうか/どのようにして転送するかを決定するためにメッセージのフレーム制御フィールドを分析し得る。メッセージは、通信ネットワーク内の1つまたは複数のネットワークデバイスに転送されるブロードキャストメッセージまたはマルチキャストメッセージであってよい。いくつかの実施形態では、メッセージは、中央コーディネータ102が以前にメッセージを転送したかどうかを示す所定のフィールドを含み得る。たとえば、所定のフィールドは、中央コーディネータが同じ通信ネットワークの別のネットワークデバイスからメッセージを受信したかどうか、中央コーディネータが異なる通信ネットワークの別のネットワークデバイスからメッセージを受信したかどうか、中央コーディネータが通信ネットワーク内で送信するためにメッセージを生成したかどうかなどを示すことができる。所定のフィールドは、中央コーディネータ102が以前にメッセージを転送したかどうかに応じて、第1のインジケータまたは第2のインジケータを含み得る。たとえば、メッセージが第1のインジケータを含む場合、これは、中央コーディネータ102がメッセージを受信した(または生成した)ことを示すことができる。しかしながら、メッセージが第2のインジケータを含む場合、これは、中央コーディネータ102がメッセージを受信していないことを示すことができる。中央コーディネータ102がメッセージを受信すると、中央コーディネータ102の転送ユニット(図示せず)は所定のフィールドを更新し得る。中央コーディネータ102がメッセージを生成した場合、転送ユニットは、同じく、所定のフィールドを更新し得る。転送するためにメッセージを受信するネットワークデバイス104、106、または108は、所定のフィールド内の起訴者(indictor)に少なくとも部分的に基づいて、メッセージを通信ネットワーク100の上流経路を介して転送するべきか下流経路を介して転送するべきかを決定し得る。一実施形態では、所定のフィールドは、フレーム制御フィールドの「下流フィールド」すなわち「DSフィールド」と呼ばれることがある。下流フィールドが第1のインジケータを含む(たとえば、DS=0)場合、転送ユニット110は、中央コーディネータ102が以前にメッセージを受信しなかった、またはメッセージを最初に生成しなかったと決定し得る。したがって、転送ユニット110は、通信ネットワーク100の上流経路を介してメッセージを再送信し得る。上流経路を介してメッセージを送信するために、転送ユニット110は、図2に関して説明されるように、中央コーディネータ102、またはその後の中央コーディネータ102への転送のためにプロキシネットワークデバイス、のいずれかに直接的にメッセージを送信し得る。代替的に、下流フィールドが第2のインジケータを含む(たとえば、DS=1)場合、転送ユニット110は、中央コーディネータ102が以前にメッセージを受信した、またはメッセージを最初に生成したと決定し得る。したがって、転送ユニット110は、通信ネットワーク100の下流経路を介してメッセージを再送信し得る。下流経路を介してメッセージを送信するために、転送ユニット110は、図2に関して説明されるように、ネットワークデバイスがプロキシネットワークデバイスとして動作するすべてのネットワークデバイス(もしあれば)にメッセージを送信し得る。隠されたネットワークデバイスにメッセージを送信する前に、転送ユニット110は、メッセージに含まれる送信元識別子が隠されたネットワークデバイスのデバイス識別子と一致するかどうかを決定し得る。たとえば、送信元識別子は、メッセージの送信元端末機器識別子(source terminal equipment identifier)フィールドすなわちSTEIフィールドに含まれ得る。送信元識別子は、通信ネットワーク内で送信するためにメッセージを最初に生成するネットワークデバイスに関連付けられたデバイス識別子を指すことがある。一致が存在する場合、転送ユニット110は、隠されたネットワークデバイスがメッセージを生成したと決定し得、したがって、隠されたネットワークデバイスにメッセージを再送信しなくてよい。代わりに、転送ユニット110は、ネットワークデバイスに関連付けられた他の隠されたネットワークデバイス(もしあれば)にメッセージを転送し得る。代替的に、ネットワークデバイスは、単に、通信ネットワーク内でメッセージを転送することなくメッセージを処理し得る。
[0049]さらに、通信ネットワーク100内のネットワークデバイスは、メッセージが以前に通信ネットワーク100内で転送されたかどうかを示すためにフレーム制御フィールドに情報を含むように構成可能である。たとえば、図2でさらに説明されるように、ネットワークデバイスは、メッセージが以前に通信ネットワーク100内で転送されたことを示すために、あらかじめ定義された値をメッセージの第1のフレーム制御フィールド内で送信し得る。ネットワークデバイスは、メッセージが以前に通信ネットワーク100内で転送されたとき、そのデバイス識別子もメッセージの第2のフレーム制御フィールドに含み得る。デバイス識別子は、メディアアクセス制御(MAC)アドレス、端末機器識別子、ネットワークアドレス、またはネットワークデバイスを一意に識別する別の適切な識別子であってよい。より一般的には、第2のフレーム制御フィールドは、メッセージを現在転送しているネットワークデバイスに関連付けられたデバイス識別子(「転送デバイス識別子」)を含み得る。一例では、第1のフレーム制御フィールドは物理層(PHY)ブロック本体(PBB)フィールドであってよく、第2のフレーム制御フィールドはビット負荷推定(BLE:bit load estimate)フィールドであってよい。以下でさらに説明されるように、転送ユニット110は、通信ネットワーク内でメッセージを再送信するべきかどうか、またはメッセージを破棄するべきかどうかを決定するために、送信元識別子および/または転送デバイス識別子を使用し得る。下流フィールドが第1のインジケータ(たとえば、DS=0)を含む場合、転送ユニット110は、上流経路を介してメッセージを再送信するべきかどうかを決定するために、ネットワークデバイスと直接的に接続されている各下流ネットワークデバイスのデバイス識別子と送信元識別子および/または転送デバイス識別子を比較し得る。下流フィールドが第2のインジケータ(たとえば、DS=1)を含む場合、転送ユニット110は、下流経路を介してメッセージを再送信するべきかどうかを決定するために、ネットワークと直接的に接続されている上流ネットワークデバイスのデバイス識別子と送信元識別子および/または転送デバイス識別子を比較し得る。転送ユニット110は、メッセージを示した識別子が上流ネットワークデバイスまたは下流ネットワークデバイスのデバイス識別子と一致する場合のみ、メッセージを再送信し得る。一致が存在しない場合、転送ユニット110はメッセージを破棄し得る。
[0050]いくつかの実施形態では、受信ネットワークデバイスの転送ユニット110は、メッセージを転送するべきかどうかと、どのようにして転送するかとを決定するために、第1のフレーム制御フィールド(たとえば、PBBフィールド)、第2のフレーム制御フィールド(たとえば、BLEフィールド)、下流フィールド(たとえば、DSフィールド)、および/または送信元識別子フィールド(たとえば、STEIフィールド)内の情報を評価し得る。たとえば、A)第1のフレーム制御フィールドが、あらかじめ定義された値を含まず(たとえば、PBB≠0xFF)、B)送信元識別子フィールドが、受信ネットワークデバイスと直接的に接続された下流ネットワークデバイスのデバイス識別子を含み、C)中央コーディネータがメッセージを受信または生成していない(たとえば、DS=0)場合、転送ユニット110は、下流ネットワークデバイスがメッセージを最初に生成したと決定し得る。したがって、転送ユニット110は、上流経路を介して中央コーディネータ102にメッセージを転送し得る。代替的に、転送ユニット110は、その後の中央コーディネータ102への転送のために、上流経路を介して上位レベルプロキシネットワークデバイスにメッセージを転送してよい。別の例として、A)第1のフレーム制御フィールドが、あらかじめ定義された値を含まず(たとえば、PBB≠0xFF)、B)送信元識別子フィールドが中央コーディネータのデバイス識別子を含み、C)中央コーディネータがメッセージを受信または生成した(たとえば、DS=1)場合、受信ネットワークデバイスの転送ユニット110は、メッセージが中央コーディネータによって生成されたと決定し得、下流経路を介してメッセージを再送信し得る。通信ネットワーク内でメッセージを転送するべきかどうかおよびメッセージを上流経路を介して転送するべきか下流経路を介して転送するべきかを決定するための他の例は、図2〜図6に関してさらに説明される。
[0051]例は、通信ネットワーク内でメッセージ(たとえば、ブロードキャストメッセージまたはマルチキャストメッセージ)を転送するべきかと、どのようにして転送するかとを決定するために、BLEフィールド、DSフィールド、PBBフィールド、および/またはSTEIフィールドを使用することに言及しているが、実施形態は、そのように限定されない。他の実施形態では、ネットワークデバイスは、メッセージを転送するべきかどうかと、どのようにして転送するかとを決定するために、他の適切なフィールド、任意の適切な数のビット、および/または任意の他のタイプのインジケータを使用し得る。
[0052]図2は、通信ネットワーク内でメッセージを転送するための機構を示す例示的な概念図である。図2は、PLCネットワーク200と、イーサネット220とを示す。いくつかの実施形態では、図2は、PLCネットワーク200とイーサネット220との間の相互接続を含むハイブリッド通信ネットワークを示し得る。PLCネットワーク200は、中央コーディネータ(CCo)202と、ネットワークデバイス204、206、208、210、および212とを含む。イーサネット220は、イーサネットデバイス222と224とを含む。PLCネットワーク200では、ネットワークデバイス204、210、および212は、中央コーディネータ202との直接通信リンクを確立することができない隠されたネットワークデバイスである。ネットワークデバイス204は、ネットワークデバイス206を、中央コーディネータ202と通信するためのプロキシネットワークデバイスとして使用する。ネットワークデバイス210および212は、ネットワークデバイス208を、中央コーディネータ202と通信するためのプロキシネットワークデバイスとして使用する。いくつかの実施形態では、図2に示されるように、プロキシネットワークデバイス206および208は各々、中央コーディネータ202を検出し、これとの直接通信リンクを確立し得る。しかしながら、他の実施形態では、プロキシネットワークデバイス206および/または208は、中央コーディネータ202と通信するための別の上位レベルプロキシネットワークデバイスを識別し得る。図2の例では、イーサネットデバイス222はネットワークデバイス210と接続されているが、イーサネットデバイス224はネットワークデバイス204と接続されている。
[0053]図2は、ネットワークデバイス間の例示的な相互接続と、ネットワークデバイス間で交換される例示的なメッセージとを示す。他の実施形態では、PLCネットワークは、任意の適切なタイプの通信ネットワーク(たとえば、メッシュ型ネットワークなど)を形成するために、互いの間で相互接続された任意の適切な数のネットワークデバイスを含んでよい。ネットワークデバイス間の相互接続にかかわらず、各ネットワークデバイスが中央コーディネータまたは上位レベルプロキシネットワークデバイスのいずれかに直接的に接続される場合、通信ネットワークは、ネットワークツリーとして表されることがある。さらに、ネットワークデバイスは、1つまたは複数の隠されたネットワークデバイスのためのプロキシネットワークデバイスとして動作し得る。隠されたネットワークデバイスをサービスしないネットワークデバイスは、ネットワークツリーの「葉ノード」と呼ばれることがある。いくつかの実施形態では、PLCネットワークは、他の異種通信ネットワークと相互接続されないことがある。いくつかの実施形態では、PLCネットワークは、イーサネット220と接続されないことがある。代わりに、PLCネットワーク200は、他の適切な通信ネットワーク(たとえば、WLAN、MoCAなど)と接続されてよい。
[0054]イーサネットデバイス222は、イーサネット220およびPLCネットワーク200内で送信するために、メッセージ214Aを生成する。メッセージ214A内の送信元アドレス(SA)フィールドは、イーサネットデバイス222のデバイス識別子を含む(たとえば、SA=PC−1)。デバイス識別子は、MACアドレス、TEI、ネットワークアドレス、またはネットワークデバイスを一意に識別する別の適切なデバイス識別子であってよい。メッセージ214A内の宛先アドレス(DA)フィールドは、メッセージ214Aがネットワーク200および220内で転送されるべきであることを示すあらかじめ定義された転送識別子を含む(たとえば、DA=転送)。イーサネットデバイス222は、PLCネットワーク200のネットワークデバイス210に、およびイーサネットデバイス222と直接的に接続されている他のネットワークデバイス(図示せず)に、メッセージ214Aを送信する。
[0055]PLCネットワーク200では、ネットワークデバイス210は、PLCネットワーク200内で転送するために、イーサネットデバイス222からメッセージ214Aを受信する。ネットワークデバイス210は、その後PLCネットワーク200内で転送するためにメッセージ214Bを生成するように、メッセージ214Aのフレーム制御フィールド内の情報を更新する。ネットワークデバイス210は、外部通信ネットワークからメッセージ214Aを受信し、メッセージ214Aを受信するPLCネットワーク200内の最初のネットワークデバイスである。したがって、ネットワークデバイス210は、メッセージ214Bを生成するために、そのデバイス識別子をフレーム制御フィールドの送信元識別子フィールドに含める。図2の例では、ネットワークデバイス210は、メッセージ214Bを生成するために、そのデバイス識別子をSTEIフィールドに含める(たとえば、STEI=HSTA−1)。そのうえ、ネットワークデバイス210は、メッセージ214BがPLCネットワーク200内で転送されるべきであることを示すために、あらかじめ定義された転送識別子をメッセージ214Bの宛先識別子フィールドに含める。図2の例では、ネットワークデバイス210は、あらかじめ定義された転送識別子を宛先端末機器識別子(DTEI)フィールドに含める(たとえば、DTEI=0xFF)。さらに、メッセージ214Aは、イーサネット220からネットワークデバイス210において受信され、以前にPLCネットワーク200内で転送されなかった。したがって、ネットワークデバイス210は、メッセージが以前にPLCネットワーク200内で転送されなかったことを示すために、あらかじめ定義された値をメッセージ214Bの第1のフレーム制御フィールドに含める(たとえば、PBB≠0xFF)。ネットワークデバイス210はまた、メッセージが以前にPLCネットワーク200内で転送されなかったことを示すために、そのデバイス識別子をメッセージ214Bの第2のフレーム制御フィールドに含まない(たとえば、BLE≠HSTA−1)。さらに、ネットワークデバイス210はイーサネット220からメッセージを受信したので、ネットワークデバイス210は、中央コーディネータが以前にメッセージ214Aを転送していないと決定する。メッセージ214Bは、中央コーディネータ202がPLCネットワークの別のネットワークデバイスからメッセージを受信していない、異なる通信ネットワークの別のネットワークデバイスからメッセージを受信していない、またはメッセージ214Bを生成していないことを示すために、デフォルトインジケータを下流フィールドに含み得る(たとえば、DS=0)。ネットワークデバイス210は、PLCネットワーク200の上流経路を介して中央コーディネータ202にメッセージ214Bを転送することを決定する。ネットワークデバイス210は、その転送テーブルにアクセスし、ネットワークデバイス208がネットワークデバイス210のためのプロキシネットワークデバイスとして動作すると決定する。具体的には、ネットワークデバイス210は、ネットワークデバイス208が上流経路内でネットワークデバイス210と直接的に接続されていると決定する。ネットワークデバイス210は、上流経路を介して接続されたネットワークデバイス208にメッセージ214Bを転送する。
[0056]ネットワークデバイス208は、ネットワークデバイス210からメッセージ214Bを受信する。ネットワークデバイス208は、受信されたメッセージ214B内の送信元識別子が、ネットワークデバイス208と直接的に接続された下流ネットワークデバイス210のデバイス識別子と一致する(たとえば、STEI=HSTA−1)と決定する。したがって、ネットワークデバイス210は、PLCネットワーク200内でメッセージ214Bを転送することを決定する。ネットワークデバイス206は、その後のPLCネットワーク200内での転送のためにメッセージ214Cを生成するように、メッセージ214Bのフレーム制御フィールド内の情報を更新する。受信されたメッセージ214B内の送信元識別子が、ネットワークデバイス208と直接的に接続された下流ネットワークデバイス210のデバイス識別子と一致するので、ネットワークデバイス208は、メッセージ214Bが以前にPLCネットワーク200内で送信されたと決定する。メッセージ214Cを形成するために、ネットワークデバイス208は、メッセージ214Cが以前にPLCネットワーク200内で転送されたことを示すために、あらかじめ定義された値を第1のフレーム制御フィールドに含める(たとえば、PBB=0xFF)。ネットワークデバイス208はまた、ネットワークデバイス208が現在メッセージ214Cを転送していることを示すために、そのデバイス識別子をメッセージ214Bの第2のフレーム制御フィールドに含める(たとえば、BLE=PCo−1)。ネットワークデバイス208は、メッセージ214C内の送信元識別子(たとえば、STEI)と宛先識別子(たとえば、DTEI)とを変更しないことがある。したがって、図2に示されるように、メッセージ214CのSTEIフィールドはネットワークデバイス210のデバイス識別子を含み、DTEIフィールドは、あらかじめ定義された転送識別子を含む。ネットワークデバイス208はまた、下流フィールド内のインジケータ(たとえば、DS=0)に基づいて、中央コーディネータ202がメッセージ214Bを受信または生成しなかったと決定する。ネットワークデバイス206は、下流フィールド内のこのインジケータをメッセージ214Bからメッセージ214Cへと伝播させ得る。下流フィールド内のインジケータ(たとえば、DS=0)に基づいて、ネットワークデバイス208は、上流経路を介してメッセージ214Cを転送することを決定し得る。ネットワークデバイス208は、その転送テーブルにアクセスし、ネットワークデバイス208が上流経路内で中央コーディネータと直接的に接続されていると決定することができる。言い換えれば、ネットワークデバイス208は、ネットワークデバイス208が1つの通信ホップまたは1つの通信リンクを介して中央コーディネータと接続されていると決定し得る。したがって、ネットワークデバイス208は、上流経路を介して中央コーディネータ202にメッセージ214Cを転送する。
[0057]中央コーディネータ202は、ネットワークデバイス208からメッセージ214Cを受信する。中央コーディネータ202は、受信されたメッセージ214Cの第2のフレーム制御フィールドが、中央コーディネータ202と直接的に接続された下流ネットワークデバイス208のデバイス識別子と一致する(たとえば、BLE=PCo−1)と決定する。したがって、中央コーディネータ202は、PLCネットワーク200内でメッセージ214Cを転送することを決定する。中央コーディネータ202は、その後のPLCネットワーク200内での転送のためにメッセージ214Dを生成するように、メッセージ214Cのフレーム制御フィールド内の情報を更新する。中央コーディネータ202は、中央コーディネータ202がメッセージを受信したことを示すように下流フィールドを更新する。図2の例では、中央コーディネータ202は、メッセージ214D内でDS=1を設定する。さらに、受信されたメッセージ214Bの第2のフレーム制御フィールドが、中央コーディネータ202と直接的に接続された下流ネットワークデバイス208のデバイス識別子と一致するので、中央コーディネータ202は、メッセージが以前にPLCネットワーク200内で送信されたと決定する。したがって、中央コーディネータ202は、メッセージ214Dが以前にPLCネットワーク200内で転送されたことを示すために、メッセージ214Dが、あらかじめ定義された値を第1のフレーム制御フィールドに含む(たとえば、PBB=0xFF)ことを保証し得る。中央コーディネータ202は、メッセージが以前にPLCネットワーク200内で転送されたことを示すために、および中央コーディネータ202が現在メッセージ214Dを転送していることを示すために、そのデバイス識別子をメッセージ214Dの第2のフレーム制御フィールドにも含み得る(たとえば、BLE=CCo)。中央コーディネータ202は、メッセージ214D内の送信元識別子と宛先識別子とを変更しないことがある。したがって、図2に示されるように、メッセージ214DのSTEIフィールドはネットワークデバイス210のデバイス識別子を含み、DTEIフィールドは、あらかじめ定義された転送識別子を含む。メッセージ214Dを形成した後、中央コーディネータ202は、その転送テーブルにアクセスし、中央コーディネータ202と直接的に接続されている下流ネットワークデバイスを識別し得る。図2の例では、中央コーディネータ202は、ネットワークデバイス206および208が下流経路内で中央コーディネータ202と直接的に接続されていると決定する。したがって、中央コーディネータ202は、メッセージ214Dをネットワークデバイス206および208に転送する。
[0058]ネットワークデバイス206は、中央コーディネータ202からメッセージ214Dを受信する。ネットワークデバイス206は、受信されたメッセージ214Dの第2のフレーム制御フィールドが、ネットワークデバイス206と直接的に接続された上流ネットワークデバイス202のデバイス識別子と一致する(たとえば、BLE=CCo)と決定する。したがって、ネットワークデバイス206は、PLCネットワーク200内でメッセージ214Dを転送することを決定する。ネットワークデバイス206は、その後のPLCネットワーク200内での転送のためにメッセージ214Eを生成するように、メッセージ214Dのフレーム制御フィールド内の情報を更新する。受信されたメッセージ214Dの第2のフレーム制御フィールドが上流ネットワークデバイス202のデバイス識別子と一致するので、ネットワークデバイス206は、メッセージ214Dが以前にPLCネットワーク200内で送信されたと決定する。したがって、ネットワークデバイス206は、メッセージが以前にPLCネットワーク200内で転送されたことを示すために、メッセージ214Eが、あらかじめ定義された値を第1のフレーム制御フィールドに含む(たとえば、PBB=0xFF)ことを保証し得る。ネットワークデバイス206はまた、ネットワークデバイス206が現在メッセージ214Eを転送していることを示すために、そのデバイス識別子をメッセージ214Eの第2のフレーム制御フィールドに含める(たとえば、BLE=PCo−2)。ネットワークデバイス206は、メッセージ214E内の送信元識別子と宛先識別子とを変更しないことがある。したがって、図2に示されるように、メッセージ214EのSTEIフィールドはネットワークデバイス210のデバイス識別子を含み、DTEIフィールドは、あらかじめ定義された転送識別子を含む。ネットワークデバイス206はまた、下流フィールド内のインジケータ(たとえば、DS=1)に基づいて、中央コーディネータ202がメッセージ214Dを受信した(または生成した)と決定する。ネットワークデバイス206は、下流フィールド内のこのインジケータをメッセージ214Dからメッセージ214Eへと伝播させ得る。下流フィールド内のインジケータ(たとえば、DS=1)に基づいて、ネットワークデバイス206は、PLCネットワーク200の下流経路を介してメッセージ214Eを転送し、PLCネットワーク200の上流経路を介してメッセージ214Eを転送しないことを決定する。ネットワークデバイス206は、その転送テーブルにアクセスし、ネットワークデバイス206が下流経路を介してネットワークデバイス204と直接的に接続されていると決定し得る。したがって、ネットワークデバイス206は、下流経路を介してネットワークデバイス204にメッセージ214Eを転送する。
[0059]ネットワークデバイス204は、ネットワークデバイス206からメッセージ214Eを受信する。ネットワークデバイス204は、受信されたメッセージ214Eの第2のフレーム制御フィールドが、ネットワークデバイス204と直接的に接続された上流ネットワークデバイス206のデバイス識別子と一致する(たとえば、BLE=PCo−2)と決定する。したがって、ネットワークデバイス204は、PLCネットワーク200内でメッセージ214Eを転送することを決定する。ネットワークデバイス206はまた、受信されたメッセージ214Eの下流フィールドを読み取り、中央コーディネータ202が以前にメッセージ214Eを転送したと決定し得る(たとえば、DS=1)。下流フィールド内のこのインジケータは、中央コーディネータ202がPLCネットワークの別のネットワークデバイスからメッセージを受信した、異なる通信ネットワークの別のネットワークデバイスからメッセージを受信した、またはメッセージ214Eを生成したことを示し得る。したがって、ネットワークデバイス204は、PLCネットワーク200の下流経路を介してメッセージ214Eを転送することを決定する。転送テーブルに基づいて、ネットワークデバイス204は、ネットワークデバイス204はPLCネットワーク200内の別の下流ネットワークデバイスと直接的に接続されていないと決定し得る。しかしながら、ネットワークデバイス204は、イーサネットデバイス224がネットワークデバイス204と接続されていると決定し得る。いくつかの実施形態では、ネットワークデバイス204は、イーサネットデバイス224(たとえば、PC−2)に転送するためにイーサネットメッセージ214Gを生成するように、受信されたメッセージ214Eの1つまたは複数のフィールドを更新し得る。他の実施形態では、ネットワークデバイス204は、ペイロードと他の適切な情報(たとえば、送信元識別子、宛先識別子など)とを新しいイーサネットメッセージ214Gに含み得る。メッセージ214Gは、イーサネットデバイス222のデバイス識別子を送信元アドレスフィールドに(たとえば、SA=PC−1)、あらかじめ定義された転送識別子を宛先アドレスフィールド(たとえば、DA=転送)に含む。ネットワークデバイス204は、メッセージ214GをPLCネットワーク200からイーサネット220のイーサネットデバイス224に転送する。イーサネットデバイス224は、引き続きメッセージ214Gを、イーサネット220内の他のネットワークデバイスに、および/または他の適切な通信ネットワークに転送し得る。図2には示されていないが、メッセージ214B、214C、214D、214E、および214Fは、送信元アドレスフィールド(たとえば、SA=PC−1)と宛先アドレスフィールド(たとえば、DA=転送)も含み得ることが留意される。上記で説明されたように、一実装形態では、STEI、DTEI、PBB、BLE、およびDSは、メッセージのフレーム制御フィールドの一部であってよい。DAはメッセージのMAC宛先アドレスフィールドの一部であってよく、SAはメッセージのMAC送信元アドレスフィールドの一部であってよい。
[0060]ネットワークデバイス208は、中央コーディネータ202からメッセージ214Dを受信する。ネットワークデバイス208は、受信されたメッセージ214Dの第2のフレーム制御フィールドが、ネットワークデバイス206と直接的に接続された上流ネットワークデバイス202のデバイス識別子と一致する(たとえば、BLE=CCo)と決定する。したがって、ネットワークデバイス208は、PLCネットワーク200内でメッセージ214Dを転送することを決定する。ネットワークデバイス208は、受信されたメッセージ214Dの下流フィールド(たとえば、DS=1)を読み取り、中央コーディネータ202がメッセージ214Dを受信または生成したと決定し得る。したがって、ネットワークデバイス208は、PLCネットワーク200の下流経路を介してメッセージ214Dを転送し、PLCネットワーク200の上流経路を介してメッセージ214Dを転送しないことを決定する。ネットワークデバイス208は、その転送テーブルにアクセスし、ネットワークデバイス208と直接的に接続されている下流ネットワークデバイスを識別し得る。図2の例に関して、ネットワークデバイス208は、ネットワークデバイス208が、隠されたネットワークデバイス210および212のためのプロキシネットワークデバイスとして動作すると決定する。ネットワークデバイス208は、次いで、メッセージ214Dを下流ネットワークデバイス210および212に転送するべきかどうかを決定し得る。このために、ネットワークデバイス208は、下流ネットワークデバイス210および212のデバイス識別子を、メッセージ214Dに含まれる送信元識別子と比較し得る。たとえば、ネットワークデバイス208は、ネットワークデバイス210および212のデバイス識別子をSTEIフィールド内の送信元識別子と比較し得る。この比較に基づいて、ネットワークデバイス208は、ネットワークデバイス210のデバイス識別子が、メッセージ214Dに含まれる送信元識別子と一致する(たとえば、STEI=HSTA−1)と決定する。ネットワークデバイス208は、ネットワークデバイス210がメッセージ214Dを生成した、または別の通信ネットワークからメッセージを受信したと決定する。したがって、ネットワークデバイス208は、メッセージ214Dを下流ネットワークデバイス210に転送しないことを決定する。代わりに、ネットワークデバイス208は、メッセージ214Dを下流ネットワークデバイス212にのみ転送することを決定する。ネットワークデバイス208は、その後のPLCネットワーク200内での転送のためにメッセージ214Fを生成するように、メッセージ214Dのフレーム制御フィールド内の情報を更新する。受信されたメッセージ214Dの第2のフレーム制御フィールドが上流ネットワークデバイス202のデバイス識別子と一致するので、ネットワークデバイス208は、メッセージ214Dが以前にPLCネットワーク200内で転送されたと決定する。したがって、ネットワークデバイス208は、メッセージが以前にPLCネットワーク200内で転送されたことを示すために、メッセージ214Fの第1のフレーム制御フィールドが、あらかじめ定義された値(たとえば、PBB=0xFF)を含むことを保証し得る。ネットワークデバイス208はまた、ネットワークデバイス208が現在メッセージ214Fを転送していることを示すために、そのデバイス識別子をメッセージ214Fの第2のフレーム制御フィールドに含める(たとえば、BLE=PCo−1)。さらに、メッセージ214Fは、中央コーディネータ202が以前にメッセージを転送したことを示し得る(たとえば、DS=1)。次いで、ネットワークデバイス208は、ネットワークデバイス212にメッセージ214Fを送信する。しかしながら、上記で説明されたように、ネットワークデバイス208は、ネットワークデバイス210にメッセージ214Fを送信しないことがある(「X」インジケータによって表される)。
[0061]ネットワークデバイス212は、ネットワークデバイス208からメッセージ214Fを受信する。ネットワークデバイス212は、受信されたメッセージ214Fの第2のフレーム制御フィールドが、ネットワークデバイス212と直接的に接続された上流ネットワークデバイス208のデバイス識別子と一致する(たとえば、BLE=PCo−1)と決定する。ネットワークデバイス212はまた、受信されたメッセージ214Fの下流フィールド内のインジケータ(たとえば、DS=1)に基づいて、中央コーディネータ202がメッセージ214Fを受信したまたは生成したと決定する。したがって、ネットワークデバイス212は、下流経路を介してメッセージ214Fを転送することを決定し得る。しかしながら、転送テーブルにアクセスした後、ネットワークデバイス212は、ネットワークデバイス212はPLCネットワーク200の別の下流ネットワークデバイスと直接的に接続されていないと決定し得る。メッセージ214Fを処理した後、ネットワークデバイス212は、メッセージ214Fを破棄し、PLCネットワーク200内でメッセージを転送しないことを決定し得る。
[0062]図2は、イーサネットデバイス222がネットワーク200および220内で転送するためにメッセージを生成することを示しているが、他の実施形態では、任意の適切なネットワークデバイスが、PLCネットワーク200内で転送されるメッセージを生成してよい。たとえば、ネットワークデバイス206が、PLCネットワーク200内で送信するためにメッセージを生成してよい。ネットワークデバイス206は、上流経路を介して中央コーディネータ202にメッセージを送信してよい。次いで、中央コーディネータ202が、下流経路を介してネットワークデバイス206および208にメッセージを転送(または反復)してよい。ネットワークデバイス206は、下流経路を介してネットワークデバイス210および212にメッセージをさらに転送してよく、ネットワークデバイス208は、下流経路を介してネットワークデバイス204にメッセージをさらに転送してよい。より一般的には、メッセージ(たとえば、ブロードキャストメッセージまたはマルチキャストメッセージ)は、最初に、通信ネットワークの上流経路を介して中央コーディネータに転送される。中央コーディネータがメッセージを受信した後、メッセージは、通信ネットワークの下流経路を介して葉ネットワークデバイスに転送される。各段階において、ネットワークデバイスは、受信されたメッセージの下流フィールド内のインジケータに基づいて、上流経路を介してメッセージを転送するべきか下流経路を介して転送するべきかを決定し得る。そのうえ、ネットワークデバイスは、受信されたメッセージ内の送信元識別子(または転送デバイス識別子)が、ネットワークデバイスと直接的に接続されている別のネットワークデバイスのデバイス識別子と一致するかどうかに応じて、メッセージを転送するべきかメッセージを破棄するべきかを決定し得る。
[0063]いくつかの実施形態では、図2に関して示されるように、プロキシネットワークデバイス206は、1つの通信ホップまたは1つの通信リンクを介して中央コーディネータ202と接続され得る。しかしながら、他の実施形態では、プロキシネットワークデバイス206は、中央コーディネータ202と直接的に接続されないことがある。代わりに、プロキシネットワークデバイスは、隠されたネットワークデバイスでもあることがあり、中央コーディネータ202を検出することができないことがある。この実施形態では、プロキシネットワークデバイス206(「下位レベルプロキシネットワークデバイス」)は、下位レベルプロキシネットワークデバイスと中央コーディネータ202との間の通信を可能にする上位レベルプロキシネットワークデバイスを有することがある。下位レベルプロキシネットワークデバイスの転送テーブルは、上位レベルプロキシネットワークデバイスが上流経路を介して下位レベルプロキシネットワークデバイスと直接的に接続されていることを示すことができる。転送テーブルは、隠されたネットワークデバイスが下流経路を介して下位レベルプロキシネットワークデバイスと直接的に接続されていることを示すことができる。
[0064]図3は、通信ネットワーク内でメッセージを転送するためのネットワークデバイスの例示的な動作を示す流れ図(フロー)300である。フロー300は、ブロック302で始まる。
[0065]ブロック302では、第1のネットワークデバイスが、通信ネットワーク内で転送するためにメッセージを受信する。このメッセージは、ブロードキャストメッセージまたはマルチキャストメッセージであってよい。いくつかの実施形態では、第1のネットワークデバイスは、同じ通信ネットワークの第2のネットワークデバイスからメッセージを受信し得る。図2の例を参照すると、ネットワークデバイス208は、PLCネットワーク200内で転送するためにネットワークデバイス210によって生成されたメッセージを受信し得る。別の実施形態では、第1のネットワークデバイスは、異なる通信ネットワークの第2のネットワークデバイスからメッセージを受信し得る。図2の例を参照すると、ネットワークデバイス208は、PLCネットワーク200内で転送するためにイーサネット200のイーサネットデバイス222からメッセージ214Aを受信し得る。さらに別の実施形態では、第1のネットワークデバイスは、通信ネットワーク内で送信するためにメッセージを生成し得る。たとえば、ネットワークデバイス208は、PLCネットワーク200内でブロードキャストするためにメッセージを生成し得る。フローはブロック304に進む。
[0066]ブロック304では、第1のネットワークデバイスは、メッセージ内の第1のあらかじめ定義されたフィールドに少なくとも部分的に基づいて、通信ネットワーク内でメッセージを転送するべきかどうかを決定する。一実施形態では、転送ユニットは、受信されたメッセージ内のデバイス識別子を、第1のネットワークデバイスと直接的に接続されている各ネットワークデバイスのデバイス識別子と比較することができる。メッセージ内で受信されたデバイス識別子は、第1のネットワークデバイスにメッセージを送信した別のネットワークデバイスの送信元識別子またはデバイス識別子(「転送デバイス識別子」)を含むことがある。第1のネットワークデバイスに関連付けられた転送テーブルは、上流経路を介して第1のネットワークデバイスと直接的に接続されている上流ネットワークデバイスのデバイス識別子を含む上流データエントリを含み得る。上流ネットワークデバイスは、中央コーディネータまたは上位レベルプロキシネットワークデバイスであってよい。第1のネットワークデバイスに関連付けられた転送テーブルは、下流経路を介して第1のネットワークデバイスと直接的に接続されている各下流ネットワークデバイスのための下流データエントリを含み得る。下流ネットワークデバイスは、第1のネットワークデバイスがプロキシネットワークデバイスとして動作する隠されたネットワークデバイスであってよい。一例では、転送ユニットは、受信されたメッセージ内のデバイス識別子(たとえば、送信元識別子または転送デバイス識別子)を、第1のネットワークデバイスと直接的に接続されている各下流ネットワークデバイスのデバイス識別子と比較することができる。別の例として、転送ユニットは、受信されたメッセージ内のデバイス識別子(たとえば、送信元識別子または転送デバイス識別子)を、第1のネットワークデバイスと直接的に接続されている上流ネットワークデバイスのデバイス識別子と比較することができる。各例において、受信されたメッセージ内のデバイス識別子が、第1のネットワークデバイスと直接的に接続されている別のネットワークデバイスのデバイス識別子と一致する場合、転送ユニットは、通信ネットワーク内でメッセージを転送することを決定し得る。しかしながら、各例において、受信されたメッセージ内のデバイス識別子が、第1のネットワークデバイスと直接的に接続されている別のネットワークデバイスのデバイス識別子と一致しない場合、転送ユニットは、通信ネットワーク内でメッセージを転送しないことがある。メッセージを転送することが決定された場合、フローはブロック306に進む。そうでない場合、フローはブロック310に進む。
[0067]ブロック306では、第1のネットワークデバイスは、メッセージの第2のあらかじめ定義されたフィールド内のインジケータを決定し、この第2のあらかじめ定義されたフィールドは、中央コーディネータが以前にメッセージを転送したかどうかを示す。図2の例を参照すると、各メッセージは、中央コーディネータ202が以前にメッセージを転送したかどうかを示す下流フィールド(すなわちDSフィールド)を含み得る。たとえば、下流フィールドは、中央コーディネータ202が同じ通信ネットワークの別のネットワークデバイスからメッセージを受信したかどうか、中央コーディネータ202が異なる通信ネットワークの別のネットワークデバイスからメッセージを受信したかどうか、中央コーディネータ202が通信ネットワーク内で送信するためにメッセージを生成したかどうかなどを示すことができる。図2では、ネットワークデバイス208によって受信されるメッセージ214Bは、第1のインジケータを下流フィールドに含む(たとえば、DS=0)。第1のインジケータは、中央コーディネータ202がメッセージ214Bを受信または生成していないことを示すことができる。別の例として、ネットワークデバイス206によって受信されるメッセージ214Dは、第2のインジケータを下流フィールドに含む(たとえば、DS=1)。第2のインジケータは、中央コーディネータ202がメッセージ214Dを受信または生成したことを示すことができる。ネットワークデバイスは、第2のあらかじめ定義されたフィールド内のインジケータに少なくとも部分的に基づいて、通信ネットワーク内でメッセージをどのようにして転送するかを決定し得る。フローはブロック308に進む。
[0068]ブロック308では、第1のネットワークデバイスが、第2のあらかじめ定義されたフィールド内のインジケータに少なくとも部分的に基づいて、通信ネットワーク内の中央コーディネータに対して上流経路を介してメッセージを転送するべきか下流経路を介して転送するべきかを決定する。上記で説明されたように、第2のあらかじめ定義されたフィールドは、中央コーディネータが以前にメッセージを転送したかどうかを示すことができる。たとえば、転送ユニット110は、第2のあらかじめ定義されたフィールド(たとえば、下流フィールド)内のインジケータに少なくとも部分的に基づいて、メッセージをどのようにして転送するかを決定する。一例では、下流フィールドが第1のインジケータを含む(たとえば、DS=0)場合、転送ユニット110は、中央コーディネータ202はメッセージを受信または生成していないと決定し得る。転送ユニット110は、通信ネットワークの上流経路を介してメッセージを送信することを決定し得る。しかしながら、下流フィールドが第2のインジケータを含む(たとえば、DS=1)場合、転送ユニット110は、中央コーディネータ202が以前にメッセージを受信または生成したと決定し得る。この例では、転送ユニット110は、通信ネットワークの下流経路を介してメッセージを送信することを決定し得る。
[0069]図5および図6でさらに説明されるように、下流フィールドが第1のインジケータを含む場合、転送ユニット110は、上流経路内で第1のネットワークデバイスと直接的に接続された上位レベルプロキシネットワークデバイスまたは中央コーディネータを識別し得る。上記で図2に関して説明されたように、転送ユニット110は、受信されたメッセージのフレーム制御フィールド内の情報を更新し得る。次いで、転送ユニット110は、結果として生じるメッセージを上位レベルプロキシネットワークデバイスまたは中央コーディネータに送信し得る。しかしながら、図5および図6でさらに説明されるように、下流フィールドが第2のインジケータを含む場合、転送ユニット110は、下流経路内でネットワークデバイスと直接的に接続されている追加ネットワークデバイスを識別し得る。具体的には、転送ユニット110は、第1のネットワークデバイスが隠されたネットワークデバイスのためのプロキシネットワークデバイスとして動作するかどうかを決定し得る。そうである場合、転送ユニット110は、受信されたメッセージ内の送信元識別子および隠されたネットワークデバイスに関連付けられたデバイス識別子に少なくとも部分的に基づいて、隠されたネットワークデバイスにメッセージを転送するべきかどうかを決定し得る。隠されたネットワークデバイスにメッセージを転送することが決定された場合、転送ユニット110は、上記で図2に関して説明されたように、受信されたメッセージのフレーム制御フィールド内の情報を更新し得る。転送ユニット110は、次いで、結果として生じるメッセージを隠されたネットワークデバイスに送信し得る。フローは、ブロック308から終了する。
[0070]ブロック310では、第1のネットワークデバイスが通信ネットワーク内でメッセージを転送しないことを決定した場合、メッセージは、第1のネットワークデバイスにおいて破棄される。上記で説明されたように、第1のネットワークデバイスは、受信されたメッセージ内のデバイス識別子(たとえば、送信元識別子または転送デバイス識別子)を、第1のネットワークデバイスと直接的に接続されている各ネットワークデバイスのデバイス識別子と比較し得る。一致が存在しない場合、第1のネットワークデバイスは、通信ネットワーク内でメッセージを処理または転送しないことを決定し得る。したがって、第1のネットワークデバイスは、メッセージを破棄し得る。フローは、ブロック310から終了する。
[0071]図4は、通信ネットワーク内でメッセージを転送するための中央コーディネータの例示的な動作を示す流れ図400である。フロー400は、ブロック402で始まる。
[0072]ブロック402では、中央コーディネータが、通信ネットワーク内で転送するためにメッセージを受信する。このメッセージは、ブロードキャストメッセージまたはマルチキャストメッセージであってよい。いくつかの実施形態では、中央コーディネータは、同じ通信ネットワークの別のネットワークデバイスからメッセージを受信し得る。図2の例を参照すると、中央コーディネータ202は、PLCネットワーク200のネットワークデバイス208によって生成または転送されたメッセージを受信し得る。別の実施形態では、中央コーディネータ202は、PLCネットワーク200内で送信するためにメッセージを生成し得る。別の実施形態では、第1の通信ネットワークの中央コーディネータは、第1の通信ネットワーク内で転送するために第2の通信ネットワークのネットワークデバイスからメッセージを受信し得る。たとえば、PLCネットワーク200の中央コーディネータ202は、PLCネットワーク200内で転送するためにイーサネット220のイーサネットデバイスからメッセージを受信し得る。フローはブロック404に進む。
[0073]ブロック404では、中央コーディネータは、メッセージ内の第1のあらかじめ定義されたフィールドに基づいて、通信ネットワーク内でメッセージを転送するべきかどうかを決定する。通信ネットワーク内で重複メッセージを受信および転送する確率を最小にするために、中央コーディネータ(たとえば、転送ユニット)は、通信ネットワーク内でメッセージを転送するべきかどうかを決定し得る。中央コーディネータは、受信されたメッセージからのデバイス識別子を、中央コーディネータと直接的に接続されている各下流ネットワークデバイスのデバイス識別子と比較し得る。たとえば、中央コーディネータは、受信されたメッセージ内の送信元識別子を、中央コーディネータと直接的に接続されている各下流ネットワークデバイスのデバイス識別子と比較することができる。別の例として、中央コーディネータは、受信されたメッセージ内の転送デバイス識別子を、中央コーディネータと直接的に接続されている各下流ネットワークデバイスのデバイス識別子と比較することができる。一致が存在する場合、中央コーディネータは、通信ネットワーク内でメッセージを転送することを決定する。どうでない場合、中央コーディネータは、中央コーディネータがメッセージを意図せずに受信し、中央コーディネータはメッセージを受信するように指定されなかったと決定する。図2の例を参照すると、ネットワークデバイス210は、ネットワークデバイス208にメッセージ214Bを送信し得る。中央コーディネータ202は、メッセージ214Bを受信し得る。中央コーディネータ202は、メッセージ214B内の送信元識別子は、中央コーディネータと直接的に接続されている下流ネットワークデバイス206および208のデバイス識別子と一致しないと決定し得る。したがって、中央コーディネータ(たとえば、転送ユニット)は、中央コーディネータはメッセージ214Bを受信することが意図されなかったと決定し得る。別の例として、中央コーディネータ202は、ネットワークデバイス208からメッセージ214Cを受信し得る。中央コーディネータ202は、メッセージ214C内の(たとえば、BLEフィールド内の)転送デバイス識別子が、中央コーディネータと直接的に接続されている下流ネットワークデバイス208のデバイス識別子と一致すると決定し得る。したがって、中央コーディネータ(たとえば、転送ユニット)は、通信ネットワーク内でメッセージ214Cを転送することを決定し得る。通信ネットワーク内でメッセージを転送することが決定された場合、フローはブロック406に進む。そうでない場合、フローはブロック410に進む。
[0074]ブロック406では、中央コーディネータは、中央コーディネータがメッセージを受信したことを示すためにメッセージ内にインジケータを含むように第2のあらかじめ定義されたフィールドを更新する。各メッセージは、中央コーディネータがメッセージを受信または生成したかどうかを示す下流フィールドを含み得る。中央コーディネータ202は、中央コーディネータ202がメッセージを受信または生成すると下流フィールドを更新し得る。図2の例を参照すると、ネットワークデバイス208から中央コーディネータ202に送信されるメッセージ214Cは、第1のインジケータを下流フィールドに含む(たとえば、DS=0)。第1のインジケータは、中央コーディネータ202がメッセージ214Cを受信していないことを示すことができる。メッセージを受信した後、中央コーディネータ202は、第2のインジケータを含み、結果として生じるメッセージ214Dを生成するように、下流フィールドを更新する。第2のインジケータ(たとえば、DS=1)は、中央コーディネータ202がメッセージ214Dを受信したことを示すことができる。次いで、中央コーディネータ202は、第2のインジケータを含むメッセージ214Dを、PLCネットワーク200内の他のネットワークデバイス206および208に転送し得る。別の例として、中央コーディネータ202は、PLCネットワーク200内で送信するためにメッセージを生成し得る。この例では、中央コーディネータ202は、メッセージをネットワークデバイス206および208に送信する前に、メッセージの下流フィールドに第2のインジケータを含み得る。フローはブロック408に進む。
[0075]ブロック408では、中央コーディネータは、下流経路を介して中央コーディネータと直接的に接続されているネットワークデバイスにメッセージを再送信する。中央コーディネータがメッセージを受信したことを示すためにメッセージ内に第2のインジケータを含めた後、中央コーディネータは、中央コーディネータと直接的に接続されている少なくとも1つの下流ネットワークデバイスを識別することができる。中央コーディネータは、次いで、識別されたネットワークデバイスに、第2のインジケータを含むメッセージを送信し得る。図2の例では、中央コーディネータ202は、ネットワークデバイス206および208が、1つの通信ホップまたは1つの通信リンクを介して下流経路内で中央コーディネータと接続されていると決定する。第2のインジケータを含む(たとえば、DS=1)ように下流フィールドを更新した後、中央コーディネータ202は、結果として生じるメッセージ214Dをネットワークデバイス206および208に送信する。いくつかの実施形態では、中央コーディネータは、通信ネットワーク内で受信されたメッセージを転送し得る。この実施形態では、同様に上記で図2において説明されたように、中央コーディネータ202は、メッセージが以前に通信ネットワーク内で転送されたことを示すあらかじめ定義された値(たとえば、PBB=0xFF)を含むように第1のフレーム制御フィールドも更新し得る。中央コーディネータは、そのデバイス識別子も第2のフレーム制御フィールドに含み得る(たとえば、BLE=CCo)。他の実施形態では、中央コーディネータは、通信ネットワーク内で転送するためにメッセージを生成し得る。この実施形態では、中央コーディネータ202は、メッセージが以前に通信ネットワーク内で転送されなかったことを示すために、あらかじめ定義された値を第1のフレーム制御フィールドに含まない(たとえば、PBB≠0xFF)ことがある。中央コーディネータは、メッセージが以前に通信ネットワーク内で転送されなかったことを示すために、そのデバイス識別子を第2のフレーム制御フィールドに含まない(たとえば、BLE≠CCo)ことがある。中央コーディネータは、中央コーディネータがメッセージを生成したことを示すために、そのデバイス識別子を送信元識別子フィールドに含む(たとえば、STEI=CCo)ことがある。フローは、ブロック408から終了する。
[0076]ブロック410では、中央コーディネータが、通信ネットワーク内でメッセージを転送しないことを決定した場合、メッセージは、中央コーディネータにおいて破棄される。上記で説明されたように、中央コーディネータは、受信されたメッセージ内のデバイス識別子(たとえば、送信元識別子または転送デバイス識別子)を、中央コーディネータと直接的に接続されている各下流ネットワークデバイスのデバイス識別子と比較し得る。一致が存在しない場合、中央コーディネータは、通信ネットワーク内でメッセージを処理または転送しないことを決定し得る。したがって、中央コーディネータは、メッセージを破棄し得る。フローは、ブロック410から終了する。
[0077]図5および図6は、通信ネットワーク内でメッセージを転送するための例示的な動作を示す流れ図500である。フロー500は、図5のブロック502で始まる。
[0078]ブロック502では、第1のネットワークデバイスが、通信ネットワーク内でメッセージを転送することを決定する。このメッセージは、ブロードキャストメッセージまたはマルチキャストメッセージであってよい。いくつかの実施形態では、第1のネットワークデバイスは、通信ネットワーク内で送信するためにメッセージを生成し得る。別の実施形態では、第1のネットワークデバイスは、同じ通信ネットワークの第2のネットワークデバイスからメッセージを受信し得る。図2の例を参照すると、ネットワークデバイス206は、PLCネットワーク200内で転送するためにネットワークデバイス204によって生成されたメッセージを受信し得る。別の実施形態では、第1のネットワークデバイスは、異なる通信ネットワークの第2のネットワークデバイスからメッセージを受信し得る。図2の例を参照すると、ネットワークデバイス210は、PLCネットワーク200内で転送するためにイーサネットデバイス222からメッセージを受信し得る。いくつかの実施形態では、第1のネットワークデバイスは通信ネットワークの中央コーディネータであってよく、他の実施形態では、第1のネットワークデバイスは通信ネットワークの別の適切なデバイスであってよい。フローはブロック504に進む。
[0079]ブロック504では、第1のネットワークデバイスが通信ネットワークの中央コーディネータであるかどうかが決定される。転送するためにメッセージを受信する(または生成する)第1のネットワークデバイスが中央コーディネータである場合、フローはブロック506に進む。そうでない場合、フローはブロック508に進む。
[0080]ブロック506では、中央コーディネータは、中央コーディネータがメッセージを受信したことを示すようにメッセージのあらかじめ定義されたフィールドを更新する。上記で図2および図4に関して説明されたように、各メッセージは、中央コーディネータが以前にメッセージを受信したまたは最初にメッセージを生成したかどうかを示す下流フィールドを含み得る。メッセージ214Cを受信したことに応答して、中央コーディネータ202の転送ユニットは、中央コーディネータがメッセージを受信したことを示すために第1のインジケータを含む(たとえば、DS=1)ように下流フィールドを更新し得る。代替的に、中央コーディネータが通信ネットワーク内で送信するためにメッセージを生成する場合、中央コーディネータは、生成されたメッセージの一部として下流フィールドに第1のインジケータを含み得る。さらに中央コーディネータは、上記で図2に関して説明されたように、結果として生じるメッセージ214Dを生成するように、受信されたメッセージ214Cの他のフレーム制御フィールドを更新し得る。フローはブロック508に進む。
[0081]ブロック508では、メッセージが、下流経路を介して第1のネットワークデバイスに直接的に接続されている別のネットワークデバイス(「下流ネットワークデバイス」)から受信されたかどうかが決定される。たとえば、転送ユニット110は、メッセージを転送するべきかどうかまたはメッセージを破棄するべきかどうかを決定し得る。メッセージが、第1のネットワークデバイスと直接的に接続されている下流ネットワークデバイスから受信された場合、転送ユニット110はメッセージを転送し得る。転送ユニット110は、メッセージが、第1のネットワークデバイスと直接的に接続されている下流ネットワークデバイスから受信されたかどうかを決定するために、様々な技法を使用し得る。たとえば、転送ユニット110は、受信されたメッセージ内の送信元識別子を、第1のネットワークデバイスと直接的に接続されている各下流ネットワークデバイスのデバイス識別子と比較し得る。別の例として、転送ユニット110は、受信されたメッセージ内の転送デバイス識別子(たとえば、BLEフィールド)を、各下流ネットワークデバイスのデバイス識別子と比較し得る。送信元識別子または転送デバイス識別子が、第1のネットワークデバイスと直接的に接続されている任意の下流ネットワークデバイスのデバイス識別子と一致しない場合、メッセージが下流ネットワークデバイスから受信されなかったことが決定され、フローはブロック510に進む。そうではなく、メッセージが下流ネットワークデバイスから受信された場合、フローはブロック514に進む。
[0082]ブロック510では、メッセージが、上流経路を介して第1のネットワークデバイスに直接的に接続されている別のネットワークデバイス(「上流ネットワークデバイス」)から受信されたかどうかが決定される。たとえば、メッセージが、第1のネットワークデバイスと直接的に接続されている上流ネットワークデバイスから受信された場合、転送ユニット110は、通信ネットワーク内でメッセージを転送し得る。上記で説明されたように、転送ユニット110は、受信されたメッセージ内の送信元識別子または転送デバイス識別子を、上流ネットワークデバイスのデバイス識別子と比較し得る。送信元識別子または転送デバイス識別子が、第1のネットワークデバイスと直接的に接続されている上流ネットワークデバイスのデバイス識別子と一致しない場合、メッセージが上流ネットワークデバイスから受信されなかったことが決定される。このシナリオでは、転送ユニット110は、第1のネットワークデバイスはメッセージを受信することが意図されなかったと決定し得、フローはブロック512に進む。そうではなく、一致が存在する場合、フローはブロック514に進む。
[0083]ブロック512では、メッセージは、第1のネットワークデバイスにおいて破棄される。送信元識別子または転送デバイス識別子が、第1のネットワークデバイスと直接的に接続されている下流ネットワークデバイスのいずれのデバイス識別子とも一致しない場合、メッセージはネットワークデバイスに向けられなかったことが決定される。同様に、送信元識別子または転送デバイス識別子が、第1のネットワークデバイスと直接的に接続されている上流ネットワークデバイスのデバイス識別子と一致しない場合、メッセージがネットワークデバイスに向けられなかったことが決定される。これらのシナリオでは、転送ユニット110は、第1のネットワークデバイスにおいてメッセージをさらに処理(たとえば、復号)しないことを決定し得る。転送ユニット110は、通信ネットワーク内でメッセージを転送しないことも決定し得、メッセージを破棄し得る。フローは、ブロック512から終了する。
[0084]ブロック514では、中央コーディネータが以前にメッセージを転送したかどうかが決定される。通信ネットワーク内でメッセージを転送することを決定した(たとえば、ブロック508またはブロック510からの「はい」経路)後、第1のネットワークデバイスの転送ユニット110は、中央コーディネータがメッセージを受信した(または生成した)かどうかを決定し得る。このために、転送ユニット110は、受信されたメッセージの下流フィールド内のインジケータを決定し得る。たとえば、下流フィールドが第1のインジケータを含む(たとえば、DS=0)場合、転送ユニット110は、中央コーディネータ202はメッセージを受信または生成していないと決定し得る。代替的に、下流フィールドが第2のインジケータを含む(たとえば、DS=1)場合、転送ユニット110は、中央コーディネータがメッセージを受信または生成したと決定し得る。中央コーディネータが以前にメッセージを転送していない場合、フローはブロック516に進む。そうではなく、中央コーディネータが以前にメッセージを転送した場合、フローは図6のブロック518に進む。
[0085]ブロック516では、上流経路を介して第1のネットワークデバイスと直接的に接続されている上流ネットワークデバイスが識別される。第1のネットワークデバイスに関連付けられた転送テーブルは、一般に、1つの上流経路エントリを含む。上流経路エントリとしては、中央コーディネータのデバイス識別子または上位レベルプロキシネットワークデバイスのデバイス識別子を含み得る。デバイス識別子は、TEI、ネットワークアドレス、MACアドレス、またはネットワークデバイスを一意に識別する別の適切なデバイス識別子であってよい。いくつかの実施形態では、第1のネットワークデバイス(たとえば、ネットワークデバイス206)は、中央コーディネータ202を検出し得、中央コーディネータとの直接通信リンクを確立し得る。ネットワークデバイス206は、ネットワークデバイス206が上流経路を介して中央コーディネータ202と直接的に接続されていると決定し得る。この例では、中央コーディネータ202は、ネットワークデバイス206のための上流ネットワークデバイスであってよい。したがって、ネットワークデバイス206に関連付けられた転送テーブル内の上流経路エントリは、中央コーディネータのデバイス識別子を含み得る。別の実施形態では、第1のネットワークデバイス(たとえば、ネットワークデバイス210)は、中央コーディネータ202を検出しないことがあり、中央コーディネータ202との直接通信リンクを確立することができないことがある。この実施形態では、ネットワークデバイス210は、隠されたネットワークデバイスであり得る。ネットワークデバイス210は、ネットワークデバイス208を、中央コーディネータ202と間接的に通信するためのプロキシネットワークデバイスとして使用し得る。ネットワークデバイス210は、ネットワークデバイス210が上流経路を介してプロキシネットワークデバイス208と直接的に接続されていると決定し得る。この例では、プロキシネットワークデバイス208は、ネットワークデバイス210のための上流ネットワークデバイスであってよい。したがって、ネットワークデバイス210に関連付けられた転送テーブル内の上流経路エントリは、プロキシネットワークデバイス208のデバイス識別子を含み得る。フローは、図6のブロック526に進む。
[0086]ブロック518では、第1のネットワークデバイスが下流ネットワークデバイスと直接的に接続されているかどうかが決定される。一実施形態では、転送ユニット110は、第1のネットワークデバイスが通信ネットワーク内の1つまたは複数の隠されたネットワークデバイスのためのプロキシネットワークデバイスとして動作するかどうかを決定するために、ネットワークデバイスに関連付けられた転送テーブルにアクセスし得る。図2の例を参照すると、ネットワークデバイス208は、ネットワークデバイス208が、ネットワークデバイス210および212のためのプロキシネットワークデバイスとして動作すると決定し得る。この例では、ネットワークデバイス210および212は、ネットワークデバイス208と直接的に接続されている下流ネットワークデバイスであってよい。別の実施形態では、ネットワークデバイスが中央コーディネータである場合、転送ユニット110は、中央コーディネータとの直接通信リンクを確立したネットワークデバイスを識別し得る。図2の例を参照すると、中央コーディネータ202は、中央コーディネータ202がネットワークデバイス206および208との直接通信リンクを確立したと決定し得る。この例では、ネットワークデバイス206および208は、中央コーディネータ202のための下流ネットワークデバイスであってよい。ネットワークデバイスが、下流ネットワークデバイスと直接的に接続されている場合、フローはブロック520に進む。ネットワークデバイスが下流ネットワークデバイスと直接的に接続されていない場合、ネットワークデバイスは、通信ネットワーク内の「葉ノード」すなわち「終端ノード」である。ネットワークデバイスは、メッセージを処理し得るが、通信ネットワーク内でメッセージを再送信しなくてよい。ネットワークデバイスが下流ネットワークデバイスと直接的に接続されていない場合、フローは終了する。
[0087]ブロック520では、第1のネットワークデバイスと直接的に接続されている下流ネットワークデバイスが識別される。第1のネットワークデバイスに関連付けられた転送テーブルは、ネットワークデバイスと直接的に接続されている各下流ネットワークデバイスのための下流経路エントリを含み得る。各下流経路エントリは、対応する下流ネットワークデバイスの端末機器識別子(TEI)、ネットワークアドレス、MACアドレスなどの、デバイス識別子を含み得る。いくつかの実施形態では、第1のネットワークデバイス(たとえば、ネットワークデバイス208)は、隠されたネットワークデバイス210および212のためのプロキシネットワークデバイスとして動作し得る。この実施形態では、ネットワークデバイス208に関連付けられた転送テーブルは、ネットワークデバイス210に関連付けられた第1の下流経路エントリと、ネットワークデバイス212に関連付けられた第2の下流経路エントリとを含み得る。第1の下流経路エントリは、ネットワークデバイス210のデバイス識別子を含み得、第2の下流経路エントリは、ネットワークデバイス212のデバイス識別子を含み得る。別の実施形態では、第1のネットワークデバイスは、通信ネットワークの中央コーディネータであってよい。この実施形態では、第1のネットワークデバイスに関連付けられた転送テーブルは、中央コーディネータと直接的に接続されている各ネットワークデバイスのための下流経路エントリを含み得る。図2の例では、中央コーディネータ202に関連付けられた転送テーブルは、ネットワークデバイス206に関連付けられた第1の下流経路エントリと、ネットワークデバイス208に関連付けられた第2の下流経路エントリとを含み得る。フローはブロック522に進む。
[0088]ブロック522では、下流ネットワークデバイスが最初にメッセージを第1のネットワークデバイスに送信したかどうかが決定される。転送ユニット110は、メッセージに含まれる送信元識別子(たとえば、STEI)を、転送テーブル内で示される下流ネットワークデバイスのデバイス識別子と比較し得る。たとえば、中央コーディネータ202からメッセージ214Dを受信した後、ネットワークデバイス208は、メッセージ214Dに含まれる送信元識別子を、下流ネットワークデバイス210および212のデバイス識別子と比較し得る。メッセージ214Dに含まれる送信元識別子が下流ネットワークデバイス210のデバイス識別子と一致する場合、ネットワークデバイス208は、下流ネットワークデバイス210がメッセージを生成したと決定し得る。下流ネットワークデバイスが通信ネットワーク内でメッセージを生成または最初に送信したかどうかを決定することによって、重複再送信の確率が最小にされ得る。下流ネットワークデバイスが最初にメッセージを送信した場合、フローはブロック524に進む。下流ネットワークデバイスがネットワークデバイスにメッセージを送信しなかった場合、フローはブロック526に進む。
[0089]ブロック524では、ネットワークデバイスと直接的に接続されている他の下流ネットワークデバイスにメッセージを再送信するべきかどうかが決定される。上記で図2の例に関して説明されたように、ネットワークデバイス208は、受信されたメッセージ214D内の送信元識別子を、下流ネットワークデバイス210および212の各々に関連付けられたデバイス識別子と比較し得る。送信元識別子およびデバイス識別子は各々、MACアドレス、TEI、ネットワークアドレス、またはネットワークデバイスを一意に識別する別の適切な識別子であってよい。メッセージ214D内の送信元識別子が下流ネットワークデバイス210のデバイス識別子と一致すると決定された場合、ネットワークデバイス208は、メッセージを下流ネットワークデバイス210に再送信しなくてよい。次いで、ネットワークデバイス208は、ネットワークデバイス208と直接的に接続されている追加下流ネットワークデバイスが存在するかどうかを決定し得る。この例では、ネットワークデバイス208は、メッセージを下流ネットワークデバイス212に再送信することを決定し得る。メッセージを他の下流ネットワークデバイスに再送信することが決定される場合、フローはブロック526に進む。そうではなく、追加下流ネットワークデバイスが存在しない場合、フローは終了する。
[0090]ブロック526では、メッセージが以前に通信ネットワーク内で送信されたかどうかが決定される。メッセージのフレーム制御フィールド内の様々なサブフィールドは、メッセージが以前に通信ネットワーク内で転送されたかどうかを示すために使用されてよい。上記で図2において説明された一例では、PBBフィールドおよびBLEフィールドは、メッセージ(たとえば、ブロードキャストメッセージまたはマルチキャストメッセージ)が以前に通信ネットワーク内で転送されたことを示すために使用されてよい。PBBフィールドは、メッセージが以前に通信ネットワーク内で転送されたことを示すために、あらかじめ定義された値を含み得る。BLEフィールドは、通信ネットワーク内でメッセージを転送したネットワークデバイスに関連付けられたデバイス識別子を含み得、したがって、メッセージが以前に通信ネットワーク内で転送されたことを示し得る。図2の例では、メッセージ214Bは、あらかじめ定義された値をPBBフィールドに含まず(たとえば、PBB≠0xFF)、送信ネットワークデバイス210のデバイス識別子をBLEフィールドに含まない(たとえば、BLE≠HSTA−1)。したがって、ネットワークデバイス208は、ネットワークデバイス210が、メッセージを送信するPLCネットワーク200内の最初のネットワークデバイスであり、メッセージは以前にPLCネットワーク200内で転送されなかったと決定し得る。別の例として、メッセージ214Dは、あらかじめ定義された値をPBBフィールドに含み(たとえば、PBB=0xFF)、中央コーディネータ202のデバイス識別子をBLEフィールドに含む(たとえば、BLE=CCo)。したがって、ネットワークデバイス206は、中央コーディネータ202は、メッセージを送信する最初のネットワークデバイスではなく、メッセージは以前にPLCネットワーク200内で転送されたと決定し得る。フローはブロック528に進む。
[0091]ブロック528では、第1のネットワークデバイスは、メッセージが以前に通信ネットワーク内で送信されたかどうかを示すようにメッセージ内の少なくとも1つのフィールドを更新する。いくつかの実施形態では、転送ユニットは、メッセージが以前に通信ネットワーク内で送信されたことを示すために、第1のあらかじめ定義された値を第1のフレーム制御フィールドに含み得る。転送ユニットはまた、メッセージが以前に通信ネットワーク内で(たとえば、別のネットワークデバイスによって)送信されたことを示すために、第1のネットワークデバイスのデバイス識別子を第2のフレーム制御フィールドに含み得る。図2の例を参照すると、ネットワークデバイス208は、メッセージ214Cを形成するように、受信されたメッセージ214Bの1つまたは複数のフィールドを更新する。メッセージ214Cを形成するために、ネットワークデバイス208は、メッセージ214Cが以前にPLCネットワーク200内で送信されたことを示すために、あらかじめ定義された値を第1のフレーム制御フィールドに含み得る(たとえば、PBB=0xFF)。さらに、ネットワークデバイス208は、ネットワークデバイス208がPLCネットワーク200内でメッセージを再送信している(または転送している)ことを示すために、そのデバイス識別子を第2のフレーム制御フィールドに含み得る(たとえば、BLE=PCo−1)。
[0092]他の実施形態では、メッセージが以前に通信ネットワーク内で送信されなかった場合、転送ユニットは、第1のあらかじめ定義された値を第1のフレーム制御フィールドに含まないことがあり、第1のネットワークデバイスのデバイス識別子を第2のフレーム制御フィールドに含まないことがある。図2の例を参照すると、ネットワークデバイス210は、PLCネットワーク200内で転送するためにイーサネット220からメッセージ214Aを受信する。ネットワークデバイス210は、メッセージ214Bを形成するように、受信されたメッセージ214Aの1つまたは複数のフィールドを更新する。メッセージ214Bを生成するために、ネットワークデバイス210は、メッセージ214Bが以前にPLCネットワーク200内で送信されなかったことを示すために、第2のあらかじめ定義された値を第1のフレーム制御フィールドに含み得る(たとえば、PBB≠0xFF)。さらに、ネットワークデバイス210は、そのデバイス識別子を第2のフレーム制御フィールドに含まないことがある(たとえば、BLE≠HSTA−1)。これは、ネットワークデバイス210が、メッセージ214Bを送信するPLCネットワーク200内で最初のネットワークデバイスであり、メッセージ214Bは以前にPLCネットワーク200内で送信されなかったことを示すことができる。フローはブロック530に進む。
[0093]ブロック530では、メッセージは、通信ネットワーク内の識別されたネットワークデバイスに送信される。転送ユニット110は、更新された情報をフレーム制御フィールドに含む(上記で説明された)メッセージを、通信ネットワークの上流経路または下流経路を介して1つまたは複数のネットワークデバイスに送信し得る。フローは、ブロック530から終了する。
[0094]図1〜図6は、実施形態を理解する助けとなることが意図された例であり、実施形態を制限するまたは特許請求の範囲を制限するために使用されるべきではないことを理解されたい。実施形態は、追加構成要素、異なる構成要素を備えてよく、および/または、追加動作を実行してもよいし、より少ない動作を実行してもよいし、動作を異なる順序で実行してもよいし、動作を並列に実行してもよいし、いくつかの動作を異なるように実行してもよい。例は、通信ネットワーク内でブロードキャストメッセージを再送信するための動作について説明しているが、実施形態はそのように制限されない。他の実施形態では、ネットワークデバイスは、通信ネットワーク内でマルチキャストメッセージを再送信するために類似の動作を実行してよい。
[0095]いくつかの実施形態では、図で説明されるように、ネットワークデバイスは、下流フィールドを最初にチェックし、上流経路を介してメッセージを転送するべきか下流経路を介して転送するべきかを決定し、次いで、メッセージ内のデバイス識別子を、ネットワークデバイスと直接的に接続されている追加ネットワークデバイスのデバイス識別子と比較してよい。他の実施形態では、ネットワークデバイスは、最初に、メッセージ内のデバイス識別子を、ネットワークデバイスと直接的に接続されている各追加ネットワークデバイスのデバイス識別子と比較してよい。一致が存在する場合、ネットワークデバイスは、上流経路を介してメッセージを転送するべきか下流経路を介して転送するべきかを決定してよい。そうでない場合、ネットワークデバイスは、メッセージを破棄してよい。
[0096]例は、通信ネットワーク内でメッセージ(たとえば、ブロードキャストメッセージまたはマルチキャストメッセージ)を転送するべきかと、どのようにして転送するかとを決定するために、下流フィールド、BLEフィールド、PBBフィールド、および/またはSTEIフィールドを使用することに言及しているが、実施形態は、そのように限定されない。他の実施形態では、ネットワークデバイスは、メッセージを転送するべきかと、どのように転送するかとを決定するために、他の適切なフィールドを使用してよい。さらに、図は、第1のフレーム制御フィールド、第2のフレーム制御フィールド、および下流フィールドの例示的な値を提供しているが、実施形態はそのように制限されない。他の実施形態では、ネットワークデバイスは、メッセージが以前に通信ネットワーク内で転送されたかどうか、ネットワークデバイスが、通信ネットワーク内でメッセージを送信する最初のネットワークデバイスであるかどうか、中央コーディネータがメッセージを受信したかどうかなどを示すために、他の適切な値をメッセージの他の適切なフィールドに含むように構成されてよい。
[0097]当業者によって諒解されるように、本発明の主題の態様は、システム、方法、またはコンピュータプログラム製品として実施され得る。したがって、本発明の主題の態様は、完全にハードウェアの実施形態の形態を取ってもよいし、ソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)の形態を取ってもよいし、ソフトウェア態様とハードウェア態様とを組み合わせた一実施形態の形態を取ってもよく、これらはすべて、本明細書では一般に「回路」、「モジュール」、または「システム」と呼ばれ得る。そのうえ、本発明の主題の態様は、その上で実施されるコンピュータ可読プログラムコードを有する1つまたは複数のコンピュータ可読媒体内で実施されるコンピュータプログラム製品の形態を取ってよい。
[0098]1つまたは複数の非一時的なコンピュータ可読媒体の任意の組合せが利用されてよい。非一時的なコンピュータ可読媒体は、すべてのコンピュータ可読媒体を備え、唯一の例外は一時的な伝播信号である。非一時的なコンピュータ可読媒体はコンピュータ可読記憶媒体であってよい。コンピュータ可読記憶媒体は、たとえば、限定されるものではないが、電子システム、電子装置、電子デバイス、磁気システム、磁気装置、磁気デバイス、光学システム、光学装置、光学デバイス、電磁システム、電磁装置、電磁デバイス、赤外線システム、赤外線装置、赤外線デバイス、半導体システム、半導体装置、または半導体デバイス、または前述のものの任意の適切な組合せであってよい。コンピュータ可読記憶媒体のより具体的な例(非網羅的なリスト)としては、1つまたは複数のワイヤを有する電気接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラマブル読出し専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読出し専用メモリ(CD−ROM)、光学記憶デバイス、磁気記憶デバイス、または前述のものの任意の適切な組合せがある。この文書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、命令実行装置、または命令実行デバイスが使用するまたはこれに関連するためのプログラムを含むまたは記憶することができる任意の有形媒体であってよい。
[0099]本発明の主題の態様のための動作を実行するためにコンピュータ可読媒体上で実施されるコンピュータプログラムコードは、Java(登録商標)、Smalltalk、C++などのオブジェクト指向プログラミング言語と「C」プログラミング言語または類似のプログラミング言語などの従来の手続き型プログラミング言語とを含む1つまたは複数のプログラミング言語の任意の組合せで記述されてよい。プログラムコードは、完全にユーザのコンピュータ上で実行されてもよいし、一部はユーザのコンピュータ上で実行されてもよいし、スタンドアロンソフトウェアパッケージとして実行されてもよいし、一部はユーザのコンピュータ上で、一部はリモートコンピュータ上で実行されてもよいし、完全にリモートコンピュータまたはサーバ上で実行されてもよい。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてよく、または接続は、(たとえば、インターネットサービスプロバイダを使用するインターネットを通じて)外部コンピュータに対してなされてよい。
[00100]本発明の主題の態様は、本発明の主題の実施形態による方法、装置(システム)、およびコンピュータプログラム製品の流れ図の説明および/またはブロック図に関して説明されている。流れ図の説明および/またはブロック図の各ブロック、ならびに流れ図の説明および/またはブロック図内のブロックの組合せは、コンピュータプログラム命令によって実施可能であることが理解されよう。これらのコンピュータプログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、流れ図および/またはブロック図の1つまたは複数のブロック内で指定される機能/行為を実施するための手段を作り出すように、機械を生成するために汎用コンピュータ、特殊用途コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてよい。
[00101]これらのコンピュータプログラム命令はまた、特定の様式で機能するようにコンピュータ、他のプログラム可能データ処理装置、または他のデバイスに指示することができるコンピュータ可読媒体に記憶されてよく、したがって、コンピュータ可読媒体に記憶された命令は、流れ図および/またはブロック図の1つまたは複数のブロックで指定される機能/行為を実施する命令を含む製品を生成する。
[00102]コンピュータプログラム命令はまた、コンピュータにより実施されるプロセスを生成する目的でコンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させるためにコンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードされてよく、したがって、コンピュータまたは他のプログラム可能装置上で実行される命令は、流れ図および/またはブロック図の1つまたは複数のブロックで指定される機能/行為を実施するためのプロセスを提供する。
[00103]図7は、通信ネットワーク内でメッセージを転送するための機構を含む電子デバイス700の一実施形態のブロック図である。いくつかの実装形態では、電子デバイス700は、スタンドアロン電力線通信(PLC)デバイスであってもよいし、電力線環境で接続された専用の電力線通信(PLC)デバイスであってよい。別の実施形態では、電子デバイス700は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートアプライアンス、ゲームコンソール、テレビジョン、セットトップボックス、メディアプレーヤ、ウェアラブルデバイス、または電力線通信機能を含む別の電子デバイスのうち1つとすることができる。電子デバイス700は、(場合によっては、複数のプロセッサを含む、複数のコアを含む、複数のノードを含む、および/またはマルチスレッドを実施する、などの)プロセッサユニット702を含む。電子デバイス700はメモリユニット706を含む。メモリユニット706は、システムモリ(たとえば、キャッシュ、SRAM、DRAM、ゼロキャパシタRAM、Twin Transistor RAM、eDRAM、EDO RAM、DDR RAM、EEPROM(登録商標)、NRAM、RRAM(登録商標)、SONOS、PRAMなどのうち1つまたは複数)であってもよいし、非一時的な機械可読な記憶媒体の上記ですでに説明された可能な実現物(realization)のうち任意の1つまたは複数であってもよい。電子デバイス700は、バス710(たとえば、PCI、ISA、PCI−Express、HyperTransport(登録商標)、InfiniBand(登録商標)、NuBus、AHB、AXIなど)も含む。電子デバイス700はネットワークインターフェース704も含み、ネットワークインターフェース704としては、ワイヤレスネットワークインターフェース(たとえば、WLANインターフェース、ブルートゥース(登録商標)インターフェース、WiMAXインターフェース、ZigBee(登録商標)インターフェース、ワイヤレスUSBインターフェースなど)および/またはワイヤードネットワークインターフェース(たとえば、PLCインターフェース、イーサネットインターフェースなど)がある。そのうえ、いくつかの実施形態では、電子デバイス700は、ハイブリッド通信機能を実施するためのIEEE規格1905.1プロトコルを実行することができる。
[00104]電子デバイス700は通信ユニット708も含む。通信ユニット708は、転送ユニット712と、リンク確立ユニット714とを含む。リンク確立ユニット714は、電子デバイス700と通信ネットワークの上流ネットワークデバイスおよび/または下流ネットワークデバイスとの間の通信リンクを確立することができる。通信ネットワーク内で転送するためにメッセージを受信したことに応答して、転送ユニット712は、受信されたメッセージのあらかじめ定義されたフィールド内のインジケータに少なくとも部分的に基づいて、中央コーディネータが以前にメッセージを受信したかどうかを決定することができる。上記で図1〜図6に関して説明されたように、中央コーディネータが以前にメッセージを受信(または生成)したかどうかに応じて、転送ユニット712は、電子デバイス700に直接的に接続されている上流ネットワークデバイスにメッセージを再送信するべきか電子デバイス700に直接的に接続されている下流ネットワークデバイスに再送信するべきかを決定することができる。いくつかの実施形態では、転送ユニット712は、メッセージを再送信するべきかメッセージを破棄するべきかを決定するために、受信されたメッセージ内の送信元識別子および/または転送デバイス識別子を、電子デバイスと直接的に接続されている各下流ネットワークデバイスのデバイス識別子と比較し得る。いくつかの実施形態では、転送ユニット712は、メッセージを再送信するべきかメッセージを破棄するべきかを決定するために、送信元識別子および/または転送デバイス識別子を、電子デバイスと直接的に接続されている上流ネットワークデバイスのデバイス識別子と比較し得る。
[00105]これらの機能のうち任意の機能は、一部は(または完全に)ハードウェア内でおよび/またはプロセッサユニット702上で実施されてよい。たとえば、機能は、特定用途向け集積回路とともに実施されてもよいし、プロセッサユニット702内で実施される論理内で実施されてもよいし、周辺デバイスまたはカード上のコプロセッサ内などで実施されてもよい。いくつかの実施形態では、通信ユニット708は各々、電子デバイス700の通信を可能にするために、システムオンチップ(SoC)、特定用途向け集積回路(ASIC)、または別の適切な集積回路上で実施可能である。いくつかの実施形態では、通信ユニット708は、追加プロセッサと追加メモリとを含んでよく、電子デバイス700の1つまたは複数の回路基板上の1つまたは複数の集積回路内で実施されてよい。さらに、実現物は、より少ない構成要素を含んでもよいし、図7に示されていない追加構成要素(たとえば、ビデオカード、オーディオカード、追加ネットワークインターフェース、周辺デバイスなど)を含んでもよい。たとえば、バス710と結合されたプロセッサユニット702に加えて、通信ユニット708は少なくとも1つの追加プロセッサユニットを含んでよい。別の例として、バス710に結合されるように示されているが、メモリユニット706は、プロセッサユニット702に結合されてもよい。
[00106]実施形態は、様々な実装形態および利用に関して説明されているが、これらの実施形態は例であり、本発明の主題の範囲はこれらに限定されないことが理解されよう。一般に、本明細書で説明されたような通信ネットワーク内でメッセージを転送するための技法は、任意の1つまたは複数のハードウェアシステムと調和した設備とともに実施され得る。多数の変形、修正、追加、および改善が可能である。
[00107]本明細書で単一のインスタンスとして説明される構成要素、動作、または構造に対して、複数のインスタンスが提供され得る。最後に、様々な構成要素、動作、およびデータストア間の境界はやや恣意的であり、特定の動作は特定の例示的構成の文脈で示されている。機能の他の割り当てが想定され、本発明の主題の範囲に含まれ得る。一般に、例示的な構成内で別個の構成要素として示される構造および機能は、組み合わされた構造または構成要素として実施されてよい。同様に、単一の構成要素として示される構造および機能は、別個の構成要素として実施されてよい。これらおよび他の変形、修正、追加、および改善は、本発明の主題の範囲に含まれ得る。
[00107]本明細書で単一のインスタンスとして説明される構成要素、動作、または構造に対して、複数のインスタンスが提供され得る。最後に、様々な構成要素、動作、およびデータストア間の境界はやや恣意的であり、特定の動作は特定の例示的構成の文脈で示されている。機能の他の割り当てが想定され、本発明の主題の範囲に含まれ得る。一般に、例示的な構成内で別個の構成要素として示される構造および機能は、組み合わされた構造または構成要素として実施されてよい。同様に、単一の構成要素として示される構造および機能は、別個の構成要素として実施されてよい。これらおよび他の変形、修正、追加、および改善は、本発明の主題の範囲に含まれ得る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[C1]
第1の通信ネットワーク内で転送するために第1のネットワークデバイスにおいてメッセージを受信することと、
前記メッセージ内の第1のあらかじめ定義されたフィールドに少なくとも部分的に基づいて、前記メッセージを転送するべきかどうかを決定することと、
前記メッセージを転送することを決定したことに応答して、前記メッセージ内の第2のあらかじめ定義されたフィールドに少なくとも部分的に基づいて、前記第1の通信ネットワーク内の中央コーディネータに対して上流経路を介して前記メッセージを転送するべきか下流経路を介して転送するべきかを決定することと、ここにおいて、前記第2のあらかじめ定義されたフィールドは、前記中央コーディネータが以前に前記メッセージを転送したかどうかを示す、
を備える方法。
[C2]
前記上流経路を介して前記メッセージを転送するべきか前記下流経路を介して転送するべきかを前記決定することが、
前記第2のあらかじめ定義されたフィールドが第1のインジケータを含むと決定したことに応答して、前記第1の通信ネットワーク内の前記下流経路を介して前記メッセージを転送することを決定することと、
前記第2のあらかじめ定義されたフィールドが第2のインジケータを含むと決定したことに応答して、前記第1の通信ネットワーク内の前記上流経路を介して前記メッセージを転送することを決定することと
を備える、C1に記載の方法。
[C3]
前記第1のインジケータが、前記中央コーディネータが以前に前記第1の通信ネットワークの第2のネットワークデバイスから前記メッセージを受信したことを示す、または
前記第1のインジケータが、前記中央コーディネータが前記メッセージを生成したことを示す、
C2に記載の方法。
[C4]
前記第2のインジケータが、前記中央コーディネータが前記第1の通信ネットワークの第2のネットワークデバイスから前記メッセージを受信していないことを示す、または
前記第2のインジケータが、前記中央コーディネータが前記メッセージを生成しなかったことを示す、
C2に記載の方法。
[C5]
前記第1のネットワークデバイスから前記メッセージを転送するべきかどうかを決定することが、
前記第1のあらかじめ定義されたフィールド内の第1のデバイス識別子を、前記第1のネットワークデバイスと直接的に接続されている第2のネットワークデバイスに関連付けられた第2のデバイス識別子と比較することと、
前記第1のあらかじめ定義されたフィールド内の前記第1のデバイス識別子は前記第2のネットワークデバイスに関連付けられた前記第2のデバイス識別子と一致すると決定したことに応答して、前記第1の通信ネットワーク内で前記メッセージを転送することを決定することと、
前記第1のあらかじめ定義されたフィールド内の前記第1のデバイス識別子は前記第2のネットワークデバイスに関連付けられた前記第2のデバイス識別子と一致しないと決定したことに応答して、前記第1のネットワークデバイスにおいて前記メッセージを破棄することと
を備える、C1に記載の方法。
[C6]
前記第1のあらかじめ定義されたフィールド内の前記第1のデバイス識別子が、前記第2のネットワークデバイスに関連付けられた前記第2のデバイス識別子と一致すると決定したことに応答して、前記方法は、
前記第2のあらかじめ定義されたフィールドが第1のインジケータを含むと決定したことに応答して、前記第1の通信ネットワークの前記下流経路を介して前記メッセージを送信することを決定することと、
前記第2のあらかじめ定義されたフィールドが第2のインジケータを含むと決定したことに応答して、前記第1の通信ネットワークの前記上流経路を介して前記メッセージを送信することを決定することと
をさらに備える、C5に記載の方法。
[C7]
前記第1の通信ネットワークの前記上流経路を介して前記メッセージを送信することを決定したことに応答して、前記方法が、
前記第1のネットワークデバイスから前記第1のネットワークデバイスに関連付けられたプロキシネットワークデバイスに前記メッセージを送信すること、ここにおいて、前記プロキシネットワークデバイスは、前記中央コーディネータに前記メッセージを転送するように構成される、または
前記第1のネットワークデバイスから前記中央コーディネータに直接的に前記メッセージを送信すること
をさらに備える、C1に記載の方法。
[C8]
前記第1の通信ネットワークの前記下流経路を介して前記メッセージを送信することを決定したことに応答して、前記方法が、
前記第1のネットワークデバイスが前記第1の通信ネットワークの第2のネットワークデバイスのためのプロキシネットワークデバイスであることを決定することと、
前記第2のネットワークデバイスに関連付けられたデバイス識別子と前記メッセージに含まれる送信元識別子とを比較することに少なくとも部分的に基づいて、前記第2のネットワークデバイスが前記メッセージを生成したかどうかを決定することと
をさらに備える、C1に記載の方法。
[C9]
前記第2のネットワークデバイスが前記メッセージを生成しなかったと決定したことに応答して、前記第1のネットワークデバイスから前記第2のネットワークデバイスに前記メッセージを送信することと、
前記第2のネットワークデバイスが前記メッセージを生成したと決定したことに応答して、前記第2のネットワークデバイスに前記メッセージを送信しないことを決定することと
をさらに備える、C8に記載の方法。
[C10]
前記第1の通信ネットワークの第2のネットワークデバイスから前記第1のネットワークデバイスにおいて前記メッセージを受信したことに応答して、前記方法が、
前記第1のネットワークデバイスから前記第1の通信ネットワーク内の第3のネットワークデバイスに前記メッセージを送信する前に、
前記第1のネットワークデバイスに関連付けられたデバイス識別子を含むように前記メッセージの前記第1のあらかじめ定義されたフィールドを更新することと、
前記メッセージが以前に前記第1の通信ネットワーク内で転送されたことを示すように前記メッセージの第3のあらかじめ定義されたフィールドを更新することと
をさらに備える、C1に記載の方法。
[C11]
第2の通信ネットワークの第2のネットワークデバイスから前記第1のネットワークデバイスにおいて前記メッセージを受信したことに応答して、前記方法が、
前記第1のネットワークデバイスから前記第1の通信ネットワーク内の第3のネットワークデバイスに前記メッセージを送信する前に、
前記第1のネットワークデバイスに関連付けられたデバイス識別子と異なる所定の値を含むように前記メッセージの前記第1のあらかじめ定義されたフィールドを更新することと、
前記メッセージが以前に前記第1の通信ネットワーク内で転送されなかったことを示すように前記メッセージの第3のあらかじめ定義されたフィールドを更新することと
をさらに備える、C1に記載の方法。
[C12]
前記第1の通信ネットワーク内で転送するために前記第1のネットワークデバイスにおいて前記メッセージを前記受信することが、
前記第1の通信ネットワークの第2のネットワークデバイスから前記第1のネットワークデバイスにおいて前記メッセージを受信すること、
第2の通信ネットワークの第3のネットワークデバイスから前記第1のネットワークデバイスにおいて前記メッセージを受信すること、または
前記第1のネットワークデバイスにおいて前記メッセージを生成すること
のうち1つを備える、C1に記載の方法。
[C13]
通信ネットワーク内で転送するために前記通信ネットワークの中央コーディネータにおいてメッセージを受信することと、
前記メッセージ内の第1のあらかじめ定義されたフィールドに少なくとも部分的に基づいて、前記通信ネットワーク内で前記メッセージを転送するべきかどうかを決定することと、
前記メッセージを転送することを決定したことに応答して、
中央コーディネータが前記メッセージを受信したことを示すために前記メッセージ内に第1のインジケータを含むように第2のあらかじめ定義されたフィールドを更新することと、
前記第1のインジケータを含む前記メッセージを、前記中央コーディネータと直接的に接続されている第1のネットワークデバイスに送信することと
を備える方法。
[C14]
前記メッセージを転送するべきかどうかを前記決定することが、
前記第1のあらかじめ定義されたフィールド内の第1のデバイス識別子を、下流ネットワークデバイスに関連付けられた第2のデバイス識別子と比較することと、ここにおいて、前記下流ネットワークデバイスが、前記通信ネットワークの下流経路を介して前記第1のネットワークデバイスと直接的に接続される、
前記第1のあらかじめ定義されたフィールド内の前記第1のデバイス識別子が、前記下流ネットワークデバイスに関連付けられた前記第2のデバイス識別子と一致すると決定したことに応答して、前記メッセージを転送することを決定することと、
前記第1のあらかじめ定義されたフィールド内の前記第1のデバイス識別子が、前記下流ネットワークデバイスに関連付けられた前記第2のデバイス識別子と一致しないと決定したことに応答して、前記中央コーディネータにおいて前記メッセージを破棄することと
を備える、C13に記載の方法。
[C15]
前記中央コーディネータとの直接通信リンクを確立した前記通信ネットワークの複数のネットワークデバイスを識別すること
をさらに備え、
ここにおいて、前記第1のインジケータを含む前記メッセージを前記第1のネットワークデバイスに前記送信することが、前記第1のインジケータを含む前記メッセージを、前記中央コーディネータとの前記直接通信リンクを確立した前記複数のネットワークデバイスに送信することを備える、
C13に記載の方法。
[C16]
前記通信ネットワーク内で転送するために前記中央コーディネータにおいて前記メッセージを受信することが、
前記通信ネットワークの第2のネットワークデバイスから前記中央コーディネータにおいて前記メッセージを受信すること、
別の通信ネットワークの第3のネットワークデバイスから前記中央コーディネータにおいて前記メッセージを受信すること、または
前記中央コーディネータにおいて前記メッセージを生成すること
のうち1つを備える、C13に記載の方法。
[C17]
プロセッサと、
前記プロセッサと結合された通信ユニットと、前記通信ユニットが、
第1の通信ネットワーク内で転送するためにメッセージを受信し、
前記メッセージ内の第1のあらかじめ定義されたフィールドに少なくとも部分的に基づいて、前記メッセージを転送するべきかどうかを決定し、
前記メッセージを転送することを決定したことに応答して、前記メッセージ内の第2のあらかじめ定義されたフィールドに少なくとも部分的に基づいて、前記第1の通信ネットワーク内の中央コーディネータに対して上流経路を介して前記メッセージを転送するべきか下流経路を介して転送するべきかを決定する、ここにおいて、前記第2のあらかじめ定義されたフィールドは、前記中央コーディネータが以前に前記メッセージを転送したかどうかを示す、
ように構成される、
を備える第1のネットワークデバイス。
[C18]
前記上流経路を介して前記メッセージを転送するべきか前記下流経路を介して転送するべきかを決定するように構成された前記通信ユニットが、
前記第2のあらかじめ定義されたフィールドが第1のインジケータを含むと決定したことに応答して、前記第1の通信ネットワーク内の前記下流経路を介して前記メッセージを転送し、
前記第2のあらかじめ定義されたフィールドが第2のインジケータを含むと決定したことに応答して、前記第1の通信ネットワーク内の前記上流経路を介して前記メッセージを転送する
ように構成された前記通信ユニットを備える、C17に記載の第1のネットワークデバイス。
[C19]
前記第1のインジケータが、前記中央コーディネータが以前に前記第1の通信ネットワークの追加ネットワークデバイスから前記メッセージを受信したことを示す、および
前記第2のインジケータが、前記中央コーディネータが前記第1の通信ネットワークの追加ネットワークデバイスから前記メッセージを受信していないことを示す、
C18に記載の第1のネットワークデバイス。
[C20]
前記メッセージを転送するべきかどうかを決定するように構成された前記通信ユニットが、
前記第1のあらかじめ定義されたフィールド内の第1のデバイス識別子を、前記第1のネットワークデバイスと直接的に接続されている第2のネットワークデバイスに関連付けられた第2のデバイス識別子と比較し、
前記第1のあらかじめ定義されたフィールド内の前記第1のデバイス識別子が、前記第2のネットワークデバイスに関連付けられた前記第2のデバイス識別子と一致すると決定したことに応答して、前記第1の通信ネットワーク内で前記メッセージを転送することを決定し、
前記第1のあらかじめ定義されたフィールド内の前記第1のデバイス識別子が、前記第2のネットワークデバイスに関連付けられた前記第2のデバイス識別子と一致しないと決定したことに応答して、前記第1のネットワークデバイスにおいて前記メッセージを破棄する
ように構成された前記通信ユニットを備える、C17に記載の第1のネットワークデバイス。
[C21]
前記第1の通信ネットワークの前記上流経路を介して前記メッセージを送信することを決定したことに応答して、前記通信ユニットが、
前記第1のネットワークデバイスから前記第1のネットワークデバイスに関連付けられたプロキシネットワークデバイスに前記メッセージを送信する、ここにおいて、前記プロキシネットワークデバイスは、前記中央コーディネータに前記メッセージを転送するように構成される、または
前記第1のネットワークデバイスから前記中央コーディネータに直接的に前記メッセージを送信する
ようにさらに構成される、C17に記載の第1のネットワークデバイス。
[C22]
前記第1の通信ネットワークの前記下流経路を介して前記メッセージを送信することを決定したことに応答して、前記通信ユニットが、
前記第1のネットワークデバイスが前記第1の通信ネットワークの第2のネットワークデバイスのためのプロキシネットワークデバイスであることを決定し、
前記第2のネットワークデバイスに関連付けられたデバイス識別子と前記メッセージに含まれる送信元識別子とを比較することに少なくとも部分的に基づいて、前記第2のネットワークデバイスが前記メッセージを生成したかどうかを決定する
ようにさらに構成される、C17に記載の第1のネットワークデバイス。
[C23]
前記通信ユニットが、
前記第2のネットワークデバイスが前記メッセージを生成しなかったと決定したことに応答して、前記第1のネットワークデバイスから前記第2のネットワークデバイスに前記メッセージを送信し、
前記第2のネットワークデバイスが前記メッセージを生成したと決定したことに応答して、前記第2のネットワークデバイスに前記メッセージを送信しないことを決定する
ようにさらに構成される、C22に記載の第1のネットワークデバイス。
[C24]
前記第1の通信ネットワークの第2のネットワークデバイスから前記第1のネットワークデバイスにおいて前記メッセージを受信したことに応答して、前記通信ユニットが、
前記第1のネットワークデバイスから前記第1の通信ネットワーク内の第3のネットワークデバイスに前記メッセージを送信する前に、
前記第1のネットワークデバイスに関連付けられたデバイス識別子を含むように前記メッセージの前記第1のあらかじめ定義されたフィールドを更新し、
前記メッセージが以前に前記第1の通信ネットワーク内で転送されたことを示すように前記メッセージの第3のあらかじめ定義されたフィールドを更新する
ようにさらに構成される、C17に記載の第1のネットワークデバイス。
[C25]
第2の通信ネットワークの第2のネットワークデバイスから前記第1のネットワークデバイスにおいて前記メッセージを受信したことに応答して、前記通信ユニットが、
前記第1のネットワークデバイスから前記第1の通信ネットワーク内の第3のネットワークデバイスに前記メッセージを送信する前に、
前記第1のネットワークデバイスに関連付けられたデバイス識別子と異なる所定の値を含むように前記メッセージの前記第1のあらかじめ定義されたフィールドを更新し、
前記メッセージが以前に前記第1の通信ネットワーク内で転送されなかったことを示すように前記メッセージの第3のあらかじめ定義されたフィールドを更新する
ようにさらに構成される、C17に記載の第1のネットワークデバイス。
[C26]
機械実行可能命令を記憶した非一時的な機械可読記憶媒体であって、前記機械実行可能命令が、
通信ネットワーク内で転送するために第1のネットワークデバイスにおいてメッセージを受信し、
前記メッセージ内の第1のあらかじめ定義されたフィールドに少なくとも部分的に基づいて、前記メッセージを転送するべきかどうかを決定し、
前記メッセージを転送することを決定したことに応答して、前記メッセージ内の第2のあらかじめ定義されたフィールドに少なくとも部分的に基づいて、前記通信ネットワーク内の中央コーディネータに対して上流経路を介して前記メッセージを転送するべきか下流経路を介して転送するべきかを決定する、ここにおいて、前記第2のあらかじめ定義されたフィールドは、前記中央コーディネータが以前に前記メッセージを転送したかどうかを示す
命令を備える、非一時的な機械可読記憶媒体。
[C27]
前記上流経路を介して前記メッセージを転送するべきか前記下流経路を介して転送するべきかを決定する前記命令が、
前記第2のあらかじめ定義されたフィールドが第1のインジケータを含むと決定したことに応答して、前記通信ネットワーク内の前記下流経路を介して前記メッセージを転送する、ここにおいて、前記第1のインジケータが、前記中央コーディネータが以前に前記メッセージを転送したことを示す、
前記第2のあらかじめ定義されたフィールドが第2のインジケータを含むと決定したことに応答して、前記通信ネットワーク内の前記上流経路を介して前記メッセージを転送する、ここにおいて、前記第2のインジケータが、前記中央コーディネータが以前に前記メッセージを転送していないことを示す、
命令を備える、C26に記載の非一時的な機械可読記憶媒体。
[C28]
前記メッセージを転送するべきかどうかを決定する前記命令が、
前記第1のあらかじめ定義されたフィールド内の第1のデバイス識別子を、前記第1のネットワークデバイスと直接的に接続されている第2のネットワークデバイスに関連付けられた第2のデバイス識別子と比較し、
前記第1のあらかじめ定義されたフィールド内の前記第1のデバイス識別子が、前記第2のネットワークデバイスに関連付けられた前記第2のデバイス識別子と一致すると決定したことに応答して、前記通信ネットワーク内で前記メッセージを転送することを決定し、
前記第1のあらかじめ定義されたフィールド内の前記第1のデバイス識別子が、前記第2のネットワークデバイスに関連付けられた前記第2のデバイス識別子と一致しないと決定したことに応答して、前記第1のネットワークデバイスにおいて前記メッセージを破棄する
命令を備える、C26に記載の非一時的な機械可読記憶媒体。
[C29]
前記通信ネットワークの前記上流経路を介して前記メッセージを送信することを決定したことに応答して、前記命令が、
前記第1のネットワークデバイスから前記第1のネットワークデバイスに関連付けられたプロキシネットワークデバイスに前記メッセージを送信する、ここにおいて、前記プロキシネットワークデバイスは、前記中央コーディネータに前記メッセージを転送するように構成される、または
前記第1のネットワークデバイスから前記中央コーディネータに直接的に前記メッセージを送信する
命令を備える、C26に記載の非一時的な機械可読記憶媒体。
[C30]
前記通信ネットワークの前記下流経路を介して前記メッセージを送信することを決定したことに応答して、前記命令が、
前記第1のネットワークデバイスが前記通信ネットワークの第2のネットワークデバイスのためのプロキシネットワークデバイスであることを決定し、
前記第2のネットワークデバイスに関連付けられたデバイス識別子が、前記メッセージに含まれる送信元識別子と一致しないと決定したことに応答して、前記第1のネットワークデバイスから前記第2のネットワークデバイスに前記メッセージを送信し、
前記第2のネットワークデバイスに関連付けられた前記デバイス識別子が、前記メッセージに含まれる前記送信元識別子と一致すると決定したことに応答して、前記第2のネットワークデバイスに前記メッセージを送信しないことを決定する
命令を備える、C26に記載の非一時的な機械可読記憶媒体。