(57)【要約】【課題】本願の開示実施例は、マルチキャストＩＰアドレスを選択するシステム及び方法に関する。【解決手段】特に、複数のＩＰアドレスから第１のＩＰアドレスを選択する工程と、第１のＩＰアドレスをハッシングして、第１のＩＰアドレスに対応する第１のハッシュ値を作成する工程と、使用される第２のＩＰアドレスに第１のハッシュ値が対応しているか否かを判定する工程と、使用される第２のＩＰアドレスに第１のハッシュ値が対応していない場合、第１のＩＰアドレスを割り当てる工程とを備える方法を提供する。【選択図】図４
2012124951.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
第１のＩＰアドレスを複数のＩＰアドレスから選択する工程と、
前記第１のＩＰアドレスをハッシングして、前記第１のＩＰアドレスに対応する第１のハッシュ値を作成する工程であって、前記第１のハッシュ値がアレイ内の場所を識別し、前記場所がカウント値を含む工程と、
前記第１のハッシュ値が、使用中の第２のＩＰアドレスに対応するか否かを判定する工程であって、前記判定する工程が、前記アレイ内の前記場所の前記カウント値が所定のカウント値よりも小さいか否かを判定する工程を更に含む工程と、
前記カウント値が、前記所定のカウント値よりも小さい場合、前記第１のＩＰアドレスを割り当てる工程であって、前記割り当てる工程が、前記アレイ内の前記場所の前記カウント値を増やす工程を含む工程と、
前記割り当てられた第１のＩＰアドレスを用いて衛星サービスをセット・トップ・ボックスにマルチキャストする工程と
を備える方法。
【請求項２】
請求項１記載の方法であって、前記第１のＩＰアドレスをハッシングする工程が、前記第１のＩＰアドレスを３２ビット値から６ビット値にハッシングする工程を備える方法。
【請求項３】
請求項１記載の方法であって、前記第２のＩＰアドレスが使用中か否かを判定する工程が、前記第２のＩＰアドレスを用いて衛星サービスがマルチキャストされるか否かを判定する工程を備える方法。
【請求項４】
請求項１記載の方法であって、衛星サービスに対する要求を前記セット・トップ・ボックスから受信する工程を備える方法。
【請求項５】
請求項１記載の方法であって、前記衛星サービスをマルチキャストする工程が、ディレクＴＶサービスをマルチキャストする工程を備える方法。
【請求項６】
請求項１記載の方法であって、
使用中の第２のＩＰアドレスに前記第１のハッシュ値が対応する場合、第３のＩＰアドレスを選択する工程と、
前記第３のＩＰアドレスをハッシングして第２のハッシュ値を作成する工程とを備える方法。
【請求項７】
ヘッドエンド装置であって、
第１のＩＰアドレスを複数のＩＰアドレスから選択し、
前記第１のＩＰアドレスをハッシングして、前記第１のＩＰアドレスに対応する第１のハッシュ値を作成し、前記第１のハッシュ値がアレイ内の場所を識別し、前記場所がカウント値を含み、
前記第１のハッシュ値が、使用中の第２のＩＰアドレスに対応するか否かを判定し、前記判定が、前記アレイ内の前記場所の前記カウント値が所定のカウント値よりも小さいか否かの判定を更に含み、
前記カウント値が、前記所定のカウント値よりも小さい場合、前記第１のＩＰアドレスを割り当て、前記割り当てが、前記アレイ内の前記場所の前記カウント値の増加を含み、
前記第１のＩＰアドレスを用いて衛星サービスをセット・トップ・ボックスにマルチキャストするよう構成されたヘッドエンド装置。
【請求項８】
請求項７記載のヘッドエンド装置であって、前記衛星ゲートウェイは、前記第１のＩＰアドレスを３２ビット値から６ビット値にハッシングするよう構成されたヘッドエンド装置。
【請求項９】
請求項７記載のヘッドエンド装置であって、前記衛星ゲートウェイは、前記第２のＩＰアドレスを用いて衛星サービスがマルチキャストされるか否かを判定するよう構成されたヘッドエンド装置。
【請求項１０】
請求項７記載のヘッドエンド装置であって、前記衛星ゲートウェイは、衛星サービスに対する要求を前記セット・トップ・ボックスから受信するよう構成されたヘッドエンド装置。
【請求項１１】
請求項７記載のヘッドエンド装置であって、前記衛星ゲートウェイが、ディレクＴＶサービスをマルチキャストするよう構成されたヘッドエンド装置。
【請求項１２】
請求項７記載のヘッドエンド装置であって、前記衛星ゲートウェイが、
使用中の第２のＩＰアドレスに前記第１のハッシュ値が対応する場合、第３のＩＰアドレスを選択し、
前記第３のＩＰアドレスをハッシングして第２のハッシュ値を作成するよう構成されたヘッドエンド装置。
【請求項１３】
ヘッドエンド装置であって、
第１のＩＰアドレスを複数のＩＰアドレスから選択する手段と、
前記第１のＩＰアドレスをハッシングして、前記第１のＩＰアドレスに対応する第１のハッシュ値を作成する手段であって、前記第１のハッシュ値がアレイ内の場所を識別し、前記場所がカウント値を含む手段と、
前記第１のハッシュ値が、使用中の第２のＩＰアドレスに対応するか否かを判定する手段であって、前記判定する手段が、前記アレイ内の前記場所の前記カウント値が所定のカウント値よりも小さいか否かを判定する手段を更に含む手段と、
前記カウント値が、前記所定のカウント値よりも小さい場合、前記第１のＩＰアドレスを割り当てる手段であって、前記割り当てる手段が、前記アレイ内の前記場所の前記カウント値を増やす手段を含む手段と、
前記割り当てられた第１のＩＰアドレスを用いて衛星サービスをセット・トップ・ボックスにマルチキャストする手段とを備えるヘッドエンド装置。
【請求項１４】
請求項１３記載のヘッドエンド装置であって、前記第１のＩＰアドレスをハッシングする手段が、前記第１のＩＰアドレスを３２ビット値から６ビット値にハッシングする手段を備えるヘッドエンド装置。
【請求項１５】
請求項１３記載のヘッドエンド装置であって、前記第２のＩＰアドレスが使用中か否かを判定する手段が、前記第２のＩＰアドレスを用いて衛星サービスがマルチキャストされるか否かを判定する手段を備えるヘッドエンド装置。
【請求項１６】
請求項１３記載のヘッドエンド装置であって、衛星サービスに対する要求を前記セット・トップ・ボックスから受信する手段を備えるヘッドエンド装置。
【請求項１７】
請求項１３記載のヘッドエンド装置であって、
使用中の第２のＩＰアドレスに前記第１のハッシュ値が対応する場合、第３のＩＰアドレスを選択する手段と、
前記第３のＩＰアドレスをハッシングして第２のハッシュ値を作成する手段とを備えるヘッドエンド装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ネットワークを介した、ビデオやその他のディジタル・データの伝送に関する。特に、本発明は、インターネット・プロトコル（「ＩＰ」）ネットワークを介してビデオ、オーディオやその他のデータをマルチキャストするマルチキャスト群を選択するシステムに関する。
【背景技術】
【０００２】
この部分は、本明細書及び／又は特許請求の範囲に記載する本発明の種々の局面に関し得る、当該技術分野の種々の局面を示すことを意図している。この記載は、本発明の種々の局面のより深い理解を促進するための、背景情報の提供に有用であると考える。したがって、前述の記載はこれに照らして読まれ、従来技術と認めるものとしてでないこととする。
【０００３】
大半の人々に知られているように、衛星テレビジョン・システム（ディレクＴＶ（ＤｉｒｅｃＴＶ）など）は過去数年にわたってずっと普及してきている。実際に、西暦１９９４年のディレクＴＶの登場以来、アメリカの１２００万を超える家庭が、衛星ＴＶの加入者になっている。前述の加入者の大半は、衛星アンテナの設置及び接続が比較的簡単な単住戸に住んでいる。例えば、衛星アンテナは、家屋の屋根の上に設置することができる。
【０００４】
しかし、潜在的な多くの加入者は、多住戸（「ＭＤＵ」）（ホテルや高層マンションの建物など）に住んでいるか、又は一時滞在している。残念ながら、ＭＤＵ内の個々の住戸への衛星ＴＶサービスの提供に関係する課題が更に存在している。住戸毎に１つの衛星アンテナを設け、接続するのは非実用的であり、かつ／又は、非常に高価であり得る。例えば、一千戸のマンションを有する高層マンションの建物では、建物の屋根の上に一千個の衛星アンテナを搭載するのは非実用的であり得る。一部の従来のシステムは、単一の同軸ケーブルを介して複数の住戸に伝送可能なアナログ信号にディジタル衛星テレビジョン信号を変換することによって前述の課題を避けてきた。しかし、前述のシステムは、提供チャンネルが限られており、全ディジタルのシステムと比較して品質が低く、単住戸に住んでいるユーザが慣れ親しんでいる衛星ＴＶ体験を提供することが可能でない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
多住戸に衛星ＴＶを提供する改良されたシステム及び／又は方法が望ましい。
【課題を解決するための手段】
【０００６】
特許請求の範囲の当初記載範囲に対応した特定の局面を以下に記載する。前述の局面は、本発明がとり得る特定の形態の簡単な要約を単に提供するために提示しており、本発明の範囲を限定することを意図しているものでない。実際に、本発明は、以下に記載されていないことがあり得る種々の局面を包含し得る。
【０００７】
本願の開示実施例は、マルチキャストＩＰアドレスを選択するシステム及び方法に関する。特に、複数のＩＰアドレスから第１のＩＰアドレスを選択する工程と、第１のＩＰアドレスをハッシングして、第１のＩＰアドレスに対応する第１のハッシュ値を作成する工程と、使用される第２のＩＰアドレスに第１のハッシュ値が対応しているか否かを判定する工程と、使用される第２のＩＰアドレスに第１のハッシュ値が対応していない場合、第１のＩＰアドレスを割り当てる工程とを備える方法を提供する。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施例による例示的な衛星テレビジョン・オーバＩＰシステムのブロック図である。
【図２】本発明の図１に示す例示的な衛星テレビジョン・オーバＩＰシステムの別の実施例を示す図である。
【図３】本発明の例示的な衛星ゲートウェイのブロック図である。
【図４】本発明の実施例による、マルチキャストＩＰアドレスを選択する例示的な手法を示すフロー図である。
【発明を実施するための形態】
【０００９】
本発明の効果は、以下の詳細の説明を読み、添付図面を参照することによって明らかになり得る。
【実施例】
【００１０】
本発明の１つ又は複数の特定の実施例を以下に説明する。前述の実施例の簡潔な説明を提供しようとして、実際の実現形態の特徴全てを本明細書に記載している訳でない。前述の何れの実際の実現手段の開発においても、何れのエンジニアリング・プロジェクトや設計プロジェクトとも同様に、実現手段特有の多くの決定を行って、実現手段単位で異なり得る開発者の特定の目標（システム関連の制約及びビジネス関連の制約への準拠など）を達成しなければならない。更に、前述の開発労力は、複雑で、時間がかかり得るが、しかし、本願の開示の恩恵を受ける当業者にとっては設計、組み立て及び製造の慣例的な作業になる。
【００１１】
図１に移れば、一実施例による例示的な衛星テレビジョン・オーバＩＰシステムのブロック図を示し、参照符号１０によって全体を表す。図示したように、一実施例では、システム１０は、１つ又は複数の衛星アンテナ１２ａ乃至１２ｍ、ヘッドエンド装置（衛星ゲートウェイ１４など）、ＩＰ配信ネットワーク２０、及び１つ又は複数のセット・トップ・ボックス（「ＳＴＢ」）２２ａ乃至２２ｎを含み得る。しかし、図１に示すシステム１０の実施例がシステム１０の潜在的な一実施例に過ぎないことを当業者は認識するであろう。そういうものとして、別の実施例では、システム１０の図示した構成部分を再配置するか、若しくは割愛することができるか、又は、更なる構成部分をシステム１０に追加することができる。例えば、軽微な修正によって、非衛星のビデオ及びオーディオのサービスを配信するようシステム１０を構成することができる。
【００１２】
衛星アンテナ１２ａ乃至１２ｍは、軌道を描いて地球の周囲を回る衛星から伝送されるビデオ、オーディオやその他のタイプのテレビジョン関連データを受信するよう構成することができる。以下に更に説明するように、一実施例では、衛星アンテナ１２ａ乃至１２ｍは、１０．７乃至１２．７５ギガヘルツ（「ＧＨｚ」）のＫＵバンドを介してディレクＴＶプログラミングを受信するよう構成される。しかし、別の実施例では、衛星アンテナ１２ａ乃至１２ｍは、他のタイプの直接放送衛星（「ＤＢＳ」）又はテレビジョン受信のみ（「ＴＶＲＯ」）信号（ディシュ・ネットワーク信号、エクスプレスビュー信号、スターチョイス信号等など）を受信するよう構成することができる。更に他の非衛星ベース・システムでは、衛星アンテナ１２ａ乃至１２ｍはシステム１０から割愛することができる。  
一実施例では、衛星アンテナ１２ａ乃至１２ｍ内の低雑音ブロック変換器（「ＬＮＢ」）は、受信信号を地球周回衛星から受信し、９５０メガヘルツ（「ＭＨｚ」）と２１５０ＭＨｚとの間のＬバンドにおける周波数に前述の受信信号を変換する。図２に関して以下に更に詳細に説明するように、衛星１２ａ乃至１２ｍそれぞれは、特定の周波数（トランスポンダと表す）上で、かつ、特定の偏波を備えて１つ又は複数の受信衛星ＴＶ信号を受信し、前述の衛星信号をＬバンド信号（それぞれが複数のビデオ信号又はオーディオ信号を含み得る）に変換するよう構成することができる。
【００１３】
図１に示すように、衛星アンテナ１２ａ乃至１２ｍは、ヘッドエンド装置又はゲートウェイ・サーバ（衛星ゲートウェイ１４など）にＬバンド信号を送信するよう構成することができる。別の、非衛星の実施例では、ヘッドエンド装置は、ケーブル・テレビジョン受信器、高品位テレビジョン受信器、又はその他のビデオ配信システムであり得る。
【００１４】
衛星ゲートウェイ１４は、衛星同調／復調／逆多重化モジュール１６及びＩＰラッパ・モジュール１８を含む。モジュール１６は、それぞれがサービス（例えば、テレビジョン・チャンネルのビデオ、テレビジョン・チャンネルのオーディオ、番組ガイド等）を収容する複数の単一番組伝送ストリーム（「ＳＰＴＳ」）に、衛星１２ａ乃至１２ｍから送信される変調され、かつ多重化されたＬバンド信号に変換するための複数のチューナ、復調器及び逆多重化器を含み得る。一実施例では、モジュール１６は、衛星アンテナ１２ａ乃至１２ｍによって受信されるサービス全ての単一番組伝送ストリームを生成するよう構成される。しかし、別の実施例では、モジュール１６は、衛星アンテナ１２ａ乃至１２ｍによって受信されるサービスの部分集合のみの伝送ストリームを生成することができる。  
衛星同調／復調／逆多重化モジュール１６はＳＰＴＳをＩＰラッパ・モジュール１８に送信することができる。一実施例では、ＩＰラッパ・モジュール１８は、ＩＰ配信ネットワーク２０を介した伝送に適した複数のインターネット・プロトコル（「ＩＰ」）パケットにＳＰＴＳ内のデータを再パッケージ化する。例えば、ＩＰラッパ・モジュール１８はＳＰＴＳ内のディレクＴＶプロトコル・パケットをＩＰパケットに変換することができる。更に、ＩＰラッパ・モジュール１８は、ＳＴＢ２２ａ乃至２２ｎからサーバ要求を受信し、特定のサービスを要求したＳＴＢ２２ａ乃至２２ｎにＩＰ  ＳＰＴＳをマルチキャストする（すなわち、１つ又は複数のＳＴＢ２２ａ乃至２２ｎにＩＰアドレスを介してブロードキャストする）よう構成することができる。
【００１５】
別の実施例では、ＩＰラッパ・モジュール１８は、ＳＴＢ２２ａ乃至２２ｎのうちの１つによって要求されていないサービスのＩＰプロトコルＳＰＴＳをマルチキャストするよう構成することもできる。モジュール１６及び１８は、衛星ゲートウェイ１４の例示的な一実施例に過ぎない。別の実施例（図２及び図３に関して以下に説明したものなど）では、モジュール１６及び１８の機能は、種々の適切な構成部分又はモジュールのうちで再配分又は集約することができる。
【００１６】
ＩＰ配信ネットワーク２０は、１つ又は複数のルータ、スイッチ、モデム、スプリッタ又はブリッジを含み得る。例えば、一実施例では、衛星ゲートウェイ１４をマスタ配信フレーム（「ＭＤＦ」）に結合し、マスタ配信フレーム（「ＭＤＦ」）を中間配信フレーム（「ＩＤＦ」）に結合し、中間配信フレーム（「ＩＤＦ」）を同軸−イーサネット（登録商標）・ブリッジに結合し、同軸−イーサネット（登録商標）・ブリッジをルータに結合し、ルータを１つ又は複数のＳＴＢ２２ａ乃至２２ｎに結合することができる。別の実施例では、ＩＰ配信ネットワーク２０は、ルータに結合されたＤＳＬモデムに結合されたディジタル加入者線アクセス多重化器（「ＤＳＡＬＭ」）に結合されたＭＤＦであり得る。更に別の実施例では、ＩＰ配信ネットワークは、無線ネットワーク（８０２．１１又はＷｉＭａｘネットワークなど）を含み得る。この種の実施例では、ＳＴＢ２２ａ乃至２２ｎは、マルチキャストＩＰパケットを受信するよう構成された無線受信器を含み得る。前述の実施例が例示に過ぎないことを当業者は認識するであろう。そういうものとして、他の実施例では、多数の適切な形態のＩＰ配信ネットワークをシステム１０に用いることができる。
【００１７】
ＩＰ配信ネットワーク２０は、１つ又は複数のＳＴＢ２２ａ乃至２２ｎに結合することができる。ＳＴＢ２２ａ乃至２２ｎは、ＩＰ配信ネットワーク２０を介してＩＰパケット（ＩＰ  ＳＰＴＳなど）を受信することができる何れかの適切なタイプのビデオ、オーディオ及び／又は他のデータの受信器であり得る。本明細書及び特許請求の範囲使用のセット・トップ・ボックス（「ＳＴＢ」）の語が包含するのは、テレビジョン受像機上に位置するものだけでないことがあり得る。むしろＳＴＢ２２ａ乃至２２ｎは、テレビジョン受像機、ディスプレイ又はコンピュータの中にあっても外にあっても、本明細書及び特許請求の範囲記載のように機能するよう構成することが可能な何れかのデバイス又は装置（ビデオ構成部分、コンピュータ、無線電話機やその他の形態のビデオ・レコーダに限定されないがそれらを含む）であり得る。一実施例では、ＳＴＢ２２ａ乃至２２ｎは、（他の入力のうち）イーサネット（登録商標）・ポートを介してサービス（ビデオ及び／又はオーディオなど）を受信するよう構成されたディレクＴＶ受信器であり得る。別の実施例では、ＳＴＢ２２ａ乃至２２ｎは、同軸ケーブル、より線、銅線を介して、又は無線標準（ＩＥＥＥ８０２．１１標準など）による無線でマルチキャスト伝送を受信するよう設計及び／又は構成することができる。
【００１８】
前述の通り、システム１０は、宇宙空間において衛星によって伝送されるビデオ、オーディオ、及び／他のデータを受信し、ＩＰ配信ネットワーク２０を介して配信するためにこのデータを処理／変換することができる。よって、図２は、一実施例による、ＩＰシステム１０を介した例示的な衛星テレビジョンの別の実施例である。図２は、３つの例示的な衛星アンテナ１２ａ乃至１２ｃを示す。衛星アンテナ１２ａ乃至１２ｃそれぞれは、１つ又は複数の周回衛星から信号を受信するよう構成することができる。衛星、及び衛星から送信される信号が多くの場合、衛星が存在している周回スロットによって表されることを当業者は認識するであろう。例えば、衛星アンテナ１２ａは、１０１度の周回スロットに配置されたディレクＴＶ衛星から信号を受信するよう構成される。同様に、衛星アンテナ１２ｂは１１９度に配置された衛星から信号を受信し、衛星アンテナ１２ｃは１１０度の周回スロットに配置された衛星から信号を受信する。別の実施例では、衛星アンテナ１２ａ乃至１２ｃは、種々の周回スロット（９５度の周回スロットなど）における他の複数の衛星から信号を受信することができる。更に、衛星アンテナ１２ａ乃至１２ｃは、偏波衛星信号を受信するよう構成することもできる。例えば、図２では、衛星アンテナ１２ａは、左偏波（「１０１  Ｌ」として図示する）の信号及び右偏波（「１０１  Ｒ」として図示する）の信号を受信するよう構成される。
【００１９】
図１に関して前述したように、衛星アンテナ１２ａ乃至１２ｃは、ＫＵバンドにおいて衛星信号を受信し、前述の信号を、衛星ゲートウェイ１４に送信されるＬバンド信号に変換することができる。しかし、特定の実施例では、衛星アンテナ１２ａ乃至１２ｃによって生成されるＬバンド信号は、衛星ゲートウェイ１４に達する前に、より少ない信号にマージするか、又は、より多くの信号に分割することができる。例えば、図２に示すように、衛星アンテナ１２ｂ及び１２ｃからのＬバンド信号は、１１０度にある衛星及び１１９度にある衛星からのＬバンド信号を含む単一のＬバンド信号にスイッチ２４によってマージすることができる。
【００２０】
図示したように、システム１０は、分割前のＬバンド信号のサービスの半分をそれぞれが含む２つのＬバンド信号に、衛星アンテナ１２ａ乃至１２ｃから送信されるＬバンド信号を分割するための複数の１：２スプリッタ２６ａ、２６ｂ、２６ｃ及び２６ｄを含むこともできる。別の実施例では、１：２スプリッタ２６ａ乃至２６ｂは割愛するか、又は衛星ゲートウェイ１４ａ及び１４ｂに一体化させることができる。
【００２１】
新たに分割されたＬバンド信号を１：２スプリッタ２６ａ乃至２６ｄから衛星ゲートウェイ１４ａ及び１４ｂに送信することができる。図２に示すシステム１０の実施例は、衛星ゲートウェイ１４ａ及び１４ｂのうちの２つを含む。しかし、別の実施例では、システム１０は、何れかの適切な数の衛星ゲートウェイ１４を含み得る。例えば、一実施例では、システムは、３つの衛星ゲートウェイ１４を含み得る。
【００２２】
衛星ゲートウェイ１４ａ及び１４ｂは次いで、Ｌバンド信号を更に分割し、次いで、Ｌバンド信号上に１つ又は複数のサービスに同調して、ＩＰパケットに再パッケージ化し、ＩＰ配信ネットワーク２０を介してマルチキャストすることができる１つ又は複数のＳＰＴＳを生成することができる。更に、１つ又は複数の衛星ゲートウェイ１４ａ、１４ｂは、公衆交換電話ネットワーク（「ＰＳＴＮ」）２８にも結合することができる。衛星ゲートウェイ１４ａ、１４ｂはＰＳＴＮ２８に結合されているので、ＳＴＢ２２ａ乃至２２ｎは、ＩＰ配信ネットワーク２０及び衛星ゲートウェイ１４ａ、１４ｂを介して衛星サービス・プロバイダと通信することができることがあり得る。この機能は効果的には、ＰＳＴＮ２８に個々のＳＴＢ２２ａ乃至２２ｎそれぞれを直接結合させる必要性をなくすことができる。
【００２３】
ＩＰ配信ネットワーク２０は、インターネット・サービス・プロバイダ（「ＩＳＰ」）３０に結合することもできる。一実施例では、ＩＰ配信ネットワーク２０を用いてインターネット・サービス（高速データ・アクセスなど）を、ＩＰ配信ネットワーク２０に結合されたＳＴＢ２２ａ乃至２２ｎ及び／又はその他の適切な装置（図示せず）に提供することができる。  
前述の通り、衛星ゲートウェイ１４ａ、１４ｂは、複数のＬバンド信号を受信し、複数のＳＰＴＳを生成し、ＩＰ配信ネットワーク２０を介して、要求されたＳＰＴＳをマルチキャストするよう構成することができる。次に図３を参照すれば、例示的な衛星ゲートウェイ１４のブロック図を示す。図示したように、衛星ゲートウェイ１４ａ、１４ｂは、電源４０、２つのフロントエンド４１ａ及び４１ｂ、並びにバックエンド５２を含む。電源４０は、フロントエンド４１ａ、４１ｂ及びバックエンド５２が以下に記載の機能を行うことを可能にするよう構成可能な業界標準のいくつかのＡＣ又はＤＣ電源のうちの何れか１つであり得る。
【００２４】
衛星ゲートウェイ１４ａ、１４ｂは、２つのフロントエンド４１ａ、４１ｂも含み得る。一実施例では、フロントエンド４１ａ、４１ｂそれぞれは、図２に関して前述した１：２スプリッタ２６ａ乃至２６ｄから２つのＬバンド信号入力を受け取るよう構成することができる。例えば、フロントエンド４１ａは１：２スプリッタ２６ａから２つのＬバンド信号を受け取ることができ、フロントエンド４１ｂは１：２スプリッタ２６ｂから２つのＬバンド信号を受け取ることができる。一実施例では、フロントエンド４１ａ、４１ｂへのＬバンド入力それぞれは、８つ以下のサービスを含む。
【００２５】
フロントエンド４１ａ、４１ｂは次いで、１：４Ｌバンド・スプリッタ４２ａ、４２ｂ、４２ｃ及び４２ｄを用いてＬバンド入力を更に分割することができる。分割されると、Ｌバンド信号は、デュアル・チューナ・リンクの４つのバンク４４ａ、４４ｂ、４４ｃ及び４４ｄに進むことができる。バンク４４ａ乃至４４ｄ内のデュアル・チューナ・リンクそれぞれは、その個々のデュアル・チューナ・リンクによって受信されたＬバンド信号内の２つのサービスに同調してＳＰＴＳを生成するよう構成することができる。デュアル・チューナ・リンクそれぞれは次いで、低電圧差動信号（「ＬＤＶＳ」）ドライバ４８ａ、４８ｂ、４８ｃ及び４８ｄのうちの１つにＳＰＴＳを送信することができる。ＬＶＤＳドライバ４８ａ乃至４８ｄは、バックエンド５２に送信するためにＬバンド伝送バンド信号を増幅するよう構成することができる。別の実施例では、種々の形態の差動ドライバ及び／又は増幅器をＬＶＤＳドライバ４８ａ乃至４８ｄの代わりに用いることができる。他の実施例は、バックエンド５２にルーティングするために伝送信号全てを併せて直列化することを用いることができる。
【００２６】
図示したように、フロントエンド４１ａ、４１ｂは、マイクロプロセッサ４６ａ及び４６ｂも含み得る。一実施例では、マイクロプロセッサ４６ａ、４６ｂは、デュアル・チューナ・リンクのバンク４４ａ乃至４４ｄ、及び１；４Ｌバンド・スプリッタ４２ａ乃至４２ｄへのコマンドの制御及び／中継を行うことができる。マイクロプロセッサ４６ａ、４６ｂは、ＳＴマイクロエレクトロニクス社によって生産されたＳＴ１０マイクロプロセッサを備え得る。マイクロプロセッサ４６ａ、４６ｂは、ＬＶＤＳ受信器モジュール５０ａ及びＬＶＤＳ送信器モジュール５０ｂに結合することができる。ＬＶＤＳ受信器／送信器モジュール５０ａ、５０ｂは、以下に更に説明するように、マイクロプロセッサ４６ａ、４６ｂと、バンクエンド５２上の構成部分との間の通信を促進することができる。
【００２７】
次に、バックエンド５２に移れば、バックエンド５２は、ＬＶＤＳドライバ４８ａ乃至４８ｄによって伝送される伝送ストリーム信号を受信するよう構成されたＬＶＤＳ受信器５４ａ、５４ｂ、５４ｃ及び５４ｄを含む。バックエンド５２は、ＬＶＤＳ受信器／送信器モジュール５０ａ、５０ｂと通信するよう構成されたＬＶＤＳ受信器／送信器モジュール５６ａ、５６ｂも含む。
【００２８】
図示したように、ＬＶＤＳ受信器５４ａ乃至５４ｄ及びＬＶＤＳ受信器／送信器５６ａ、５６ｂは、伝送プロセッサ５８ａ及び５８ｂと通信するよう構成される。一実施例では、伝送プロセッサ５８ａ、５８ｂは、フロントエンド４１ａ、４１ｂ内のデュアル・チューナ・リンクによって生成されるＳＰＴＳを受信するよう構成される。例えば、一実施例では、伝送プロセッサ５８ａ、５８ｂは、１６個のＳＰＴＳを生成するよう構成することができる。伝送プロセッサ５８ａ、５８ｂは、ＩＰ配信ネットワーク２０を介してマルチキャストすることが可能なＩＰパケットにＳＰＴＳを再パックするよう構成することができる。例えば、伝送プロセッサ５８ａ、５８ｂは、ディレクＴＶプロトコル・パケットをＩＰプロトコル・パケットに再パッケージ化し、次いで、ＩＰアドレス上の前述のＩＰパケットを１つ又は複数のＳＴＢ２２ａ乃至２２ｎにマルチキャストすることができる。
【００２９】
伝送プロセッサ５８ａ、５８ｂは、バス６２（３２ビットの、６６ＭＨｚ周辺装置相互接続（「ＰＣＩ」）バスなど）に結合することもできる。バス６２を介して、伝送プロセッサ５８ａ、５８ｂは、ネットワーク・プロセッサ７０，イーサネット（登録商標）・インタフェース８４、及び／又は拡張スロット６６と通信することができる。ネットワーク・プロセッサ７０は、ＳＴＢ２２ａ乃至２２ｎからサービス要求を受信し、要求サービスをマルチキャストする旨を伝送プロセッサ５８ａ、５８ｂに指示するよう構成することができる。一実施例では、ネットワーク・プロセッサは、インテル社によって生産されたＩＸＰ４２５ネットワーク・プロセッサである。図示していないが、ネットワーク・プロセッサ７０は、衛星ゲートウェイ１４ａ、１４ｂの前面パネルにステータス・データを送信するか、又は、デバッグ・ポートを介して衛星ゲートウェイ１４ａ、１４ｂのデバッグ又は監視をサポートするよう構成することもできる。
【００３０】
図示したように、伝送プロセッサ５８ａ、５８ｂは、イーサネット（登録商標）・インタフェース６８にバス６２を介して結合することもできる。一実施例では、イーサネット（登録商標）・インタフェース６８は、ＩＰ配信ネットワーク２０との銅線又は光ファイバのインタフェースを備えるギガビット・イーサネット（登録商標）・インタフェースである。更に、バス６２は、拡張スロット（衛星ゲートウェイ１４ａ、１４ｂのアップグレード又は拡張を可能にするためのＰＣＩ拡張スロットなど）にも結合することができる。
【００３１】
伝送プロセッサ５８ａ、５８ｂは、ホスト・バス６４にも結合することができる。一実施例では、ホスト・バス６４は、前述の通り、ＰＳＴＮ２８を介して通信するよう構成することができるモデム７２に伝送プロセッサ５８ａ、５８ｂを接続する１６ビット・データ・バスである。別の実施例では、モデム７２はバス６２に結合することもできる。
【００３２】
前述の通り、衛星ゲートウェイ１４は、サービス（テレビジョン・ビデオ、オーディオやその他のデータなど）を受信し、ＩＰ配信ネットワーク２０を介してＳＴＢ２２ａ乃至２２ｎに前述のサービスをマルチキャストするよう構成することができる。一実施例では、ＳＴＢ２２ａ乃至２２ｎは、イーサネット（登録商標）集積回路（「ＩＣ」）を用いて、ＳＴＢ２２ａ乃至２２ｎの特定のそれぞれへの関心のマルチキャストを求めてＩＰ配信ネットワーク２０を監視する。すなわち、ＳＴＢ２２ａ乃至２２ｎそれぞれ内のイーサネット（登録商標）ＩＣは、ＳＴＢ２２ａ乃至２２ｎそれぞれによって用いられるサービスの伝送に用いられるＩＰアドレス上の伝送を求めてＩＰ配信ネットワーク２０を監視することができる。例えば、衛星ゲートウェイ１４は、一ＩＰアドレス上で第１のＳＴＢ群にサービスをマルチキャストし、第２のＩＰアドレス上で第２のＳＴＢ群に第２のサービスをマルチキャストすることができる。この例では、第１のＳＴＢ群内のイーサネット（登録商標）ＩＣは、第１のＩＰアドレス上の活動を求めてＩＰ配信ネットワーク２０を監視し、第２のＳＴＢ群内のイーサネット（登録商標）ＩＣは、第２のＩＰアドレス上の活動を監視する。イーサネット（登録商標）ＩＣは、受信パケットのＩＰアドレスを、監視されているＩＰアドレスと比較することによって特定のＩＰアドレス上の活動を監視することができる。
【００３３】
しかし、通常、イーサネット（登録商標）ＩＣの計算量を削減するために、ＩＰアドレスを、より単純な数にハッシュ・ダウンしてこの比較を単純にすることができる。例えば、３２ビットＩＰアドレスをハッシングによって６ビット値まで減らすことができる。しかし、３２ビットＩＰアドレスによって数百万の非冗長識別値が与えられる一方、６ビット値の場合、６４個の一意の値（ハッシュ・バケットと表すことができる）しか与えられないことを当業者は認識するであろう。よって、ＩＰアドレスのハッシングによって、イーサネット（登録商標）ＩＣの計算量が削減される一方、システム１０内に更なる問題がもたらされ得る。例えば、関連のない２つのマルチキャスト群が、同じ６ビット値をハッシングするＩＰアドレスを用いる場合、前述のＩＰアドレスの何れか１つを監視するＳＴＢは、両方について中断される。前述の不必要な中断は、ＳＴＢ２２ａ乃至２２ｎ上のビデオ及び／又はオーディオの、途切れ途切れの、又は歪みのある再生につながり得る。そういうものとして、マルチキャスト群間のハッシュ競合の削減が望ましい。
【００３４】
よって、図４は、一実施例による、マルチキャストＩＰアドレスを選択する例示的な手法８０を示すフロー図である。手法８０は、衛星ゲートウェイ１４によって行うことができる。以下に更に説明するように、手法８０は、利用可能数のハッシュ・バケット間で一様に分散させられる衛星ゲートウェイ１４によるマルチキャストＩＰアドレスの選択を容易にすることができる。例えば、手法８０は、ハッシュ・バケットそれぞれが一ＩＰアドレスを有するまでハッシュ・バケット毎に一マルチキャストＩＰアドレスを選択し、各ハッシュ・バケットに対応するＩＰアドレスが２つ存在するまでハッシュ・バケット毎に２つ以下のＩＰアドレスを選択することができる、等である。
【００３５】
図示したように、手法８０は、アレイＨａｓｈＢｕｃｋｅｔＣｏｕｎｔをゼロにして、カウンタ変数ＭａｘＢｕｃｋｅｔＣｏｕｎｔを１に等しくセットし、残りのマルチキャスト・アドレス・プールをリセットすることによって始まる。ＭａｘＢｕｃｋｅｔＣｏｕｎｔは、同じハッシュ・バケットに衛星ゲートウェイ１４がハッシングすることを可能にし得る最大数のＩＰアドレスを示すことができる。ＨａｓｈＢｕｃｋｅｔＣｏｕｎｔアレイは、ＨａｓｈＢｕｃｋｅｔ毎の場所（例えば、６ビットのハッシュ値を有する６４個の空間）を含み得る。ＨａｓｈＢｕｃｋｅｔＣｏｕｎｔアレイは、ハッシュ・バケットそれぞれに対応する現在割り当てられているマルチキャストＩＰアドレスの数を記憶することができる。例えば、衛星ゲートウェイ１４が、ハッシュ・バケット１及び６に対応するＩＰアドレスを割り当てた場合、アレイ場所１及び６はそれぞれ、数１を含む。残りのマルチキャスト・アドレス・プールは、後述するように、（１）衛星サービスのマルチキャストに現在用いられておらず、（２）マルチキャストＩＰアドレス・プールから一時的に除外されていないＩＰアドレスのリストであり得る。
【００３６】
次に、衛星ゲートウェイ１４は、ブロック８４に示すように、ＳＴＢ２２ａ乃至２２ｎのうちの１つからのサービス要求を待ち得る。サービス要求が受信されると、衛星ゲートウェイ１４は、ブロック８６に示すように、マルチキャスト・アドレス・プールに残っているマルチキャスト・アドレスが存在しているか否かを判定することができる。マルチキャスト・アドレス・プールに残っているマルチキャストＩＰアドレスが存在している場合、ブロック８８によって示すように、衛星ゲートウェイ１４は、残りのＩＰアドレスのうちの１つを選択することができ、ブロック９０によって示すように、選択されたハッシュ・バケット数に等しい変数ｎを設定することができる。衛星ゲートウェイ１４は、ブロック９２によって示すように、ＨａｓｈＢｕｃｋｅｔＣｏｕｎｔアレイを検査して、ＨａｓｈＢｕｃｋｅｔＣｏｕｎｔアレイ内の場所ｎに記憶された値がＭａｘＢｕｃｋｅｔＣｏｕｎｔを超えるか否かを判定することができる。例えば、ＭａｘＢｕｃｋｅｔＣｏｕｎｔが１の場合、衛星ゲートウェイ１４は、選択されたＩＰアドレスに対応するＨａｓｈＢｕｃｋｅｔＣｏｕｎｔアレイ場所が１未満であるか（すなわち、ゼロに等しいか）否かを判定する。
【００３７】
残りのマルチキャスト・アドレスに関連したハッシュ・バケットに対応するＨａｓｈＢｕｃｋｅｔＣｏｕｎｔアレイ内の場所がＭａｘＢｕｃｋｅｔＣｏｕｎｔ以下の場合、衛星ゲートウェイ１４は、ブロック９４によって示すように、選択されたマルチキャスト・アドレスを残りのマルチキャスト・アドレス・プールから除外することができる。選択されたマルチキャストＩＰアドレスを残りのマルチキャスト・アドレス・プールから除外した後、手法８０は、図４に示すように、ブロック８６にもう一度戻り得る。このようにして、衛星ゲートウェイ１４は、値がＭａｘＢｕｃｋｅｔＣｏｕｎｔ未満の、ＨａｓｈＢｕｃｋｅｔＣｏｕｎｔアレイ内の場所に対応するマルチキャストＩＰアドレスが発見されるまで、又は、残りのマルチキャストＩＰアドレス全てがマルチキャスト・アドレス・プールから除外されるまで残りのマルチキャスト・アドレス・プールからのマルチキャストＩＰアドレスを検査し続けることができる。
【００３８】
ブロック９２に戻れば、選択されたＩＰアドレスのハッシュ値に対応するＨａｓｈＢｕｃｋｅｔＣｏｕｎｔアレイの値がＭａｘＢｕｃｋｅｔＣｏｕｎｔよりも少ない場合、衛星ゲートウェイ１４は、ブロック９６に示すように、選択されたマルチキャスト・アドレスを割り当てることができ、選択されたマルチキャスト・アドレスのＨａｓｈＢｕｃｋｅｔに対応する場所においてＨａｓｈＢｕｃｋｅｔＣｏｕｎｔアレイを増やすことができる。ＨａｓｈＢｕｃｋｅｔＣｏｕｎｔアレイを増やした後、手法８０は、ブロック８４にもう一度戻り、ＳＴＢ２２ａ乃至２２ｎのうちの１つからの別のサービス要求を待つことができる。
【００３９】
前述の通り、衛星ゲートウェイ１４は、マルチキャストＩＰアドレスの１つを割り当てるまでか、又は、ＩＰアドレス全てが、残りのマルチキャスト・アドレス・プールから除外されるまでブロック８６にもう一度戻り得る。マルチキャスト・アドレス全てがマルチキャスト・アドレス・プールから除外されると、手法８０は、ブロック９８において示すように、ＭａｘＢｕｃｋｅｔＣｏｕｎｔ変数を増やすことができ（それによって、１つ多くのＩＰアドレスをハッシュ・バケットそれぞれに割り当てることが可能になる）、衛星ゲートウェイ１４によって現在用いられていないマルチキャスト・アドレス全てを含めるよう残りのマルチキャスト・アドレス・プールをリセットすることができる。残りのマルチキャスト・アドレス・プールをリセットした後、手法８０は前述の通り、ブロック８６に戻り得る。このようにして、手法８０によって、ハッシュ・バケット全てが１つのＩＰアドレスを有するか、又は、残りのマルチキャスト・アドレス・プールにおいて利用可能なＩＰアドレスがもう存在しない状態になるまでバケット毎に１つのＩＰアドレスを割り当てることによってハッシュ・バケット間でＩＰアドレスの一様な割り当てが容易になる。
【００４０】
本発明は、種々の修正及び代替的形態の対象となるが、特定の実施例を添付図面に例を挙げて示しており、本明細書において詳細に説明する。しかし、記載した特定の形態に本発明を限定することを意図するものでない。むしろ、本発明は、特許請求の範囲によって規定された本発明の趣旨及び範囲内に収まる修正、均等物及び代替全てを包含するものとする。  
【符号の説明】
【００４１】
１４  ヘッドエンド装置
２２  セット・トップ・ボックス
【図１】
2012124951.tif 000003
【図２】
2012124951.tif 000004
【図３】
2012124951.tif 000005
【図４】
2012124951.tif 000006
【外国語明細書】
A  SYSTEM  AND  METHOD  FOR  SELECTING  A  MULTICAST  IP  ADDRESS
FIELD  OF  THE  INVENTION
The present invention relates generally to transmitting video or other digital
data over a network. More specifically, the present invention relates to a
system for selecting a multicast group for multicasting video, audio, or other
data over an internet protocol ("IP") network.
BACKGROUND  OF  THE  INVENTION
This section is intended to introduce the reader to various aspects of art,
which may be related to various aspects of the present invention that are
described and/or claimed below. This discussion is believed to be helpful in
providing the reader with background information to facilitate a better
understanding of the various aspects of the present invention. Accordingly, it
should be understood that these statements are to be read in this light, and
not as admissions of prior art.
As most people are aware, satellite television systems, such as DirecTV, have
become much more widespread over the past few years. In fact, since the
introduction of DirecTV in 1994, more than twelve million American homes have
become satellite TV subscribers. Most of these subscribers live in
single-family homes where satellite dishes are relatively easy to install and
connect. For example, the satellite dish may be installed on the roof of the
house.
Many potential subscribers, however, live or temporarily reside in
multi-dwelling units ("MDUs"), such as hotels or high-rise apartment
buildings. Unfortunately, there are additional challenges involved with
providing satellite TV services to the individual dwelling units within an MDU.
It may be impractical and/or extremely expensive to provide and connect one
satellite dish per dwelling. For example, in a high-rise apartment building
with one thousand apartments, it may be impractical to mount one thousand
satellite dishes on the roof of the building. Some conventional systems have
avoided these issues by converting the digital satellite television signal into
an analog signal that can be transmitted via a single coaxial cable to a
plurality of dwellings. These systems, however, offer limited channels, have reduced
quality compared to all-digital systems, and cannot provide the satellite TV
experience that users who live in single family homes are accustomed.
An improved system and/or method for providing satellite TV to a multi-dwelling
unit is desirable.
SUMMARY  OF  THE  INVENTION
Certain aspects commensurate in scope with the originally claimed invention are
set forth below. It should be understood that these aspects are presented
merely to provide the reader with a brief summary of certain forms the
invention might take and that these aspects are not intended to limit the scope
of the invention. Indeed, the invention may encompass a variety of aspects that
may not be set forth below.
The disclosed embodiments relate to a system and method for selecting a
multicast IP address. More specifically, there is provided a method comprising
selecting a first IP address from a plurality of IP addresses, hashing the
first IP address to create a first hash value corresponding to the first IP
address, determining whether the first hash value corresponds to a second IP
address that is in use, and allocating the first IP address if the first hash
value does not correspond to a second IP address that is in use.
BRIEF  DESCRIPTION  OF  THE  DRAWINGS
Advantages of the invention may become apparent upon reading the following
detailed description and upon reference to the drawings in which:
FIG. 1 is a block diagram of an exemplary satellite television over
IP
system in accordance with one embodiment of the present invention;
FIG. 2 is another embodiment of the exemplary satellite television over IP
system illustrated in FIG. 1 of the present invention;
FIG. 3 is a block diagram of an exemplary satellite gateway of the present
invention; and
FIG. 4 is a flow chart illustrating an exemplary technique for selecting a
multicast IP address in accordance with embodiments of the present invention.
DETAILED  DESCRIPTION
One or more specific embodiments of the present invention will be described
below. In an effort to provide a concise description of these embodiments, not
all features of an actual implementation are described in the specification. It
should be appreciated that in the development of any such actual
implementation, as in any engineering or design project, numerous
implementation-specific decisions must be made to achieve the developers'
specific goals, such as compliance with system-related and business-related
constraints, which may vary from one implementation to another. Moreover, it
should be appreciated that such a development effort might be complex and time
consuming, but would nevertheless be a routine undertaking of design,
fabrication, and manufacture for those of ordinary skill having the benefit of
this disclosure.
Turning to FIG. 1 , a block diagram of an exemplary satellite television over
IP system in accordance with one embodiment is illustrated and generally
designated by a reference numeral 10. As illustrated, in one embodiment, the
system 10 may include one or more satellite dishes 12a through 12m, a head-end
unit, such as a satellite gateway 14, an IP distribution network 20, and one or
more set top boxes ("STBs") 22a through 22n. Those of ordinary skill
in the art, however, will appreciate that the embodiment of the system 10
illustrated in FIG. 1 is merely one potential embodiment of the system 10. As
such, in alternate embodiments, the illustrated components of the system 10 may
be rearranged or omitted or additional components may be added to the system
10. For example, with minor modifications, the system 10 may configured to
distributed non-satellite video and audio services.
The satellite dishes 12a-12m may be configured to receive video, audio, or
other types of television-related data that is transmitted from satellites
orbiting the earth. As will be described further below, in one embodiment the
satellite dishes 12a-12m are configured to receive DirecTV programming over KU
band from 10.7 to 12.75 Gigahertz ("GHz"). In alternate embodiments,
however, the satellite dishes 12a- 12m may be configured to receive other types
of direct broadcast satellites ("DBS") or television receive-only
("TVRO") signal, such as Dish Network signals, ExpressVu signals,
StarChoice signals, and the like. In still other non-satellite based systems,
the satellite dishes 12a- 12m may be omitted from the system 10.
In one embodiment, a low noise-block ("LNB") within the satellite
dishes 12a-12m receives the incoming signal from the earth-orbiting satellite and
converts these incoming signals to a frequency in the L band between 950 and
2150 Megahertz ("MHz"). As will be described in further detail below
with regard to FIG. 2, each of the satellites 12a-12m may be configured to
receive one or more incoming satellite TV signals on a particular frequency
(referred to as a transponder) and with a particular polarization and to
convert these satellite signals to L band signals, each of which may contain a
plurality of video or audio signals.
As illustrated in FIG. 1, the satellite dishes 12a-12m may be configured to
transmit the L band signals to a head-end unit or gateway server, such as the
satellite gateway 14. In alternate, non-satellite embodiments, the head-end
unit may be a cable television receiver, a high definition television receiver,
or other video distribution system
The satellite gateway 14 includes a satellite tuning, demodulating, and
demultiplexing module 16 and an IP wrapper module 18. The module 16 may contain
a plurality of tuners, demodulators, and demultiplexers to convert the
modulated and multiplexed L band signals transmitted from the satellites
12a-12m into a plurality single program transport streams ("SPTS"),
each of which carries a service (e.g., television channel video, television
channel audio, program guides, and so forth). In one embodiment, the module 16
is configured to produce a single program transport stream for all of the
services received by the satellite dishes 12a-12m. In an alternate embodiment,
however, the module 16 may produce transport streams for only a subset of the
services received by the satellite dishes 12a-12m.
The satellite tuning, demodulating, and demultiplexing module 16 may transmit
the SPTS to the IP wrapper module 18. In one embodiment, the IP wrapper module
18 repackages the data within the SPTS into a plurality of internet protocol
("IP") packets suitable for transmission over the IP distribution
network 20. For example, the IP wrapper module 18 may convert DirecTV protocol packets
within the SPTS into IP packets. In addition, the IP wrapper module 18 may be
configured to receive server requests from the STBs 22a-22n and to multicast
(i.e., broadcast to one or more of the STBs 22a-22n over an IP address) the IP
SPTS to those STBs 22a-22n that had requested the particular service.
In an alternative embodiment, the IP wrapper module 18 may also be configured
to multicast IP protocol SPTS for services not requested by one of the STBs
22a-22n. It should be noted that the modules 16 and 18 are merely one exemplary
embodiment of the satellite gateway 14. In alternate embodiments, such as the
one described below in regard to FIGS. 2 and 3, the functions of the modules 16
and 18 may be redistributed or consolidated amongst a variety of suitable
components or modules.
The IP distribution network 20 may include one or more routers, switches,
modem, splitters, or bridges. For example, in one embodiment, the satellite
gateway 14 may be coupled to a master distribution frame ("MDF") that
is coupled to an intermediate distribution frame ("IDF") that is
coupled to a coax to Ethernet bridge that is coupled to a router that is
coupled to one or more of the STBs 22a-22n. In another embodiment, the IP
distribution network 20 may be an MDF that is coupled to a Digital Subscriber
Line Access Multiplexer ("DSLAM") that is coupled to a DSL modem that
is coupled to a router. In yet another embodiment, the IP distribution network
may include a wireless network, such as 802.11 or WiMax network. In this type
of embodiment, the STBs 22a-22n may include a wireless receiver configured to
receive the multicast IP packets. Those of ordinary skill in the art will
appreciate that the above-described embodiments are merely exemplary. As such
in alternate embodiments, a large number of suitable forms of IP distribution
networks may be employed in the system 10.
The IP distribution network 20 may be coupled to one or more STBs 22a-22n. The
STBs 22a-22n may be any suitable type of video, audio, and/or other data
receiver capable of receiving IP packets, such as the IP SPTS, over the IP
distribution network 20. It will be appreciated the term set top box
("STB"), as used herein, may encompass not only devices that sit upon
televisions. Rather the STBs 22a-22n may be any device or apparatus, whether
internal or external to a television, display, or computer, that can be
configured to function as described herein - including, but not limited to a
video components, computers, wireless telephones, or other forms video
recorder. In one embodiment, the STBs 22a-22n may be a DirecTV receiver
configured to receive services, such as video and/or audio, through an Ethernet
port (amongst other inputs). In alternate embodiments, the STBs 22a-22n may be
designed and/or configured to receive the multicast transmission over coaxial
cable, twisted pair, copper wire, or through the air via a wireless standard,
such as the I.E.E.E. 802.11 standard.
As discussed above, the system 10 may receive video, audio, and/or other data transmitted
by satellites in space and process/convert this data for distribution over the
IP distribution network 20. Accordingly, FIG. 2 is another embodiment of the
exemplary satellite television over IP system 10 in accordance with one
embodiment. FIG. 2 illustrates three exemplary satellite dishes 12a-12c. Each
of the satellite dishes 12a-12c may be configured to receive signals from one
or more of the orbiting satellites. Those of ordinary skill will appreciate
that the satellites and the signals that are transmitted from the satellites
are often referred to by the orbital slots in which the satellites reside. For
example, the satellite dish 12a is configured to receive signals from a DirecTV
satellite disposed in an orbital slot of 101 degrees. Likewise, the satellite
dish 12b receives signals from a satellite disposed at 119 degrees, and the
satellite dish 12c receives signals from a satellite disposed at orbital slot
of 110 degrees. It will be appreciated that in alternate embodiments, the
satellite dishes 12a-12c may receive signals from a plurality of other
satellites disclosed in a variety of orbital slots, such as the 95 degree
orbital slot. In addition, the satellite dishes 12a-12c may also be configured
to receive polarized satellite signals. For example, in FIG. 2, the satellite
dish 12a is configured to receive signals that are both left polarized
(illustrated in the figure as "101 L") and right polarized
(illustrated as "101 R").
As described above in regard to FIG. 1 , the satellite dishes 12a- 12c may
receive satellite signals in the KU band and convert these signals into L band
signals that are transmitted to the satellite gateway 14. In some embodiments,
however, the L band signals produced by the satellite dishes 12a-12c may be merged
into fewer signals or split into more signals prior to reaching the satellite
gateway 14. For example, as illustrated in FIG. 2, L band signals from the
satellite dishes 12b and 12c may be merged by a switch 24 into a single L band
signals containing L band signals from both the satellite at 110 degrees and
the satellite at 119 degrees.
As illustrated, the system 10 may also include a plurality of 1:2 splitters
26a, 26b, 26c, and 26d to divide the L band signals transmitted from the
satellite dishes 12a-12c into two L band signals, each of which include half of
the services of the pre-split L band signal. In alternate embodiments, the 1:2
splitters 26a-26b may be omitted or integrated into the satellite gateways 14a
and 14b.
The newly split L band signals may be transmitted from the 1 :2 splitters
26a-26d into the satellite gateways 14a and 14b. The embodiment of the system
10 illustrated in FIG. 2 includes two of the satellite gateways 14a and 14b. In
alternate embodiments, however, the system 10 may include any suitable number
of satellite gateways 14. For example, in one embodiment, the system may
include three satellite gateways 14.
The satellite gateways 14a and 14b may then further subdivide the L band
signals and then tune to one or more services on the L band signal to produce
one or more SPTS that may be repackaged into IP packets and multicast over the
IP distribution network 20. In addition, one or more of the satellite gateways
14a, 14b may also be coupled to a public switch telephone network
("PSTN") 28. Because the satellite gateways 14a, b are coupled to the
PSTN 28, the STBs 22a-22n may be able to communicate with a satellite service
provider through the IP distribution network 20 and the satellite gateways 14a,
b. This functionality may advantageously eliminate the need to have each
individual STBs 22a-22n coupled directly to the PSTN 28.
The IP distribution network 20 may also be coupled to an internet service
provider ("ISP") 30. In one embodiment, the IP distribution network
20 may be employed to provide internet services, such as high- speed data
access, to the STBs 22a-22n and/or other suitable devices (not shown) that are
coupled to the IP distribution network 20.
As described above, the satellite gateways 14a, b may be configured to receive
the plurality of L band signals, to produce a plurality of SPTS, and to
multicast requested SPTS over the IP distribution network 20. Referring now to
FIG. 3, a block diagram of an exemplary satellite gateway 14 is shown. As
illustrated, the satellite gateway 14a, b includes a power supply 40, two
front-ends 41a and 41b and a back-end 52. The power supply 40 may be any one of
a number of industry-standard AC or DC power supplies configurable to enable
the front-ends 41a, b and the back-end 52 to perform the functions described
below.
The satellite gateway 14a, b may also include two front-ends 41a, b. In one
embodiment, each of the front-ends, 41a, b may be configured to receive two L
band signal inputs from the 1 :2 splitters 26a-26d that were described above in
regards to FIG. 2. For example, the front-end 41a may receive two L band
signals from the 1 :2 splitter 26a and the front-end 41b may receive two L band
signals from the 1 :2 splitter 26b. In one embodiment, each of the L band
inputs into the front-end 41a, b includes eight or fewer services.
The front-ends 41a, b may then further sub-divide the L band inputs using 1 :4
L band splitters 42a, 42b, 42c, and 42d. Once subdivided, the L band signals
may pass into four banks 44a, 44b, 44c, and 44d of dual tuner links. Each of
the dual tuner links within the banks 44a-44d may be configured to tune to two
services within the L band signals received by that individual dual tuner links
to produce SPTS. Each of the dual tuner links may then transmit the SPTS to one
of the low-voltage differential signaling ("LVDS") drivers 48a, 48b,
48c, and 48d. The LVDS drivers 48a-48d may be configured to amplify the
transport signals for transmission to the back-end 52. In alternate
embodiments, different forms of differential drivers and/or amplifiers may be
employed in place of the LVDS drivers 48a-48d. Other embodiments may employ
serialization of all of the transport signals together for routing to the back
end 52.
As illustrated, the front-ends 41a, b may also include microprocessors
46a and 46b. In one embodiment, the microprocessors 46a, b may control and/or
relay commands to the banks 44a-44d of dual tuner links and the 1 :4 L band
splitters 42a-42d. The microprocessors 46a, b may comprise ST10 microprocessors
produce by ST Microelectronics. The microprocessors 46a, b may be coupled to
LVDS receiver and transmitter modules 50a and 50b. The LVDS
receiver/transmitter modules 50a, b may facilitate communications between the
microprocessors 46a, b and components on the back-end 52, as will be described
further below. Turning next to the back-end 52, the back-end 52 includes LVDS
receivers 54a, 54b, 54c, and 54d, which are configured to receive transport
stream signals transmitted by the LVDS drivers 48a-48d. The back-end 52 also
includes LVDS receiver/transmitter modules 56a and 56b which are configured to
communicate with the LVDS receiver/ transmitter modules 50a, b.
As illustrated, the LVDS receivers 54a-54d and the LVDS receiver/transmitters
56a, b are configured to communicate with transport processors 58a and 58b. In
one embodiment, the transport processors 58a, b are configured to receive the
SPTS produced by the dual tuner links in the front-ends 41a, b. For example, in
one embodiment, the transport processors 58a, b may be configured to produce 16
SPTS. The transport processors 58a, b may be configured to repack the SPTS into
IP packets which can be multicast over the IP distribution network 20. For example,
the transport processors 58a, b may repackage DirecTV protocol packets into IP
protocol packets and then multicast these IP packets on an IP address to one or
more of the STBs 22a-22n
The transport processors 58a, b may also be coupled to a bus 62, such as a 32
bit, 66 MHz peripheral component interconnect ("PCI") bus. Through
the bus 62, the transport processors 58a, b may communicate with a network
processor 70, an Ethernet interface 84, and/or an expansion slot 66. The
network processor 70 may be configured to receive requests for services from
the STBs 22a-22n and to direct the transport processors 58a, b to multicast the
requested services. In one embodiment, the network processor is an IXP425
network processor produced by Intel. While not illustrated, the network
processor 70 may also be configured to transmit status data to a front panel of
the satellite gateway 14a,b or to support debugging or monitoring of the
satellite gateway 14a, b through debug ports.
As illustrated, the transport processors 58a, b may also be coupled to the
Ethernet interface 68 via the bus 62. In one embodiment, the Ethernet interface
68 is a gigabit Ethernet interface that provides either a copper wire or
fiber-optic interface to the IP distribution network 20. In addition, the bus
62 may also be coupled to an expansion slot, such as a PCI expansion slot to
enable the upgrade or expansion of the satellite gateway 14a, b.
The transport processors 58a, b may also be coupled to a host bus 64. In one
embodiment, the host bus 64 is a 16-bit data bus that connects the transport
processors 58a, b to a modem 72, which may be configured to communicate over
the PSTN 28, as described above. In alternate embodiments, the modem 72 may
also be coupled to the bus 62.
As described above, the satellite gateways 14 may be configured to receive
services, such as television video, audio, or other data and to multicast these
services to the STBs 22a-22n across the IP distribution network 20. In one
embodiment, the STBs 22a-22n employ an Ethernet integrated circuit
("IC") to monitor the IP distribution network 20 for multicasts of
interest to each particular one of the STBs 22a-22n. In other words, the
Ethernet ICs within each of the STBs 22a-22n may monitor the IP distribution
network 20 for transmissions on the IP addresses that are being used to
transmit those services being used by each of the STBs 22a-22n. For example,
the satellite gateway 14 may multicast a service to a first group of STBs on
one IP address and multicast a second service to second set of STBs on a second
IP address. In this example, the Ethernet ICs within the first group of STBs
would monitor the IP distribution network 20 for activity on the first IP
address, and the Ethernet ICs within the second group of STBs would monitor for
activity on the second IP address. The Ethernet IC may monitor for activity on
a particular IP address by comparing the IP address of the incoming packet with
the IP address that is being monitored.
Typically, however, to reduce the computational complexity for the Ethernet
ICs, the IP addresses may be hashed down to a simpler number to simplify this
comparison. For example, the 32-bit IP address may be reduced down to a 6-bit
value via hashing. Those of ordinary skill in the art will appreciate, however,
that whereas a 32-bit IP address provides millions of non-redundant identifying
values, a 6-bit value only provides 64 unique values, which can be referred to
as hash buckets. Accordingly, while hashing the IP addresses reduces the
complexity for the Ethernet IC, it may introduce additional challenges within
the system 10. For example, if two unrelated multicast groups employ IP
addresses that hash to the same 6-bit value, the STBs that are monitoring for
either one of these IP addresses will be interrupted for both. These unneeded
interruptions can lead to choppy or distorted playback of video and/or audio on
the STBs 22a-22n. As such, reducing hash conflicts amongst the multicast groups
is desirable.
Accordingly, FIG. 4 is a flowchart illustrating an exemplary technique 80 for
selecting a multicast IP address in accordance with one embodiment. The
technique 80 may be performed by the satellite gateways 14. As described
further below, the technique 80 may facilitate the selection of multicast IP
addresses by the satellite gateway 14 that are evenly distributed amongst the
available number of hash buckets. For example, the technique 80 may select one
multicast IP address per hash bucket until each of the hash buckets has one IP
address, then select no more than two IP addresses per hash bucket until there
are two IP address corresponding to each hash bucket, and so forth.
As illustrated, the technique 80 begins by setting a counter variable
MaxBucketCount equal to one, zeroing out an array HashBucketCount, and
resetting a remaining multicast address pool. The MaxBucketCount may be
indicative of the maximum number of IP addresses that the satellite gateway 14
may permit to hash to the same hash bucket. The HashBucketCount array may
contain a location for each HashBucket (e.g., sixty four spaces with a 6-bit
hash value). The HashBucketCount array may store the number of currently
assigned multicast IP address correspond to each of the hash buckets. For
example, if the satellite gateway 14 has assigned IP addresses corresponding to
hash buckets one and six, array locations one and six will each contain a
number one. The remaining multicast address pool may be a list of IP addresses
that are (1) not currently being used to multicast satellite services and (2)
have not been temporarily eliminated from the multicast IP address pool, as
described below.
Next, the satellite gateway 14 may wait for a service request from one of the
STBs 22a-22n, as indicted in block 84. Once a service request is received, the
satellite gateway 14 may determine whether there are any multicast addresses
remaining in the multicast address pool, as indicated in block 86. If there are
multicast IP addresses remaining in the multicast address pool, the satellite
gateway 14 may select one of the remaining IP address, as indicated by block
88, and set a variable n equal to the selected hash bucket number, as indicated
in block 90. The satellite gateway 14 may then check the
HashBucketCount
array to determine whether the value stored in the location n in the
HashBucketCount array exceeds the MaxBucketCount, as indicated in block 92. For
example, if the MaxBucketCount is one, the satellite gateway 14 will determine
whether the HashBucketCount array location corresponding to the selected IP
address is less than one (i.e., equal to zero).
If the location within the HashBucketCount array corresponding to the hash
bucket associated with the remaining multicast address is not less than the
MaxBucketCount, the satellite gateway 14 may remove the selected multicast
address from the remaining multicast address pool, as indicated by block 94.
After removing the selected multicast IP address from the remaining multicast
address pool, the technique 80 may cycle back to block 86, as illustrated in
FIG. 4. In this way, satellite gateway 14 may continue checking multicast IP
addresses from the remaining multicast address pool until a multicast IP
address is discovered that corresponds to a location in the HashBucketCount
array with a value less than the max bucket count or until all of the remaining
multicast IP addresses are removed from the multicast address pool.
Returning to block 92, if the value of the HashBucketCount array corresponding
to the hash value of the selected IP address is less than the MaxBucketCount,
the satellite gateway 14 may allocate the selected multicast address and may
increment the HashBucketCount array at the location corresponding to the
HashBucket for the selected multicast address, as indicated by block 96. After
incrementing the HashBucketCount array, the technique 80 may cycle back to
block 84 and await another service request from one of the STBs 22a-22n.
As described above, the satellite gateway 14 may cycle back to block 86 until
it allocates one of the multicast IP addresses or until all of the IP addresses
have been removed from the remaining multicast address pool. Once all of the
multicast addresses have been removed from the multicast address pool, the technique
80 may increment the MaxBucketCount variable (which enables one more IP address
to be assigned to each of the hash buckets) and may reset the remaining
multicast address pool to include all multicast address not currently in use by
the satellite gateway 14, as indicated in block 98. After resetting the
remaining multicast address pool, the technique 80 may return to block 86, as
described above. In this way, the technique 80 facilitates the even assignment
of IP addresses amongst the hash buckets by allocating one IP address per
bucket until all of the hash buckets have one IP address or there are no more
available IP addresses in the remaining multicast address pool.
While the invention may be susceptible to various modifications and alternative
forms, specific embodiments have been shown by way of example in the drawings
and will be described in detail herein. However, it should be understood that
the invention is not intended to be limited to the particular forms disclosed.
Rather, the invention is to cover all modifications, equivalents and
alternatives falling within the spirit and scope of the invention as defined by
the following appended claims.
1. A method comprising:
selecting a first IP address from a plurality of IP addresses;
hashing the first IP address to create a first hash value corresponding to the
first IP address, the first hash value identifying a location in an array, the
location including a count value;
determining whether the first hash value corresponds to a second IP address
that is in use, the step of determining further including determining whether
the count value for the location in the array is less than a predetermined
count value;
allocating the first IP address if the count value is less than the predetermined
count value, the step of allocating including incrementing the count value for
the location in the array; and
multicasting
a satellite service to a set top box
(22) using the allocated
first IP address.
2. The method of claim 1, wherein hashing the first IP address comprises
hashing the first IP address from a 32-bit value to a 6-bit value.
3. The method of claim 1, wherein determining whether the second is in use
comprises determining whether a satellite service is being multicast using the
second IP address.
4. The method of claim 1, comprising receiving a request from the set top box (22) for a satellite service.
5. The method of claim 1, wherein multicasting the satellite service comprises
multicasting a DirecTV service.
6. The method of claim 1, comprising:
selecting a third IP address if the first hash value does correspond to a
second IP address that is in use; and
hashing the third IP address to create a second hash value.
7. A head-end unit (14) configured to:
select a first IP address from a plurality of IP addresses;
hash the first IP address to create a first hash value corresponding to the
first IP address, the first hash value identifying a location in an array, the
location including a count value;
determine whether the first hash value corresponds to a second IP address that
is in use, the determining further including determining whether the count
value for the location in the array is less than a predetermined count value;
allocate the first IP address if the count value is less than the predetermined
count value, the step of allocating including incrementing the count value for
the location in the array; and
multicast a satellite service to a set top box (22) using the first IP address.
8. The head-end unit (14) of claim 7, wherein the satellite gateway (14) is
configured to hash the first IP address from a 32-bit value to a 6-bit value.
9. The head-end unit (14) of claim 7, wherein the satellite gateway (14) is
configured to determine whether a satellite service is being multicast using
the second IP address.
10. The head-end unit (14) of claim 7, wherein the
satellite gateway (14) is configured to receive a request from the set top box (22) for a satellite service.
11. The head-end unit (14) of claim 8, wherein the satellite gateway (14) is
configured to multicast a DirecTV service.
12. The head-end unit (14) of claim 7, wherein the satellite gateway (14) is
configured to
select a third IP address if the first hash value does correspond to a second
IP address that is in use; and
to hash the third IP address to create a second hash value.
13. A head-end unit (14) comprising:
means for selecting a first IP address from a plurality of IP addresses;
means for hashing the first IP address to create a first hash value corresponding
to the first IP address, the first hash value identifying a location in an
array, the location including a count value;
means for determining whether the first hash value corresponds to a second IP
address that is in use, the means for determining further including means for
determining whether the count value for the location in the array is less than
a predetermined count value; and
means for allocating the first IP address if the count value is less than the
predetermined count value, the means for allocating including means for
incrementing the count value for the location in the array; and
means for multicasting a satellite service to a set top box (22) using the allocated first IP address.
14. The head-end unit (14) of claim 13, wherein hashing the first IP address
comprises hashing the first IP address from a 32-bit value to a 6-bit value.
15. The head-end unit (14) of claim 13, wherein means for determining whether
the second is in use comprises means for determining whether a satellite
service is being multicast using the second IP address.
16. The head-end unit (14) of claim 13, comprising means for receiving a
request from the set top box (22) for a satellite service.
17. The head-end unit (14) of claim 13, comprising:
means for selecting a third IP address if the first hash value does correspond
to a second IP address that is in use; and
means for hashing the third IP address to create a second hash value.
1.   Abstract
The disclosed
embodiments relate to a system and method for selecting a multicast IP address.
More specifically, there is provided a method comprising selecting a first IP
address from a plurality of IP addresses, hashing the first IP address to create a first hash value corresponding to the first IP
address, determining whether the first hash value corresponds to a second IP
address that is in use, and allocating the first IP address if the first hash
value does not correspond to the second IP address
that is in use.
2.   Representative
drawing
Fig 4
【図１】
2012124951.tif 000007
【図２】
2012124951.tif 000008
【図３】
2012124951.tif 000009
【図４】
2012124951.tif 000010