【问题标题】:What is Bandwidth Consumption in TCP vs UDP socket?TCP 与 UDP 套接字中的带宽消耗是多少?
【发布时间】:2020-09-24 09:04:03
【问题描述】:

我知道我的问题有很多类似的问题,但我需要一个关于我的问题的明确答案。 众所周知,TCP是面向连接的,而UDP是无连接的。如果在同一个网络上,我创建了两个 UDP 套接字(服务器、客户端)和两个 TCP 套接字(服务器、客户端),那么谁会消耗更多带宽?我的意思是,据我所知,牢记面向连接的术语,我假设 TCP 将一直消耗更多带宽,而 UDP 仅在发送数据时才会消耗带宽。

您能帮我解决这个问题吗?

【问题讨论】:

  • 没有。两者都只会在传输数据时或多或少地消耗带宽。离题。
  • 除了对我的问题“或多或少”给予负面评价。在这种情况下,面向连接意味着什么?它与套接字编程和带宽优化有关。如果它是面向连接的,是否意味着始终占用特定部分的带宽......?顺便说一句,这不是题外话。
  • 有很多关于这些协议如何工作的描述,谷歌是你的朋友!参见例如here for TCP,你能指出连接空闲时额外带宽用在哪里吗?请注意,是社区共同决定什么是主题内或主题外,我发布了我认为只适合指向其他地方的内容

标签: sockets tcp udp congestion-control


【解决方案1】:

TCP 会比 UDP 消耗更多的带宽。

在 TCP 中传输的所有内容都必须得到确认以确保连接的完整性。 UDP 不这样做。

TCP 的每个数据包标头比 UDP 稍大。

TCP 有可选的 keep-alives 可以打开,而 UDP 没有。因此,在没有应用程序数据传输的空闲期间,可能会使用少量网络流量来保持 TCP 连接处于活动状态。

但是,这些开销很小,您不太可能注意到它们,除非您真的在寻找它们。

【讨论】:

  • 嗨@Remy,非常感谢您的回答。基本上,我正在尝试为 VOIP 应用程序(客户端-服务器架构)中的拥塞控制制定协议。我想知道我在问题中问了什么。现在很清楚了。
  • @KhubaibAhmad 大多数 VoIP 技术都基于 RTP,它本身仅在 UDP 之上运行,因为丢弃的音频数据包对整个对话并不重要,因此不需要 TCP 的额外开销保证。
猜你喜欢
  • 2020-07-02
  • 2022-12-08
  • 2015-12-14
  • 1970-01-01
  • 2018-04-03
  • 1970-01-01
  • 2015-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多