JP2004533755A - Duplicate switch for streaming data units to terminals - Google Patents

Duplicate switch for streaming data units to terminals Download PDF

Info

Publication number
JP2004533755A
JP2004533755A JP2002586120A JP2002586120A JP2004533755A JP 2004533755 A JP2004533755 A JP 2004533755A JP 2002586120 A JP2002586120 A JP 2002586120A JP 2002586120 A JP2002586120 A JP 2002586120A JP 2004533755 A JP2004533755 A JP 2004533755A
Authority
JP
Japan
Prior art keywords
switch
stream
content
data units
data unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002586120A
Other languages
Japanese (ja)
Inventor
ウェイガンド,ギル
ラデュケル,ウィリアム・ジェイ
ブラウン,スコット・ケイ
ビル,デビッド
Original Assignee
アメリカ オンライン インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/893,692 external-priority patent/US7266609B2/en
Application filed by アメリカ オンライン インコーポレーテッド filed Critical アメリカ オンライン インコーポレーテッド
Publication of JP2004533755A publication Critical patent/JP2004533755A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1881Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with schedule organisation, e.g. priority, sequence management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/64Addressing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1854Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

複製スイッチを利用してデータ・ユニットのストリームを受信し、複製スイッチを利用してストリームからのコンテンツを蓄積し、複製スイッチを利用して、蓄積されたコンテンツと第一のストリームの一部ではなかったアドレス情報を有する2台以上の端末に対応するアドレス情報とを含む第二のストリームを生成し、複製スイッチを利用して第二のデータ・ユニットのストリームを2台以上の端末に利用可能にすることにより、端末にストリーミングする方法。Receiving a stream of data units using a duplicating switch, storing content from the stream using a duplicating switch, and utilizing the duplicating switch to store the stored content and not part of the first stream A second stream including address information corresponding to two or more terminals having the same address information, and making the stream of the second data unit available to the two or more terminals using the duplication switch How to stream to the terminal by doing.

Description

