(57)【特許請求の範囲】
【請求項１】
第１のネットワークデバイスであって：
トラフィック、検索エンジン向けの命令、マップマネージャ、トラフィックフォワーダおよびマップを記憶するように構成された、有形のコンピュータ読取り可能な記憶媒体を備え；
前記記憶媒体にデータを記憶し；
前記検索エンジン向けの命令を実行する；
ように構成されたプロセッサを備え；
下りトラフィックを第１のアドレスの第１のデバイスから受け取るように構成された第１のアドレス入力であって、前記トラフィックが、データパケットおよび第２のデバイスの第２のアドレスを備えた、第１のアドレス入力を備え；
前記マップマネージャが、前記記憶媒体中に記憶された前記マップを生成するように構成されており、前記マップが、前記第１のアドレスと前記第２のアドレスとを関連付けるルールを備えており；
前記トラフィックフォワーダが、前記下りトラフィックを前記第２のデバイスに転送するように構成されており；
前記第２のデバイスから前記第１のデバイス宛てのリターントラフィックを受け取るように構成された、第２のアドレス入力を備え；
前記プロセッサによって実行可能な前記検索エンジンが、前記プロセッサに、前記マップを検査し、前記マップが前記第２のデバイスの前記第２のアドレスと前記第１のデバイスの前記第１のアドレスとを関連付けるルールを備えているか否かを判定させる命令を備え、
前記マップがこの関連付けを備えている場合には、前記エンジン中の命令が、前記プロセッサに、前記リターントラフィックを前記第２のデバイスから前記第１のデバイスへと転送させ、
そうでない場合には、前記命令が、前記プロセッサに、クエリを第２のネットワークデバイスへと送信させ、前記クエリが、前記第２のネットワークデバイスが前記第２のアドレスと前記第１のアドレスとを関連させるルールを備えているか否かを問い合わせ；
前記クエリに対する応答を受け取るように構成されたネットワークデバイス入力を備え；
前記クエリに対する前記応答に基づいて前記マップを更新するように構成された、マップアップデータを備えた；
第１のネットワークデバイス。
【請求項２】
前記第１のアドレスがＩＰｖ６アドレスであり、前記第２のアドレスがＩＰｖ４アドレスである、請求項１に記載のネットワークデバイス。
【請求項３】
前記第１のアドレスがＩＰｖ４アドレスであり、前記第２のアドレスがＩＰｖ６アドレスである、請求項１に記載のネットワークデバイス。
【請求項４】
前記第１のデバイスからのトラフィックが、カプセル化されたＩＰｖ４トラフィックを備えた、請求項１に記載のネットワークデバイス。
【請求項５】
ＩＰｖ４トラフィックをカプセル化したＩＰｖ６データパケットについて、カプセル化を解除するように構成されたカプセル化解除装置を備えた、請求項４に記載のネットワークデバイス。
【請求項６】
Ｎ個のネットワークデバイスからなるシステムであって、前記システムが第１および第２のネットワークデバイスを備え、前記第１のネットワークデバイスが：
トラフィック、検索エンジン向けの命令、マップマネージャ、トラフィックフォワーダおよびマップを記憶するように構成された、有形のコンピュータ読取り可能な記憶媒体と；
前記記憶媒体にデータを記憶し；
検索エンジンに記憶された命令を実行する；
ように構成されたプロセッサと；
第１のアドレスの第１のデバイスから下りトラフィックを受け取るように構成された第１のアドレス入力であって、前記トラフィックが、データおよび第２のアドレスの第２のデバイスを備えた、第１のアドレス入力と；
前記記憶媒体に記憶されたマップであって、前記第１のアドレスと前記第２のアドレスとの関連付けを備えたマップと；
前記下りトラフィックを前記第２のデバイスに転送するように構成された、トラフィックフォワーダと；
前記第２のデバイスから前記第１のデバイス宛てのリターントラフィックを受け取るように構成された、第２のアドレス入力と；
前記プロセッサによって実行可能な検索エンジンであって、前記プロセッサに、前記マップを検査して、前記マップが前記第２のデバイスの前記第２のアドレスと前記第１のデバイスの前記第１のアドレスとの関連付けを備えているか否かを判定させ、前記マップがこの関連付けを備えている場合には、前記エンジン中の前記命令が、前記プロセッサに、前記リターントラフィックを前記第２のデバイスから前記第１のデバイスへと転送させ、そうでない場合には、前記命令が、前記プロセッサに、クエリを前記第２のネットワークデバイスに送信させ、前記クエリが、前記第２のネットワークデバイスに対して、前記第２のネットワークデバイスが前記第２のアドレスと前記第１のアドレスとを関連付けるルールを備えているか否かを問い合わせる、検索エンジンと；
前記クエリに対する回答を受け取るように構成されたネットワークデバイス入力と；
前記クエリからの前記応答に基づいて前記マップを更新するように構成された、マップアップデータと；
を備え、Ｎが２以上の整数である、システム。
【請求項７】
前記第２のネットワークデバイスが、前記第１のアドレスと前記第２のアドレスとの関連付けを備えた応答を前記第１のネットワークデバイスに転送するように構成された、請求項６に記載のシステム。
【請求項８】
前記第２のネットワークデバイスが：
前記第２のネットワークデバイスが前記第１のアドレスと前記第２のアドレスとの関連付けを備えたマップを備えているか否かを判定し；
前記第２のネットワークデバイスが前記関連付けを備えている場合には、前記第２のネットワークデバイスが、前記第１のアドレスと前記第２のアドレスとの関連付けを備えた応答を前記第１のネットワークデバイスに転送し；
そうでない場合には、前記第２のネットワークデバイスが、前記クエリを第３のネットワークデバイスへと転送する；
請求項６に記載のシステム。
【請求項９】
前記第１のネットワークデバイスが、前記応答に含まれるデータを用いて、前記第１のアドレスと前記第２のアドレスとの関連付けを記憶するように構成されている、請求項７に記載のシステム。
【請求項１０】
前記第１のネットワークデバイスが、前記トラフィックを前記第２のデバイスから前記第１のデバイスに接続されたスイッチに転送する、請求項７に記載のシステム。
【請求項１１】
前記第２のネットワークデバイスが、前記トラフィックを前記第２のデバイスから前記第１のデバイスに接続されたスイッチに転送する、請求項７に記載のシステム。
【請求項１２】
前記第１のネットワークデバイスが、前記トラフィックを前記第２のデバイスから前記第１のデバイスに転送する、請求項７に記載のシステム。
【請求項１３】
前記第２のネットワークデバイスが、前記トラフィックを前記第２のデバイスから前記第１のデバイスに転送する、請求項７に記載のシステム。
【請求項１４】
第３のネットワークデバイスであって、
前記第１のアドレスと前記第２のアドレスとを関連付けるルールを備えたマップを前記第３のネットワークデバイスが備えているか否かを判定し；
前記第３のネットワークデバイスが前記ルールを備えている場合には、前記第１および第２のアドレスの前記ルールを含む応答を前記第１のネットワークデバイスに転送し；
そうでない場合には、前記クエリを第Ｎのネットワークデバイスに転送する；
ように構成された第３のネットワークデバイスをさらに備えた、請求項８に記載のシステム。
【請求項１５】
前記第Ｎのネットワークデバイスが：
前記第１のアドレスと前記第２のアドレスとの関連付けを備えたマップを前記第Ｎのネットワークデバイスが備えているか否かを判定し；
前記第Ｎのネットワークデバイスが前記関連付けを備えている場合には、前記第１のアドレスと前記第２のアドレスとの関連付けを含む応答を前記第１のネットワークデバイスに転送し；
そうでない場合には、前記クエリを前記第Ｎのネットワークデバイスに返信する；
ように構成された、請求項１４に記載のシステム。
【請求項１６】
前記第１のネットワークデバイスが：
前記クエリのコピーを前記第Ｎのネットワークデバイスから受け取り；
前記システム内のいずれのネットワークデバイスも前記第１のアドレスと前記第２のアドレスとの関連付けを備えていないと判定し；
前記トラフィックを前記第１のデバイスに転送できないことを前記第２のデバイスに通知し；
前記トラフィックをドロップする；
ように構成された、請求項１５に記載のシステム。
【請求項１７】
前記第Ｎのネットワークデバイスが：
前記第１のアドレスと前記第２のアドレスとを関連付けるルールを備えたマップを前記第Ｎのネットワークデバイスが備えているか否かを判定し；
前記第Ｎのネットワークデバイスが前記ルールを備えている場合には、前記第１のアドレスと前記第２のアドレスとを関連付けるルールを備えた応答を前記第１のネットワークデバイスに転送し；
そうでない場合には、前記Ｎ個のネットワークデバイスからなるシステムが前記第１のアドレスと前記第２のアドレスとを関連付けるルールを備えていないことを示すメッセージを、前記第１のネットワークデバイスに送信する；
ように構成された、請求項１４に記載のシステム。
【請求項１８】
少なくとも第１および第２のネットワークデバイスを備えたＮ個のネットワークデバイスからなるネットワークであって、前記第１のネットワークデバイスが：
トラフィック、検索エンジン向けの命令、マップマネージャ、トラフィックフォワーダおよびマップを記憶するように構成された、有形のコンピュータ読取り可能な記憶媒体と；
データを前記記憶媒体に記憶し；
検索エンジンに記憶された命令を実行する；
ように構成されたプロセッサと；
第１のアドレスの第１のデバイスから下りトラフィックを受信するように構成された第１のアドレス入力であって、前記トラフィックが、データおよび第２のアドレスの第２のデバイスを備えた、第１のアドレス入力と；
前記記憶媒体に記憶されたマップであって、前記第１のアドレスと前記第２のアドレスとを関連付けるルールを備えたマップと；
前記下りトラフィックを前記第２のデバイスに転送するように構成された、トラフィックフォワーダと；
前記第２のデバイスから前記第１のデバイス宛てのリターントラフィックを受け取るように構成された、第２のアドレス入力と；
前記プロセッサによって実行可能な検索エンジンであって、前記プロセッサに、前記マップを検査し、前記マップが前記第２のデバイスの前記第２のアドレスと前記第１のデバイスの前記第１のアドレスとの関連付けを備えているか否かを判定させ；
前記マップがこの関連付けを備えている場合には、前記エンジン中の前記命令が、前記プロセッサに、前記リターントラフィックを前記第２のデバイスから前記第１のデバイスへと転送させ；
そうでない場合には、前記プロセッサにクエリをマスタコントローラへと送信させ、前記クエリが、前記マスタコントローラに対して、前記マスタコントローラが前記第２のアドレスと前記第１のアドレスとを関連付けを有するルールを備えているか否かを問い合わせる；
ように構成された、検索エンジンと；
前記クエリに対する応答を受信するように構成された、ネットワークデバイス入力と；
前記クエリに対する前記応答に基づいて前記マップを更新するように構成された、マップアップデータと；
を備え、Ｎが２以上である、ネットワーク。
【請求項１９】
前記システム内の全てのその他のネットワークデバイスが、デバイスマッピングデータを前記マスタコントローラに送信するように構成されていることにより、前記ネットワーク内で通信を行う全てのデバイスについてのマッピングを前記マスタコントローラが備えた、請求項１８に記載のネットワーク。
【請求項２０】
前記マスタコントローラが：
前記第１のアドレスと前記第２のアドレスとの関連付けを備えたルールを前記マスタコントローラが備えているか否かを判定し；
前記マスタコントローラが前記関連付けを備えている場合には、前記第１のアドレスと前記第２のアドレスとの関連付けを含む応答を前記第１のネットワークデバイスに転送し；
そうでない場合には、前記マスタコントローラが前記第１のアドレスと前記第２のアドレスとのマッピングを備えていないことを示す応答を前記第１のネットワークデバイスに送信する；
ように構成された、請求項１８に記載のネットワーク。
【請求項２１】
前記第１のネットワークデバイスが、オープンフローおよびアドレスファミリトランスレータルーティングを実装する、請求項１８に記載のネットワーク。
【請求項２２】
Ｎ個のネットワークデバイスからなるネットワークと通信を行う第１のネットワークデバイスであって：
ＩＰｖ６アドレスの第１のデバイスからＩＰｖ４トラフィックをカプセル化したＩＰｖ６データパケットを受け取るように構成されたＩＰｖ６入力であって、前記トラフィックがＩＰｖ４アドレスの第２のデバイス宛てである、ＩＰｖ６入力と；
前記ＩＰｖ６アドレスと前記ＩＰｖ４アドレスとを関連付けるルールを備えたマップを生成するように構成された、マップジェネレータと；
前記ＩＰｖ４トラフィックをカプセル化したＩＰｖ６データパケットについて、カプセル化を解除するように構成された、カプセル化解除装置と；
カプセル化を解除されたＩＰｖ４トラフィックを転送するように構成された、ＩＰｖ４トラフィックフォワーダと；
前記ＩＰｖ４デバイスから前記ＩＰｖ６デバイス宛てのトラフィックを受け取るように構成された、ＩＰｖ４入力と；
前記マップを検査し、前記第２のデバイスの前記ＩＰｖ４アドレスと前記第１のデバイスの前記ＩＰｖ６アドレスとの関連付けを前記マップが備えているか否かを判定するように構成された検索エンジンであって、
前記ＩＰｖ４アドレスと前記ＩＰｖ６アドレスとを関連付けるルールを前記マップが備えていないと前記検索エンジンが判定した場合には、前記検索エンジンがクエリを前記第２のネットワークデバイスに送信し、そうでない場合には、前記第１のネットワークデバイスが前記トラフィックを転送し；
前記第２のネットワークデバイスが前記ＩＰｖ４アドレスと前記ＩＰｖ６アドレスとを関連付けるルールを備えている場合には、前記第２のネットワークデバイスが前記ルールを前記第１のネットワークデバイスに転送し、前記第１のネットワークデバイスが前記ルールを記憶し、前記第１のネットワークデバイスが、前記ＩＰｖ６アドレスに位置する前記第１のデバイスに前記トラフィックを転送し、そうでない場合には、前記第２のネットワークデバイスが前記クエリを第３のネットワークデバイスに転送し；
前記ＩＰｖ４アドレスと前記ＩＰｖ６アドレスとを関連付けるルールを前記第３のネットワークデバイスが備えている場合には、前記第３のネットワークデバイスが前記ルールを前記第１のネットワークデバイスに転送し、前記第１のネットワークデバイスが前記関連付けをメモリに記憶し、前記第１のネットワークデバイスが前記トラフィックを前記ＩＰｖ６アドレスに配置された前記第１のデバイスに転送し、そうでない場合には、前記第３のネットワークデバイスが前記クエリを第Ｎのネットワークデバイスに転送し；
前記ＩＰｖ４アドレスと前記ＩＰｖ６アドレスとを関連付けるルールを前記第Ｎのネットワークデバイスが備えている場合には、前記第Ｎのネットワークデバイスが前記ルールを前記第１のネットワークデバイスに転送し、前記第１のネットワークデバイスが前記ルールをメモリに記憶し、前記第１のネットワークデバイスが前記トラフィックを前記ＩＰｖ６アドレスに配置された前記第１のデバイスに転送し、そうでない場合には、前記第Ｎのネットワークデバイスが前記クエリを前記第１のネットワークデバイスに返送し；      前記第１のネットワークデバイスが前記クエリを前記第Ｎのネットワークデバイスから受け取った場合には、前記第１のネットワークデバイスが前記トラフィックをドロップして、前記トラフィックをドロップしたことを前記第２のデバイスに通知し、そうでない場合には、前記第１のネットワークデバイスが前記トラフィックを前記第２のデバイスから前記第１のデバイスに転送する；
検索エンジンと；
を備えた第１のネットワークデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本発明は、２０１２年９月２５日に出願され、その開示全体があらゆる目的で本願中に引用をもって援用される「ネットワークデバイス」と題する米国特許出願第１３／６２６，７１９号の優先権を主張する。
【背景技術】
【０００２】
発明の背景
インターネットプロトコルの現在のバージョンであるＩＰｖ４（インターネットプロトコルバージョン４）では、新たなアドレスを分配するためのアドレス領域が枯渇しつつある。アドレス領域のより大きい新バージョンであるＩＰｖ６が既に開発されており、普及し始めている。ＩＰｖ４とＩＰｖ６とを共用するこの時期における分配方法の一つに、ＩＰｖ４およびＩＰｖ６双方のアドレスを有するノードを用いた技術である「デュアルスタック」方式がある。この方式では、１つのノードの宛先をＩＰｖ４のみとすることが可能であるが、究極的にはＩＰｖ４アドレス領域を節約するものではない。これとは別に、非ユニークなプライベートＩＰｖ４アドレス（ＲＦＣ１９１８（リクエストフォーコメント）アドレスとも呼ばれる）とパブリックなＩＰｖ６アドレスとを共用する方式も開発されているが、そのような方式では、これらのプライベートアドレスをホスト側で分配および管理するために、通常の方法に加えて、ネットワーク内における標準的なＩＰｖ４  ＮＡＴ（ネットワークアドレス翻訳)を要する場合がある。
【０００３】
「デュアルスタックライト」または「ＤＳ−ｌｉｔｅ」と呼ばれる別の方式が開発され、ＲＦＣ６３３３（ｈｔｔｐ：／／ｔｏｏｌｓ．ｉｅｔｆ．ｏｒｇ／ｈｔｍｌ／ｒｆｃ６３３３、２０１２年５月２４日）として標準化されている。ＤＳ−ｌｉｔｅの場合、ホストは、ＩＰｖ４アドレスに接続する（かつＮＡＴとして動作することも可能な）ＡＦＴＲ（アドレスファミリトランスレータ）に、ＩＰｖ６トランスポートを用いて到達する。このアドレスファミリトランスレータは、独立したデバイスである場合もあるが、ネットワーク内に既に配備された（例えばルータなどの）ネットワークデバイス内で機能する場合もある。ＤＳ−ｌｉｔｅでカプセル化されたパケットがＡＦＴＲに到達すると、ＡＦＴＲは、必要なネットワークアドレス変換を行った後にカプセル化を解き、内部のパケットを転送する。
【０００４】
発明の概要
第１のネットワークデバイスを記載する。前記ネットワークデバイスが、トラフィック情報、検索エンジン向けの命令、マップマネージャ、トラフィックフォワーダおよびマップを記憶するように構成された有形のコンピュータ読取り可能な記憶媒体を備えていてもよい。前記ネットワークデバイスが、前記記憶媒体中に情報を記憶し、前記検索エンジン中に記憶された命令を実行するように構成されたプロセッサを更に備えていてもよい。第１のアドレス入力が、第１のアドレスの第１のデバイスからの下りトラフィックを受け取るように構成されていてもよい。前記下りトラフィックが、データパケットおよび第２のデバイス用の第２のアドレスを備えていてもよい。
【０００５】
前記マップマネージャが、前記記憶媒体中に記憶されるマップを生成するように構成されていてもよい。前記マップが、前記第１のアドレスと前記第２のアドレスとを関連付けるルールを備えていてもよい。前記トラフィックフォワーダが、前記下りトラフィックを前記第２のデバイスに転送するように構成されていてもよい。前記第２のアドレス入力が、前記第２のデバイスから前記第１のデバイスへのリターントラフィックを受け取るように構成されていてもよい。
【０００６】
前記検索エンジンが、前記プロセッサに、前記マップを検査して、前記第２のデバイスの前記第２のアドレスと前記第１のデバイスの前記第１のアドレスとを関連付けるルールを前記マップが備えているか否かを判定させる命令を備えていてもよい。前記マップがこの関連付けを備えている場合には、前記エンジン中の前記命令が、前記プロセッサに、前記リターントラフィックを前記第２のデバイスから前記第１のデバイスへと転送させてもよい。前記マップがこの関連付けを含んでいない場合には、前記命令が、前記プロセッサに、クエリを第２のネットワークデバイスに送信させてもよい。前記クエリが、前記第２のネットワークデバイスに対して、前記第２のアドレスと前記第１のアドレスとの関連付けを有するルールを前記第２のネットワークデバイスが備えているか否かを問い合わせてもよい。
【０００７】
前記ネットワークデバイスが、前記クエリに対する応答を第２のネットワークデバイスから受け取るように構成されたネットワークデバイス入力を備えていてもよい。前記ネットワークデバイスが、前記クエリからの応答に基づいて前記マップを更新するように構成されたマップアップデータを更に備えていてもよい。
【図面の簡単な説明】
【０００８】
【図１Ａ】図１Ａは、ネットワークデバイスのコンポーネントの一例を示す図である。
【図１Ｂ】図１Ｂは、ネットワークデバイスのコンポーネントの一例を示す図である。
【図２】図２は、ネットワークデバイス中のデータのプロセスフローの一例である。
【図３】図３は、ネットワークの一例を示す図である。
【図４】図４は、２つのネットワークデバイスを有するネットワークの一例を示す図である。
【図５】図５は、マスタコントローラを有するネットワークの一例を示す図である。
【図６】図６は、２つのネットワークデバイスを有するネットワークの一例を示す図である。
【０００９】
発明の詳細な説明
ＩＰｖ４アドレスの第１のデバイスからＩＰｖ６アドレスの第２のデバイスへとパケットを転送し、前記第２のデバイスから前記ＩＰｖ４デバイスにパケットを返送する際に、返送経路が必ずしも（例えばルータ、スイッチ、ロードバランサなどの）同じネットワークデバイスを通過しなくてもよいネットワークを提供する。換言すれば、双方向ＩＰｖ４−ＩＰｖ６通信を行い、ＩＰｖ４からＩＰｖ６への経路がＩＰｖ６からＩＰｖ４への経路と異なっていてもよいネットワークを記載する。
【００１０】
トラフィック要素を送出している複数のネットワーク（下りトラフィックのソース）が、パケットの宛先であるアドレスを保持しているネットワークへの最短経路を自ら計算する。これらの計算が相互に独立しているので、第１のパケットのソースがある経路を最適（最短）であると判断する一方で、返送パケットの送出ネットワーク（ソースと宛先とが逆になっている）が、別の経路を最短であると判断する場合がある。このことは、２つのネットワークが複数箇所で接続されている場合に、一方のネットワークが相互接続点１へと向かい、他方のネットワークが相互接続点２へと向かう場合があることから、頻繁に起こる。相互接続点は、２つのネットワークが接続してルート／トラフィックを交換する箇所である。施設によって提供される相互接続点もあるが、接続点がプライベートな双方向の相互接続点である場合もある。ＩＰｖ４アドレスとＩＰｖ６アドレスとの間には相関関係がないので、ＩＰｖ６からＩＰｖ４への経路内のネットワークデバイスがＩＰｖ６アドレスとＩＰｖ４アドレスとのマッピングデータを有していない（または少なくともこれを得る手段を有していない）場合には、そのネットワークデバイスは、返送パケットをＩＰｖ６デバイスからＩＰｖ４デバイスに届けることができない。
【００１１】
例示的な一構成においては、ネットワークがＮ個のネットワークデバイス、Ｍ個のスイッチおよびＸ個のデバイスを有する。前記ネットワークは、第１のデバイスから少なくとも１つのネットワークデバイスおよび１つのスイッチを経由して第２のデバイスに至る双方向経路を提供する。幾つかの構成においては、前記第１のデバイスがＩＰｖ６アドレスを有し、前記第２のデバイスがＩＰｖ４アドレスを有する。前記ネットワークデバイスが、前記第１および第２のデバイスのアドレスを関連付けるルールを記録するように構成されていてもよい。前記ネットワークデバイスが、このルールを用いて、上りトラフィックを前記第２のデバイスから前記第１のデバイスに転送することが可能であってもよい。前記上りトラフィック用の経路（即ち返送）が、下りトラフィックが通過したのと同じネットワークデバイスを通過してもよいし、通過しなくてもよい。幾つかの構成においては、前記上りトラフィック用に選択されたネットワークデバイスが、他のネットワークデバイスに対するクエリを生成して、これらのネットワークデバイスが前記第１および第２のデバイスのアドレスを関連付けるルールを備えているか否かを問い合わせるクエリ生成器を備えている。
【００１２】
そのようなクエリを生成し送信するようにネットワークデバイスを構成する多くの方法がある。例えば、ネットワークデバイスが、各ネットワークデバイスに対して、必要なルールを取得するまで、またはいずれのネットワークデバイスからも前記ルールを入手できないと判断するまで、順次問合せを行ってもよい。別の構成では、第１のネットワークデバイスが第２のネットワークデバイスに対して、特定のルールを有するマップを備えているか否かを問い合わせるリング型トポロジを使用する。第２のネットワークデバイスがこのルールを備えていない場合には、第２のネットワークデバイスが第３のネットワークデバイスに前記要求を送信してもよい。第３のネットワークデバイスがこのルールを備えていない場合には、第３のネットワークデバイスがこのルールのコピーを第１のネットワークデバイスに送信するように構成されていてもよい。
【００１３】
全てのルールを有するマップを備えたマスタコントローラを使用してもよい。この場合、各ネットワークデバイスが、自身が記憶する全ての新たなルールのコピーを送信するので、各ネットワークデバイスは、ネットワークデバイスにローカルに記憶されていないルールのコピーの取得について、マスタコントローラに確認するだけでよい。これらのおよびその他の構成を、以下に図面を参照しながら記載する。
【００１４】
幾つかの構成においては、オープンフロースイッチング仕様を使用して、ネットワークデバイスが相互におよび／またはマスタコントローラと通信を行うことの可能なプロトコルを提供してもよい。オープンフローは、分割制御プレーンおよびデータプレーンを使用する通信プロトコルである。即ち、オープンフローを実装しているネットワークは、「このパケットの特性が要素Ｘと一致する場合は、関数Ｙを実行すること」などのようなルールを含む一連のテーブルを有してもよい。
【００１５】
図１Ａは、ネットワークデバイス１０のコンポーネントを図示したものである。図１Ａに図示されたコンポーネントは、マップマネージャ１０５、マップアップデータ１０５、検索エンジン１１０、第１のアドレス入力１２０、トラフィックフォワーダ１３０、第２のアドレス入力、ネットワークデバイス（Ｎ．Ｄ．）入力１５０、クエリ生成器１５５およびカプセル化解除装置１７０である。図１Ｂを参照すると、これらのコンポーネントが特定のコンピュータ化された命令の形をとってもよく、また有形のコンピュータ読取り可能な媒体２０に記憶されていてもよい。プロセッサ３０が、これらのコンポーネントを実行して、以下に記載の複数の異なる機能を実施するように構成されていてもよい。これらのコンポーネントが、これらの機能を実施するための専用の回路装置の形をとってもよい。
【００１６】
図２は、第１のネットワークデバイス１０Ａを図示したものである。この実施例では、第１のネットワークデバイス１０Ａの枠内に示す枠および矢印は、第１のネットワークデバイスによって実行されるコンポーネントおよび処理であり、第１のネットワークデバイス１０Ａの枠外に示す枠および矢印は、第１のネットワークデバイス１０Ａによって実行されない。第１のデバイス１００がネットワークに接続されていてもよい。第１のデバイス１００は、第１のネットワークアドレス１０５を有する。前記第１のネットワークアドレスが、ＩＰｖ４アドレスであってもよい。前記第１のデバイスが、第２のアドレス２０５を有する第２のデバイスにデータパケットを送信するようにプログラムされていてもよい。前記第２のアドレスが、ＩＰｖ６アドレスであってもよい。図示されるように、第１のデバイス１００が、第１のＮ．Ｄ．（ネットワークデバイス）によって第１のアドレス入力１２０で受け取られるデータパケットを送信してもよい。
【００１７】
第１のネットワークデバイス１０Ａがマップマネージャ１０５を実行して、マップ１０７を生成または更新してもよい。マップ１０７が、２つまたはそれ以上のアドレスの関連付けを含むルールを有してもよい。マップマネージャ１０５は、第１のデバイス１００からデータパケットを受け取ると、「パケットがアドレス２０５の第２のデバイス２００から受け取られた場合には、このパケットをアドレス１０５の第１のデバイスに転送する」というルールを生成してもよい。トラフィックフォワーダ１３０が、第１および第２のデバイス（および図示しない更なるデバイス）との間でデータパケットの送受信を行うように構成されていてもよい。どのアドレスを送信するかの命令を、マップ１０７から取得してもよい。
【００１８】
トラフィックフォワーダ１３０がパケットを第２のデバイス２００に転送する（１３１）と、第２のデバイスが前記データを処理してもよい。第２のデバイスが、データパケットを第１のデバイス（または図示しない第３のデバイス）に返送してもよい。第２のデバイスからの通信が、第２のデバイス入力１４０で受け取られてもよい。検索エンジン１１０が、マップ１０７中のルールと照合されるクエリを生成してもよい。この場合、前記クエリが、マップマネージャ１０５に対して、メッセージを第１のデバイス１００にどのように供給するのかについてのルールを前記マップが備えているか否かを判定するように要求してもよい。回答が、実装によってＹＥＳであってもＮＯであってもよい。回答がＹＥＳであった場合（１１１）は、マップマネージャが検索エンジンに対してパケットをトラフィックフォワーダ１３０に送信するように命令してもよい。マップマネージャが、トラフィックフォワーダ（または検索エンジン１１０）に第１のデバイス１００のアドレスを供給してもよい。幾つかの実施例においては、検索エンジンが、マップマネージャ１０５にアクセスせずにマップ１０７にアクセスしてもよい。メッセージを第１のデバイス１００にどのように供給するのかについてのルールを前記マップが備えていない場合（即ち、「ＮＯ」判定であった場合（１１２））には、第１のネットワークデバイス１０Ａがクエリ生成器１５５を用いてクエリを生成してもよい。クエリが１つまたは複数の別のネットワークデバイスに送信（１６０）されてもよい。
【００１９】
図２では、クエリが第２のネットワークデバイスに送信される。第１のネットワークデバイス１０Ａが、第２のネットワークデバイス１０Ｂから応答を受け取ってもよい（１６５）が、別の複数の実施例においては、応答が第３、第４、第５または第Ｎのネットワークデバイスから送信されてもよい。第２のネットワークデバイスからの応答が必要なルールを備えていてもよいが、第２のネットワークデバイス１０Ｂが要求されたルールを備えていないことを前記応答が示してもよい。前者が受け取られた場合には、マップアップデータ１０９がマップ１０７を前記新たなルールで更新してもよい。第１のネットワークデバイス１０Ａが、前記新たなルールを用いて、トラフィックフォワーダ１３０にデータパケットを第１のデバイス１００へと供給させてもよい。
【００２０】
ＩＰｖ６アドレスの第１のデバイスから送信されたＩＰｖ４データパケットをカプセル化してもよい。カプセル化が、ネットワーク内の関数を抽出によって基礎構造から論理上隔絶することを可能としてもよい。カプセル化された通信経路において、より高いレベルのオブジェクトを基礎構造に含めることにより、基礎構造から情報を隠蔽してもよい。図示された一例においては、ＩＰｖ６アドレスを有するデュアルスタックライトデバイスが、アドレスファミリ変換ルータを用いてＩＰｖ４アドレスの第２のデバイスにデータパケットを送信するように構成されている。前記デュアルスタックライトデバイスが、リターンデータを出力トラフィック中にカプセル化することにより、ＡＦＴＲが前記ＩＰｖ４デバイスからのトラフィックを前記デュアルスタックライトデバイスに返送することが可能であるように構成されていてもよい。ＡＦＴＲがこのリターンデータを用いてマッピングを構成することにより、ＡＦＴＲがＩＰｖ４デバイスから受け取る以後の通信を所望のＩＰｖ６デバイスにルーティングすることが可能であってもよい。リターンデータがＩＰｖ４アドレス領域内の “ｍａｉｌｂｏｘ”アドレスおよびデュアルスタックライトデバイス上の実際のＩＰｖ６アドレスを含んでもよい。前記ＩＰｖ４アドレスを指定されたパケットをどのＩＰｖ６デバイスが受け取るべきかをＡＦＴＲが判断できるように、ＡＦＴＲがこの“ｍａｉｌｂｏｘ”ＩＰｖ４アドレスおよびＩＰｖ６のマッピングを記憶媒体上に記憶してもよい。デュアルスタックライトデバイスからの下りトラフィックを受け取るＡＦＴＲがデュアルスタックライトデバイスへの上りトラフィックを受け取るＡＦＴＲとは異なっていてもよい状況を、デュアルスタックライトデバイスとＩＰｖ４デバイスとの間のネットワークインフラストラクチャが創出可能であることから、ＡＦＴＲがオープンフロープロトコルを実装してＡＦＴＲからＡＦＴＲへの通信を容易にしてもよい。例えばあるＡＦＴＲが上りトラフィックを受け取り、ＩＰｖ４デバイスによって指定されるＩＰｖ４アドレスに関連するＩＰｖ６アドレス用のマッピングを備えていない場合に、そのような通信を用いて、あるＡＦＴＲから第２のＡＦＴＲへのマッピング情報の転送を容易にしてもよい。
【００２１】
図示された構成の一例においては、データパケットが、データを物理的に送信するように構成された物理層を備えている。ＵＤＰ（ユーザデータグラムプロトコル、アプリケーションに出力ポートを選択する能力を付与するように設計されたプロトコル）、（ローカルエリアネットワーキングのための）リンクカプセル化および（個々のクライアントにグローバルアドレス情報を提供するための）インターネットプロトコルなどの更なるフィーチャを、カプセル化によって物理層に付加してもよい。
【００２２】
ＩＰｖ４アドレスのデバイスからＩＰｖ６アドレスのデバイスに送信されるデータパケットである下りトラフィックが、カプセル化されたデータを含んでもよい。ネットワークデバイスが、下りのカプセル化されたデータパケットのカプセル化を解除するためのカプセル化解除装置１７０を備えてもよい。例えば、第１のデバイスからのデータパケットが、カプセル化されたＩＰｖ４トラフィックを含んでもよく、また、カプセル化解除装置がＩＰｖ４トラフィックのカプセル化を解除するように構成されていてもよい。
【００２３】
図３に、実装の一例に基づくネットワーク３を図示する。ネットワーク３のこの構成では、６つのデバイス（１００、２００、３００、４００、５００および６００）、４つのネットワークデバイス（１０Ａ、１０Ｂ、１０Ｃおよび１０Ｄ）および３つのスイッチ（４０Ａ、４０Ｂ、４０Ｃ）がある。デバイス１００、３００および５００は第１のスイッチ４０Ａに接続されており、第４のデバイス４００および第２のデバイス２００はスイッチ４０Ｂを介して前記ネットワークに接続されており、第６のスイッチ６００はスイッチ４０Ｃのみを介して接続されている。
【００２４】
通信の一例においては、第１のデバイス１００が第２のデバイス２００に通信を送る。前記通信は第１のスイッチ４０Ａで受け取られ、ここでネットワークデバイス１０Ａ−１０Ｄのうちの１つに転送される。通信がネットワークデバイス１０Ｂを経由する場合には、ネットワークデバイス１０Ｂがルールを生成し、前記ルールをそのマップ内に記憶する。データのパケットが、第２のスイッチ４０Ｂに送信され、ここで第２のデバイス２００に転送されてもよい。
【００２５】
第２のデバイス２００が通信を第１のデバイス１００に返送する場合は、前記通信は第２のスイッチ４０Ｂを通過する。ここで、第２のスイッチ４０Ｂが情報をネットワークデバイス１０Ａまたは１０Ｂに送信してもよい。スイッチ４０Ｂが、どのネットワークデバイスが最初の通信を扱ったかを判定するように構成されていなくてもよい。どのネットワークデバイスが上りトラフィックを受け取るべきかを判断する際に、スイッチが（ロード、ネットワークデバイスとスイッチとの距離、時間データなどの）別の基準を用いてもよいし、基準を用いなくてもよい。第２のスイッチ４０Ｂが第１のネットワークデバイス１０Ａにパケットを送信する場合は、第１のネットワークデバイス１０Ａは、自身のマップを検査して、前記マップが第１のデバイスと第２のデバイスとのアドレスの関連付けについてのルールを備えていないと判定する。下りトラフィックが第２のネットワークデバイスを通過したので、第１のネットワークデバイスはこの関連付けについてのルールを備えていない。図３に示す構成によれば、ネットワークデバイス１０Ａは、第２のネットワークデバイスが必要なルールを備えているか否かを照会するクエリをネットワークデバイス１０Ｂに送信する。ネットワークデバイス１０Ｂを通過する通信経路にオープンフロー技術を用いてもよい。
【００２６】
図４に示すように、複数のネットワークデバイスがオープンフローコントローラ５０を用いて相互通信を行ってもよい。この図示された例においては、第１のデバイス（送信元）１００がインターネット６０を介して第２のデバイス２００（送信先）２００と通信を行うことが可能である。図示するように、（ＩＰｖ４アドレスに位置していてもよい）前記第１のデバイスから開始して（ＩＰｖ６アドレスに位置していてもよい）前記第２のデバイスに至る経路が、前記返送経路とは異なっていてもよい。送信先２００からのトラフィックが第２のネットワークデバイス１０Ｂに到達すると、第１のデバイス１００から第２のデバイス２００に至る経路が第１のネットワークデバイス１０Ａを通過しているので、第２のネットワークデバイス１０Ｂは前記第１のデバイスから前記第２のデバイス（またはその逆）へのマッピングを有しない。前記第２のネットワークデバイスがマッピング情報なしにトラフィックを第１のデバイス１００に転送することが不可能である場合がある。しかし、この実施例においては、前記第２のネットワークデバイスが、前記オープンフローコントローラ５０を介して前記第１のネットワークデバイスと通信を行うことが可能である。前記オープンフローコントローラが、前記第１のデバイスに対してマッピング情報を要求し、かつ／または第２のネットワークデバイス１０Ｂからトラフィックを転送してもよい。前者の構成では、オープンフローコントローラが（第１のデバイスと第２のデバイスとをマッピングする）マッピングデータを第１のネットワークデバイス１０Ａから受け取り、このマッピングデータを第２のネットワークデバイス１０Ｂに供給してもよい。第２のネットワークデバイス１０Ｂが、必要なマッピングを受け取るとトラフィックを前記第１のデバイスに返送するように構成されていてもよい。後者の構成では、第２のネットワークデバイスが、トラフィックを前記第２のデバイスから第１のネットワークデバイス１０Ａに転送する。第１のネットワークデバイスが、自身のマッピングテーブルを用いて、トラフィックを第１のデバイス１００へとルーティングするように構成されていてもよい。幾つかの実施例においては、オープンフローコントローラが、前記コントローラを通過する全てのマッピングテーブルのコピーを保持してもよい。第２のネットワークデバイスが、必要なルールを備えている。第２のネットワークデバイス１０Ｂが、オープンフローを用いて前記必要なルールを送信することにより、前記第１のネットワークデバイスが前記第１のデバイスのアドレスを調べることを可能にしてもよい。
【００２７】
図５は、マスタコントローラ２５０を備えたネットワーク３を図示したものである。図５では、各ネットワークデバイスが、ルールがセーブされる度に、これらのルールをマスタコントローラに送信するように構成されている。この結果、マスタコントローラ２５０は、前記ネットワークを介して情報を送信する全てのデバイスについてのルールを備えている。マスタコントローラ２５０が、ネットワークデバイスからのクエリを受け取ると、必要なルールで応答してもよい。前記ネットワークデバイスは、前記ルールを受け取ることで、特定のデバイスに通信を転送することが可能となる。マスタコントローラと複数のネットワークデバイスとの間の通信経路にオープンフローを用いてもよい。
【００２８】
構成の一例においては、（アドレスファミリ遷移ルータなどの）ネットワークデバイスをネットワークの各エッジ（即ち管理ドメインのエッジ；ネットワークボーダとしても知られている）に配置し、インターフェースを上流側のネットワークに面して設けてもよい。前記ネットワークデバイス（ＡＦＴＲ）が、独立したシステムであってもよいし、既存のピアリングルータ（ピアリングルータとは、ルーティング情報を別の自律システム内のルータとの間で交換するルータである；ルーティングデータとトラフィックとを交換する２つの自律システムはピアと呼ばれる）上でこの機能が有効となってもよい。前記ネットワークデバイスが、（例えばオープンフロー仕様に基づくマッチ−アクションテーブルを実装したネットワーク要素などの）オープンフロークライアントおよび（例えばオープンフロークライアントをプログラムするネットワーク内のデバイスなどの）オープンフローコントローラのコードを更に備えていてもよい。加えて、前記ネットワークデバイスが、（例えば組織のネットワーク境界などの）他の自律システム内のルータへのネットワーク接続を有し、ボーダーゲートウェイプロトコルなどの外部ゲートウェイプロトコルを用いて通信を行うことの可能なネットワークデバイスであるボーダルータであってもよい。
【００２９】
例えば、図６においては、ルーティングデバイス１０Ａが、ボーダルータ、ＡＦＴＲ（ＡＦＴＲ１）、オープンフロークライアント１およびオープンフローコントローラ２であってもよい。ＡＦＴＲまたはアドレスファミリトランスレータが、同じノード上に実装されたＩＰｖ４−ＩＰｖ６トンネル端点とＩＰｖ４−ＩＰｖ４ＮＡＴ（ネットワークアドレストランスレータ）との組み合わせである任意のデバイスであってもよい。ルーティングデバイス１０Ｂは、ボーダルータ、ＡＦＴＲ２でもある。ルーティングデバイス１０Ｂは、オープンフロークライアント２、オープンフローコントローラ１でもある。図６に、スイッチ１および２（スイッチ４０Ａおよび４０Ｂ）ならびに４つのＩＰｖ６クライアント（７００Ａ−７００Ｄ）およびＩＰｖ４インターネット８００も図示する。
【００３０】
ネットワーク１が、下りトラフィックを受け取ると、以下のプロセスを実行してもよい。パケットがＩＰｖ４インターネット８００から経路１または経路２を介してルーティングデバイスに送信されてもよい。前記パケットが経路１を通過する場合には、第１のＡＦＴＲデバイス（ＡＦＴＲ１）が、受信パケットの宛先フィールド内のＩＰｖ４アドレス／ポートのタプル間にマッピングが存在するか否かについて、ローカルマッピングキャッシュを検査してもよい。前記第１のＡＦＴＲデバイスが前記キャッシュ中にマッピングを発見した場合には、ＲＦＣ６３３３に規定されているように、そのキャッシュをリマップし、前記マップによって定められた宛先ＩＰｖ６（即ち、マッピングエントリを生成したトラフィックの送信元）に前記パケットを転送する。前記第１のＡＦＴＲデバイスがキャッシュミス（マッピングテーブル中にマッピングが見当たらないこと、即ちテーブルミスを意味する）を発見した場合には、前記パケットを自身に関連した識別子でマークする。ＡＦＴＲデバイスが、前記パケットを、前記デバイスの内部構成により、また前記パケット内のどのフィールドがこれ以外にはオープンフロー通信に使用されていないのかによって、様々にマークしてもよい。キャッシュミスの場合には、前記ＡＦＴＲがオープンフロー制御チャネルを介して前記パケットを第２のＡＦＴＲ（ＡＦＴＲ２）に転送してもよい。
【００３１】
ＡＦＴＲ２は、適切なマッピングを有する場合には、必要なマッピングを実行することによって前記パケットを最終的な宛先に転送する。ＡＦＴＲ２が、オープンフロー制御メッセージを用いて、前記マーキングで特定されたＡＦＴＲコントローラ内に前記マッピングをインストールしてもよい。前記オープンフロー制御メッセージは、マッピングテーブルエントリを挿入したものである。ＡＦＴＲ２が適切なマッピングを有しない場合には、前記パケットに自身のマーキングを追加して、オープンフローコントローラ（ＡＦＴＲ３）として設けられたＡＦＴＲに転送し、そこで前記プロセスを繰り返してもよい。
【００３２】
前記パケットが全ての利用可能なＡＦＴＲを訪れてもミスである（即ち各ルータがマッピングテーブルのチェック時にキャッシュミスに遭遇している）場合には、前記パケットはドロップされる（即ち、削除され、それ以上は転送されない）。幾つかの構成においては、そのキャッシュをチェックした最後のＡＦＴＲから前記パケットのソースに対して、前記パケットがドロップされたことが通知されてもよい。
【００３３】
幾つかの構成の例では２つのＡＦＴＲが設けられているが、ネットワークが２つよりも多いＡＦＴＲを備えていてもよい。２つよりも多いＡＦＴＲを備えたネットワークにおいて、これらのＡＦＴＲが、複数のオープンフロークライアントおよびオープンフローコントローラを通過する既知の閉じた経路（ここで「閉じた」とは、ローカルなトポロジにおいて全てのＡＦＴＲと接触することが知られているループフリーな経路を意味する）が存在するように構成されていてもよい。２つのＡＦＴＲを有する構成では、そのピア（オープンフローと通信を行う同クラスのデバイス）から送信されるパケットについては、ＡＦＴＲ１がＡＦＴＲ２のオープンフロークライアントとして機能するが、そのピアＡＦＴＲ３から送信されるＡＦＴＲ２パケットについては、ＡＦＴＲ１はオープンフローコントローラとして機能する。２つよりも多いルータを有する構成の場合は、仮想リングトポロジを用いてもよい。
【００３４】
本明細書に記載の主題および動作を、デジタル電子回路装置で実施してもよいし、本明細書中に開示する構成またはこれらの構成上の等価物を含む有形の媒体、ファームウェアまたはハードウェア上に具現化されたコンピュータソフトウェアあるいはこれらの１つまたは複数の組み合わせにおいて実施してもよい。本明細書に記載の主題を、データ処理装置によって実行されるかまたはその動作を制御するための、有形の媒体上に具現化された１つまたは複数のコンピュータプログラム、即ち１つまたは複数のコンピュータ記憶媒体上にコード化された１つまたは複数のコンピュータプログラム命令のモジュールとして実施してもよい。コンピュータ記憶媒体が、例えば、コンピュータ読取り可能な記憶装置、コンピュータ読取り可能な記憶担体、ランダムなまたはシリアルなアクセスメモリアレイまたは装置あるいはこれらの１つまたは複数の組み合わせであってもよいし、これらに含まれていてもよい。コンピュータ記憶媒体が、（例えば複数のＣＤ、ディスクまたはその他の記憶装置などの）１つまたは複数の個別の部品または媒体であってもよいし、これらに含まれていてもよい。コンピュータ記憶媒体が、有形かつ非一時的であってもよい。
【００３５】
本明細書中に記載の動作を、１つまたは複数のコンピュータ読取り可能な記憶装置上に記憶された、または別のソースから受け取られたデータに対してデータ処理装置によって実行される動作として実施してもよい。
【００３６】
「クライアント」または「サーバ」という用語は、例えばプログラム可能なプロセッサ、コンピュータ、チップ上のシステムあるいはこれらの複数または組み合わせを含む、あらゆる種類のデータ処理用の装置、デバイスおよび機械を包含する。前記装置が、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）などの特定用途向けの論理回路装置を含んでもよい。また、前記装置が、ハードウェアに加えて、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想機械あるいはこれらの１つまたは複数の組み合わせを構成するコードなどの、対象のコンピュータプログラムのための実行環境を生成する有形の媒体上に具現されたコードを含んでもよい。前記装置および実行環境が、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなどの様々に異なるコンピューティングモデルインフラストラクチャを実現してもよい。
【００３７】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スプリットまたはコードとしても知られる）が、コンパイルされたまたは解釈された言語、宣言型のまたは手続き型の言語を含むいかなる形のプログラミング言語として書き込まれてもよく、単体のプログラムあるいはモジュール、コンポーネント、サブルーチン、オブジェクトまたはその他のコンピューティング環境での使用に適したユニットを含めたいかなる形で展開されてもよい。コンピュータプログラムが、必ずしも必要ではないが、ファイルシステム内のファイルに対応していてもよい。プログラムを（マークアップ言語文書中に記憶された１つまたは複数のスクリプトなどの）他のプログラムまたはデータを保持しているファイルの一部の中、対象のプログラム専用の単一のファイル内または（１つまたは複数のモジュール、サブプログラムまたはコードの複数の部分を記憶したファイルなどの）複数のコーディネートされたファイル内に記憶してもよい。コンピュータプログラムを、１つのコンピュータあるいは１つのサイトに配置された、または通信ネットワークによって相互接続された複数のサイトにわたって分散された複数のコンピュータ上で実行されるように展開してもよい。
【００３８】
本明細書に記載のプロセスおよび論理フローを、１つまたは複数のコンピュータプログラムを実行する１つまたは複数のプログラム可能なプロセッサによって実行し、入力データを処理して出力を生成することにより、アクションを実行してもよい。例えばＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）などの特定用途向けの論理回路装置によって前記プロセスおよび論理フローを実行してもよく、また装置をそのような回路装置として具現してもよい。
【００３９】
コンピュータプログラムの実行に適したプロセッサには、例えば、汎用のおよび特定用途向けのマイクロプロセッサの双方ならびにあらゆる種類のデジタルコンピュータの１つまたは複数のプロセッサが含まれる。一般に、プロセッサは読み取り専用メモリまたはランダムアクセスメモリまたはこれらの双方から命令およびデータを受け取る。コンピュータの基本的な要素は、命令に従ってアクションを実行するためのプロセッサならびに命令およびデータを記憶するための１つまたは複数のメモリである。一般に、コンピュータは、例えば磁気、磁気光学ディスクまたは光学ディスクなどの、データを記憶するための１つまたは複数の大容量記憶装置も有するか、またはデータの受信または送信あるいはこれらの双方のために、そのような記憶装置に作用可能に連結されている。しかしながら、コンピュータが必ずしもそのような装置を有する必要はない。さらに、コンピュータが、ごく一部の例を挙げれば移動電話、個人向けデジタル支援装置（ＰＤＡ）、移動音声またはビデオ再生装置、ゲームコンソール、グローバルポジショニングシステム（ＧＰＳ）受信装置または（例えば汎用シリアルバス（ＵＳＢ）フラッシュドライブなどの）携帯型記憶装置などの別の装置内に組み込まれていてもよい。コンピュータプログラム命令およびデータの記憶に適した装置には、例えばＥＰＲＯＭ、ＥＥＰＲＯＭおよびフラッシュメモリデバイスなどの半導体メモリ装置；例えば内部ハードディスクまたはリムーバブルディスクなどの磁気ディスク；磁気光学ディスクならびにＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクを含むあらゆる形態の不揮発性メモリ、媒体およびメモリ装置が含まれる。前記プロセッサおよび前記メモリを、特定用途向け論理回路装置によって補助するか、またはその中に組み込んでもよい。
【００４０】
ユーザとの相互作用を図るために、本明細書に記載の主題を、例えばＣＲＴ（カソードレイチューブ）、ＬＣＤ（液晶ディスプレイ）、ＯＬＥＤ（有機発行ダイオード）、ＴＦＴ（薄膜トランジスタ）、プラズマ、その他のフレキシブルな構成、またはユーザに情報を表示するためのその他の任意のモニタなどの表示装置および、ユーザがコンピュータに入力を行うためのキーボード、例えばマウス、トラックボールなどのポインティング装置またはタッチスクリーン、タッチパッドなどを有するコンピュータ上で実施してもよい。その他の種類の装置を用いて、ユーザとの相互作用を図ってもよい。例えば、ユーザへのフィードバックが、例えば視覚的フィードバック、聴覚的フィードバックまたは触覚フィードバックなどのいかなる形の感覚的フィードバックであってもよい。また、ユーザからの入力が、音響入力、音声入力または触覚入力を含むいかなる形であってもよい。加えて、コンピュータが、例えばユーザのクライアント装置上のウェブブラウザに、前記ウェブブラウザから受信した要求に応答してウェブページを送信するなど、ユーザによって使用される装置との間で文書を送受信することにより、ユーザと相互作用してもよい。
【００４１】
本明細書に記載の主題を、例えばデータサーバとしてとしてのバックエンドコンポーネント、アプリケーションサーバなどのミドルウェアコンポーネント、またはグラフィカルなユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータなどの、ユーザがこれを介して本明細書に記載の主題を具現化したものとの相互作用を図ることの可能なフロントエンドコンポーネントあるいはそのようなバックエンドコンポーネント、ミドルウェアコンポーネントまたはフロントエンドコンポーネントの１つまたは複数の組み合わせを有するコンピューティングシステムにおいて実施してもよい。前記システムの複数のコンポーネントを、例えば通信ネットワークなどのいかなる形または媒体のデジタルデータ通信によって相互接続してもよい。通信ネットワークの例には、ローカルエリアネットワーク（「ＬＡＮ」）および広域ネットワーク（「ＷＡＮ」）、（例えばインターネットなどの）ネットワーク間通信および（例えばアドホックピアツーピアネットワークなどの）ピアツーピアネットワークが含まれる。
【００４２】
本明細書中に記載の特徴を、（例えばケーブル、衛星、無線通信またはその他の信号を介して受信される）より従来的なテレビジョンプログラミングソースとのインターネット接続性を組み込むように構成された処理回路を有してもよいスマートテレビジョンモジュール（または接続型テレビジョンモジュール、ハイブリッドテレビジョンモジュールなど）上で実施してもよい。スマートテレビジョンモジュールが、テレビジョンセットに物理的に組み込まれていてもよいし、セットトップボックス、ブルーレイまたはその他のデジタルメディアプレイヤー、ゲームコンソール、ホテルのテレビジョンシステムおよびその他のコンパニオン装置などの別個の装置を含んでもよい。スマートテレビジョンモジュールが、ウェブ上の、ローカルケーブルＴＶチャネル上の、衛星ＴＶチャネル上のまたはローカルハードディスクドライブに記憶されたビデオ、映画、写真およびその他のコンテントを視聴者が検索することを可能にするように構成されていてもよい。セットトップボックス（ＳＴＢ）またはセットトップユニット（ＳＴＵ）が、チューナーを有し、テレビジョンセットおよび外部信号ソースに接続して、前記信号をコンテントに合わせると、前記コンテントがテレビジョンのスクリーンまたはその他の表示装置上に表示されることの可能な情報機器装置を有してもよい。スマートテレビジョンモジュールが、ホームスクリーンまたは最上位スクリーンに、ウェブブラウザなどの複数の異なるアプリケーションおよび複数のストリーミングメディアサービス、接続型ケーブルまたは衛星メディアソース、その他のウェブ「チャンネル」などのアイコンを表示するように構成されていてもよい。スマートテレビジョンモジュールが、ユーザに電子プログラミングガイドを提供するようにさらに構成されていてもよい。スマートテレビジョンモジュールのコンパニオン機器が、モバイルコンピューティングデバイス上で動作して、利用可能なプログラムについての情報をユーザに提供し、前記ユーザが前記スマートテレビジョンモジュールを操作することを可能にしてもよい。別の複数の実施例においては、前記特徴を、ラップトップコンピュータまたはその他のパーソナルコンピュータ、スマートフォン、その他の移動電話、ハンドヘルド型コンピュータ、タブレットＰＣまたはその他のコンピューティングデバイス上で実施してもよい。
【００４３】
本明細書には数多くの特定の実施態様の詳細が含まれるが、これらをいかなる発明の範囲または請求の範囲も限定するものとして解釈すべきではなく、特定の発明の特定の実施態様に固有の特徴を記載したものとして解釈すべきである。本明細書において別個の複数の実施態様について記載する幾つかの特徴を組み合わせて、単一の実施態様として実施してもよい。逆に、単一の実施態様について記載する様々な特徴を、別個にまたは任意の好適な部分的組み合わせとして実施してもよい。さらに、複数の特徴を、上述のように幾つかの組み合わせで動作するものとして記載し、またそのようなものとして請求の範囲に記載するが、幾つかの場合においては、請求の範囲に記載した組み合わせから１つまたは複数の特徴を除外し、請求の範囲に記載した組み合わせを、部分的組み合わせまたは部分的組み合わせを変化させたものとしてもよい。
【００４４】
同様に、複数の動作を特定の順序で図面に図示したが、これらの動作を前記図示した特定の順序でまたは順番に実行することあるいは図示した動作を全て実行することが、所望の結果を得るために要求されているものとして理解されるべきではない。幾つかの場合においては、マルチタスキングおよび並列処理が有利であろう。さらに、上述の実施態様におけるように様々なシステムコンポーネントが別個となっていることが、全ての実施態様において要求されていると理解されるべきではなく、また上述の複数のプログラムコンポーネントおよびシステムは通常、単一のソフトウェア製品内に一体に組み込むことも、複数のソフトウェア製品内にパッケージングすることも可能である。
【００４５】
上述のように、本発明の主題の特定の実施態様を記載してきたが、その他の複数の実施態様も以下の請求の範囲に含まれる。幾つかの場合においては、請求の範囲に記載する動作を異なる順序で実行しても所望の結果が得られてもよい。加えて、添付の図面に記載するプロセスは、所望の結果を得るために必ずしも図示する特定の順序を要するものではない。幾つかの実施態様においては、マルチタスキングまたは並列処理を利用してもよい。
【図１Ａ】
0006283676.tif 000002
【図１Ｂ】
0006283676.tif 000003
【図２】
0006283676.tif 000004
【図３】
0006283676.tif 000005
【図４】
0006283676.tif 000006
【図５】
0006283676.tif 000007
【図６】
0006283676.tif 000008