(57)【特許請求の範囲】
【請求項１】
第１のネットワーク中の第１のノードにおいて、
第１のＩＰヘッダ、第１のＩＰ拡張ヘッダ、および第１のペイロードを有する第１のパケットを受信するステップであり、前記第１のＩＰ拡張ヘッダが非ＩＰプロトコル・データを含むステップと、
前記非ＩＰプロトコル・データを使用して、前記第１のネットワーク中の第２のノードを選択するステップと、
第２のＩＰヘッダ、第２のＩＰ拡張ヘッダ、および第２のペイロードを有する第２のパケットを提供するステップであり、前記第２のＩＰ拡張ヘッダが非ＩＰプロトコル・データを含むステップと、
前記第２のパケットを前記第１のネットワーク中の前記第２のノードにルーティングするステップと、
前記第１のネットワーク中の前記第２のノードにおいて、
前記第２のパケットを受信するステップと、
第３のＩＰヘッダ、第３のＩＰ拡張ヘッダ、および第３のペイロードを有する第３のパケットを提供するステップであり、前記第３のＩＰ拡張ヘッダが非ＩＰプロトコル・データを含むステップと、
前記第３のパケットを前記第１のネットワークの外部の第３のノードにルーティングするステップとを含む、ルーティング方法。
【請求項２】
前記第１のＩＰ拡張ヘッダの前記非ＩＰプロトコル・データが、永続的なルーティング、速やかなルーティング、または信頼性の高いルーティングというルーティング・オプションのうちの少なくとも１つを用いて前記第１のネットワーク内のルーティングを行うための情報を含む、請求項１に記載の方法。
【請求項３】
前記第１のＩＰ拡張ヘッダの前記非ＩＰプロトコル・データが、非ＩＰアドレス、メッセージＩＤ、フラグメントＩＤ、セキュリティ情報、または暗号化情報のうちの１つまたは複数を含む、請求項１に記載の方法。
【請求項４】
前記第１のＩＰ拡張ヘッダが、ＩＰｖ６ホップ・バイ・ホップ拡張ヘッダである、請求項１に記載の方法。
【請求項５】
前記第１のＩＰ拡張ヘッダが、ＩＰｖ６宛先拡張ヘッダであり、
前記第１のネットワーク中の前記第２のノードにおいて、前記第３のパケットを前記第３のノードにルーティングする前に、前記ＩＰｖ６宛先拡張ヘッダを検査するステップをさらに含む、請求項１に記載の方法。
【請求項６】
前記第１のＩＰ拡張ヘッダ中の前記非ＩＰプロトコル・データが、生存時間（ＴＴＬ）値を含み、
前記第１のノードにおいて、
前記第２のパケットを前記第１のネットワーク中の前記第２のノードにルーティングする前に、前記ＴＴＬ値が所定のしきい値に到達していないことを確認するステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記第２のＩＰ拡張ヘッダ中の前記非ＩＰプロトコル・データが、前記第１のＩＰ拡張ヘッダ中の前記非ＩＰプロトコル・データと異なる、請求項１に記載の方法。
【請求項８】
前記第１のノードが、前記第１のノードのアドレスを前記第２のＩＰ拡張ヘッダに追加し、前記第２のノードが、前記第２のノードのアドレスを前記第３のＩＰ拡張ヘッダに追加する、請求項１に記載の方法。
【請求項９】
発信ノードにおいて、前記発信ノードで利用可能な情報に基づいて、発信パケットを前記第１のノードにルーティングするステップをさらに含む、請求項１に記載の方法。
【請求項１０】
第１のアプリケーションを含むアプリケーション・レイヤと、
前記アプリケーション・レイヤの下の複数のレイヤとを備え、前記アプリケーション・レイヤの下の前記複数のレイヤのうちの１つがＩＰレイヤであり、
前記第１のアプリケーションが、第１のＩＰヘッダ、第１のＩＰ拡張ヘッダ、および第１のペイロードを有する第１のパケットを第２の装置から受信し、前記第１のＩＰ拡張ヘッダが、非ＩＰプロトコル・データを含み、前記第１のアプリケーションが、前記非ＩＰプロトコル・データを使用して、第２のＩＰヘッダ、第２のＩＰ拡張ヘッダ、および第２のペイロードを有する第２のパケットを前記ネットワーク中の第３の装置にルーティングする、ネットワーク中の装置。
【請求項１１】
前記第１のＩＰ拡張ヘッダの前記非ＩＰプロトコル・データが、永続的なルーティング、速やかなルーティング、または信頼性の高いルーティングというルーティング・オプションのうちの少なくとも１つを用いて前記ネットワーク内のルーティングを行うための情報を含み、前記第１のアプリケーションが、前記情報を使用して前記第３の装置を選択する、請求項１０に記載の装置。
【請求項１２】
前記第１のＩＰ拡張ヘッダが、ＩＰｖ６ホップ・バイ・ホップ拡張ヘッダである、請求項１０に記載の装置。
【請求項１３】
前記第１のＩＰ拡張ヘッダが、ＩＰｖ６宛先拡張ヘッダであり、前記第１のアプリケーションが、前記第２のパケットを前記第３の装置にルーティングする前に、前記ＩＰｖ６宛先拡張ヘッダを検査する、請求項１０に記載の装置。
【請求項１４】
前記非ＩＰプロトコル・データが、生存時間（ＴＴＬ）データを含み、前記第２のパケットを前記ネットワーク中の前記第３の装置にルーティングする前に、前記ＴＴＬデータが所定のしきい値に到達していないことを確認する、請求項１０に記載の装置。
【請求項１５】
前記アプリケーション・レイヤが、ＩＰプロトコル・スタック用に設計された第２のアプリケーションを含む、請求項１０に記載の装置。
【請求項１６】
ネットワーク中の第２のノードにおいて、前記ネットワーク中の第１のノードから第１のＩＰパケットを受信するステップであり、前記第１のＩＰパケットが、第１のＩＰヘッダ、第１のＩＰ拡張ヘッダ、および第１のペイロードを含み、前記第１のＩＰ拡張ヘッダが、非ＩＰプロトコル・データを含むステップと、
前記非ＩＰプロトコル・データの少なくとも一部分を使用して、第１の生存時間（ＴＴＬ）値が所定のしきい値に到達しているかどうかを判定するステップと、
前記第１のＴＴＬ値が前記所定のしきい値に到達していない場合に、
前記非ＩＰプロトコル・データを使用して前記ネットワーク中の第３のノードを選択するステップと、
第２のＩＰヘッダ、第２のＩＰ拡張ヘッダ、および第２のペイロードを含む第２のＩＰパケットを提供するステップであり、前記第２のＩＰ拡張ヘッダが第２のＴＴＬ値を含む非ＩＰプロトコル・データを含むステップと、
前記第２のＩＰパケットを前記第３のノードに伝送するステップと、
前記ＴＴＬ値が前記所定のしきい値に到達している場合に、前記第１のＩＰパケットを廃棄するステップとを含む、ＩＰパケットを提供する方法。
【請求項１７】
前記第１のＩＰ拡張ヘッダの前記非ＩＰプロトコル・データが、永続的なルーティング、速やかなルーティング、または信頼性の高いルーティングというルーティング・オプションのうちの少なくとも１つを用いて前記ネットワーク内のルーティングを行うための情報を含む、請求項１６に記載の方法。
【請求項１８】
前記第１のＩＰ拡張ヘッダの前記非ＩＰプロトコル・データが、非ＩＰアドレス、メッセージＩＤ、フラグメントＩＤ、セキュリティ情報、または暗号化情報のうちの１つまたは複数を含む、請求項１６に記載の方法。
【請求項１９】
前記第１のＩＰ拡張ヘッダが、ＩＰｖ６ホップ・バイ・ホップ拡張ヘッダである、請求項１６に記載の方法。
【請求項２０】
前記第１のＩＰ拡張ヘッダが、ＩＰｖ６宛先拡張ヘッダである、請求項１６に記載の方法。
【請求項２１】
第２のＩＰパケットを提供するステップが、前記第２のノードのアドレスを前記第２のＩＰ拡張ヘッダに追加するステップをさらに含む、請求項１６に記載の方法。
【請求項２２】
第１のネットワーク中の発信ノードにおいて、
ＩＰヘッダ、ＩＰ宛先拡張ヘッダ、およびペイロードを有する発信パケットを提供するステップであり、前記ＩＰ宛先拡張ヘッダが非ＩＰプロトコル・データを含むステップと、
前記発信パケットを前記第１のネットワーク中の第１のノードにルーティングするステップと、
前記第１のネットワーク中の前記第１のノードにおいて、
前記発信パケットを受信するステップと、
第１のＩＰヘッダ、前記ＩＰ宛先拡張ヘッダ、および第１のペイロードを有する第１のパケットを提供するステップであり、前記ＩＰ宛先拡張ヘッダが前記発信パケットの前記非ＩＰプロトコル・データを含むステップと、
前記第１のノードで利用可能な、前記発信パケットの前記非ＩＰプロトコル・データとは異なる非ＩＰプロトコル・データを使用して、前記第１のネットワーク中の第２のノードを選択するステップと、
前記第１のパケットを前記第１のネットワーク中の前記第２のノードにルーティングするステップとを含む、ルーティング方法。
【請求項２３】
前記第１のパケットを前記第１のネットワーク中の前記第２のノードにルーティングするステップが、永続的なルーティング、速やかなルーティング、または信頼性の高いルーティングというルーティング・オプションのうちの少なくとも１つを用いてルーティングするステップを含む、請求項２２に記載の方法。
【請求項２４】
前記発信ノードにおいて、
前記発信ノードのアドレスをＩＰホップ・バイ・ホップ拡張ヘッダに追加し、前記ＩＰホップ・バイ・ホップ拡張ヘッダを前記発信パケットに含めるステップと、
前記第１のノードにおいて、
前記第１のノードのアドレスを第１のＩＰホップ・バイ・ホップ拡張ヘッダに追加し、前記第１のＩＰホップ・バイ・ホップ拡張ヘッダを前記第１のパケットに含めるステップとをさらに含む、請求項２２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、新たなプロトコル・スタックへの移行時のプロトコル・データの保存に関し、さらに詳細には、拡張ヘッダを使用してプロトコル・データを担持することに関する。
【背景技術】
【０００２】
高度メータリング・インフラストラクチャ（Advance Metering Infrastructure: AMI）またはスマート・グリッド通信に使用されるＲＦ近隣エリア・ネットワーク（Neighborhood Area Networks: NANs）などの一部のユーティリティ・ネットワークは、独自のプロトコル・スタックと、階層化ルーティングまたは地理的ルーティングとを使用する。このようなネットワークのノードは、ユーティリティ・メーター、ユーティリティ・サーバ、およびルータを含むことができる。いくつかのネットワークでは、独自のネットワーク内のノード上で実行されるアプリケーションと独自のプロトコル・スタックとの間の境界が十分に定義されないことがある、すなわち、アプリケーションがその基礎となるプロトコル・スタックから独立しておらず、パケットを処理するために、基礎となるプロトコル・スタックからの情報を必要とすることがある。独自のプロトコル・スタックを使用する複数のノードを有するネットワークがＩＰ（インターネット・プロトコル）準拠になる必要があるときに、このモジュール性の欠如が問題になることがある。例えば、非ＩＰプロトコル・スタック上で動作するように設計されたアプリケーションが下位レイヤの情報を必要としているが、この情報がＩＰヘッダ中に存在しないとき、あるいは上位レイヤのアプリケーションまたはその他のソフトウェア・モジュールが独自のプロトコル・スタックの下位レイヤから受信したパケットを処理するときに、問題が生じる可能性がある。
【０００３】
非ＩＰノードがＩＰネットワーク内で通信を行うことができるようにする１つの方法は、そのノードをＩＰ準拠ノードに変換することである。非ＩＰプロトコル・スタック上で動作するように設計されたアプリケーションをＩＰプロトコル・スタックに変換するには、通常、アプリケーションの論理に変更を加える必要がある、すなわちアプリケーションをＩＰプロトコル・スタック用に再開発する。この変換は、時間および費用の両方が嵩む可能性が高い。非ＩＰノードがＩＰネットワーク内で通信を行うことができるようにする別の方法は、トンネリングを使用することである。トンネリングは、第１のプロトコルを第２のプロトコル内にカプセル化して、第１のプロトコルを用いて形成されたパケットを、第２のプロトコルを用いるネットワークを介して通信することができるようにするものである。ただし、トンネリングでは、追加の処理能力、追加のメモリ、および追加のヘッダが必要になり、無線伝送効率が低下することになる。
【０００４】
したがって、非ＩＰプロトコル・スタック用に設計されたアプリケーションをＩＰプロトコル・スタックに適合させるより良い方法が必要とされている。
【発明の概要】
【０００５】
本発明の態様は、非ＩＰプロトコル・スタック用に設計されたアプリケーションを、最小限の修正で、ＩＰプロトコル・スタックで動作することができるようにする。本発明の１つの態様では、ＩＰｖ６ヘッダと、１つまたは複数の任意選択のＩＰｖ６拡張ヘッダとを有するインターネット・プロトコル・バージョン６（ＩＰｖ６）パケットを使用する。「ＩＰｖ６ヘッダ」という用語は、インターネット・プロトコル・バージョン６（ＩＰｖ６）仕様ＲＦＣ２４６０（「ＲＦＣ２４６０」）に定義されるＩＰｖ６ヘッダを含み、一般にＩＰｖ６固定ヘッダと呼ばれる。「ＩＰｖ６拡張ヘッダ」という用語は、ＲＦＣ２４６０に定義される任意選択のＩＰｖ６拡張ヘッダを含む。本明細書で使用する「非ＩＰプロトコル・データ」という用語は、関連するＩＰヘッダ、例えばＩＰｖ６ヘッダの一部として定義されないデータを含む。本発明の態様は、アプリケーションが必要とする非ＩＰプロトコル・データを、ＩＰｖ６拡張ヘッダなど１つまたは複数の拡張ヘッダ内に配置することによって通信する。非ＩＰプロトコル・データは、非ＩＰプロトコル・データを使用するノードには利用可能であるが、非ＩＰプロトコル・データを使用しない他のノードは、非ＩＰプロトコル・データを単純に伝達するだけであることもある。
【０００６】
本発明の１つの態様では、ユーティリティ・ネットワークは、ＩＰｖ６ネットワークとインタフェースをとる。ユーティリティ・ネットワーク内のノードは、ユーティリティ・メーターおよびコレクタを含む。コレクタは、ユーティリティ・ネットワークとＩＰｖ６ネットワークの間で通信する。ユーティリティ・ネットワーク内のノードは、ＩＰｖ６プロトコル・スタックと動作するように最小限の修正が加えられた非ＩＰプロトコル・スタック用に設計されたアプリケーションを含む。通常は、これらの修正は、アプリケーションをソケット・ベースにすることを含む。非ＩＰプロトコル・データがＩＰｖ６拡張ヘッダで利用可能であるので、アプリケーションは、非ＩＰプロトコル・データを引き続き使用して、ルーティングの判断を行う、またはユーティリティ・ネットワーク内のその他のアクションを行うことができる。パケットがユーティリティ・ネットワークからＩＰｖ６ネットワークに通信されたとき、このパケットは、引き続きＩＰ拡張ヘッダ中に非ＩＰプロトコル・データを含む。ＩＰｖ６ネットワーク中のノードは非ＩＰプロトコル・データを使用しないこともあるが、これらのノードは、非ＩＰプロトコル・データを伝達して、非ＩＰプロトコル・データを宛先ノードが利用できるようにし、宛先ノードは非ＩＰプロトコル・データを使用する場合もあれば使用しない場合もある。
【０００７】
非ＩＰプロトコル・データをＩＰｖ６拡張ヘッダ中に配置することにより、このデータがアプリケーションにとって利用可能なままとなり、これにより、最小限の修正で、アプリケーションをＩＰｖ６スタック上で再使用することができるようになる。
【０００８】
上記の例示的な態様および特徴は、本発明を限定または定義するために言及したものではなく、本願に開示する発明性のある概念の理解を助けるための例を与えるために言及したものである。本発明のその他の態様、利点および特徴は、本願全体を考察すれば明らかになるであろう。
【０００９】
本開示の上記及びその他の特徴、態様および利点は、以下の詳細な説明を添付の図面を参照して読めば、より深く理解される。
【図面の簡単な説明】
【００１０】
【図１】ＩＰｖ６ヘッダを示すブロック図である。
【図２】ＩＰｖ６拡張ヘッダを示すブロック図である。
【図３】例示的なＩＰｖ６パケットを示すブロック図である。
【図４】非ＩＰプロトコル・スタックを用いる例示的な装置を示すブロック図である。
【図５】ＩＰプロトコル・スタックを用いる例示的な装置を示すブロック図である。
【図６】図５の装置の例示的な動作環境を示すブロック図である。
【図７】例示的な拡張ヘッダを示すブロック図である。
【発明を実施するための形態】
【００１１】
本発明の態様は、ＩＰ拡張ヘッダ中に非ＩＰプロトコル・データを配置することによって非ＩＰプロトコル・データを使用するアプリケーションに対応している。ＩＰパケットは、ＩＰヘッダまたはベース・ヘッダと、１つまたは複数の任意選択のＩＰ拡張ヘッダとを含む。ＩＰ拡張ヘッダに非ＩＰプロトコル・データを配置することにより、このデータは、アプリケーションで利用可能になり、これにより、非ＩＰプロトコル・スタック用に設計されたアプリケーションを、最小限の修正で、ＩＰプロトコル・スタックを有する装置上で動作させることが可能になる。
【００１２】
ＩＰヘッダおよび拡張ヘッダ
図１は、ＲＦＣ２４６０によって規定されるＩＰヘッダを示す図である。ヘッダ１００は、ネクスト・ヘッダ・フィールド１０２、ホップ限界フィールド１０４、発信元アドレス１０６、および宛先アドレス１０８を含む。ネクスト・ヘッダ・フィールドは、ＩＰｖ６ヘッダの直後に続くヘッダのタイプを示す。ＩＰｖ６は、ホップ・バイ・ホップ拡張ヘッダおよび宛先拡張ヘッダなど、ＩＰｖ６ヘッダの後に続くことができる少数の拡張ヘッダに対応する。ホップ限界フィールドの値は、パケットを転送するノードごとに１ずつ減る。ホップ限界フィールドの値が０になると、パケットは廃棄される。発信元アドレスは、パケットの発信者を識別し、宛先アドレスは、パケットの所期の受信者を識別する。
【００１３】
図２は、ＩＰｖ６のホップ・バイ・ホップ拡張ヘッダを示す図である。拡張ヘッダ２００は、ネクスト・ヘッダ・フィールド２０２、ヘッダ長フィールド２０４、およびオプション・フィールド２０６を含む。このネクスト・ヘッダ・フィールドは、ホップ・バイ・ホップ拡張ヘッダの直後に続くヘッダのタイプを識別するという点で、ヘッダのネクスト・ヘッダ・フィールドと同様である。ヘッダ長フィールドは、オプション・フィールドの長さを示す。オプション・フィールドは、１つまたは複数のタイプ・レングス・バリュー（ＴＬＶ）符号化オプションを含む。図２には、最初のＴＬＶオプション２１０、および最後のＴＬＶオプション２２０を示してある。各ＴＬＶオプションは、オプション・タイプフィールド２１２、２２２、オプション長フィールド２１４、２２４、およびオプション・データ・フィールド２１６、２２６を含む。宛先拡張ヘッダは、やはりネクスト・ヘッダ・フィールドと、ヘッダ長フィールドと、１つまたは複数のＴＬＶ符号化オプションを有するオプション・フィールドとを含むという点で、ホップ・バイ・ホップ拡張ヘッダと同様である。
【００１４】
図３は、図１に示すようなＩＰｖ６ヘッダ１００、図２に示すようなＩＰｖ６拡張ヘッダ２００、およびペイロード３０２を有するＩＰｖ６パケット３００を示す図である。拡張ヘッダは、ホップ・バイ・ホップ拡張ヘッダまたは宛先拡張ヘッダなど、任意の拡張ヘッダとすることができる。図３には拡張ヘッダが１つしか示されていないが、パケットは、複数の拡張ヘッダを含むこともできる。その場合には、それらの拡張ヘッダは、相次いで続く。
【００１５】
図４は、非ＩＰプロトコル・スタック用に設計されたアプリケーションをＩＰｖ６プロトコル・スタックに移行する際に生じる問題を示す図である。図４では、装置４００は、非ＩＰプロトコル・スタック４１０を使用する。この装置は、アプリケーション・レイヤに１つまたは複数のアプリケーション４０２ａ、４０２ｂ、…、４０２ｎを含む。例示的なプロトコル・スタックは、アプリケーション・レイヤの下にあり、３つのレイヤ、すなわちレイヤ-１  ４１６、レイヤ-２  ４１４、およびレイヤ-３  ４１２を含む。図４では、下位のレイヤから利用可能であり、アプリケーションのうちの１つまたは複数によって使用される情報は、星印で示してある。例えば、アプリケーション４０２ａは、適切に機能するために、星印ＡおよびＣで表されるレイヤ-３の情報を必要とすることがあり、また星印ＢおよびＤで表されるレイヤ-２の情報を必要とすることがある。
【００１６】
この例では、星印Ａで表される情報のみが、ＩＰｖ６スタックから利用可能である。したがって、アプリケーション４０２ａがＩＰｖ６スタックを有する装置上で動作する場合には、星印Ｂ、ＣおよびＤで表される情報が利用できなくなるので、このアプリケーションを大幅に修正する必要がある。アプリケーションを大幅に修正しなくても済むように、本発明の態様では、ＩＰｖ６拡張ヘッダに非ＩＰプロトコル・データを配置する。この例では、非ＩＰプロトコル・データは、アプリケーション・レイヤより下のレイヤに関連付けられた、ＩＰｖ６ヘッダでは定義されていないデータである。非ＩＰプロトコル・データがＩＰｖ６拡張ヘッダに配置された場合には、アプリケーションがＩＰｖ６スタックを有する装置上で動作できるようにするためにアプリケーションに加えられる修正は、比較的小さくなる。通常は、この修正は、アプリケーションが下位のレイヤとの通信にソケット・インタフェースを使用するように非ソケット・ベース・アプリケーションからソケット・ベース・アプリケーションに変更することに関係する。
【００１７】
図５は、ＩＰｖ６プロトコル・スタック５１０を使用する装置５００の動作を説明する図である。この装置は、アプリケーション・レイヤに１つまたは複数のアプリケーション５０２ａ、５０２ｂ、…、５０２ｎを含む。アプリケーション５０２ａは、星印Ａ、Ｂ、ＣおよびＤで示される情報を必要とするという点では図４のアプリケーション４０２ａと同様であるが、ソケット・ベースである。ＩＰｖ６プロトコル・スタック５１０のレイヤは、アプリケーション・レイヤの下にあり、ＵＤＰ（ユーザ・データグラム・プロトコル）またはＴＣＰ（伝送制御プロトコル）などのトランスポート・レイヤ５１２、ＩＰｖ６インターネット・レイヤ５１４、データ・リンク・レイヤ５１６、およびレイヤ-１  ５１８を含む。この装置は、ＩＰｖ６ヘッダ５２２と、ＩＰｖ６ホップ・バイ・ホップ拡張ヘッダ５２４と、ＵＤＰフィールド５２６と、アプリケーション・データ・フィールド５２８とを含むＩＰｖ６パケット５２０を作成する。この例では、星印Ａに関連付けられた情報は、ＩＰｖ６ヘッダにマッピングすることができるので、ヘッダに含まれる。例えば、星印Ａに関連付けられた情報は、ホップ限界とすることができる。しかし、星印Ｂ、ＣおよびＤに関連付けられた情報は、ＩＰｖ６ヘッダにマッピングすることができないので、ホップ・バイ・ホップ拡張ヘッダに含まれる。このようにして、星印Ｂ、ＣおよびＤに関連付けられた情報が、ヘッダにマッピングすることができるタイプではない場合でも、それらの情報をアプリケーションが利用できるようになる。
【００１８】
本発明の別の態様は、ＩＰｖ６プロトコル・スタックを使用する装置で使用して、非ＩＰプロトコル・データを必要とする第１のアプリケーションおよび非ＩＰプロトコル・データを必要としない第２のアプリケーションをサポートすることができる。この状況では、これら２つのアプリケーションが、同一装置上に共存し、同じＩＰｖ６プロトコル・スタックを使用する。第１のアプリケーションに関連するパケットは、非ＩＰプロトコル・データを含むＩＰｖ６拡張ヘッダを含むことができるが、第２のアプリケーションに関連するパケットは、ＩＰｖ６拡張ヘッダを含まなくてもよいことがある。
【００１９】
本発明の別の態様は、ＩＰアドレスに基づくルーティングの代わりに、非ＩＰプロトコル・スタックに関連付けられたルーティング方法を実施する装置で使用することができる。この場合には、ＩＰアドレスに基づくルーティングおよび非ＩＰプロトコル・スタックに基づくルーティングの両方が、ネットワーク中で共存することができる。両タイプのルーティングをサポートするために、ＩＰｖ６パケットは、非ＩＰプロトコル・スタックルーティングに必要なデータを担持するホップ・バイ・ホップ拡張ヘッダを含む。
【００２０】
例示的な動作環境
図６は、いくつかのノード、すなわちノード１、ノード２、…、ノードｎを含むネットワーク、すなわちネットワーク１  ６００を示す図である。一例では、これらのノードは、ユーティリティ・メーターおよびコレクタを含む。ユーティリティ・メーターは、任意のタイプのユーティリティ・エンドポイントまたは測定装置を含む。コレクタは、ノードからデータを収集するものであり、ユーティリティ・メーターを含んでいても含んでいなくてもよい。コレクタは、ネットワーク１の外部のノードと通信する。場合によっては、コレクタは、ネットワーク１のデータの宛先ノードと直接通信するが、場合によっては、コレクタは、コレクタから受け取った情報を単純に別のノードに転送するノードと通信するので、情報は、宛先ノード６２０に到達する前に複数の介在ノードを通過する。各ノードは、プロセッサと、メモリ装置と、他のノードと通信する通信装置とを含むことができる。ノード間の通信は、無線通信を介してもよいし、有線通信を介してもよいし、あるいはその他の任意のタイプの通信を介してもよい。
【００２１】
プロセッサは、メモリに記憶された命令を実行するように構成された、任意の適当な処理装置または装置グループとすることができる。プロセッサの例としては、マイクロプロセッサ、混合信号マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはその他の適当な装置などが挙げられるが、これらに限定されるわけではない。メモリは、ノードの１つまたは複数のハードウェア構成要素を制御するファームウェアまたはその他の動作命令などのコンピュータ実行可能プログラム命令を記憶する、任意の適当な非一時的コンピュータ可読媒体とすることができる。非一時的コンピュータ可読媒体としては、プロセッサにコンピュータ可読命令を提供することができる、電子的、光学的、磁気的、またはその他の記憶装置が挙げられるが、これらに限定されるわけではない。その他の例としては、メモリ・チップ、ＲＯＭ、ＲＡＭ、ＡＳＩＣ、設定したプロセッサ、光学記憶装置、またはコンピュータ・プロセッサが命令を読み出すことができるその他の任意の媒体が挙げられるが、これらに限定されるわけではない。命令としては、任意の適当なコンピュータ・プログラミング言語で書かれたコードからコンパイラおよび／またはインタプリタによって生成されるプロセッサ固有命令などが挙げられる。
【００２２】
ネットワーク１内のノードは、非ＩＰプロトコル・データを必要とするアプリケーションを含むことができる。非ＩＰプロトコル・データの例としては、ＷＡＮアドレスなどの非ＩＰアドレス・データ、ルーティング情報、メッセージ／フラグメントＩＤ（ＩＰｖ６フラグメンテーションおよびリアセンブリとは異なる）、セキュリティ／暗号化タイプ、およびＴＴＬ（time to live: 生存時間）などが挙げられるが、これらに限定されるわけではない。場合によっては、アプリケーションは、はじめから非ＩＰスタック用に設計され、それでも特定の非ＩＰプロトコル・データを必要とすることもあるが、場合によっては、ＩＰプロトコル・スタック上で動作することができることもある。
【００２３】
図６は、ノード１のパケットをノード２にルーティングし、次いでノードｎにルーティングすることができることを示している。ノードｎは、このパケットを、ネットワーク１の外部のルータ６１０にルーティングする。このパケットは、その後、任意数のさらなる介在ノードを介してその宛先ノード６２０にルーティングされる。
【００２４】
ネットワーク１内のルーティングは、少なくとも部分的には、非ＩＰプロトコル・データに基づいて行うことができる。ノード１は、少なくとも部分的には非ＩＰプロトコル・データに基づいて、パケットをノード１からノード２にルーティングすると判断することができる。同様に、ノード２も、少なくとも部分的には非ＩＰプロトコル・データに基づいて、パケットをノード２からノードｎにルーティングすると判断することができる。ノード２が使用する非ＩＰルーティング・データは、ノード１が使用する非ＩＰルーティング・データとは異なっていてもよい。ルーティング・データは、永続的なルーティング、速やかなルーティング、または信頼性の高いルーティングなど、様々なルーティング・オプションを実施するために必要な情報を含むことができる。例えば、永続的なルーティングを実施するためには、どのノードがバッテリ付きノードであるかを把握し、バッテリ付きノードのみをルーティングに使用することが必要である。リンク・クイック・ルーティングを実施するためには、リンク品質を把握し、その情報を使用してルーティングの判断を行うことが必要である。信頼性の高いルーティングを実施するためには、パケットは予め設定された短いホップ長より遠くない複数のノードを介してルーティングされるので、予め設定された短いホップ長を把握することが必要である。ノードｎは、ネットワーク１の外部のルータ６１０にパケットをルーティングする。ノードｎは、パケットをルータにルーティングすると判断する際に、非ＩＰプロトコル・データおよび／またはＩＰデータを使用することができる。ルータ６１０、ならびにルータ６１０とノード６２０の間のその他のノードは、ＩＰデータのみに基づいてパケットをルーティングすることができる。
【００２５】
ネットワーク１内のノードがルーティングの判断を非ＩＰプロトコル・データに基づいて行うことができるようにするために、これらのノードは、ＩＰヘッダと非ＩＰプロトコル・データを含むＩＰ拡張ヘッダとを含むパケットを使用する。一例では、ＩＰ拡張ヘッダは、ホップ・バイ・ホップ拡張ヘッダであり、非ＩＰプロトコル・データは、ＴＴＬおよびフラグメントＩＤを含む。図７は、ともにＴＬＶフォーマットを使用する２つのホップ・バイ・ホップ・オプション７００、７１０を示す図である。第１のオプション７００は、ＴＴＬに関係し、ＴＴＬを示すタイプ・フィールド７０２、１バイトを示す長さフィールド７０４、および秒数を含むデータ・フィールド７０６を含む。この例では、ネットワーク１内のノードは、ＴＴＬデータを使用して、パケットをいつ廃棄するかを決定する。ネットワーク１のＴＴＬには、秒数またはミリ秒数で表される所定のしきい値がある。このしきい値に達すると、パケットは廃棄される。ネットワーク１内のノードでは、ＴＴＬデータは、ＩＰホップ・カウント・データをオーバライドするので、ＴＴＬしきい値に達した場合には、ホップ・カウントが非ゼロである場合でも、パケットは廃棄される。ルータ６１０およびその他のネットワーク１外部のノードは、ＴＴＬデータを無視することもできるので、ＩＰホップ・カウントのみに依拠してパケットを廃棄するかどうかを判定することもできる。
【００２６】
第２のオプション７２０は、フラグメンテーションに関係し、フラグメンテーションを示すタイプ・フィールド７１２、２バイトを示す長さフィールド７１４、およびフラグメントＩＤ番号を含むデータ・フィールド７１６を含む。この例では、ネットワーク１内のノード上で動作するアプリケーションは、ＩＰによって提供されるメッセージ長とは異なるメッセージ長を使用し、フラグメントＩＤ番号を使用して、この異なるメッセージ長に対応している。
【００２７】
ＩＰｖ６プロトコルによれば、各ノードは、ホップ・バイ・ホップ拡張ヘッダを検査する。ルータ６１０および任意の介在ノードは、ホップ・バイ・ホップ拡張ヘッダ中の情報を必要としないことがあるので、この情報を無視することもあるが、この情報の伝達は引き続き行う。このようにして、この情報は、宛先ノードが利用できるようになる。一例では、ネットワーク１の外部のノードは、ビットが設定されたときにホップ・バイ・ホップ拡張ヘッダを無視する。別の例では、ルータ６１０および場合によっては介在ノードは、ホップ・バイ・ホップ拡張ヘッダを検査して、そのデータを処理する。
【００２８】
本発明の態様を使用して、トレース・ルート機能を提供することができる。例えば、パケットを扱う各ノードは、自身のアドレスをホップ・バイ・ホップ拡張ヘッダに追加して、そのパケットが宛先ノードに到着した後で、宛先ノードがそのパケットが辿った経路を識別できるようにすることができる。このトレース・ルート機能は、ホップ・バイ・ホップ拡張ヘッダ中の他の情報がルーティングの判断を行うために使用されているかどうかに関わらず、使用することができる。
【００２９】
別の例では、ホップ・バイ・ホップ拡張ヘッダの代わりに、宛先拡張ヘッダを使用する。各ノードが検査するホップ・バイ・ホップ拡張ヘッダとは異なり、宛先拡張ヘッダは、システム中のＩＰｖ６準拠の宛先ノードのみが検査する。この状況では、発信ノードは、ルーティング情報などの情報を、宛先ノードのための宛先拡張ヘッダに含めることができる。ネットワーク１内のノードは、それらのノードでハード・コーディングされた情報など、他の情報に基づいてルーティングの判断を行うことができる。このようにして、発信ノードから提供されるルーティング情報は、宛先ノードに送信され、ネットワーク１内のルーティングの判断は、非ＩＰプロトコル・データを用いて行われる。
【００３０】
ＩＰ準拠ではない代替例では、ネットワーク１内のノードは、ＩＰプロトコルに従う必要がない場合でも、宛先拡張ヘッダを検査するように設計することができる。その場合には、ネットワーク１内のルーティングの判断を行うために使用される非ＩＰプロトコル・データを、宛先拡張ヘッダ中に配置することができる。
【００３１】
さらに別の例では、非ＩＰプロトコル・データは、複数の拡張ヘッダの間で分割される。例えば、ネットワーク１内のルーティングの判断を行うために使用される非ＩＰプロトコル・データは、ホップ・バイ・ホップ拡張ヘッダ中に配置し、セキュリティに関係する非ＩＰプロトコル・データは、宛先拡張ヘッダなど、別の拡張ヘッダ中に配置することもできる。
【００３２】
特許請求の範囲に記載の主題が完全に理解されるように、本明細書では多数の具体的な詳細を記載した。しかし、これらの具体的な詳細がなくても特許請求の範囲に記載の主題を実施することができることは、当業者なら理解するであろう。その他、当業者に既知の方法、装置またはシステムについては、特許請求の範囲に記載の主題を曖昧にしないために詳細には説明していない。例えば、上記の本発明の説明でアプリケーションを使用しているのは、非限定的な一例に過ぎない。本発明は、アプリケーションまたは特定のタイプの非ＩＰプロトコル・スタックに限定されない。また、本発明は、ルーティングに非ＩＰプロトコル・データを使用することに限定されるわけではなく、ＩＰプロトコル・スタックによって提供されたものではない、ネットワーク内のノードによって使用される任意のデータを含むことができる。さらに、本発明は、本明細書で用いるＩＰｖ６および拡張ヘッダの具体的な例に限定されるわけではなく、他のバージョンのＩＰでも適宜使用することができる。
【００３３】
一部は、コンピュータ・メモリなどの計算システム・メモリ内に記憶されたデータ・ビットまたはバイナリ・デジタル信号に対する動作の象徴的な表現を用いて示している。これらの表現は、データ処理技術分野の当業者が自身の仕事の内容を他の当業者に伝えるために使用した技術の例である。動作または処理は、物理量の物理的操作を含む。必ずしもそのようになるわけではないが、通常は、これらの量は、記憶、転送、結合、比較などの操作を行うことができる電気信号または磁気信号の形態をとることができる。時には、主に慣例的な理由から、これらの信号を、ビット、データ、値、要素、記号、文字、用語、数、数字などと呼ぶと好都合であることが分かっている。ただし、これらの用語およびそれらに類する用語は全て、適当な物理量に関連付けられるものであり、単なる好都合なラベルに過ぎないことを理解されたい。特に記載しない限り、本明細書全体を通じて、「処理」、「計算」、「算出」、「決定」、および「識別」などの用語を用いた説明は、１つまたは複数のコンピュータあるいはそれに類する１つまたは複数の電子計算装置など、計算プラットフォームのメモリ、レジスタまたはその他の記憶装置、伝送装置あるいは表示装置内の物理的な電子量または磁気量として表されるデータを操作または変換する計算装置のアクションまたはプロセスを指すことを理解されたい。
【００３４】
本明細書に記載する１つまたは複数のシステムは、いかなる特定のハードウェア・アーキテクチャまたは構成にも限定されない。計算装置は、１つまたは複数の関数呼び出しに基づいて条件付けされた結果を提供する構成要素の任意の適当な配列を含むことができる。適当な計算装置としては、計算システムを汎用計算装置から本発明の主題の１つまたは複数の態様を実施する専用計算装置にプログラムまたは構成する記憶されたソフトウェアにアクセスする多目的マイクロプロセッサ・ベース・コンピュータ・システムなどが挙げられる。任意の適当なプログラミング、スクリプティング、あるいはその他のタイプの言語または言語の組合せを使用して、本明細書に記載した教示を、計算装置のプログラミングまたは構成に使用されるソフトウェアとして実施することができる。
【００３５】
本明細書で「するように適合された」または「するように構成された」と用いているのは、追加のタスクまたはステップを実行するように適合または構成された装置を排除しないオープンかつ包括的な表現を意図したものである。さらに、「に基づく」と用いているのは、列挙されている１つまたは複数の条件または値「に基づく」プロセス、ステップ、計算またはその他のアクションが、実際には、列挙したもの以外の追加の条件または値に基づいていてもよいという点で、オープンかつ包括的な意味で用いたものである。本明細書に含まれる見出し、リスト、および、番号付けは説明の容易さだけのためであり、限定を意図するものではない。
【００３６】
具体的な態様に関連して本発明の主題について詳細に説明したが、上記の内容を理解した当業者なら、これらの態様の代替態様、変形態様、および均等態様を容易に生み出すことができることは理解されるであろう。したがって、本開示は、限定ではなく例示を目的として与えたものであり、当業者には容易に明らかになるであろう本発明の主題に対するこれらの修正、変形、および／または追加を含むことを排除しないことを理解されたい。
【図１】
0006367830.tif 000002
【図２】
0006367830.tif 000003
【図３】
0006367830.tif 000004
【図４】
0006367830.tif 000005
【図５】
0006367830.tif 000006
【図６】
0006367830.tif 000007
【図７】
0006367830.tif 000008