【技術分野】
【0001】
本発明は、一般に、ストリーミング・メディアに関する。
発明の背景
マルチメディア・ストリーミングという用語は、一つ又はそれ以上のソースからのマルチメディア・コンテンツにアクセス可能にする処理を表わす。インターネットの利用の増加は、マルチメディア・ストリーミングへの需要の増大を生み出した。
【0002】
発明の概要
一つの一般的な態様において、データ・ユニットは、データ・ユニットの第一のストリームを受信し、第一のストリームのコンテンツを蓄積し、蓄積されたコンテンツを組み込む第二のストリームを生成し、第二のストリームを端末に対して利用可能にする複製スイッチを用いて端末にストリーミングされ得る。
【0003】
実現形態は、一つ又はそれ以上の下記の特徴を含み得る。例えば、複製スイッチを利用してコンテンツを蓄積する工程は、生成されるデータ・ユニットに時間的に関連するコンテンツを蓄積する工程を含み得る。コンテンツのどの部分が第二のストリームに生成されるかを示すために、位置識別子が利用され得る。位置識別子は、二つの異なるストリームとして時間をずらされたコンテンツにアクセスするために利用され得る。複製スイッチを利用してコンテンツを蓄積する工程は、また、コンテンツの同一部分の2つ以上のインスタンスを蓄積する工程と、コンテンツへの需要が増加するにつれてストリームの追加のインスタンスを蓄積する工程とを含み得る。
【0004】
複製スイッチを利用してコンテンツを蓄積する工程は、コンテンツ及び関連するヘッダ情報を蓄積する工程を含み得る。複製スイッチを利用してコンテンツを蓄積する工程は、また、コンテンツを表わすチェックサムを蓄積する工程を含み得る。
【0005】
第二のストリームは、端末又はサービス・プロバイダーからの要求の受信に応じて送信され得る。コンテンツを蓄積する工程は、ストリームの単一の蓄積されたインスタンスの同時送信を追跡するために位置識別子を利用する工程を含み得、ストリームを利用可能にする工程は、単一の蓄積されたインスタンス内の異なるデータ・ユニットを、重なるが時差によるずれがあるストリームを受信している端末を有する数人の要求者に送信する工程を含み得る。複製スイッチは、第一データ・ユニットのストリームを受信する工程、第一のストリームのコンテンツを蓄積する工程、第二のストリームを生成する工程及び第二のストリームを利用可能にする工程のうちの一つ又はそれ以上を実行するように構成されたハードウェアを含む専門の装置であり得る。
【0006】
一つの一般的な態様において、ネットワーク・システムの性能は、それぞれがペイロード部及び属性部を含むデータ・ユニットのストリームを受信する通信インターフェースと、データ・ユニットの少なくともペイロード部を蓄積するように構成及び配置されたバッファと、一つ又はそれ以上のデータ・ユニットの少なくともペイロード部を複製するように構成及び配置されたレプリケーターと、データ・ユニットのストリームへの2台以上の端末によるアクセスを可能にするように構成及び配置された第二の通信インターフェースとを含むスイッチにより改良され得る。
【0007】
実現形態は、一つ又はそれ以上の下記の特徴を含み得る。例えば、データ・ユニットの属性部は、IPパケット情報及び/又は一つ又はそれ以上のレイヤ3情報を含み得る。スイッチは、属性部を生成し、レプリケーターにより複製されたペイロード部に関連付けるプロセッサを含み得る。レプリケーターは、ペイロード部及び属性部を複製するように構成及び配置され得、プロセッサは、レプリケーターにより複製された一つ又はそれ以上の属性部のIPヘッダを変更するように構成及び配置され得る。
【0008】
プロセッサは、例えば、第二の通信インターフェースを用いてペイロード部へのアクセスが許された端末に対応するIPアドレスであり得る、宛て先IPアドレスを変更するように構成及び配置され得る。プロセッサは、複製されたペイロード間で異なる宛て先情報を特定するように構成及び配置され得る。データ・ユニットは、例えば、音声コンテンツ、ビデオ・コンテンツ及びストリーミングされるメディア・コンテンツを含み得る。
【0009】
スイッチは、端末からのデータ・ユニットのストリームの受信要求を受け取るように構成及び配置され得る。次いで、スイッチは、データ・ユニットのストリームを、要求している端末に送信し得る。実現形態は、データ・ユニットのストリームを受信する端末以外の装置からの要求を受信する工程を含み得、スイッチは、要求している端末又は装置にデータ・ユニットのストリームを送信し得る。スイッチは、二つの異なる時間のずれにおいて同一のデータ・ユニットのストリームへのアクセスを可能にし得る。スイッチは、2つの異なる地点及び時刻におけるデータ・ユニットのストリームへのアクセスを可能にする2つ以上のポインタを備えるバッファを含み得る。バッファは、データ・ユニットのストリームの2つ以上のインスタンスを蓄積し得る。
【0010】
ソース・システムは、スイッチとインターフェースを取り得る。ソース・システムは、データ・ユニットの複製及びデータ・ユニットのストリームのスイッチへの送信が可能であり得る。同様に、一つ又はそれ以上の端末がスイッチとインターフェースを取り、複製されたデータ・ユニットをスイッチから受信し得る。
【0011】
実現形態は、上記の特徴を達成することが可能なシステムであって、例えばソース・システム、スイッチ、端末、及び各構成要素間のネットワークを含むシステムを含み得る。実現形態は、また、これらの特徴を達成するために、スイッチ、ソース・システム及び/又は端末で実行される一連のステップを含み得る。
【0012】
他の特徴及び利点が、図面を含む以下の説明及び特許請求の範囲により明らかになる。
様々な図面において、同様の参照符号は同様の構成要素を示し得る。
【0013】
詳細な説明
一般に、複製スイッチは、データ・ユニットのソース・ストリームを受信し、ストリームのコンテンツを蓄積して、当該コンテンツを取り込む一つ又はそれ以上のストリームの後の生成を可能にする。コンテンツを蓄積する工程は、後の送信のためにコンテンツの時間をずらすことを可能にする。例えば、オン・デマンド・システムは、ユーザ要求に応じて、蓄積されたコンテンツをソース・ストリームから送信するように作成され得る。複製スイッチは、同じソース・ストリームからのコンテンツの異なる部分への同時アクセスを可能にするために一つ又はそれ以上のポインタを用い得、それにより、単一のソース・ストリームから、いくつかの異なるずれたストリームを同時に生成することが可能になる。複製スイッチは、増加する需要を満たすため、ソース・ストリームからのコンテンツの複数のインスタンスを蓄積し得る。複製スイッチは、また、ソース・ストリーム内のコンテンツの特定部分のみを蓄積することにより、全体の必要メモリを低減し得る。
【0014】
例として、図1〜図11は、データ・ユニットを端末にストリーミングするために複製スイッチを利用する通信システムを描く。簡潔にするために、以下に説明される図中のいくつかの構成要素は、一体化されたものとして表わされる。しかし、当業者に理解されるように、これらの構成要素はそれぞれ一連の特定の操作を実行するために設計され、及び/又は特定の地図上の領域に占有された複数の相互接続されたコンピュータ及び構成要素を含み得る。
【0015】
例として、図1は、データ・ユニットを2台以上の端末にストリーミングする複製スイッチを用いる技術を実現する通信システム100を描く。通信システム100は、ソース・システム110、一つ又はそれ以上の端末150、及びソース・システム110と端末150との通信を可能にする通信ソフトウェア及びハードウェアを含むように構成及び配置され得る。より詳細には、通信システム100は、典型的に、ソース・システム110、ネットワーク120、複製スイッチ130、ネットワーク140及び端末150を含む。実際の実現形態において、ソース・システム110は、一般に、ネットワーク120を介して1台又はそれ以上の複製スイッチ130に、データ・ユニットのストリームの一つ又はそれ以上のデータ・ユニットを送信する。複製スイッチ130において、データ・ユニットのコンテンツが蓄積され、複製され、ネットワーク140を介して1台又はそれ以上の端末150にオン・デマンドで送信される。
【0016】
ソース・システム110は、ネットワーク120を介して複製スイッチ130に一つ又はそれ以上のデータ・ユニットのストリームを提供する。典型的に、ソース・システム110は、ネットワーク120を介した送信のために、メディア・ソース(例えば、ビデオ又は音声フィード)をデータ・ユニットに変換するように構成及び配置される。ソース・システム110は、中央演算装置(CPU)及びメモリ/記憶装置を備える汎用コンピュータを含み得、当該メモリ/記憶装置は、データと、オペレーティング・システム及び一つ又はそれ以上のアプリケーション・プログラムのような様々なプログラムとを蓄積する。ソース・システム110の他の実現形態は、ワークステーション、サーバ、装置、特定用途の装置又は構成要素、他の装置、又は決められた方法で命令の応答及び実行が可能なそれらの組合せを含む。ソース・システム110は、また、典型的に、入出力(I/O)装置(例えば、ビデオ及び音声による入力・変換の機能)と、例えばディスプレイ通信カード又は装置(例えば、モデム又はネットワーク・アダプタ)のようなネットワーク120とデータ交換するための周辺装置とを含む。
【0017】
ソース・システム110の実現形態は、また、一つ又はそれ以上のメディア・コンテンツをネットワーク120を介して送信するメディア・システムを含み得る。例えば、ソース・システム110は、欧州通信規格協会(ETSI)、デジタル・ビデオ放送(DVB)、次世代テレビ・システム委員会(ATSC)又は欧州ケーブル通信協会(ECCA)の規格に従ってフォーマットされた信号を、ネットワークを介してケーブル・ヘッド・エンドに送信し得る。他の実現形態において、ケーブル・プロバイダーは、ケーブル・ネットワーク内への配信のために、ケーブル・ヘッド・エンドにビデオ信号を送信又は向け得る。
【0018】
通信リンク115は、ソース・システム110とネットワーク120との間でデータを伝送するために用いられる。通信リンク115は、例えば電話線、無線ネットワーク・リンク、ケーブル・ネットワーク又は直接接続のような有線又は無線の通信方式を含み得る。
【0019】
ネットワーク120は、典型的に、ソース・システム110と複製スイッチ130との直接又は間接の通信を可能にし得るハードウェア及び/又はソフトウェアを含む。ネットワーク120は、ソース・システム110と複製スイッチ130との直接リンクを含み得、又は、それらの間の一つ又はそれ以上のネットワーク又はサブ・ネットワーク(明示せず)を含み得る。個々のネットワーク又はサブ・ネットワークは、例えば、データの送受信が可能な有線又は無線のデータ経路を含み得る。ネットワーク120の例には、インターネット、ワールド・ワイド・ウェブ、WAN(広域ネットワーク)、LAN(構内ネットワーク)、アナログ又はデジタルの有線又は無線の電話網(例えば、PSTN(公衆交換電話網)、ISDN(サービス統合デジタル網)又はxDSL(任意の形態のデジタル加入者ループ))、ラジオ、テレビ、ケーブル、衛星、及び/又はデータを伝送するための他の配信メカニズムが含まれる。
【0020】
一般に、複製スイッチ130は、2台以上の端末への時間をずらした送信のために、受信したデータ・ユニットのストリームを蓄積するように構成及び配置される。複製スイッチ130の実現形態は、一つ又はそれ以上のデータ・ユニットのストリームを蓄積し得る。例えば、複製スイッチ130は、IP(インターネット・プロトコル)ビデオのストリームを受信し、当該ビデオを後の送信のために蓄積することが可能であり得る。複製スイッチ130の実現形態は、また、データ・ユニットのストリームに類似しないメディア・フィードの送受信が可能なハードウェア又はソフトウェアを含み得る。例えば、複製スイッチは、ケーブル配信システムにおける通信のための欧州通信規格協会(ETSI)、デジタル・ビデオ放送(DVB)、次世代テレビ・システム委員会(ATSC)又は欧州ケーブル通信協会(ECCA)の送受信が可能なケーブル・ヘッド・エンド・システムを含み得る。ケーブル・ヘッド・エンド・システムは、衛星放送フィードを受信し、当該フィードを蓄積に適した形式に変換し、その後、時間をずらした送信のためにフィードバックを異なるフォーマットに変換し得る。
【0021】
ネットワーク140は、一般に、複製スイッチ130と端末150との間の一つ又はそれ以上のリンクを含む。例えば、ネットワーク140は、様々なネットワーク装置により接続された直接の物理的なリンク又は一連のリンクを含み得る。一般に、ネットワーク140の態様は、ネットワーク120の態様に類似し得る。例えば、ネットワーク120及びネットワーク140は、一つ又はそれ以上のハードウェア又はソフトウェア装置を共有し得る。他の例において、ネットワーク120及び140は、同じ種別の回路及び/又は装置を利用し得る。
【0022】
端末150は、複製スイッチ130によりネットワーク140を介して送信されたデータ・ユニットのストリームを受信することができる一つ又はそれ以上の装置を含み得る。端末150は、ソフトウェア・アプリケーション、プログラム、コード、装置、コンピュータ、コンピュータ・システム又はそれらの組合せから受信された又はそれらにおいて生成された、端末150の操作を独立に又は集合的に指図する命令を処理するコントローラー(図示せず)を含み得る。命令は、任意の種別のマシン、構成要素、装置、記憶媒体、又は端末150に配送され又は端末150のコントローラーに存在し得る伝送信号において永続的又は一時的に実現され得る。端末150は、決められた方法で命令の応答及び実行が可能な汎用コンピューター(例えば、パーソナル・コンピュータ)、ワークステーション、ラップトップ、PDA(個人情報端末)、無線電話、構成要素、他の装置、又は命令の応答及び実行が可能なこれらのアイテムの組合せを含み得る。
【0023】
例えば、一つの実現形態において、端末150は、一つ又はそれ以上のデータ・ユニットを受信することができる一つ又はそれ以上の情報検索ソフトウェア・アプリケーション(例えば、ブラウザ、メール・アプリケーション、インスタント・メッセージング・クライアント、インターネット・サービス・プロバイダー・クライアント又はAOL TV(アメリカ・オンライン・テレビジョン)又は他の統合クライアント)を含む。情報検索アプリケーションは、汎用オペレーティング・システム及びハードウェア・プラットフォーム上で動作し、該ハードウェア・プラットフォームは、汎用プロセッサと、描画、通信及び/又は他の機能のための特定用途のハードウェアとを含む。他の実現形態において、端末150は、移動環境で動作可能な汎用及び特定用途のハードウェアを伴う縮小オペレーティング・システム上でマイクロ・ブラウザ・アプリケーションを実行する無線電話を含み得る。
【0024】
他の実現形態において、端末150は、従来のデータ・ユニットに含まれていないビデオ信号の受信が可能な簡易化された装置を含み得る。例えば、複製スイッチ130は、例えば欧州通信規格協会(ETSI)、デジタル・ビデオ放送(DVB)、次世代テレビ・システム委員会(ATSC)又は欧州ケーブル通信協会(ECCA)により規定されたケーブル・チューナー又はテレビへの直接送信のための仕様に従ってフォーマットされた生のビデオ・フィードを送信し得る。
【0025】
図2Aにおいて、データ・ユニット200Aの例は、属性部210Aとペイロード部220Aとを含む。属性部210Aは、典型的に、データ・ユニット200Aが通信システム100を移動する際に修正されるパラメータを含む。例えば、IPデータ・ユニットは、データ・ユニットがネットワーク(例えば、ネットワーク140)を通過する際に、レイヤ2のアドレス情報を変更し得る。ペイロード220Aは、典型的に、ソース・システムから伝達されようとする情報であって、送信されるデータの完全性を保つために送信中に頻繁には変化しない傾向のあるコンテンツ及び/又はパラメータを含む情報を含む。例えば、ペイロード220Aは、パーソナル・コンピュータ(例えば、端末150)に送信される音声コンテンツ又はビデオ・コンテンツを含み得る。
【0026】
図2Bにおいて、データ・ユニット200Bの属性部210Bは、例えばIP(「インターネット・プロトコル」)パケットのフィールドのような、いくつかの別個の又は混合されたフィールドを含み得る。より詳細には、例えば、属性部210Bは、宛て先アドレス213B、ソース・アドレス215B、IPトラフィック形式(例えば、UDP(「ユーザー・データ・プロトコル」)、TCP(「トランスミッション・コントロール・プロトコル」)、ICMP(「インターネット・コントロール・メッセージ・プロトコル」))を示すポート番号217B、及び211B及び219Bによって示される様々な部分の他のパラメータを含み得る。これらのフィールドは、図示されたように又は様々なプロトコルに適応するように配置され得る。IPデータ・ユニット200Bのペイロードは、220Bにより表わされる。
【0027】
図3は、ストリームを受信し、ストリームのコンテンツを蓄積し、ストリームからデータ・ユニットを生成し、生成されたデータ・ユニットをストリームとして送信するように構成及び配置された複製スイッチ300を図示する。複製スイッチ300は、一般に、図1の複製スイッチ130に対応する。複製スイッチ300は、一般に、データ・ユニットのストリームを蓄積するための記憶システム310と、複製スイッチ300の様々なサブシステム間の高速相互接続320と、データ・ユニットのストリームを2台以上のクライアントに修正し送信するためのスイッチング・エンジン330と、ソース・システムからデータ・ユニットのストリームを受信するための第一の通信インターフェース340と、データ・ユニットのストリームを2台以上のクライアントに送信するための第二の通信インターフェース350とを含む。
【0028】
記憶システム310は、複製スイッチ300がデータ・ユニットの少なくともコンテンツ部を蓄積することを可能にする。記憶システム310は、揮発性でも不揮発性でもよく、メモリ(例えば、RAM)及び/又は記憶装置(例えば、HDDS)を含み得る。記憶システム310の実現形態は、ハード・ディスク・ドライブ、又は、例えばコンパクト・ディスク、テープ・ドライブ又は光学メモリ装置のようなより持ち運び可能なメディアを含み得る。実現形態は、また、メモリ及び記憶装置の組合せを含み得る。
【0029】
高速相互接続320は、一般に、複製スイッチ300の一つの構成要素を複製スイッチ300の他の構成要素と接続する装置を指す。高速相互接続320の例には、SCSI(「小型コンピュータ・システム・インターフェース」)、ファイバー・チャネル、UTOPIA(「ATM(「非同期転送モード」)のための汎用試験運用PHYインターフェース」)、インフィニバンド(登録商標)、及び他のプロトコル及び接続方法を含み得るが、それらに限定されるものではない。高速相互接続は、物理的、論理的、時間的及び電気的な接続及び規格だけではなく、これらの高速相互接続によるデータ交換を可能にするプロトコルを含み得る。
【0030】
一般に、スイッチング・エンジン330は、ハードウェア(例えば、チップ又はチップの一部)でネットワーク操作を実行する装置を含む。いくつかの実現形態において、スイッチング・エンジン300は、ネットワーク操作ロジックをチップ上で直接実現するASIC(「特定用途向け集積回路」)(例えば、シリコン・ウェハー上に形成されてからチップに製造された論理ゲート)を含み得る。例えば、ASICチップは、シリコンで実現され、パケットを受信しIPアドレスの検査に基づいてフィルタリングするように構成された論理ゲート構造を含み得る。
【0031】
スイッチング・エンジン330の実現形態は、FPGA(「現場で書換え可能なゲート・アレイ」)の利用を含み得る。FPGAは、一般に、サード・パーティがチップ上に様々な論理設計(例えば、ゲートのグループ)を実装できるように形成されたチップとして定義される。例えば、ある設計者は、受信されたIPパケットのIPアドレスを異なるIPアドレスに置き換える設計をロードし得る。他の例には、様々なネットワークを介するIPパケットの伝送期間にIPパケットが修正されるように、IPパケットのセグメント化と再組立てを実行する設計が含まれ得る。
【0032】
スイッチング・エンジン330の実現形態は、ネットワーク・プロセッサの利用を含み得る。ネットワーク・プロセッサは、一般に、他の特徴と併せて、どのネットワーク操作が実行されるべきかをソフトウェアが特定可能とするチップとして定義される。ネットワーク・プロセッサの一例には、ネットワーク・プロセッサ・チップ上に形成されたいくつかの相互接続されたRISC(「縮小命令セット・コンピュータ」)プロセッサが含まれ得る。ネットワーク・プロセッサ・チップは、いくつかのRISCプロセッサ上に、IPパケットのIPアドレスを変更するソフトウェアを実現し得る。ネットワーク・プロセッサにおける他のRISCプロセッサは、どの端末がIPストリームを受信するかを制御するソフトウェアを実現し得る。
【0033】
スイッチング・エンジン330は、データ・ユニットを受信し、データ・ユニットのペイロード部からコンテンツを抽出し、当該コンテンツがどこに蓄積されるかを決定し、当該コンテンツを組織立った方法で蓄積するように構成及び配置されたプリコーダ(precoder)(図示せず)を含み得る。それにより、隣接するコンテンツを取出し、コンテンツを中心にデータ・ユニットをパッケージ化し、データ・ユニットを一人又はそれ以上の要求者に送信することを含む取出し(例えば、再生)が行われる。この工程は、図5に関連して以下に更に説明される。
【0034】
第一の通信インターフェース340は、一般に、例えばソース・システム110のような装置からデータ・ユニットのストリームを受信するように構成及び配置される。通信インターフェースの実現形態は、例えば高速相互接続320を用いてデータ・ユニットを複製スイッチ300の一つ又はそれ以上の場所に送る能力を有するLAN又はWANインターフェースを含み得る。実現形態は、また、ETSI、DVB、ATSC又はECCAを含むメディア信号を送信する他の形態を含み得る。
【0035】
第二の通信インターフェース350は、一般に、データ・ユニットのストリームを、記憶システム310から、例えば図1に関して説明された端末150のような受信者に一般に対応する一つ又はそれ以上の装置に送信するように構成及び配置される。第二の通信インターフェース350の実現形態は、例えば高速相互接続320を用いて複製スイッチ300の一つ又はそれ以上の場所にデータ・ユニットを送る能力を有するLAN又はWANインターフェースを含み得る。実現形態は、また、メディア信号を送信する、IPネットワーキング以外の他の形態を含み得る。加えて、第一の通信インターフェース340と第二の通信インターフェース350とは同じフォーマットを含み得、物理的に同一のインターフェースさえ含み得るが、第二の通信インターフェース350は、第一の通信インターフェース340と同じ種類のフォーマットに限定されない。例えば、第一の通信インターフェース340はPOS(「パケット・オーバーSONET」)インターフェースを含み得、第二の通信インターフェース350はイーサネット(登録商標)のある形態(例えば、100Base−T、ギガビット・イーサネット(登録商標))を含み得る。
【0036】
図4Aは、メモリによる実現形態を有する複製スイッチ(例えば、図1の複製スイッチ130)の例としてのブロック図を提供する。複製スイッチ400Aは、RAMアレイ420A、スイッチング・エンジン430A及びネットワーク・インターフェース440Aを含む。
【0037】
RAMアレイ420Aは、一つ又はそれ以上のコンテンツを蓄積するように構成及び配置された一つ又はそれ以上のRAMメモリ・バンクを含み得る。RAMアレイ420Aは、データ・ユニットのストリームの一部のみを蓄積し得る。例えば、映画をストリーミング配信するプロバイダーは、同時に見る幾人かのユーザーのために映画の一部分を蓄積し得る。RAMアレイ420Aは、放送されている映画の流れを保ちながらユーザーが映画の時間をずらす(例えば、一次停止し、再生を中止し又は巻き戻す)ために利用し得る映画の一つの時間枠(例えば、10分の時間枠)を蓄積し得る。
【0038】
RAMアレイ420A内には、どのコンテンツをパッケージ化し及び/又は端末に送信するかを追跡し又は示す位置識別子が存在し得る。例えば、OSP(「オンライン・サービス・プロバイダー」)は、データ・ユニットのストリームがある時刻に端末に送信されるようスケジュールし得る。一つの例において、複製スイッチは、位置識別子により示されたコンテンツのストリームの一部を、RAMアレイ420Aにロードする。この例において、複製スイッチは、どのコンテンツ(例えば、フレーム)がどのユーザーに送信されるべきかを示す一つまたはそれ以上のポインタを利用し得る。他の例において、オン・デマンド・システムは、コンテンツのより大きな部分をメモリにロードし、データ・ユニットの一つのストリームを送信するために第一のポインタを利用し、同時に又はそれ以外の方法でデータ・ユニットの第二のストリームを送信するために第二のポインタを利用し得る。
【0039】
スイッチング・エンジン430Aは、RAMアレイ420Aに蓄積され且つRAMアレイ420Aから取出されるコンテンツを管理するように構成及び配置される。スイッチング・エンジン430Aの態様は、一般に、図3のスイッチング・エンジン330の態様に対応する。スイッチング・エンジン430Aは、一般に、RAMアレイ420Aにコンテンツをロードし、RAMアレイ420Aからコンテンツを取出す。スイッチング・エンジン430Aによりロードされて取出されるコンテンツの例には、MPEG(「動画専門家グループ」)のI、P及びBフレームが除去されたデータグラム、ビデオ・フレーム及びフレーム間の変化を示す差分チェックサム値のようなラッパー(例えば、OSIラッパー)なしのコンテンツ、及び一つ又はそれ以上の追加のラッパーを有するフレーム(例えば、レイヤ4データグラム)が含まれる。一つの実現形態において、スイッチング・エンジン430Aは、利用可能な蓄積されたコンテンツについて端末がどの時刻又はシーケンス番号にあるかを記録するように設計されたポインタのシステムを実現し得る。スイッチング・エンジン430Aは、装置、プログラム、ソフトウェア・コントローラー、又は上記と組合された他のシステム又は装置を含み得る。他の実現形態において、スイッチング・エンジン430Aは全体のシステムの利用を管理し、後のサービス要求を拒絶するか、又は一つのデータ・ユニットのストリームから2台以上の端末にサービス提供しようと試み得る。
【0040】
ネットワーク・インターフェース440Aは、データ・ユニットのストリームを送受信するように設計され、一般に、図3に示された第一の通信インターフェース340及び第二の通信インターフェース350に対応する。
【0041】
図4Bは、記憶装置の実現形態を備える複製スイッチ400Bの他の例としてのブロック図を提供する。複製スイッチ400Bは、ストリーム・プラットフォーム410B、スイッチング・エンジン430B及びネットワーク・インターフェース440Bを含む。
【0042】
ストリーム・プラットフォーム410Bは、データ・ユニットのストリームからのコンテンツを蓄積するように構成及び配置される。ストリーム・プラットフォーム410Bは、ハード・ディスク・ドライブ412B(又は、テープ・ドライブ又は他の磁気メモリ)及び光学メモリ416Bを含む。一般に、ストリーム・プラットフォーム410Bは、帯域幅特性が低いが容量は大きなメモリ部品を含む。例えば、記憶装置は、他のアプリケーションで利用される固体メモリより動作の遅い固体メモリ(図示せず)を含み得る。より小さい帯域幅でより大きな容量が利用可能であるため、ストリーム・プラットフォーム410Bは典型的に、ストリームのより大きな部分(例えば、映画)を蓄積するが、RAMや他のキャッシュ・インターフェースがない場合には、アクセスをより少ない同時ストリームに制限する。
【0043】
記憶プラットフォーム410Bの実現形態は、スイッチング・エンジン430BへのRAMインターフェースを備えるディスク記憶装置412Bを含み得る。例えば、複製スイッチは、RAMバンク及びディスク記憶装置を含み得る。コンテンツは、コンテンツが送信される順番で取出されるよう、ディスク記憶装置にロードされ得る。コンテンツが取出されるとき、コンテンツはRAMバンクにロードされる。RAMバンクのより高いスルー・プット性能は、より多くの端末が同一のコンテンツにアクセスすることを可能にし得る。データ・ユニットのストリームにアクセスしている端末は、データ・ユニットのストリーム内で端末が必要とするデータ・ユニットを追跡しロードするために、RAMバンクのコンテンツへのポインタを利用し得る。
【0044】
スイッチング・エンジン430Bは、ストリーム・プラットフォーム410Bにおいて蓄積され取出されるコンテンツを管理するように構成及び配置される。スイッチング・エンジン430Bは、一般に、図4Aに関して説明されたスイッチング・エンジン430Aに対応する。ネットワーク・インターフェース440Bは、データ・ユニットのストリームを送受信するように設計され、一般に、図3に関して説明された第一の通信インターフェース340及び第二の通信インターフェース350に対応する。
【0045】
図4A及び図4Bに関して説明されたRAMをベースとした及び記憶装置をベースとしたシステムは、既存のメモリ及び記憶システムに共通する制限(例えば、固体RAMは高いスループットを提供するが記憶容量が小さく、ハード・ドライブ及び光学メモリの方が大きい記憶容量を提供するがスループットは低い)を補償するように設計された実現形態を図示する。しかし、実現形態は示されたものに限定されず、メモリ及び記憶装置は必ずしもこれらの制約を受けるものではない。例えば、ディスク・ドライブは、複数のポインタを管理してより高い帯域幅を提供し得るシステムを実現するために利用され得、固体メモリは、ディスク・ドライブ記憶装置より高密度の記憶装置を提供し得る。
【0046】
図5は、プリコーダ機能を有する複製スイッチ500の例を示す。複製スイッチ500は、一般に、図1の複製スイッチ130に対応する。複製スイッチ500は、データ・ユニット・インターフェース510、コンテンツ抽出システム520、コンテンツ配置システム540及びコンテンツ記憶装置550を含む。
【0047】
データ・ユニット・インターフェース510は、一般に、コンテンツ記憶装置550とデータ・ユニットを送受信するネットワークとインターフェースを取るように設計及び配置される。一般に、データ・ユニット・インターフェース510の機能は、図3の第一の通信インターフェース340及び第二の通信インターフェース350の機能に対応する。データ・ユニット・インターフェース510は、また、送信中に分割されたデータ・ユニットのセグメント化及び再組立てを行い、又は規格に従わないデータ・ユニットを取り扱うように構成され得る。例えば、データ・ユニット・インターフェース510は、一つ又はそれ以上のメディア・フレーム(例えば、ETSI、DVB、ATSC又はECCAのうちの一つに従ってフォーマットされたフレーム)を送受信するように構成され得る。一つの例において、複製スイッチ500がアナログ信号を受信する場合、データ・ユニット・インターフェース510は、当該信号をフレーム又はコンテンツが蓄積し得る認められたフォーマットに変換し得る。
【0048】
コンテンツ抽出システム520は、送信されるコンテンツの周りに付加されたデータ・ユニット・ラッパーを取り除くように構成及び配置される。例えば、コンテンツ抽出システム520は、送信されるコンテンツに包含されるOSI(「開放型システム間接続」)情報に関連付けられた一つ又はそれ以上のビットを取り除き得る。コンテンツ抽出システム520は、また、データが後の送信のためにコンテンツ記憶装置550から取出される際に、ラッパーを付加することができる。例えば、コンテンツ抽出システム520は、データ・ユニットのストリームをコンテンツ記憶装置550に蓄積する際にラッパー情報を取り除き、当該データ・ユニットのストリームをコンテンツ記憶装置550から送信する際に別のラッパーを付加し得る。
【0049】
コンテンツ配置システム540は、コンテンツ情報が決められた方法で取出され得るようにコンテンツ情報の蓄積及び取出しを指示するよう構成及び配置される。例えば、コンテンツは、アドレス情報が予想可能なインクリメントにより更新され得るように配置され得る。他の例において、コンテンツは、蓄積され得る関連付けられたチェックサムを分析することによりコンテンツのフレーム間の差異が計算され得るよう配置され得る。
【0050】
コンテンツがどこに蓄積され得るかの決定、及びコンテンツの蓄積は、コンテンツの蓄積専用のハード・ディスク・ドライブの使用を含み得る。例えば、コンテンツ記憶装置550(例えば、ハード・ドライブ)は、同じ「読出し」又はデータ検索が、しばしば互いに近接して送信される関連するコンテンツ(例えば、映画の隣接するフレーム又は隣接するMPEGのI、P及びBフレーム)を取出すようコンテンツを蓄積し得る。
【0051】
コンテンツがどこに蓄積され得るかの決定、及びコンテンツの蓄積は、コンテンツを蓄積するための固体記憶装置(例えば、様々な形態のRAM)の利用を含み得る。例えば、固体記憶装置は、RAMメモリ・アレイ内の全部又は一部のストリームを蓄積し得る。RAMメモリの一部がコンテンツを蓄積するために利用される場合、一つ又はそれ以上の端末への送信のためにRAMメモリは一定の時間枠のコンテンツをロードし得る。いくつかの実現形態において、複製スイッチは、RAMアレイ内のデータ・ユニットのストリームの2つ以上のインスタンスを蓄積し得る。
【0052】
コンテンツ記憶装置550は、コンテンツ又はフレームを蓄積するよう構成及び配置される。コンテンツ配置システム540に関して上に述べたように、コンテンツは、一般に、関連するコンテンツの一つ又はそれ以上の端末への送信を可能にする方法で取出されるように構成及び配置される。コンテンツ記憶装置550は、一般に、図3の記憶システム310、図4AのRAMアレイ402A、及び図4Bの記憶プラットフォーム410Bに対応する。
【0053】
図6は、通信システム600におけるデータ・ユニットの流れの送信方法を図示する。通信システム600は、一般に、ソース・システム610と、スイッチ620と、端末650及び670とを含む。一般に、ソース・システム610は図1のソース・システム110に対応し、スイッチ620は図1のスイッチ130に対応し、端末650及び670は図1の端末150に対応する。
【0054】
まず、ソース・システム610は、要求に応じて又はそれ以外の方法で、データ・ユニットのストリームへのアクセスを生成又は可能化する(ステップ613)。ストリームがアナログ入力(例えば、アナログ音声又はアナログ・ビデオ)から取出される場合、この工程には、データ・ユニットのストリームへの入力の変換が含まれ得る。入力が既にデジタルである場合でも、データ・ユニットのストリームへのアクセスを可能にする工程は、入力を適切にフォーマットされたデータ・ユニットのストリームに修正する工程が含まれ得る。データ・ユニットのストリームは、様々なメディア・ストリーム(例えば、ビデオ、音声、画像、テキスト及びチャット)を含み得る。典型的に、データ・ユニットは、インターネット上で送信されるIP(インターネット・プロトコル)パケットである。ソース・システム610は、その後、生成されたデータ・ユニットのストリームを一つ又はそれ以上のスイッチ620に(例えば、ネットワーク120を介して)送信する(ステップ616)。
【0055】
スイッチ620は、ソース・システム610からデータ・ユニットを受信すると(ステップ622)、典型的に、当該データ・ユニットの少なくともペイロード部をバッファし複製する(ステップ624)。いくつかの実現形態において、データ・ユニットの属性は、ペイロードをバッファする前に取り除かれ得る。例えば、インターネット上での通信のため、スイッチ620はIPヘッダ情報を取り除き、ペイロード及び/又はペイロードにより表わされる情報のみを蓄積し得る。データ・ユニットが端末に送信される際、スイッチ620は、既存のヘッダを修正し、又は新しいIPヘッダをペイロードに付加する。スイッチは、宛て先端末(例えば、端末650及び670)のIPアドレスに対応する宛て先情報を利用し、又は、スイッチ620と宛て先端末との間の中継点を宛て先情報として利用し得る。新たに取得された宛て先情報を用いて、スイッチ620は、例えば図6の端末670である適切な端末に、ネットワーク(例えば、図1のネットワーク140)を介してIPパケットを送信する(ステップ626)。
【0056】
端末670は、スイッチ620がネットワークを介して送信したデータ・ユニットのストリームを受信した(ステップ672)後、当該データ・ユニットを知覚可能な出力に変換し、当該データ・ユニットを操作し、又は当該データ・ユニットを他の装置に転送する。例えば、端末670は、ビデオ・コンテンツを含むIPデータ・ユニットのストリームを受信し、当該ビデオ・コンテンツをパーソナル・コンピュータ又は他の装置上で表示又は操作し得る。
【0057】
いくつかの実現形態において、端末はストリームを要求し得る。例えば、図6において、端末670は自動的にデータ・ユニットのストリームを受信する(ステップ672)ように描かれているが、端末650は、データ・ユニットのストリームの受信要求を生成する(ステップ652)ことが可能であり得る。スイッチ620は、当該要求を受信すると(ステップ628)、一つ又はそれ以上のデータ・ユニットのストリームを端末650に送信し得る(ステップ630)。端末650は、次いで、送信されたデータ・ユニットのストリームを受信する(ステップ654)。
【0058】
いくつかの実現形態において、スイッチ620と端末650及び660とは、ストリーミングを維持するために周期的に通信することが要求され得る。例えば、端末650は、ストリームの送信期間に、端末650がストリームの受信を望んでいることを示すために、「キープ・ストリーム・アライブ」メッセージを10秒おきに送信し得る。
【0059】
ストリームを受信している(ステップ654)期間に、端末650は、他のストリームを要求し得(ステップ652)、又は、データ・ユニットのストリームの送信停止要求を送ることにより送信の停止を要求し得る(ステップ656)。停止要求を受信し又はストリームの終わりを検知すると(ステップ632)、スイッチ620はデータ・ユニットのストリームの送信を停止する(ステップ634)。
【0060】
端末650は、データ・ユニットのストリームの送信再開を決定し、この決定をスイッチ620に伝え得る(ステップ658)。スイッチ620が再開指令を受信すると(ステップ636)、スイッチはストリームの送信を再開し(ステップ638)、端末650は当該ストリームを受信する(ステップ660)。
【0061】
いくつかの実現形態において、スイッチ620がソース・システム610からIPデータ・ユニットのストリームを受信する場合、スイッチ620は、データ・ユニットのペイロード部を複製し、一つ又はそれ以上の会議端末のIPアドレスを特定するIPデータ・ユニットの宛て先IPアドレスを修正又は置き換え得る。
【0062】
受信されたデータ・ユニットのペイロードが、スイッチ620により生成されたいくつか又は全てのデータ・ユニットのペイロードとして送信されるために、端末620は、典型的に、任意の特定のペイロード又はペイロード全体を二度以上複製し得る。その上、スイッチ620は、一つのデータ・ユニットを受信し、ペイロードを2つ以上のデータ・ユニットとして送信し得る。
【0063】
逆に、スイッチ620は、2つ以上のデータ・ユニットを受信して結合し、複数のデータ・ユニットの結合されたペイロードを一つのデータ・ユニット内で送信し得る。又は、スイッチ620は、受信したデータ・ユニットのペイロードを分割し、分割された部分を2つ以上の他の受信されたデータ・ユニットのペイロードと結合し得る。
【0064】
図7に関して説明されるように、ペイロードはバッファされるため、スイッチ620は、バッファされたペイロードのいくつかのインスタンスを同時にオフセット有り又は無しで生成し、それらの異なるインスタンスを必要とする同一又は異なる端末に送信し得る。これらのインスタンスは、端末650が端末670とは異なる時点においてデータ・ユニットのストリームを受信し得るよう、様々な時間の隔たりでストリーミングされ得る。例えば、端末650は、インターネット・ラジオ局において端末670と同一の歌を受信し得るが、端末650はその歌に対応するデータ・ユニットを時間的に30秒遅れて受信し得る。
【0065】
図7は、ソース・システム710から端末770、780及び790へのIPデータ・ユニットの流れの一例を図示する。IPアドレスX.1.1.1のソース・システム710は、IPパケット720を、宛て先アドレスY.1.1.1のスイッチ730に送信する。IPパケット720は、宛て先アドレス724としてスイッチのアドレスを、ソース・アドレス726としてソース・システムのアドレスを含む。IPパケット720は、また、他のヘッダ情報722及びペイロード728を含み得る。
【0066】
Y.1.1.1のソース・アドレスを有するスイッチ730は、IPパケット720の少なくともペイロード728を複製し、IPデータ・ユニット740を、Z.1.1.1のアドレスを有する端末770に送信する。IPデータ・ユニット740は、端末770の宛て先アドレス744と共に、スイッチ730のソースIPアドレス746を含む。IPデータ・ユニット740は、追加のヘッダ情報742及びペイロード748を含み得る。端末780及び端末790のためのIPデータ・ユニット750及び760を生成するために、同様の作業が行われる。
【0067】
図8は、複製スイッチを用いてデータ・ユニットを蓄積及び送信する手順800を図示する。一般に、手順800は、図1〜図7に関して説明された複製スイッチのうちの一つを用いて実行され得る。
【0068】
まず、複製スイッチはデータ・ユニットを受信し(ステップ805)、データ・ユニットからコンテンツを選択する(ステップ810)。典型的に、データ・ユニットのコンテンツを選択する工程は、当該コンテンツに対応するデータ・ユニットのフィールド又は部分を識別し、当該コンテンツに無関係のいくつか又は全ての特徴を取り除く工程を含む。例えば、複製スイッチは、OSI(「開放型システム間接続」)ヘッダの一つ又はそれ以上のレイヤを取り除き、データ・ユニットの残りの部分をコンテンツとして蓄積し得る。他の例において、コンテンツを選択する工程は、データ・ユニットがメモリにロードされる際にデータ・ユニットのどの部分が蓄積されるべきかを識別するための位置識別子を作成又は修正する工程を含み得る。
【0069】
コンテンツを選択する工程は、データ・ユニットの他の特徴の一つ又はそれ以上の部分がコンテンツと一緒に保持されることを可能にする工程を含み得る。例えば、OSIヘッダの一つ又はそれ以上のフィールドは、コンテンツとして保存及び蓄積され得る。
【0070】
実現形態は、蓄積されるコンテンツを修正又は調整するためのプリコーダの利用を含み得る。例えば、送信中により狭い帯域幅が消費されるよう、プリコーダはコンテンツを圧縮し得る。他の例において、プリコーダは、コンテンツ間の差異を示すチェックサム又はショートカットを計算し得る。このチェックサム又はショートカットは、いくつかのコンテンツを蓄積する代わりに蓄積され得る。
【0071】
複製スイッチは、コンテンツを蓄積する記憶システム内の位置を決定する(ステップ820)。典型的に、コンテンツの蓄積場所は、関連するコンテンツが関連する操作で取出されるように選択される。関連するコンテンツの例には、ビデオの連続するフレーム及び/又はタイム・スライス内のコンテンツが含まれ得る。次いで、複製スイッチは、コンテンツを決定された場所に蓄積する(ステップ830)。
【0072】
後ほど、複製スイッチはコンテンツへの要求を受信する(ステップ840)。コンテンツへの要求を受信する工程は、ユーザー(例えば、図1の端末150)にユーザーのホーム・コンピュータに表示するためのビデオ・ストリームを要求させる工程を含み得る。実現形態は、また、他の装置にコンテンツを要求させる工程をも含み得る。例えば、セット・トップ・ボックスとして動作しているケーブル・モデムは、テレビに表示するためのコンテンツを要求し得る。
【0073】
実現形態は、また、意図された宛て先以外のソースから要求を発生させる工程を含み得る。例えば、ケーブル・システム管理者は、一人又はそれ以上の加入者に代わってコンテンツへの要求を生成し得る。
【0074】
複製スイッチ130は、どのコンテンツが要求されたかを決定する(ステップ850)。要求者は、コンテンツを送信するよう指示し得る。例えば、端末は、どのコンテンツが受信されたかの記録を取り、一つ又はそれ以上のコンテンツへの要求(例えば、フレーム番号100番が抜けている)を生成し得る。実現形態は、また、複製スイッチにどのコンテンツが要求されたかを記録させる工程を含み得る。例えば、複製スイッチは、同一のコンテンツを数人のユーザーに送信しようと試み得る。
【0075】
複製スイッチ130は、コンテンツがどこにロードされているかを決定する(ステップ860)。そのため、複製スイッチは、図3及び図4に関して説明された位置識別子を利用し得る。他の実現形態は、コンテンツへのアクセスを管理するために保持されるファイル及び/又はアーカイビング・システムを採用し得る。
【0076】
複製スイッチ130は、コンテンツを取り出す(ステップ870)。複製スイッチは、位置識別子により特定されたメモリ位置を読み取ることにより、コンテンツを取り出し得る。他の実現形態は、複数のコンテンツ情報を取出す(例えば、ディスク上のセクターを読み出す)工程を含み得る。
【0077】
複製スイッチ130は、コンテンツをデータ・ユニットにパッケージ化する(ステップ880)。例えば、複製スイッチは、OSI情報(例えば、アドレス情報)の一つ又はそれ以上のレイヤを付加し得る。データ・ユニットのコンテンツ以外の一つ又はそれ以上の特徴がコンテンツと一緒に蓄積される実現形態は、それらのフィールドのうちの一つ又はそれ以上のパラメータを修正する工程を含み得る。例えば、インターネット・プロトコル・パケットが蓄積されると、宛て先アドレスは要求しているユーザーのアドレスに修正され得る。
【0078】
最後に、複製スイッチはデータ・ユニットを一つ又はそれ以上の端末に送信する(ステップ890)。データ・ユニットは、IPアドレッシング以外のフォーマットで送信され得る。例えば、データ・ユニットを送信する工程は、ネットワークを介してオン・デマンド・チャンネルを送信する工程を含み得る。
【0079】
図9において、通信システム900の機能が説明される。通信システム900は、一般に、ソース・システム902と、管理装置904と、複製スイッチ906と、端末908及び910とを含む。一般に、ソース・システム902は図1のソース・システム110に対応し、複製スイッチ906は図1の複製スイッチ130に対応し、端末908及び910は図1の端末150に対応する。管理装置904は、ケーブル・システム操作者、OSP、コンテンツ・プロバイダー又は複製スイッチ906に指令又は指示を与えることができる者を含み得る。
【0080】
図示されるように、ソース・システム902は、データ・ユニットのストリームを生成する(ステップ913)。ソース・システム902は、データ・ユニットのストリームを複製スイッチ906に送信する(ステップ916)。
【0081】
複製スイッチ906は、データ・ユニットのストリームを受信する(ステップ925)。複製スイッチ906は、次いで、データ・ユニットのストリームの少なくともコンテンツ部分を蓄積する(ステップ927)。
【0082】
ストリームは様々な方法で送信され得る。いくつかの実現形態において、管理装置904は条件が現れるのを待つ(ステップ918)。例えば、管理装置は、複製スイッチに「放送」を指示するようプログラムされたスケジューラーであり得る。条件が現れると(ステップ920)、管理装置904は、データ・ユニットのストリームの送信要求を複製スイッチ906に送信する(ステップ923)。
【0083】
代わりに、端末908はストリーム要求を生成し得る(ステップ933)。例えば、端末908は、特定のビデオ・ストリームの閲覧要求を生成し得る。複製スイッチ906は、要求を受信する(ステップ930)。
【0084】
図4Aに関して説明されたシステムに一般に対応する実現形態において、複製スイッチ906は、一つ又はそれ以上のコンテンツを高速メモリ(例えば、RAM)にロードし得る(ステップ931)。例えば、複製スイッチ906は、既存のコンテンツ記憶装置に対する帯域幅が不足していることを決定し、容量を増やすために、頻繁にアクセスされるコンテンツを高速メモリにロードし得る。
【0085】
データ・ユニットのストリームをいつ端末に送信するかを示すために利用されるメカニズムに関わらず、複製スイッチ906は、データ・ユニットのストリームを2台以上の端末908、910に送信し得る(ステップ936)。いくつかの実現形態において、端末は、データ・ユニットのストリームを要求することなしに、ストリーム受信者に放送され又は自動的に送信されたストリームを受信する。いずれの場合でも、端末908及び910はデータ・ユニットのストリームを受信する(ステップ940及び940A)。実現形態次第で、コンテンツの異なる「スタック」が、端末910を支援するメモリにロードされ得る。
【0086】
いくつかの実現形態において、端末908は、一時停止メッセージを生成し送信し得る(ステップ945)。例えば、端末は、ビデオ・オン・デマンド・ストリームを「一時停止」し、後でストリームに戻りたいと望み得る。複製スイッチ906が一時停止メッセージを受信すると(ステップ950)、複製スイッチ906は端末908への送信を一時停止する(ステップ955)。複製スイッチ906は、端末910に対し、データ・ユニットのストリームを送信し続け得る(図示せず)。一時停止メッセージは様々な方法で実現され得る。例えば、端末908は、どのデータ・ユニットが受信されたかを記録し、再開メッセージを生成し送信することにより(ステップ960)、送信をやめた時点から再開し得る。他の例は、端末908をして停止メッセージを送信させ、複製スイッチ906をして送信再開メッセージが受信された(ステップ960)ときにどこから再開すべきかを記録させる工程を含み得る。
【0087】
複製スイッチ906が再開メッセージを受信した場合(ステップ965)、複製スイッチ906は端末にデータ・ユニットのストリーム970を送信する(ステップ970)。端末908は、データ・ユニットのストリームを受信する(ステップ975)。
【0088】
図10Aは、データ・ユニットのストリームの複数のインスタンスを蓄積するように構成及び配置された複製スイッチ1000Aを図示する。複製スイッチ1000Aは、データ・ユニットの2つのストリームであるストリームA及びストリームAを送信する。ストリームAは、メモリ・バンク内のメモリ・ストレージ1010Aを占め、ストリームAは、メモリ・バンク内のメモリ・ストレージ1020Aを占める。一つの実現形態において、メモリ・ストレージ1010Aへの第一のポインタ1015Aは、他のコンテンツと比較してどのコンテンツがデータ・ユニットとして包含され、ストリームAを要求している端末に配信されるべきかを示す。既に述べたように、実現形態は、コンテンツの一部をメモリ・バンクに蓄積する工程を含み得る。例えば、問題のあるネットワーク状態のせいで端末がデータ・ユニットのストリームの一部を受信することが妨げられる場合、端末はコンテンツの一部を受信せず、データ・ユニットのストリームの受信における途切れ(例えば、映画の欠落している時間)を経験し得る。
【0089】
メモリ・ストレージ1020Aへの第二のポインタ1025Aは、データ・ユニットのストリームに包含されたコンテンツのどの部分が数台の端末に送信されるかを示す。データ・ユニットのストリーム内の一つ又はそれ以上のデータ・ユニットの受信を望む一台又はそれ以上の端末は、第二のポインタ1025Aに対応するコンテンツを受信し、第二のポインタ1025Aは、次のコンテンツより絶えず早められ得る。いくつかの実現形態において、第二のポインタ1025Aは、いくつかのコンテンツを早め、2つ以上のコンテンツを一つのデータ・ユニットに包含し得る。
【0090】
図10Bは、複数の位置識別子を蓄積するように構成及び配置された複製スイッチ1000Bを図示する。この例において、複製スイッチ1000Bは、ストリームAの5つのコンテンツであるA1 1010、A2 1020、A3 1030、A4 1040及びA5 1050を含む。複製スイッチ1000Bは、また、予期されるコンテンツA6 1060のために割当てられたメモリ領域を含む。
【0091】
一つの例において、複製スイッチ1000Bは、個々の端末T、U及びVがそれ自身のデータ・ユニットのストリームを受信することを可能にする。個々の端末は、送信されるべき適切なコンテンツを複製スイッチに選択させるよう指示する位置識別子(例えば、ポインタ)を管理する。例えば、端末T、U及びVは、コンテンツA1 1010を同時に要求することにより開始し得る。
【0092】
いくつかのコンテンツが送信されてから、図10Bに示されるように、端末Tのための位置識別子1025がコンテンツA2 1020を参照し、端末U及び端末Vのための位置識別子1042及び位置識別子1044が、コンテンツA2からの異なる時間のずれに対応するコンテンツA4 1040を参照し得る。このずれは、例えば、端末Tがデータ・ユニットのストリームの受信を一時停止し、端末U及び端末Vにより受信されるコンテンツと比べて遅れたコンテンツを受信しているために起こり得る。
【0093】
他の例において、複製スイッチ1000Bは、ストリームBの5つのコンテンツであるB1 1070、B2 1071、B3 1072、B4 1073及びB5 1080を含む。複製スイッチ1000Bは、また、予期されるコンテンツB6 1090に割当てられたメモリ領域を含む。一つの実現形態において、ストリームBは、ストリームAと同一のデータ・ユニットのストリームの一部であり得るが、データ・ユニットのストリームの異なる部分に対応し得る。例えば、ストリームBはあるビデオ・ストリームの開始5分後である一方、ストリームAは同じビデオ・ストリームの開始40分後の「ビデオ」ストリームであり得る。他の例において、ストリームBはストリームAと同じであり得るが、システムのより良い性能を実現するための付加がなされている。更に他の例において、ストリームA及びストリームBは、完全に異なるビデオ・ストリーム(例えば、二つの異なるテレビ・チャンネル)を表わし得る。
【0094】
図11は、図1〜図10に関して説明されたような複製スイッチ上で「一時停止」機能を実現するための手順1100を図示する。まず、複製スイッチはデータ・ユニットのストリームを受信し(ステップ1110)、データ・ユニットのストリームからコンテンツを蓄積する(ステップ1120)。蓄積され送信の準備ができたコンテンツを持って、複製スイッチはデータ・ユニットのストリームの再生要求(ステップ1130)を待つ。複製スイッチは再生要求メッセージを待ち得るが、いくつかの実現形態においては、複製スイッチはストリームの受信と同時に送信(例えば、再生)を開始し得る。この構成において、コンテンツはユーザーがストリームの一時停止を要求したときのみに蓄積され得る。
【0095】
オプションとしての実現形態において、複製スイッチは、ストリーム(コンテンツ)を高速メモリにロードし得る(ステップ1140)。これは、一般に、図6について説明された高速メモリにストリームをロードする工程に対応する。
【0096】
複製スイッチはデータ・ユニットのストリームを送信する(ステップ1150)。ストリームを送信している間に、複製スイッチ130は一次停止要求を受信し得る(ステップ1160)。複製スイッチ130が一時停止要求を受信した場合、複製スイッチは端末へのデータ・ユニットのストリームの送信を停止する(ステップ1165)。データ・ユニットのストリームが一時停止されると、複製スイッチ130は再生要求の受信(ステップ1170)を待ち得る。
【0097】
再生要求が受信されると、複製スイッチ130は、端末がやめたところからデータ・ユニットのストリームの送信を続ける(ステップ1180)。再生要求が受信されない場合、複製スイッチ130は再開要求を待つ。端末がデータ・ユニットのストリームの受信を再開すると、複製スイッチは新しい一時停止要求をチェックする(ステップ1160)。
【0098】
複製スイッチ130が一時停止要求を受信しない場合、複製スイッチは停止要求を受信し、又は、ストリームの終わりに達し得る(ステップ1185)。停止要求が受信され、又はデータ・ユニットのストリームの終わりに達した場合、複製スイッチは送信を中止する(ステップ1190)。そうではない場合、複製スイッチ130は送信を続け、一時停止要求待ち(ステップ1160)に戻る。
【0099】
送信を停止する工程は、送信されるべき他のデータ・ユニットのストリームを自動的に選択する工程を含み得る。例えば、複製スイッチ130は、一つのビデオが終わった際に送信する他のビデオを選択し得る。
【0100】
ストリームが提示された箇所でストリームの送信を再開する代わりに、ストリームのより早い時点に(例えば、コマーシャルのためには30秒、スポーツのイベントのためには15秒)時間をずらしてストリームが再送信される点を除き、同様の工程を用いて「インスタント再生」又は巻き戻し機能が作成され得る。例えば、複製スイッチは、30秒前のストリームを表わすコンテンツをメモリからロードし、より早い時点から始まる当該コンテンツを(その時点から続けて)送信し得る。
【0101】
他の実現形態が、特許請求の範囲に含まれる。特に、いくつかの実現形態において、端末は、アナログ信号を受信するセット・トップ・チューナー・セットを含む。また、図11に示された位置識別子は、どのコンテンツを端末が受信し得るかを示すためにクライアント、又は分離したサーバ又は装置で保持され得る。
【0102】
実現形態は、端末へのストリーム送信を要求する管理装置を含み得る。管理装置は、ネットワーク操作者、管理サーバ、ワークステーション又はスケジューリング・エージェントを含み得る。例えば、管理ワークステーションは、特定の時刻に始まる端末に対するデータ・ユニットのストリームの送信を要求し得る。
【0103】
実現形態は、また、バッファにデータ・ユニットのストリームの2つ以上のインスタンスを蓄積する工程を含み得る。例えば、スイッチは、大量の要求に適応するためにストリームの2つ以上の複製を蓄積し得る。他の例において、ストリームは、二つの異なる地点で同じデータ・ユニットのストリームをバッファし得る。
【0104】
実現形態は、また、スイッチに一人又はそれ以上の要求ユーザの状態情報を保持させる工程を含み得る。例えば、スイッチは、データ・ユニットのストリームを受信する端末のプロフィールを定める際、他の装置を設置又は支援し得る。このようにスイッチは、プロフィールを定める際、ネットワーク・プロセッサ及び装置に利用可能な情報であって、通常はサーバにとってアクセス可能ではない情報を利用する。
【0105】
更に、実現形態は、スイッチのアクセス及び利用レベルを監視する工程を含み得る。例えば、スイッチは、与えられた測定基準(例えば、プロセッサ使用率、メモリ使用率、ユーザー数、帯域幅)においてスイッチが最大性能の85%で運転していることを決定し得る。
【0106】
実現形態は、異なるフォーマット間でコンテンツを翻訳又は変換する工程を含み得る。例えば、スイッチは、消費される帯域幅を最小化するためにパケットの送信を調整し得る。他の例において、スイッチは、独自のビデオ・エンコーディング・フォーマットを標準に基づくエンコーディング・フォーマットに変換し得る。
【0107】
実現形態は、また、一つ又はそれ以上のコンテンツを既存のデータ・ユニットのストリームに挿入する工程を含み得る。例えば、スイッチは、ビデオ・ストリーム広告を他のビデオ・コンテンツの送信に挿入し得る。挿入されるビデオ・コンテンツは、スイッチ上に存在し、又はデータ・ユニットのストリームを送信しているスイッチから離れた他の装置からアクセスされ得る。コンテンツを挿入する工程の実現形態は、複製される特定のコンテンツに関連付けられたタグを作成する工程を含み得る。例えば、スイッチは、ビデオ・コンテンツ内に周期的にタグ付けられたコマーシャルと一緒にテレビ・ショウを複製し得る。タグを受信すると、スイッチはテレビ・ショウの送信を停止し、一連の広告にアクセスし得る。実現形態は、どの広告にアクセスするべきかをタグに示させる工程を含み得る。例えば、タグは、広告が配置される装置を示し得る。タグの実現形態は、また、2つ以上の選択された広告にアクセスすることを可能にし得る。広告の選択は、端末の情報及びプロフィールと、ネットワーク情報と、他の要素とを含むがそれらに限定されない一つ又はそれ以上の変数に依存し得る。
【0108】
加えて、実現形態は、ユーザー・プロフィール及びユーザー状態に関する保持された情報に基づいてコンテンツを挿入する工程を含み得る。例えば、スイッチは、特定のプロフィールを持つユーザーのために挿入される広告を受信するために、端末がコンテンツの適切な位置にいることを決定し得る。
【0109】
ソース、ネットワーク、オン・デマンド・システム及び端末は、また、通信システム内の異なる物に配置され得、特定の機能を実行する一つ又はそれ以上のエージェント及び/又はプロキシを利用し得る。
【図面の簡単な説明】
【0110】
【図1】複製スイッチを利用してデータ・ユニットのストリームを生成することができる通信システムのブロック図である。
【図2】Aは、図1に示されたような通信システムにおいて送信され得る例としてのデータ・ユニットの図である。Bは、図2Aのデータ・ユニットの属性部の構造の一例を示す図である。
【図3】図1の通信システムにおける利用に適した複製スイッチの、例としての構成要素の図である。
【図4A】後の再生のためにメディア・ストリームを蓄積するメモリ(例えば、RAM(「ランダム・アクセス・メモリ」))を利用する複製スイッチの例としてのブロック図である。
【図4B】後の再生のためにメディア・ストリームを蓄積する記憶装置を利用する複製スイッチの例としてのブロック図である。
【図5】複製スイッチにおいて利用されるプリコーダのブロック図である。
【図6】図1の通信システムのような通信システムにおける、データ・ユニットの送信方法を図示するフローチャートである。
【図7】図1の通信システムを通るIPパケットの動きを図示するフローチャートである。
【図8】図1の通信システムのような通信システムにおいて、受信されたデータ・ユニットを複製スイッチを用いて処理する手順のフローチャートである。
【図9】図1の通信システムのような通信システムにおいてデータ・ユニットのストリームを提供する手順のフローチャートである。
【図10A】データ・ユニットのストリームの複数のインスタンスを蓄積するように構成及び配置された複製スイッチを図示する。
【図10B】複数の位置識別子を蓄積するように構成及び配置された複製スイッチを図示する。
【図11】図1の通信システムのような通信システムにおいて、コンテンツの時間をずらす手順のフローチャートである。
【Technical field】
[0001]
The present invention relates generally to streaming media.
Background of the Invention
The term multimedia streaming refers to the process of making multimedia content accessible from one or more sources. The increasing use of the Internet has created an increasing demand for multimedia streaming.
[0002]
Summary of the Invention
In one general aspect, a data unit receives a first stream of data units, accumulates content of the first stream, and generates a second stream incorporating the accumulated content, The two streams can be streamed to the terminal using a replication switch that makes it available to the terminal.
[0003]
Implementations may include one or more of the following features. For example, storing content using the duplication switch may include storing content that is temporally related to the generated data unit. The location identifier may be used to indicate which part of the content will be generated in the second stream. The location identifier can be used to access the staggered content as two different streams. Storing the content utilizing the duplication switch also includes storing two or more instances of the same portion of the content, and storing additional instances of the stream as the demand for the content increases. May be included.
[0004]
Storing the content using the duplication switch may include storing the content and associated header information. Storing the content utilizing the duplication switch may also include storing a checksum representing the content.
[0005]
The second stream may be sent in response to receiving a request from a terminal or a service provider. Storing the content may include utilizing the location identifier to track the simultaneous transmission of a single stored instance of the stream, wherein making the stream available comprises: Transmitting different data units within to requesters having terminals receiving overlapping but staggered streams. The duplication switch includes one of receiving a stream of the first data unit, storing content of the first stream, generating a second stream, and making the second stream available. It can be a specialized device that includes hardware configured to perform one or more.
[0006]
In one general aspect, the performance of a network system includes a communication interface that receives a stream of data units, each including a payload portion and an attribute portion, and a configuration configured to store at least the payload portion of the data units. An arranged buffer, a replicator configured and arranged to replicate at least a payload portion of one or more data units, and enabling access by two or more terminals to a stream of data units. And a second communication interface configured and arranged to do so.
[0007]
Implementations may include one or more of the following features. For example, the attributes of a data unit may include IP packet information and / or one or more layer 3 information. The switch may include a processor that generates the attribute portion and associates the attribute portion with the payload portion duplicated by the replicator. The replicator may be configured and arranged to duplicate the payload portion and the attribute portion, and the processor may be configured and arranged to modify the IP header of one or more attribute portions duplicated by the replicator. .
[0008]
The processor may be configured and arranged to change the destination IP address, which may be, for example, an IP address corresponding to a terminal permitted to access the payload portion using the second communication interface. The processor may be configured and arranged to identify different destination information between the replicated payloads. Data units may include, for example, audio content, video content, and streamed media content.
[0009]
The switch may be configured and arranged to receive a request to receive a stream of data units from the terminal. The switch may then send the stream of data units to the requesting terminal. Implementations may include receiving a request from a device other than a terminal that receives the stream of data units, and the switch may send the stream of data units to the requesting terminal or device. The switch may allow access to the same stream of data units at two different times. The switch may include a buffer with two or more pointers that allow access to the stream of data units at two different points and times. The buffer may store more than one instance of the stream of data units.
[0010]
The source system may interface with the switch. The source system may be capable of replicating data units and transmitting streams of data units to the switch. Similarly, one or more terminals may interface with the switch and receive replicated data units from the switch.
[0011]
Implementations may include systems capable of achieving the above features, including, for example, systems including source systems, switches, terminals, and networks between components. Implementations may also include a series of steps performed on the switch, source system, and / or terminal to achieve these features.
[0012]
Other features and advantages will be apparent from the following description, including the drawings, and the claims.
In the various drawings, like reference numbers may indicate like components.
[0013]
Detailed description
Generally, a duplication switch receives a source stream of data units, stores the content of the stream, and allows for subsequent generation of one or more streams that capture the content. The step of storing the content allows the content to be staggered for later transmission. For example, an on-demand system may be created to transmit stored content from a source stream in response to a user request. The duplication switch may use one or more pointers to allow simultaneous access to different parts of the content from the same source stream, so that from a single source stream, several different A shifted stream can be generated at the same time. Duplicate switches may accumulate multiple instances of content from a source stream to meet increasing demands. Duplicate switches may also reduce the overall memory requirement by accumulating only certain portions of the content in the source stream.
[0014]
By way of example, FIGS. 1-11 depict communication systems that utilize duplicate switches to stream data units to terminals. For simplicity, some components in the figures described below are represented as being unitary. However, as will be appreciated by those skilled in the art, these components are each designed to perform a series of specific operations, and / or may comprise a plurality of interconnected computers occupied by specific map areas. And components.
[0015]
By way of example, FIG. 1 depicts a communication system 100 that implements a technique using duplicate switches to stream data units to two or more terminals. Communication system 100 may be configured and arranged to include source system 110, one or more terminals 150, and communication software and hardware that enable communication between source system 110 and terminals 150. More specifically, the communication system 100 typically includes a source system 110, a network 120, a duplication switch 130, a network 140, and a terminal 150. In an actual implementation, source system 110 typically sends one or more data units of a stream of data units to one or more replication switches 130 via network 120. In the duplication switch 130, the content of the data unit is stored, duplicated, and transmitted on demand to one or more terminals 150 via the network 140.
[0016]
Source system 110 provides a stream of one or more data units to duplicating switch 130 over network 120. Typically, source system 110 is configured and arranged to convert media sources (eg, video or audio feeds) into data units for transmission over network 120. Source system 110 may include a general-purpose computer with a central processing unit (CPU) and memory / storage, such as data and an operating system and one or more application programs. And accumulate various programs. Other implementations of the source system 110 include workstations, servers, devices, special purpose devices or components, other devices, or combinations thereof that can respond and execute instructions in a defined manner. Source system 110 also typically includes input / output (I / O) devices (eg, video and audio input and conversion functions) and display communication cards or devices (eg, modems or network adapters). And a peripheral device for exchanging data with the network 120.
[0017]
Implementations of source system 110 may also include a media system that transmits one or more media content over network 120. For example, the source system 110 may output a signal formatted according to the standards of the European Telecommunications Standards Institute (ETSI), Digital Video Broadcasting (DVB), the Next Generation Television Systems Commission (ATSC), or the European Cable Telecommunications Association (ECCA). , Over the network to the cable head end. In other implementations, a cable provider may send or direct a video signal to a cable head end for distribution within a cable network.
[0018]
Communication link 115 is used to transmit data between source system 110 and network 120. Communication link 115 may include a wired or wireless communication system such as a telephone line, wireless network link, cable network or direct connection.
[0019]
Network 120 typically includes hardware and / or software that may enable direct or indirect communication between source system 110 and replication switch 130. Network 120 may include a direct link between source system 110 and replication switch 130, or may include one or more networks or subnetworks (not explicitly shown) therebetween. Individual networks or sub-networks may include, for example, wired or wireless data paths through which data can be transmitted and received. Examples of network 120 include the Internet, the World Wide Web, a WAN (Wide Area Network), a LAN (Private Network), an analog or digital wired or wireless telephone network (eg, PSTN (Public Switched Telephone Network), ISDN ( Services Integrated Digital Network (xDSL) or xDSL (Digital Subscriber Loop of any form)), radio, television, cable, satellite, and / or other delivery mechanisms for transmitting data.
[0020]
Generally, the duplication switch 130 is configured and arranged to accumulate a stream of received data units for staggered transmission to two or more terminals. Implementations of the duplication switch 130 may accumulate a stream of one or more data units. For example, the duplication switch 130 may be able to receive a stream of IP (Internet Protocol) video and store the video for later transmission. Implementations of the duplication switch 130 may also include hardware or software capable of sending and receiving media feeds that are not similar to a stream of data units. For example, the duplicating switch may be transmitted and received by the European Telecommunications Standards Institute (ETSI), Digital Video Broadcasting (DVB), the Next Generation Television Systems Commission (ATSC), or the European Cable Communications Association (ECCA) for communication in cable distribution systems May include a cable head end system capable of The cable head end system may receive the satellite broadcast feed, convert the feed into a format suitable for storage, and then convert the feedback into a different format for staggered transmission.
[0021]
Network 140 generally includes one or more links between replication switch 130 and terminal 150. For example, network 140 may include direct physical links or a series of links connected by various network devices. In general, aspects of network 140 may be similar to aspects of network 120. For example, network 120 and network 140 may share one or more hardware or software devices. In other examples, networks 120 and 140 may utilize the same types of circuits and / or devices.
[0022]
Terminal 150 may include one or more devices capable of receiving a stream of data units transmitted over network 140 by replication switch 130. Terminal 150 processes instructions received or generated from software applications, programs, code, devices, computers, computer systems, or combinations thereof, that independently or collectively direct the operation of terminal 150. Controller (not shown). The instructions may be implemented permanently or temporarily in any type of machine, component, device, storage medium, or transmitted signal that may be delivered to terminal 150 or present in the controller of terminal 150. Terminal 150 may be a general-purpose computer (eg, a personal computer), a workstation, a laptop, a PDA (personal digital assistant), a wireless telephone, components, other devices, capable of responding to and executing instructions in a predetermined manner. Or a combination of these items capable of responding to and executing instructions.
[0023]
For example, in one implementation, the terminal 150 may receive one or more information retrieval software applications (eg, browsers, mail applications, instant messaging, etc.) capable of receiving one or more data units. Clients, Internet Service Provider Clients or AOL TV (American Online Television) or other integrated clients). The information retrieval application runs on a general purpose operating system and hardware platform, which includes a general purpose processor and special purpose hardware for rendering, communication and / or other functions. . In other implementations, terminal 150 may include a wireless telephone running a micro-browser application on a reduced operating system with general-purpose and special-purpose hardware operable in a mobile environment.
[0024]
In other implementations, terminal 150 may include a simplified device capable of receiving video signals that are not included in conventional data units. For example, the duplicating switch 130 may be a cable tuner or a cable tuner specified by, for example, the European Telecommunications Standards Institute (ETSI), Digital Video Broadcasting (DVB), the Next Generation Television System Committee (ATSC), or the European Cable Communications Association (ECCA). A raw video feed formatted according to specifications for direct transmission to television may be sent.
[0025]
In FIG. 2A, an example of the data unit 200A includes an attribute part 210A and a payload part 220A. Attribute section 210A typically includes parameters that are modified as data unit 200A moves through communication system 100. For example, an IP data unit may change layer 2 address information as the data unit passes through a network (eg, network 140). The payload 220A is typically information that is to be communicated from the source system and contains content and / or parameters that tend not to change frequently during transmission to maintain the integrity of the data being transmitted. Contains information including. For example, payload 220A may include audio or video content transmitted to a personal computer (eg, terminal 150).
[0026]
In FIG. 2B, the attribute portion 210B of the data unit 200B may include a number of separate or mixed fields, such as, for example, fields of an IP ("Internet Protocol") packet. More specifically, for example, the attribute unit 210B includes a destination address 213B, a source address 215B, an IP traffic format (for example, UDP (“User Data Protocol”), TCP (“Transmission Control Protocol”), It may include a port number 217B indicating ICMP ("Internet Control Message Protocol") and other parameters of various parts indicated by 211B and 219B. These fields may be arranged as shown or to accommodate various protocols. The payload of IP data unit 200B is represented by 220B.
[0027]
FIG. 3 illustrates a duplicating switch 300 configured and arranged to receive a stream, accumulate the contents of the stream, generate data units from the stream, and transmit the generated data units as a stream. Duplicate switch 300 generally corresponds to duplicate switch 130 of FIG. The duplication switch 300 generally comprises a storage system 310 for storing a stream of data units, a high speed interconnect 320 between the various subsystems of the duplication switch 300, and a stream of data units to two or more clients. A switching engine 330 for modifying and transmitting, a first communication interface 340 for receiving a stream of data units from the source system, and a transmitting engine for transmitting the stream of data units to two or more clients. And a second communication interface 350.
[0028]
The storage system 310 allows the duplication switch 300 to store at least the content portion of the data unit. Storage system 310 may be volatile or non-volatile and may include memory (eg, RAM) and / or storage (eg, HDDS). Implementations of storage system 310 may include a hard disk drive or more portable media such as, for example, a compact disk, a tape drive, or an optical memory device. Implementations may also include a combination of memory and storage.
[0029]
High-speed interconnect 320 generally refers to a device that connects one component of duplicate switch 300 to another component of duplicate switch 300. Examples of high-speed interconnects 320 include SCSI (“small computer system interface”), Fiber Channel, UTOPIA (“generic pilot PHY interface for ATM (“ asynchronous transfer mode ”)”), InfiniBand ( And other protocols and connection methods, but is not limited to such. High-speed interconnects may include physical, logical, temporal and electrical connections and standards, as well as protocols that allow data exchange by these high-speed interconnects.
[0030]
Generally, switching engine 330 includes devices that perform network operations on hardware (eg, a chip or a portion of a chip). In some implementations, the switching engine 300 is an ASIC (“application specific integrated circuit”) that implements the network operating logic directly on the chip (eg, formed on a silicon wafer and then manufactured on a chip) Logic gate). For example, an ASIC chip may include a logic gate structure implemented in silicon and configured to receive packets and filter based on checking an IP address.
[0031]
Implementations of the switching engine 330 may include the use of FPGAs ("field rewritable gate arrays"). An FPGA is generally defined as a chip formed to allow a third party to implement various logic designs (eg, groups of gates) on the chip. For example, one designer may load a design that replaces the IP address of a received IP packet with a different IP address. Other examples may include designs that perform IP packet segmentation and reassembly such that the IP packet is modified during transmission of the IP packet over various networks.
[0032]
Implementations of switching engine 330 may include the use of a network processor. A network processor is generally defined as a chip that, among other features, allows software to specify which network operation is to be performed. One example of a network processor may include a number of interconnected RISC ("Reduced Instruction Set Computer") processors formed on a network processor chip. A network processor chip may implement software on some RISC processors to change the IP address of an IP packet. Other RISC processors in the network processor may implement software that controls which terminals receive the IP stream.
[0033]
The switching engine 330 is configured to receive the data unit, extract content from the payload portion of the data unit, determine where the content is stored, and store the content in an organized manner. And an arranged precoder (not shown). Thereby, retrieval (e.g., playback) is performed that includes retrieving adjacent content, packaging the data unit around the content, and transmitting the data unit to one or more requesters. This step is described further below in connection with FIG.
[0034]
First communication interface 340 is generally configured and arranged to receive a stream of data units from a device such as, for example, source system 110. Implementations of the communication interface may include, for example, a LAN or WAN interface having the ability to send data units to one or more locations of the duplicate switch 300 using the high speed interconnect 320. Implementations may also include other forms of transmitting media signals including ETSI, DVB, ATSC or ECCA.
[0035]
The second communication interface 350 generally transmits the stream of data units from the storage system 310 to one or more devices generally corresponding to recipients, such as, for example, the terminal 150 described with respect to FIG. The configuration and arrangement are as follows. Implementations of the second communication interface 350 may include, for example, a LAN or WAN interface capable of sending data units to one or more locations of the duplicate switch 300 using the high speed interconnect 320. Implementations may also include other forms of transmitting media signals other than IP networking. In addition, the first communication interface 340 and the second communication interface 350 may include the same format, and may even include physically the same interface, while the second communication interface 350 It is not limited to the same type of format. For example, the first communication interface 340 may include a POS (“Packet over SONET”) interface, and the second communication interface 350 may be a form of Ethernet (eg, 100Base-T, Gigabit Ethernet (registered)). Trademarks)).
[0036]
FIG. 4A provides an example block diagram of a duplicating switch having a memory implementation (eg, duplicating switch 130 of FIG. 1). Duplicate switch 400A includes a RAM array 420A, a switching engine 430A, and a network interface 440A.
[0037]
RAM array 420A may include one or more RAM memory banks configured and arranged to store one or more content. RAM array 420A may store only a portion of the stream of data units. For example, a provider that streams movies may store a portion of the movie for several users who watch at the same time. RAM array 420A provides a time frame (eg, a movie) that a user can use to stagger the movie (eg, pause, stop playing, or rewind) while maintaining the flow of the movie being broadcast. , A 10 minute time frame).
[0038]
Within the RAM array 420A, there may be a location identifier that tracks or indicates which content to package and / or transmit to the terminal. For example, an OSP ("online service provider") may schedule a stream of data units to be transmitted to a terminal at a certain time. In one example, the duplication switch loads a portion of the stream of content indicated by the location identifier into the RAM array 420A. In this example, the duplication switch may utilize one or more pointers to indicate which content (eg, frames) should be sent to which user. In another example, the on-demand system loads a larger portion of the content into memory and utilizes the first pointer to transmit one stream of data units, simultaneously or otherwise. A second pointer may be utilized to transmit a second stream of data units.
[0039]
Switching engine 430A is configured and arranged to manage content stored in and retrieved from RAM array 420A. Aspects of switching engine 430A generally correspond to aspects of switching engine 330 of FIG. Switching engine 430A typically loads content into and retrieves content from RAM array 420A. Examples of content loaded and retrieved by switching engine 430A include MPEG ("Movie Expert Group") datagrams with I, P and B frames removed, video frames and changes between frames. Includes content without wrappers (eg, OSI wrappers), such as differential checksum values, and frames (eg, Layer 4 datagrams) with one or more additional wrappers. In one implementation, switching engine 430A may implement a system of pointers designed to record at what time or sequence number the terminal is at available stored content. Switching engine 430A may include devices, programs, software controllers, or other systems or devices in combination with the above. In other implementations, the switching engine 430A may manage the use of the entire system, reject later service requests, or attempt to serve more than one terminal from one data unit stream. .
[0040]
Network interface 440A is designed to transmit and receive streams of data units, and generally corresponds to first communication interface 340 and second communication interface 350 shown in FIG.
[0041]
FIG. 4B provides another example block diagram of a duplication switch 400B comprising a storage device implementation. Duplicate switch 400B includes a stream platform 410B, a switching engine 430B, and a network interface 440B.
[0042]
Stream platform 410B is configured and arranged to store content from a stream of data units. Stream platform 410B includes a hard disk drive 412B (or a tape drive or other magnetic memory) and an optical memory 416B. Generally, stream platform 410B includes memory components with low bandwidth characteristics but large capacity. For example, the storage device may include a solid-state memory (not shown) that operates slower than solid-state memory used in other applications. Because more capacity is available with less bandwidth, stream platform 410B typically stores a larger portion of the stream (eg, a movie), but without the RAM or other cache interface. Restricts access to fewer concurrent streams.
[0043]
An implementation of the storage platform 410B may include a disk storage device 412B with a RAM interface to the switching engine 430B. For example, a duplication switch may include a RAM bank and disk storage. Content may be loaded into disk storage so that it is retrieved in the order in which the content is transmitted. When content is retrieved, it is loaded into a RAM bank. The higher throughput performance of a RAM bank may allow more terminals to access the same content. A terminal accessing the stream of data units may utilize a pointer to the contents of the RAM bank to track and load the data units needed by the terminal within the stream of data units.
[0044]
Switching engine 430B is configured and arranged to manage the content stored and retrieved at stream platform 410B. Switching engine 430B generally corresponds to switching engine 430A described with respect to FIG. 4A. Network interface 440B is designed to transmit and receive streams of data units and generally corresponds to first communication interface 340 and second communication interface 350 described with respect to FIG.
[0045]
The RAM-based and storage-based systems described with respect to FIGS. 4A and 4B may have limitations common to existing memory and storage systems (e.g., solid-state RAM provides high throughput but has low storage capacity). FIG. 2 illustrates an implementation designed to compensate for (hard drive and optical memory provide greater storage capacity but lower throughput). However, implementations are not limited to those shown, and memory and storage devices are not necessarily subject to these restrictions. For example, disk drives can be utilized to implement systems that can manage multiple pointers to provide higher bandwidth, and solid-state memory provides higher density storage than disk drive storage. obtain.
[0046]
FIG. 5 shows an example of a duplication switch 500 having a precoder function. Duplicate switch 500 generally corresponds to duplicate switch 130 of FIG. The duplication switch 500 includes a data unit interface 510, a content extraction system 520, a content placement system 540, and a content storage device 550.
[0047]
Data unit interface 510 is typically designed and arranged to interface with a network that sends and receives data units to and from content storage device 550. In general, the functions of data unit interface 510 correspond to the functions of first communication interface 340 and second communication interface 350 of FIG. The data unit interface 510 may also be configured to segment and reassemble the divided data units during transmission, or to handle non-standard data units. For example, data unit interface 510 may be configured to send and receive one or more media frames (eg, frames formatted according to one of ETSI, DVB, ATSC or ECCA). In one example, if the duplication switch 500 receives an analog signal, the data unit interface 510 may convert the signal into a recognized format in which the frame or content can be stored.
[0048]
Content extraction system 520 is configured and arranged to remove data unit wrappers added around the transmitted content. For example, the content extraction system 520 may remove one or more bits associated with OSI ("Open System Connection") information contained in the transmitted content. Content extraction system 520 may also add wrappers as data is retrieved from content storage 550 for later transmission. For example, the content extraction system 520 removes the wrapper information when storing the stream of data units in the content storage device 550, and adds another wrapper when transmitting the stream of the data unit from the content storage device 550. obtain.
[0049]
The content placement system 540 is configured and arranged to instruct storage and retrieval of content information such that the content information can be retrieved in a predetermined manner. For example, the content may be arranged such that the address information can be updated with a predictable increment. In another example, the content may be arranged such that differences between frames of the content can be calculated by analyzing an associated checksum that may be stored.
[0050]
Determining where content can be stored, and storing the content, may include using a hard disk drive dedicated to storing the content. For example, the content storage 550 (eg, a hard drive) may store related content (eg, adjacent frames of a movie or adjacent MPEG I, (P and B frames).
[0051]
Determining where content can be stored, and storing the content, can include using solid state storage (eg, various forms of RAM) to store the content. For example, a solid-state storage device may store all or some of the streams in a RAM memory array. If a portion of the RAM memory is used to store content, the RAM memory may load the content for a certain time frame for transmission to one or more terminals. In some implementations, the duplication switch may store more than one instance of the stream of data units in the RAM array.
[0052]
Content storage device 550 is configured and arranged to store content or frames. As described above with respect to the content placement system 540, the content is generally configured and arranged to be retrieved in a manner that allows for transmission of related content to one or more terminals. Content storage device 550 generally corresponds to storage system 310 of FIG. 3, RAM array 402A of FIG. 4A, and storage platform 410B of FIG. 4B.
[0053]
FIG. 6 illustrates a method of transmitting a stream of data units in a communication system 600. Communication system 600 generally includes a source system 610, a switch 620, and terminals 650 and 670. In general, source system 610 corresponds to source system 110 in FIG. 1, switch 620 corresponds to switch 130 in FIG. 1, and terminals 650 and 670 correspond to terminal 150 in FIG.
[0054]
First, the source system 610 creates or enables access to the stream of data units on demand or otherwise (step 613). If the stream is taken from an analog input (eg, analog audio or analog video), this step may include converting the input into a stream of data units. Allowing access to the stream of data units, even if the input is already digital, may include modifying the input to a properly formatted stream of data units. The stream of data units may include various media streams (eg, video, audio, images, text, and chat). Typically, the data units are IP (Internet Protocol) packets transmitted over the Internet. Source system 610 then sends the generated stream of data units to one or more switches 620 (eg, via network 120) (step 616).
[0055]
Upon receiving a data unit from source system 610 (step 622), switch 620 typically buffers and duplicates at least the payload portion of the data unit (step 624). In some implementations, attributes of the data unit may be removed before buffering the payload. For example, for communication over the Internet, switch 620 may strip IP header information and store only the payload and / or the information represented by the payload. When the data unit is sent to the terminal, switch 620 modifies the existing header or adds a new IP header to the payload. The switch may use destination information corresponding to the IP address of the destination terminal (eg, terminals 650 and 670), or may use a relay point between switch 620 and the destination terminal as the destination information. Using the newly obtained destination information, the switch 620 transmits an IP packet to a suitable terminal, for example, the terminal 670 of FIG. 6 via a network (for example, the network 140 of FIG. 1) (step 626). ).
[0056]
Terminal 670 receives the stream of data units transmitted by switch 620 over the network (step 672), then converts the data units to a perceptible output, operates the data units, or Transfer the data unit to another device. For example, terminal 670 may receive a stream of IP data units containing video content and display or manipulate the video content on a personal computer or other device.
[0057]
In some implementations, a terminal may request a stream. For example, in FIG. 6, terminal 670 is depicted as automatically receiving a stream of data units (step 672), but terminal 650 generates a request to receive a stream of data units (step 652). ) May be possible. Upon receiving the request (step 628), switch 620 may send a stream of one or more data units to terminal 650 (step 630). Terminal 650 then receives the transmitted stream of data units (step 654).
[0058]
In some implementations, switch 620 and terminals 650 and 660 may be required to communicate periodically to maintain streaming. For example, terminal 650 may transmit a "keep stream alive" message every 10 seconds during a stream transmission to indicate that terminal 650 wants to receive the stream.
[0059]
While receiving a stream (step 654), terminal 650 may request another stream (step 652) or request a stop of transmission by sending a request to stop transmitting a stream of data units. (Step 656). Upon receiving a stop request or detecting the end of a stream (step 632), switch 620 stops transmitting the stream of data units (step 634).
[0060]
Terminal 650 may determine to resume transmitting the stream of data units and communicate this determination to switch 620 (step 658). When the switch 620 receives the resume command (step 636), the switch resumes transmitting the stream (step 638), and the terminal 650 receives the stream (step 660).
[0061]
In some implementations, when switch 620 receives a stream of IP data units from source system 610, switch 620 duplicates the payload portion of the data unit and switches the IP address of one or more conference terminals. The destination IP address of the IP data unit specifying the address may be modified or replaced.
[0062]
Terminal 620 typically transmits any particular payload or the entire payload in order for the received data unit payload to be transmitted as the payload of some or all of the data units generated by switch 620. Can be duplicated more than once. Moreover, switch 620 may receive one data unit and transmit the payload as two or more data units.
[0063]
Conversely, switch 620 may receive and combine two or more data units and transmit the combined payload of multiple data units in one data unit. Alternatively, switch 620 may split the payload of the received data unit and combine the split portion with the payload of two or more other received data units.
[0064]
As described with respect to FIG. 7, because the payload is buffered, the switch 620 generates several instances of the buffered payload simultaneously with or without offset, the same or different requiring different instances of them. May be sent to the terminal. These instances may be streamed at various time intervals so that terminal 650 may receive the stream of data units at a different time than terminal 670. For example, terminal 650 may receive the same song as terminal 670 at an Internet radio station, but terminal 650 may receive a data unit corresponding to that song 30 seconds later in time.
[0065]
FIG. 7 illustrates an example of the flow of IP data units from source system 710 to terminals 770, 780, and 790. IP address X. The 1.1.1 source system 710 sends the IP packet 720 to the destination address Y. 1.1.1 to switch 730. IP packet 720 includes the address of the switch as destination address 724 and the address of the source system as source address 726. IP packet 720 may also include other header information 722 and payload 728.
[0066]
Y. The switch 730 having a source address of 1.1.1 duplicates at least the payload 728 of the IP packet 720 and converts the IP data unit 740 to 1. Send to terminal 770 with address 1.1.1. The IP data unit 740 includes the source IP address 746 of the switch 730 along with the destination address 744 of the terminal 770. IP data unit 740 may include additional header information 742 and payload 748. Similar operations are performed to generate IP data units 750 and 760 for terminals 780 and 790.
[0067]
FIG. 8 illustrates a procedure 800 for storing and transmitting data units using a duplicating switch. In general, procedure 800 may be performed using one of the duplication switches described with respect to FIGS.
[0068]
First, the duplication switch receives a data unit (step 805) and selects content from the data unit (step 810). Typically, selecting the content of the data unit includes identifying fields or portions of the data unit corresponding to the content and removing some or all features unrelated to the content. For example, the duplicating switch may strip one or more layers of the OSI ("open intersystem connection") header and store the rest of the data unit as content. In another example, selecting the content includes creating or modifying a location identifier to identify which portion of the data unit should be stored when the data unit is loaded into memory. obtain.
[0069]
Selecting the content may include allowing one or more portions of other features of the data unit to be retained with the content. For example, one or more fields of the OSI header may be stored and stored as content.
[0070]
Implementations may include the use of a precoder to modify or adjust the stored content. For example, a precoder may compress the content so that less bandwidth is consumed during transmission. In another example, the precoder may calculate a checksum or shortcut that indicates the difference between the content. This checksum or shortcut may be stored instead of storing some content.
[0071]
The duplication switch determines the location in the storage system where the content is to be stored (step 820). Typically, the storage location of the content is selected such that the relevant content is retrieved in the relevant operation. Examples of related content may include content in successive frames and / or time slices of the video. The duplication switch then stores the content in the determined location (step 830).
[0072]
Later, the duplication switch receives the request for content (step 840). Receiving the request for content may include causing a user (eg, terminal 150 of FIG. 1) to request a video stream for display on the user's home computer. Implementations may also include having other devices request the content. For example, a cable modem operating as a set top box may request content for display on a television.
[0073]
Implementations may also include generating the request from a source other than the intended destination. For example, a cable system administrator may generate a request for content on behalf of one or more subscribers.
[0074]
Duplicate switch 130 determines which content was requested (step 850). The requester may indicate to send the content. For example, the terminal may keep track of which content was received and generate a request for one or more content (eg, missing frame number 100). Implementations may also include having the duplication switch record which content was requested. For example, a duplication switch may attempt to send the same content to several users.
[0075]
Duplicate switch 130 determines where the content is loaded (step 860). As such, the duplicating switch may utilize the location identifier described with respect to FIGS. Other implementations may employ a file and / or archiving system that is maintained to manage access to content.
[0076]
The duplication switch 130 extracts the content (Step 870). The duplication switch may retrieve the content by reading the memory location specified by the location identifier. Other implementations may include retrieving multiple pieces of content information (eg, reading sectors on a disc).
[0077]
Duplicate switch 130 packages the content into data units (step 880). For example, a duplicating switch may add one or more layers of OSI information (eg, address information). Implementations in which one or more characteristics other than the content of the data unit are stored with the content may include modifying one or more parameters of those fields. For example, as Internet Protocol packets are accumulated, the destination address may be modified to the requesting user's address.
[0078]
Finally, the duplication switch sends the data unit to one or more terminals (step 890). Data units may be sent in formats other than IP addressing. For example, transmitting a data unit may include transmitting an on-demand channel over a network.
[0079]
In FIG. 9, the function of the communication system 900 is described. Communication system 900 generally includes a source system 902, a management device 904, a duplication switch 906, and terminals 908 and 910. In general, source system 902 corresponds to source system 110 in FIG. 1, duplicate switch 906 corresponds to duplicate switch 130 in FIG. 1, and terminals 908 and 910 correspond to terminal 150 in FIG. The management device 904 may include a cable system operator, an OSP, a content provider, or a person who can provide commands or instructions to the duplication switch 906.
[0080]
As shown, source system 902 generates a stream of data units (step 913). Source system 902 sends the stream of data units to duplication switch 906 (step 916).
[0081]
Duplication switch 906 receives the stream of data units (step 925). Duplicate switch 906 then accumulates at least the content portion of the stream of data units (step 927).
[0082]
The stream may be sent in various ways. In some implementations, the management device 904 waits for a condition to appear (step 918). For example, the management device may be a scheduler programmed to instruct the duplication switch to "broadcast". When a condition appears (step 920), the management device 904 transmits a request to transmit a stream of data units to the duplication switch 906 (step 923).
[0083]
Alternatively, terminal 908 may generate a stream request (step 933). For example, terminal 908 may generate a viewing request for a particular video stream. The duplication switch 906 receives the request (step 930).
[0084]
In an implementation generally corresponding to the system described with respect to FIG. 4A, the duplication switch 906 may load one or more content into high speed memory (eg, RAM) (step 931). For example, the duplication switch 906 may determine that bandwidth to existing content storage devices is scarce and load frequently accessed content into high-speed memory to increase capacity.
[0085]
Regardless of the mechanism utilized to indicate when to send the stream of data units to the terminals, the duplication switch 906 may send the stream of data units to two or more terminals 908, 910 (step 936). ). In some implementations, a terminal receives a stream that has been broadcast or automatically transmitted to a stream recipient without requesting a stream of data units. In either case, terminals 908 and 910 receive the stream of data units (steps 940 and 940A). Depending on the implementation, different “stacks” of content may be loaded into memory supporting terminal 910.
[0086]
In some implementations, terminal 908 may generate and send a pause message (step 945). For example, the terminal may want to "pause" the video-on-demand stream and return to the stream later. When the duplication switch 906 receives the suspension message (step 950), the duplication switch 906 suspends transmission to the terminal 908 (step 955). Duplicate switch 906 may continue to transmit a stream of data units to terminal 910 (not shown). The pause message can be implemented in various ways. For example, terminal 908 may resume where it left off by recording which data unit was received and generating and transmitting a resume message (step 960). Other examples may include having the terminal 908 send a stop message and causing the duplication switch 906 to record where to resume when a resume transmission message is received (step 960).
[0087]
If the duplication switch 906 receives the resume message (step 965), the duplication switch 906 sends a stream 970 of data units to the terminal (step 970). Terminal 908 receives the stream of data units (step 975).
[0088]
FIG. 10A illustrates a duplicating switch 1000A configured and arranged to accumulate multiple instances of a stream of data units. Duplicate switch 1000A includes two streams of data units, Stream A and Stream A.1Send Stream A occupies memory storage 1010A in the memory bank and stream A1Occupy memory storage 1020A in the memory bank. In one implementation, a first pointer 1015A to memory storage 1010A indicates which content should be included as a data unit and delivered to the terminal requesting stream A compared to other content. Is shown. As already mentioned, implementations may include storing a portion of the content in a memory bank. For example, if a problematic network condition prevents a terminal from receiving a portion of a stream of data units, the terminal may not receive a portion of the content, and a break in receiving the stream of data units ( For example, missing time of a movie).
[0089]
A second pointer 1025A to the memory storage 1020A indicates which part of the content contained in the stream of data units is transmitted to several terminals. One or more terminals that desire to receive one or more data units in the stream of data units receive the content corresponding to the second pointer 1025A, and the second pointer 1025A Content can be constantly advanced. In some implementations, the second pointer 1025A hastens some content and may include more than one content in one data unit.
[0090]
FIG. 10B illustrates a duplicate switch 1000B configured and arranged to store a plurality of location identifiers. In this example, the duplication switch 1000B includes the five contents of stream A, A1 1010, A2 1020, A3 1030, A4 1040 and A5 1050. Duplicate switch 1000B also includes a memory area allocated for expected content A6 1060.
[0091]
In one example, replication switch 1000B allows individual terminals T, U and V to receive their own stream of data units. Each terminal manages a location identifier (eg, pointer) that instructs the duplication switch to select the appropriate content to be transmitted. For example, terminals T, U and V may start by requesting content A1 1010 simultaneously.
[0092]
After some content has been transmitted, as shown in FIG. 10B, location identifier 1025 for terminal T references content A2 1020 and location identifiers 1042 and 1044 for terminals U and V , Content A4 1040 corresponding to different time lags from content A2. This shift may occur, for example, because terminal T has paused receiving the stream of data units and has received content that is delayed compared to the content received by terminals U and V.
[0093]
In another example, the duplication switch 1000B includes the five contents of stream B: B1 1070, B2 1071, B3 1072, B4 1073, and B5 1080. Duplicate switch 1000B also includes a memory area allocated for expected content B6 1090. In one implementation, stream B may be part of the same stream of data units as stream A, but may correspond to a different part of the stream of data units. For example, stream B may be a “video” stream 5 minutes after the start of one video stream, while stream A may be 40 minutes after the start of the same video stream. In another example, stream B may be the same as stream A, but with an addition to achieve better system performance. In yet another example, stream A and stream B may represent completely different video streams (eg, two different television channels).
[0094]
FIG. 11 illustrates a procedure 1100 for implementing a “pause” function on a duplicate switch as described with respect to FIGS. First, the duplication switch receives the stream of data units (step 1110) and accumulates content from the stream of data units (step 1120). With the content stored and ready for transmission, the duplication switch waits for a request to play the stream of data units (step 1130). The duplicating switch may wait for a play request message, but in some implementations, the duplicating switch may start transmitting (eg, playing) upon receipt of the stream. In this configuration, the content can be stored only when the user requests a pause in the stream.
[0095]
In an optional implementation, the duplication switch may load the stream (content) into high speed memory (step 1140). This generally corresponds to loading the stream into the high speed memory described with respect to FIG.
[0096]
The duplication switch sends the stream of data units (step 1150). While transmitting the stream, the duplication switch 130 may receive a suspend request (step 1160). If the duplication switch 130 receives the suspend request, the duplication switch stops sending the stream of data units to the terminal (step 1165). When the stream of data units is paused, the duplication switch 130 may wait to receive a play request (step 1170).
[0097]
Upon receiving the playback request, the duplication switch 130 continues to transmit the stream of data units from where the terminal left off (step 1180). If no play request is received, the duplication switch 130 waits for a restart request. When the terminal resumes receiving the stream of data units, the duplication switch checks for a new suspend request (step 1160).
[0098]
If the duplication switch 130 does not receive the suspend request, the duplication switch may receive the stop request or reach the end of the stream (step 1185). If a stop request is received or the end of the stream of data units is reached, the duplication switch stops transmitting (step 1190). If not, the duplication switch 130 continues transmission and returns to waiting for a suspend request (step 1160).
[0099]
Stopping transmission may include automatically selecting a stream of other data units to be transmitted. For example, the duplication switch 130 may select another video to send when one video ends.
[0100]
Instead of resuming transmission of the stream at the point where the stream was presented, the stream may be repositioned earlier in the stream (eg, 30 seconds for commercials, 15 seconds for sporting events). An “instant play” or rewind function can be created using a similar process except that it is sent. For example, the duplication switch may load the content representing the stream 30 seconds ago from memory and transmit the content starting at an earlier time (continued from that time).
[0101]
Other implementations are within the scope of the claims. In particular, in some implementations, the terminal includes a set top tuner set that receives an analog signal. Also, the location identifier shown in FIG. 11 may be held by a client or a separate server or device to indicate which content the terminal may receive.
[0102]
Implementations may include a management device requesting stream transmission to a terminal. The management device may include a network operator, a management server, a workstation or a scheduling agent. For example, an administrative workstation may request transmission of a stream of data units to a terminal beginning at a particular time.
[0103]
Implementations may also include storing two or more instances of the stream of data units in a buffer. For example, a switch may accumulate more than one copy of a stream to accommodate a large number of requests. In another example, a stream may buffer a stream of the same data unit at two different points.
[0104]
Implementations may also include having the switch maintain state information for one or more requesting users. For example, the switch may install or assist other devices in defining the profile of the terminal receiving the stream of data units. Thus, the switch uses information available to network processors and devices in defining the profile that is not normally accessible to the server.
[0105]
Further, implementations may include monitoring switch access and utilization levels. For example, the switch may determine that at a given metric (eg, processor utilization, memory utilization, number of users, bandwidth), the switch is operating at 85% of maximum performance.
[0106]
Implementations may include translating or converting content between different formats. For example, a switch may coordinate the transmission of packets to minimize the bandwidth consumed. In another example, the switch may convert a proprietary video encoding format to a standards-based encoding format.
[0107]
Implementations may also include inserting one or more content into a stream of existing data units. For example, a switch may insert a video stream advertisement into the transmission of other video content. The inserted video content may be present on the switch or accessed from other devices remote from the switch transmitting the stream of data units. Implementations of inserting the content may include creating a tag associated with the particular content to be copied. For example, a switch may duplicate a television show with commercials periodically tagged in the video content. Upon receiving the tag, the switch stops transmitting the television show and may access a series of advertisements. Implementations may include having the tag indicate which advertisements to access. For example, the tag may indicate the device on which the advertisement is placed. Tag implementations may also allow access to more than one selected advertisement. The selection of the advertisement may depend on one or more variables, including but not limited to terminal information and profile, network information, and other factors.
[0108]
In addition, implementations may include inserting content based on retained information about a user profile and user state. For example, the switch may determine that the terminal is at the appropriate location in the content to receive an advertisement inserted for a user with a particular profile.
[0109]
Sources, networks, on-demand systems and terminals may also be located on different things within the communication system and may utilize one or more agents and / or proxies that perform particular functions.
[Brief description of the drawings]
[0110]
FIG. 1 is a block diagram of a communication system that can generate a stream of data units utilizing a duplication switch.
FIG. 2A is a diagram of an example data unit that may be transmitted in a communication system as shown in FIG. FIG. 2B is a diagram showing an example of the structure of the attribute unit of the data unit in FIG. 2A.
FIG. 3 is a diagram of exemplary components of a duplicating switch suitable for use in the communication system of FIG. 1;
FIG. 4A is an exemplary block diagram of a duplication switch that utilizes a memory (eg, a RAM (“random access memory”)) that stores media streams for later playback.
FIG. 4B is a block diagram as an example of a duplication switch utilizing a storage device that stores media streams for later playback.
FIG. 5 is a block diagram of a precoder used in the duplication switch.
FIG. 6 is a flowchart illustrating a method for transmitting data units in a communication system such as the communication system of FIG.
FIG. 7 is a flowchart illustrating the movement of an IP packet through the communication system of FIG. 1;
FIG. 8 is a flowchart of a procedure for processing a received data unit using a duplication switch in a communication system such as the communication system of FIG. 1;
FIG. 9 is a flowchart of a procedure for providing a stream of data units in a communication system such as the communication system of FIG.
FIG. 10A illustrates a duplicate switch configured and arranged to accumulate multiple instances of a stream of data units.
FIG. 10B illustrates a duplicate switch configured and arranged to store a plurality of location identifiers.
FIG. 11 is a flowchart of a procedure for shifting a content time in a communication system such as the communication system of FIG. 1;

