我只是使用wireshark嗅探了一些流量,并注意到YouTube流量依赖于TCP。我想,他们正在使用UDP?但似乎他们会使用HTTP八位字节流。 YouTube是否真的使用TCP进行流式传输,或者我错过了哪些内容?
答案 0 :(得分:14)
因为他们需要TCP提供的所有内容(慢启动,发送调步,指数退避,接收窗口,重新排序,重复拒绝等),他们要么必须使用TCP,要么尝试自己做所有这些事情。他们无法比每个操作系统优化的TCP实现做得更好。
答案 1 :(得分:10)
显然,谷歌目前正在试验自己的协议实现,如QUIC(Quick UDP Internet Connection),正如人们在检查HTTP响应时所看到的那样
HTTP/1.1 200 OK
...
Content-Type: video/mp4
Alternate-Protocol: 80:quic
...
然而,目前,他们似乎依赖TCP,就像David之前提到的那样。
答案 2 :(得分:1)
来自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页面上,对象也会被关闭。