14

我刚刚使用wireshark 嗅探了一些流量并注意到YouTube 流量依赖于TCP。我想,他们使用的是UDP?但似乎他们会使用 HTTP 八位字节流。YouTube 真的使用 TCP 传输流还是我遗漏了什么?

4

3 回答 3

18

因为他们需要 TCP 提供的一切(慢启动、传输步调、指数退避、接收窗口、重新排序、重复拒绝等),他们要么必须使用 TCP,要么尝试自己做所有这些事情。他们没有办法比每个操作系统的优化 TCP 实现做得更好。

于 2013-10-27T16:20:13.500 回答
12

显然,Google 目前正在试验自己的协议实现,例如 QUIC(快速 UDP 互联网连接),正如在检查 HTTP 响应时所看到的那样

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

然而,目前,他们似乎依赖 TCP,就像大卫之前提到的那样。

于 2013-10-28T09:21:48.477 回答
2

来自http://www.crazyengineers.com/threads/youtube-use-tcp-or-udp.38419/

...当然 youtube 页面使用 http [通过 TCP]。真正的事情不是通过 http 页面发生,而是通过嵌入在该页面中的 flash 对象发生。出现在 youtube 上的 Flash 对象是视频 Flash 播放器。视频 Flash 播放器充当 iframe(技术上不正确的术语),用于通过 Flash 对象调用流式传输的内容。为了存储媒体内容,youtube 已经安装了一个媒体服务器,当你按下播放按钮时,它的内容会被调用。

对于流媒体到 Flash 播放器,使用实时流协议 (RTSP)。Flash 播放器上的播放按钮充当被调用媒体的 RTSP 调用程序,媒体通过 UDP 数据包流式传输。事实上,您不需要从页面迁移到任何地方,因为嵌入的对象调用视频而不是 http 页面,而是因为一旦关闭它,对象就会嵌入到 http 页面上,对象也会被关闭。

于 2015-06-19T02:23:31.830 回答