JP6278531B2 - ハイブリッドhttp及びudpコンテンツ配信 - Google Patents

ハイブリッドhttp及びudpコンテンツ配信 Download PDF

Info

Publication number
JP6278531B2
JP6278531B2 JP2015528711A JP2015528711A JP6278531B2 JP 6278531 B2 JP6278531 B2 JP 6278531B2 JP 2015528711 A JP2015528711 A JP 2015528711A JP 2015528711 A JP2015528711 A JP 2015528711A JP 6278531 B2 JP6278531 B2 JP 6278531B2
Authority
JP
Japan
Prior art keywords
request
http
response
udp
client
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.)
Active
Application number
JP2015528711A
Other languages
English (en)
Other versions
JP2016500205A (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
Application filed by アカマイ テクノロジーズ インコーポレイテッド, アカマイ テクノロジーズ インコーポレイテッド filed Critical アカマイ テクノロジーズ インコーポレイテッド
Publication of JP2016500205A publication Critical patent/JP2016500205A/ja
Application granted granted Critical
Publication of JP6278531B2 publication Critical patent/JP6278531B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • 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/02Protocol performance
    • 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/08Protocols for interworking; Protocol conversion
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/165Combined use of TCP and UDP protocols; selection criteria therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

本願は一般に、ネットワークを介したデータ通信に関する。
分散型コンピュータ・システムは従来技術で良く知られている。こうした分散型コンピュータ・システムの1つが「コンテンツ配信ネットワーク」又は「CDN」であり、典型的にはサービス・プロバイダによって運営及び管理される。サービス・プロバイダは、典型的には、サービス・プロバイダの共有インフラストラクチャを使用する第三者(カスタマ)のためにコンテンツ配信サービスを提供する。この種の分散型システムは、時には「オーバーレイ・ネットワーク」と呼ばれ、典型的には、コンテンツ配信、適用促進、又は外部委託されたオリジン・サイト・インフラストラクチャの他のサポート等の、様々なサービスを容易にするように設計された、ソフトウェア、システム、プロトコル、及び技法と共に、ネットワークによって結び付けられた自律型コンピュータの集合を言い表す。CDNサービス・プロバイダは、典型的には、カスタマのポータルに提供された後、ネットワークに展開される、デジタル・プロパティ(ウェブサイト等)を介してサービスを配信する。
上述したタイプのオーバーレイ・ネットワークは、ネットワーク内のサーバから、ビデオ・ストリームを受信してこれをスクリーン上で再生するクライアントへと、HTTPベースのストリーミングを提供する。クライアントは、デスクトップ・コンピュータ、モバイル・デバイス(スマートフォン、タブレット)、セットトップ・ボックス、スマート・テレビジョン又は電化製品、或いは任意の他のネットワーク接続デバイス上で動作し得るものである。典型的なHTTPベースのストリーミングを使用するケースでは、クライアントはDNSを介してIPアドレスへと名前(例えばCDNホスト名)を解決し、そのアドレスに関連付けられたサーバへのTCP接続を実行する。確立されると、クライアントは、望ましいコンテンツ、例えばメディア・フラグメントについてのHTTP GET要求を送信する。サーバは、標準HTTP応答本体内のコンテンツ・データで以て応答する。更なる要求及び応答のために、接続はオープンのまま維持される。
ハーパーテキスト転送プロトコル(HTTP)を使用する標準手法は、(伝送制御プロトコル/インターネット・プロトコル(TCP/IP)接続上で)HTTPプロトコルで要求を行い、HTTP応答内に要求されたデータを含む応答を(同じTCP/IP接続を介して)受信する。代替のストリーミング手法は、要求及び応答(制御メッセージを含む)の両方について、ユーザ・データグラム・プロトコル(UDP)又はTCP上でのプロトコルを使用する。更に他の手法は、HTTPセッションを介して何らかのプロトコルをトンネリングする。
現在、多くのエンド・ユーザが、遅い起動時間、再バッファリング、及び低いビットレート等の、HTTPベース・ストリーミングに付随する問題を体験する。これらユーザの接続はしばしば高品質ビデオにとって十分に大きい帯域幅を示すが、サーバとクライアントとの間の往復時間及びパケット損失特性は、主に標準TCPベースのインプリメンテーションがこうしたネットワーク上で非効率的に動作することから、ストリーミング性能にマイナスの影響を与える。
米国特許出願公開第20110173345号 米国特許第7,111,057号 米国特許第7,472,178号 米国特許第7,376,716号 米国特許出願公開第20040093419号
したがって、ビデオ・ストリーミング品質を向上させるために新規の技法を提供することが求められている。本明細書における開示は、関係する従来技術に付随するこれら及び他の問題に対処するものである。
ハイブリッドHTTP/UDP配信プロトコルは、オーバーレイ等のネットワークを介したビデオ等のコンテンツの配信を大幅に向上させる。この手法は、HTTPベース・ストリーミングに関する問題(例えば、遅い起動時間、再バッファリング、及び低いビットレート)に対処するのに特に有用である。
一般に当該プロトコルは、2つのフェーズ、すなわちHTTPフェーズとUDPフェーズとを有する。HTTPフェーズにおいて、クライアントはHTTP GET要求をサーバに送信する。当該GET要求は、クライアントが当該プロトコルでのUDPベースの転送を使用したい旨をサーバに伝える、トランスポート・ヘッダを含む。サーバは、このモードを拒否して通常のHTTPモードを継続してもよいし、あるいは、UDPフェーズに入るためにはどのように接続を行えばよいかをクライアントに伝えるヘッダ情報を伴う空の応答を送信することによって、応答してもよい。UDPフェーズにおいて、クライアントは接続を開始し、UDPによって最初に要求したコンテンツを受信する。
ハイブリッド手法は、UDPプロトコルでコンテンツを伝送するための別のチャネルを追加するという点が従来のHTTPベース・ストリーミングとは異なる。クライアントがサーバに接続すると、クライアントは所望のコンテンツ、例えばメディア・フラグメントに関するHTTP GET要求を送信し、応答本体の転送のためにUDP接続を使用することを望む旨を示すHTTPヘッダを含める。クライアントは、UDP配信に関する任意のプリファレンス(例えば、順方向誤り訂正(FEC)、又は他のパラメータ)を含めることもできる。サーバは、プロトコルを使用するように設定されている場合、空の本体(コンテンツ長:0)回答で以て応答する。応答は、好ましくは、途中のプロキシが応答をキャッシュに入れるのを防ぐための様々なヘッダも含む。応答ヘッダにおいて、クライアントは、UDPプロトコルによってどのように同じサーバに接続するかに関する情報を(又は、例えばマルチソース・コンテンツ獲得のための、他の追加の代替サーバ参照をも)見つける。この情報は、典型的にはIPアドレス、UDPポート番号、オプションで(同じサーバのUDPポート上に多くのこうした接続が存在する場合があるため、通信がいずれのフローに属するかを識別するための)何らかの他の特別ポート番号、バージョン、及びトークンTを含む。この情報がサーバから受信されると、HTTP応答ヘッダ内に提供された情報(IPアドレス、UDPポート番号、他のポート番号等)に基づいてSYN UDPパケットをサーバに送信することによって、クライアントはUDP接続を開始する。この要求は、好ましくはHTTP応答からのトークンTも含む。したがってサーバは、トークンを使用して、UDPパケットを送信しているクライアントが以前のHTTP応答を見たこと、及び、かかるSYNパケットが処理されるべきであることを、確認することができる。SYNは、好ましくはクライアントの初期シーケンス番号(ISN)をも含む。サーバは、クライアントのSYNパケットからの肯定応答ISN値を含む、SYN_ACKパケットで以て応答する。SYN_ACKは、サーバのISN値をも含む。その後クライアントは、サーバのSYN_ACKパケットからの肯定応答ISNを含み、再びトークンTをも含むSYN_ACK_ACKパケットによって、SYN_ACKの受信を確認する。ISN及びトークンTの確認は、両者が通信に参加していること、及び以前のすべてのパケットを見ていることを保証するための手段として働く。トークン(HTTP応答では、SYN及びSYN_ACK_ACKパケット)は、この特定のクライアントとサーバとの間で、他のHTTP要求についての接続の再使用も容易にする。このようにハンドシェイクが完了すると、UDPベース接続が確立されたものとみなされ、その後サーバは、(場合によってはFEC符号化された)コンテンツを伴うデータ・パケットの送信を開始する。コンテンツは、UDPが使用されないならば、オリジナルのHTTP応答本体内にあったであろうものと同じである。
上記では、主題のより適切な特徴のうちのいくつかを概説した。これらの特徴は、単なる例示であるものと解釈すべきである。開示された主題を異なる態様で適用すること、又は、この主題を後述するように修正することによって、他の多くの有益な結果を得ることができる。
次に、主題及びその利点をより完全に理解するために、添付の図面に関連して以下で説明する。
コンテンツ配信ネットワーク(CDN)として構成される、既知の分散型コンピュータ・システムを示すブロック図である。 代表的なCDNエッジ・マシーン構成を示す図である。 本開示の基本的なハイブリッドHTTP/UDPデータ配信手法を示す図である。 追加の細部において、本開示のハイブリッドHTTP/UDP配信技法に関する動作シナリオを示す図である。
図1は、本明細書の技法によって(以下で説明するように)拡張される、既知の分散型コンピュータ・システムを示す。
図1に示されるような既知のシステムでは、分散型コンピュータ・システム100がCDNとして構成され、インターネットの周囲に分散されたマシーン102a〜nのセットを有するものと想定される。典型的には、ほとんどのマシーンはインターネットのエッジ近くに、すなわちエンド・ユーザ・アクセス・ネットワークに、又はその近傍に配置されたサーバである。ネットワーク・オペレーション・コマンド・センタ(NOCC)104が、システム内の様々なマシーンの動作を管理する。ウェブ・サイト106等の第三者サイトは、分散型コンピュータ・システム100、及び特に「エッジ」サーバに対する、コンテンツ(例えばHTML、埋め込みページ・オブジェクト、ストリーミング・メディア、ソフトウェア・ダウンロード等)の配信を肩代わりさせる。典型的には、コンテンツ・プロバイダは、サービス・プロバイダの権威あるドメイン名サービスによって管理されているドメインに対して、所与のコンテンツ・プロバイダのドメイン又はサブ・ドメインを(例えばDNS CNAMEによって)エイリアス化することによって、自身のコンテンツ配信を肩代わりさせる。コンテンツを所望するエンド・ユーザは、そのコンテンツをより確実かつ効率的に取得するために、分散型コンピュータ・システムに向けて送られる。詳細には示されていないが、分散型コンピュータ・システムは、利用データ及び他のデータをエッジ・サーバから収集し、そのデータを領域又は領域のセット全体にわたって集約し、そのデータを、モニタリング、ログ記録、警告、課金、管理、又は他の運営及び管理機能を容易にするために、他のバックエンド・システム110、112、114、及び116に渡す、分散型データ収集システム108等の、他のインフラストラクチャも含み得る。分散型ネットワーク・エージェント118は、ネットワーク並びにサーバのロードをモニタリングし、ネットワーク、トラフィック、及びロードのデータを、CDNによって管理されているコンテンツ・ドメインに関して権限のあるDNS照会処理機構115に提供する。分散型データ移送機構120を使用して、エッジ・サーバに制御情報(例えばコンテンツを管理し、ロード・バランシングを容易にするためのメタデータ等)を配信することができる。
図2に示すように、所与のマシーン200は、1つ又は複数のアプリケーション206a〜206nをサポートするオペレーティング・システム・カーネル(Linux又は変形等)204を動作させるコモディティ・ハードウェア(例えばIntel Pentiumプロセッサ)202を含む。コンテンツ配信サービスを容易にするため、例えば所与のマシーンは典型的に、HTTP(ウェブ)プロキシ207、ネーム・サーバ208、ローカル・モニタリング・プロセス210、及び分散型データ収集プロセス212等の一連のアプリケーションを実行する。より一般的には、プロキシ207は、プログラム命令を含み、その命令がメモリ内に保持され、必要に応じてプロセッサ(又は複数のプロセッサ)によって実行される、ソフトウェアである。
ストリーミング・メディアでは、CDNマシーンは通常、サポートするメディア・フォーマットの要件に応じて、Windows Media Server(WMS)又はフラッシュ・サーバ等の、1つ又は複数のメディア・サーバを含む。専用メディア・サーバを使用する代わりに、トランスポート・プロトコルとしてHTTPを使用する。HTTPベースのライブ・ストリーム及びVODベースの配信のためのアーキテクチャが、米国特許出願公開第20110173345号に記載されている。その手法はCDN内でインプリメントされ、レコーディング・ティアを使用して配信されることになるコンテンツ・ストリームをレコーディングし、プレーヤ・ティアを使用してストリームを再生するという高水準機能を含む。ストリームをレコーディングするステップは、ストリームがソース・フォーマットにてCDNエントリ・ポイントで受信されたときに開始する、サブステップのセットを含む。次いでストリームは、CDN内でストリームを配信するための内部フォーマットであり、ストリーム・マニフェスト、1つ又は複数のフラグメント・インデックス(FI)のセット、及びIFフラグメントのセットを含む、中間フォーマット(IF)に変換される。プレーヤ・プロセスは、要求元クライアントがghostベースのプロキシ等のCDN HTTPプロキシに関連付けられたときに開始される。ストリーム又はその一部に対する要求がHTTPプロキシで受信されたことに応答して、HTTPプロキシは(アーカイブ又はデータ・ストアのいずれかから)ストリーム・マニフェスト及び少なくとも1つのフラグメント・インデックスを取り出す。フラグメント・インデックスを使用して、IFフラグメントがHTTPプロキシに取り出され、ターゲット・フォーマットに変換され、次いでクライアント要求に応答してサービスされる。ソース・フォーマットはターゲット・フォーマットと同じであるか又は異なる。好ましくは、すべてのフラグメントは、HTTPを用いてHTTPプロキシによってアクセス、キャッシュ、及びサービスされる。別の実施形態において、ストリームをオンデマンドで配信する方法(VOD)は、(レコーディング・ティアの代わりに)トランスレーション・ティアを使用して、IFコンポーネントの作成及び/又は取扱いを管理する。
CDNエッジ・サーバは、好ましくは構成システムを利用するエッジ・サーバに配分されている構成ファイルを利用して、好ましくはドメイン特化型、カスタマ特化型の1つ又は複数の広範なコンテンツ配信特性を提供するように構成されている。所与の構成ファイルは、XMLをベースとし、1つ又は複数の高度のコンテンツ処理特性を容易にする一連のコンテンツ処理規則及び命令を含むことが好ましい。構成ファイルは、データ伝送機構を介してCDNエッジ・サーバに配信することができる。米国特許第7,111,057号は、エッジ・サーバ・コンテンツ制御情報を配信及び管理するための有用なインフラストラクチャを説明しており、これ等のエッジ・サーバ制御情報は、CDNサービス・プロバイダ自体、又は(エクストラネット等を介して)オリジン・サーバを運用するコンテンツ・プロバイダ・カスタマによってプロビジョニングすることができる。
CDNインフラストラクチャは複数の第三者によって共有されるため、本明細書ではマルチテナント共有インフラストラクチャと呼ぶことがある。CDNプロセスはインターネット上の公開でルーティング可能なノードに、モバイル・ネットワーク内に配置されたノード内又はその近傍に、企業ベースのプライベート・ネットワーク内又はその近傍に、或いはそれらの任意の組み合わせで、配置可能である。
メタデータ構成可能なオーバーレイ・ネットワーク・ウェブ・プロキシ(図2のプロキシ207等)は、本明細書ではグローバル・ホスト又はGHostプロセスと呼ぶことがある。
CDNは、米国特許第7,472,178号に記載されたもののような記憶サブシステムを含むことができる。この開示内容は引用により本願に含まれるものとする。
CDNは、カスタマ・コンテンツの中間キャッシングを提供するためにサーバ・キャッシュ階層を運用することができる。このようなキャッシュ階層サブシステムの一例が米国特許第7,376,716号に記載されている。この開示内容は引用により本願に含まれるものとする。
CDNは、米国特許出願公開第20040093419号に記載されたように、クライアント・ブラウザ、エッジ・サーバ、及びカスタマ・オリジン・サーバ間でセキュアなコンテンツ配信を提供することができる。これに記載されたセキュアなコンテンツ配信は、一方ではクライアントとエッジ・サーバ・プロセスとの間で、他方ではエッジ・サーバ・プロセスとオリジン・サーバ・プロセスとの間でSSLベースのリンクを実施する。これによって、SSLによって保護されたウェブ・ページ及び/又はそのコンポーネントを、エッジ・サーバを介して配信することができる。
オーバーレイとしてCDNリソースを用いることにより、(プライベートに管理可能な)エンタープライズ・データ・センタと第三者へのサービスとしてのソフトウェア(SaaS)プロバイダとの間の広域ネットワーク(WAN:wide area network)高速化サービスを容易にしてもよい。
CDNは、HDストリーミング等の様々なコンテンツ配信機能を容易にするために、クライアント側ソフトウェアを提供することもできる。一手法において、クライアントは2つのコンポーネントを備える。第1は、非永続型のブラウザ内メディア・プレーヤであり、第三者(例えばAdobe Flash又はMicrosoft Silverlight)コンポーネントに基づいてHDコンテンツの適応型又は動的なビットレート配信を容易にすることができる。第2は永続型デーモンの形のインターフェースであり、「クライアント側」コンテンツ配信を実行することができる。クライアント側配信とは、コンテンツを、CDNエッジ・サーバ及びインターフェースを実行中であり以前に同じコンテンツをダウンロードした他のエンド・ユーザの両方から、ダウンロードすることを意味する。
上述したタイプのオーバーレイ・ネットワークは、ネットワーク内のサーバから、ビデオ・ストリームを受信してこれをスクリーン上で再生するクライアントへと、HTTPベースのストリーミングを提供する。クライアントは、デスクトップ・コンピュータ、モバイル・デバイス(スマートフォン、タブレット)、セットトップ・ボックス、スマート・テレビジョン又は電化製品、或いは任意の他のネットワーク接続デバイス上で動作し得るものである。典型的なHTTPベースのストリーミングを使用するケースでは、クライアントはDNSを介してIPアドレスへと名前(例えばCDNホスト名)を解決し、そのアドレスに関連付けられたサーバへのTCP接続を実行する。確立されると、クライアントは、望ましいコンテンツ、例えばメディア・フラグメントについてのHTTP GET要求を送信する。サーバは、標準HTTP応答本体内のコンテンツ・データで以て応答する。更なる要求及び応答のために、接続はオープンのまま維持される。
上記をバックグラウンドとして、次に本開示の主題について説明する。
ストリーミング及びダウンロードのためのハイブリットHTTP+UDP手法
本開示は、インターネットを介してメディア及び他のコンテンツを配信し、標準HTTPベースの配信を置き換えるか又は補足するための新規な手法である。既存の標準ストリーミング及びダウンロード手法との主な相違点は、HTTPベース要求及びUDPベース応答の組み合わせである。
図3は、本開示の基本的手法を示す図である。この図で使用される場合、サーバ300は通信のサーバ側を示し、クライアント302はクライアント側を示す。サーバ及びクライアントのコンポーネントは、本開示のHTTP要求UDP応答機能を実行するように構成されている。この例示のシナリオでは、クライアント302は、例えばビデオのフラグメント、ソフトウェア・ダウンロード、又は他のコンテンツ等の注目するコンテンツの所与のバイト範囲について、HTTP GET要求(そのうちの1つが304に示されている)を行う。各HTTP要求は、クライアントがUDP応答を受信できることをサーバ・コードに通知する、HTTPヘッダ(又は等価の帯域外データ構造)を含む。図に示されるように、サーバ300はステップ306で、HTTPヘッダ及び本体を含むHTTP応答で、HTTP GET要求に応答する。しかしながらこの応答は、いくつかの点で従来のHTTP応答とは異なる。特に、HTTP応答ヘッダは、サーバがUDP接続と、オプションで秘密トークンT1等のデータ・ストリングとをリスニングする、UDP IP:ポートの識別を含む。しかしながら、HTTP応答本体は空である(すなわち、HTTP GET要求によって要求されたコンテンツを欠いている(含まない))。最初の2つの通信はTCPで行われる。本開示によれば、HTTP本体に含められたであろうコンテンツは、その後、UDPで、図示された後続のUDPベース接続によって配信される。特にステップ308で、HTTP応答を受信したクライアントは、HTTP応答内で識別されるサーバのUDP IP:ポートへのSYNを発行する。SYNは、(セキュリティの目的で)秘密トークンT1を含むことができる。ステップ310で、サーバは、秘密トークンT2を含むSYNACKをクライアントに戻す。ステップ312でクライアントは、秘密トークンT2を含むACKで以て応答する。トークンは、オリジナルのHTTP応答を受信しているクライアントのみが、要求されたオリジナル・コンテンツを受信できることを保証する。その後ステップ314でサーバは要求されたデータ・パケットで以て応答するが、それはUDPで配信される。
好ましくは、HTTP接続は、(典型的には、同じか又は異なるコンテンツの追加バイト範囲についての)1つ又は複数の追加のHTTP要求を受信するためにアライブ状態に保たれ、要求されたコンテンツがこの態様でUDPで配信される。
付随的な改良点は、順方向誤り訂正(FEC)又は(UDP配信用に)他のパケット符号化を使用することである。
以下で、ハイブリッドHTTP/UDPプロトコルの好ましい実施形態の詳細をさらに説明する。図4は、このハイブリッドHTTP/UDP接続の初期化及び使用のシナリオを示す。前述のように、ハイブリッド手法は、UDPプロトコルでコンテンツを伝送するための別のチャネルを追加する点が異なる。本明細書における手法では、クライアント400は、DNS(例えばオーバーレイ・ネットワーク権威DNS)を介してIPアドレスへと名前を解決し、そのネットワーク内のエッジ・サーバ402へのTCP接続を実行する。確立されると、クライアントはステップ404で、所望のコンテンツ、例えばメディア・フラグメントに関するHTTP GET要求を送信し、応答本体の転送のためにUDP接続を使用することを望む旨を示すHTTPヘッダ(等)を含める。クライアントは、UDP配信に関する任意のプリファレンス(例えば、順方向誤り訂正(FEC)、又は他のパラメータ)を含めることもできるが、典型的にはそれらに従うか否かの決定はサーバに委ねられている。サーバは、オブジェクトのメタデータ処理のためにUDPプロトコルの使用がイネーブルされたと想定し、ステップ406で、空の本体(コンテンツ長:0)回答で以て応答する。応答は、好ましくは、途中のプロキシが応答をキャッシュに入れるのを防ぐための様々なヘッダも含む。応答ヘッダにおいて、クライアントは、UDPプロトコルによってどのように同じサーバに接続するかに関する情報を(又は、例えばマルチソース・コンテンツ獲得のための、他の追加の代替サーバ参照をも)見つける。この情報は、典型的にはIPアドレスを含む(例えば、これまでの接続が明示的プロキシ接続を介するものであった可能性があり、クライアントは通信しているサーバのIPアドレスへの可視性を有していない可能性があるため)。戻された情報は、前述のように、UDPポート番号、オプションで(同じサーバのUDPポート上に多くのこうした接続が存在する場合があるため、通信がいずれのフローに属するかを識別するための)何らかの他の特別ポート番号、バージョン、及びトークンTをも含む。
この情報がサーバ402から受信されると、HTTP応答ヘッダ内に提供された情報(IPアドレス、UDPポート番号、他のポート番号等)に基づいてSYN UDPパケットをサーバに送信することによって、クライアント400はステップ408でUDP接続を開始する。この要求は、好ましくはHTTP応答からのトークンTも含む。したがってサーバは、トークンを使用して、UDPパケットを送信しているクライアントが以前のHTTP応答を見たこと、及び、かかるSYNパケットが処理されるべきであること(そうでなければ、サーバによって受信されたすべての予期せぬパケットは、送信者に対するいかなる応答もなく静かにドロップされる)を、確認することができる。図に示されるように、SYNは、好ましくはクライアントの初期シーケンス番号(ISN1)をも含む。ステップ410でサーバ402は、クライアントのSYNパケットからの肯定応答ISN1値を含む、SYN_ACKパケットで以て応答する。SYN_ACKは、サーバのISN値であるISN2をも含む。その後クライアントは、ステップ412で、サーバのSYN_ACKパケットからの肯定応答ISN(すなわちISN2)を含み、再びトークンTをも含むSYN_ACK_ACKパケットによって、SYN_ACKの受信を確認する。ISN及びトークンTの確認は、両者が通信に参加していること、及び以前のすべてのパケットを見ていることを保証するための手段として働く。トークン(HTTP応答では、SYN及びSYN_ACK_ACKパケット)は、この特定のクライアントとサーバとの間で、他のHTTP要求のために接続の再使用を容易にする。このようにハンドシェイクが完了すると、UDPベース接続が確立されたものとみなされ、その後ステップ414でサーバは、(場合によってはFEC符号化された)コンテンツを伴うデータ・パケットの送信を開始する。コンテンツは、UDPが使用されないならば、オリジナルのHTTP応答本体内にあったであろうものと同じである。好ましくは、サーバはデータ・パケットを送り続け、クライアントは肯定応答(ACK)で以て応答する。ACKを使用して輻輳制御を容易にすることが可能である。ハンドシェイク及びデータ配信の間に、クライアントは、(例えばステップ416で)RSTパケット等の何らかの制御メッセージをTCPに同様に送信することも可能である。クライアントは、FECが使用される場合には、例えば現行のFECブロックが適切に復号されたこと、そして次のブロックがサーバによって送信されるべきであることを示す、サーバによって送信される符号化データのフローを制御するための特別なパケットも送信する。
更に図4に示されるように、初期接続の確立及び交換の後、クライアント400は次のコンテンツを要求することができる。そのため、ステップ418でクライアント400は、次のフラグメントに対するGET要求を(例えば同じドメイン名で)発行する。要求は、HTTP要求のための既存のTCP接続を使用して送信することが可能であり、既存のUDP接続は応答用に使用される。応答は、ステップ420でサーバ402から配信される。これで例示のシナリオの説明は完了する。
典型的には、UDPでのプロトコル接続は、(TCPでのHTTPと同様に)一時に1つのセッションのみをサポートする。この手法は接続ごとの明示的多重化を提供しない一方で、多くの接続は同じUDPポートで動作可能であるため、オペレーティング・システムの見地からすると、多重接続のシナリオは多重化の様相を呈する。したがって一実施形態では、複数のUDPポート(スタックごとに1つ)を単一のサーバ上で使用することにより、使用可能CPU処理リソースをより良く活用することができる。
好ましくは、要求を満たした後、TCP接続(HTTPの場合)及びUDP接続の両方がアライブ状態に保たれる。その後、別のURLオブジェクトをダウンロードしなければならない場合(例えばストリーム中の次のメディア・フラグメント)、両方の接続が(タイムアウトを介して)依然としてアライブとみなされる場合には再使用される(又は再使用可能である)。好ましくはTCP及びUDP接続は、各単一のHTTP GET要求に対するものを除いては結合又はバインドされておらず、それぞれが他方に影響を与えることなく閉じることが可能であり、また、それぞれが更なる要求に関して独立に再使用可能である。既存のUDP接続が再使用されるべきである旨をHTTPヘッダを介して示す新規のHTTP GET要求がTCP接続を介して送信されると、サーバは、TCPでHTTP(空)応答を送信すること、及び、既存のUDP接続で要求されたオブジェクトの本体を送信することの両方によって、即時に応答する。
新規フラグメントに対する新規UDPパケットを処理する前に、(FEC符号化データが使用される場合)当該プロトコルで入ってくるFEC符号化データを復号するために必要なすべての詳細を完全なHTTP応答が含むため、クライアントは典型的には、第1にこの完全なHTTP応答を取得しなければならない。現行のデータ転送が完了する前に、新規のHTTP GET要求を送信すること(及び、データ転送のために既存の接続の再使用を要求すること)も可能である。これによって既存の転送を中止し、新規要求が即時に満たされることになる。このプロトコルに準拠するあらゆるデータ・パケットが、「属している」HTTP応答のIDを含むため、各サイドからの特別な確認は必要なく、したがって新規HTTP要求に属するデータ・パケットはクライアントによって容易に識別される。
好ましくは、HTTP/1.1の要件に適合するトランスポートHTTPヘッダ値を介して、プロトコル特有の情報がサーバとクライアントとの間で交換される。(プロトコルのインプリメントが実行可能なクライアントからの)クライアントHTTP要求に、特別なユーザ・エージェント(UA)ストリングを含めることもできる。前述のように、プロトコルが使用されることになる場合、サーバからのHTTP応答は空の本体を含み、接続をどのように行う(又は再使用する)かについての詳細を備えた追加のトランスポート・ヘッダを有する。より具体的に言えば、サーバはトランスポート・ヘッダを解析し、以下の1つを送信することによって、要求に応答する。すなわち、ハイブリッド・プロトコルが使用される(そして、ヘッダが接続エンドポイント及びトークン詳細を含む)場合の、HTTPステータス・コード202を伴うHTTP応答、プロトコルが使用される(そして、上記ヘッダがエンドポイント及びトークン・キーを含まない、つまり、要求ヘッダでクライアントが要求する通り、既存のプロトコル接続が再使用されることになる)場合の、ステータス・コード202を伴うHTTP応答、又は、当該プロトコルが使用されない場合、すなわち、サーバはHTTP規格に従って挙動することになり、当該プロトコルを識別するトランスポート・ヘッダが存在しないかのように応答がリソース・データを本体内に含む場合に使用することになる、任意のステータス・コードを伴うHTTP応答、のうちの何れかである202の応答コードのどちらの場合も、応答はプロキシ・サーバによるキャッシングが不可能であり、3番目は(通常のサーバ・メタデータ設定によって制御される通りに)キャッシュ可能である。(HTTP202応答において)サーバによって課せられるアンチキャッシング・ヘッダは、例えば、Pragma:no−cache、Cace−Control:private、must−revalidate、Date、Expires、Cache−Control:no−store、no−cache、max−age=0、及びVary:“”を含む。
トークンはオプションである。32桁の16進数として表される128ビットの符号なし整数とすることができる。エンドポイントは、その存在が、コンテンツを受信するために(当該プロトコルでの)新規接続を確立すべきである旨をクライアントに示すキーである。エンドポイントのフォーマットは、[IP_address]−[UDP_port_number]−[destination_port_number]とすることができる。
変形実施形態において、UDP配信はマルチキャストUDPとすることができる。この変形では、クライアントはサーバに対してHTTP要求を実行し、HTTPサーバは、以前に説明したように空の本体を含む応答で以て応答する。HTTP応答はハイブリッド・プロトコル用のトランスポート・ヘッダをも含み、この場合ヘッダは、マルチキャスト・グループ・アドレスを含む。その後、クライアントはマルチキャスト・グループに加入し、要求されたコンテンツを受信する。マルチキャスト・グループに加入すること及びマルチキャストUDPパケットを受信することは、(オプションとして)ネイティブIPマルチキャストがサポートされていないネットワーク内でのクライアントのための自動マルチキャスト・トンネリング(AMT)によって、容易に可能である。コンテンツが受信されると、クライアントはマルチキャスト・グループを離れることができる。多くのクライアントによる同じファイル(ストリームのセグメントである可能性がある)に関する任意数の要求を、同じマルチキャスト・グループを介して満たすことが可能である。これを可能にするために、サーバはファイルのデータをマルチキャスト・グループに送信する。好ましくは、データはFEC符号化されて送信される。したがって、例えばファイルのサイズが1MBの場合、サーバは、何らかの事前に構成された時間に、事前に構成された速度で、(クライアントによるファイルの復号に有用な)ファイルのデータに関する情報を含むFECパケットを送り続ける。例えばサーバは、何らかの定義済み期間に、1MBファイルを8Mbps(すなわち毎秒1MB)で送信することができる。この期間に、同じファイルを要求するすべてのクライアントが同じマルチキャスト・グループを使用する。この手法によりリソースが節約され、マルチキャストで単一のコピーを送信することで、多くの受信者への人気コンテンツの配信(ライブ・ストリーム又はソフトウェア更新)をサポートすることができる。ファイルがマルチキャスト・グループに送信されている時間は、クライアントによるファイルに対する需要に基づいて動的に拡張可能である。すなわちファイルに対する要求が存在する限り、サーバはマルチキャスト・チャネルへの送信を継続する。クライアントはいつでもマルチキャスト・グループに加入可能であり、FEC符号化によってオリジナル・ファイルを復号するための十分なデータを受信するのに必要な限りで加入すればよい。最適化として、サーバは複数のマルチキャスト・グループで同じファイルのコンテンツを並行して送信してよく、クライアントがそれらのうちの複数(すべて、オリジナルのHTTP応答のヘッダで戻されることになる)に加入することにより、(FECは複数ソースからのデータを容易に組み合わせることが可能であるため)それらのダウンロード容量をより多く利用すること、及びファイルをより速く受信することができる。
理解されるように、この手法は、(ハイブリッドHTTP−UDPプロトコルを使用するように構成された)クライアントが(プロトコルを使用するように構成された)サーバに対してHTTP要求を行うことによって動作し、次いでサーバは、UDPでメディア又はファイル・コンテンツをHTTP要求の応答として戻す。この手法によってプロバイダは、アクセス制御、認証、QoS報告、GEOロケーション、及びHTTPベースのウェブ・サーバに組み込まれた他の特性を含む、HTTPが利用可能な標準CDNインフラストラクチャを使用又は活用可能にする一方で、UDP上でのメディア又はファイル・データ伝送の完全な制御を提供することができる。後者は、制限なしに、たとえ(パケット損失及び待ち時間等の)ネットワーキング特性が最適でない場合であっても、より良い体験及び制御を提供するための、カスタム輻輳制御手法及び/又は(前述のような)順方向誤り訂正等のパケットの符号化を含む。したがってこうしたケースでは、この手法は、従来のダウンロード及びストリーミング・ソリューションからのHTTPの既存の特徴を使用する利点と、UDPベースのデータ伝送の利点とを組み合わせる。ハイブリッド手法は、何が伝送されることになるかを制御するために既存のHTTPベース・ソリューションを使用すると同時に、メディア又は他のコンテンツのためにUDPベースのデータ伝送を使用することから恩恵を受けるため、非常に有利である。UDP通信が不可能な場合、あらゆるクライアントがデータを受信できることを保証するために、要求及び応答の両方について標準HTTPが使用される。UDPに対するサポートはHTTPによって送られる。
アプリケーション及びサーバがこの手法を直接使用することができるが、あるいはプロキシを使用してこの機能に対するサポートを追加することができる。例えば、ストリーミング・アプリケーション又は(ダウンロード用の)ブラウザは、HTTPのみによってプロキシへ、又はプロキシを通じて要求を行うことが可能であり、次いでプロキシは、サーバと通信する際にこの手法を使用する。好ましくは、クライアント対プロキシ通信はHTTPのみであるが、プロキシは、ハイブリッドであるHTTP及びUDPベース・プロトコルによってサーバと通信する。同様に、ウェブ・サーバはプロキシを(トランスペアレントに又は明示的に)使用して、この手法に対するサポートを追加することができる。
ストリーミングでは、この手法が任意の既存のHTTPベース・ストリーミング技術を用いて良好に動作するという点で、追加の恩恵が存在する。
より一般的には、本明細書で説明した手法は、サーバからクライアントへのHTTPストリーミングが必要な場合は必ずインプリメント可能である。クライアントとは、ビデオ・ストリームを受信してこれを画面で再生する側を指す。クライアントは、デスクトップ・コンピュータ、モバイル・デバイス(スマートフォン、タブレット等)、セットトップ・ボックス、スマート・テレビジョン、又は任意の他の接続されたデバイス上で、動作可能である。サーバは、ストリーム・データをクライアントに向けて送信する側である。本明細書で言及される場合、HTTPベース・ストリーミングは、ストリームを構築して再生するためにオブジェクトを要求及びダウンロードする際にHTTPプロトコルのみを使用する、任意のビデオ・ストリーミングを指す。非限定的な例には、Apple HLS、Adobe HDS、Microsoft SmoothStreaming、及びMPEG−DASHが含まれる。本明細書の手法を使用して、例えばH.264ビデオ・エレメンタリ・ストリームやAACオーディオ・エレメンタリ・ストリームで構成されるプログラム・ストリームを含む、MPEG−2トランスポート・ストリーム等の、ライブ及びオンデマンド・ストリーミングをサポートすることができる。無論この例は、限定的であるものとは意図されていない。
本明細書に記載されたHTTP/UDPハイブリッド配信手法は、ビデオ・ストリーミングの品質を向上させる。この手法は、既存のHTTPベース・ストリーミング・ソリューションにトランスペアレントに適合可能である。ハイブリッド手法は、メディア・データ転送についてパケット損失及び待ち時間の悪影響を大幅に削減するため、ストリーミング品質を大幅に向上させる。
本明細書に記載された技術のクライアント部分は、1つ又は複数のプラットフォーム(例えばiOS、Android等)のためのソフトウェア開発キット(SDK)としてインプリメント可能であり、SDKをプラットフォーム上のアプリケーションで使用することにより、互換性のあるモバイル・アプリがハイブリッドHTTP/UDP手法を使用してコンテンツをダウンロード/ストリーミングできるようにすることが可能である。したがって、アプリケーションは、例えばSDKを使用してそのAPIを介してURLオブジェクトをダウンロードするか、又は、SDKによって作成されたローカルHTTPサーバを使用してストリーミング/ダウンロードするかの、いずれかが可能である。
ハイブリッド・プロトコルは、特にFECベースUDP配信や高度な輻輳制御技術等の他の技術と結合された場合に、著しい利点を提供する。FECは、冗長性を利用することによってパケット損失を克服する周知の技法である。FECでは、オリジナルのパケット・フロー(各パケットがデータ片を表す)を送信する代わりに、送信者がデータを新規のパケット・セット(各パケットは、オリジナル・データの様々な部分に関する情報を追加のパリティ・データと共に保持する)に符号化する。新規セットのサイズは、一般にオリジナル・データよりも大きい。符号化されたデータの受信者は復号を実行し、十分な符号化パケットを受信すると、オリジナル・データを再構成する。データを再構成するためには、通常、オリジナル・データ・サイズと同じか又はわずかに多い量の符号化データのみを受信すればよい。このため、転送が多くの損失を伴うものであっても、データを再伝送する必要なしに、オリジナル・データを復号することが可能である。様々な損失レート及びアプリケーションに適した、様々なFECコードが存在する。IETF Reliable Multicast Working Groupでは、コンテンツの信頼性のある配信に使用するための3つのFECスキーム、すなわち、RaptorQ(RFC6330に記載)、低密度パリティ・チェック(LDPC)(RFC5170に記載)、及び、リードソロモン(RFC5510に記載)を指定している。他の既知のFEC技法としては、RaptorQの旧バージョンであるRaptor R10(RFC5053に記載)がある。Akami(登録商標) FastTCP(商標)等の輻輳制御スキームを適合させて、サーバからクライアントに送信されるデータ・パケットについてのカスタム輻輳制御を容易にするのに用いてよい。一般に、この既知のスキームはキューイング遅延を使用してネットワーク輻輳を測定する。送信者側では、輻輳ウィンドウ(CWND)を使用して、送信するバイト数を制御する。最初にこのスキームに従い、CWNDは伝送遅延に合わせて迅速に増大し、次いで(パスに沿ってパケットがキューイングされる際の)キューイング遅延の変動に合わせてやや消極的に調整される。送信者は、ネットワーク変化に適合するようにそのCWNDを調整する。
本明細書に記載された技法は、標準TCP又は複数の並行TCP接続に比べて、ランダム環境(非輻輳)損失及び高待ち時間の下でのトータル・スループットを向上させる。この技法は、より正確な帯域幅推定及び高度な輻輳検出を介して、スループットの安定性を向上させる。更にこの技法は、起動時間の削減、量及び持続時間の再バッファリング・イベントの削減、並びに、ビットレート切り替え頻度の削減も提供する。上記はすべて、閲覧時間をより長くし、ユーザ体験をより良くすることにつながる。記載された技法は、ストリーミングに標準HTTP手法を使用する、円滑なフェイルバック・モードも提供する。
変形として、配信のUDPベース部分は、マルチパスを介して実施可能である。一般に、マルチパスは、複数のソース(例えば、複数のエッジ・サーバ、エンド・ユーザ・ピア等)からの並行したダウンロードを示す。マルチパスは、同じサーバ(又はピア)が、ネットワーク内の異なるパスを介し並行して複数回ダウンロードするために使用されるシナリオをも指す。こうしたスキームは、FECがいかなる調停も無しに多くのソースからのデータを組み合わせることができるため、FEC符号化がインプリメントされる際に有用である可能性がある。ある環境では、複数のソースからの並行したダウンロード(及び、性能に応じてそれらのソースを動的に変更すること)は、UDPフェーズについてインプリメント可能である。
代表的なインプリメントにおいて、本機能は、プロセッサによって実行されるコンピュータ・プログラム命令としてソフトウェア内にインプリメントされる。
より一般的には、本明細書で記載された技術は、一緒になって上述の機能を容易にし又は提供する、一連の1つ以上のコンピュータ関連のエンティティ(システム、マシーン、プロセス、プログラム、ライブラリ、機能等)を用いて提供される。典型的な実施形態においては、ソフトウェアが実行される代表的なマシーンは、コモディティ・ハードウェア、オペレーティング・システム、アプリケーション・ランタイム環境、及び一連のアプリケーション又はプロセス、並びに関連データであって、所与のシステム又はサブシステムを提供するものから成る。既述の通り、機能はスタンドアロン・マシーンの形態でインプリメントされてもよいし、或いは一連の分散されたマシーンにわたってインプリメントされてもよい。機能はサービス、例えばSaaSソリューションとして提供されてもよい。
上記は本発明のいくつかの実施形態によって実行される動作の特定の順序を記載したが、代替的な実施形態では、異なる順序での動作の実行、いくつかの動作の組み合わせ、いくつかの動作の重複等があり得るから、このような順序は例示的なものであることは理解されよう。本明細書における所与の実施形態の参照は、記載する実施形態が特定の特性、構造、又は特徴を含む場合があるが、全ての実施形態がその特定の特性、構造、又は特徴を必ずしも含むものではないことを示している。
開示した主題は、方法又はプロセスに照らして記載したが、主題の開示は本明細書における動作を実行するための装置にも関する。この装置は、必要な目的のために特別に構築してもよく、又はコンピュータに記憶したコンピュータ・プログラムによって選択的に活性化又は再構成される汎用コンピュータを含んでもよい。そのようなコンピュータ・プログラムは、限定ではないが、光ディスク、CD−ROM、及び光磁気ディスクを含むいずれかのタイプのディスク、読み出し専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、磁気もしくは光カード、又は電子命令の記憶に適したいずれかのタイプの媒体等のコンピュータ読み取り可能記憶媒体に記憶することができ、その各々はコンピュータ・システム・バスに結合される。
システムの所与のコンポーネントを別個に記載したが、それらの機能のいくつかは、所与の命令、プログラム・シーケンス、コード部分等において組み合わせるか共有することが可能であることは当業者には認められよう。
これは限定ではないが、特定の機能の一部はオペレーティング・システム等に内蔵できるから、機能はアプリケーション層ソリューションの形態でインプリメントされるのが好ましい。
機能はまた、HTTPS等の、HTTP以外の他のアプリケーション層プロトコル、又は類似の動作特性を有する他のプロトコルによってインプリメントされてもよい。
一般化すると、接続のクライアント側又はサーバ側をインプリメントし得るコンピューティング・エンティティのタイプに限定はない。いかなるコンピューティング・エンティティ(システム、マシーン、デバイス、プログラム、プロセス、ユーティリティ等)であっても、クライアント又はサーバとしての機能を果たすことができる。

Claims (13)

  1. データ配信の方法であって、
    ハードウェア・プラットフォーム上で動作するサーバで、
    クライアントから、コンテンツ・オブジェクトを識別するHTTP要求であって、当該HTTP要求への応答本体の転送のためにはUDP接続を使用することを当該クライアントが望む旨を示すHTTP要求ヘッダを含むHTTP要求を受信すること、
    前記サーバに関連付けられたIPアドレス及びポート番号を識別するヘッダと前記要求されたコンテンツ・オブジェクトを欠いた応答本体とを含む前記HTTP要求に対する応答を戻すこと、
    前記IPアドレス及びポート番号に差し向けられたUDP要求を前記クライアントから受信すること、及び、
    前記HTTP要求で識別されたが、前記HTTP要求に対する前記応答本体では戻されなかった前記コンテンツ・オブジェクトを含む、前記UDP要求に対する応答を戻すこと、
    を含む、方法。
  2. 前記クライアントと前記サーバとの間の永続型HTTP接続を維持すること、
    を更に含む、請求項1に記載の方法。
  3. 少なくとも1つの追加のHTTP要求を前記クライアントから受信すること、及び、
    前記少なくとも1つの追加のHTTP要求に対するUDPベースの応答を戻すこと、
    を更に含む、請求項2に記載の方法。
  4. 前記ヘッダはセキュリティ・トークンをも含む、請求項1に記載の方法。
  5. 前記UDP要求に対する前記応答を戻すことに先立ち、前記サーバは、前記UDP要求が前記セキュリティ・トークンをも含むことを確認する、請求項4に記載の方法。
  6. 前記ヘッダは、前記サーバと前記クライアントとの間の1つまたは複数のプロキシが前記HTTP要求に対する前記応答をキャッシングするのを防ぐための情報も含む、請求項1に記載の方法。
  7. プロセッサと、
    コンピュータ・プログラム命令を保持するコンピュータ・メモリとを備え、
    前記コンピュータ・プログラム命令は、
    クライアントから、コンテンツ・オブジェクトを識別する、第1のトランスポート・プロトコルで配信される要求であって、当該要求への応答本体の転送のためには第2のトランスポート・プロトコルでの接続を使用することを当該クライアントが望む旨を示す第1のトランスポート・プロトコルの要求ヘッダを含む要求を受信するためのプログラム・コードと、
    前記要求に対する応答を戻すためのプログラム・コードであって、前記応答は前記第1のトランスポート・プロトコルで配信される、プログラム・コードとを含み、
    前記応答は、前記要求されたコンテンツ・オブジェクトの代わりに空の応答本体と、少なくとも第1及び第2の情報を含むトランスポート・ヘッダとを含むものであり、前記第1の情報は、前記コンテンツ・オブジェクトが前記第1のトランスポート・プロトコルとは異なる第2のトランスポート・プロトコルで取得可能なアドレスを識別するためのものであり、前記第2の情報は、前記要求を発行した前記クライアントによって前記要求が受信されたことを後で確認する際に使用するためのものであり、
    更に、前記第2のトランスポート・プロトコルで配信された前記第2の情報を含む要求を前記アドレスで受信したことに応答するプログラム・コードであって、前記第2のトランスポート・プロトコルで配信された要求に応答して、前記第1のトランスポート・プロトコルで配信された前記応答では戻されなかった前記コンテンツ・オブジェクトを戻すプログラム・コードを含む、装置。
  8. 前記第1のトランスポート・プロトコルはHTTPであり、前記第2のトランスポート・プロトコルはユニキャスト及びマルチキャストのうちのどちらかのUDPである、請求項7に記載の装置。
  9. 前記コンテンツ・オブジェクトは、順方向誤り訂正(FEC)符号化スキームに従って戻される、請求項に記載の装置。
  10. 前記アドレスは、マルチキャスト・グループ・アドレス及びマルチキャスト・グループ・アドレスのセットのどちらかある、請求項7に記載の装置。
  11. サービス・プロバイダがHTTPベース・ストリーミングを使用してエッジ・サーバからビデオ配信を提供する、マルチテナント・オーバーレイ・ネットワーク環境で動作可能なシステムであって、
    ハードウェア・プロセッサで実行されるサーバ側プログラム・コードを含む第1の機械と、
    ハードウェア・プロセッサで実行されるクライアント側プログラム・コードを含む第2の機械と、
    を備え、
    前記第1の機械は、
    前記第2の機械から、コンテンツ・オブジェクトを識別するHTTP要求であって、当該HTTP要求への応答本体の転送のためにはUDP接続を使用することを前記第2の機械が望む旨を示すHTTP要求ヘッダを含むHTTP要求を受信すること、
    前記第1の機械に関連付けられたIPアドレス及びポート番号を識別するヘッダと、前記要求されたコンテンツ・オブジェクトを欠いた応答本体とを含む前記HTTP要求に対する応答を戻すこと、
    前記IPアドレス及びポート番号に差し向けられたUDP要求を受信すること、及び、
    前記HTTP要求で識別された前記コンテンツ・オブジェクトを含む前記UDP要求に対する応答を戻すこと、
    を実行するように動作可能であり、
    前記第2の機械は、
    前記第1の機械へ、前記コンテンツ・オブジェクトを識別する前記HTTP要求を送信すること、
    前記第1の機械に関連付けられたIPアドレス及びポート番号を識別する前記ヘッダと、前記要求されたコンテンツ・オブジェクトを欠いた前記応答本体とを含む前記HTTP要求に対する前記応答を受信すること、
    前記IPアドレス及びポート番号に差し向けられた前記UDP要求を送信すること、及び、
    前記HTTP要求で識別されたが、前記HTTP要求に対する前記応答本体では戻されなかった前記コンテンツ・オブジェクトを含む前記UDP要求に対する前記応答を、受信すること、
    を実行するように動作可能である、
    システム。
  12. 前記ヘッダはセキュリティ・トークンをも含む、請求項11に記載のシステム。
  13. 前記UDP要求が前記セキュリティ・トークンを含み、前記サーバ側プログラム・コードが前記UDP要求は前記セキュリティ・トークンをも含むことを確認すると、前記サーバ側プログラム・コードは前記UDP要求に対する前記応答を戻すようにさらに動作可能である、請求項12に記載のシステム。

JP2015528711A 2012-08-24 2013-08-24 ハイブリッドhttp及びudpコンテンツ配信 Active JP6278531B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261692950P 2012-08-24 2012-08-24
US61/692,950 2012-08-24
US13/974,087 US9628542B2 (en) 2012-08-24 2013-08-23 Hybrid HTTP and UDP content delivery
US13/974,087 2013-08-23
PCT/US2013/056534 WO2014032036A1 (en) 2012-08-24 2013-08-24 Hybrid http and udp content delivery

Publications (2)

Publication Number Publication Date
JP2016500205A JP2016500205A (ja) 2016-01-07
JP6278531B2 true JP6278531B2 (ja) 2018-02-14

Family

ID=50149020

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015528711A Active JP6278531B2 (ja) 2012-08-24 2013-08-24 ハイブリッドhttp及びudpコンテンツ配信

Country Status (6)

Country Link
US (4) US9628542B2 (ja)
EP (1) EP2888857B1 (ja)
JP (1) JP6278531B2 (ja)
KR (1) KR102076523B1 (ja)
CN (1) CN104662865B (ja)
WO (1) WO2014032036A1 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US9380351B2 (en) * 2014-01-17 2016-06-28 Lg Display Co., Ltd. Apparatus for transmitting encoded video stream and method for transmitting the same
US20150271226A1 (en) * 2014-03-18 2015-09-24 Qualcomm Incorporated Transport accelerator implementing a multiple interface architecture
US9866655B2 (en) 2014-03-31 2018-01-09 Akamai Technologies, Inc. Server initiated multipath content delivery
WO2015160953A2 (en) * 2014-04-16 2015-10-22 Pixia Corp. Method and system of transmitting data over a network using a communication protocol
JP6479173B2 (ja) * 2014-09-25 2019-03-06 シーメンス アクチエンゲゼルシヤフトSiemens Aktiengesellschaft プロセスを制御するためのシステム及び当該システムにおけるサーバー機器の動作方法
US11388265B2 (en) * 2015-01-05 2022-07-12 Convida Wireless, Llc Machine-to-machine protocol indication and negotiation
US11057446B2 (en) * 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
CN106330997B (zh) * 2015-06-19 2019-08-09 网宿科技股份有限公司 一种用于移动终端应用的内容分发的方法和系统
CN106549916A (zh) * 2015-09-18 2017-03-29 中兴通讯股份有限公司 组播传输方法、装置及系统
CN106686410B (zh) * 2015-11-09 2019-05-07 中国电信股份有限公司 Hls流媒体传输方法以及装置
US9985890B2 (en) * 2016-03-14 2018-05-29 International Business Machines Corporation Identifying a local congestion control algorithm of a virtual machine
US10397079B2 (en) * 2016-09-27 2019-08-27 Netscout Systems, Inc. Video delivery performance analysis for EMBMS
CN106453356B (zh) * 2016-10-25 2019-08-02 网宿科技股份有限公司 无线网络双边加速传输方法和系统
US10334052B2 (en) 2016-10-28 2019-06-25 Caterpillar Inc. System and method for communicating negotiated groups of parameters
JP6467395B2 (ja) * 2016-11-25 2019-02-13 キヤノン株式会社 画像送信装置、画像受信装置、それらの制御方法および画像通信システム
CN108234433A (zh) * 2016-12-22 2018-06-29 华为技术有限公司 用于处理视频业务的方法和装置
CN106790564A (zh) * 2016-12-27 2017-05-31 北京小度互娱科技有限公司 推送数据的方法及装置
CN106487819B (zh) * 2016-12-29 2019-11-15 北京奇艺世纪科技有限公司 一种通过udp代理http请求的方法和装置
WO2018165190A1 (en) 2017-03-07 2018-09-13 Akamai Technologies, Inc. Cooperative multipath
US10594661B1 (en) * 2017-06-13 2020-03-17 Parallels International Gmbh System and method for recovery of data packets transmitted over an unreliable network
US10652300B1 (en) * 2017-06-16 2020-05-12 Amazon Technologies, Inc. Dynamically-generated encode settings for media content
US11381339B2 (en) * 2017-11-06 2022-07-05 Code On Network Coding, Llc System and technique for generating, transmitting and receiving network coded (NC) quick UDP internet connections (QUIC) packets
CN110166506B (zh) * 2018-02-12 2021-11-19 中国移动通信有限公司研究院 超文本传输协议Http的连接方法及节点设备
US10819562B2 (en) * 2018-07-24 2020-10-27 Zscaler, Inc. Cloud services management systems utilizing in-band communication conveying situational awareness
TWI692233B (zh) 2018-12-19 2020-04-21 財團法人工業技術研究院 基於用戶資料報協定及傳輸控制協定之協同傳輸方法及傳輸裝置
EP3932082A1 (en) * 2019-02-27 2022-01-05 British Telecommunications public limited company Multicast assisted delivery
CN110535751B (zh) * 2019-08-19 2023-01-24 深圳追一科技有限公司 一种消息响应方法、装置、计算机设备和存储介质
CN111385349B (zh) * 2020-02-07 2021-07-16 北京达佳互联信息技术有限公司 通信处理方法、装置、终端、服务器及存储介质
US11695736B2 (en) 2020-09-25 2023-07-04 Forcepoint Llc Cloud-based explicit proxy with private access feature set
US11622024B2 (en) 2020-09-25 2023-04-04 Forcepoint Llc Cloud-based explicit proxy
CN112492004B (zh) * 2020-11-17 2023-02-17 深圳市晨北科技有限公司 本地通信链接的建立方法及设备、系统及存储介质
US11811734B2 (en) * 2021-06-17 2023-11-07 Prosimo Inc Protocol switching for connections to zero-trust proxy
CN113630439B (zh) * 2021-06-30 2023-05-05 网宿科技股份有限公司 实时通信rtc连接方法、服务器及存储介质
CN117999773A (zh) * 2021-09-30 2024-05-07 株式会社电装 数据通信系统、中心装置、主机装置、更新数据配置程序以及更新数据获取程序
JP7466881B2 (ja) 2021-12-30 2024-04-15 17Live株式会社 ストリーミングデータアクセスのためのシステム、方法、及びコンピュータ可読媒体
CN114615237B (zh) * 2022-03-22 2024-03-29 阿里巴巴(中国)有限公司 流媒体通信方法、系统、设备及存储介质
US20230308475A1 (en) * 2022-03-25 2023-09-28 Roblox Corporation Online Game Network Demultiplexer with Denial-of-Service Prevention

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704786B1 (en) * 1997-12-15 2004-03-09 Sun Microsystems, Inc. Network and end-host efficiency for web communication
US7010582B1 (en) * 2000-06-26 2006-03-07 Entrust Limited Systems and methods providing interactions between multiple servers and an end use device
US7111057B1 (en) 2000-10-31 2006-09-19 Akamai Technologies, Inc. Method and system for purging content from a content delivery network
US7340505B2 (en) 2001-04-02 2008-03-04 Akamai Technologies, Inc. Content storage and replication in a managed internet content storage environment
US7463591B1 (en) * 2001-06-25 2008-12-09 Juniper Networks, Inc. Detecting data plane liveliness of a label-switched path
JP4039489B2 (ja) * 2002-01-12 2008-01-30 コアトラスト インコーポレーテッド マルチメディアコンテンツの情報保護方法及びシステム
FI116017B (fi) * 2002-01-22 2005-08-31 Netseal Mobility Technologies Menetelmä viestien lähettämiseksi turvallisten mobiiliviestintäyhteyksien läpi
JP2003304523A (ja) * 2002-02-08 2003-10-24 Ntt Docomo Inc 情報配信システム、情報配信方法、情報配信サーバ、コンテンツ配信サーバ及び端末
US7979528B2 (en) * 2002-03-27 2011-07-12 Radvision Ltd. System and method for traversing firewalls, NATs, and proxies with rich media communications and other application protocols
US7133905B2 (en) 2002-04-09 2006-11-07 Akamai Technologies, Inc. Method and system for tiered distribution in a content delivery network
US20040093419A1 (en) 2002-10-23 2004-05-13 Weihl William E. Method and system for secure content delivery
KR101006703B1 (ko) * 2003-03-28 2011-01-10 톰슨 라이센싱 미디어 기반 파일 송신 시스템 및 방법
US20050165849A1 (en) * 2003-08-05 2005-07-28 G-4, Inc. Extended intelligent video streaming system
WO2005057865A1 (ja) * 2003-12-11 2005-06-23 Matsushita Electric Industrial Co., Ltd. パケット送信装置
US7720983B2 (en) * 2004-05-03 2010-05-18 Microsoft Corporation Fast startup for streaming media
US7577749B1 (en) * 2004-12-03 2009-08-18 Ux Ltd. Emulation of persistent HTTP connections between network devices
US20070174880A1 (en) * 2005-07-05 2007-07-26 Optibase Ltd. Method, apparatus, and system of fast channel hopping between encoded video streams
DE102005033211A1 (de) * 2005-07-13 2007-01-18 Deutsche Thomson-Brandt Gmbh Verfahren zur Feststellung der Aktivität eines Gerätes in einem Netzwerk verteilter Stationen sowie Netzwerkstation für die Durchführung des Verfahrens
US8191119B2 (en) * 2005-11-01 2012-05-29 Cisco Technology, Inc. Method for protecting against denial of service attacks
US9432433B2 (en) * 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US20080086523A1 (en) * 2006-08-18 2008-04-10 Akamai Technologies, Inc. Method of data collection in a distributed network
CN101523379A (zh) * 2006-08-18 2009-09-02 阿卡麦科技公司 分布式网络中的数据收集方法
GB0621433D0 (en) * 2006-10-27 2006-12-06 3G Scene Ltd Networking application
US8495228B2 (en) * 2007-04-23 2013-07-23 Nokia Corporation System and method for optimizing download user service delivery to roaming clients
JP2009140290A (ja) * 2007-12-07 2009-06-25 Fujitsu Ltd コンテンツ中継装置、コンテンツ中継システム及びコンテンツ中継方法並びにプログラム
US8667175B2 (en) * 2008-03-13 2014-03-04 Cisco Technology, Inc. Server selection for routing content to a client using application layer redirection
EP2173078A1 (en) * 2008-10-01 2010-04-07 Thomson Licensing Network device and method for setting up an IPTV session
JP2010093576A (ja) * 2008-10-08 2010-04-22 Sony Corp 受信装置、受信方法およびコンピュータプログラム
US8849988B2 (en) * 2008-11-25 2014-09-30 Citrix Systems, Inc. Systems and methods to monitor an access gateway
US8078870B2 (en) 2009-05-14 2011-12-13 Microsoft Corporation HTTP-based authentication
US8214515B2 (en) * 2009-06-01 2012-07-03 Trion Worlds, Inc. Web client data conversion for synthetic environment interaction
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US8681668B2 (en) * 2009-10-09 2014-03-25 Media Patents, S.L. Methods and apparatus for transmitting multicast traffic in a data network
US8117322B1 (en) * 2009-12-10 2012-02-14 Google Inc. Latency reduction on HTTP servers
US8539102B2 (en) * 2010-06-21 2013-09-17 Comcast Cable Communications, Llc Downloading a code image to remote devices
US8880707B2 (en) * 2010-09-17 2014-11-04 Deutsche Telekom Ag Heterogeneous network access on devices with one or more network interfaces
US9510061B2 (en) * 2010-12-03 2016-11-29 Arris Enterprises, Inc. Method and apparatus for distributing video
EP2536175B1 (en) * 2011-06-14 2014-08-13 Telefonaktiebolaget L M Ericsson (publ) Method, apparatus and computer program for a network node including a PCEF for establishing a user plane session
US9380079B2 (en) * 2011-06-29 2016-06-28 Cable Television Laboratories, Inc. Content multicasting
US8924581B1 (en) * 2012-03-14 2014-12-30 Amazon Technologies, Inc. Managing data transfer using streaming protocols
US9537920B2 (en) * 2012-05-18 2017-01-03 Google Technology Holdings LLC Enforcement of trick-play disablement in adaptive bit rate video content delivery
US9215131B2 (en) * 2012-06-29 2015-12-15 Cisco Technology, Inc. Methods for exchanging network management messages using UDP over HTTP protocol
CN104471955B (zh) * 2012-07-05 2017-08-11 谷歌科技控股有限责任公司 将视频内容提供到多个媒体装置的方法以及服务器
US9538616B2 (en) * 2012-08-07 2017-01-03 Philips Lighting Holding B.V. Timed lighting control
US9438488B2 (en) * 2012-11-09 2016-09-06 Citrix Systems, Inc. Systems and methods for appflow for datastream
US9781061B2 (en) * 2013-04-12 2017-10-03 Nec Corporation Method and system for providing an information centric network with a software defined network
US20150046568A1 (en) * 2013-08-11 2015-02-12 Imvision Software Technologies Ltd. Method and system for playing multicast over-the-top (ott) content streams
IL309988A (en) * 2021-07-26 2024-03-01 Bright Data Ltd Emulation of a web browser in a dedicated relay unit

Also Published As

Publication number Publication date
US20220038558A1 (en) 2022-02-03
US11153417B2 (en) 2021-10-19
CN104662865A (zh) 2015-05-27
WO2014032036A1 (en) 2014-02-27
JP2016500205A (ja) 2016-01-07
US10425507B2 (en) 2019-09-24
KR102076523B1 (ko) 2020-02-12
US20140059168A1 (en) 2014-02-27
EP2888857A1 (en) 2015-07-01
US11924311B2 (en) 2024-03-05
US9628542B2 (en) 2017-04-18
KR20150048179A (ko) 2015-05-06
EP2888857A4 (en) 2016-05-04
EP2888857B1 (en) 2021-11-10
US20200021672A1 (en) 2020-01-16
US20170223149A1 (en) 2017-08-03
CN104662865B (zh) 2018-06-08

Similar Documents

Publication Publication Date Title
JP6278531B2 (ja) ハイブリッドhttp及びudpコンテンツ配信
US10924448B2 (en) Content delivery from home networks
US9917914B2 (en) Facilitating content accessibility via different communication formats
EP3593502B1 (en) Cooperative multipath
EP2897340B1 (en) Routing proxy for adaptive streaming
JP6236435B2 (ja) 非同期データ・ディクショナリを使用した、マルチテナント共有インフラストラクチャにおけるストリームベースのデータ重複排除
CN107077432B (zh) Https请求充实
KR102110421B1 (ko) 클라이언트 장치에 시청각 컨텐츠를 전달하는 시스템 및 방법
US10263950B2 (en) Directing clients based on communication format
JP7178998B2 (ja) 配信性能を改善するためのリソースセグメント化
US9918349B2 (en) Proxy node and method
JP2016053950A (ja) Ccnパイプラインストリームの信頼性のあるコンテンツ交換システム及び方法
EP2670109B1 (en) Method, system and devices for multimedia delivering in content delivery networks
CN107113332B (zh) 用于分发媒体流的装置、方法和计算机可读介质
US20240163321A1 (en) Systems and methods for multicasting live content
JP2023554289A (ja) マルチソースメディア配信システム及び方法
Bestler et al. Applicability of Remote Direct Memory Access Protocol (RDMA) and Direct Data Placement (DDP)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170526

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171013

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180112

R150 Certificate of patent or registration of utility model

Ref document number: 6278531

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250