(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6283676
(24)【登録日】2018年2月2日
(45)【発行日】2018年2月21日
(54)【発明の名称】ネットワークデバイス
(51)【国際特許分類】
H04L 12/749 20130101AFI20180208BHJP
【FI】
H04L12/749
【請求項の数】22
【全頁数】19
(21)【出願番号】特願2015-533105(P2015-533105)
(86)(22)【出願日】2013年9月10日
(65)【公表番号】特表2015-533050(P2015-533050A)
(43)【公表日】2015年11月16日
(86)【国際出願番号】US2013059018
(87)【国際公開番号】WO2014051995
(87)【国際公開日】20140403
【審査請求日】2016年9月12日
(31)【優先権主張番号】13/626,719
(32)【優先日】2012年9月25日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】ハーディー, エドワード トーマス リンガム
【審査官】
宮島 郁美
(56)【参考文献】
【文献】
特開2006−148902(JP,A)
【文献】
特開2007−166532(JP,A)
【文献】
特開2011−061541(JP,A)
【文献】
国際公開第2011/052082(WO,A1)
【文献】
米国特許出願公開第2003/0185236(US,A1)
【文献】
松山 直道 TADAMICHI MATSUYAMA,IPv6の未来を見つめよう IPv6の行方,月刊アスキードットテクノロジーズ 第16巻 第1号 ASCII.technologies,日本,株式会社アスキー・メディアワークス,2010年11月24日,第16巻
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00−12/26,12/50−12/955
(57)【特許請求の範囲】
【請求項1】
第1のネットワークデバイスであって:
トラフィック、検索エンジン向けの命令、マップマネージャ、トラフィックフォワーダおよびマップを記憶するように構成された、有形のコンピュータ読取り可能な記憶媒体を備え;
前記記憶媒体にデータを記憶し;
前記検索エンジン向けの命令を実行する;
ように構成されたプロセッサを備え;
下りトラフィックを第1のアドレスの第1のデバイスから受け取るように構成された第1のアドレス入力であって、前記トラフィックが、データパケットおよび第2のデバイスの第2のアドレスを備えた、第1のアドレス入力を備え;
前記マップマネージャが、前記記憶媒体中に記憶された前記マップを生成するように構成されており、前記マップが、前記第1のアドレスと前記第2のアドレスとを関連付けるルールを備えており;
前記トラフィックフォワーダが、前記下りトラフィックを前記第2のデバイスに転送するように構成されており;
前記第2のデバイスから前記第1のデバイス宛てのリターントラフィックを受け取るように構成された、第2のアドレス入力を備え;
前記プロセッサによって実行可能な前記検索エンジンが、前記プロセッサに、前記マップを検査し、前記マップが前記第2のデバイスの前記第2のアドレスと前記第1のデバイスの前記第1のアドレスとを関連付けるルールを備えているか否かを判定させる命令を備え、
前記マップがこの関連付けを備えている場合には、前記エンジン中の命令が、前記プロセッサに、前記リターントラフィックを前記第2のデバイスから前記第1のデバイスへと転送させ、
そうでない場合には、前記命令が、前記プロセッサに、クエリを第2のネットワークデバイスへと送信させ、前記クエリが、前記第2のネットワークデバイスが前記第2のアドレスと前記第1のアドレスとを関連させるルールを備えているか否かを問い合わせ;
前記クエリに対する応答を受け取るように構成されたネットワークデバイス入力を備え;
前記クエリに対する前記応答に基づいて前記マップを更新するように構成された、マップアップデータを備えた;
第1のネットワークデバイス。
【請求項2】
前記第1のアドレスがIPv6アドレスであり、前記第2のアドレスがIPv4アドレスである、請求項1に記載のネットワークデバイス。
【請求項3】
前記第1のアドレスがIPv4アドレスであり、前記第2のアドレスがIPv6アドレスである、請求項1に記載のネットワークデバイス。
【請求項4】
前記第1のデバイスからのトラフィックが、カプセル化されたIPv4トラフィックを備えた、請求項1に記載のネットワークデバイス。
【請求項5】
IPv4トラフィックをカプセル化したIPv6データパケットについて、カプセル化を解除するように構成されたカプセル化解除装置を備えた、請求項4に記載のネットワークデバイス。
【請求項6】
N個のネットワークデバイスからなるシステムであって、前記システムが第1および第2のネットワークデバイスを備え、前記第1のネットワークデバイスが:
トラフィック、検索エンジン向けの命令、マップマネージャ、トラフィックフォワーダおよびマップを記憶するように構成された、有形のコンピュータ読取り可能な記憶媒体と;
前記記憶媒体にデータを記憶し;
検索エンジンに記憶された命令を実行する;
ように構成されたプロセッサと;
第1のアドレスの第1のデバイスから下りトラフィックを受け取るように構成された第1のアドレス入力であって、前記トラフィックが、データおよび第2のアドレスの第2のデバイスを備えた、第1のアドレス入力と;
前記記憶媒体に記憶されたマップであって、前記第1のアドレスと前記第2のアドレスとの関連付けを備えたマップと;
前記下りトラフィックを前記第2のデバイスに転送するように構成された、トラフィックフォワーダと;
前記第2のデバイスから前記第1のデバイス宛てのリターントラフィックを受け取るように構成された、第2のアドレス入力と;
前記プロセッサによって実行可能な検索エンジンであって、前記プロセッサに、前記マップを検査して、前記マップが前記第2のデバイスの前記第2のアドレスと前記第1のデバイスの前記第1のアドレスとの関連付けを備えているか否かを判定させ、前記マップがこの関連付けを備えている場合には、前記エンジン中の前記命令が、前記プロセッサに、前記リターントラフィックを前記第2のデバイスから前記第1のデバイスへと転送させ、そうでない場合には、前記命令が、前記プロセッサに、クエリを前記第2のネットワークデバイスに送信させ、前記クエリが、前記第2のネットワークデバイスに対して、前記第2のネットワークデバイスが前記第2のアドレスと前記第1のアドレスとを関連付けるルールを備えているか否かを問い合わせる、検索エンジンと;
前記クエリに対する回答を受け取るように構成されたネットワークデバイス入力と;
前記クエリからの前記応答に基づいて前記マップを更新するように構成された、マップアップデータと;
を備え、Nが2以上の整数である、システム。
【請求項7】
前記第2のネットワークデバイスが、前記第1のアドレスと前記第2のアドレスとの関連付けを備えた応答を前記第1のネットワークデバイスに転送するように構成された、請求項6に記載のシステム。
【請求項8】
前記第2のネットワークデバイスが:
前記第2のネットワークデバイスが前記第1のアドレスと前記第2のアドレスとの関連付けを備えたマップを備えているか否かを判定し;
前記第2のネットワークデバイスが前記関連付けを備えている場合には、前記第2のネットワークデバイスが、前記第1のアドレスと前記第2のアドレスとの関連付けを備えた応答を前記第1のネットワークデバイスに転送し;
そうでない場合には、前記第2のネットワークデバイスが、前記クエリを第3のネットワークデバイスへと転送する;
請求項6に記載のシステム。
【請求項9】
前記第1のネットワークデバイスが、前記応答に含まれるデータを用いて、前記第1のアドレスと前記第2のアドレスとの関連付けを記憶するように構成されている、請求項7に記載のシステム。
【請求項10】
前記第1のネットワークデバイスが、前記トラフィックを前記第2のデバイスから前記第1のデバイスに接続されたスイッチに転送する、請求項7に記載のシステム。
【請求項11】
前記第2のネットワークデバイスが、前記トラフィックを前記第2のデバイスから前記第1のデバイスに接続されたスイッチに転送する、請求項7に記載のシステム。
【請求項12】
前記第1のネットワークデバイスが、前記トラフィックを前記第2のデバイスから前記第1のデバイスに転送する、請求項7に記載のシステム。
【請求項13】
前記第2のネットワークデバイスが、前記トラフィックを前記第2のデバイスから前記第1のデバイスに転送する、請求項7に記載のシステム。
【請求項14】
第3のネットワークデバイスであって、
前記第1のアドレスと前記第2のアドレスとを関連付けるルールを備えたマップを前記第3のネットワークデバイスが備えているか否かを判定し;
前記第3のネットワークデバイスが前記ルールを備えている場合には、前記第1および第2のアドレスの前記ルールを含む応答を前記第1のネットワークデバイスに転送し;
そうでない場合には、前記クエリを第Nのネットワークデバイスに転送する;
ように構成された第3のネットワークデバイスをさらに備えた、請求項8に記載のシステム。
【請求項15】
前記第Nのネットワークデバイスが:
前記第1のアドレスと前記第2のアドレスとの関連付けを備えたマップを前記第Nのネットワークデバイスが備えているか否かを判定し;
前記第Nのネットワークデバイスが前記関連付けを備えている場合には、前記第1のアドレスと前記第2のアドレスとの関連付けを含む応答を前記第1のネットワークデバイスに転送し;
そうでない場合には、前記クエリを前記第Nのネットワークデバイスに返信する;
ように構成された、請求項14に記載のシステム。
【請求項16】
前記第1のネットワークデバイスが:
前記クエリのコピーを前記第Nのネットワークデバイスから受け取り;
前記システム内のいずれのネットワークデバイスも前記第1のアドレスと前記第2のアドレスとの関連付けを備えていないと判定し;
前記トラフィックを前記第1のデバイスに転送できないことを前記第2のデバイスに通知し;
前記トラフィックをドロップする;
ように構成された、請求項15に記載のシステム。
【請求項17】
前記第Nのネットワークデバイスが:
前記第1のアドレスと前記第2のアドレスとを関連付けるルールを備えたマップを前記第Nのネットワークデバイスが備えているか否かを判定し;
前記第Nのネットワークデバイスが前記ルールを備えている場合には、前記第1のアドレスと前記第2のアドレスとを関連付けるルールを備えた応答を前記第1のネットワークデバイスに転送し;
そうでない場合には、前記N個のネットワークデバイスからなるシステムが前記第1のアドレスと前記第2のアドレスとを関連付けるルールを備えていないことを示すメッセージを、前記第1のネットワークデバイスに送信する;
ように構成された、請求項14に記載のシステム。
【請求項18】
少なくとも第1および第2のネットワークデバイスを備えたN個のネットワークデバイスからなるネットワークであって、前記第1のネットワークデバイスが:
トラフィック、検索エンジン向けの命令、マップマネージャ、トラフィックフォワーダおよびマップを記憶するように構成された、有形のコンピュータ読取り可能な記憶媒体と;
データを前記記憶媒体に記憶し;
検索エンジンに記憶された命令を実行する;
ように構成されたプロセッサと;
第1のアドレスの第1のデバイスから下りトラフィックを受信するように構成された第1のアドレス入力であって、前記トラフィックが、データおよび第2のアドレスの第2のデバイスを備えた、第1のアドレス入力と;
前記記憶媒体に記憶されたマップであって、前記第1のアドレスと前記第2のアドレスとを関連付けるルールを備えたマップと;
前記下りトラフィックを前記第2のデバイスに転送するように構成された、トラフィックフォワーダと;
前記第2のデバイスから前記第1のデバイス宛てのリターントラフィックを受け取るように構成された、第2のアドレス入力と;
前記プロセッサによって実行可能な検索エンジンであって、前記プロセッサに、前記マップを検査し、前記マップが前記第2のデバイスの前記第2のアドレスと前記第1のデバイスの前記第1のアドレスとの関連付けを備えているか否かを判定させ;
前記マップがこの関連付けを備えている場合には、前記エンジン中の前記命令が、前記プロセッサに、前記リターントラフィックを前記第2のデバイスから前記第1のデバイスへと転送させ;
そうでない場合には、前記プロセッサにクエリをマスタコントローラへと送信させ、前記クエリが、前記マスタコントローラに対して、前記マスタコントローラが前記第2のアドレスと前記第1のアドレスとを関連付けを有するルールを備えているか否かを問い合わせる;
ように構成された、検索エンジンと;
前記クエリに対する応答を受信するように構成された、ネットワークデバイス入力と;
前記クエリに対する前記応答に基づいて前記マップを更新するように構成された、マップアップデータと;
を備え、Nが2以上である、ネットワーク。
【請求項19】
前記システム内の全てのその他のネットワークデバイスが、デバイスマッピングデータを前記マスタコントローラに送信するように構成されていることにより、前記ネットワーク内で通信を行う全てのデバイスについてのマッピングを前記マスタコントローラが備えた、請求項18に記載のネットワーク。
【請求項20】
前記マスタコントローラが:
前記第1のアドレスと前記第2のアドレスとの関連付けを備えたルールを前記マスタコントローラが備えているか否かを判定し;
前記マスタコントローラが前記関連付けを備えている場合には、前記第1のアドレスと前記第2のアドレスとの関連付けを含む応答を前記第1のネットワークデバイスに転送し;
そうでない場合には、前記マスタコントローラが前記第1のアドレスと前記第2のアドレスとのマッピングを備えていないことを示す応答を前記第1のネットワークデバイスに送信する;
ように構成された、請求項18に記載のネットワーク。
【請求項21】
前記第1のネットワークデバイスが、オープンフローおよびアドレスファミリトランスレータルーティングを実装する、請求項18に記載のネットワーク。
【請求項22】
N個のネットワークデバイスからなるネットワークと通信を行う第1のネットワークデバイスであって:
IPv6アドレスの第1のデバイスからIPv4トラフィックをカプセル化したIPv6データパケットを受け取るように構成されたIPv6入力であって、前記トラフィックがIPv4アドレスの第2のデバイス宛てである、IPv6入力と;
前記IPv6アドレスと前記IPv4アドレスとを関連付けるルールを備えたマップを生成するように構成された、マップジェネレータと;
前記IPv4トラフィックをカプセル化したIPv6データパケットについて、カプセル化を解除するように構成された、カプセル化解除装置と;
カプセル化を解除されたIPv4トラフィックを転送するように構成された、IPv4トラフィックフォワーダと;
前記IPv4デバイスから前記IPv6デバイス宛てのトラフィックを受け取るように構成された、IPv4入力と;
前記マップを検査し、前記第2のデバイスの前記IPv4アドレスと前記第1のデバイスの前記IPv6アドレスとの関連付けを前記マップが備えているか否かを判定するように構成された検索エンジンであって、
前記IPv4アドレスと前記IPv6アドレスとを関連付けるルールを前記マップが備えていないと前記検索エンジンが判定した場合には、前記検索エンジンがクエリを前記第2のネットワークデバイスに送信し、そうでない場合には、前記第1のネットワークデバイスが前記トラフィックを転送し;
前記第2のネットワークデバイスが前記IPv4アドレスと前記IPv6アドレスとを関連付けるルールを備えている場合には、前記第2のネットワークデバイスが前記ルールを前記第1のネットワークデバイスに転送し、前記第1のネットワークデバイスが前記ルールを記憶し、前記第1のネットワークデバイスが、前記IPv6アドレスに位置する前記第1のデバイスに前記トラフィックを転送し、そうでない場合には、前記第2のネットワークデバイスが前記クエリを第3のネットワークデバイスに転送し;
前記IPv4アドレスと前記IPv6アドレスとを関連付けるルールを前記第3のネットワークデバイスが備えている場合には、前記第3のネットワークデバイスが前記ルールを前記第1のネットワークデバイスに転送し、前記第1のネットワークデバイスが前記関連付けをメモリに記憶し、前記第1のネットワークデバイスが前記トラフィックを前記IPv6アドレスに配置された前記第1のデバイスに転送し、そうでない場合には、前記第3のネットワークデバイスが前記クエリを第Nのネットワークデバイスに転送し;
前記IPv4アドレスと前記IPv6アドレスとを関連付けるルールを前記第Nのネットワークデバイスが備えている場合には、前記第Nのネットワークデバイスが前記ルールを前記第1のネットワークデバイスに転送し、前記第1のネットワークデバイスが前記ルールをメモリに記憶し、前記第1のネットワークデバイスが前記トラフィックを前記IPv6アドレスに配置された前記第1のデバイスに転送し、そうでない場合には、前記第Nのネットワークデバイスが前記クエリを前記第1のネットワークデバイスに返送し; 前記第1のネットワークデバイスが前記クエリを前記第Nのネットワークデバイスから受け取った場合には、前記第1のネットワークデバイスが前記トラフィックをドロップして、前記トラフィックをドロップしたことを前記第2のデバイスに通知し、そうでない場合には、前記第1のネットワークデバイスが前記トラフィックを前記第2のデバイスから前記第1のデバイスに転送する;
検索エンジンと;
を備えた第1のネットワークデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本発明は、2012年9月25日に出願され、その開示全体があらゆる目的で本願中に引用をもって援用される「ネットワークデバイス」と題する米国特許出願第13/626,719号の優先権を主張する。
【背景技術】
【0002】
発明の背景
インターネットプロトコルの現在のバージョンであるIPv4(インターネットプロトコルバージョン4)では、新たなアドレスを分配するためのアドレス領域が枯渇しつつある。アドレス領域のより大きい新バージョンであるIPv6が既に開発されており、普及し始めている。IPv4とIPv6とを共用するこの時期における分配方法の一つに、IPv4およびIPv6双方のアドレスを有するノードを用いた技術である「デュアルスタック」方式がある。この方式では、1つのノードの宛先をIPv4のみとすることが可能であるが、究極的にはIPv4アドレス領域を節約するものではない。これとは別に、非ユニークなプライベートIPv4アドレス(RFC1918(リクエストフォーコメント)アドレスとも呼ばれる)とパブリックなIPv6アドレスとを共用する方式も開発されているが、そのような方式では、これらのプライベートアドレスをホスト側で分配および管理するために、通常の方法に加えて、ネットワーク内における標準的なIPv4 NAT(ネットワークアドレス翻訳)を要する場合がある。
【0003】
「デュアルスタックライト」または「DS−lite」と呼ばれる別の方式が開発され、RFC6333(http://tools.ietf.org/html/rfc6333、2012年5月24日)として標準化されている。DS−liteの場合、ホストは、IPv4アドレスに接続する(かつNATとして動作することも可能な)AFTR(アドレスファミリトランスレータ)に、IPv6トランスポートを用いて到達する。このアドレスファミリトランスレータは、独立したデバイスである場合もあるが、ネットワーク内に既に配備された(例えばルータなどの)ネットワークデバイス内で機能する場合もある。DS−liteでカプセル化されたパケットがAFTRに到達すると、AFTRは、必要なネットワークアドレス変換を行った後にカプセル化を解き、内部のパケットを転送する。
【0004】
発明の概要
第1のネットワークデバイスを記載する。前記ネットワークデバイスが、トラフィック情報、検索エンジン向けの命令、マップマネージャ、トラフィックフォワーダおよびマップを記憶するように構成された有形のコンピュータ読取り可能な記憶媒体を備えていてもよい。前記ネットワークデバイスが、前記記憶媒体中に情報を記憶し、前記検索エンジン中に記憶された命令を実行するように構成されたプロセッサを更に備えていてもよい。第1のアドレス入力が、第1のアドレスの第1のデバイスからの下りトラフィックを受け取るように構成されていてもよい。前記下りトラフィックが、データパケットおよび第2のデバイス用の第2のアドレスを備えていてもよい。
【0005】
前記マップマネージャが、前記記憶媒体中に記憶されるマップを生成するように構成されていてもよい。前記マップが、前記第1のアドレスと前記第2のアドレスとを関連付けるルールを備えていてもよい。前記トラフィックフォワーダが、前記下りトラフィックを前記第2のデバイスに転送するように構成されていてもよい。前記第2のアドレス入力が、前記第2のデバイスから前記第1のデバイスへのリターントラフィックを受け取るように構成されていてもよい。
【0006】
前記検索エンジンが、前記プロセッサに、前記マップを検査して、前記第2のデバイスの前記第2のアドレスと前記第1のデバイスの前記第1のアドレスとを関連付けるルールを前記マップが備えているか否かを判定させる命令を備えていてもよい。前記マップがこの関連付けを備えている場合には、前記エンジン中の前記命令が、前記プロセッサに、前記リターントラフィックを前記第2のデバイスから前記第1のデバイスへと転送させてもよい。前記マップがこの関連付けを含んでいない場合には、前記命令が、前記プロセッサに、クエリを第2のネットワークデバイスに送信させてもよい。前記クエリが、前記第2のネットワークデバイスに対して、前記第2のアドレスと前記第1のアドレスとの関連付けを有するルールを前記第2のネットワークデバイスが備えているか否かを問い合わせてもよい。
【0007】
前記ネットワークデバイスが、前記クエリに対する応答を第2のネットワークデバイスから受け取るように構成されたネットワークデバイス入力を備えていてもよい。前記ネットワークデバイスが、前記クエリからの応答に基づいて前記マップを更新するように構成されたマップアップデータを更に備えていてもよい。
【図面の簡単な説明】
【0008】
【
図1A】
図1Aは、ネットワークデバイスのコンポーネントの一例を示す図である。
【
図1B】
図1Bは、ネットワークデバイスのコンポーネントの一例を示す図である。
【
図2】
図2は、ネットワークデバイス中のデータのプロセスフローの一例である。
【
図3】
図3は、ネットワークの一例を示す図である。
【
図4】
図4は、2つのネットワークデバイスを有するネットワークの一例を示す図である。
【
図5】
図5は、マスタコントローラを有するネットワークの一例を示す図である。
【
図6】
図6は、2つのネットワークデバイスを有するネットワークの一例を示す図である。
【0009】
発明の詳細な説明
IPv4アドレスの第1のデバイスからIPv6アドレスの第2のデバイスへとパケットを転送し、前記第2のデバイスから前記IPv4デバイスにパケットを返送する際に、返送経路が必ずしも(例えばルータ、スイッチ、ロードバランサなどの)同じネットワークデバイスを通過しなくてもよいネットワークを提供する。換言すれば、双方向IPv4−IPv6通信を行い、IPv4からIPv6への経路がIPv6からIPv4への経路と異なっていてもよいネットワークを記載する。
【0010】
トラフィック要素を送出している複数のネットワーク(下りトラフィックのソース)が、パケットの宛先であるアドレスを保持しているネットワークへの最短経路を自ら計算する。これらの計算が相互に独立しているので、第1のパケットのソースがある経路を最適(最短)であると判断する一方で、返送パケットの送出ネットワーク(ソースと宛先とが逆になっている)が、別の経路を最短であると判断する場合がある。このことは、2つのネットワークが複数箇所で接続されている場合に、一方のネットワークが相互接続点1へと向かい、他方のネットワークが相互接続点2へと向かう場合があることから、頻繁に起こる。相互接続点は、2つのネットワークが接続してルート/トラフィックを交換する箇所である。施設によって提供される相互接続点もあるが、接続点がプライベートな双方向の相互接続点である場合もある。IPv4アドレスとIPv6アドレスとの間には相関関係がないので、IPv6からIPv4への経路内のネットワークデバイスがIPv6アドレスとIPv4アドレスとのマッピングデータを有していない(または少なくともこれを得る手段を有していない)場合には、そのネットワークデバイスは、返送パケットをIPv6デバイスからIPv4デバイスに届けることができない。
【0011】
例示的な一構成においては、ネットワークがN個のネットワークデバイス、M個のスイッチおよびX個のデバイスを有する。前記ネットワークは、第1のデバイスから少なくとも1つのネットワークデバイスおよび1つのスイッチを経由して第2のデバイスに至る双方向経路を提供する。幾つかの構成においては、前記第1のデバイスがIPv6アドレスを有し、前記第2のデバイスがIPv4アドレスを有する。前記ネットワークデバイスが、前記第1および第2のデバイスのアドレスを関連付けるルールを記録するように構成されていてもよい。前記ネットワークデバイスが、このルールを用いて、上りトラフィックを前記第2のデバイスから前記第1のデバイスに転送することが可能であってもよい。前記上りトラフィック用の経路(即ち返送)が、下りトラフィックが通過したのと同じネットワークデバイスを通過してもよいし、通過しなくてもよい。幾つかの構成においては、前記上りトラフィック用に選択されたネットワークデバイスが、他のネットワークデバイスに対するクエリを生成して、これらのネットワークデバイスが前記第1および第2のデバイスのアドレスを関連付けるルールを備えているか否かを問い合わせるクエリ生成器を備えている。
【0012】
そのようなクエリを生成し送信するようにネットワークデバイスを構成する多くの方法がある。例えば、ネットワークデバイスが、各ネットワークデバイスに対して、必要なルールを取得するまで、またはいずれのネットワークデバイスからも前記ルールを入手できないと判断するまで、順次問合せを行ってもよい。別の構成では、第1のネットワークデバイスが第2のネットワークデバイスに対して、特定のルールを有するマップを備えているか否かを問い合わせるリング型トポロジを使用する。第2のネットワークデバイスがこのルールを備えていない場合には、第2のネットワークデバイスが第3のネットワークデバイスに前記要求を送信してもよい。第3のネットワークデバイスがこのルールを備えていない場合には、第3のネットワークデバイスがこのルールのコピーを第1のネットワークデバイスに送信するように構成されていてもよい。
【0013】
全てのルールを有するマップを備えたマスタコントローラを使用してもよい。この場合、各ネットワークデバイスが、自身が記憶する全ての新たなルールのコピーを送信するので、各ネットワークデバイスは、ネットワークデバイスにローカルに記憶されていないルールのコピーの取得について、マスタコントローラに確認するだけでよい。これらのおよびその他の構成を、以下に図面を参照しながら記載する。
【0014】
幾つかの構成においては、オープンフロースイッチング仕様を使用して、ネットワークデバイスが相互におよび/またはマスタコントローラと通信を行うことの可能なプロトコルを提供してもよい。オープンフローは、分割制御プレーンおよびデータプレーンを使用する通信プロトコルである。即ち、オープンフローを実装しているネットワークは、「このパケットの特性が要素Xと一致する場合は、関数Yを実行すること」などのようなルールを含む一連のテーブルを有してもよい。
【0015】
図1Aは、ネットワークデバイス10のコンポーネントを図示したものである。
図1Aに図示されたコンポーネントは、マップマネージャ105、マップアップデータ105、検索エンジン110、第1のアドレス入力120、トラフィックフォワーダ130、第2のアドレス入力、ネットワークデバイス(N.D.)入力150、クエリ生成器155およびカプセル化解除装置170である。
図1Bを参照すると、これらのコンポーネントが特定のコンピュータ化された命令の形をとってもよく、また有形のコンピュータ読取り可能な媒体20に記憶されていてもよい。プロセッサ30が、これらのコンポーネントを実行して、以下に記載の複数の異なる機能を実施するように構成されていてもよい。これらのコンポーネントが、これらの機能を実施するための専用の回路装置の形をとってもよい。
【0016】
図2は、第1のネットワークデバイス10Aを図示したものである。この実施例では、第1のネットワークデバイス10Aの枠内に示す枠および矢印は、第1のネットワークデバイスによって実行されるコンポーネントおよび処理であり、第1のネットワークデバイス10Aの枠外に示す枠および矢印は、第1のネットワークデバイス10Aによって実行されない。第1のデバイス100がネットワークに接続されていてもよい。第1のデバイス100は、第1のネットワークアドレス105を有する。前記第1のネットワークアドレスが、IPv4アドレスであってもよい。前記第1のデバイスが、第2のアドレス205を有する第2のデバイスにデータパケットを送信するようにプログラムされていてもよい。前記第2のアドレスが、IPv6アドレスであってもよい。図示されるように、第1のデバイス100が、第1のN.D.(ネットワークデバイス)によって第1のアドレス入力120で受け取られるデータパケットを送信してもよい。
【0017】
第1のネットワークデバイス10Aがマップマネージャ105を実行して、マップ107を生成または更新してもよい。マップ107が、2つまたはそれ以上のアドレスの関連付けを含むルールを有してもよい。マップマネージャ105は、第1のデバイス100からデータパケットを受け取ると、「パケットがアドレス205の第2のデバイス200から受け取られた場合には、このパケットをアドレス105の第1のデバイスに転送する」というルールを生成してもよい。トラフィックフォワーダ130が、第1および第2のデバイス(および図示しない更なるデバイス)との間でデータパケットの送受信を行うように構成されていてもよい。どのアドレスを送信するかの命令を、マップ107から取得してもよい。
【0018】
トラフィックフォワーダ130がパケットを第2のデバイス200に転送する(131)と、第2のデバイスが前記データを処理してもよい。第2のデバイスが、データパケットを第1のデバイス(または図示しない第3のデバイス)に返送してもよい。第2のデバイスからの通信が、第2のデバイス入力140で受け取られてもよい。検索エンジン110が、マップ107中のルールと照合されるクエリを生成してもよい。この場合、前記クエリが、マップマネージャ105に対して、メッセージを第1のデバイス100にどのように供給するのかについてのルールを前記マップが備えているか否かを判定するように要求してもよい。回答が、実装によってYESであってもNOであってもよい。回答がYESであった場合(111)は、マップマネージャが検索エンジンに対してパケットをトラフィックフォワーダ130に送信するように命令してもよい。マップマネージャが、トラフィックフォワーダ(または検索エンジン110)に第1のデバイス100のアドレスを供給してもよい。幾つかの実施例においては、検索エンジンが、マップマネージャ105にアクセスせずにマップ107にアクセスしてもよい。メッセージを第1のデバイス100にどのように供給するのかについてのルールを前記マップが備えていない場合(即ち、「NO」判定であった場合(112))には、第1のネットワークデバイス10Aがクエリ生成器155を用いてクエリを生成してもよい。クエリが1つまたは複数の別のネットワークデバイスに送信(160)されてもよい。
【0019】
図2では、クエリが第2のネットワークデバイスに送信される。第1のネットワークデバイス10Aが、第2のネットワークデバイス10Bから応答を受け取ってもよい(165)が、別の複数の実施例においては、応答が第3、第4、第5または第Nのネットワークデバイスから送信されてもよい。第2のネットワークデバイスからの応答が必要なルールを備えていてもよいが、第2のネットワークデバイス10Bが要求されたルールを備えていないことを前記応答が示してもよい。前者が受け取られた場合には、マップアップデータ109がマップ107を前記新たなルールで更新してもよい。第1のネットワークデバイス10Aが、前記新たなルールを用いて、トラフィックフォワーダ130にデータパケットを第1のデバイス100へと供給させてもよい。
【0020】
IPv6アドレスの第1のデバイスから送信されたIPv4データパケットをカプセル化してもよい。カプセル化が、ネットワーク内の関数を抽出によって基礎構造から論理上隔絶することを可能としてもよい。カプセル化された通信経路において、より高いレベルのオブジェクトを基礎構造に含めることにより、基礎構造から情報を隠蔽してもよい。図示された一例においては、IPv6アドレスを有するデュアルスタックライトデバイスが、アドレスファミリ変換ルータを用いてIPv4アドレスの第2のデバイスにデータパケットを送信するように構成されている。前記デュアルスタックライトデバイスが、リターンデータを出力トラフィック中にカプセル化することにより、AFTRが前記IPv4デバイスからのトラフィックを前記デュアルスタックライトデバイスに返送することが可能であるように構成されていてもよい。AFTRがこのリターンデータを用いてマッピングを構成することにより、AFTRがIPv4デバイスから受け取る以後の通信を所望のIPv6デバイスにルーティングすることが可能であってもよい。リターンデータがIPv4アドレス領域内の “mailbox”アドレスおよびデュアルスタックライトデバイス上の実際のIPv6アドレスを含んでもよい。前記IPv4アドレスを指定されたパケットをどのIPv6デバイスが受け取るべきかをAFTRが判断できるように、AFTRがこの“mailbox”IPv4アドレスおよびIPv6のマッピングを記憶媒体上に記憶してもよい。デュアルスタックライトデバイスからの下りトラフィックを受け取るAFTRがデュアルスタックライトデバイスへの上りトラフィックを受け取るAFTRとは異なっていてもよい状況を、デュアルスタックライトデバイスとIPv4デバイスとの間のネットワークインフラストラクチャが創出可能であることから、AFTRがオープンフロープロトコルを実装してAFTRからAFTRへの通信を容易にしてもよい。例えばあるAFTRが上りトラフィックを受け取り、IPv4デバイスによって指定されるIPv4アドレスに関連するIPv6アドレス用のマッピングを備えていない場合に、そのような通信を用いて、あるAFTRから第2のAFTRへのマッピング情報の転送を容易にしてもよい。
【0021】
図示された構成の一例においては、データパケットが、データを物理的に送信するように構成された物理層を備えている。UDP(ユーザデータグラムプロトコル、アプリケーションに出力ポートを選択する能力を付与するように設計されたプロトコル)、(ローカルエリアネットワーキングのための)リンクカプセル化および(個々のクライアントにグローバルアドレス情報を提供するための)インターネットプロトコルなどの更なるフィーチャを、カプセル化によって物理層に付加してもよい。
【0022】
IPv4アドレスのデバイスからIPv6アドレスのデバイスに送信されるデータパケットである下りトラフィックが、カプセル化されたデータを含んでもよい。ネットワークデバイスが、下りのカプセル化されたデータパケットのカプセル化を解除するためのカプセル化解除装置170を備えてもよい。例えば、第1のデバイスからのデータパケットが、カプセル化されたIPv4トラフィックを含んでもよく、また、カプセル化解除装置がIPv4トラフィックのカプセル化を解除するように構成されていてもよい。
【0023】
図3に、実装の一例に基づくネットワーク3を図示する。ネットワーク3のこの構成では、6つのデバイス(100、200、300、400、500および600)、4つのネットワークデバイス(10A、10B、10Cおよび10D)および3つのスイッチ(40A、40B、40C)がある。デバイス100、300および500は第1のスイッチ40Aに接続されており、第4のデバイス400および第2のデバイス200はスイッチ40Bを介して前記ネットワークに接続されており、第6のスイッチ600はスイッチ40Cのみを介して接続されている。
【0024】
通信の一例においては、第1のデバイス100が第2のデバイス200に通信を送る。前記通信は第1のスイッチ40Aで受け取られ、ここでネットワークデバイス10A−10Dのうちの1つに転送される。通信がネットワークデバイス10Bを経由する場合には、ネットワークデバイス10Bがルールを生成し、前記ルールをそのマップ内に記憶する。データのパケットが、第2のスイッチ40Bに送信され、ここで第2のデバイス200に転送されてもよい。
【0025】
第2のデバイス200が通信を第1のデバイス100に返送する場合は、前記通信は第2のスイッチ40Bを通過する。ここで、第2のスイッチ40Bが情報をネットワークデバイス10Aまたは10Bに送信してもよい。スイッチ40Bが、どのネットワークデバイスが最初の通信を扱ったかを判定するように構成されていなくてもよい。どのネットワークデバイスが上りトラフィックを受け取るべきかを判断する際に、スイッチが(ロード、ネットワークデバイスとスイッチとの距離、時間データなどの)別の基準を用いてもよいし、基準を用いなくてもよい。第2のスイッチ40Bが第1のネットワークデバイス10Aにパケットを送信する場合は、第1のネットワークデバイス10Aは、自身のマップを検査して、前記マップが第1のデバイスと第2のデバイスとのアドレスの関連付けについてのルールを備えていないと判定する。下りトラフィックが第2のネットワークデバイスを通過したので、第1のネットワークデバイスはこの関連付けについてのルールを備えていない。
図3に示す構成によれば、ネットワークデバイス10Aは、第2のネットワークデバイスが必要なルールを備えているか否かを照会するクエリをネットワークデバイス10Bに送信する。ネットワークデバイス10Bを通過する通信経路にオープンフロー技術を用いてもよい。
【0026】
図4に示すように、複数のネットワークデバイスがオープンフローコントローラ50を用いて相互通信を行ってもよい。この図示された例においては、第1のデバイス(送信元)100がインターネット60を介して第2のデバイス200(送信先)200と通信を行うことが可能である。図示するように、(IPv4アドレスに位置していてもよい)前記第1のデバイスから開始して(IPv6アドレスに位置していてもよい)前記第2のデバイスに至る経路が、前記返送経路とは異なっていてもよい。送信先200からのトラフィックが第2のネットワークデバイス10Bに到達すると、第1のデバイス100から第2のデバイス200に至る経路が第1のネットワークデバイス10Aを通過しているので、第2のネットワークデバイス10Bは前記第1のデバイスから前記第2のデバイス(またはその逆)へのマッピングを有しない。前記第2のネットワークデバイスがマッピング情報なしにトラフィックを第1のデバイス100に転送することが不可能である場合がある。しかし、この実施例においては、前記第2のネットワークデバイスが、前記オープンフローコントローラ50を介して前記第1のネットワークデバイスと通信を行うことが可能である。前記オープンフローコントローラが、前記第1のデバイスに対してマッピング情報を要求し、かつ/または第2のネットワークデバイス10Bからトラフィックを転送してもよい。前者の構成では、オープンフローコントローラが(第1のデバイスと第2のデバイスとをマッピングする)マッピングデータを第1のネットワークデバイス10Aから受け取り、このマッピングデータを第2のネットワークデバイス10Bに供給してもよい。第2のネットワークデバイス10Bが、必要なマッピングを受け取るとトラフィックを前記第1のデバイスに返送するように構成されていてもよい。後者の構成では、第2のネットワークデバイスが、トラフィックを前記第2のデバイスから第1のネットワークデバイス10Aに転送する。第1のネットワークデバイスが、自身のマッピングテーブルを用いて、トラフィックを第1のデバイス100へとルーティングするように構成されていてもよい。幾つかの実施例においては、オープンフローコントローラが、前記コントローラを通過する全てのマッピングテーブルのコピーを保持してもよい。第2のネットワークデバイスが、必要なルールを備えている。第2のネットワークデバイス10Bが、オープンフローを用いて前記必要なルールを送信することにより、前記第1のネットワークデバイスが前記第1のデバイスのアドレスを調べることを可能にしてもよい。
【0027】
図5は、マスタコントローラ250を備えたネットワーク3を図示したものである。
図5では、各ネットワークデバイスが、ルールがセーブされる度に、これらのルールをマスタコントローラに送信するように構成されている。この結果、マスタコントローラ250は、前記ネットワークを介して情報を送信する全てのデバイスについてのルールを備えている。マスタコントローラ250が、ネットワークデバイスからのクエリを受け取ると、必要なルールで応答してもよい。前記ネットワークデバイスは、前記ルールを受け取ることで、特定のデバイスに通信を転送することが可能となる。マスタコントローラと複数のネットワークデバイスとの間の通信経路にオープンフローを用いてもよい。
【0028】
構成の一例においては、(アドレスファミリ遷移ルータなどの)ネットワークデバイスをネットワークの各エッジ(即ち管理ドメインのエッジ;ネットワークボーダとしても知られている)に配置し、インターフェースを上流側のネットワークに面して設けてもよい。前記ネットワークデバイス(AFTR)が、独立したシステムであってもよいし、既存のピアリングルータ(ピアリングルータとは、ルーティング情報を別の自律システム内のルータとの間で交換するルータである;ルーティングデータとトラフィックとを交換する2つの自律システムはピアと呼ばれる)上でこの機能が有効となってもよい。前記ネットワークデバイスが、(例えばオープンフロー仕様に基づくマッチ−アクションテーブルを実装したネットワーク要素などの)オープンフロークライアントおよび(例えばオープンフロークライアントをプログラムするネットワーク内のデバイスなどの)オープンフローコントローラのコードを更に備えていてもよい。加えて、前記ネットワークデバイスが、(例えば組織のネットワーク境界などの)他の自律システム内のルータへのネットワーク接続を有し、ボーダーゲートウェイプロトコルなどの外部ゲートウェイプロトコルを用いて通信を行うことの可能なネットワークデバイスであるボーダルータであってもよい。
【0029】
例えば、
図6においては、ルーティングデバイス10Aが、ボーダルータ、AFTR(AFTR1)、オープンフロークライアント1およびオープンフローコントローラ2であってもよい。AFTRまたはアドレスファミリトランスレータが、同じノード上に実装されたIPv4−IPv6トンネル端点とIPv4−IPv4NAT(ネットワークアドレストランスレータ)との組み合わせである任意のデバイスであってもよい。ルーティングデバイス10Bは、ボーダルータ、AFTR2でもある。ルーティングデバイス10Bは、オープンフロークライアント2、オープンフローコントローラ1でもある。
図6に、スイッチ1および2(スイッチ40Aおよび40B)ならびに4つのIPv6クライアント(700A−700D)およびIPv4インターネット800も図示する。
【0030】
ネットワーク1が、下りトラフィックを受け取ると、以下のプロセスを実行してもよい。パケットがIPv4インターネット800から経路1または経路2を介してルーティングデバイスに送信されてもよい。前記パケットが経路1を通過する場合には、第1のAFTRデバイス(AFTR1)が、受信パケットの宛先フィールド内のIPv4アドレス/ポートのタプル間にマッピングが存在するか否かについて、ローカルマッピングキャッシュを検査してもよい。前記第1のAFTRデバイスが前記キャッシュ中にマッピングを発見した場合には、RFC6333に規定されているように、そのキャッシュをリマップし、前記マップによって定められた宛先IPv6(即ち、マッピングエントリを生成したトラフィックの送信元)に前記パケットを転送する。前記第1のAFTRデバイスがキャッシュミス(マッピングテーブル中にマッピングが見当たらないこと、即ちテーブルミスを意味する)を発見した場合には、前記パケットを自身に関連した識別子でマークする。AFTRデバイスが、前記パケットを、前記デバイスの内部構成により、また前記パケット内のどのフィールドがこれ以外にはオープンフロー通信に使用されていないのかによって、様々にマークしてもよい。キャッシュミスの場合には、前記AFTRがオープンフロー制御チャネルを介して前記パケットを第2のAFTR(AFTR2)に転送してもよい。
【0031】
AFTR2は、適切なマッピングを有する場合には、必要なマッピングを実行することによって前記パケットを最終的な宛先に転送する。AFTR2が、オープンフロー制御メッセージを用いて、前記マーキングで特定されたAFTRコントローラ内に前記マッピングをインストールしてもよい。前記オープンフロー制御メッセージは、マッピングテーブルエントリを挿入したものである。AFTR2が適切なマッピングを有しない場合には、前記パケットに自身のマーキングを追加して、オープンフローコントローラ(AFTR3)として設けられたAFTRに転送し、そこで前記プロセスを繰り返してもよい。
【0032】
前記パケットが全ての利用可能なAFTRを訪れてもミスである(即ち各ルータがマッピングテーブルのチェック時にキャッシュミスに遭遇している)場合には、前記パケットはドロップされる(即ち、削除され、それ以上は転送されない)。幾つかの構成においては、そのキャッシュをチェックした最後のAFTRから前記パケットのソースに対して、前記パケットがドロップされたことが通知されてもよい。
【0033】
幾つかの構成の例では2つのAFTRが設けられているが、ネットワークが2つよりも多いAFTRを備えていてもよい。2つよりも多いAFTRを備えたネットワークにおいて、これらのAFTRが、複数のオープンフロークライアントおよびオープンフローコントローラを通過する既知の閉じた経路(ここで「閉じた」とは、ローカルなトポロジにおいて全てのAFTRと接触することが知られているループフリーな経路を意味する)が存在するように構成されていてもよい。2つのAFTRを有する構成では、そのピア(オープンフローと通信を行う同クラスのデバイス)から送信されるパケットについては、AFTR1がAFTR2のオープンフロークライアントとして機能するが、そのピアAFTR3から送信されるAFTR2パケットについては、AFTR1はオープンフローコントローラとして機能する。2つよりも多いルータを有する構成の場合は、仮想リングトポロジを用いてもよい。
【0034】
本明細書に記載の主題および動作を、デジタル電子回路装置で実施してもよいし、本明細書中に開示する構成またはこれらの構成上の等価物を含む有形の媒体、ファームウェアまたはハードウェア上に具現化されたコンピュータソフトウェアあるいはこれらの1つまたは複数の組み合わせにおいて実施してもよい。本明細書に記載の主題を、データ処理装置によって実行されるかまたはその動作を制御するための、有形の媒体上に具現化された1つまたは複数のコンピュータプログラム、即ち1つまたは複数のコンピュータ記憶媒体上にコード化された1つまたは複数のコンピュータプログラム命令のモジュールとして実施してもよい。コンピュータ記憶媒体が、例えば、コンピュータ読取り可能な記憶装置、コンピュータ読取り可能な記憶担体、ランダムなまたはシリアルなアクセスメモリアレイまたは装置あるいはこれらの1つまたは複数の組み合わせであってもよいし、これらに含まれていてもよい。コンピュータ記憶媒体が、(例えば複数のCD、ディスクまたはその他の記憶装置などの)1つまたは複数の個別の部品または媒体であってもよいし、これらに含まれていてもよい。コンピュータ記憶媒体が、有形かつ非一時的であってもよい。
【0035】
本明細書中に記載の動作を、1つまたは複数のコンピュータ読取り可能な記憶装置上に記憶された、または別のソースから受け取られたデータに対してデータ処理装置によって実行される動作として実施してもよい。
【0036】
「クライアント」または「サーバ」という用語は、例えばプログラム可能なプロセッサ、コンピュータ、チップ上のシステムあるいはこれらの複数または組み合わせを含む、あらゆる種類のデータ処理用の装置、デバイスおよび機械を包含する。前記装置が、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの特定用途向けの論理回路装置を含んでもよい。また、前記装置が、ハードウェアに加えて、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想機械あるいはこれらの1つまたは複数の組み合わせを構成するコードなどの、対象のコンピュータプログラムのための実行環境を生成する有形の媒体上に具現されたコードを含んでもよい。前記装置および実行環境が、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなどの様々に異なるコンピューティングモデルインフラストラクチャを実現してもよい。
【0037】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スプリットまたはコードとしても知られる)が、コンパイルされたまたは解釈された言語、宣言型のまたは手続き型の言語を含むいかなる形のプログラミング言語として書き込まれてもよく、単体のプログラムあるいはモジュール、コンポーネント、サブルーチン、オブジェクトまたはその他のコンピューティング環境での使用に適したユニットを含めたいかなる形で展開されてもよい。コンピュータプログラムが、必ずしも必要ではないが、ファイルシステム内のファイルに対応していてもよい。プログラムを(マークアップ言語文書中に記憶された1つまたは複数のスクリプトなどの)他のプログラムまたはデータを保持しているファイルの一部の中、対象のプログラム専用の単一のファイル内または(1つまたは複数のモジュール、サブプログラムまたはコードの複数の部分を記憶したファイルなどの)複数のコーディネートされたファイル内に記憶してもよい。コンピュータプログラムを、1つのコンピュータあるいは1つのサイトに配置された、または通信ネットワークによって相互接続された複数のサイトにわたって分散された複数のコンピュータ上で実行されるように展開してもよい。
【0038】
本明細書に記載のプロセスおよび論理フローを、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なプロセッサによって実行し、入力データを処理して出力を生成することにより、アクションを実行してもよい。例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの特定用途向けの論理回路装置によって前記プロセスおよび論理フローを実行してもよく、また装置をそのような回路装置として具現してもよい。
【0039】
コンピュータプログラムの実行に適したプロセッサには、例えば、汎用のおよび特定用途向けのマイクロプロセッサの双方ならびにあらゆる種類のデジタルコンピュータの1つまたは複数のプロセッサが含まれる。一般に、プロセッサは読み取り専用メモリまたはランダムアクセスメモリまたはこれらの双方から命令およびデータを受け取る。コンピュータの基本的な要素は、命令に従ってアクションを実行するためのプロセッサならびに命令およびデータを記憶するための1つまたは複数のメモリである。一般に、コンピュータは、例えば磁気、磁気光学ディスクまたは光学ディスクなどの、データを記憶するための1つまたは複数の大容量記憶装置も有するか、またはデータの受信または送信あるいはこれらの双方のために、そのような記憶装置に作用可能に連結されている。しかしながら、コンピュータが必ずしもそのような装置を有する必要はない。さらに、コンピュータが、ごく一部の例を挙げれば移動電話、個人向けデジタル支援装置(PDA)、移動音声またはビデオ再生装置、ゲームコンソール、グローバルポジショニングシステム(GPS)受信装置または(例えば汎用シリアルバス(USB)フラッシュドライブなどの)携帯型記憶装置などの別の装置内に組み込まれていてもよい。コンピュータプログラム命令およびデータの記憶に適した装置には、例えばEPROM、EEPROMおよびフラッシュメモリデバイスなどの半導体メモリ装置;例えば内部ハードディスクまたはリムーバブルディスクなどの磁気ディスク;磁気光学ディスクならびにCD−ROMおよびDVD−ROMディスクを含むあらゆる形態の不揮発性メモリ、媒体およびメモリ装置が含まれる。前記プロセッサおよび前記メモリを、特定用途向け論理回路装置によって補助するか、またはその中に組み込んでもよい。
【0040】
ユーザとの相互作用を図るために、本明細書に記載の主題を、例えばCRT(カソードレイチューブ)、LCD(液晶ディスプレイ)、OLED(有機発行ダイオード)、TFT(薄膜トランジスタ)、プラズマ、その他のフレキシブルな構成、またはユーザに情報を表示するためのその他の任意のモニタなどの表示装置および、ユーザがコンピュータに入力を行うためのキーボード、例えばマウス、トラックボールなどのポインティング装置またはタッチスクリーン、タッチパッドなどを有するコンピュータ上で実施してもよい。その他の種類の装置を用いて、ユーザとの相互作用を図ってもよい。例えば、ユーザへのフィードバックが、例えば視覚的フィードバック、聴覚的フィードバックまたは触覚フィードバックなどのいかなる形の感覚的フィードバックであってもよい。また、ユーザからの入力が、音響入力、音声入力または触覚入力を含むいかなる形であってもよい。加えて、コンピュータが、例えばユーザのクライアント装置上のウェブブラウザに、前記ウェブブラウザから受信した要求に応答してウェブページを送信するなど、ユーザによって使用される装置との間で文書を送受信することにより、ユーザと相互作用してもよい。
【0041】
本明細書に記載の主題を、例えばデータサーバとしてとしてのバックエンドコンポーネント、アプリケーションサーバなどのミドルウェアコンポーネント、またはグラフィカルなユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータなどの、ユーザがこれを介して本明細書に記載の主題を具現化したものとの相互作用を図ることの可能なフロントエンドコンポーネントあるいはそのようなバックエンドコンポーネント、ミドルウェアコンポーネントまたはフロントエンドコンポーネントの1つまたは複数の組み合わせを有するコンピューティングシステムにおいて実施してもよい。前記システムの複数のコンポーネントを、例えば通信ネットワークなどのいかなる形または媒体のデジタルデータ通信によって相互接続してもよい。通信ネットワークの例には、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、(例えばインターネットなどの)ネットワーク間通信および(例えばアドホックピアツーピアネットワークなどの)ピアツーピアネットワークが含まれる。
【0042】
本明細書中に記載の特徴を、(例えばケーブル、衛星、無線通信またはその他の信号を介して受信される)より従来的なテレビジョンプログラミングソースとのインターネット接続性を組み込むように構成された処理回路を有してもよいスマートテレビジョンモジュール(または接続型テレビジョンモジュール、ハイブリッドテレビジョンモジュールなど)上で実施してもよい。スマートテレビジョンモジュールが、テレビジョンセットに物理的に組み込まれていてもよいし、セットトップボックス、ブルーレイまたはその他のデジタルメディアプレイヤー、ゲームコンソール、ホテルのテレビジョンシステムおよびその他のコンパニオン装置などの別個の装置を含んでもよい。スマートテレビジョンモジュールが、ウェブ上の、ローカルケーブルTVチャネル上の、衛星TVチャネル上のまたはローカルハードディスクドライブに記憶されたビデオ、映画、写真およびその他のコンテントを視聴者が検索することを可能にするように構成されていてもよい。セットトップボックス(STB)またはセットトップユニット(STU)が、チューナーを有し、テレビジョンセットおよび外部信号ソースに接続して、前記信号をコンテントに合わせると、前記コンテントがテレビジョンのスクリーンまたはその他の表示装置上に表示されることの可能な情報機器装置を有してもよい。スマートテレビジョンモジュールが、ホームスクリーンまたは最上位スクリーンに、ウェブブラウザなどの複数の異なるアプリケーションおよび複数のストリーミングメディアサービス、接続型ケーブルまたは衛星メディアソース、その他のウェブ「チャンネル」などのアイコンを表示するように構成されていてもよい。スマートテレビジョンモジュールが、ユーザに電子プログラミングガイドを提供するようにさらに構成されていてもよい。スマートテレビジョンモジュールのコンパニオン機器が、モバイルコンピューティングデバイス上で動作して、利用可能なプログラムについての情報をユーザに提供し、前記ユーザが前記スマートテレビジョンモジュールを操作することを可能にしてもよい。別の複数の実施例においては、前記特徴を、ラップトップコンピュータまたはその他のパーソナルコンピュータ、スマートフォン、その他の移動電話、ハンドヘルド型コンピュータ、タブレットPCまたはその他のコンピューティングデバイス上で実施してもよい。
【0043】
本明細書には数多くの特定の実施態様の詳細が含まれるが、これらをいかなる発明の範囲または請求の範囲も限定するものとして解釈すべきではなく、特定の発明の特定の実施態様に固有の特徴を記載したものとして解釈すべきである。本明細書において別個の複数の実施態様について記載する幾つかの特徴を組み合わせて、単一の実施態様として実施してもよい。逆に、単一の実施態様について記載する様々な特徴を、別個にまたは任意の好適な部分的組み合わせとして実施してもよい。さらに、複数の特徴を、上述のように幾つかの組み合わせで動作するものとして記載し、またそのようなものとして請求の範囲に記載するが、幾つかの場合においては、請求の範囲に記載した組み合わせから1つまたは複数の特徴を除外し、請求の範囲に記載した組み合わせを、部分的組み合わせまたは部分的組み合わせを変化させたものとしてもよい。
【0044】
同様に、複数の動作を特定の順序で図面に図示したが、これらの動作を前記図示した特定の順序でまたは順番に実行することあるいは図示した動作を全て実行することが、所望の結果を得るために要求されているものとして理解されるべきではない。幾つかの場合においては、マルチタスキングおよび並列処理が有利であろう。さらに、上述の実施態様におけるように様々なシステムコンポーネントが別個となっていることが、全ての実施態様において要求されていると理解されるべきではなく、また上述の複数のプログラムコンポーネントおよびシステムは通常、単一のソフトウェア製品内に一体に組み込むことも、複数のソフトウェア製品内にパッケージングすることも可能である。
【0045】
上述のように、本発明の主題の特定の実施態様を記載してきたが、その他の複数の実施態様も以下の請求の範囲に含まれる。幾つかの場合においては、請求の範囲に記載する動作を異なる順序で実行しても所望の結果が得られてもよい。加えて、添付の図面に記載するプロセスは、所望の結果を得るために必ずしも図示する特定の順序を要するものではない。幾つかの実施態様においては、マルチタスキングまたは並列処理を利用してもよい。