Claims (88)

端末にデータ・ユニットをストリーミングする方法であって、
複製スイッチを利用して第一のデータ・ユニットのストリームを受信する工程と、
前記複製スイッチを利用して前記第一のストリームのコンテンツを蓄積する工程と、
前記複製スイッチを利用して、前記第一のストリームの一部ではなかったアドレス情報を有するより多くの端末による利用のために、前記の蓄積されたコンテンツを取り込む第二のストリームを生成する工程と、
前記複製スイッチを利用して前記第二のストリームを前記端末から利用可能とする工程と、
を含み、前記複製スイッチが、前記第一のストリームの一部又はそれ以上を複製するように構成される方法。
A method of streaming a data unit to a terminal, comprising:
Receiving a stream of the first data unit utilizing a duplication switch;
Storing the content of the first stream using the duplication switch;
Utilizing the duplication switch to generate a second stream that captures the stored content for use by more terminals having address information that was not part of the first stream; ,
Making the second stream available from the terminal using the duplication switch;
And wherein the duplication switch is configured to duplicate a portion or more of the first stream.
請求項1記載の方法であって、前記複製スイッチを利用してコンテンツを蓄積する工程が、生成される前記データ・ユニットと時間的に関連するコンテンツを蓄積する工程を含む方法。The method of claim 1, wherein storing the content using the duplicating switch comprises storing content temporally associated with the data unit to be generated. 請求項1記載の方法であって、更に、コンテンツのどの部分が前記第二のストリームに生成されるのかを示すために位置識別子を利用する工程を含む方法。The method of claim 1, further comprising the step of utilizing a location identifier to indicate which portion of the content is generated in the second stream. 請求項3記載の方法であって、更に、二つの異なるストリームとして時間をずらされた前記コンテンツにアクセスするために位置識別子を利用する工程を含む方法。4. The method of claim 3, further comprising utilizing a location identifier to access the content staggered as two different streams. 請求項1記載の方法であって、複製スイッチを利用してコンテンツを蓄積する工程が、コンテンツの同一部分の2つ以上のインスタンスを蓄積する工程を含む方法。The method of claim 1, wherein storing the content using the duplication switch comprises storing two or more instances of the same portion of the content. 請求項5記載の方法であって、前記複製スイッチを利用してコンテンツを蓄積する工程が、コンテンツへの需要が増加するにつれて、ストリームの追加のインスタンスを蓄積する工程を含む方法。The method of claim 5, wherein storing the content utilizing the duplication switch comprises storing additional instances of the stream as the demand for the content increases. 請求項1記載の方法であって、前記複製スイッチを利用してコンテンツを蓄積する工程が、コンテンツ及び関連するヘッダ情報を蓄積する工程を含む方法。The method of claim 1, wherein storing the content using the duplication switch comprises storing the content and associated header information. 請求項1記載の方法であって、前記複製スイッチを利用してコンテンツを蓄積する工程が、前記コンテンツを表わすチェックサムを蓄積する工程を含む方法。The method of claim 1, wherein storing the content using the duplication switch comprises storing a checksum representing the content. 請求項1記載の方法であって、前記第二のストリームのうちの少なくとも一つが、端末からの要求の受信に応じて送信される方法。The method of claim 1, wherein at least one of the second streams is transmitted in response to receiving a request from a terminal. 請求項1記載の方法であって、前記第二のストリームが、サービス・プロバイダーからの要求の受信に応じて送信される方法。The method of claim 1, wherein the second stream is transmitted in response to receiving a request from a service provider. 請求項1記載の方法であって、
前記コンテンツを蓄積する工程が、ストリームの単一の蓄積されたインスタンスの同時送信を追跡するために位置識別子を利用する工程を含み、
送信する工程が、前記の単一の蓄積されたインスタンス内の前記の様々なデータ・ユニットを、重なるが時差によるずれがある前記ストリームを受信している端末を有する幾人かの要求者に送信する工程を含む方法。
The method of claim 1, wherein
Storing the content comprises utilizing a location identifier to track simultaneous transmission of a single stored instance of the stream;
Transmitting the various data units in the single stored instance to a number of requesters having terminals receiving the streams that overlap but are staggered A method comprising the steps of:
請求項1記載の方法であって、前記複製スイッチが、第一のデータ・ユニットのストリームを受信する工程、前記第一のストリームからのコンテンツを蓄積する工程、第二のストリームを生成する工程及び前記第二のストリームを利用可能にする工程のうちの一つ又はそれ以上を実行するように構成されたハードウェアを含む特化された装置である方法。The method of claim 1, wherein the duplicating switch receives a stream of a first data unit, stores content from the first stream, generates a second stream, and A method that is a specialized device that includes hardware configured to perform one or more of the steps of making said second stream available. 第一のデータ・ユニットのストリームを受信する手段と、
前記第一のストリームからのコンテンツを蓄積する手段と、
前記第一のストリームの一部ではなかったアドレス情報を有するより多くの端末が利用するために前記蓄積されたコンテンツを組込む第二のストリームを生成する生成手段であって、前記第一のストリームの一つ又はそれ以上の部分を複製するように構成された生成手段と、
前記第二のストリームを前記端末に利用可能にする手段と、
を備える複製スイッチ。
Means for receiving a stream of the first data unit;
Means for storing content from the first stream;
Generating means for generating a second stream incorporating the stored content for use by more terminals having address information that was not part of the first stream; Generating means configured to duplicate one or more parts;
Means for making said second stream available to said terminal;
A replication switch comprising:
請求項13記載の複製スイッチであって、コンテンツを蓄積する手段が、生成される前記データ・ユニットと時間的に関連するコンテンツを蓄積する手段を含む複製スイッチ。14. The duplicating switch of claim 13, wherein the means for storing content includes means for storing content temporally associated with the data unit to be generated. 請求項14記載の複製スイッチであって、更に、コンテンツのどの部分が前記第二のストリームに生成されるのかを示す位置識別子を利用する手段を含む複製スイッチ。15. The duplication switch of claim 14, further comprising means for utilizing a location identifier indicating which portion of the content is generated in the second stream. 請求項15記載の複製スイッチであって、更に、二つの異なるストリームとして時間をずらされた前記コンテンツにアクセスするために位置識別子を利用する手段を含む複製スイッチ。16. The duplication switch of claim 15, further comprising means for utilizing a location identifier to access the content staggered as two different streams. 請求項13記載の複製スイッチであって、コンテンツを蓄積する手段が、コンテンツの同一部分の2つ以上のインスタンスを蓄積する手段を含む複製スイッチ。14. The duplication switch of claim 13, wherein the means for storing content includes means for storing two or more instances of the same portion of the content. 請求項17記載の複製スイッチであって、コンテンツを蓄積する手段が、前記コンテンツへの需要が増加するにつれて、前記ストリームの追加のインスタンスを蓄積する手段を含む複製スイッチ。18. The duplication switch of claim 17, wherein the means for accumulating content includes means for accumulating additional instances of the stream as demand for the content increases. 請求項13記載の複製スイッチであって、コンテンツを蓄積する手段が、コンテンツ及び関連付けられたヘッダ情報を蓄積する手段を含む複製スイッチ。14. The duplicating switch of claim 13, wherein the means for storing content includes means for storing content and associated header information. 請求項13記載の複製スイッチであって、コンテンツを蓄積する手段が、前記コンテンツを表わすチェックサムを蓄積する手段を含む複製スイッチ。14. The duplicating switch of claim 13, wherein the means for storing content includes means for storing a checksum representing the content. 請求項13記載の複製スイッチであって、前記第二のストリームを利用可能にする前記手段が、端末からの要求の受信に応じて、前記第二のストリームの少なくとも一つを送信する手段を含む複製スイッチ。14. The duplicating switch of claim 13, wherein the means for making the second stream available includes means for transmitting at least one of the second streams in response to receiving a request from a terminal. Duplicate switch. 請求項13記載の複製スイッチであって、前記第二のストリームが、サービス・プロバイダーからの要求の受信に応じて、前記第二のストリームを利用可能にする前記方法により送信される複製スイッチ。14. The duplicating switch of claim 13, wherein the second stream is transmitted by the method for making the second stream available in response to receiving a request from a service provider. 請求項13記載の複製スイッチであって、
前記コンテンツを蓄積する手段が、ストリームの単一の蓄積されたインスタンスの同時送信を追跡するために位置識別子を利用する手段を含み、
送信する手段が、前記の単一の蓄積されたインスタンス内の前記の様々なデータ・ユニットを、重なるが時差によるずれがある前記ストリームを受信している端末を有する幾人かの要求者に送信する手段を含む複製スイッチ。
The duplication switch according to claim 13, wherein
Means for storing the content includes means for utilizing a location identifier to track simultaneous transmission of a single stored instance of the stream;
Means for transmitting transmits the various data units in the single stored instance to some requesters having terminals receiving the streams that overlap but are staggered Duplicate switch including means for doing.
請求項13記載の複製スイッチであって、前記生成手段が、第一のデータ・ユニットのストリームを受信する工程、前記第一のストリームからのコンテンツを蓄積する工程、第二のストリームを生成する工程及び前記第二のストリームを利用可能にする工程のうちの一つ又はそれ以上を実行するように構成されたハードウェアを含む特化された装置を含む複製スイッチ。14. The duplicating switch according to claim 13, wherein said generating means receives a stream of a first data unit, stores content from said first stream, and generates a second stream. And a specialized switch that includes specialized equipment that includes hardware configured to perform one or more of the steps of making the second stream available. 第一のデータ・ユニットのストリームを受信するように構成及び配置された第一の通信インターフェースと、
前記第一のストリームからのコンテンツを蓄積するように構成及び配置された記憶プロセッサと、
前記第一のストリームの一部ではなかったアドレス情報を有するより多くの端末が利用するために前記蓄積されたコンテンツを組込む第二のストリームを生成するように構成及び配置されたスイッチング・プロセッサであって、前記第一のストリームの一つ又はそれ以上の部分を複製するように構成されたスイッチング・プロセッサと、
前記第二のストリームを前記端末に利用可能にするよう構成及び配置された第二の通信インターフェースと、
を備える複製スイッチ。
A first communication interface configured and arranged to receive the stream of the first data unit;
A storage processor configured and arranged to store content from the first stream;
A switching processor configured and arranged to generate a second stream incorporating the stored content for use by more terminals having address information that was not part of the first stream. A switching processor configured to replicate one or more portions of the first stream;
A second communication interface configured and arranged to make the second stream available to the terminal;
A replication switch comprising:
請求項25記載の複製スイッチであって、前記記憶プロセッサが、生成される前記データ・ユニットと時間的に関連するコンテンツを蓄積するよう構成及び配置される複製スイッチ。26. The duplicating switch of claim 25, wherein the storage processor is configured and arranged to store content that is temporally related to the data unit being generated. 請求項26記載の複製スイッチであって、更に、コンテンツのどの部分が前記第二のストリームに生成されるのかを示す位置識別子を利用するよう構成及び配置された第一のメモリ・プロセッサを備える複製スイッチ。27. The duplication switch of claim 26, further comprising a first memory processor configured and arranged to utilize a location identifier indicating which portion of the content is generated in the second stream. switch. 請求項27記載の複製スイッチであって、更に、二つの異なるストリームとして時間をずらされた前記コンテンツにアクセスするために位置識別子を利用するよう構成及び配置された第二のメモリ・プロセッサを備える複製スイッチ。28. The duplication switch of claim 27, further comprising a second memory processor configured and arranged to utilize a location identifier to access the content staggered as two different streams. switch. 請求項25記載の複製スイッチであって、記憶プロセッサが、コンテンツの同一部分の2つ以上のインスタンスを蓄積するように構成及び配置される複製スイッチ。26. The duplication switch of claim 25, wherein the storage processor is configured and arranged to store two or more instances of the same portion of the content. 請求項29記載の複製スイッチであって、前記記憶プロセッサが、前記コンテンツへの需要が増加するにつれて、前記ストリームの追加のインスタンスを蓄積するよう構成及び配置される複製スイッチ。30. The duplication switch of claim 29, wherein the storage processor is configured and arranged to accumulate additional instances of the stream as demand for the content increases. 請求項25記載の複製スイッチであって、前記記憶プロセッサが、コンテンツ及び関連付けられたヘッダ情報を蓄積するよう構成及び配置される複製スイッチ。26. The duplicating switch of claim 25, wherein the storage processor is configured and arranged to store content and associated header information. 請求項31記載の複製スイッチであって、前記記憶プロセッサが、前記コンテンツを表わすチェックサムを蓄積するよう構成及び配置される複製スイッチ。32. The duplication switch of claim 31, wherein the storage processor is configured and arranged to store a checksum representing the content. 請求項25記載の複製スイッチであって、前記第二の通信インターフェースが、端末からの要求の受信に応じて、前記第二のストリームのうちの少なくとも一つを利用可能にするよう構成及び配置される複製スイッチ。26. The duplication switch of claim 25, wherein the second communication interface is configured and arranged to make available at least one of the second streams in response to receiving a request from a terminal. Replication switch. 請求項25記載の複製スイッチであって、前記第二のストリームが、サービス・プロバイダーからの要求の受信に応じて、前記第二の通信インターフェースにより送信される複製スイッチ。26. The duplicating switch of claim 25, wherein the second stream is transmitted by the second communication interface in response to receiving a request from a service provider. 請求項25記載の複製スイッチであって、
前記記憶プロセッサが、ストリームの単一の蓄積されたインスタンスの同時送信を追跡するために位置識別子を利用するよう構成及び配置され、
前記第二の通信インターフェースが、前記の単一の蓄積されたインスタンス内の前記の様々なデータ・ユニットを、重なるが時差によるずれがある前記ストリームを受信している端末を有する幾人かの要求者に送信するよう構成及び配置される複製スイッチ。
26. The duplication switch of claim 25,
The storage processor is configured and arranged to utilize a location identifier to track simultaneous transmission of a single stored instance of the stream;
A number of requests, the terminal having the terminal receiving the streams overlapping, but staggered, the various data units in the single stored instance, Duplicating switch configured and arranged to transmit to a third party.
請求項25記載の複製スイッチであって、前記スイッチング・プロセッサが、第一のデータ・ユニットのストリームを受信する工程、前記第一のストリームからのコンテンツを蓄積する工程、第二のストリームを生成する工程及び前記第二のストリームを利用可能にする工程のうちの一つ又はそれ以上を実行するように構成されたハードウェアを含む特化された装置である複製スイッチ。26. The duplicating switch of claim 25, wherein the switching processor receives a stream of a first data unit, stores content from the first stream, and generates a second stream. A duplicating switch that is a specialized device that includes hardware configured to perform one or more of the steps and making the second stream available. パケットを送信する方法であって、
スイッチを利用して、ペイロード部及び属性部を含むデータ・ユニットのストリームを受信する工程と、
スイッチを利用して、前記ストリームのデータ・ユニットの少なくとも前記ペイロード部を複製する工程と、
スイッチを利用して、2台又はそれ以上の端末による前記データ・ユニットの前記の複製されたペイロード部へのアクセスを可能にする工程と、
を含む方法。
A method of transmitting a packet,
Utilizing a switch to receive a stream of data units including a payload portion and an attribute portion;
Using a switch to duplicate at least the payload portion of the data units of the stream;
Using a switch to allow two or more terminals to access the duplicated payload portion of the data unit;
A method that includes
請求項37記載の方法であって、前記データ・ユニットが、インターネット・プロトコル・パケットを含む方法。38. The method of claim 37, wherein the data unit comprises an Internet Protocol packet. 請求項38記載の方法であって、前記データ・ユニットの前記属性部が、インターネット・プロトコル・ヘッダを含む方法。39. The method of claim 38, wherein the attribute of the data unit includes an Internet Protocol header. 請求項37記載の方法であって、前記データ・ユニットの前記属性部が、一つ又はそれ以上のレイヤ3情報を特定する方法。38. The method of claim 37, wherein the attribute of the data unit specifies one or more layer 3 information. 請求項37記載の方法であって、更に、前記スイッチを利用して、前記スイッチにより生成された前記ペイロード部の複製に異なる属性部を生成し関連付ける工程を含む方法。38. The method of claim 37, further comprising utilizing the switch to generate and associate a different attribute portion with a copy of the payload portion generated by the switch. 請求項37記載の方法であって、前記スイッチを利用して少なくとも前記ペイロード部を複製する工程が、前記データ・ユニットの前記ペイロード部のみを複製する工程を含む方法。38. The method of claim 37, wherein utilizing the switch to duplicate at least the payload portion comprises duplicating only the payload portion of the data unit. 請求項41記載の方法であって、前記スイッチを利用して異なる属性部を前記データ・ユニット及び前記ペイロード部の複製に関連付ける工程が、前記ペイロード部の前記複製間で異なる宛て先情報を特定する工程を含む方法。43. The method of claim 41, wherein associating different attribute portions with the data unit and the copy of the payload portion using the switch identifies different destination information between the copies of the payload portion. A method comprising a step. 請求項37記載の方法であって、前記スイッチを利用して複製する工程が、前記スイッチを利用して前記ペイロード部及び前記属性部を複製する工程を含む方法。38. The method of claim 37, wherein the step of duplicating using the switch includes duplicating the payload and the attribute using the switch. 請求項41記載の方法であって、前記スイッチを利用して異なる属性部を生成し関連付ける工程が、宛て先IPアドレスを変更する工程を含む方法。42. The method according to claim 41, wherein generating and associating different attribute parts using the switch comprises changing a destination IP address. 請求項45記載の方法であって、前記宛て先IPアドレスを変更する工程が、前記宛て先IPアドレスを、前記ペイロード部へのアクセスが可能化される一つ又はそれ以上の端末に対応するIPアドレスに変更する工程を含む方法。46. The method of claim 45, wherein the step of changing the destination IP address comprises changing the destination IP address to an IP address corresponding to one or more terminals for which access to the payload portion is enabled. A method including a step of changing to an address. 請求項37記載の方法であって、前記データ・ユニットを利用する工程が、音声コンテンツを含む方法。38. The method of claim 37, wherein utilizing the data unit comprises audio content. 請求項37記載の方法であって、前記データ・ユニットがビデオ・コンテンツを含む方法。38. The method of claim 37, wherein the data unit includes video content. 請求項37記載の方法であって、前記データ・ユニットがストリーミングされるメディアを含む方法。38. The method of claim 37, wherein the data units include media to be streamed. 請求項37記載の方法であって、更に、前記の2台以上の要求端末のうちの少なくとも一つから、前記データ・ユニットのストリームの受信要求を受け取る工程を含む方法。38. The method of claim 37, further comprising receiving a request to receive the stream of data units from at least one of the two or more requesting terminals. 請求項50記載の方法であって、前記スイッチを利用して前記データ・ユニットの前記ペイロード部へのアクセスを可能にする工程が、前記要求に応じて、前記の少なくとも一つの要求端末へのアクセスを可能にする工程を含む方法。51. The method of claim 50, wherein utilizing the switch to enable access to the payload portion of the data unit comprises accessing the at least one requesting terminal in response to the request. A method comprising the steps of: 請求項50記載の方法であって、前記要求が、前記端末以外の装置から受信される方法。The method of claim 50, wherein the request is received from a device other than the terminal. それぞれがペイロード部と属性部とを含む一つ又はそれ以上のデータ・ユニットのストリームを受信するよう構成及び配置された第一の通信インターフェースと、
前記の受信したストリームに含まれる前記データ・ユニットの少なくとも前記ペイロード部を蓄積するよう構成及び配置されたバッファと、
一つ又はそれ以上の前記データ・ユニットの少なくとも前記ペイロード部を複製するよう構成及び配置されたレプリケーターと、
前記レプリケーターにより複製された前記ペイロード部への2台以上の端末によるアクセスを可能にするよう構成及び配置された第二の通信インターフェースと、
を備えるスイッチ。
A first communication interface configured and arranged to receive a stream of one or more data units, each including a payload portion and an attribute portion;
A buffer configured and arranged to store at least the payload portion of the data unit included in the received stream;
A replicator configured and arranged to replicate at least the payload portion of one or more of the data units;
A second communication interface configured and arranged to allow access by two or more terminals to the payload portion duplicated by the replicator,
A switch comprising:
請求項53記載のスイッチであって、データ・ユニットがインターネット・プロトコル・パケットを含むスイッチ。54. The switch of claim 53, wherein the data unit comprises an Internet Protocol packet. 請求項53記載のスイッチであって、データ・ユニットの前記属性部が、一つ又はそれ以上のレイヤ3情報を特定するスイッチ。54. The switch of claim 53, wherein the attribute of a data unit specifies one or more layer 3 information. 請求項53記載のスイッチであって、更に、前記レプリケーターにより複製された前記ペイロード部に、異なる属性部を生成し関連付けるよう構成及び配置されたプロセッサを備えるスイッチ。54. The switch of claim 53, further comprising a processor configured and arranged to generate and associate a different attribute portion with the payload portion duplicated by the replicator. 請求項56記載のスイッチであって、前記プロセッサが、ペイロード部の様々な複製されたバージョン間で異なる宛て先情報を特定するように構成及び配置されるスイッチ。57. The switch of claim 56, wherein the processor is configured and arranged to specify different destination information between different replicated versions of the payload portion. 請求項56記載のスイッチであって、前記プロセッサが、宛て先IPアドレスを変更するように構成及び配置されるスイッチ。57. The switch of claim 56, wherein the processor is configured and arranged to change a destination IP address. 請求項56記載のスイッチであって、前記プロセッサが、前記宛て先IPアドレスを、
前記第二の通信インターフェースを用いる前記ペイロード部へのアクセスが可能化される前記端末に対応するIPアドレスに変更するよう構成及び配置されるスイッチ。
57. The switch of claim 56, wherein the processor sets the destination IP address,
A switch configured and arranged to change to an IP address corresponding to the terminal that is enabled to access the payload using the second communication interface.
請求項53記載のスイッチであって、前記レプリケーターが、前記ペイロード部及び前記属性部を複製するよう構成及び配置されるスイッチ。54. The switch of claim 53, wherein the replicator is configured and arranged to duplicate the payload portion and the attribute portion. 請求項53記載のスイッチであって、前記データ・ユニットが音声コンテンツを含むスイッチ。54. The switch of claim 53, wherein the data unit includes audio content. 請求項53記載のスイッチであって、前記データ・ユニットがビデオ・コンテンツを含むスイッチ。54. The switch of claim 53, wherein the data unit includes video content. 請求項53記載のスイッチであって、前記データ・ユニットがストリーミングされるメディアを含むスイッチ。54. The switch of claim 53, wherein the data units include media to be streamed. 請求項53記載のスイッチであって、更に、前記の2台以上の端末のうちの少なくとも1台の要求端末から前記データ・ユニットのストリームの受信要求を受け取るよう構成及び配置された第三の通信インターフェースを備えるスイッチ。54. The switch of claim 53, further configured and arranged to receive a request to receive the stream of data units from at least one requesting terminal of the two or more terminals. A switch with an interface. 請求項64記載のスイッチであって、前記第二の通信インターフェースが、前記要求に応じて、前記の少なくとも1台の要求端末による前記ペイロード部へのアクセスを可能にするよう構成及び配置されるスイッチ。65. The switch of claim 64, wherein said second communication interface is configured and arranged to allow said at least one requesting terminal to access said payload portion in response to said request. . 請求項64記載のスイッチであって、前記要求者が、前記端末以外の装置を含むスイッチ。65. The switch according to claim 64, wherein the requester includes a device other than the terminal. 請求項53記載のスイッチであって、前記第二の通信インターフェースが、二つの異なる端末に前記の複製されたデータ・ユニットのストリームを送信するスイッチ。54. The switch of claim 53, wherein the second communication interface transmits the duplicated data unit stream to two different terminals. 請求項67記載のスイッチであって、前記の二つの異なる端末が、二つの異なる時間の隔たりにおいて前記データ・ユニットのストリームを受信するスイッチ。68. The switch of claim 67, wherein the two different terminals receive the stream of data units at two different time intervals. 請求項53記載のスイッチであって、第一の端末が前記データ・ユニットのストリームのうちの第二の端末とは異なる点で前記データ・ユニットのストリームを受信することを可能にするために、前記レプリケーターが前記バッファのコンテンツへの2つ以上のポインタを含むスイッチ。54. The switch of claim 53, to enable a first terminal to receive the stream of data units at a different point of the stream of data units from a second terminal. A switch wherein the replicator includes two or more pointers to the contents of the buffer. 請求項53記載のスイッチであって、前記バッファが前記データ・ユニットのストリームの2つ以上のインスタンスを含むスイッチ。The switch of claim 53, wherein the buffer includes two or more instances of the stream of data units. 請求項53記載のスイッチであって、前記レプリケーターが、前記データ・ユニットの前記ペイロード部のみを複製するよう構成及び配置されるスイッチ。54. The switch of claim 53, wherein the replicator is configured and arranged to duplicate only the payload portion of the data unit. 複製されたデータ・ユニットのストリームを受信する方法であって、
前記データ・ユニットのストリームを複製でき、該複製されたデータ・ユニットのストリームを2台以上の端末にアクセス可能にすることができるスイッチを含むネットワークとインターフェースを取る工程と、
前記データ・ユニットのストリームを前記スイッチから受信する工程であって、前記ストリーム内の前記データ・ユニットのそれぞれが、前記スイッチにより複製されるペイロード部と属性部とを含む工程と、
を含む方法。
A method for receiving a stream of replicated data units, comprising:
Interfacing with a network that includes a switch that can replicate the stream of data units and make the replicated stream of data units accessible to two or more terminals;
Receiving the stream of data units from the switch, wherein each of the data units in the stream includes a payload portion and an attribute portion duplicated by the switch;
A method that includes
請求項72記載の方法であって、更に、前記データ・ユニットのストリームに基づいて知覚可能な出力を生成する工程を含む方法。73. The method of claim 72, further comprising generating a perceptible output based on the stream of data units. 請求項72記載の方法であって、前記データ・ユニットの前記属性部が、IPヘッダを含む方法。The method of claim 72, wherein the attribute portion of the data unit includes an IP header. 請求項72記載の方法であって、前記データ・ユニットの前記属性部が、一つ又はそれ以上のレイヤ3情報を特定する方法。73. The method of claim 72, wherein the attributes of the data unit specify one or more layer 3 information. 請求項72記載の方法であって、前記データ・ユニットが音声コンテンツを含む方法。73. The method of claim 72, wherein the data units include audio content. 請求項72記載の方法であって、前記データ・ユニットがビデオ・コンテンツを含む方法。73. The method of claim 72, wherein the data units include video content. 請求項72記載の方法であって、前記データ・ユニットがストリーミングされたメディアを含む方法。73. The method of claim 72, wherein the data units include streamed media. 請求項72記載の方法であって、更に、前記データ・ユニットのストリームの受信要求を生成する工程を含む方法。73. The method of claim 72, further comprising generating a request to receive the stream of data units. 請求項79記載の方法であって、前記データ・ユニットの前記ペイロード部が、前記要求に応じて受信される方法。80. The method of claim 79, wherein the payload portion of the data unit is received in response to the request. 端末にデータ・ユニットを配信する方法であって、
属性部とペイロード部とを含むデータ・ユニットのストリーム内のデータ・ユニットの少なくともペイロード部を複製することができる一つ又はそれ以上のスイッチを含むネットワークとインターフェースを取る工程と、
2台以上の端末への送信のために、前記ストリーム内の前記データ・ユニットの少なくとも前記ペイロード部を複製するために、前記データ・ユニットのストリームを前記スイッチに送信する工程と、
を含む方法。
A method of delivering a data unit to a device, comprising:
Interfacing with a network including one or more switches capable of replicating at least the payload portion of the data unit in the stream of data units including the attribute portion and the payload portion;
Transmitting a stream of the data units to the switch to duplicate at least the payload portion of the data units in the stream for transmission to two or more terminals;
A method that includes
請求項81記載の方法であって、前記データ・ユニットが音声コンテンツを含む方法。The method of claim 81, wherein the data units include audio content. 請求項81記載の方法であって、前記データ・ユニットがビデオ・コンテンツを含む方法。The method of claim 81, wherein the data units include video content. 請求項81記載の方法であって、前記データ・ユニットがストリーミングされたメディアを含む方法。83. The method of claim 81, wherein the data units include streamed media. 請求項81記載の方法であって、前記データ・ユニットの前記属性部がIPヘッダを含む方法。The method of claim 81, wherein the attribute portion of the data unit includes an IP header. 請求項81記載の方法であって、前記データ・ユニットの前記属性部が一つ又はそれ以上のレイヤ3情報を特定する方法。The method of claim 81, wherein the attribute portion of the data unit specifies one or more layer 3 information. ペイロード部と属性部とを含む一つ又はそれ以上のデータ・ユニットのストリームを受信するための第一の通信インターフェース手段と、
前記の受信されたストリームに含まれる前記データ・ユニットの少なくとも前記ペイロード部を蓄積するためのバッファ手段と、
一つ又はそれ以上の前記データ・ユニットの少なくとも前記ペイロード部を複製するためのレプリケーター手段と、
前記レプリケーターにより複製された前記ペイロード部への2台以上の端末によるアクセスを可能にするための第二の通信インターフェース手段と、
を備えるスイッチ。
First communication interface means for receiving a stream of one or more data units including a payload portion and an attribute portion;
Buffer means for storing at least the payload portion of the data unit included in the received stream;
Replicator means for replicating at least the payload portion of one or more of the data units;
Second communication interface means for enabling access by two or more terminals to the payload portion duplicated by the replicator,
A switch comprising:
データ・ユニットのストリームへのアクセスを可能にするように構成及び配置されたソース・システムと、
ソース・システムからのデータ・ユニットのストリームを受信し、前記ストリームの前記データ・ユニットの少なくともペイロード部を複製し、複製されたペイロード部を2台以上の端末に送信するように構成及び配置されたスイッチと、
前記スイッチにより複製されたデータ・ユニットのストリームを受信するように構成及び配置された一つ又はそれ以上の端末と、
を備えるシステム。
A source system configured and arranged to allow access to the stream of data units;
Arranged and arranged to receive a stream of data units from a source system, duplicate at least a payload portion of the data unit of the stream, and transmit the duplicated payload portion to two or more terminals Switches and
One or more terminals configured and arranged to receive a stream of data units duplicated by the switch;
A system comprising:
JP2002586120A 2001-04-30 2002-04-30 Duplicate switch for streaming data units to terminals Pending JP2004533755A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US28696401P 2001-04-30 2001-04-30
US09/893,692 US7266609B2 (en) 2001-04-30 2001-06-29 Generating multiple data streams from a single data source
US34318301P 2001-12-31 2001-12-31
PCT/US2002/013362 WO2002088885A2 (en) 2001-04-30 2002-04-30 A duplicating switch for streaming data units to a terminal

