【问题标题】:What protocol are we using for streaming, live if the request is an HTTP request that use TCP? How is UDP implemented? [closed]如果请求是使用 TCP 的 HTTP 请求,我们使用什么协议进行流式传输? UDP是如何实现的? [关闭]
【发布时间】:2021-08-17 17:23:17
【问题描述】:

我目前正在研究 TCP/IP 模型的传输层,特别是使用的协议 TCP 和 UDP。我不明白的是,如果我们通过 URL 使用浏览器从 Web 服务器请求资源,例如通过 HTTP 请求播放实时流,在这种情况下,使用的协议是 TCP 而不是 UDP , 正确的?但另一方面,在我正在学习的 cisco 课程以及教科书中也指出,UDP 协议用于直播、多人游戏、VOIP。

在这种情况下,我们使用的是两种协议中的哪一种?我的疑问恰恰在于,如果发出的请求是通过 URL 的 Web 请求,因此是 HTTP 请求,那么由于 HTTP 使用 TCP,UDP 是如何实现的?

我不清楚的是,当我们通过 URL(即 TCP 类型的 HTTP 请求)从 Web 服务器请求资源时,UDP 是如何实现的。如果有问题的资源是“在 Twitch 上观看直播”,既然我们已经使用通过 TCP 建立的“逻辑连接”并且我们已经在使用可靠的通信,那么 UDP 协议是如何实现的?

【问题讨论】:

  • 除了 TCP 和 UDP 之外,还有很多传输协议。使用的传输协议是应用程序开发人员选择使用的一种协议,甚至可以在一个应用程序中使用多个协议。
  • My doubt lies precisely in the fact that if the request that is made is a web request through a URL and therefore an HTTP request 如果应用程序使用 HTTP 请求。所有这些情况(直播、多人游戏、VOIP)都可以使用其他协议。
  • HTTP 不是世界上唯一的应用程序协议。

标签: http web networking tcp udp


【解决方案1】:

UDP 是一个不关心可靠数据传输的协议,即数据包可能会丢失、重复、重新排序等。相反,TCP 关心的是可靠性,这会带来额外的开销并带来潜在的影响如果数据包丢失并需要重新发送,延迟问题。

在考虑延迟但不考虑可靠性时使用基于此 UDP。这适用于实时媒体,例如 VoIP 音频和视频电话。对于这种双向通信,此用例中的延迟过长是不可接受的。因此,这里使用的媒体编解码器可以处理数据包丢失,即优先考虑延迟并处理作为副作用的不可靠性。

在流媒体视频(非实时)中,比如在 youtube 上,延迟并不是那么令人担忧。这里更重要的是有效利用带宽,这意味着具有高压缩率的高效媒体编解码器。编解码器效率越高,它处理数据丢失的能力就越小。因此,连接的可靠性在这里是一个问题,而 TCP 更适合。

【讨论】:

  • 是的,我知道。但我不清楚的是,当我们通过 URL(即 TCP 类型的 HTTP 请求)从 Web 服务器请求资源时,UDP 是如何实现的。如果有问题的资源是“在 Twitch 上观看直播”,既然我们已经在使用通过 TCP 建立的“逻辑连接”并且我们已经在使用可靠的通信,那么 UDP 协议是如何实现的?我很抱歉我的英语不好......
  • @L'uccellinochevola 不是。 HTTP 通过 TCP 工作。你自己这么说的。 Ergo 它不适用于 UDP。但这并不意味着 UDP 永远不能被其他更高级别的协议或直接使用。
  • @L'uccellinochevola:使用 UDP 的实时媒体在 WebRTC 处理的浏览器中。它是一个相当复杂的协议,但本质上它将交换 UDP 端点和编解码器的描述以通过 HTTP 使用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-14
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-17
  • 2016-04-24
相关资源
最近更新 更多