web-dev-qa-db-ja.com

YouTubeは動画をTCP経由でストリーミングしますか?

私はWiresharkを使用して一部のトラフィックを嗅いだところ、YouTubeトラフィックがTCPに依存していることに気付きました。彼らはUDPを使用していると思いましたか?しかし、まるでHTTPオクテットストリームを使用するかのようです。 YouTubeは本当にストリームにTCPを使用していますか、それとも何か不足していますか?

10
Sebastian

すべてが必要なので、TCPが提供します(スロースタート、ペーシングの送信、指数バックオフ、ウィンドウの受信、並べ替え、拒否の重複など)TCPまたは、これらすべてのことを自分自身で実行しようとします。各オペレーティングシステムの最適化されたTCP。

14
David Schwartz

明らかに、Googleは現在、HTTP応答を調べるとわかるように、QUIC( Quick UDP Internet Connection )などの独自のプロトコル実装を実験しています。

HTTP/1.1 200 OK
...
Content-Type: video/mp4
Alternate-Protocol: 80:quic
...

ただし、現在、Davidが前述したように、TCPに依存しているようです。

11
Sebastian

http://www.crazyengineers.com/threads/youtube-use-tcp-or-udp.38419/ から:

...もちろん、YouTubeページはhttp [TCP経由]を使用しています。本当のことはhttpページではなく、そのページに埋め込まれているflashオブジェクトを介して行われます。 YouTubeに表示されるフラッシュオブジェクトはビデオフラッシュプレーヤーです。ビデオフラッシュプレーヤーは、フラッシュオブジェクトを介してストリーミングするために呼び出されるコンテンツのiframe(技術的に正しくない用語)として機能します。メディアコンテンツを保存するために、YouTubeによってメディアサーバーがインストールされ、再生ボタンを押すとそのコンテンツが呼び出されます。

メディアをフラッシュプレーヤーにストリーミングするには、リアルタイムストリーミングプロトコル(RTSP)が使用されます。フラッシュプレーヤーの再生ボタンは、呼び出されるメディアのRTSPインボーカーとして機能し、メディアはUDPパケットを介してストリーミングされます。実際、埋め込みオブジェクトはhttpページではなくビデオを必要とするため、ページからどこにも移行する必要はありませんが、閉じるとオブジェクトがhttpページに埋め込まれるため、オブジェクトも閉じられます。

1
markmnl