Publications (1)

Publication Number Publication Date
JP2004533755A true JP2004533755A (en) 2004-11-04

Family

ID=27403667

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002586120A Pending JP2004533755A (en) 2001-04-30 2002-04-30 Duplicate switch for streaming data units to terminals

Country Status (6)

Country Link
EP (1) EP1384129A4 (en)
JP (1) JP2004533755A (en)
CN (1) CN100449509C (en)
AU (1) AU2002305256B2 (en)
CA (1) CA2445798A1 (en)
WO (1) WO2002088885A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010146085A (en) * 2008-12-16 2010-07-01 Konica Minolta Business Technologies Inc Data delivery system, data delivery device, data delivery method and data delivery program

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003294008A1 (en) * 2003-12-24 2005-07-21 Telefonaktiebolaget Lm Ericsson (Publ) Distributing a data stream in a telecommunications network
US8005199B2 (en) 2006-08-18 2011-08-23 Avaya Inc. Intelligent media stream recovery
FR2906954B1 (en) * 2006-10-10 2009-02-27 Tdf Sa METHOD FOR TIME DELAYING DIGITAL CONTENT STREAMS, DEVICE, AND CORRESPONDING COMPUTER PROGRAM PRODUCT.
US8352540B2 (en) 2008-03-06 2013-01-08 International Business Machines Corporation Distinguishing data streams to enhance data storage efficiency
US10484487B2 (en) 2015-04-01 2019-11-19 At&T Mobility Ii Llc System and method for predictive delivery of prioritized content

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5583561A (en) * 1994-06-07 1996-12-10 Unisys Corporation Multi-cast digital video data server using synchronization groups
US5815662A (en) * 1995-08-15 1998-09-29 Ong; Lance Predictive memory caching for media-on-demand systems
US5867502A (en) * 1996-02-15 1999-02-02 Bellsouth Corporation Method and system for interfacing an ATM switch and an optical network wherein bandwidth is maximized and non-local data streams are grouped into destination groups
US5883891A (en) * 1996-04-30 1999-03-16 Williams; Wyatt Method and apparatus for increased quality of voice transmission over the internet
US5838912A (en) * 1996-09-04 1998-11-17 International Business Machines Corporation Distribution of digitally encoded presentations
US6195680B1 (en) * 1998-07-23 2001-02-27 International Business Machines Corporation Client-based dynamic switching of streaming servers for fault-tolerance and load balancing
US6363429B1 (en) * 1999-04-20 2002-03-26 3Com Corporation Method and system for automatic determination of priority data streams on computer networks
US6381746B1 (en) * 1999-05-26 2002-04-30 Unisys Corporation Scaleable video system having shared control circuits for sending multiple video streams to respective sets of viewers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010146085A (en) * 2008-12-16 2010-07-01 Konica Minolta Business Technologies Inc Data delivery system, data delivery device, data delivery method and data delivery program

