ストリーミングとは、実際にメディアファイルをダウンロードすることなく、動画を視聴したり、オーディオコンテンツを聴いたりする方法です。ファイルの所有者がCDNを使用する場合、ストリーミングのパフォーマンスが向上し、バッファリング時間が短縮されます。
この記事を読み終えると、以下のことができるようになります。
関連コンテンツ
是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!
記事のリンクをコピーする
最初のWebサイトは、画像が一つか二つ付いているようなシンプルなテキストのページでした。しかし、今日では高速インターネット接続があれば、誰もが高解像度の映画を視聴したり、インターネット経由でビデオ通話を行ったりできます。ストリーミングと呼ばれる技術が、これを可能にしました。
ストリーミングでは、サーバーからクライアントへオーディオまたは動画ファイルが継続的に送信されます。簡単に言うと、消費者は、インターネットに接続されたデバイスでテレビを見たり、ポッドキャストを聴いたりするときにストリーミングを使っているのです。ストリーミングでは、クライアントデバイスで再生されるメディアファイルが遠隔で保存され、インターネット経由で数秒ずつ送信されます。
ストリーミングはリアルタイムで、メディアファイルをダウンロードするよりも効率的です。動画ファイルをダウンロードすると、ファイル全体のコピーがデバイスのハードドライブに保存され、ファイル全体のダウンロードが完了するまで動画を再生できません。ストリーミングでは、ブラウザはメディアファイルを実際にコピーして保存することなく動画を再生します。動画ファイルは、全体を一度に読み込むのではなく、少しずつ読み込まれ、ブラウザは読み込む情報をローカルに保存しません。
湖と川の違いを考えてみてください。両方とも水があり、川の水量は湖と同等かもしれません。違いは、川の水が同時にすべて同じ場所にあるわけではないことです。ダウンロードした動画ファイルは湖に似ていて、多くのハードドライブスペースを占有します(湖の移動には時間がかかります)。動画ストリーミングは、動画のデータが連続して急速にユーザーのブラウザに流れ込むという点では、川の流れ(ストリーム)に似ています。
インターネットで送信される他のデータと同様に、オーディオと動画のデータはデータパケットに分割されます。各パケットにはファイルの小さな断片が含まれており、クライアントデバイスのブラウザ内のオーディオプレーヤーまたは動画プレーヤーがデータパケットフローを取り出し、動画またはオーディオとして解釈します。
ストリーミング方式には、UDPを使用するものと、TCPを使用するものがあります。UDPとTCPはトランスポートプロトコルであり、ネットワーク上でデータパケットを転送するために使用されます。どちらも、インターネットプロトコル(IP)と共に使用されます。TCPは、データを送信する前に専用の接続を開き、すべてのデータパケットが順番に到着するようにします。TCPとは異なり、UDPはこれらのことを行いません。結果として、TCPはUDPよりも信頼性が高く、UDPはデータ転送にTCPほど時間がかかりませんが転送中にパケットが失われることがあります。
もしTCPが、受取人の署名が必要な小包配送サービスなら、UDPは受取りの署名のためにドアをノックすることなく、玄関先に小包を置いて配達完了するサービスです。TCP配信サービスで失われるパッケージの数はより少なくなりますが、UDP配信サービスはより高速です。これは、署名する人が自宅にいなくても、小包を玄関先に置いて、配達が完了するためです。
ストリーミングでは、場合によっては信頼性よりも速度の方がはるかに重要なケースがあります。たとえば、ビデオ会議に参加しているユーザーは、すべてのデータビットが配信されるまでじっと待つよりも、他の会議参加者とのリアルタイムのやりとりを好みます。そのため、少数のデータパケットが失われることは大きな問題ではなく、UDPを使用すべきです。
また、ストリーミングでは信頼性がより重視されるケースもあります。たとえば、HTTP live streaming(HLS)とMPEG-DASHは、どちらもトランスポートにTCPを使用するストリーミングプロトコルです。多くのビデオオンデマンドサービスでもTCPを使用しています。
メディアプレーヤーのストリーミングでは、数秒前にストリームを読み込み、接続が一時的に中断された場合でも、動画またはオーディオの再生を継続できるようにします。これはバッファリングと呼ばれます。バッファリングにより、動画がスムーズかつ継続的に再生されます。ただし、接続の速度が遅かったり、ネットワークのレイテンシーが非常に大きい場合は、動画のバッファリングに時間がかかることがあります。
ストリーミングは、他のWebコンテンツと同種の遅延やパフォーマンス低下の影響を受けます。ストリーミングコンテンツは他の場所に保存されるため、ホストの場所が大きな差を生み出しますが、これはインターネットでアクセスする他のコンテンツでも同じです。ニューヨークにいるユーザーがカリフォルニア州のロスガトスにあるNetflixのサーバーから配信される動画をストリーミングしようとする場合、動画コンテンツがユーザーに到達するまでに約4,828km移動するのでバッファ時間は当然長くなり、全く再生できない可能性もあります。このため、Netflixやその他のストリーミングプロバイダーは、世界中のユーザーにより近い場所にコンテンツを保存する分散型コンテンツ配信ネットワーク(CDN)を広く利用しています。
CDNは、ストリーミングパフォーマンスに大きなプラスの影響を与えます。Cloudflare Stream は、CloudflareのCDNを使用して、世界中のすべてのCloudflareデータセンターに動画コンテンツをキャッシュし、提供します。その結果、動画の起動時間が短縮され、バッファリングが削減されるため、遅延を削減することができます。