説明

複数のコンピューティング装置に対する1対多データ送信を促進する方法およびシステム

【解決手段】複数のコンピューティング装置への1対多データ送信を促進する方法およびシステムは、複数のコンピューティング装置から、ユニキャストデータ送信を送信する対象であるシンクコンピューティング装置を選択する段階と、選択されなかった各コンピューティング装置において無差別通信モードをイネーブルする段階とを備える。ソースコンピューティング装置は、ユニキャストデータ送信をシンクコンピューティング装置に送信するが、そのユニキャストデータ送信は、選択されなかったコンピューティング装置によっても受信される。

【発明の詳細な説明】
【背景技術】
【0001】
協力的なコンピューティング環境は、ソースコンピューティング装置から多数の送り先もしくはシンクコンピューティング装置へのデータ転送を利用している場合が多い。たとえば、教育的環境において、「教室での協力」では、教師のコンピューティング装置から各生徒のコンピューティング装置へのファイル、映像、およびその他のデータの転送が利用されている。通常、このようなデータ転送を機能させるべく、マルチキャスト、ブロードキャスト、もしくはその他の1対多データ送信が用いられる。
【0002】
マルチキャストもしくはブロードキャスト送信とは異なり、ユニキャスト送信は1対1のデータ送信である(つまり、1つのソースコンピューティング装置から1つの送り先もしくはシンクコンピューティング装置への)。いくつかの通信装置および通信規格は、マルチキャストもしくはブロードキャスト送信よりもユニキャスト送信用に最適化されており、そうでなくとも、ユニキャスト送信においてより良いサービスおよび/もしくは信頼性が得られるようになっている。たとえば、いくつかのアクセスポイント(たとえば、有線もしくは無線のルーター、スイッチ、もしくはハブ)は、ユニキャスト送信をルーティングするのに最適化されている。反対に、マルチキャスト送信では、アクセスポイントは、ローカルエリアネットワーク(LAN)の「ボトルネック」になってしまう可能性があり、それは、アクセスポイントは、ソースコンピューティング装置から(通常、ユニキャスト送信により)受信したデータをローカルエリアネットワークの各シンクコンピューティング装置に送信しなければならないからである。多数のLANが互いに接近して配置されている環境においても、過剰なマルチキャストもしくはブロードキャスト送信は、ネットワーク間の「出血」となる可能性がある。さらに、ユニキャスト送信と異なり、多くのマルチキャスト送信規格においては、データ送信が失敗しやすい、および/または環境によっては誤り率が高くなりやすいリンク層でのデータ再送は規定されていない。したがって、協力的コンピューティング環境では1対多のデータ送信が利用されているのであるが、一般的なマルチキャスト送信では、実施環境によっては要求される信頼性もしくはスループットを提供できない場合がある。
【図面の簡単な説明】
【0003】
本明細書に記載されるシステム、装置、および方法は、添付の図面において、限定としてではなく、例示として図示される。図示を簡略且つ明瞭にするべく、図に示された要素は、必ずしも一定の縮尺で描かれていない。たとえば、明確性を期すべく、いくつかの要素の寸法は、その他の要素に比較して誇張されている。さらに、適切と見なされる場合には、参照符号を図面間で繰り返し使用して、対応物もしくは類似物を示す場合がある。
【図1】ソースコンピューティング装置から複数のコンピューティング装置への1対多データ送信を促進するシステムの一実施形態の簡略なブロック図である。
【図2】図1のシステムのコンピューティング装置の一実施形態の簡略なブロック図である。
【図3】図1のシステムのソースコンピューティング装置により実行される、複数のコンピューティング装置へデータを送信する方法の一実施形態の簡略なフロー図である。
【図4】図1のシステムの複数のコンピューティング装置により実行される、ソースコンピューティング装置からデータを受信する方法の一実施形態の簡略なフロー図である。
【図5】ソースコンピューティング装置から複数のコンピューティング装置への1対多データ送信を促進するシステムの別の実施形態の簡略なブロック図である。
【発明を実施するための形態】
【0004】
本明細書の開示内容の概念は、様々な変更および代替的形態を許容できるのであるが、本明細書の開示内容の特定の模範的な実施形態を図面に例として示し、本明細書において以下に詳細に記載する。しかし、本明細書の開示内容の概念を開示される特定の形態に限定する意図はなく、反対に、添付の特許請求の範囲に定義される本発明の趣旨および範囲に存在する全ての変更、均等物、および代替物を範囲に含めることを意図している。
【0005】
以下の記載では、開示内容をより完全に理解できるようにするべく、ロジックの実装、オペコード、オペランドを特定する手段、リソースを分割/共有/二重化する実施形態、システム要素の種類およびそれらの相互関係、ロジックを分割/統合する選択肢等の数多くの特定的詳細事項を記載する。しかし、このような特定的詳細事項なしでも開示内容の実施形態を実施できることは当業者には理解されよう。別の例では、開示内容を曖昧にしないようにするべく、制御構造、ゲートレベル回路、および完全なソフトウェア命令シーケンスは示さなかった。当業者であれば、過度な実験を行うことなく、ここに含められた記載内容によって、適切な機能を実装することができるであろう。
【0006】
明細書において、「一実施形態」、「ある実施形態」、「例としての実施形態」等と言及される箇所は、記載される実施形態は、特定の特性、構造、もしくは特徴を含むが、全ての実施形態がその特定の特性、構造、もしくは特徴を必ずしも含むものでないことを表す。さらに、このような文言は必ずしも同じ実施形態に言及するものではない。さらに、特定の特性、構造、もしくは特徴がある実施形態と関連させて記載されたとき、このような特性、構造、もしくは特徴を、その他の実施形態と関連させて実現させることは、明示的に記載されるか否かに拘わらず、当業者の知るところである。
【0007】
本開示内容のいくつかの実施形態は、ハードウェア、ファームウェア、ソフトウェア、もしくはこれらの組み合わせにより実装してよい。コンピュータシステムで実装される本開示内容の実施形態には、コンポーネント間のバスに基づく相互接続が1つ以上、および/またはコンポーネント間の2点間相互接続が1つ以上含まれる場合がある。本発明の実施形態は、1つ以上のプロセッサーにより読み出されて実行される、機械読み出し可能有形媒体に格納された命令として実施される場合もある。機械読出し可能有形媒体は、機械(たとえば、コンピューティング装置)により読出し可能な形態で情報を格納もしくは伝送する任意の有形メカニズムであってよい。たとえば、機械読出し可能有形媒体としては、読出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、およびその他の有形媒体が挙げられる。
【0008】
図1を参照すると、複数のコンピューティング装置に対する1対多データ送信を促進するシステム100は、ソースもしくはサーバーコンピューティング装置102と、受信側もしくはクライアントコンピューティング装置群104とを備える。コンピューティング装置102および104は、ネットワーク106を介し、アクセスポイント108を介して、互いに通信可能に連結されている。ソースコンピューティング装置102は、本明細書に記載される機能を実行することが可能な任意の種類のコンピューティング装置として実施されてよい。たとえば、いくつかの実施形態では、ソースコンピューティング装置102は、デスクトップコンピュータ、ラップトップコンピュータ、携帯インターネット機器(MID)、もしくはその他のネットワーク化可能なコンピューティング装置として実施されてよい。
【0009】
コンピューティング装置群104は、複数のコンピューティング装置110を有する。コンピューティング装置110のうちの1つは、ソースコンピューティング装置102からユニキャストデータ送信を受信するシンクコンピューティング装置112として選択されている。以下により詳細に記載するが、シンクコンピューティング装置112は、ランダムに選択されてもよく、または信号品質測定等の何らかの基準に基づいて選択されてもよい。残りのコンピューティング装置110(つまり、非選択のコンピューティング装置114)は無差別モードで構成されており、シンクコンピューティング装置112にアドレス指定されたユニキャスト送信が、非選択の無差別モード可能なコンピューティング装置114のそれぞれによっても受信され、処理されるようになっている。このようにして、1対多データ送信は、ソースコンピューティング装置102からシンクコンピューティング装置112へのユニキャストデータ送信を介して実現される。
【0010】
ソースコンピューティング装置102と同様に、各コンピューティング装置110は、本明細書に記載される機能を実行することが可能な任意の種類のコンピューティング装置として実施されてよい。たとえば、各コンピューティング装置110は、デスクトップコンピュータ、ラップトップコンピュータ、携帯インターネット機器(MID)、もしくはその他のネットワーク化可能なコンピューティング装置として実施されてよい。
【0011】
アクセスポイント108は、コンピューティング装置102と110との間の通信を促進する。アクセスポイント108は、コンピューティング装置102と110とを通信可能に連結することが可能な任意の種類の有線もしくは無線のルーター、スイッチ、ハブ、もしくはその他のネットワーク通信装置として実施されてよい。いくつかの実施形態では、アクセスポイント108は、通信リンク124を介して外部ネットワーク130にも通信可能に連結されている。ネットワーク130は、ローカルエリアネットワーク、ワイドエリアネットワーク、公衆に開放されたグローバルネットワーク(たとえば、インターネット)、もしくはその他のネットワーク等の任意の種類の有線および/または無線のネットワークとして実施されてよい。同様に、通信リンク124は、たとえば、任意の数の無線によるもしくは物理的な接続、ワイヤ、ケーブル、および/もしくはその他の相互接続リンクもしくはパス等の、アクセスポイント108と外部ネットワーク130との間の通信を促すことが可能な任意の種類の有線もしくは無線の通信リンクとして実施されてよい。さらに、ネットワーク130は、コンピューティング装置102および110と遠隔のコンピューティング装置との間の通信を促すべく、任意の数のルーター、スイッチ、介在コンピュータ等の追加的な装置を有してよい。
【0012】
いくつかの実施形態では、ソースコンピューティング装置102およびコンピューティング装置群104は、1つの部屋に設置され、もしくは互いに対してローカルである。たとえば、1つの特定的な実施形態では、システム100は教室に組み込まれる。このような実施形態では、ソースコンピューティング装置102は教師もしくはインストラクターのコンピューティング装置として実施され、コンピューティング装置110は生徒のコンピューティング装置として実施されてよい。もちろん、システム100は、1対多データ送信が要求されるその他の環境もしくは実施条件下で利用してよい。
【0013】
使用時、ソースコンピューティング装置102は、シンクコンピューティング装置112にユニキャストデータ送信を送信することによって、各コンピューティング装置110にファイル、映像、画像、テキスト、および/またはその他のデータを送信するよう構成されている。それを行うべく、ソースコンピューティング装置102は、アクセスポイント108にユニキャストデータ送信120を送信する。ユニキャストデータ送信120は、シンクコンピューティング装置112にアドレス指定もしくは向けられており、シンクコンピューティング装置112のネットワークアドレス、たとえば、媒体アクセス装置(MAC)アドレスを含んでいる。ユニキャストデータ送信120を受信したことに反応して、アクセスポイント108は、ユニキャストデータ送信122をシンクコンピューティング装置112に中継もしくは送信する。ユニキャストデータ送信122も、シンクコンピューティング装置112のネットワークアドレスを含んでいる。しかし、ユニキャストデータ送信122はシンクコンピューティング装置112にアドレス指定されてはいるが、送信122はその他の各コンピューティング装置114にも受信される。通常のネットワークでは、コンピューティング装置114(つまり、コンピューティング装置114の通信回路)は、ユニキャストデータ送信122が特定のコンピューティング装置114にアドレス指定されていないので、送信122を無視するよう構成される。しかし、これらその他のコンピューティング装置114は無差別通信モードで構成されているので、これらコンピューティング装置114もユニキャストデータ送信を受信し、ユニキャストデータ送信は、以下により詳細に記載されるようにコンピューティング装置114によりフィルタリングされ処理される。
【0014】
図2を参照すると、一実施形態では、コンピューティング装置102および110のそれぞれは、プロセッサー200、チップセット204、およびメモリ202を含む。コンピューティング装置102および110は、本明細書に記載される各機能を実行することが可能な任意の種類のコンピューティング装置として実施されて良い。たとえば、上記したように、コンピューティング装置102および110は、デスクトップコンピュータ、ラップトップコンピュータ、携帯インターネット機器(MID)、もしくはその他のネットワーク化可能なコンピューティング装置として実施されてよい。
【0015】
プロセッサー200は、1つのプロセッサーコア206を含むシングルコアプロセッサーとして図上では実施されている。しかし、別の実施形態では、プロセッサー200は、複数のプロセッサーコア206を含むマルチコアプロセッサーとして実施されてよい。さらに、コンピューティング装置102および110は、1つ以上のプロセッサーコア206を含む追加的なプロセッサー200を有してよい。プロセッサー200は、多数の信号経路208を介してチップセット204と通信可能に連結されている。信号経路208は、プロセッサー200とチップセット204との間の通信を促すことが可能な任意の種類の信号経路として実施されてよい。たとえば、信号経路208は、任意の数のバス経路、プリント配線基板のトレース、配線、ビア、介在装置、および/もしくはその他のインターコネクトとして実施されてよい。
【0016】
メモリ202は、たとえば、ダイナミックランダムアクセスメモリ装置(DRAM)、同期型ダイナミックランダムアクセスメモリ装置(SDRAM)、ダブルデータレート同期型ダイナミックランダムアクセスメモリ装置(DDR SDRAM)、および/またはその他の揮発性メモリ装置等の1つ以上のメモリ装置もしくはデータ記憶位置として実施されてよい。さらに、1つのメモリ装置202だけが図2では示されているが、その他の実施形態では、コンピューティング装置102および110は、追加的なメモリ装置を有してよい。
【0017】
チップセット204は、メモリコントローラーハブ(MCH)もしくはノースブリッジ、入出力コントローラーハブ(ICH)もしくはサウスブリッジ、およびファームウェア装置を含んでよい。このような実施形態では、ファームウェア装置は、基本入出力システム(BIOS)データ、および/または命令、および/またはその他の情報を格納するメモリ格納装置として実施されてよい。チップセット204は、多数の信号経路210を介してメモリ202に通信可能に連結されている。信号経路208と同様に、信号経路210は、たとえば、任意の数のバス経路、プリント配線基板のトレース、配線、ビア、介在装置、および/もしくはその他のインターコネクト等の、チップセット204とメモリ装置202との間の通信を促すことが可能な任意の種類の信号経路として実施されてよい。
【0018】
別の実施形態では、チップセット204は、プラットフォームコントローラーハブ(PCH)として実施されてよい。このような実施形態では、メモリコントローラーハブ(MCH)は、プロセッサー200に組み込まれるか、もしくは結合されてよい。さらに、このような実施形態では、メモリ装置202は、チップセット204ではなく(つまり、プラットフォームコントローラーハブではなく)、プロセッサー200に、多数の信号経路212を介して通信可能に連結されてよい。信号経路208と同様に、信号経路212は、たとえば、任意の数のバス経路、プリント配線基板のトレース、配線、ビア、介在装置、および/もしくはその他のインターコネクト等の、メモリ装置202とプロセッサー200との間の通信を促すことが可能な任意の種類の信号経路として実施されてよい。
【0019】
コンピューティング装置102および110は、ネットワーク106を介して互いに通信するための通信装置220も有する。通信回路220は、コンピューティング装置102と110との間の通信を可能にする任意の数の装置および回路で実施されてよい。たとえば、通信回路220は、アクセスポイント108を介してその他のコンピューティング装置102および110と通信するための、1つ以上の有線もしくは無線のネットワークインターフェースカード(NIC)もしくはその他のネットワーク通信カード、モジュール、または回路として実施されてよい。コンピューティング装置110に関して、通信回路220は、ネットワーク106を介して(たとえば、アクセスポイント108から)受信した各データ送信もしくはパケットを、受信したデータパケット/送信に対応するネットワークアドレスに無関係にフィルタリングもしくは処理するべくプロセッサー200に渡す無差別通信モードを可能にする機能を有する。たとえば、無差別モードが可能なコンピューティング装置114がシンクコンピューティング装置112のMACアドレスを含むユニキャストデータ送信を受信したとき、装置114の通信回路220は、受信したデータ送信が各コンピューティング装置114のMACアドレスでなく、シンクコンピューティング装置112のMACアドレスを含んでいるにも拘わらず、データ送信をプロセッサー200に渡す。
【0020】
コンピューティング装置102および110は、追加的な周辺装置、たとえば、データストレージ222、表示装置224、およびその他の周辺装置226等も有してよい。通信回路220、データストレージ222、表示装置224、およびその他の周辺装置226のそれぞれは、信号経路230を介してチップセット204と通信可能に連結されている。信号経路208と同様に、信号経路230は、たとえば、任意の数のバス経路、プリント配線基板のトレース、配線、ビア、介在装置、および/もしくはその他のインターコネクト等の、チップセット204と、通信回路220、データストレージ222、表示装置224、およびその他の周辺装置226との間の通信を促すことが可能な任意の種類の信号経路として実施されてよい。
【0021】
データストレージ装置222は、たとえば、メモリ装置、回路、メモリカード、ハードディスクドライブ、ソリッドステートドライブ、もしくはその他のデータストレージ装置等の、データを短期もしくは長期に記憶するよう構成された任意の種類の装置として実施されてよい。表示装置224は、たとえば、液晶ディスプレイ(LCD)、陰極線管(CRT)ディスプレイ、発光ダイオード(LED)ディスプレイ、もしくはその他の表示装置等の、コンピューティング装置102および110のユーザーにデータを表示する任意の種類の表示装置として実施されてよい。周辺装置226は、入力装置、出力装置、およびその他のインターフェース装置等の、任意の数の追加的な周辺装置であってよい。たとえば、周辺装置226は、コンピューティング装置102および110に入力を与えるキーボードおよび/またはマウスであってよい。周辺装置226として含まれる装置の特定的な数および種類は、たとえば、コンピューティング装置102および110の意図される利用法によって決まる。
【0022】
図3を参照すると、複数のコンピューティング装置にデータを送信する方法300は、ソースコンピューティング装置102によって実行されてよい。方法300は、ブロック302において、コンピューティング装置群104がソースコンピューティング装置102によって判別されることで開始される。そうするべく、各コンピューティング装置110はコンピューティング装置102に登録し、コンピューティング装置102が各コンピューティング装置110のネットワークアドレス(たとえば、MACアドレス)にアクセスを有するようにする。この登録は、手入力により、もしくは自動的に実行してよい。たとえば、いくつかの実施形態では、コンピューティング装置110のネットワークアドレスを手入力によりソースコンピューティング装置102に入力して記憶(たとえば、メモリ202および/またはデータストレージ222に)してよい。または、ソースコンピューティング装置102は、各コンピューティング装置110にネットワークアドレスをソースコンピューティング装置102に送信するように問い合わせもしくは要求してよい。いずれにせよ、ブロック302において、各コンピューティング装置110は、ソースコンピューティング装置102に登録される。
【0023】
ブロック304では、ソースコンピューティング装置102は、コンピューティング装置110のうち1つをシンクコンピューティング装置112として選択する。上記したように、シンクコンピューティング装置112は、ソースコンピューティング装置102がユニキャストデータ送信の宛先とするべく選択したコンピューティング装置である。つまり、以下に記載するように、ソースコンピューティング装置102は、シンクコンピューティング装置112のMACアドレスを含むユニキャストデータ送信を送信する。このユニキャストデータ送信は、各コンピューティング装置110により受信される。
【0024】
ソースコンピューティング装置102は、任意の適切な方法もしくはアルゴリズムを用いてコンピューティング装置110からシンクコンピューティング装置112を選択してよい。たとえば、一実施形態では、ソースコンピューティング装置102は、適切なランダム生成アルゴリズムを使用してコンピューティング装置110からシンクコンピューティング装置112をランダムに選択してよい。または、ソースコンピューティング装置102は、各コンピューティング装置110に関連付けられた何らかの基準もしくはデータに基づいてシンクコンピューティング装置112を選択してよい。たとえば、一実施形態では、ソースコンピューティング装置102は、各コンピューティング装置110の受信信号強度表示(RSSI)測定、各コンピューティング装置110の信号対雑音比(SNR)測定、もしくは、通信品質等に関連するその他のなんらかの測定に基づいて、コンピューティング装置110からシンクコンピューティング装置112を選択するよう構成されている。このような実施形態では、コンピューティング装置110は、ブロック302におけるコンピューティング装置群の登録時に、ソースコンピューティング装置にこのような測定基準を送信するよう構成されてよい。または、この測定は、各コンピューティング装置110に対して手入力で決定されてよい。このような実施形態では、シンクコンピューティング装置112は、この測定に基づいて手入力で選択されてよい。
【0025】
1つの特定的な実施形態では、RSSI、SNR、もしくはその他の信号測定が最低もしくは最悪のコンピューティング装置110をシンクコンピューティング装置112として選択し、シンクコンピューティング装置112による受信エラーによって再送要求の発生を増やす。理解されるべきであるが、データ再送の発生を増やすことにより、各コンピューティング装置110がデータパケット、セグメント、もしくはブロックの完全な一揃いを受信する可能性が高められる。
【0026】
ソースコンピューティング装置102は、シンクコンピューティング装置112を一回、もしくは複数回選択してよい。たとえば、いくつかの実施形態では、ソースコンピューティング装置102は、コンピューティングセッション毎に、もしくは定期的に(たとえば、毎時、毎日、毎週等)シンクコンピューティング装置112を再選択するよう構成されてよい。さらに、いくつかの実施形態では、ソースコンピューティング装置102は、何らかの基準もしくは測定に基づいてコンピューティング装置110からシンクコンピューティング装置112を再選択するよう構成されてよい。たとえば、ソースコンピューティング装置102は、RSSI、SNR、もしくはその他の信号測定が所定の閾値を上回ったとき、シンクコンピューティング装置112からの再送要求の率が所定の閾値を下回ったとき等に、シンクコンピューティング装置112を再選択してよい。このようにして、ソースコンピューティング装置102は、RSSI、SNR、もしくはその他の信号測定が最低、もしくは最低のうちの1つであるコンピューティング装置110がシンクコンピューティング装置112として選択されることを確実にしてよい。
【0027】
ブロック306では、ソースコンピューティング装置102は、選択されたシンクコンピューティング装置112とハンドシェイクする。たとえば、ソースコンピューティング装置102は、シンクコンピューティング装置112に、シンクコンピューティング装置112として選択されたことを通知してよい。応答して、シンクコンピューティング装置112は、シンクコンピューティング装置112として選択されたことに基づいて1つ以上の設定段階(configuration steps)を実行してよい。ブロック308では、ソースコンピューティング装置102は、無差別通信モードをイネーブルするようにその他のコンピューティング装置114のそれぞれに命令する。さらに、ブロック308では、ソースコンピューティング装置102は、どのコンピューティング装置110がシンクコンピューティング装置112に選択されたかをコンピューティング装置114に通知してよい。たとえば、ソースコンピューティング装置102は、シンクコンピューティング装置112のMACアドレスを非選択の各コンピューティング装置114に提供してよい。
【0028】
次に、ブロック310で、ソースコンピューティング装置102は、要求された通りにデータの送信および/または再送をコンピューティング装置110に向けて開始し、所望のデータの転送を実行する。そうするべく、ソースコンピューティング装置102は、シンクコンピューティング装置112にユニキャストデータ送信を送信する。上記したように、ユニキャストデータ送信は、シンクコンピューティング装置112のMACアドレスを含む。しかし、各コンピューティング装置114は無差別通信モードをイネーブルしているので、ユニキャストデータ送信は、シンクコンピューティング装置112に加え、コンピューティング装置114のそれぞれによっても受信され処理される。このようにして、ソースコンピューティング装置102は、コンピューティング装置群104に対して1対多でデータを送信することができる。
【0029】
ブロック310では、ソースコンピューティング装置102は、コンピューティング装置群104にデータを送信するべく任意の適切な送信プロトコルを使用してよい。1つの特定的な実施形態では、ユニキャストデータ送信は、ユーザーデータグラムプロトコル(UDP)のユニキャストデータ送信として実施される。理解されるべきであるが、UDP送信は、通常、送信制御プロトコル(TCP)等のその他の送信プロトコルに比べてプロトコルオーバーヘッドが小さい。さらに、UDPを使用した場合、受信側のコンピューティング装置110の確認要求(acknowledgement requirement)がないので、ネットワーク106上の全体的なトラフィック量と、送信エラーの数とが減るかもしれない。しかし、別の実施形態では、TCPを含むその他の通信プロトコルを使用してもよい。さらに、いくつかの実施形態では、ソースコンピューティング装置102および/またはアクセスポイント108は、選択した通信プロトコル(つまり、UDP、TCP等)の最大セグメントサイズ(MSS)と同じサイズを有するデータパケットを送信して、ネットワーク106上の全体的なトラフィック量をさらに減らすよう構成されている。
【0030】
図1の実施形態では、ソースコンピューティング装置102は、上記したように、まずユニキャストデータ送信120をアクセスポイント108に送信することにより、ユニキャストデータ送信をシンクコンピューティング装置112に送信する。応答して、アクセスポイント108は、ユニキャストデータ送信122をシンクコンピューティング装置112に中継もしくは送信するが、ユニキャストデータ送信は、無差別モードをイネーブルしたコンピューティング装置114によっても受信される。このような実施形態では、ソースコンピューティング装置102および/またはアクセスポイント108は、データ送信のための暗号化アルゴリズムを使用するよう構成される場合も、されない場合もある。たとえば、いくつかの実施形態では、コンピューティング装置102および110は、並びにアクセスポイント108は、有線等価プライバシー(WEP)暗号化アルゴリズムを使用するよう構成されている。このような実施形態では、共有鍵認証もしくはオープンシステム認証を使用してよい。しかし、別の実施形態では、コンピューティング装置102および110、並びにアクセスポイント108により暗号化アルゴリズムが用いられない。
【0031】
または、別の実施形態では、ソースコンピューティング装置102は、アクセスポイント108を迂回してシンクコンピューティング装置112に直接的に指向性通信(directed−communication)のユニキャストデータ送信を送信するよう構成されてよい。たとえば、図5に示されるように、ソースコンピューティング装置102は、シンクコンピューティング装置112に直接的に指向性通信のユニキャストデータ送信500を送信する。そうするべく、ソースコンピューティング装置102およびシンクコンピューティング装置112は、ブロック306のハンドシェイク時に、仮想インターフェースを確立する。図1の実施形態でのように、コンピューティング装置114は無差別通信モードをイネーブルにしており、したがって、指向性通信のユニキャストデータ送信500を受信して処理する。このような実施形態では、ソースコンピューティング装置102およびコンピューティング装置110は、指向性通信のデータ送信用の暗号化アルゴリズムを使用する場合もしない場合もある。たとえば、指向性通信のユニキャストデータ送信500は、WEP暗号化アルゴリズムを使用して暗号化される場合もされない場合もある。
【0032】
しかし、図5の実施形態では、ソースコンピューティング装置102および/またはコンピューティング110は、アクセスポイント108と、したがって外部ネットワーク130と通信するときには、もっと進歩的な暗号化アルゴリズムを使用してよい。たとえば、一実施形態では、ソースコンピューティング装置102およびコンピューティング装置110は、当業技術分野では周知のワイファイ・プロテクテッド・アクセス(WPA)もしくはワイファイ・プロテクテッド・アクセス2(WPA2)暗号化アルゴリズムにより暗号化されうる通信リンク502を介してアクセスポイント108と通信してよい。このように、ソースコンピューティング装置102およびコンピューティング装置110は、WEPを使用して、もしくは暗号化アルゴリズムを使用せずに互いと通信し、WPAもしくはWPA2暗号化アルゴリズムを使用してアクセスポイント108と通信してよい。
【0033】
図4を参照して、ソースコンピューティング装置102からデータを受信する方法400は、各コンピューティング装置110により実行されてよい。方法400は、ブロック402において、コンピューティング装置110がソースコンピューティング装置102に登録することにより開始される。図3に関連して上記したように、コンピューティング装置110は、手入力により、もしくは自動的にソースコンピューティング装置102に登録してよく、それによりソースコンピューティング装置102がコンピューティング装置110のネットワークアドレスにアクセスを有するようにする。たとえば、1つの特定的な実施形態では、コンピューティング装置110は、ソースコンピューティング装置102から受信した問い合わせ要求に応答して、自身のネットワークアドレスをソースコンピューティング装置102に送信する。
【0034】
ブロック404では、コンピューティング装置110は、装置110がシンクコンピューティング装置112として選択されているかを判別する。上記したように、ソースコンピューティング装置102は、ランダムな選択方法もしくは基準に基づいた選択方法を使用してシンクコンピューティング装置112を選択し、その後、コンピューティング装置110にシンクコンピューティング装置112として選択された旨を通知する。さらに、ソースコンピューティング装置102は、その他の装置114には選択されなかった旨を通知してよい。したがって、いくつかの実施形態では、コンピューティング装置110は、ブロック404で、シンクコンピューティング装置112として選択されたか否かについての通知をソースコンピューティング装置から受信する。
【0035】
コンピューティング装置110がシンクコンピューティング装置112として選択された場合、コンピューティング装置110はブロック406においてソースコンピューティング装置102とハンドシェイクする。ブロック406では、コンピューティング装置110は、1つ以上の設定段階(configuration steps)を実行し、ソースコンピューティング装置102とインターフェースをとり、および/またはソースコンピューティング装置102との通信のプロトコルの詳細を設定してよい。たとえば、図5に示す実施形態では、ブロック406において、ソースコンピューティング装置102およびコンピューティング装置110(つまり、シンクコンピューティング装置112)は、装置102および110の間に仮想インターフェースを確立する。
【0036】
次に、ブロック408において、コンピューティング装置110は、ソースコンピューティング装置102からユニキャストデータ送信を受信し始める。上記したように、ユニキャストデータ送信は、コンピューティング装置110(つまり、シンクコンピューティング装置112)のネットワークアドレス(たとえば、MACアドレス)を含んでいる。特定の実施形態によっては、ユニキャストデータ送信は、アクセスポイント108から受信してよく、もしくは、ソースコンピューティング装置102から直接的に受信される指向性通信として実施されてよい。
【0037】
ブロック410において、コンピューティング装置110は、送信エラーが発生したかを判定する。コンピューティング装置110は、各データパケット、ブロック、もしくはセグメントを受信した後に、または定期的に、または所定数のデータパケット、ブロック、もしくはセグメントを受信したときに、このエラーの判定を行ってよい。いくつかの実施形態では、コンピューティング装置110は、各データパケットもしくはブロックを受信したときに、ソースコンピューティング装置102に確認(acknowledgement)を送信するよう構成されてよい。したがって、エラー判定は、いくつかの実施形態ではコンピューティング装置110により、および/または別の実施形態ではソースコンピューティング装置102により実行されてよい。
【0038】
コンピューティング装置110がブロック410において1つ以上のエラーが発生したと判定した場合、コンピューティング装置110は、ブロック412においてソースコンピューティング装置102にエラーを通知する。そうするべく、コンピューティング装置110は、ブロック412でデータパケットもしくはその他のデータの再送要求をソースコンピューティング装置102に送信する。または、エラー検出をソースコンピューティング装置102が実行する実施形態では、コンピューティング装置110は、ブロック412において確認送信(acknowledgement transmission)を送信しないように構成されることで、コンピューティング装置102によって送信エラーが発生したことが判定されて、紛失もしくは破損したデータパケットが再送されるようにしてよい。
【0039】
送信エラーが発生しなかった場合、コンピューティング装置110は、ブロック414においてユニキャストデータ送信を処理する。たとえば、コンピューティング装置110は、ユニキャストデータ送信をフィルタリングし、ユニキャストデータ送信をプロセッサー200に渡し、ユニキャストデータ送信を記憶し、多数のデータパケットもしくはセグメントから形成されるデータファイルを再構築し、データを装置110のユーザーに表示し、および/または、コンピューティング装置110の特定の用途および/または状態によってユニキャストデータ送信にその他の処理を行ってよい。いずれにせよ、方法400は、ブロック408にループバックし、コンピューティング装置110は、ソースコンピューティング装置102からさらなるユニキャストデータ送信を受信する。
【0040】
ブロック404に戻って、コンピューティング装置110が、自身110がシンクコンピューティング装置112として選択されなかったと通知され、または判定した場合、コンピューティング装置110(つまり、コンピューティング装置114)は、ブロック420において、自身110が無差別通信モードをイネーブルするべきかを判定する。ソースコンピューティング装置102は、上記したように、ブロック420において、無差別モードをイネーブルさせるべくコンピューティング装置110に命令を送信してよい。または、無差別通信モードを手入力でコンピューティング装置110にイネーブルしてもよい。いずれにせよ、コンピューティング装置110は、無差別モードをイネーブルするよう命令された場合、コンピューティング装置110の通信回路220は、ブロック422において無差別通信モードに設定される。
【0041】
ブロック424において、コンピューティング装置110は、ソースコンピューティング装置102からシンクコンピューティング装置112に送信されたユニキャストデータ送信を「聞き」始める。上記したように、このようなユニキャストデータ送信は、無差別モードをイネーブルした各コンピューティング装置114により受信される。通常、コンピューティング装置は、特定のコンピューティング装置にアドレス指定されていない(つまり、コンピューティング装置に含まれる通信回路のMACアドレスを有していない)データパケットもしくはセグメントを無視もしくは「捨てる」。しかし、コンピューティング装置110は無差別通信モードをイネーブルしているので、コンピューティング装置110が受信する全てのユニキャストデータ送信が、ブロック426においてプロセッサー200に渡され処理される。
【0042】
その後、ブロック428で、これらのユニキャストデータ送信もしくは、そこに含まれるデータが処理される。シンクコンピューティング装置112に関して上記したように、コンピューティング装置110(つまり、コンピューティング装置114)は、ブロック428において、ユニキャストデータ送信をフィルタリングし、ユニキャストデータ送信をプロセッサー200に渡し、ユニキャストデータ送信を記憶し、多数のデータパケットもしくはセグメントから形成されるデータファイルを再構築し、データを装置110のユーザーに表示し、および/または、コンピューティング装置110の特定の用途および/または状態によってユニキャストデータ送信にその他の処理を行ってよい。たとえば、いくつかの実施形態では、コンピューティング装置110のプロセッサー200によってソフトウェアフィルターを使用して、ユニキャストデータ送信をフィルタリングもしくはその他の処理を行ってよい。1つの特定の実施形態では、当業技術分野では周知のフィルターであるバークレーパケットフィルター(BPF)を使用して、通信パケット/セグメントのデータリンク層にローなインターフェース(raw interface)を提供し、ユニキャストデータ送信のデータフレーム/パケットに低レベルのフィルタリングを行ってよい。理解されるべきであるが、このようなフィルタリングによって、プロセッサー200の処理負荷が軽減され得る。その後、方法400は、ブロック424にループバックし、コンピューティング装置110は、ソースコンピューティング装置102からさらなるユニキャストデータ送信を「聞き」続ける。
【0043】
開示内容を図面および上記の記載において詳細に図示かつ記載したが、これらの図示および記載は、特性を限定するものとしてではなく、例示と見なされるべきであり、例示としての実施形態だけが示され記載されたのであり、開示内容の趣旨の範囲に存在するあらゆる変更および改変の保護が望まれることを理解されたい。

