(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-03-13
(54)【発明の名称】特定ネットワークデバイス並びに特定ローカルエリアネットワークの接続、コンテンツ発見、データ転送、及び制御方法
(51)【国際特許分類】
H04L 67/288 20220101AFI20230306BHJP
H04N 21/218 20110101ALI20230306BHJP
H04L 67/568 20220101ALI20230306BHJP
H04W 84/12 20090101ALI20230306BHJP
H04W 92/20 20090101ALI20230306BHJP
【FI】
H04L67/288
H04N21/218
H04L67/568
H04W84/12
H04W92/20
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022542006
(86)(22)【出願日】2021-01-07
(85)【翻訳文提出日】2022-09-05
(86)【国際出願番号】 US2021012497
(87)【国際公開番号】W WO2021142117
(87)【国際公開日】2021-07-15
(32)【優先日】2020-01-07
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-01-05
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】522050239
【氏名又は名称】エムオー-ディーヴイ インコーポレイテッド
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109335
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100122563
【氏名又は名称】越柴 絵里
(72)【発明者】
【氏名】ボリーク マーティン
(72)【発明者】
【氏名】ボーン グレッグ
【テーマコード(参考)】
5C164
5K067
【Fターム(参考)】
5C164FA06
5C164SA21P
5C164TA08S
5C164UD64S
5K067AA11
5K067BB21
5K067DD17
5K067DD34
5K067HH22
5K067HH23
(57)【要約】
SND及びSLANと相互作用するための装置、方法、及びインフラストラクチャが記載される。一実施形態では、ネットワーク構成は、1又は2以上の既存のネットワークの一部である複数のアクセスポイントであって、1又は2以上の既存のネットワークにおける機能とは独立してポイントツーポイントリンクを使用して複数のアクセスポイントのうちの2又は3以上のアクセスポイント間でデータを転送するローカルエリアネットワーク(LAN)を形成するために個別にアドレス指定し互いに通信するように動作可能な複数のアクセスポイントを備え、
複数のアクセスポイントの各アクセスポイントは、コンテンツを転送するための転送要求メッセージに応答して、複数のアクセスポイントのアクセスポイントペア間の1又は2以上の直接ポイントツーポイント転送を介して、複数のアクセスポイント内の他のアクセスポイントに転送することができるコンテンツを格納するキャッシュと関連付けられており、各アクセスポイントは、もしあれば、各アクセスポイントがメッセージを繰り返す、複数のアクセスポイントの1又は2以上のアクセスポイントの第1のセットと、第1のセットの各アクセスポイントについて必要に応じてメッセージを受信時にそこから転送される複数のアクセスポイントの1又は2以上のアクセスポイントの第1のリストと、を示すマッピングを有し、複数のアクセスポイントにおいて第3のアクセスポイントに直接接続されている2つのアクセスポイントが第3のアクセスポイントに同じメッセージを繰り返さない。
【選択図】
図1a
【特許請求の範囲】
【請求項1】
ネットワーク構成であって、
1又は2以上の既存のネットワークの一部である複数のアクセスポイントであって、前記1又は2以上の既存のネットワークにおける機能とは独立してポイントツーポイントリンクを使用して前記複数のアクセスポイントのうちの2又は3以上のアクセスポイント間でデータを転送するローカルエリアネットワーク(LAN)を形成するために個別にアドレス指定し互いに通信するように動作可能な複数のアクセスポイントを備え、
前記複数のアクセスポイントの各アクセスポイントは、コンテンツを転送するための転送要求メッセージに応答して、前記複数のアクセスポイントのアクセスポイントペア間の1又は2以上の直接ポイントツーポイント転送を介して、前記複数のアクセスポイント内の他のアクセスポイントに転送することができるコンテンツを格納するキャッシュと関連付けられており、
前記各アクセスポイントは、もしあれば、前記各アクセスポイントがメッセージを繰り返す、前記複数のアクセスポイントの1又は2以上のアクセスポイントの第1のセットと、前記第1のセットの各アクセスポイントについて必要に応じて前記メッセージを受信時にそこから転送される前記複数のアクセスポイントの1又は2以上のアクセスポイントの第1のリストとを示すマッピングを有し、前記複数のアクセスポイントにおいて第3のアクセスポイントに直接接続されている2つのアクセスポイントが前記第3のアクセスポイントに同じメッセージを繰り返さない、ことを特徴とするネットワーク構成。
【請求項2】
前記複数のアクセスポイントの各アクセスポイントは、前記アクセスポイントのうちの1又は2以上のアクセスポイントの第2のセットに直接接続され、前記アクセスポイントのうちの1又は2以上のアクセスポイントの第2のセットのどのアクセスポイントがポイントツーポイントリンクで接続されているかを示す情報を有する、請求項1に記載のネットワーク構成。
【請求項3】
前記各アクセスポイントがどのアクセスポイントにメッセージを繰り返すかを示す前記各アクセスポイントの前記マッピングは、前記各アクセスポイントが前記LANに参加したときに初期設定される、請求項1に記載のネットワーク構成。
【請求項4】
前記マッピングは、
前記複数のアクセスポイントのうちの1つのアクセスポイントにより、前記LANに参加する際に、直接接続されている前記各アクセスポイントに接続データ要求を送信するステップと、
前記1つのアクセスポイントにより、前記接続データ要求に応答する前記各アクセスポイントから接続データを受信するステップであって、前記接続データは、識別子、応答する前記アクセスポイントが接続されている全てのアクセスポイントの第2のリスト、及び前記応答するアクセスポイントがメッセージを繰り返すアクセスポイントのリストを含む、ステップと、
直接接続されている何れかのアクセスポイントが、直接接続されている他の何れかのアクセスポイントに直接又は他のアクセスポイントがメッセージを繰り返すことによって接続されていないかどうかを決定するステップと、
前記接続データから、前記直接接続されているアクセスポイントが前記直接接続されている他の何れかのアクセスポイントに直接又は別のアクセスポイントがメッセージを繰り返すことによって接続されていないと、前記1つのアクセスポイントが決定した場合、前記メッセージが受信時にそこから転送される前記複数のアクセスポイントの前記1又は2以上のアクセスポイントの前記第1のリストに、前記1つのアクセスポイントを追加するよう前記何れかのアクセスポイントに要求を送信するステップと、
によって作成される、請求項1に記載のネットワーク構成。
【請求項5】
直接接続されていない前記何れかのアクセスポイントが、直接接続されている他の何れかのアクセスポイントに接続されているか否かを決定するステップと、
前記接続データから、直接接続されていないアクセスポイントが、直接接続されている他の何れかのアクセスポイントに接続されていると、前記1つのアクセスポイントが決定した場合、直接接続されていない前記アクセスポイントにメッセージを転送するよう接続されている前記アクセスポイントに要求を送信するステップと、
を更に含む、請求項4に記載のネットワーク構成。
【請求項6】
前記接続データ要求は、Bonjour要求を含む、請求項4に記載のネットワーク構成。
【請求項7】
前記アクセスポイントのうちの1つのアクセスポイントの離脱は、前記LANのリセットをトリガーし、残りの前記各アクセスポイントは、直接接続されている前記各アクセスポイントに前記接続データ要求を送信する、請求項4に記載のネットワーク構成。
【請求項8】
前記接続データは、前記接続データに関して最後に更新が行われた時点を示すタイムスタンプ情報を含み、前記接続データを受信すると、前記1つのアクセスポイントは、前記タイムスタンプ情報に基づいて前記接続データが前記接続データ要求の所定の時間内に更新されたかどうかを決定し、更新された場合、前記接続データ要求を直接接続されている前記各アクセスポイントに再送する、請求項4に記載のネットワーク構成要素。
【請求項9】
前記複数のアクセスポイントのうちの前記1つのアクセスポイントは、前記LANのコントローラとして機能し、前記LANのリセットをトリガーするように動作可能である、請求項4に記載のネットワーク構成。
【請求項10】
前記コントローラとして機能する前記1つのアクセスポイントは、前記複数のアクセスポイントにおける全てのアクセスポイントの中で最も低いMACを有する、請求項9に記載のネットワーク構成。
【請求項11】
前記LANのコントローラとして機能し、前記LANのリセットをトリガーするように動作可能な中央サーバを更に備える、請求項1に記載のネットワーク構成。
【請求項12】
前記1つのアクセスポイントは、前記複数のアクセスポイントのうちの1又は2以上のアクセスポイントをアドレス指定し、前記コンテンツを要求した前記1つのアクセスポイントに結合されたクライアントのための所望のコンテンツのソースとしてキャッシュコンテンツが利用可能である前記1又は2以上のアクセスポイントから選択するように動作可能である、請求項1に記載のネットワーク構成。
【請求項13】
1又は2以上の既存のネットワークの一部である複数のアクセスポイント間で通信が発生するネットワーク構成において使用する方法であって、
前記複数のアクセスポイントが、アクセスポイントが個別に互いにアドレス指定することによって、前記1又は2以上の第1の既存のネットワークにおける機能とは独立してポイントツーポイントリンクを使用して前記複数のアクセスポイントのうちの2又は3以上のアクセスポイント間でデータを転送するローカルエリアネットワーク(LAN)を形成する、前記方法において、
1つのアクセスポイントによって、各アクセスポイントは、もしあれば、前記各アクセスポイントがメッセージを繰り返す、前記複数のアクセスポイントの1又は2以上のアクセスポイントの第1のセットと、前記第1のセットの各アクセスポイントについて必要に応じて前記メッセージを受信時にそこから転送される前記複数のアクセスポイントの1又は2以上のアクセスポイントの第1のリストとを示すマッピングを生成するステップであって、前記複数のアクセスポイントにおいて第3のアクセスポイントに直接接続されている2つのアクセスポイントが前記第3のアクセスポイントに同じメッセージを繰り返さない、ステップと、
前記1つのアクセスポイントにより、前記複数のアクセスポイントのうち所望のコンテンツがキャッシュされている1又は2以上のアクセスポイントを識別するステップと、
前記1つのアクセスポイントによって、前記複数のアクセスポイントのうちの少なくとも1つのアクセスポイントに、前記複数のアクセスポイントのアクセスペア間の1又は2以上の直接ポイントツーポイント転送を介して、前記1つのアクセスポイントに所望のコンテンツを転送するように要求するステップと、
を含む、方法。
【請求項14】
前記複数のアクセスポイントの各アクセスポイントは、前記アクセスポイントのうちの1又は2以上のアクセスポイントの第2のセットに直接接続され、前記アクセスポイントのうちの1又は2以上のアクセスポイントの第2のセットのどのアクセスポイントがポイントツーポイントリンクで接続されているかを示す情報を有する、請求項13に記載の方法。
【請求項15】
前記各アクセスポイントがどのアクセスポイントにメッセージを繰り返すかを示す前記各アクセスポイントの前記マッピングは、前記各アクセスポイントが前記LANに参加したときに初期設定される、請求項13に記載の方法。
【請求項16】
前記マッピングを生成するステップは、
前記複数のアクセスポイントのうちの1つのアクセスポイントにより、前記LANに参加する際に、直接接続されている前記各アクセスポイントに接続データ要求を送信するステップと、
前記1つのアクセスポイントにより、前記接続データ要求に応答する前記各アクセスポイントから接続データを受信するステップであって、前記接続データは、識別子、応答する前記アクセスポイントが接続されている全てのアクセスポイントの第2のリスト、及び前記応答するアクセスポイントがメッセージを繰り返すアクセスポイントのリストを含む、ステップと、
直接接続されている何れかのアクセスポイントが、直接接続されている他の何れかのアクセスポイントに直接又は他のアクセスポイントがメッセージを繰り返すことによって接続されていないかどうかを決定するステップと、
前記接続データから、前記直接接続されているアクセスポイントが前記直接接続されている他の何れかのアクセスポイントに直接又は別のアクセスポイントがメッセージを繰り返すことによって接続されていないと、前記1つのアクセスポイントが決定した場合、前記メッセージが受信時にそこから転送される前記複数のアクセスポイントの前記1又は2以上のアクセスポイントの前記第1のリストに、前記1つのアクセスポイントを追加するよう前記何れかのアクセスポイントに要求を送信するステップと、
を含む、請求項13に記載の方法。
【請求項17】
直接接続されていない前記何れかのアクセスポイントが、直接接続されている他の何れかのアクセスポイントに接続されているか否かを決定するステップと、
前記接続データから、直接接続されていないアクセスポイントが、直接接続されている他の何れかのアクセスポイントに接続されていると、前記1つのアクセスポイントが決定した場合、直接接続されていない前記アクセスポイントにメッセージを転送するよう接続されている前記アクセスポイントに要求を送信するステップと、
を更に含む、請求項16に記載の方法。
【請求項18】
命令が格納された1又は2以上の非一時的コンピュータ可読記憶媒体であって、
前記命令が、少なくともプロセッサとメモリとを有するシステムによって実行されたときに、1又は2以上の既存のネットワークの一部である複数のアクセスポイント間で通信が発生するネットワーク構成において使用する方法を前記システムに実行させ、
前記複数のアクセスポイントが、アクセスポイントが個別に互いにアドレス指定することによって、前記1又は2以上の第1の既存のネットワークにおける機能とは独立してポイントツーポイントリンクを使用して前記複数のアクセスポイントのうちの2又は3以上のアクセスポイント間でデータを転送するローカルエリアネットワーク(LAN)を形成し、
前記方法が、
1つのアクセスポイントによって、各アクセスポイントは、もしあれば、前記各アクセスポイントがメッセージを繰り返す、前記複数のアクセスポイントの1又は2以上のアクセスポイントの第1のセットと、前記第1のセットの各アクセスポイントについて必要に応じて前記メッセージを受信時にそこから転送される前記複数のアクセスポイントの1又は2以上のアクセスポイントの第1のリストとを示すマッピングを生成するステップであって、前記複数のアクセスポイントにおいて第3のアクセスポイントに直接接続されている2つのアクセスポイントが前記第3のアクセスポイントに同じメッセージを繰り返さない、ステップと、
前記1つのアクセスポイントにより、前記複数のアクセスポイントのうち所望のコンテンツがキャッシュされている1又は2以上のアクセスポイントを識別するステップと、
前記1つのアクセスポイントによって、前記複数のアクセスポイントのうちの少なくとも1つのアクセスポイントに、前記複数のアクセスポイントのアクセスペア間の1又は2以上の直接ポイントツーポイント転送を介して、前記1つのアクセスポイントに所望のコンテンツを転送するように要求するステップと、
を含む、
ことを特徴とする非一時的コンピュータ可読記憶媒体。
【請求項19】
ネットワーク構成で使用するデバイスであって、
前記ネットワーク構成が、
1又は2以上の既存のネットワークの一部である複数のアクセスポイントであって、前記1又は2以上の既存のネットワークにおける機能とは独立してポイントツーポイントリンクを使用して前記複数のアクセスポイントのうちの2又は3以上のアクセスポイント間でデータを転送するローカルエリアネットワーク(LAN)を形成するために個別にアドレス指定し互いに通信するように動作可能な複数のアクセスポイントを備え、
クライアントデバイスが、
前記1又は2以上の既存のネットワークに接続するための第1の通信インタフェースと、
前記複数のアクセスポイントのうち、前記1又は2以上の既存ネットワークの一部である1又は2以上のアクセスポイントに個別のアドレス指定を介して接続して、ポイントツーポイントリンクを用いてデータを転送する第2の無線通信インタフェースと、
コンテンツを格納するためのキャッシュと、
前記第1及び第2の通信インタフェース前記前記キャッシュに結合されて、前記複数のアクセスポイントの個々のアクセスポイントによってキャッシュされた所望のコンテンツを転送するために、前記第2の無線通信インタフェースを用いて1又は2以上のアクセスポイントへの無線接続を自らセットアップする接続ロジックと、
を備え、
前記無線接続が、前記複数のアクセスポイントのうちの前記1又は2以上のアクセスポイントの少なくとも1つに、前記複数のアクセスポイントにおける前記1又は2以上のアクセスポイントとの1又は2以上の直接ポイントツーポイント転送を介して前記所望のコンテンツの転送を要求するのに用いられる、
ことを特徴とする、デバイス。
【請求項20】
前記接続ロジックは、前記LANの一部であるネットワークコントローラからの入力に応答して、それ自体で前記無線接続をセットアップするように動作可能である、
請求項19に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
(優先権)
本出願は、2020年1月7日に出願された米国特許出願第62/958,240号及び2021年1月5日に出願された米国特許本出願第17/141,889号を引用により取り込み、その利益を主張するものであり、これらの全体が引用により組み込まれる。
【0002】
(技術分野)
本発明の実施形態は、一般に、アドホックネットワーク上のネットワーキング及びセキュアなデータ転送の分野に関する。
【背景技術】
【0003】
インターネット上で転送されるデジタルデータは、主としてビデオによって牽引されて、急速に成長している。ダウンロードされるビデオ、ビデオオンデマンド(VOD)、ライブビデオ(放送ビデオと消費者ビデオの両方)、インタラクティブビデオ(例えば、ビデオ会議、ビデオ電話、及びビデオゲーム)は、全て人気が高まっている。
【0004】
携帯電話会社及びケーブル会社などのネットワーク企業は、光ファイバーから次世代ミリ波セルラー(例:5G)技術の全てにおいて多額の投資を行っている。しかしながら、激しい競争に起因して「ビットあたりの価格」が急速に低下しているので、これらの企業にとって、こうした投資に対するリターンが減少していることが多い。ネットワークデータセンター(例えば、インターネットサービスプロバイダ(ISP)、セルラーネットワーク)と顧客のデバイス又はローカルエリアネットワーク(LAN)との間のデータ転送である、いわゆる「ラストマイル」問題は、ネットワークの課題の中でも圧倒的にコストが高く、困難である。
【0005】
特にビデオについては、クオリティ・オブ・サービス(QoS)とクオリティ・オブ・エクスペリエンス(QoE)に直接関連するデータ転送性能において、3つの困難なメトリクスがある。第1に、特にインタラクティブビデオ及びライブビデオでは、快適なユーザエクスペリエンスのためにレイテンシー(ソースからデスティネーションまでの時間)を低減することが極めて重要である。レイテンシーが大きいと、例えばビデオ会議の人たちは、互いに話し込んでしまい、使いにくい不自然なコミュニケーションとなることが多い。
【0006】
第2に、転送の連続性が、特にVOD、ライブ、インタラクティブビデオでは重要である。一時停止及び避けたいバッファリングマークは、視聴者にとって迷惑なものである。ビデオの持続時間の間、大量のデータを比較的一定の割合で転送する必要があるので、中断又は帯域幅の減少により問題が発生する。帯域幅の変化の影響を緩和する手法のほとんどは、帯域幅の変動に動的に適合するようビデオデータのサイズ及び品質を適応させることを含む。品質選択型プロトコル(例えば、Dynamic Adaptive Streaming over HTTP、又はMPEG-DASH)が使用される。これにより、ビデオ品質を犠牲にして、ビデオの転送に必要な帯域幅が削減される。しかしながら、これは、データストリームが全くない場合のネットワークのドロップアウトを解決するものではない。
【0007】
第3は、簡単に言うと、ビデオデータは極めて大きい。このため、ソース、ネットワーク全体の戦略的ノード、及び最悪の場合、「ラストマイル」において多くの帯域幅及び計算が必要となる。多くの場所及び/又はストリーミングに人気のある時間帯では、このような帯域幅は限られている。また、全ての場所及びピーク時の帯域幅を改善するには、膨大な費用がかかる。新しい5G携帯電話技術の展開が極めて遅いことを目の当たりに見られたい。
【0008】
これらの問題を軽減するのを助けるために、ますます一般的になってきた1つの技術は、コンテンツ配信ネットワーク(CDN)と呼ばれることもあるコンテンツデリバリネットワークである。CDNは、ネットワークの縁部においてプロキシサーバ及びデータセンターの地理的分散ネットワークである。ビデオデータは、世界のある1ヶ所にある単一のサーバ又はデータセンターか供給されるのではなく、ビデオは、ソースサーバから世界中に戦略的に配置された複数のCDNエッジノードに配信(コピー)される。データコピーは、要求に応じてCDNキャッシュにプリロードされるか、CDNエッジノードが最初の要求を受信したときに転送される。
【0009】
クライアントデバイスからのデータに対する要求は、物理的に最も適切なCDNエッジノードにリダイレクトされる。CDNエッジノードにデータがキャッシュされている場合、レスポンスは速く、レイテンシーも比較的小さい。そうでない場合、CDNエッジノードは、別のCDNエッジノード又はソースサーバの何れかからデータを要求する。データは、クライアントデバイスに配信され、CDNエッジノードにキャッシュされる。
【0010】
コンテンツ配信ネットワークは、コンテンツのセントラルリポジトリを有するコンテンツプロバイダにとって、2つの利点がある。第1に、コンテンツプロバイダのソースサーバ又はデータセンターは、潜在的に数百万のクライアント要求ではなく、数個(数百個)のCDNエッジノードに供給すればよいので、ソースサーバ及びストアの負担が少なくなる。第2に、多くの場合、ソースサーバとCDNエッジノード間の転送は、高帯域幅で予測可能な、更には専用のネットワーク接続で実現され、ソースサーバからエッジノードまでのレイテンシーが低減される。例えば、アマゾンウェブサービス(AWS)は、地域データセンターとAWS CloudFront CDNサービスの間で専用の広帯域接続を使用している。(CDNサービスは、コンテンツサーバ及びストアサービスから独立することができる点に留意されたい)。また、ソースサーバとCDNエッジデータセンター間の高帯域幅接続は、常に利用できるとは限らない。実際、AWS CloudFront及びAkamaiなど、複数のCDNサービスを利用してカバー率を高めることは、ますます一般的な手法となっている。
【0011】
CDN技術の最適化には、高いパフォーマンスを実現するために多くのパラメータ及び方式が必要となる。キャッシング方式(エッジに何をどれくらいの期間保存すべきか)は極めて重要であり、コンテキストに依存する。人工知能の手法を使用して、何をどこにデータを事前配置するか、又は最初のクライアント要求の後にのみノードにてデータをキャッシュさせるかを決定することができる。場所によるプロキシマッピングは、帯域幅、エッジノードの利用率、データの可用性を含むように変更することができる。CDN技術は、急速に発展している分野であり、エッジネットワークを拡張する企業(例えば、Akamai、Amazon Web Services CloudFront)は増え続けている。
【0012】
CDNは、コンテンツソースサーバからのトラフィック及びレイテンシーを削減するのに適している。しかしながら、CDNは、地域のレイテンシー及び帯域幅に関しては依然として限界がある。低遅延を何よりも重視する幾つかの企業では、クライアントをインターネットに接続するインターネットサービスプロバイダ(ISP)のポイントオブプレゼンス(PoP)に、専用のエッジサーバを設置している。これは、Comcast Xfinity及びATTなどの大規模ISPと連係することができる。しかしながら、小規模なISPは何百、何千と存在するため、専用エッジサーバを用いたフルカバレッジでは、十分に拡張できない。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】米国特許第10,104,046号明細書
【特許文献2】米国特許第8,751,000号明細書
【特許文献3】米国特許第8,751,795号明細書
【発明の概要】
【0014】
SND及びSLANと相互作用するための装置、方法及びインフラストラクチャが記載される。一実施形態では、ネットワーク構成は、1又は2以上の既存のネットワークの一部である複数のアクセスポイントであって、1又は2以上の既存のネットワークにおける機能とは独立してポイントツーポイントリンクを使用して複数のアクセスポイントのうちの2又は3以上のアクセスポイント間でデータを転送するローカルエリアネットワーク(LAN)を形成するために個別にアドレス指定し互いに通信するように動作可能な複数のアクセスポイントを備え、
複数のアクセスポイントの各アクセスポイントは、コンテンツを転送するための転送要求メッセージに応答して、複数のアクセスポイントのアクセスポイントペア間の1又は2以上の直接ポイントツーポイント転送を介して、複数のアクセスポイント内の他のアクセスポイントに転送することができるコンテンツを格納するキャッシュと関連付けられており、各アクセスポイントは、もしあれば、各アクセスポイントがメッセージを繰り返す、複数のアクセスポイントの1又は2以上のアクセスポイントの第1のセットと、第1のセットの各アクセスポイントについて必要に応じてメッセージを受信時にそこから転送される複数のアクセスポイントの1又は2以上のアクセスポイントの第1のリストと、を示すマッピングを有し、複数のアクセスポイントにおいて第3のアクセスポイントに直接接続されている2つのアクセスポイントが第3のアクセスポイントに同じメッセージを繰り返さない。
【0015】
これらはまた、SNDを接続してSLANを作成し、キャッシュされたコンテンツを見つけ、SND間のホップ数を管理し、ブロックチェーンレッジャー及びBit Torrentを介してコンテンツを管理し、スマートスピーカー装置を使用し、SNDなしでSLANと相互作用し、DVRと相互作用し、仮想DVRとして動作し、SLAN上でのコンテンツをホスティングする、方法及び装置を含む。
【0016】
本発明は、以下に与えられる詳細な説明と、本発明の様々な実施形態の添付図面とからより完全に理解されるが、しかしながら、これらは、本発明を特定の実施形態に限定するものと解釈されるべきではなく、説明及び理解のためである。
【図面の簡単な説明】
【0017】
【
図1a】典型的なインターネットネットワーキングを説明するための概略図である。
【
図1b】CDNエッジネットワーキングを説明するための概略図である。
【
図1c】PoPエッジネットワーキングを説明するための概略図である。
【
図1d】一実施形態による特定ローカルエリアネットワークエッジネットワーキングを説明する概略図である。
【
図3】特定ネットワークデバイスの一実施形態のブロック図である。
【
図4】SNDにおけるソフトウェアコンポーネントのフロー図である。
【
図5】ゼロコンフィギュレーションネットワーク(Zero Configuration Network)プロトコルを用いたSLANネットワークにおけるノード間の通信の一実施形態を示すフロー図である。
【
図6】中央サーバを用いたSLANネットワークにおけるノード間の通信の一実施形態を示すフロー図である。
【
図7】ノーホップ及びマルチホップサーチの一実施形態の通信概略図である。
【
図8】SLANにおけるSNDノードのトポロジー図を作成するためのSLANネットワークの一例である。
【発明を実施するための形態】
【0018】
以下の説明では、本発明をより詳細に説明するために、多数の詳細事項が記載されている。しかしながら、当業者には、本発明がこれらの具体的な詳細なしで実施できることは明らかであろう。他の事例では、本発明を不明瞭にしないために、周知の構造及びデバイスは、詳細ではなくブロック図の形式で示される。
【0019】
(概要)
本発明の実施形態は、複数の既存の特定ネットワークデバイス(SND)のWi-Fiアクセスポイントが、直接通信できるほど互いに物理的に近い(例えば、約50メートル以内)ことに基づいている。これらは、特定ローカルエリアネットワーク(SLAN)内のノードである。
【0020】
これらのSNDは(以下に説明する実施形態を介して)互いに接続し、インターネット又は他のプライベートネットワークへの何れかの接続からも独立したSLANを形成する。これらのSNDは、通過する(又はSNDによって事前対応的に要求される)データをインテリジェントにキャッシュする。更に、幾つかの実施形態では、SNDは、接続されたクライアントデバイス上のデータへのアクセスを有する。
【0021】
同時に、これらのSNDは、ワイヤレスクライアントをインターネット又は他のプライベートネットワークに接続するという従来の機能も提供する。しかしながら、ここでは、無線クライアントもSLANの全体的キャッシュの恩恵を受けることができる。無線クライアントからのデータ要求がSLANにキャッシュされたデータから供給できる場合、当該アクセスは一般に高速で、インターネットトラフィックに影響を与えない(被らない)。
【0022】
本発明の実施形態は、1又は2以上の利点を有する。第1に、本発明の実施形態は、特定の状況において、特にいわゆる「ラストマイル」、すなわちISP又はプライベートネットワーク(インターネットから独立した従来のネットワーク)とローカルデバイスとの間の接続内のネットワーク性能を向上させるのに役立つ。本発明の実施形態は、ビデオ及び他の大きなデータ転送のためのより良い性能を可能にする帯域幅の問題を低減し、恐らくは連続性を改善し、レイテンシーを低減する可能性がある。
【0023】
第2に、本発明の実施形態は、このデータキャッシング手法において全く新しいレイヤーを作成する、すなわち、特定ローカルエリアネットワーク(SLAN)を作成し、家庭又は企業に物理的に位置するWi-Fiアクセスポイントにおいてキャッシングを行う。これらのノードの多く又は全てが中央ネットワーク、又は複数のネットワーク(例えば、ISPを介したインターネット)にも接続されているが、ネットワークは、当該中央ネットワークから独立してネットワーク化されたノード間でデータを転送することが可能である。
【0024】
ビジネス街及び都市・郊外の近隣地域などの人口密度の高いエリアでは、多くの場合、範囲内にある複数のWi-Fiアクセスポイント(又はホットスポット又はIEEE802.11x 「Wi-Fi」ネットワーク)があり、その名前(サービスセット識別子、SSID)を放送している。これらのWi-Fiアクセスポイントのほとんどは、クライアントがアクセスを許可されていることを認証するためにパスワードを必要とする。一実施形態では、クライアントデバイスは、これらのWi-Fiアクセスポイントを見ており、Wi-Fiアクセスポイント自体が、互いに接続するのに十分に近い距離にある。
【0025】
一実施形態では、以下に説明する機能が可能であり、物理的に互いに接続するのに十分に近くに位置する全てのWi-Fiアクセスポイントは、こうしてSLANを形成する。
【0026】
一実施形態において、これらのWi-Fiアクセスポイントデバイスは、特定ネットワークデバイス(SND)と呼ばれ、SNDの機能は、データを取り扱うためのハードウェア及びソフトウェアのキャッシング、他のSNDの発見、SLANを形成する他のSNDとのネットワーキング、SLAN内のメッセージ受け渡し及び応答、SLAN内のデータ転送、並びにクライアントデバイスに対する従来のWi-Fiアクセスポイントとしての機能及びISP又はプライベートネットワークとの通信を含む。一部の実施形態では、この機能は、従来のWi-Fiアクセスポイントデバイスに接続されたカスタムソフトウェアを実行する従来のコンピュータによって実現される。他の実施形態では、これらの特定機能を有する統合されたSNDハードウェアが利用される。
【0027】
一実施形態では、SND間のネットワーキングは、サイドバンド信号(この目的のための専用の別のWi-Fi信号)において具現化される。セキュリティのために、一実施形態では、このサイドバンド信号は、ハードウェア及び/又はソフトウェア認証によってSNDに制限される。他の実施形態では、SNDは、Wi-Fi信号間の切り替え、又は他の無線及び/又は有線通信機能を通じて接続する。
【0028】
一実施形態において、1つのSNDは、SLANを形成する複数の他のSNDに接続することができる。しかしながら、一実施形態におけるSNDは、自己結合しネットワークに自己組織化することができるので、これらは、閉じたメッシュネットワークではない(例えば、プライベートネットワークではない)。一実施形態において、1つのSNDは、N個の他のSNDに直接接続することが可能である。これらのN個のSNDは、必ずしも全てが互いに接続されている必要はない。この第1のSNDは、直接接続されていない他のSNDの間のブリッジノード、又はリピータ、より具体的にはWi-Fiリピータとして機能する。同様に、N個の他のSNDの幾つかは、第1のSNDが接続されていないSNDに接続することができる。従って、これらのSNDは、これらのSND間のブリッジ、又はWi-Fiリピータとして機能する。メッセージ及びデータは、これらのノード間をホッピングすることによって送信される。理論的には、このネットワークは、他のノードのうちの少なくとも1つに接続できる物理的に最も遠いSNDまで拡張できるが、ネットワーク内のノード間の複数のホップのコストは、性能を低下させる可能性がある。
【0029】
一実施形態では、SNDは、ヒューリスティック及び学習アルゴリズムに基づいて、大きなファイル又はオブジェクト、特にマルチメディアコンテンツをローカルにキャッシュする。一実施形態では、これらのアルゴリズムは、当初、CDN及び他のキャッシング方式で利用されるものから派生し、所与のSLANの特性に対し進化することが期待される。キャッシング方式の一般的な例は、「最低アクセス数」原理である。データがアクセスされると、タイムスタンプが更新される。新しいデータのためにメモリが必要になると、最もアクセス数の少ないデータが最初に削除される。
【0030】
SNDを配置し、クライアントが大きなデータを要求すると、そのデータがローカルで利用可能かどうかをSLANに問い合わせ、利用可能であれば、クライアントの要求をローカルで処理する。ネットワークのWi-Fiアクセスポイントレベルでファイル及びオブジェクトをキャッシュすることは、CDN及びPoPと同様に帯域幅及びレイテンシーを削減する利点の多くを有する。このことは、特にネットワークが混雑する夕方の時間帯に、人気のあるライブ放送及びオンデマンドの一気観に確実に役立つことになる。(低レイテンシーを必要とするインタラクティブビデオに対する本発明の実施形態の利点は、周知ではない点に留意されたい)。
【0031】
本発明の実施形態はまた、ストリーミングビデオを容易にする。1つのSNDは、ストリーミングデータを受信して、複数のクライアントのためにSLANを通して当該データを転送し、ISP、インターネット、及び/又はプライベートネットワークへの負担を軽減することができる。しかしながら、性能上の実用的限界がある。例えば、Wi-Fiリピータを介して接続されたSLANノード(SND)は、パケットの再送信を必要とし、ローカルスペクトルにおいてある程度の輻輳を生じる。それにもかかわらず、本発明の実施形態は、人気コンテンツのストリーミングの性能を向上させる。
【0032】
以下の説明及び図では、このようなネットワークを作成し、データ、特にビデオのような大きなデータをそのネットワークを介して配信するためのステップを説明している。一実施形態では、これらのステップは以下を含む。
Wi-Fiアクセスポイント(SND)間の直接ネットワーキングによってSLANを形成するステップ;
マルチキャストDNS又は同様のプロトコルを使用して、ネットワーク内のSNDノードにアドレス指定するステップ;
ISP又はプライベートネットワークと相互作用することなく、SLAN上のコンテンツを検索するステップ;
ISP及びプライベートネットワークと相互作用することなく、Wi-Fiアクセスポイント(SND及び接続されたクライアント)間で直接コンテンツを転送するステップ;
Wi-Fiアクセスポイント(SND)でのデータキャッシング及びパーティショニングするステップ;
及びISP及びプライベートネットワークと相互作用することなく、データ及びネットワークセキュリティ、追跡、分析のステップ。
【0033】
本発明の実施形態の説明は、既存のWi-FiアクセスポイントをSND可能なハードウェア及びソフトウェアと置き換える、又は新しいWi-FiアクセスポイントをSND可能なハードウェア及びソフトウェアに加えることによって作成されるSLANを特徴付ける。この説明は、これらのポイントの既存のトポロジー、例えば、家庭、コーヒーショップ、職場、空港から利点を引き出すことを想定している。しかしながら、当業者であれば、SLANを「完成」させ、まさにこのタイプの「ラストフット」ネットワーキングの利点を提供するために、これらのデバイスを戦略的な場所に配置することを想起することができる。言い換えれば、本発明の実施形態は、このSLANのアドホックな作成と設計作成の両方を含む。
【0034】
また、本発明の実施形態は、(相対的に)物理的に固定されたWi-Fiアクセスポイントに対するこれらのネットワークのアドホックな作成に限定されるものではない。本開示に鑑みた当業者であれば、必要な機能を有することができるモバイルデバイスを用いて、これらのネットワークが自発的に作成されることを想起することができる。
【0035】
CDN、Pop、及びWi-Fiアクセスポイントを有するLANの説明
図1Aは、インターネットを介した交換の一例の概略図である。ソースサーバ101には、オリジンコンテンツ(例えば、ビデオ)が入っている。クライアントデバイス105は、コンテンツを要求する(所与のビジネスモデルに対する適切な認証及びトランザクションの後)。物理的に、ソースサーバ101及びクライアントデバイス105は、何キロメートルも、たとえ大陸でも離れている可能性がある。簡単には拡張されないので、ソースサーバ101とクライアントデバイス105との間に直接接続はない。
【0036】
従来のネットワーキングは、データをパケットに分割している。各パケットは、インターネットノード102に送られ、パケットがインターネットサービスプロバイダ(ISP)103、次いでクライアントデバイス105によって受信されるまで、データパケットパス106に沿って別のノードに同様にして繰り返される。データパケットの経路は、複数のホップを必要とする可能性がある(すなわち、複数のインターネットノード102を通過する)。インターネットノード102は、世界中を含む、至る所に存在することができる。更に、データ転送の各パケットは、異なる経路をとる可能性がある。一実施形態では、経路は、限定ではないが、ノードにおける帯域幅、可用性、及び接続性などの要因に依存する、当業者には周知の高度なアルゴリズムによって決まる。これらのアルゴリズムは、パケット経路を低減し、場合によっては最小化しようと試みるが、ソースサーバ101は、低レイテンシー又は十分な帯域幅を予測又は要求することができない。また、このモデルでは、そのコンテンツに大きな需要がある場合、ソースサーバ101自体がボトルネックとなる可能性がある。
【0037】
図1bは、コンテンツ配信ネットワークCDNエッジサーバ107を含む、レイテンシー及びネットワークインターネットトラフィックを低減する既存の方法(例えば、PaaS又はIaaSプロバイダ地域ノード間)を示している。ソースサーバ101から直接データを移動させ、多くの場合、高帯域幅、予測可能及び/又は専用のネットワーキングを使用して、地理的に分散したCDNエッジサーバ107にデータをキャッシュすることによって、データは、クライアントのインターネットサービスプロバイダ103に物理的に近くなる。
【0038】
CDNを使用する主な利点は、ネットワークの地理的エッジへのデータ伝搬である。コンテンツがクライアントに到達するまでの距離が近くなり、その結果より速くなる。しかしながら、静的コンテンツのデータ伝搬には時間がかかる。多くの場合、最初のアクセスの前にデータが伝搬(事前にロード又は更新)される。
【0039】
効果的なキャッシュ及び予測方式により、CDNは、ソースサーバの帯域幅ストレス及びクライアントへのレイテンシーを大幅に低減する。ここで、データパケットパス108が大幅に短くなり、恐らくはより予測可能になる。これは、大規模ビデオコンテンツプロバイダが今日使用している最も一般的な方法である。
【0040】
しかしながら、CDNを使用しても、高レイテンシーと帯域幅の需要は持続する。そこで、AmazonのゲームストリーミングサービスであるTwitchのような少数の企業では、一部のISPのポイントオブプレゼンス(通常はクライアントの前の最後のノード)にサーバを設置することにより、エッジに更に近い場所にサーバを移動させた。
図1cは、ソースサーバ101とISP103との間の予測可能な又は直接的なネットワーク接続を有するこの変形形態を示す。コンテンツソース会社(最も可能性が高い)によって促進される専用サーバが、ISPデータセンター103に配置されている。これで、データパケットパス109は更に短くなり、より予測可能になる。しかしながら、この解決策は高価であり、拡張が困難であるため、改善された顧客体験に対してプレミアムを課すことができる少数のサービスによってのみ行われる。
【0041】
本発明の実施形態は、これらのネットワーキング手法の何れかを補完することができる2つの付加的な利点を有する。第1に、データキャッシュを備えたローカルエリアネットワークを、クライアントデバイスの更に近くに作ることができる。
第2に、ローカルにキャッシュされたデータに対する要求の提供は、インターネット、或いはISPを伴うことなく実行することができる。
【0042】
図1dは、クライアントデバイス105に直接接続された特定SND113を中心とするSLAN112を示す。クライアントデバイス105によるデータの特定の要求が与えられると、そのデータが特定のSND114にあることが発見される(後述する方法によって)。次に、この情報を用いて、データは特定のSND113に転送され、その後、データパケットパス111を介してクライアントデバイス105に直接転送される。なお、このパスには、ISP及びインターネットは含まれない。
【0043】
定義
本開示では、Wi-Fi(IEEE 802.11x規格のファミリーを表す商標用語)と一般的に呼ばれる無線接続の現在の最新の方法を使用する点に留意されたい。Wi-Fiは、無線ネットワーキングのための1つの方法であるが、当業者であれば、本発明の実施形態の目的に使用される後継技術(有線、無線、又は接触)を想起することができる。更に、使用できる現代の他の無線技術(例えば、Bluetooth、Near Field Communicationなど)が存在する。最後に、本発明の実施形態は、有線及び無線の両方のネットワーキングのための技術の組み合わせで動作することも可能である。
【0044】
説明の目的で、用語「Wi-Fiアクセスポイント」は、一方ではインターネットに(例えば、ISP及び適切なモデムを介して)接続され、他方ではWi-Fiを介してクライアントデバイスに接続されるデバイスを指すのに使用される。しかしながら、「アクセスポイント」という用語は、無線又は有線プロトコルに関係なくネットワークアクセスを意味するより一般的な表現である。一実施形態では、アクセスポイントは、クライアントデバイスが直接接続するのを可能にするネットワークのエッジ上の何れかの最終ポイントである。単一の物理デバイスは、複数のWi-Fi信号を提供できる点に留意されたい。また、単一の物理デバイスは、各々が異なるサービスセット識別子(SSID)を有する複数のWi-Fi信号を有することができる点に留意されたい。
【0045】
Wi-Fiリピータは、他のWi-Fiアクセスポイントからのパケットを反復するWi-Fiアクセスポイントである。一実施形態では、Wi-Fiリピータは、モデム(及びISP又はプライベートネットワーク)への接続を有するクライアントデバイスとアクセスポイントとの間の通信をブリッジし、これによってWi-Fi範囲を「拡張」するのに使用される。一実施形態において、Wi-Fiリピータは、発信元のWi-Fiアクセスポイントと同じSSIDを使用する。
【0046】
コンピューティングデバイスのネットワークにおける1つの点は、ノードと呼ばれる。従来、Wi-Fiアクセスポイント又はWi-Fiリピータは、クライアントデバイスの前のネットワークにおける最後のノードである。
【0047】
コンテンツとは、一般に大きく、何らかの持続的価値(すなわち、後の時間においても潜在的に価値がある)を有するデータである。コンテンツの優れた例は、ビデオデータである。ビデオデータは大きくなる傾向があり、複数回要求される可能性があり、リフレッシュする必要がない。本開示においてコンテンツとみなされないデータの例としては、コンテンツを説明するメタデータ、デバイス間で渡されるメッセージ、要求コール、及び他のアプリケーションプログラマーズインタフェース(API)関連データが挙げられる。なお、この非コンテンツデータは、SNDによって繰り返すことができる。
【0048】
特定ローカルエリアネットワーク(SLAN)の実施形態の説明
一実施形態では、特定ネットワークデバイス(SND)は、互いに接続されて相互作用し、従って、特定ローカルエリアネットワーク(SLAN)内のノードとして機能する。本明細書での目的におけるSLANの定義は、互いにアドレス指定することができるSND全てによって作成されるネットワークである。一実施形態では、アドレス指定は、Wi-Fi信号を介して直接行われる。SLANは、Wi-Fiリピータとして機能することができる1又は2以上のブリッジSNDがある場合、Wi-Fi信号範囲を超えて拡張することができる。何れかのデータパケットも、これらのブリッジSNDを介して「ホップ」する。概念的には、物理的に正しい位置にブリッジSNDがあれば、このネットワークは多くのSNDで地理的に大きな距離まで拡張することができる。
【0049】
図2において、SND200は、1又は2以上のWi-Fi信号を介してSND201、202、203、204、205に接続され、SLAN210を形成する。SND201は、Wi-Fi信号を介してSND200、202、205、206、207、208、209と接続され、SLAN211を形成している。SND200とSND201の接続をWi-Fiリピータとして使用すると、全てのSNDが直接的に又は1ホップで接続される。こうして、SLAN210とSLAN211は、1つのSLANに結合される。
【0050】
SND間を発見して接続し、SLANを作成する方法が以下に説明される。以下に説明する方法を用いて、SNDは、SLAN上の全てのSNDに関する情報を要求する。実施形態によっては、これらの接続は、構造化されたリスト(CSV、JSONなど)を使用して、又はローカルもしくはグローバルデータベース(例えば、グラフデータベース、リレーショナルデータベース、NoSQLデータベースなど)を使用して記述され、一部の実施形態においては共有される。他の実施形態では、コンテンツが見つかるまで、アドレス指定は共有されない。これについても、以下に説明する。
【0051】
表1は、例示的な実施形態として、
図2におけるSND間の接続をテキストで説明したものである。互いにWi-Fi信号で接続されている2つのSNDは、直接データを受け渡すことができる。それ以外の場合は、1又は2のホップが必要である。例えば、
図2に示すように、SND203は、SND200と直接通信することができる。しかしながら、SND203がSND205と通信するために、SND200によってパケットが繰り返される。SND203がSND209と通信するためには、パケットはまずSND200によって繰り返され、その後SND201によって2回目が行われる。
【0052】
このテーブルをデータベース形式で表現する方法は、例えば、グラフィカルデータベースにおけるノードとエッジの記述など、様々な方法がある。適切な表現があれば、SLAN内の全てのSNDにアドレスしている方法を識別することが可能である。しかしながら、SND又はネットワークコントローラが、SLANの周りでコンテンツを見つけるか又は転送するために、このネットワークトポロジーを知る必要はない場合がある。これについて以下で説明する。
【0053】
SLANの実施形態におけるハードウェア及びソフトウェア
説明のために、用語「特定ネットワークデバイス」(SND)は、本明細書では、SLANに参加するための全ての機能を有する物理(又は仮想)デバイスを指すのに使用される。一実施形態では、SNDは、モデムを介したインターネットへの接続、1又は2以上のWi-Fi信号、コンテンツ及びコンテンツのパーティションをキャッシュするためのデータストレージ機能、並びにネットワークに参加し、コンテンツを検索し、コンテンツを転送するのに十分な計算ハードウェア及びソフトウェアを有するか、有していない場合がある。これら全ては、単一の専用の筐体において製造することができるが、従来のモデム、Wi-Fiアクセスポイント、及びコンピュータを使用して構築することも可能である。明確にするために、一実施形態では、SNDは、本明細書に記載されるSND機能に必要な追加のハードウェア及びソフトウェアを有する従来のWi-Fiアクセスポイントである。
【0054】
図3は、SNDの要素を示すブロック図である。ISP接続部300は、インターネットサービスプロバイダ又はプライベートネットワークへの接続である。この接続は、標準的なハードウェア、ソフトウェア、及びプロトコルを使用して、直接有線又は無線とすることができる。モデム/レシーバ301は、データを受信し、ネットワーク信号からパケットに変換して、これらのパケットを解釈する。ルーター304は、有線接続部307を介して、パケットを異なるデバイスに送信する。ルーター304は、SNDではオプションであるが、ここでは示されている。SNDにインターネット接続は必要ない。ルーター304は、他のSNDに接続し、及び/又は従来のWi-Fiアクセスポイントのリピータとして動作することができ、依然として、本明細書で説明する利点を有する。
【0055】
主Wi-Fi信号305は、Wi-Fi308を介してデータを送信及び受信する。一実施形態では、主Wi-Fi信号305は、クライアントデバイスと相互作用する。任意選択的に、主Wi-Fi信号305は、別個のSSIDを有する複数の別個のWi-Fi信号を使用する。一実施形態において、複数の別個のWi-Fi信号の各々は、異なる周波数、例えば、5.0GHz及び2.4GHzにある。一実施形態において、SNDは、通常の要求に対して従来のWi-Fiアクセスポイントと全く同様に動作する。
【0056】
接続計算及び格納部302は、ネットワーク発見、コンテンツ検索、コンテンツキャッシュ、及びコンテンツ及びコンテンツ要素の転送制御のようなSND機能を制御するコンピュータ又は他の処理ロジック(例えば、1又は2以上のプロセッサ、コントローラ、実行ユニット、その他)である。一実施形態では、接続計算及び格納部302は、接続ロジックを備える。接続ロジックは、ハードウェア(例えば、回路、デジタルロジック、その他)、ソフトウェア、ファームウェア、又はこれら3つ全ての組み合わせを備える。一実施形態では、接続ロジックは、第1及び第2の通信インタフェース(例えば、上述のWi-Fi及び他の通信インタフェース)、及びコンテンツキャッシュ(例えば、303)に結合され、第2の無線通信インタフェースを使用して、複数のアクセスポイントにおける1又は2以上のアクセスポイントとの無線接続を自ら開始し、SLANの個々のアクセスポイントによってキャッシュされた所望のコンテンツを転送する。
【0057】
コンテンツキャッシュ303は、コンテンツが蓄積され、一時的に格納されるメモリ(揮発性又は不揮発性)である。サイドWi-Fi信号306は、サイドWi-Fi309を介してデータを送受信し、SLANトラフィック専用である。この機能は、後述するように、ある実施形態では利用されるが、他の実施形態では利用されない。
【0058】
幾つかの実施形態において、オプションのグローバルポジショニングシステム310は、SNDに含まれる。一実施形態では、グローバル位置は、SND及びSLANによって生成された分析を評価するときに使用される。
【0059】
一実施形態において、この機能の全ては、専用のハードウェア要素にて組み立てられ、又は本明細書で指摘する場合を除いて、市販のコンピュータ、モデム、及びWi-Fiアクセスポイントのハードウェアを使用して実装される。
【0060】
図4は、SNDの一実施形態によるソフトウェアを示す。これらのソフトウェアモジュールは、API、SDK、又は1又は2以上のプログラムのような複数の一般的な方法で具現化することができる。一実施形態において、モデム、ルーター、アクセスポイント、Wi-Fiリピータコアソフトウェア400は、本明細書で指摘される場合を除いて、現在のモデム/ルーター/Wi-Fiアクセスポイント及びWi-Fiリピータデバイスに存在する典型的なソフトウェアである。
【0061】
一実施形態では、サーバソフトウェアモジュール407は、ハイパーテキスト転送プロトコル(HTTP)又はウェブサーバ(例えば、Apache HTTPサーバ)であり、多くのモデム/ルーター/Wi-Fiアクセスポイントデバイスに一般的である。これにより、設定をウェブページとしてユーザに提示ながら、HTTPのようなプロトコルを介してデバイスにアクセスすることができる。幾つかの実施形態では、ISP及びクライアントだけでなく他のSNDとの通信のためにこのソフトウェアを使用する。
【0062】
SND発見接続モジュール401は、他のSNDに接続して、他のSNDが互いに及び他のデバイスと接続することを可能にするための認証を処理する。一実施形態では、SND発見及び接続モジュール401は、例えば、これに限定されないが、Bonjour(登録商標)(Apple,Incの登録商標)とも呼ばれるゼロコンフィギュレーションネットワークなどのネットワーク構成プロトコルを利用して、デバイス能力、例えば、どのデバイスがSND機能を有するかについてネットワークに問い合わせを行う。
【0063】
一実施形態では、SLANローカルDNS管理モジュール402は、ゼロコンフィギュレーションネットワークプロトコルの一部であるマルチキャストドメインネームサーバ(mDNS)などのプロトコルを使用して、SLAN上のSNDのアイデンティティを発見、記録、及び共有する。これは、データベース形式のネットワークの記述を任意選択的に作成し格納することができる場合である(表1参照)。
【0064】
SLANコンテンツ検索モジュール403は、クライアントデバイスから要求されたコンテンツを検索する。
【0065】
SLANコンテンツ転送モジュール404は、コンテンツが発見されたSLAN内のSNDからクライアントデバイスへのデータの転送に影響を与えるためにパケットを転送及び/又は反復する。
【0066】
SNDコンテンツキャッシュモジュール405は、SLANを通過するコンテンツ又はコンテンツ要素を戦略的に格納する。コンテンツをキャッシュする方式は、SLANにおけるコンテンツの新規性、人気、サイズ、アクセス頻度、及び複数の他の要因に依存する。使用できるキャッシングアルゴリズムは、当業者には周知である。一実施形態では、ヒューリスティック及び機械学習キャッシング方式の両方が利用される。キャッシング方式の有効性は、幾つかのメトリクスによって記録され、これらメトリクスは、方式を改善するために使用される。測定及び学習機能は、幾つかの実施形態では、このソフトウェアモジュールの一部である。他の実施形態では、分析データ(下記参照)を収集し、リアルタイム又はオフラインで戦略的修正を実行する中央サーバが存在する。
【0067】
SND分析モジュール406は、キャッシングのメトリックと、キャッシング方式、ネットワークトポロジー、或いはビジネスモデルに関連する他の情報とを報告する。
【0068】
グローバル位置システムモジュール408は、SNDのグローバル座標を読み出し、SLAN及びネットワークコントローラと共有する。一実施形態では、このオプションの構成要素は、分析のために使用される。
【0069】
幾つかの実施形態において、クライアントデバイスは、従来のWi-Fiアクセスポイントに接続され、コンピュータは、SNDの機能をシミュレート又は複製するために使用される。この場合、クライアントデバイスのソフトウェアの機能は、SNDの機能と同様である。
【0070】
SNDのネットワークを形成する
一実施形態では、少なくとも2つのSNDが互いに接続するときに、SLANが形成される。全てのSNDは、メッシュ形成で共にネットワーク形成される。
【0071】
SNDがSLANを発見して参加する少なくとも2つの異なるタイプの実施形態が存在する。第1のタイプの実施形態は、自己組織化ネットワーク(self-organizing network)である。SNDは、例えば、これに限定されないが、ゼロコンフィギュレーションネットワーク、AppleのBonjour、マルチキャストDNS、及び他の同様のプロトコルなどのローカル検出を用いて、ピアツーピアネットワークを形成する。
【0072】
ネットワーク編成プロセスの例示的な実施形態では、
図5を参照すると、個々のSNDは、特定のSSIDを検索することによって、同様のデバイスを探すことからプロセスを開始する(500)。これらのSSIDは、通常は隠されており、すなわち、SSIDはブロードキャストされない。(SSIDを隠すことはWi-Fiセキュリティのための一般的な方法であるが、ここでの目標は、クライアントデバイスを接続しようとしている間、アクセスできないSSIDでユーザを混乱させないことである)。ある実施形態では、SSIDが既知であると、SNDは、従来のソフトウェア認証(SSID+パスワード)の何れかを使用して直接接続を試行する。より高いセキュリティのために、一実施形態では、SNDは、トランスポート層セキュリティ(TLS)などのプロトコルを使用してサーバと安全な通信を行う。サーバは、SSIDのための特定のパスワードを配信する(恐らくは単一のSNDに固有である)。他の形式の安全な認証も利用することができる。その後、第1のSNDは、第2のSNDに接続(510)する。
【0073】
接続されると、SNDは、最初に、AppleのBonjourのようなシステムを介して他のデバイスと相互作用することができる。SNDは、その名前を作成し(ネットワークに問い合わせることによって一意であることを保証する)、ローカルネットワーク上の他のSNDに当該名前を公開する(515)。一実施形態では、SNDは、その一意のメディアアクセス制御(MAC)アドレスを名前に使用する。SNDは、SLAN上の他の全てのデバイスのサービスレコード(例えば、能力、名前、アドレス、ポート、その他)を問い合わせる(520)ことができる。これにより、ネットワーク上の1又は2以上のSNDが、これらのレコードで応答する(523)。多くの実施形態では、応答する必要のあるSNDの数を低減するマルチキャストDNSキャッシング方式が存在する。また、このような要求は、他のSNDが自身のレコードを更新するのに使用することができる。この時点で、新しいSNDは、それ自身のローカルレコード530を形成するのに十分な情報を持っている。
【0074】
本発明の実施形態の幾つかが、標準的な実施構成の特徴とは異なる場合がある方法がある。
【0075】
第1に、一実施形態では、有効なSLANネットワークはSNDのみを含むので、問い合わせされたときに全てのデバイスが能力を有することになる。幾つかの実施形態では、チャタリングを低減するために、SNDは、応答する固有の順序(名前によるアルファベット、IPアドレスによる数値、接続時間による年齢、その他)を有することができる。リストの最初のものは、ネットワーク全体のレコードセットで応答する。そのSNDが、あるタイムアウト内に応答を送信しない場合、リストの2番目が応答を送信し、以下同様である。
【0076】
第2に、幾つかの実施形態では、デバイスに到達するために何ホップが必要かを示すネットワーク内の接続のリストが送信される。逆に、表1と同様の情報のテーブルが、SLAN内のSNDに送信される。
【0077】
実施形態における別の違いは、ネットワーク上の特定のコンテンツを検索するために、同様のブロードキャストプロトコルが使用されることである。これについては、以下でより詳細に説明する。
【0078】
一実施形態では、SLANは、ネットワークコントローラを含み、ネットワークコントローラアシストネットワークである。一実施形態では、ネットワークコントローラは、典型的なネットワークサーバであり、通常はインターネット又はプライベートネットワーク上に、多くの場合ISPに配置される。このネットワークコントローラは、SLANの位置、SSID、認証パスワード、及びネットワークを形成するための関連情報を受信し、格納し、配信する機能を有する。一実施形態では、ネットワークコントローラはまた、キャッシュされたコンテンツのマッピングと制御キャッシュの決定を記録する。これについては、後述する。
【0079】
一実施形態では、SNDは、ネットワークコントローラと通信して、他のSNDを見つけ、SLANに参加する。一実施形態では、このサーバは、特定のSNDに配置され、又はローカルサーバとして指定される恒久的に接続されたクライアントデバイスに配置される。この場合、最初の接続を確立するために、ISP、インターネット、又はプライベートネットワークを介してサーバにアクセスすることが依然として必要である。他の実施形態では、このサーバは、ISPに配置されるか、又はインターネット又はプライベートサーバの他の場所に配置される。
【0080】
幾つかの実施形態では、ネットワークコントローラは、DNSの役割だけでなく、安全なパスワードソースの役割を果たす。
図6を参照すると、新しいSNDは、範囲内のSSID、隠された及びその他を検索する(600)。SNDは、このリストをセキュアにサーバに送信する(605)。次に、これらのSSIDのうちどれがSNDであり、新しいSNDが接続するのにどれが最も適切であるかを把握するのは、サーバの責任である。その結果、サーバは、当該SSIDとパスワードをセキュアに新しいSNDに送信する(607)。新しいSNDは、他のSND610に接続し、成功又は失敗のメッセージをサーバに送信する。次に、サーバは、新しいSND615のための名前及びアドレスを割り当てる。新しいSNDは、将来的の問い合わせに応答するために、その名前とアドレスを記録する。
【0081】
SLANのアドレス指定とマルチホップ
SNDが互いに通信するために、一実施形態では、SNDは、一意の識別子(メディアアクセス制御アドレス又はMACアドレスなど)及びドメイン名(又はmDNSを使用して割り当てられたIPアドレス)を有する。上記の説明は、これらの名前がどのように割り当てられるかを示し、ある実施形態では、ローカルに格納されたリストを有するピアツーピア方法を介して、他の実施形態では、割り当てとリストがリモートサーバによって処理される。
【0082】
DNS又はSLANネットワークリストにより、何れかのSNDは、例えば、ファイル転送プロトコル(FTP)及びHTTPなどの従来のプロトコルを使用して、メッセージ及び/又はコンテンツを互いに直接渡すことが可能である。しかしながら、幾つかの実施形態では、この構成と通常のネットワークとの間で相違点がある。これらの実施形態におけるSNDは、別のSNDが幾つの(最小の)ホップ離れているかを認識する。従って、SNDは、遠方の複数ホップのSNDからコンテンツを要求するのがより効率的であるか、又はインターネットから直接要求するのがより効率的であるかを評価することが可能である。本開示の目的では、これは、複数ホップ(Wi-Fiリピータ)対ホップ無しのマルチホップアクセスと呼ばれる。
【0083】
Wi-Fiリピータ技術は、Wi-Fiアクセスポイントの物理的範囲を拡張するのに有用であるが、これは、パケットを繰り返して、より多くの時間及びより多くの無線帯域幅を使用することによって行われる点に留意されたい。マルチホップアクセスを必要とするコンテンツを要求するかどうかを決定する際には、この点を動的に考慮する必要がある。
【0084】
データの発見及び検索
一実施形態では、クライアントがコンテンツへのアクセス(例えば、映画の再生)を要求するとき、最初のステップは、クライアントが許可を得ている(例えば、映画の代金を支払った)ことを認証することである。その認証プロセスは、本開示の範囲外であるが、米国特許第8,751,795号B2明細書、「Secure Transfer and Tracking of Data Using Removable Non-volatile Memory Devices」(参照により本明細書に組み込まれる)に記載されているような、ペイウォール・サーバ又はルールベースのプレーヤ技術との相互作用の何れかが存在することが想定することができる。一実施形態では、少なくとも、要求は、セッションのためのグローバル一意識別子(GUID)及びコンテンツのためのコンテンツ識別子を有する。
【0085】
コンテンツ又はコンテンツの要素全てを見つけるために、ピアツーピア及びネットワークコントローラのような複数のタイプの実施形態を利用することができる。
【0086】
ピアツーピアの実施形態では、要求しているクライアントに接続されたSNDは、ゼロコンフィギュレーションネットワークプロトコルと同様に、SLANに要求をブロードキャストする。コンテンツ全体又はコンテンツの一部(例えば、再構成を可能にするメタデータで識別されたコンテンツの要素)を有するネットワーク内の何れかのSNDノードは、コンテンツを記述する要求に応答する。
【0087】
これらの実施形態では、ネットワークリストが必要ない点に留意されたい。ゼロコンフィギュレーションネットワークプロトコルは、特定のコンテンツに関する検索を含むように拡張される。この場合、SLANのトポロジー又はアドレスリストの何れも事前に知っておく必要はない。要求に対する応答は、サービスレコードを含み、最終的に要求されたコンテンツを有するSNDのアドレスを含む。
【0088】
一実施形態では、ネットワーク上のコンテンツを検索するために、Apple Bonjourプロトコルが使用される。インターネットプロトコル(IP)アドレスとApple Bonjourサービスレコードの間の関係は、公的に入手可能なApple Bonjour開発者向けドキュメント(https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/NetServices/Introduction.html#//apple_ref/doc/uid/TP40002445-SW1)に記載されている。AppleのNSNetServiceのようなAPIライブラリを使用することで、SNDは利用可能なサービスを公開することができる。この場合、サービスは、コンテンツの要素である。一実施形態では、サービスタイプの名称は、slan-contentである。TCP及び所与のサービスの名称は<content-id>である。
【0089】
代替の実施形態では、個々のSNDノードは、要求するSND上に格納されたローカルドメイン名を使用して直接(1つずつ)照会される。代替の実施形態では、SNDノードのローカルドメイン名は、(上記のように)サーバ上に格納される。
【0090】
全ての応答は、利用可能なコンテンツ要素の説明と、それにアクセスするために必要なアドレス指定と共に発信元のSNDに引き渡される。
【0091】
図7は、
図2の2つのSLANを示している。この場合、SND700が、全てのSND701~709にコンテンツ検索メッセージをブロードキャストすると、そのコンテンツを有するSNDのみが応答する。
【0092】
別の実施形態では、BitTorrentに類似したネットワークコントローラシステムが使用される。BitTorrentは、コンテンツ、又はコンテンツの要素がクライアントデバイスに格納されるピアツーピアのコンテンツ配信システムである。コンテンツ及びコンテンツ要素のインターネットプロトコルアドレス及び位置は、トラッカーと呼ばれるネットワークコントローラにリストアップされる。BitTorrentを用いると、コンテンツ又はコンテンツの要素は、Swarmと呼ばれる世界中のどこにでもあるクライアントデバイスに配置することができる。コンテンツ又はその要素にアクセスするには、BitTorrent Trackerが、要求しているクライアントにコンテンツのアドレスを通知し、クライアントが直接コンテンツを要求する。
【0093】
本明細書に記載される幾つかの実施形態は、同じ手法を使用することができる。ネットワークコントローラは、SLAN上にキャッシュされたコンテンツのアドレス及び位置をアカウントする。SNDがコンテンツを要求すると、ネットワークコントローラは、SLAN内のキャッシュされたコンテンツに対するアドレスをそのSNDに通知し、SNDは、コンテンツを直接要求する。
【0094】
この手法を使用するこの発明の実施形態は、BitTorrentに優る幾つかの利点を有する。第1に、BitTorrentでは、多くのISPが提供する不均衡な帯域幅を補償するために、コンテンツは特に幾つかの要素に分割されることが多い。すなわち、アップロード帯域幅は、ダウンロード帯域幅に劣ることが多い。複数の要素が同時に要求された場合、複数のアップロードの加算速度は、要求者のダウンロード速度に一致するように近づくことができる。しかしながら、本明細書で説明するネットワーク構成では、SND間の転送速度は多かれ少なかれ均衡が保たれる。従って、コンテンツを断片化しても、帯域のアンバランスの点で問題にはならない。(コンテンツを要素に断片化する他の理由がある。例えば、断片化することで、キャッシュの負担及び恐らくはローカルWi-Fiの輻輳をSLAN全体に分散させることができる)。
【0095】
BitTorrentに優る別の利点は、キャッシュされたコンテンツがSLAN内でアクセスされることである。ISP、インターネット、又はプライベートネットワークにアクセスする必要はない。従って、コンテンツへのアクセスがより高速になり、ISP、インターネット、又はプライベートネットワークの帯域幅の輻輳に寄与することはない。
【0096】
データ転送
一実施形態では、データ転送は、SLAN内のSNDノード間のインターネットプロトコルルーティングを使用して実現される。ほとんどの場合、ISP又はグレイターインターネットの他の部分を介してコンテンツをルーティングする必要はない。ここで、大きな帯域幅及びレイテンシーの削減が達成される。
【0097】
一実施形態では、SNDは、ハイパーテキスト転送プロトコル(HTTP)GET又はPOSTコマンドを使用して、別の特定SNDからコンテンツを要求する。アプリケーションプログラマーズインタフェース(API)呼び出しにおける最小データは、以下の通りである。
要求: URL<キャッシュされたコンテンツのユニバーサルリソースロケーター(URL)を有するSND>。
エンドポイント:/content_transfer
パラメータ:content_id<string>要求されたコンテンツの識別子
レスポンス: パラメータ:メタデータ<json>コンテンツの全てのメタデータを含む
コンテンツデータ<binary>ファイル
【0098】
コンテンツ又はコンテンツの要素は、SNDノード又はSNDノードに接続されたクライアントデバイスにキャッシュすることができることに留意されたい。
【0099】
BitTorrentで利用されるもの(要素)と同様のコンテンツ分割方式は、単一ノードのキャッシュ負担を軽減することができ、またこれらのノードのコンテンツ転送負担を軽減することができる。これらの方式は、ネットワークのトポロジー、コンテンツのサイズ及び人気度、並びに決定された他の要因によって決定付けられるときに利用される。
【0100】
一実施形態では、ノード間のルーティングは、データパケット経路を最適化する従来のネットワーク技術を使用し、トポロジー及び現在の使用状況を与える。ネットワークのトポロジー、使用パターン、及び進行中の要求が与えられて学習することができる複数のネットワーキング方式がある。LAN及びインターネットで使用されているネットワーク最適化及びコンテンツキャッシングアルゴリズムの多くは、SLANで利用することができる。
【0101】
上述したように、一実施形態では、要求しているSNDは、特定のコンテンツに対するゼロコンフィギュレーション要求を送信し、応答なし又は1又は2以上の応答の何れかを受信する。要求しているSNDが、コンテンツを転送するための最適なソースを決定するための幾つかの方法がある。
【0102】
幾つかの実施形態では、要求しているSNDは、既知のコール&レスポンスソフトウェア機能であるPingを使用して、要求しているSNDと、コンテンツを有するSND又は複数のSNDとの間のレイテンシーを決定する。最も低いレイテンシー(又は帯域幅の能力のような他の要因)を有するコンテンツのソースは、コンテンツを転送するために選択されるSNDである。幾つかの実施形態では、要求しているSNDは、ISP、インターネット、又はプライベートネットワークにもPingを打つ。当該Pingが最も低いレイテンシー(又は他の要因)である場合、コンテンツは直接ダウンロードされる。
【0103】
幾つかの実施形態では、要求しているSNDは、全てのソースからコンテンツを要求する。受信した第1のコンテンツパケットは持続される。他の要求はキャンセルすることができる。
【0104】
幾つかの実施形態では、例えば表1で定義されるようなネットワークのトポロジーは、コンテンツがナビゲートしなければならないWi-Fiリピータ、ネットワークホップの数に基づいて転送性能を予測するのに使用される。これは、上記の2つの方法よりも複雑な方法で、転送のレイテンシーを推定するだけである。
【0105】
データキャッシング
上記の記載では、コンテンツ又はコンテンツ要素がSND上でローカルにキャッシュされることを説明している。どのコンテンツをどれくらいの期間キャッシュするかを決定する方法が複数あることが述べられている。コンテンツキャッシング方式を最適化するための当業者には周知の広範囲に及ぶ技術リストは全て、本明細書で説明される実施形態にて使用することができる。
【0106】
しかしながら、一実施形態では、SLANにおけるキャッシュは、幾らか希な(しかしながら、固有ではない)特性を有する。SLANにわたってキャッシュされるコンテンツは、実際には、コンテンツ又はコンテンツ要素がSLAN内のSNDのうちの1又は2以上を物理的にキャッシュする分散キャッシュである。これらのSNDは、多くの実施形態において、場所、能力(例えば、キャッシュサイズ、転送速度、その他)、及び持続性(すなわち、オンラインアップタイムが異なる場合がある)の点でクラウドソースである。従って、SLANのためのコヒーレントなキャッシュ方式を作成するための課題が存在する。
【0107】
このキャッシュの課題には、幾つかの解決策がある。幾つかの実施形態では、個々のSNDは、コンテンツをキャッシュするときに他のSNDを単に無視する。恐らくは、ISP、インターネット、又はプライベートネットワークへの要求の前に、SLAN上のコンテンツに対する要求が成功せずに行われたものと思われる。従って、SLANからではなく、ISP、インターネット、又はプライベートネットワーク接続から取得された新しいコンテンツは、固有であると仮定することができる。
【0108】
一実施形態では、SNDは、クライアントデバイスからコンテンツの要求を受信すると、プロキシサーバとして動作し、最初に自身のキャッシュから、次にSLANからコンテンツを要求する。コンテンツが見つからない場合、SNDはインターネット上のコンテンツサーバにコンテンツを要求する。コンテンツの応答が届くと、SNDはそのコンテンツをローカルにキャッシュする。
【0109】
他の実施形態では、ネットワークコントローラは、SNDを通過するときに特定のコンテンツをキャッシュするように特定のSNDに指示するのに使用される。応答時には、ネットワークコントローラは、SNDにコンテンツを応答してキャッシュするように指示するフラグ又は他の情報を含む。更に他の実施形態では、コンテンツと共にキャッシュされたコンテンツソースSNDから渡され、SNDにコンテンツをキャッシュするか否かを導く情報(例えば、位置、ホップ数、その他)を示唆するメッセージがある。
【0110】
SND上でコンテンツをキャッシュすることに加えて、幾つかの実施形態では、コンテンツ又はコンテンツ要素は、SLAN内のSNDノードに接続されているクライアントデバイス上に配置されてアクセスされる。これらの実施形態において、クライアントデバイス上のコンテンツは、SNDキャッシュの仮想拡張とみなされる。再び
図2を参照すると、一実施形態では、クライアントデバイス212上に存在するコンテンツは、SND204上のキャッシュの一部とみなされる。SND204は、コンテンツに対する要求を受信すると、クライアントデバイス212からコンテンツを照会して要求し、その後、元の要求者にこれを渡す。もちろん、クライアントデバイス上のコンテンツは、ユーザによって制御され、SNDキャッシュと同じ一貫性及び不変性で利用できない可能性がある。ユーザは、いつでもコンテンツを削除するか、又はデバイスを切断することができる。
【0111】
幾つかの実施形態では、特定のコンテンツは、SLAN上の幾つかのSNDで事前対応的にダウンロードされキャッシュされるという意味で「プリロードされる」。一実施形態では、ネットワークコントローラは、コンテンツを受信してキャッシュするようにSNDに指示するよう設計されたAPIを使用する。一実施形態では、ネットワークコントローラは、ハイパーテキスト転送プロトコル(HTTP)POST要求でSNDのインターネットプロトコル(IP)アドレスを使用して、SNDにコンテンツをキャッシュし、コンテンツを提供するように指示する。他の実施形態では、この機能のために異なるAPIが使用される。どのコンテンツがプリロードされるかは、幾つかの要因の関数である。例えば、一実施形態では、コンテンツは、SLAN上のユーザの消費行動を分析する人工知能アルゴリズムによって予測される。別の例では、コンテンツは、ユーザが購読している一連のコンテンツ(例えば、テレビシリーズ)の一部である。更に別の例では、コンテンツは、コンテンツプロバイダからのコンテンツのプロモーションパッケージの一部である(例えば、Home Box Officeからの最新の提供物)。
【0112】
プリロードされたコンテンツを有する幾つかの実施形態では、特定のユーザが接続されることが多いSLANを知っているネットワークコントローラが存在する。サーバは、当該SLAN内のSNDがコンテンツをダウンロードすることを事前対応的に要求するか、或いはSNDに直接コンテンツを送信する。これはまた、SLANが仮想コンテンツキオスク(後述)である実施形態においても同様である。他の実施形態では、SNDは、ユーザが接続したときに、SLAN上にまだ存在しない何れかの推論的コンテンツをコンテンツプロバイダから事前対応的に要求する。
【0113】
どのコンテンツが持続し、どれが所与のSNDのキャッシュから削除されるかを決定するための学習的及び発見的の両方の多くのアルゴリズムが存在する。前述の一般的なヒューリスティックは、最もアクセス数の少ないコンテンツを新しいコンテンツに置き換えることである。しかしながら、プリロードされたコンテンツ、特に仮想コンテンツキオスク機能のためのコンテンツは、異なる基準の影響を受ける可能性がある。
【0114】
データ及びネットワークのセキュリティ
本発明の実施形態は、データトラフィックのために従来のネットワークセキュリティを使用する。例えば、トランスポート・レイヤー・セキュリティ(TSL)及びセキュア・シェル(SSH)を含め、SNDにプリインストールされた又はSNDによって要求された証明書を使用することが可能である。
【0115】
コンテンツのセキュリティは、(一般的に)ソースにてコンテンツを暗号化することによって達成される。SNDは、一般に、コンテンツを復号化しない。SNDは、コンテンツを適切にキャッシュし配信するために、コンテンツ又はコンテンツ要素のアイデンティティを知ることだけが必要である。
【0116】
コンテンツ・セキュリティは、様々な方法によって達成することができる。一実施形態では、米国特許第8,751,795号B2、「Secure Transfer and Tracking of Data Using Removable Non-volatile Memory Devices」(参照により本明細書に組み込まれる)で見出された技術を使用する。これは、デジタル著作権管理の暗号化、追跡、及びルールベースの再生を備えた専用プレーヤを含む。この実施形態では、許可されたプレーヤのみがコンテンツを復号化し、再生することができる。
【0117】
ローカルピアツーピアバーサスネットワークコントローラ
上述したように、ネットワークへの接続、データの検索、及び決定をキャッシュするために異なる実施形態が可能である。各事例において、これらの機能は、ローカルに又はピアツーピアを介して実行することができる。或いは、これらの機能は、ネットワークコントローラを使用して実行することができる。
【0118】
一実施形態では、ピアツーピアで接続する場合、SNDは、SLAN信号を表す隠されたSSIDを検索し、そのネットワークに参加する。一実施形態では、ネットワークコントローラを用いて接続する場合、SNDは、見ることができるSSIDのリスト(及びオプションとしてその位置)をアップロードし、ネットワークコントローラは、参加するためのSSID及びパスワードを提案する。
【0119】
一実施形態では、ピアツーピアを介して検索する場合、SNDは、修正されたゼロコンフィギュレーションメッセージをネットワークにブロードキャストし、コンテンツを有するSNDが応答する。一実施形態では、ネットワークコントローラで検索する場合、SNDは、SLANの検索エンジンとして機能するネットワークコントローラからコンテンツアドレス指定指示を要求する。
【0120】
一実施形態では、ピアツーピアを介してキャッシュするとき、SNDは、そのコンテンツがどこか他のSLAN上にあるかどうか(及び他の多くの可能なパラメータ)に基づいて、コンテンツをキャッシュする決定を行う。一実施形態では、ネットワークコントローラを用いてキャッシュする場合、どのデータをキャッシュするかをSNDにシグナリングするのはネットワークコントローラである。
【0121】
実施形態の説明において、接続、検索、及びキャッシュのための機能は、ピアツーピア又はネットワークコントローラを用いて促進されるものとして提示されてきた。しかしながら、多くの実施形態において、SNDは、機能の1つ、2つ、又は3つ全ての方法の何れかを実行することが可能である。更に、これらの機能は、SLAN内の全てのSNDで同じ方法で実行される必要はない。また、これらの機能は、同じSNDによって毎回同じ方法で実行される必要もない。これらの機能は、SNDの異種混在中で共存できる。
【0122】
同様に、ネットワークコントローラの実施形態は、異なることが可能である。接続、検索、及びキャッシュ機能は、同じネットワークコントローラによって実行される必要はなく、論理ドメインの同じ場所においてさえ実行される必要はない。ネットワークコントローラの異種混在が存在することができる。
【0123】
一実施形態では、ネットワークコントローラ機能は、SNDにおいて物理的にインスタンス化される。すなわち、キャッシュされたコンテンツの位置、SNDアドレス(又はマルチキャストDNS)、及びコンテンツをキャッシュしプリロードするためのAPIは、SNDによって実行される。SNDは、サーバに直接接続されるか、又はサーバがSNDに組み込まれる。この実施形態は、ネットワークコントローラがISPのSLAN側にあり、ISPを介した通信が不要であるという利点がある。そうでない場合、コンテンツの検索及びコンテンツのキャッシュ又はプリロードのための同じAPIコールは、上述と同様に動作する。
【0124】
キオスク又はSpeedSpotの配信を実行するSLAN
これまで説明した実施形態では、クライアントデバイスは、SNDによってブロードキャストされた従来のWi-Fiアクセスポイント信号に接続され、このクライアントデバイスは、従来の方法、すなわち、SSID信号を選択し、パスワードを入力することによってこのWi-Fiアクセスポイントに接続したものと仮定される。しかしながら、幾つかの実施形態では、SLAN及び/又はSNDは、米国特許第10,104,046B2号の「Content Distribution Systems and Methods」(引用により本明細書に組み込まれる)に記載されているように、コンテンツ配信「キオスク」又はSpeedSpotの機能を実行する。この場合、キオスク消費者クライアントデバイスは、キオスク消費者クライアントデバイス上のアプリケーションを使用して接続し、機能を実行する。
【0125】
一実施形態では、バックグラウンドでアプリケーションを実行するクライアントデバイスは、Wi-Fiアクセスポイントから特定のSSIDを検索する。このSSIDは、汎用SLAN名である。次に、アプリケーションは、クライアントデバイス上の既存のWi-Fi接続を切り替えて(もしあれば)、SSID及び認証情報(例えば、プログラムされたパスワード)を使用してSLANに接続する。次いで、クライアントデバイス上のアプリケーションは、事前に許可されたコンテンツを要求し、これをダウンロードする。プロセスが完了すると、クライアントデバイス上のアプリケーションは、元のWi-Fiネットワーク(もしあれば)に再接続する。
【0126】
これらの実施形態は、上述した接続、検索、転送、及びキャッシングの機能を利用する。実際、これらの実施形態は、ここで説明した新たな機能に加えて、上述したようなクライアントデバイスに使用することができる。これらのキオスクは、多くの実施形態において、SND及びSLANの付加的な機能である。
【0127】
キオスクの実施形態は、幾つかの点で典型的なSND/SLAN機能とは異なる。幾つかの実施形態では、「キオスク」は、製品を引き付け販売するためのブランディングを有する物理的デバイスである。他の実施形態では、「キオスク」は、単にSLANに接続するSND Wi-Fiアクセスポイント信号である。言い換えると、キオスクの考え方は仮想的なものである。これらの実施形態では、SLANはキオスクである。
【0128】
多くの実施形態において、クライアントデバイスは、ソフトウェアを有する。一実施形態では、このソフトウェアは、(1)ユーザの支援なしにSLANのWi-Fi信号を認証して直接接続する、(2)コンテンツを購入又はレンタルするための取引又はトランザクションの認証を行う、及び(3)ユーザがSLANへの接続を行うことができる物理的場所を見つけるのを支援するなど、多くの機能を実行する。
【0129】
上述したように、幾つかの実施形態では、コンテンツは、SLAN内のSNDにプロアクティブに配信(プリロード)される。上述したように、プリロードのために選択されたコンテンツは、コンテンツトラフィックを測定している学習アルゴリズムによって予測することができる。これは、上述したクライアントデバイスの場合と同じように、キオスク機能にも拡張することができる。
【0130】
しかしながら、キオスクの実施形態の幾つかでは、プリロードされるコンテンツは、コンテンツプロバイダによって提供されるセットライブラリである。例えば、最新の映画リリース又はゲームハイライトをプリロードすることができる。同じ実施形態は、キオスクユーザ(つまり、ソフトウェアを介して自動的に接続するクライアントデバイス)及び従来のクライアントデバイス(クライアントSSID信号に対する認証を介して接続されるクライアントデバイス)の両方に対してこのサービスを提供できることに留意されたい。
【0131】
言い換えれば、ユーザが自分のISPに接続するためにSNDを取得する場合、そのSND、及び場合によっては接続されているSLANは、自動的に他のユーザのための「クラウドソーシング」キオスクとして機能することができる。
【0132】
SLANに接続されたISP間の動的なロードバランシング
一実施形態では、SLANネットワークは、ISP間のロードバランシングに使用される。この場合、SLANのSNDは、2又は3以上の異なるISPに接続される。何れかの所与の時間において、ISPからSNDへの帯域幅は変化することができる。これらの実施形態では、SNDがSLANによってローカルに提供できない(すなわち、ISPを経由しなければならない)要求を有する場合、ISPの帯域幅を測定することが可能である(Ping及び当業者に知られている他のソフトウェアを使用して)。ISPの帯域幅がある基準を下回ることが分かった場合、SNDは、現時点でより良い性能を有するISPに接続されているSLAN上のSNDを見つける要求をすることができる。次いで、最初のSNDから、より性能の良いISPに接続されている応答SNDに要求がされ、このようにしてコンテンツが転送される。
【0133】
クライアント端末
SNDに接続することができる多くのクライアントデバイスが存在し、更に多くのものが発明されている。一実施形態では、クライアントデバイスは、コンピュータ、タブレット、及び携帯電話を含む。これらのデバイスは、SND及びSLANキャッシュコンテンツを利用するために、アプリケーションを実行する必要がない。一実施形態では、従来の要求に対して、SNDは、ローカル又はインターネット上のコンテンツを見つけるためにプロキシサーバとして動作する。
【0134】
しかしながら、一実施形態では、これらのクライアントデバイスがMo-DVのMo2Goビデオ配信サービスと互換性のあるアプリケーションを実行している場合、デバイスは、SND又はSLANに自動的に接続し、事前に許可されたコンテンツにアクセスすることが可能である。一実施形態では、この自動接続は、SNDが互いに接続する方法のような、当技術分野で周知の技術を用いて実行される。例えば、クライアントデバイス上のアプリケーションは、フォアグラウンド又はバックグラウンドの何れかで動作し、Mo2Goが有効なSNDを示すような特定のSSIDをスキャンする。次に、アプリケーションは、ネットワーク接続を切り替えてSNDに接続し、コンテンツをダウンロードし、元のネットワーク接続に切り替わる。これは、ユーザへの通知及び/又は許可要求の有無にかかわらず実行することができる。
【0135】
一実施形態では、別のクライアントデバイスは、セットトップボックスである。これらのデバイスは、ケーブル及び衛星信号をデジタルモニタ信号に変換し、インターネットにアクセスし、テレビユーザインタフェースを提供するために一般的に使用される。この場合も同様に、これらのデバイスは、ソフトウェアを使用することなく、SND又はSLAN内のコンテンツキャッシュを利用することができる。しかしながら、一実施形態では、Mo-DVのMo2Go互換ソフトウェアが実行され、これによってセットトップボックスが事前許可されたコンテンツにアクセスできるようにする。
【0136】
更に別の実施形態では、クライアントデバイスは、デジタルビデオレコーダー(DVR)である。一実施形態では、これはセットトップボックスと一体化されており、このデバイスは、ユーザの指示に従ってコンテンツをキャッシュする。一実施形態では、SNDがDVR上のコンテンツを検索して転送できるようにするために、DVR上でソフトウェアを実行する。これにより、DVRのコンテンツは、SND及びSLANの分散コンテンツキャッシュの一部となる。
【0137】
一実施形態では、SNDとクライアントデバイスの機能は、1つのデバイスに統合される。
【0138】
SNDの伝搬
本発明の実施形態は、クライアントデバイスのために、ネットワークの第1のポイントでコンテンツキャッシュを作成し、ネットワーク帯域幅を本質的に解放する可能性を有する。レイテンシー、帯域幅使用率のこの潜在的な減少、及びコンテンツ配信におけるより優れた予測可能性及び一貫性は、高く評価される特徴である。消費者にとっては、より良い体験ができるという利点がある。ISPは、帯域幅及びキャッシュの需要が低減される可能性があるという利点がある。バックボーンのバックエンドネットワーク及びソースサーバ会社は、帯域幅の削減と性能の向上による利点がある。ネットワークデバイス製造メーカは、競争力を高めるために異なる設定及びチューニングを施したSNDを提供することができる。また最後に、コンテンツプロバイダは、より良い体験を提供し、よりアクセスしやすくなることによる利点を提供する。
【0139】
現在、コンテンツ配信及びWi-Fiアクセスに複数のモデルがある。あるモデルでは、企業がプライベートネットワークを構築し、複数のWi-Fiアクセスポイントを設置する。特に会社のプライベートネットワークが複数の社員に多くの同じコンテンツを配信している場合、これらのWi-Fiアクセスポイントの一部又は全部をSNDに置き換えることで、明らかに利点が得られる。同様に、ISPに直接接続する複数のSNDを設置し、SLANは会社で設置したSNDに限定することもできる。
【0140】
一部の場合、企業が顧客向けにWi-Fiアクセスポイントをセットアップしている。喫茶店、空港、及びスタジアムなどの場所では、需要の多い領域でこの技術を使うことで大きな利点になる可能性がある。これは、コンテンツ配信キオスクには特に最適な環境である。
【0141】
一部の場合、ISP(ComcastのXfinityなど)が、顧客にモデム/Wi-Fiアクセスポイントを販売、レンタル、又は提供している。一部の場合、これらのデバイスはまた、「クラウドソーシング」されたWi-Fiホットスポット(Xfinityの場合はxfinitywifiと呼ばれる)を提供する。顧客は、ホットスポットの提供を「オプトアウト」するための技術的インタフェースを備えているが、多くはそうしない。これらのデバイスをSNDに置き換えることで、ISPの顧客には前述の全ての利点が提供され、他の顧客にもキオスク及びSLANアクセスを提供できるようになる。(下記の例を参照)。
【0142】
多くの場合、Wi-Fiアクセスポイントは、何の調整もなく家庭及び企業に配置されている。隣人は、異なる機能を有する異なるISP及びモデム/Wi-Fiアクセスポイントのハードウェアデバイスを有することができる。これらの隣人がSND対応デバイスを購入又はレンタルした場合、本人及び隣人も利点を享受することができる。以下の例を参照されたい。
【0143】
一実施形態では、個々のSNDは、機能の全て又は一部をオプトアウトするように構成される。例えば実施形態では、SNDは、特定の他のSNDが第1の場所で接続することを許可しないようにすることができる。SNDは、特定のコンテンツのキャッシュを禁止することができる。SNDは、SLANから要求するコンテンツを制限することができる。SNDは、そのSNDに接続されているISPに対して、他者がSNDを通じてコンテンツを要求することを阻止することができる。SNDは、特定の又は全ての接続されたクライアントデバイスからのコンテンツの問い合わせ及び要求を阻止することができる。
【0144】
このような禁止事項及びその他多くの事項は、ユーザ又はSNDの所有者(恐らくは企業)によって構成され、状態として保存され、次いで、何らかの機能を実行する前にSNDにより調べることができる。このタイプの設定技術は、一般的で分かりやすく、当業者には周知である。しかしながら、これらの設定が提供する透過性及び制御は、ユーザが本発明を受け入れ可能で、快適に使用するために重要である。
【0145】
SLANの中央管理されたセットの例
本明細書に記載された技術の特徴を更に例示するために、単一のISPネットワークプロバイダによって展開される例示的なシステムについて、このセクションで説明する。この例は、発見、接続、DNS、及びコンテンツ検索についてISPのネットワークコントローラに依存する。
【0146】
この例示的な実施形態では、単一の大規模ISP(例えば、ComcastのXfinity製品)が、多くの顧客にSNDハードウェアを提供する。全てではないにしても、ほとんどのSNDは、モデム、少なくとも2つのWi-Fi信号(クライアントに接続するためのものと、SLANを作成するための隠しネットワーク)、大きなキャッシュメモリ、及びSLAN相互作用を管理するCPU及びソフトウェアを含む同じ専用ハードウェアである。
【0147】
顧客は、これらのSNDを自宅、会社、又は他の好きな場所に設置する。xfininitywifiのホットスポットがComcastの提供するハードウェアから発生するのと同様に、顧客は、ソフトウェア設定によりSLANネットワークからオプトアウトすることができる。
【0148】
ISPサーバは、これらのSNDの位置(GPSが使用されるかどうかに応じてより多く又はより少ない)を知っている。顧客が最初にSNDに電源を入れたときに、SNDは、範囲内にある他の全てのWi-Fi信号全てのSSIDをISPサーバにアップロードする。ISPサーバは、これらのうちどれが自分のSNDでもあるかを把握し、新しいSNDにSLANネットワーク内のSNDの隠しSSIDに参加するよう指示する。ここで、SNDとISPサーバは、特定のSLANのトポグラフィーを知ることができる。一実施形態では、ISPサーバは、この相互接続されたネットワーク情報をデータストアに格納する。
【0149】
その後、新しいSNDは、クライアントデバイスから大きなコンテンツ要素(恐らくは映画)に対する要求を受信し、SNDは、その要求をISPサーバに送信する。ISPサーバは、最初に、SNDのSLAN内でコンテンツ(又はコンテンツ要素)を検索する。SLAN内のどのSNDにもコンテンツがキャッシュされていない場合、ISPはインターネットからコンテンツを要求する。ここで、SNDがISPから(SLANではなくインターネットから)コンテンツを受信すると、これには、ISPサーバからのキャッシュ指示が添付される。次いで、これらの指示に従ってコンテンツをローカルにキャッシュする(SNDに格納する)。一実施形態では、キャッシュ命令は、格納期間、キャッシュからアクセスする前に更新の一貫性をチェックするかどうか、コンテンツを断片化するかどうか、ネットワーク内の他のSNDノードにプッシュするかどうか、後でISPからプッシュされるかもしれない代替コンテンツをどうするか、などの機能を含む。
【0150】
そうでない場合、コンテンツがSLAN内の1又は2以上のSNDにキャッシュされていることが分かれば、ISPサーバは、SNDにローカルにコンテンツにアクセスするように指示する。コンテンツは、通常のネットワーク手段で要求しているSNDに転送される。この例では、SNDは、ISPの中央サーバに対するスレーブとして動作する。SLANの発見、SLANへの接続、コンテンツの発見、キャッシュの指示、コンテンツの転送は、全てISPのサーバによって編成される。学習アルゴリズム及びキャッシング方式のチューニングは全て、ISPのサーバで集中的に行われる。
【0151】
実際、ISPサーバは、ネットワーク間の効果的なブリッジを妨げる信号の孔、又は特定のノードのキャッシュメモリの不足など、SLANネットワークの弱点を発見することができる。例えば、ISPは、機器の変更又は新しい(顧客以外の)ノードの物理的な設置により、ネットワークの物理的なトポロジーを事前対応的に変更することができる。
【0152】
アドホックに形成及び管理されるSLANの例
これらの例示的な実施形態では、SLANは、互いの範囲内にあるSNDのピアツーピアの相互作用によって形成される。このアドホックネットワーク、又は何れかの個々のSNDは、ネットワーク機能の一部又は全部についてネットワークコントローラに依存する場合もあれば、依存しない場合もある。
【0153】
SNDは、最初に電源を入れたときに、隠されたセカンダリSLAN Wi-Fiネットワークを探す。ネットワークを見つけると、SNDは、安全なパスワード又は認証されたトランザクションを介してこのネットワークに参加する。
【0154】
前の例と同様に、新しいSNDは、クライアントデバイスから、大きなコンテンツ(恐らくは映画)に対する要求を受信する。しかしながら、この実施形態では、SNDは、コンテンツ又はコンテンツの一部を検索しているそのネットワーク上の全てのSNDに修正Bonjour要求を送信する。
【0155】
前の例と同様に、SLAN内のSNDの何れにもキャッシュされたコンテンツが見つからない場合、SNDは、インターネットからコンテンツを要求する。ここで、SNDがインターネットからISPを介してコンテンツを受信すると、コンテンツは、予め設定され、学習され、又はコンテンツに付随されるキャッシュ指示に従って、ローカルにキャッシュされる(SNDに格納される)。キャッシュ指示は、格納期間、キャッシュからアクセスする前に更新の整合性をチェックするかどうか、コンテンツを断片化するかどうか、ネットワーク上の他のSNDノードにプッシュするかどうか、後からプッシュされるかもしれない代替コンテンツをどうするかなどの機能を含む。
【0156】
SLAN内のSNDの1又は2以上にキャッシュされたコンテンツが見つかった場合、要求SNDは、コンテンツを有するSND及び恐らくはインターネットをPingし、どのコンテンツソースが帯域幅とレイテンシーの点で最適であるかを決定する。その後、要求しているSNDは、そのコンテンツのソースに直接要求する。次いで、コンテンツは、通常のネットワーク手段を介して要求しているSNDに転送される。
【0157】
SNDとSLANの動作に関する追加技術
以下は、SND及びSLANと相互作用するための新しい技術である。これらは、限定ではないが、SNDを接続してSLANを作成する技術、キャッシュされたコンテンツの発見、SND間のホップ数の管理、ブロックチェーンレッジャーとビットトレントによるコンテンツの管理、スマートスピーカーデバイスの使用、SNDなしのSLANとの相互作用、DVRとの相互作用、仮想DVRとしての動作、SLANでのコンテンツホスティングを含む。
【0158】
Wi-Fiを使ったネットワーク作成及びBonjourを使ったコンテンツ検索
一実施形態では、メッシュネットワークは、ソース(要求)及びデスティネーションデバイス間でメッセージ及びデータを渡すために相互接続されたネットワークである。古典的なメッシュネットワークでは、エンドポイントデバイス(クライアントデバイス及び従来のWi-Fiアクセスポイントなど)、例えばインターネットなどのより大きなネットワークに接続されるゲートウェイデバイス、及びエンドポイントとゲートウェイとの間でメッセージを転送するリピータデバイスが存在する。一実施形態では、SNDは、所与のメッセージとメッセージの要求者に対するネットワーク内の相対位置(トポロジー)とに応じて、これらの機能の何れかを実行する。
【0159】
一実施形態では、SNDは、モデムを介したネットワーク接続と、クライアントデバイスへの接続専用のWi-Fi信号と、SLANメッシュネットワークへの接続専用の第2のWi-Fi信号とを有する。クライアントデバイスがSND上で見つかったデータを要求する場合、SNDは、プロキシサーバとエンドポイント(この場合、データソースエンドポイント)の両方の機能を果たす。クライアントデバイスが、SLAN上で見つかるが、接続されているSND上にないデータを要求する場合、SNDは、プロキシサーバとして機能し、データを有するSLAN上のSND及び/又はデバイスに要求をリダイレクトする。要求しているSNDと応答するSNDとの間には、複数のホップ又はリピータが存在することができる。この場合、SNDはリピータとして機能している。クライアントデバイスがSLAN上で見つからなかったデータを要求する場合、SNDはゲートウェイデバイスとして動作する。
【0160】
メッシュネットワーク技術は周知であり、複数のベンダによって提供される。これらのネットワークは、通常、自己設定である。このため、新しいデバイスは、自動的にメッシュに参加することができる。また、メッシュネットワークは、異なるノードでのサービスの中断に適応することができるという意味で、自己回復型である。メッシュネットワークの従来のノードは、トポロジーに応じてゲートウェイ、リピータ、エンドポイントとして機能するが、これらのノードは、要求するデバイスと応答するデバイスとの間でメッセージを受け渡しする以上のことは行わない。従来のメッシュネットワークのノードには、プロキシサーバ、キャッシング、ゼロコンフィギュレーションネットワークの機能はない。
【0161】
一実施形態では、SLANアーキテクチャは、メッシュネットワークに追加する。メッセージ及びデータの受け渡しに加えて、SLANのノード(SND)はまた、データのキャッシュリポジトリ、プロキシサーバ、及びクライアント要求のためのゼロコンフィギュレーションサービスプロバイダである。場合によっては、キーリポジトリ、又はプロキシノードにおけるサービスの中断は、SLANの性能に有害な影響を与えることになる。一実施形態では、SLANトポロジーは、SNDによって少なくともローカルに知られている。データが移動する距離(例えば、ホップ数)及びSLANの全体の大きさは、検索、転送、及びキャッシング方式について考慮される。これについては、後述する。
【0162】
一実施形態では、SLANトポロジーは、データベースを有するサーバによってグローバルに知られている。このトポロジーを考えると、データがキャッシュされる場所及びプロキシ要求が切断される場所に関する決定は、グローバルに行われる。これは、ISP又は他のネットワークサーバが、SLAN/SNDがコンテンツをプリロードして格納することを要求し、これによってコンテンツのダウンロードを開始又は引き起こすアプリケーションにおいて特に重要である。一実施形態では、このサーバは、ネットワークの外側にあり、例えばクラウドサーバである。一実施形態では、このサーバは、SNDの1つであるか、又はSNDに直接接続されている。
【0163】
一実施形態では、SND、又はSLAN全体のキャッシュコンテンツは、接続されたネットワーク、例えば、インターネットに利用可能である。このようにして、SLANは、SLANに地域的に近接するインターネットに接続されたデバイスのためのCDNとして機能する。これと同様に、SND及びSLANは、後述するBit Torrent及びBlockchain Video Streamingなどの分散コンテンツ配信方式のノードとして機能する。
【0164】
また、従来のメッシュネットワークと異なるのは、各SNDにおけるゼロコンフィギュレーションコール(例えば、Bonjourコール)の取り扱いである。一実施形態では、直接接続されたメッシュ内の全てのSNDを識別するための公開、発見、及び解決がある。Bonjour構文を使用して、例えば、SNDサービスの公開は、インスタンス名(例えば、SND識別、又はSND MAC番号)、サービスタイプ(例えば、_snd)、及びドメイン(例えば、_tcp.local)を含む。
【0165】
一実施形態では、SNDリポジトリに位置する特定のコンテンツを見つけるための公開、発見、及び解決がある。Bonjour構文を使用して、例えば、SNDサービスの公開は、インスタンス名(例えば、コンテンツ識別又はハッシュ)、サービスタイプ(例えば、_snd_content)、及びドメイン(例えば、_tcp.local)を含む。
【0166】
検索、転送、キャッシュのためのホップの管理
SLANの一実施形態では、各SNDは、ローカルSLANに参加し、ソースのURL又はホップ数に関係なく、Bonjour様のコンテンツ要求を行う。一実施形態では、SNDのほとんど又は全てが、SLANに完全に問い合わせるために要求を繰り返す。この実施形態は、コンテンツソースのURLを見つけるが、多くの冗長な繰り返し要求を有することができる。これらの冗長な要求は、ネットワークの性能に有害な影響を与える可能性がある。
【0167】
冗長な要求を低減するために、一実施形態では、SLANの接続トポグラフィー(すなわち、どのSNDが互いに直接接続され、間接的に接続されたSNDがホップ、すなわち繰り返し要求を通じてどのように接続されるか)のマップが作成される。
図8に示す例を参照すると、811は、SND801A~804A、805AB、及び806ABを有する直接接続型メッシュネットワーク(A)を示している。812は、SND807B~810B、805AB、及び806ABを有する直接接続されたメッシュネットワーク(B)を示す。805ABと806ABは全てのSNDに接続されているが、他のSNDはA SNDかB SNDのどちらかにしか接続されていないことに留意されたい。
【0168】
以下に説明する方法は、各SNDが、フルカバレッジで繰り返される要求の最小数のために、どの要求を他のどのSNDに繰り返すかのローカルマッピングを作成するプロセスの一実施形態を示している。
【0169】
一実施形態では、SLANに接続した後、各SNDは、SLANに参加するための登録プロセスの一部として、SLANに登録する以下の方法を実行する。
ステップA:新しいSNDは、直接接続された各SNDにその接続データを送信するよう要求する。この要求は、接続データ要求である。一実施形態では、これは、何れのSNDによっても繰り返されないゼロ構成ネットワーク要求で達成される。
従って、直接接続されたSNDのみが応答する。
ステップB:各SNDは、その接続データで応答する。一実施形態では、そのデータは、(少なくとも)応答するSNDの識別、応答するSNDが接続されている全てのSND識別のリスト、及び応答するSNDがメッセージを繰り返すSNDのリストを含む。一実施形態では、リストは、応答SNDがメッセージを繰り返す対応するSNDと接続されている全てのSNDを含む(以下の例を参照)。
ステップC:要求SNDは、直接又は他のSNDがメッセージを繰り返すことによって、自分が接続されているが他のSNDが接続されていないSNDがあるかどうかを決定する。もしそうであれば、要求SNDは、一意に接続されたSNDをその繰り返しメッセージリストに追加する。
ステップD:要求SNDは、それが直接接続されていないが、他のSNDが接続されているSNDがあるかどうかを決定する。そのようなSNDがある場合、要求SNDは、次にこれらのSNDに直接要求を送信し、要求SNDを他のSNDのリストに含ませてメッセージを繰り返すように求める。この登録プロセスにより、ネットワークに参加した時間に依存するSNDがメッセージを繰り返す階層が形成される。すなわち、SNDがどのSNDに対してメッセージを繰り返すかを決定するのは加入時のみであり、その際に、トポロジー(例えば、LAN)内の既存のSNDが既に持っているメッセージ繰り返しの役割を引き継ぐことはない。
【0170】
例えば、
図8を参照して、805AB、806AB、810Bを除く全てのSNDがこの方法を実行したと仮定する。
最初に、805ABがネットワークに参加する。
ステップA:805ABは、直接接続されている全てのSNDに接続データを要求する。
ステップB:805ABは、801A、802A、803A、804A、807B、808B、809Bから接続データを受信する。(なお、806AB及び810BはまだSLANに参加していない。)接続データは、例えば、以下のようなJSON形式とすることができる。
{
"SNDID":"801a",
"connections":["802A","803A","804A"]
"repeat ":{
"802A":"なし",
"803A":"なし",
"804A":"なし"
}
}
ステップC:805ABは、SND801A、802A、803A、804Aについて、SND807B、808B、809Bにメッセージを繰り返し、その逆もまた然りと決定する。
ステップD.805ABは、直接接続されていないSNDが存在しないと決定する。従って、805ABの接続データは以下の通りである。
{
"SNDID":"805AB"。
"connection":["801A","802A","803A","804A","807B","808B","809B"],
"repeat":{
"801A":["807B","808B","809B"],"809B"],
"802A":["807B","808B","809B"],
"803A":["807B","808B","809B"],
"804A":["807B","808B","809B"],
"807A":["801A","802A","803A","804A"],
"808A":["801A","802A","803A","804A"],
"809A":["801A","802A","803A","804A"]
}
}
【0171】
ここで、この例では、810Bがネットワークに参加する。ステップA:810AはBonjour要求を行う。ステップB:810Bは、805AB、807B、808B、809Bからデータを受信する。また、805AB、807B、808B、809Bは、810Bとの新しい接続を反映させるために、接続データを更新する。ステップC:810Bは、信号を繰り返す必要があるSNDが存在すると決定する。次いで、ステップD.810Bは、805ABに対して、801A、802A、803A、及び804Aに対するメッセージを繰り返すように要求を行う。805ABは、810Bに対する新しいリピートサービスを取り込むために、接続データを更新する。
【0172】
ここで、この例では、806ABがネットワークに参加する。806ABはステップAを行い、ステップBで全てのSNDからコネクションデータを受信する。ステップCで、806ABは、直接接続するSNDの全てが、直接又は805ABがメッセージを繰り返すことによって、互いに接続されていると決定する。ステップDでは、806ABは、そのメッセージを繰り返す必要がある他のSNDが存在しないと決定する。
【0173】
このように、各SNDがその直接接続を知り、そのうちのどれが互いに接続されているかを知っている各ノードに対してローカルに知られている直接接続マッピングを有することによって、メッセージが渡されるときに、各SNDは、メッセージを受け取るであろうSNDを知り、どのSNDにメッセージを渡すべきかを知っているので、このトポロジーが与えられると、その直接接続されたSNDの全て又は一部だけがメッセージを受信したかどうかを知ることができる。SNDは完全なカバレッジを得るためにメッセージを繰り返し、2以上のSNDがメッセージ送信者とメッセージを受信していないSNDの両方に接続されている場合、これらのSNDのうちの1つだけがメッセージを繰り返す。この結果、重複するメッセージはSNDによって受信されないため、メッセージの受け渡しが削減される。
【0174】
一実施形態では、メッセージは、メッセージを何回繰り返すかのカウントと共に送信される。例えば、カウントがゼロである場合、メッセージは、どのSNDによっても繰り返されない。カウントが1である場合、カウントは0にデクリメントされ、その後、SNDはメッセージを受け渡す。以下同様である。この方法を用いると、メッセージングの範囲と繰り返し回数が制御される。
【0175】
一実施形態では、メッセージは、サービスに対するZeroConf(又はBonjour)要求である。しかしながら、この場合、サービスは、発信元のSNDが望むコンテンツ(又はコンテンツの一部)である。SNDが要求されるコンテンツを有する場合、そのSNDのIPアドレス又はURIが発信元のSNDに送られる。次いで、発信元のSNDは、直接(或いは、繰り返される中間SNDの連鎖を利用して)データ転送を要求することができる。
【0176】
なお、この方法は、新しいSNDをSLANに容易に取り込むことができるという利点がある。しかしながら、対処すべき2つの問題がある。1つは、2又は3以上のSNDが同時にSLANに到着した場合のレースコンディションをどのように管理するかである。2つ目は、SNDがSLANから脱落した場合にどのように適応するかである。
【0177】
新しいSNDが同時に到着した場合のレースコンディションを処理するための幾つかの方法が存在する。一実施形態では、各SNDからの接続データに、いつ更新されたかを示すタイムスタンプが含まれる。接続データの何れかの更新時点が、現在時点に近すぎる場合、SNDは、かなり潜在的にランダムな遅延(例えば、数秒から数分)の後に処理を繰り返す。接続データの何れかの更新時間が、現在時点に近すぎるかどうかは、予め定められた時間期間に基づき、更新時間がその所定の時間期間内(例えば、その閾値内)であれば、SNDが接続データ要求を再送するようにする。
【0178】
一実施形態では、1つのSNDがコントローラとして動作し、他のSNDの各々に対して、登録方法の実行(リセット)を順次指示する。一実施形態では、最も低いMACを有するSNDは、ネットワーク(例えば、LAN)のコントローラとして機能し、リセットを命令する。一実施形態では、登録プロセスのリセットは、繰り返しを介して伝搬される。このようにして、SLAN全体をリセットすることができる
【0179】
一実施形態では、SNDは、中央サーバ(例えば、インターネット上又はISP)から信号を受信し、トポロジー内の全てのSNDで登録プロセスを実行することによってネットワークをリセットする。この場合、中央サーバは、トポロジー(例えば、LAN)全体に対してリセットを指示することができる。
【0180】
一実施形態では、中央サーバは、SNDの各々から接続データを要求することができる。この情報を用いて、SLANの全体の接続マッピングを決定することができる。一実施形態では、このマッピングは、分析、性能測定、SNDを追加することによってネットワークを改善する場所の決定、及び/又は利用する最良のキャッシング方式の決定のうちの1又は2以上に使用される。
【0181】
他の問題は、SNDがネットワークから離れるときにマッピングをリセットすることである。一実施形態では、離脱するSNDが、離れているSLANの残りに信号通知することを可能にするパワーダウンシーケンスが存在する。離脱するSNDは、離れていることをSLANに信号で伝え、その接続データを送信する。残りのSNDは、接続データを解析して、離脱するSNDの繰り返しサービスを置き換えることができる共通の接続があるかどうかを確認する。例えば、前述のSLANを参考にすると、SND805ABが離脱した場合、SND806ABが共通接続を有する要求メッセージの繰り返しを全てSND806ABが受け持つことができる。
【0182】
一実施形態では、SNDの離脱は、指定された第1のSNDから始まるネットワークのシリアルリセットをトリガーする(例えば、MAC順)。言い換えれば、ネットワークトポロジー(例えば、LAN)からSNDが削除されると、ネットワークのリセットが発生し、リセットにより登録プロセスが繰り返される。一実施形態では、リセットは、コントローラ(例えば、別のSND、最低MACを有する別のSND、中央サーバ、その他)によって開始することができる。
【0183】
一実施形態では、シャットダウンシーケンスがない場合、又は電源が直ちに失われる場合、SNDは、直接接続されたSNDからの応答を求めるなど、定期的にpingを打つことによって、失われたたノードを検出する。
【0184】
一実施形態では、SLANは、スケジュール又はタイムアウトカウンタで自動的にリセットされる。SLAN内の1つのSNDから別のSNDへのデータ転送が必要とする繰り返し数又はホップ数は、ネットワーク全体の性能及び動作に直接関係する。一実施形態では、要求メッセージは、ホップ制限、すなわち、許容ホップ数を表す整数と共に送信される。要求を繰り返す各SNDにおいて、ホップリミットは1つずつデクリメントされる。ホップ制限がゼロの要求が到着した場合、受信側のSNDはそれを繰り返さない。
【0185】
コンテンツソーシング、認可、分析のためのブロックチェーンレジャー
インターネット上のビデオ配信のほとんどは、例えばAWS、Google、Microsoft、Akamaiなどの大企業によって独占されている。インターネット上でのビデオ配信が爆発的に増加する中、集中型ストリーミングシステムを分散型システムで破壊する機会がある。このような例がBitTorrentである(後述)。しかしながら、このネットワークは、コンテンツの格納と配信を編成するために、単一の中央サーバに依存している。多くの状況において、この単一のサーバは、単一障害点、セキュリティリスク、及び/又はボトルネックである。
【0186】
ブロックチェーン技術は、中央サーバ及び認証局を介さずに、安全なクラウドソース型の信頼できるレッジャーを作成する。ビデオ配信に使用する場合、ブロックチェーンレッジャーは、高度に暗号化された分散コンテンツを指し、そのコンテンツの認証を処理し、ブロックチェーン技術を使用してそのコンテンツへの全てのアクセスを記録する。
【0187】
一実施形態において、SNDは、分散型コンテンツのブロックチェーンマイニングリソース(すなわち、レッジャーを更新する)として動作する。一実施形態では、SNDは、他のソースからのコンテンツを暗号化して格納し、そのコンテンツをブロックチェーンレッジャーに組み込む。
【0188】
一実施形態では、SNDは、ブロックチェーンレッジャーを使用して、分散コンテンツ及び/又はそのコンテンツのための認可情報を見つける。この情報を使用して、SNDは、コンテンツを要求し、コンテンツを復号し、これをクライアントデバイスに送信することができる。
【0189】
一実施形態では、SLAN上のSNDの1又は2以上は、ブロックチェーンレッジャーのマイニングとコンテンツの格納の両方を行うノードとして動作する。SLANに格納されたコンテンツとブロックチェーンレッジャーは、SLANだけでなく、インターネット上(1又は2以上のSNDのゲートウェイ接続を介して)でも利用可能である。
【0190】
一実施形態では、SND又は集合的なSLANは、ブロックチェーンレッジャーのマイニング及び/又はコンテンツの格納のためのクレジット(ビットコインのマイニングと同様)を授与される。ビジネスモデルによれば、このクレジットは、SNDの所有者(又はSLANの集合的所有者)によって、多くの方法、例えば、ストリーミングビデオの購入又はレンタル、ビットコインで償還されることが可能である。これにより、ユーザはSNDを購入することで、コンテンツ取得コストを削減することなどが可能になる。
【0191】
SLAN上のビットトレント
上述したように、一実施形態では、SLAN内のSNDの一部又は全部がBit Torrentネットワークに参加する。この周知の分散型ビデオ配信モデルでは、コンテンツは要素に分割され、インターネットリソースを使用するのではなく、ローカルマシンに格納される。しかしながら、古典的なBit Torrentモデルでは、全てのコンテンツ要素の位置をマッピングするデータベースを有する中央サーバがあり、転送にはインターネットが使用される。
【0192】
SNDの一実施形態では、コンテンツの要素は、SNDキャッシュに格納される。これらの要素は、SLAN上の他のSNDだけでなく、インターネット上の何れかの場所でBit Torrentネットワークに参加している他のデバイスにもアクセス可能である。言い換えれば、SNDはまさにBit Torrentデバイスとして動作する。
【0193】
一実施形態では、単一のSNDがBit Torrentネットワークのトラッカー(データベースを有する中央サーバ)の役割を果たす。
【0194】
一実施形態では、SLAN内の複数のSNDが、Bit Torrentネットワークのトラッカーの役割を果たす。Bit Torrentの要求がSNDに入ってくると、そのSNDはそれをSLAN上の別のSNDに転送することができる。これにより、Bit Torrent の要求に応答する複数のサーバが可能になる。ある実施形態では、SNDは共通のBit Torrentトラッカーデータベースにアクセスする。ある実施形態では、SNDはBit Torrentトラッカーデータベースのコピー・バージョンを使用する。
【0195】
SNDのハードウェア及び機能を他のネットワークデバイスに組み込むこと
一実施形態では、SNDプロキシ及びキャッシング機能(及び必要なメモリ及びコンピューティングハードウェア)は、スマートスピーカー(例えば、Amazon Echo、Google Home、Apple HomePod)に組み込まれる。ビデオコンテンツが(音声コマンドによって)要求されると、スマートスピーカーは、SND/スマートスピーカー上でローカルにコンテンツのプロキシ検索を行い、次にSLAN上で行い、次にインターネットに行う。
【0196】
一実施形態では、スマートスピーカーは、通常のWi-Fiアクセスポイントを介してSLANにアクセスするためのソフトウェアを含む(「SNDハードウェアなしでSLANにアクセスする」のセクションで後述するように)。
【0197】
一実施形態では、スマートスピーカーは、SNDのWi-Fi信号機能も含み、SLANの一部として動作する。本質的に、SNDはスマートスピーカーであり、又は2つのデバイスは1つとして機能する。
【0198】
一実施形態では、スマートスピーカーは、従来のSNDに接続され、SNDを介してコンテンツ要求を渡す。一実施形態では、スマートスピーカーは、専有要求(専有サーバ、例えば、AWS、Google Cloud、iCloudと直接通信するために使用)を、SNDが理解できる従来のコンテンツ要求に翻訳する。
【0199】
一実施形態では、SNDは、スマートスピーカーからの独自の要求を解析するために必要なソフトウェアを有する。一実施形態では、SND/スマートスピーカーは、プロプライエタリサーバからの翻訳を要求する。
【0200】
SNDハードウェアを使用しないSLANへのアクセス
デバイスがSNDに接続され、コンテンツを要求すると、SNDは、上述のように、SLANを越えてそのコンテンツに対するプロキシ要求を実行する。一実施形態では、SLAN上のコンテンツは、従来のWi-Fiアクセスポイントを用いてアクセスされる。
【0201】
一実施形態では、要求デバイスが接続されているWi-FiアクセスポイントがSND又はSLANの一部でない場合、要求デバイスは、アプリケーションソフトウェアを使用して、ローカルSLANを直接見つけて接続する(二次Wi-Fi信号を使用せず)。その後、要求は上記のように進行する。完了すると、アプリケーションは元のWi-Fiアクセスポイントに再接続する。
【0202】
一実施形態では、デバイスは、ソフトウェアアプリケーションを使用して、SNDでない、又はSLANに接続されていないWi-Fiアクセスポイントに、SLANとの接続を行うように指示する。その後、Wi-FiアクセスポイントはSLANの中継器として機能し、SLANの範囲を拡大する。しかしながら、SLANの通信プロトコルに準拠したクライアントアプリケーションソフトウェアで、SLANを介したトランザクションを仲介する必要があるのがデメリットである。
【0203】
デジタルビデオレコーダー(DVR)をリポジトリとして使用すること
前述のように、SNDに接続されたDVRなどのクライアントデバイスは、SLANにコンテンツを提供することができる。コンピュータ、タブレット、携帯電話などのデバイスでは、SNDとコンテンツを提供するデバイスとの間のやりとりは、デバイス上のアプリケーションにプログラムされている。しかしながら、これらのデバイスは、SNDに接続されていないことが多いため、デバイスに格納されているコンテンツは、SLANを介したアクセスに対する信頼性が低くなっている。
【0204】
これに対し、DVRは通常、ネットワーク上で常に利用可能である。DVRの主な目的は、SNDのキャッシュと同じように、後で消費するためのコンテンツを格納することである。しかしながら、ほとんどのDVRは、カスタムソフトウェアを実行せず、SNDとDVR間のアクセスのためのAPIを持っていない。従って、SNDとDVRの接続はDVRの種類に依存することになる。
【0205】
一実施形態では、新しいDVRは、SND内のソフトウェアと相互作用するAPIを有するように設計される。一実施形態では、DVRは、コンピュータ(又はSND)との同期のための特定のプログラムを有する。例えば、AT&TのDIRECTV(商標)は、GenieCO(商標)と呼ばれるソフトウェアを有する。
【0206】
一実施形態では、SNDは、デバイスで利用可能なコンテンツを知っており、そのコンテンツにアクセスする能力を有する。
【0207】
SLANを「仮想」DVRとして使用すること
上述したように、SNDは、Mo2Go(商標)のSpeedSpot(商標)と同じ機能を実行するために、コンテンツをプリロードすることができる。SLANの相互接続性と転送能力を考えると、コンテンツをキャッシュするSNDは、コンテンツを検索するためにそれほど重要ではない。
【0208】
この同じ「プリロード」機能を利用して、SLANを介した「仮想」デジタルビデオレコーダー機能を提供することができる。従来のDVRは、ユーザが特定の時間に放送された番組を選択し、後で視聴するために格納することができる。これと同じ機能をSNDで提供することができる。
【0209】
仮想DVRの一実施形態の利点は、余分なハードウェアが必要ないこと、コンテンツをSLAN全体で共有することができ、帯域幅使用及びストレージにおける冗長性を低減すること、コンテンツはどのデバイスでも利用できること、コンテンツはユーザの家のインターネット接続又はDVR状態にかかわらず常に利用できること、サービスはソフトウェア及びパラメータ変更を通じてアップグレード、変更、又は改善できること、である。
【0210】
一実施形態では、ISP、コンテンツプロバイダ、又は他のインターネットサービスが、コンテンツを選択するためのソフトウェアを提供し、インターネット内のオンラインでコンテンツを格納(又は第三者からアクセス)する。この実施形態は、上述したSLAN及びSNDの実施形態とは独立したものとすることができる。
【0211】
SLANが仮想SNDとして機能することができる幾つかの方法がある。一実施形態では、ISPは、捕捉する番組を選択するためのソフトウェア及び/又はウェブサイトを作成する。次に、ISPは、SLAN上の1又は2以上のSNDにコンテンツを「ロード」する。例えば、ユーザは、仮想DVRに記録するライブ放送、例えばスポーツイベントを予め選択する。次いで、イベント発生時に、ISPはSND APIコールを使用して、ストリームコンテンツ(又はイベント後のコンテンツファイル)をロードする。SLAN内の複数のユーザがイベントを事前選択した場合、SLAN内のどのSNDにもイベントコンテンツのコピーを1つだけ配信すればよい。
【0212】
一実施形態では、コンテンツプロバイダ(又はサードパーティ)は、コンテンツを選択するためのソフトウェア及び/又はウェブサイトを提供する。SNDは、コンテンツプロバイダから直接コンテンツを要求する。まず、SNDは、SLAN上の他の全てのSNDをチェックして、コンテンツが既に要求されているかどうかを確認する。一実施形態では、これはBonjourのようなブロードキャスト要求によって実行される。既に要求されている場合、SNDは、コンテンツをダウンロードせず、SLAN内のコンテンツのアドレスを確認する。
【0213】
コンテンツがSLAN上で要求されていない場合、SNDはコンテンツプロバイダから直接コンテンツを要求する。ライブストリーミングの場合、一実施形態では、イベントの開始にタイミングを合わせて要求し、ストリームデータをキャプチャする。VODの場合は、帯域幅の制約を考慮した上で、都合の良い時間にコンテンツを要求し、ダウンロードする。(一実施形態では、コンテンツプロバイダは、ライブストリームからVODコンテンツを作成し、イベント後に、それを要素又は完全なコンテンツとしてSNDに提供することを選択する)。
【0214】
一実施形態では、ユーザ要求が格納され、コンテンツはユーザ視聴のために格納される。削除は、ユーザ要求又はコンテンツのタイムアウト(又は他のビジネスルール)により行われる。
【0215】
ローカルにホストされたコンテンツの作成と管理
一実施形態では、個々のSNDは、Webコンテンツのアップロードとダウンロード機能、Webページのメッセージングとブログ(例えば、Facebook(商標)、NextDoor(商標))、及び他のWeb機能の両方を提供するWebサーバとして動作する。(従来のWi-Fiアクセスポイントの多くには、ユーザ設定制御インタフェース用のウェブサーバが既に含まれている)。Webサーバソフトウェア(Apache HTTP Web Serverなど)と従来のWebプログラミングツール(JavaScript、HTMLなど)を活用することで、SNDをWebサーバとして機能させることができる。
【0216】
SNDのWebサーバは、セキュリティ設定及び構成により、直接接続されたデバイス用のプライベートサーバ、SLANに接続されたデバイス専用のローカルサーバ、ISPゲートウェイを使用してインターネット経由でアクセスできるWebサーバとして使用することが可能である。
【0217】
一実施形態では、標準的なウェブセキュリティとリンケージを使用して、所与のウェブページのコンテンツは、SND、又はSLAN、又はインターネットを介してワールドワイドウェブ(WWW)で供給される。
【0218】
WWWにコンテンツを提供する個人用ウェブサーバのアプリケーションは、複数かつ周知である(例えば、ウェブページ、写真及びビデオホスティング、メッセージング)。
【0219】
個人用サーバ(例えば、SNDに直接接続されたデバイスと何れかのローカルリピータに限定)のアプリケーションは、インターネットと相互作用することなく、ユーザデバイス間でデータにアクセスすることを含む。カレンダー、ドキュメント、バックアップデータなどがその例である。
【0220】
固有な機能は、SLANに接続されたデバイスのみがアクセスできるWebサイト及びサービス、すなわちNWW(Neighborhood Wide Web)を設定できることである。NextDoorのように、隣接者だけに限定したメッセージ及びブログのページを作るサイトがある。しかしながら、隣接者だけがコンテンツにアクセスできるように確保することは、ハガキを使って郵便で交換することを含む、困難なプロセスである。SLANネットワークを用いると、メンバーシップは、直接接続された隣接者に限定される。しかも、そのコンテンツがWWWに到達することはない。利用可能なWWWのツール全て使えば、このようなNWWのアプリケーションは、隣接者の想像力によってのみ制限される。
【0221】
本明細書には、幾つかの例示的な実施形態が記載される。
【0222】
実施例1は、1又は2以上の既存のネットワークの一部である複数のアクセスポイントであって、1又は2以上の既存のネットワークにおける機能とは独立してポイントツーポイントリンクを使用して複数のアクセスポイントのうちの2又は3以上のアクセスポイント間でデータを転送するローカルエリアネットワーク(LAN)を形成するために個別にアドレス指定し互いに通信するように動作可能な複数のアクセスポイントを備え、
複数のアクセスポイントの各アクセスポイントは、コンテンツを転送するための転送要求メッセージに応答して、複数のアクセスポイントのアクセスポイントペア間の1又は2以上の直接ポイントツーポイント転送を介して、複数のアクセスポイント内の他のアクセスポイントに転送することができるコンテンツを格納するキャッシュと関連付けられており、各アクセスポイントは、もしあれば、各アクセスポイントがメッセージを繰り返す、複数のアクセスポイントの1又は2以上のアクセスポイントの第1のセットと、第1のセットの各アクセスポイントについて必要に応じてメッセージを受信時にそこから転送される複数のアクセスポイントの1又は2以上のアクセスポイントの第1のリストとを示すマッピングを有し、複数のアクセスポイントにおいて第3のアクセスポイントに直接接続されている2つのアクセスポイントが第3のアクセスポイントに同じメッセージを繰り返さない、ことを特徴とするネットワーク構成である。
【0223】
実施例2は、複数のアクセスポイントの各アクセスポイントが、アクセスポイントのうちの1又は2以上のアクセスポイントの第2のセットに直接接続され、アクセスポイントのうちの1又は2以上のアクセスポイントの第2のセットのどのアクセスポイントがポイントツーポイントリンクで接続されているかを示す情報を有することを任意選択的に含むことができる実施例1のネットワーク構成である。
【0224】
実施例3は、各アクセスポイントがどのアクセスポイントにメッセージを繰り返すかを示す各アクセスポイントのマッピングは、各アクセスポイントがLANに参加したときに初期設定されることを任意選択的に含むことができる実施例1に記載のネットワーク構成である。
【0225】
実施例4は、マッピングが、複数のアクセスポイントのうちの1つのアクセスポイントにより、LANに参加する際に、直接接続されている各アクセスポイントに接続データ要求を送信するステップと、1つのアクセスポイントにより、接続データ要求に応答する各アクセスポイントから接続データを受信するステップであって、接続データは、識別子、応答するアクセスポイントが接続されている全てのアクセスポイントの第2のリスト、及び応答するアクセスポイントがメッセージを繰り返すアクセスポイントのリストを含む、ステップと、直接接続されている何れかのアクセスポイントが、直接接続されている他の何れかのアクセスポイントに直接又は他のアクセスポイントがメッセージを繰り返すことによって接続されていないかどうかを決定するステップと、接続データから、直接接続されているアクセスポイントが直接接続されている他の何れかのアクセスポイントに直接又は別のアクセスポイントがメッセージを繰り返すことによって接続されていないと、1つのアクセスポイントが決定した場合、メッセージが受信時にそこから転送される複数のアクセスポイントの1又は2以上のアクセスポイントの第1のリストに、1つのアクセスポイントを追加するよう何れかのアクセスポイントに要求を送信するステップと、によって作成されることを任意選択的に含むことができる実施例1に記載のネットワーク構成である。
【0226】
実施例5は、直接接続されていない何れかのアクセスポイントが、直接接続されている他の何れかのアクセスポイントに接続されているか否かを決定するステップと、
接続データから、直接接続されていないアクセスポイントが、直接接続されている他の何れかのアクセスポイントに接続されていると、1つのアクセスポイントが決定した場合、直接接続されていないアクセスポイントにメッセージを転送するよう接続されているアクセスポイントに要求を送信するステップと、
を更に含むことを任意選択的に含むことができる実施例4のネットワーク構成である。
【0227】
実施例6は、接続データ要求がBonjour要求を含むことを任意選択的に含むことができる実施例4のネットワーク構成である。
【0228】
実施例7は、アクセスポイントのうちの1つのアクセスポイントの離脱は、LANのリセットをトリガーし、残りの各アクセスポイントは、直接接続されている各アクセスポイントに接続データ要求を送信することを任意選択的に含むことができる実施例4のネットワーク構成である。
【0229】
実施例8は、接続データが、接続データに関して最後に更新が行われた時点を示すタイムスタンプ情報を含み、接続データを受信すると、1つのアクセスポイントは、タイムスタンプ情報に基づいて接続データが接続データ要求の所定の時間内に更新されたかどうかを決定し、更新された場合、接続データ要求を直接接続されている各アクセスポイントに再送することを任意選択的に含むことができる実施例4のネットワーク構成である。
【0230】
実施例9は、複数のアクセスポイントのうちの1つのアクセスポイントが、LANのコントローラとして機能し、LANのリセットをトリガーするように動作可能であることを任意選択的に含むことができる実施例4のネットワーク構成である。
【0231】
実施例10は、コントローラとして機能する1つのアクセスポイントが、複数のアクセスポイントにおける全てのアクセスポイントの中で最も低いMACを有することを任意選択的に含むことができる実施例9のネットワーク構成である。
【0232】
実施例11は、LANのコントローラとして機能し、LANのリセットをトリガーするように動作可能な中央サーバを任意選択的に含むことができる実施例1のネットワーク構成である。
【0233】
実施例12は、1つのアクセスポイントが、複数のアクセスポイントのうちの1又は2以上のアクセスポイントをアドレス指定し、コンテンツを要求した1つのアクセスポイントに結合されたクライアントのための所望のコンテンツのソースとしてキャッシュコンテンツが利用可能である1又は2以上のアクセスポイントから選択するように動作可能であることを任意選択的に含むことができる実施例1のネットワーク構成である。
【0234】
実施例13は、1又は2以上の既存のネットワークの一部である複数のアクセスポイント間で通信が発生するネットワーク構成において使用する方法であって、
複数のアクセスポイントが、アクセスポイントが個別に互いにアドレス指定することによって、1又は2以上の第1の既存のネットワークにおける機能とは独立してポイントツーポイントリンクを使用して複数のアクセスポイントのうちの2又は3以上のアクセスポイント間でデータを転送するローカルエリアネットワーク(LAN)を形成する、方法において、
1つのアクセスポイントによって、各アクセスポイントは、もしあれば、各アクセスポイントがメッセージを繰り返す、複数のアクセスポイントの1又は2以上のアクセスポイントの第1のセットと、第1のセットの各アクセスポイントについて必要に応じてメッセージを受信時にそこから転送される複数のアクセスポイントの1又は2以上のアクセスポイントの第1のリストとを示すマッピングを生成するステップであって、複数のアクセスポイントにおいて第3のアクセスポイントに直接接続されている2つのアクセスポイントが第3のアクセスポイントに同じメッセージを繰り返さない、ステップと、
1つのアクセスポイントにより、複数のアクセスポイントのうち所望のコンテンツがキャッシュされている1又は2以上のアクセスポイントを識別するステップと、
1つのアクセスポイントによって、複数のアクセスポイントのうちの少なくとも1つのアクセスポイントに、複数のアクセスポイントのアクセスペア間の1又は2以上の直接ポイントツーポイント転送を介して、1つのアクセスポイントに所望のコンテンツを転送するように要求するステップと、
を含む、方法である。
【0235】
実施例14は、複数のアクセスポイントの各アクセスポイントが、アクセスポイントのうちの1又は2以上のアクセスポイントの第2のセットに直接接続され、アクセスポイントのうちの1又は2以上のアクセスポイントの第2のセットのどのアクセスポイントがポイントツーポイントリンクで接続されているかを示す情報を有することを任意選択的に含むことができる実施例13の方法である。
【0236】
実施例15は、各アクセスポイントがどのアクセスポイントにメッセージを繰り返すかを示す各アクセスポイントのマッピングは、各アクセスポイントがLANに参加したときに初期設定されることを任意選択的に含むことができる実施例13の方法である。
【0237】
実施例16は、マッピングを生成するステップが、
複数のアクセスポイントのうちの1つのアクセスポイントにより、LANに参加する際に、直接接続されている各アクセスポイントに接続データ要求を送信するステップと、
1つのアクセスポイントにより、接続データ要求に応答する各アクセスポイントから接続データを受信するステップであって、接続データは、識別子、応答するアクセスポイントが接続されている全てのアクセスポイントの第2のリスト、及び応答するアクセスポイントがメッセージを繰り返すアクセスポイントのリストを含む、ステップと、
直接接続されている何れかのアクセスポイントが、直接接続されている他の何れかのアクセスポイントに直接又は他のアクセスポイントがメッセージを繰り返すことによって接続されていないかどうかを決定するステップと、
接続データから、直接接続されているアクセスポイントが直接接続されている他の何れかのアクセスポイントに直接又は別のアクセスポイントがメッセージを繰り返すことによって接続されていないと、1つのアクセスポイントが決定した場合、メッセージが受信時にそこから転送される複数のアクセスポイントの1又は2以上のアクセスポイントの第1のリストに、1つのアクセスポイントを追加するよう何れかのアクセスポイントに要求を送信するステップと、を含むことを任意選択的に含むことができる実施例13の方法である。
【0238】
実施例17は、直接接続されていない何れかのアクセスポイントが、直接接続されている他の何れかのアクセスポイントに接続されているか否かを決定するステップと、接続データから、直接接続されていないアクセスポイントが、直接接続されている他の何れかのアクセスポイントに接続されていると、1つのアクセスポイントが決定した場合、直接接続されていないアクセスポイントにメッセージを転送するよう接続されているアクセスポイントに要求を送信するステップと、を任意選択的に含むことができる実施例16の方法である。
【0239】
実施例18は、命令が格納された1又は2以上の非一時的コンピュータ可読記憶媒体であって、
命令が、少なくともプロセッサとメモリとを有するシステムによって実行されたときに、1又は2以上の既存のネットワークの一部である複数のアクセスポイント間で通信が発生するネットワーク構成において使用する方法をシステムに実行させ、
複数のアクセスポイントが、アクセスポイントが個別に互いにアドレス指定することによって、1又は2以上の第1の既存のネットワークにおける機能とは独立してポイントツーポイントリンクを使用して複数のアクセスポイントのうちの2又は3以上のアクセスポイント間でデータを転送するローカルエリアネットワーク(LAN)を形成し、
方法が、
1つのアクセスポイントによって、各アクセスポイントは、もしあれば、各アクセスポイントがメッセージを繰り返す、複数のアクセスポイントの1又は2以上のアクセスポイントの第1のセットと、第1のセットの各アクセスポイントについて必要に応じてメッセージを受信時にそこから転送される複数のアクセスポイントの1又は2以上のアクセスポイントの第1のリストとを示すマッピングを生成するステップであって、複数のアクセスポイントにおいて第3のアクセスポイントに直接接続されている2つのアクセスポイントが第3のアクセスポイントに同じメッセージを繰り返さない、ステップと、
1つのアクセスポイントにより、複数のアクセスポイントのうち所望のコンテンツがキャッシュされている1又は2以上のアクセスポイントを識別するステップと、
1つのアクセスポイントによって、複数のアクセスポイントのうちの少なくとも1つのアクセスポイントに、複数のアクセスポイントのアクセスペア間の1又は2以上の直接ポイントツーポイント転送を介して、1つのアクセスポイントに所望のコンテンツを転送するように要求するステップと、
を含む。
【0240】
実施例19は、ネットワーク構成で使用するデバイスであって、
ネットワーク構成が、
1又は2以上の既存のネットワークの一部である複数のアクセスポイントであって、1又は2以上の既存のネットワークにおける機能とは独立してポイントツーポイントリンクを使用して複数のアクセスポイントのうちの2又は3以上のアクセスポイント間でデータを転送するローカルエリアネットワーク(LAN)を形成するために個別にアドレス指定し互いに通信するように動作可能な複数のアクセスポイントを備え、
クライアントデバイスが、
1又は2以上の既存のネットワークに接続するための第1の通信インタフェースと、
複数のアクセスポイントのうち、1又は2以上の既存ネットワークの一部である1又は2以上のアクセスポイントに個別のアドレス指定を介して接続して、ポイントツーポイントリンクを用いてデータを転送する第2の無線通信インタフェースと、
コンテンツを格納するためのキャッシュと、
第1及び第2の通信インタフェースキャッシュに結合されて、複数のアクセスポイントの個々のアクセスポイントによってキャッシュされた所望のコンテンツを転送するために、第2の無線通信インタフェースを用いて1又は2以上のアクセスポイントへの無線接続を自らセットアップする接続ロジックと、
を備え、
無線接続が、複数のアクセスポイントのうちの1又は2以上のアクセスポイントの少なくとも1つに、複数のアクセスポイントにおける1又は2以上のアクセスポイントとの1又は2以上の直接ポイントツーポイント転送を介して所望のコンテンツの転送を要求するのに用いられる。
【0241】
実施例20は、接続ロジックが、LANの一部であるネットワークコントローラからの入力に応答して、それ自体で無線接続をセットアップするように動作可能であることを任意選択的に含むことができる実施例19のデバイスである。
【0242】
実施例21は、本明細書に記載されるようにSNDを接続してSLANを作成するための方法である。
【0243】
実施例22は、本明細書に記載されるようにキャッシュされたコンテンツを見つける方法である。
【0244】
実施例23は、本明細書に記載されるようにSND間のホップ数を管理するための方法である。
【0245】
実施例24は、本明細書に記載されるように、ブロックチェーンレッジャー及びBit Torrentを介してコンテンツを管理するための方法である。
【0246】
実施例25は、本明細書に記載されるように、スマートスピーカーデバイスを使用する方法である。
【0247】
実施例26は、本明細書に記載されるように、SNDなしでSLANと相互作用するための方法である。
【0248】
実施例27は、本明細書に記載されるようにDVRと相互作用するための方法である。
【0249】
実施例28は、本明細書に記載されるように、SLANを仮想DVRとして動作させるための方法である。
【0250】
実施例29は、本明細書に記載されるように、SLAN上でコンテンツをホストするための方法である。
【0251】
実施例30は、実施例21~29の方法のうちの1又は2以上を実行する装置である。
【0252】
追加の考慮事項
本明細書で使用される「一実施形態」又は「実施形態」への何れかの言及は、実施形態に関連して記載される特定の要素、特徴、構造、又は特性が、少なくとも一実施形態に含まれることを意味する。本明細書における様々な場所での「一実施形態における」という表現の出現は、必ずしも全てが同じ実施形態を指すものではない。
【0253】
本明細書で使用される場合、用語「comprise」、「comprising」、「includes」、「has」、「having」又はその他の変形は、非排他的な包含を保護するものとする。例えば、要素のリストを含む、プロセス、方法、物品、又は装置は、必ずしもこれらの要素のみに限定されず、明示的に挙げられていない他の要素又はこのようなプロセス、方法、物品、又は装置に固有の要素を含むことができる。更に、「又は」は、特に断りのない限り、包括的な「又は」を意味し、排他的な「又は」を意味するものではない。例えば、条件A又はBは、以下:Aが真(又は存在する)でBが偽(又は存在しない)、Aが偽(又は存在する)でBが真(又は存在する)、A及びBの両方が真(又は存在する)、の何れか1つによって満たされる。
【0254】
更に、「a」又は「an」の使用は、本明細書の実施形態の要素及び構成要素を記述するのに利用される。これは、単に便宜上、本発明の一般的な意味を与えるために行われるものである。本明細書は、そうでないことを意味することが明らかでない限り、1又は少なくとも1つを含むように読まれるべきであり、また単数形は複数形をも含む。
【0255】
前述の説明は、説明の目的で特定の実施形態を参照して説明されている。しかしながら、上記の例示的な議論は、網羅的であること、又は本発明を開示された正確な形態に限定することを意図していない。多くの修正及び変形が、上記の教示に鑑みて可能である。実施形態は、本発明の原理及びその実用的用途を最もよく説明し、これによって当業者が、企図される特定の用途に適するように様々な修正を加えた本発明及び様々な実施形態を最もよく利用できるようにするために選択及び説明されたものである。
【0256】
本明細書に続く詳細な説明の幾つかの部分は、コンピュータ・メモリ内のデータビットに対する演算のアルゴリズム及び記号表現の観点で提示されている。これらのアルゴリズムの記載及び表現は、データ処理技術の当業者が、仕事の内容を当業者に対して最も効果的に伝えるために使用する手段である。アルゴリズムとは、本明細書では一般に、所望の結果に至る自己矛盾のない一連のステップであると考えられている。ステップは、物理量の物理的操作を必要とするものである。通常、これらの量は、必須ではないが、記憶、転送、結合、比較、及びその他の操作が可能な電気信号又は磁気信号の形をとる。これらの信号をビット、値、要素、記号、文字、用語、数などと呼ぶことは、主に一般的な使用上の理由から、場合によっては好都合であることが証明されている。
【0257】
しかしながら、これら及び類似の用語は全て、適切な物理量と関連付けられるべきものであり、これらの量に適用される好都合な標識に過ぎないことを留意されたい。以上の議論から明らかなように、特に別段の記載がない限り、本明細書を通じて、「処理」又は「コンピューティング」又は「計算」又は「決定」又は「表示」又は「ネットワーキング」及び同様の用語を利用した議論は、コンピュータシステムのレジスタ及びメモリ内の物理(電子)量として表されるデータを、コンピュータシステムのメモリ又はレジスタ或いは他のこのような情報記憶装置、伝送又は表示デバイス内の物理量として同様に表される他のデータに操作及び変換する、コンピュータシステム又は同様の電子コンピューティングデバイスの動作及び処理を指すことは理解される。
【0258】
本発明はまた、本明細書の動作を実行するための装置に関する。この装置は、必要な目的のために特別に構成することができ、或いは、コンピュータに格納されたコンピュータプログラムによって選択的に起動又は再構成される汎用コンピュータから構成することができる。このようなコンピュータプログラムは、限定ではないが、フロッピーディスク、光ディスク、CD-ROM、光磁気ディスクを含む何れかの種類のディスク、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気又は光カード、又は電子命令を格納するのに適した何れかの種類の媒体などのコンピュータ可読記憶媒体に格納されてもよく、各々がコンピュータシステムバスに結合される。同様に、限定ではないが、モデム、ルーター、Wi-Fiアクセスポイント、Bluetooth、及び他の有線及び無線ネットワーキング・ハードウェア・システムを含む、汎用ネットワーキング装置を利用してもよい。
【0259】
本明細書に提示されたアルゴリズム及び表示は、何れかの特定のコンピュータ又は他の装置に本質的に関連するものではない。様々な汎用システムは、本明細書の教示に従ったプログラムと共に使用することができ、又は必要な方法ステップを実行するためにより特定的な装置を構築することが好都合であることが分かる。これらのシステムの様々な必要な構造は、以上の説明から明らかであろう。更に、本発明は、何れかの特定のプログラミング言語を参照して説明されない。本明細書に記載された本発明の教示を実施するために、様々なプログラミング言語が使用できることが理解されよう。
【0260】
本発明の多くの変更及び修正は、上述の説明を読んだ後の当業者には間違いなく明らかになるであろうが、例示の方法で示され、説明された何れかの特定の実施形態は、限定的とみなされることを意図していないことが理解されたい。従って、様々な実施形態の詳細への言及は、それ自体が本発明の本質とみなされる特徴のみを記載する特許請求の範囲の範囲を限定することを意図していない。
【符号の説明】
【0261】
101 ソースサーバ
102 インターネットノード
106 データパケットパス
103 インターネットサービスプロバイダ
104 モデムルーターアクセスポイント
105 クライアントデバイス
【国際調査報告】