私はWiresharkを使用して一部のトラフィックを嗅いだところ、YouTubeトラフィックがTCPに依存していることに気付きました。彼らはUDPを使用していると思いましたか?しかし、まるでHTTPオクテットストリームを使用するかのようです。 YouTubeは本当にストリームにTCPを使用していますか、それとも何か不足していますか?
すべてが必要なので、TCPが提供します(スロースタート、ペーシングの送信、指数バックオフ、ウィンドウの受信、並べ替え、拒否の重複など)TCPまたは、これらすべてのことを自分自身で実行しようとします。各オペレーティングシステムの最適化されたTCP。
明らかに、Googleは現在、HTTP応答を調べるとわかるように、QUIC( Quick UDP Internet Connection )などの独自のプロトコル実装を実験しています。
HTTP/1.1 200 OK
...
Content-Type: video/mp4
Alternate-Protocol: 80:quic
...
ただし、現在、Davidが前述したように、TCPに依存しているようです。
http://www.crazyengineers.com/threads/youtube-use-tcp-or-udp.38419/ から:
...もちろん、YouTubeページはhttp [TCP経由]を使用しています。本当のことはhttpページではなく、そのページに埋め込まれているflashオブジェクトを介して行われます。 YouTubeに表示されるフラッシュオブジェクトはビデオフラッシュプレーヤーです。ビデオフラッシュプレーヤーは、フラッシュオブジェクトを介してストリーミングするために呼び出されるコンテンツのiframe(技術的に正しくない用語)として機能します。メディアコンテンツを保存するために、YouTubeによってメディアサーバーがインストールされ、再生ボタンを押すとそのコンテンツが呼び出されます。
メディアをフラッシュプレーヤーにストリーミングするには、リアルタイムストリーミングプロトコル(RTSP)が使用されます。フラッシュプレーヤーの再生ボタンは、呼び出されるメディアのRTSPインボーカーとして機能し、メディアはUDPパケットを介してストリーミングされます。実際、埋め込みオブジェクトはhttpページではなくビデオを必要とするため、ページからどこにも移行する必要はありませんが、閉じるとオブジェクトがhttpページに埋め込まれるため、オブジェクトも閉じられます。