【特許請求の範囲】
【請求項1】
選択される第1のコンピューティング装置、および少なくとも1つの非選択コンピューティング装置を含む複数のコンピューティング装置のうち、ユニキャストデータ送信を送信する対象となる前記第1のコンピューティング装置を選択する段階と、
各非選択コンピューティング装置において無差別通信モードをイネーブルする段階と、
ソースコンピューティング装置から前記ユニキャストデータ送信を送信する段階と、
前記複数のコンピューティング装置の各コンピューティング装置で前記ユニキャストデータ送信を受信する段階と、
受信した前記ユニキャストデータ送信を、前記複数のコンピューティング装置の各コンピューティング装置のプロセッサーに渡す段階と
を備える方法。
【請求項2】
前記第1のコンピューティング装置を選択する段階は、前記ソースコンピューティング装置において、前記複数のコンピューティング装置から前記第1のコンピューティング装置をランダムに選択する段階を有する請求項1に記載の方法。
【請求項3】
前記第1のコンピューティング装置を選択する段階は、前記複数のコンピューティング装置の各コンピューティング装置の受信信号強度表示(RSSI)測定に基づいて、前記複数のコンピューティング装置から前記第1のコンピューティング装置を選択する段階を有する請求項1に記載の方法。
【請求項4】
前記第1のコンピューティング装置を選択する段階は、前記ソースコンピューティング装置において、前記複数のコンピューティング装置の各コンピューティング装置からRSSI測定値を受信し、最小のRSSI測定に基づいて前記第1のコンピューティング装置を選択する段階を有する請求項3に記載の方法。
【請求項5】
前記無差別通信モードをイネーブルする段階は、前記各非選択コンピューティング装置の通信回路に無差別通信モードをイネーブルする命令を前記各非選択コンピューティング装置に送信する段階を有する請求項1に記載の方法。
【請求項6】
前記ユニキャストデータ送信を送信する段階は、
前記ユニキャストデータ送信を前記ソースコンピューティング装置からアクセスポイントに送信する段階と、
前記ユニキャストデータ送信を前記アクセスポイントから前記第1のコンピューティング装置に送信する段階と
を有する請求項1に記載の方法。
【請求項7】
前記ユニキャストデータ送信を送信する段階は、有線等価プロトコル(WEP)暗号化アルゴリズムを使用して前記ユニキャストデータ送信を送信する段階を有する請求項1に記載の方法。
【請求項8】
前記ユニキャストデータ送信を送信する段階は、ユーザーデータグラムプロトコル(UDP)ユニキャストデータ送信を送信する段階を有する請求項1に記載の方法。
【請求項9】
前記ソースコンピューティング装置と前記第1のコンピューティング装置との間に仮想インターフェースを確立する段階をさらに備え、
前記ユニキャストデータ送信を送信する段階は、前記ソースコンピューティング装置から前記第1のコンピューティング装置に直接的に、指向性通信ユニキャストデータ送信(directed communication unicast data transmission)を送信する段階を有する請求項1に記載の方法。
【請求項10】
前記ソースコンピューティング装置からアクセスポイントに別のユニキャストデータ送信を送信する段階をさらに備え、
前記指向性通信ユニキャストデータ送信は、(i)暗号化アルゴリズムを使用しないか、(ii)有線等価プロトコル(WEP)暗号化アルゴリズムを使用し、
前記別のユニキャストデータ送信は、(i)ワイファイ・プロテクテッド・アクセス(WPA)暗号化アルゴリズム、または(ii)ワイファイ・プロテクテッド・アクセス2(WPA2)暗号化アルゴリズムを使用する請求項9に記載の方法。
【請求項11】
前記ユニキャストデータ送信を受信する段階は、前記複数のコンピューティング装置の各コンピューティング装置の通信回路で前記ユニキャストデータ送信を受信する段階を有し、
受信した前記ユニキャストデータ送信を渡す段階は、前記複数のコンピューティング装置の各コンピューティング装置の前記通信回路から前記プロセッサーに受信した前記ユニキャストデータ送信を渡す段階を有する請求項1に記載の方法。
【請求項12】
受信した前記ユニキャストデータ送信を渡す段階は、前記ユニキャストデータ送信に含まれる媒体アクセス制御(MAC)アドレスとは無関係に、前記第1のコンピューティング装置を除く前記複数のコンピューティング装置の各コンピューティング装置において、前記通信回路から前記プロセッサーに前記ユニキャストデータ送信を渡す段階を有する請求項11に記載の方法。
【請求項13】
前記ユニキャストデータ送信を受信する段階は、前記第1のコンピューティング装置によって報告された前回送信されたユニキャストデータ送信の受信エラーに応答して前記ソースコンピューティング装置によって再送されたユニキャストデータ送信を前記複数のコンピューティング装置の各コンピューティング装置で受信する段階を有する請求項1に記載の方法。
【請求項14】
前記ユニキャストデータ送信を送信する段階は、ソースコンピューティング装置から前記第1のコンピューティング装置に、無線ユニキャストデータ送信を送信する段階を有する請求項1に記載の方法。
【請求項15】
第1のコンピューティング装置と、プロセッサーおよび無差別モードがイネーブルされた通信回路を含む少なくとも1つの第2のコンピューティング装置とを有する複数のコンピューティング装置と、
前記第1のコンピューティング装置の媒体アクセス制御(MAC)アドレスを含むユニキャストデータ送信を送信することにより、前記複数のコンピューティング装置の各コンピューティング装置にデータを送信するソースコンピューティング装置と
を備えるコンピューティングシステムであって、
前記ユニキャストデータ送信を受信したことに反応して、前記少なくとも1つの第2のコンピューティング装置は、前記ユニキャストデータ送信を前記無差別モードの前記通信回路から前記プロセッサーに渡すコンピューティングシステム。
【請求項16】
前記ソースコンピューティング装置は、前記複数のコンピューティング装置から前記第1のコンピューティング装置をランダムに選択するよう構成されている請求項15に記載のコンピューティングシステム。
【請求項17】
前記ソースコンピューティング装置は、前記複数のコンピューティング装置の各コンピューティング装置の受信信号強度表示(RSSI)測定に基づいて、前記複数のコンピューティング装置から前記第1のコンピューティング装置を選択するよう構成されている請求項15に記載のコンピューティングシステム。
【請求項18】
前記ソースコンピューティング装置は、前記少なくとも1つの第2のコンピューティング装置に、その対応する前記通信回路に無差別モードをイネーブルさせる命令を送信するよう構成されている請求項15に記載のコンピューティングシステム。
【請求項19】
前記ソースコンピューティング装置は、前記第1のコンピューティング装置に指向性通信ユニキャストデータ送信(directed communication unicast data transmission)を直接的に送信することにより、前記複数のコンピューティング装置の各コンピューティング装置にデータを送信するよう構成されている請求項15に記載のコンピューティングシステム。
【請求項20】
複数の命令を備える機械読出し可能媒体であって、前記複数の命令が実行されることにより、コンピューティング装置は、
前記コンピューティング装置が、第1のコンピューティング装置に対応する媒体アクセス制御(MAC)アドレスを含むユニキャストデータ送信をソースコンピューティング装置から受信する前記第1のコンピューティング装置として複数のコンピューティング装置のうちから選択されているかを判定し、
前記コンピューティング装置が前記第1のコンピューティング装置として選択されていない場合、前記コンピューティング装置の通信回路に無差別通信モードをイネーブルし、
前記ソースコンピューティング装置から前記ユニキャストデータ送信を受信し、
前記ユニキャストデータ送信に含まれる前記MACアドレスとは無関係に、前記ユニキャストデータ送信をプロセッサーに渡す機械読出し可能媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2013−511932(P2013−511932A)
【公表日】平成25年4月4日(2013.4.4)
【国際特許分類】
【出願番号】特願2012−540250(P2012−540250)
【出願日】平成21年12月17日(2009.12.17)
【国際出願番号】PCT/CN2009/001478
【国際公開番号】WO2011/072421
【国際公開日】平成23年6月23日(2011.6.23)
【出願人】(591003943)インテル・コーポレーション (1,101)
【Fターム(参考)】