Also Published As

Publication number Publication date
CN100449509C (en) 2009-01-07
EP1384129A2 (en) 2004-01-28
CA2445798A1 (en) 2002-11-07
EP1384129A4 (en) 2006-08-30
AU2002305256B2 (en) 2008-11-06
WO2002088885A3 (en) 2002-12-19
CN1559037A (en) 2004-12-29
WO2002088885A2 (en) 2002-11-07

Similar Documents

Publication Publication Date Title
US10771834B2 (en) Personalized content
US7694013B2 (en) Duplicating switch for streaming data units to a terminal
US8762575B2 (en) Inserting advertising content
EP1866788B1 (en) Stream control failover
Acharya et al. Middleman: A video caching proxy server
JP4884460B2 (en) Instant media on demand
US7324555B1 (en) Streaming while fetching broadband video objects using heterogeneous and dynamic optimized segmentation size
US8572278B2 (en) Generating multiple data streams from a single data source
US8122478B2 (en) Method and system for interactive multimedia
US20060005224A1 (en) Technique for cooperative distribution of video content
US20030055910A1 (en) Method and apparatus to manage data on a satellite data server
JP2004533755A (en) Duplicate switch for streaming data units to terminals
AU2002305256A1 (en) A duplicating switch for streaming data units to a terminal

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080310

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080609

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080616

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080710

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080717

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080808

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080909

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081010