【问题标题】:TCP and UDP are using different OS Buffer?TCP 和 UDP 使用不同的操作系统缓冲区?
【发布时间】:2011-02-17 20:17:05
【问题描述】:

大家好。

这是场景。

我有 8888 端口供我的程序使用。

我在该端口上构建了一个 TCP 和一个 UDP 侦听器。 (可以这样做,c# 允许,因为它们是两种不同的协议)

我的问题是

如果网络流量非常繁忙,TCP 套接字可能会拒绝或发信号通知另一端停止发送东西,这叫拥塞控制,对吧?

所以如果TCP是拥塞控制的,其他端可能不会发送更多的数据,在这个“TCP静默期”,UDP通道应该没有那么多流量吧?

我想弄清楚 TCP 流量是否会影响 UDP 流量?

【问题讨论】:

    标签: windows tcp udp winsock


    【解决方案1】:

    是的,TCP 和 UDP 流量可以相互影响,因为它们都是 IP 流量。中间路由器不会区分这两者,如果出现拥塞,任何一个都可能被丢弃。端口是什么无关紧要。

    如果数据包被丢弃,由于拥塞控制,TCP 可能倾向于降低其在发送方的传输速率,而 UDP 倾向于仅丢弃数据包。

    你真正想问的是什么?

    【讨论】:

    • 感谢旋风。我只是想弄清楚,例如,如果建立了许多 TCP 连接并被大量使用,UDP 能否从这种拥塞中幸存下来?
    • 这取决于你所说的“生存”。某些 UDP 段可能会丢失。
    • 即使没有其他流量,某些 UDP 数据报也可能总是丢失 - 您应该在设计时假设您总是会丢失和重复来自 UDP 的数据报。
    【解决方案2】:

    要回答标题中的明确问题...

    TCP 和 UDP 具有不同的缓冲区,但它们都与在内核中具有一个缓冲区的 IP 通信,并且在数据包通过网络路由时通常被认为是相等的。

    因此 TCP 和 UDP 不会在“传输”层进行交互,而是会在其下方的“网络”、“数据链路”和“物理”层进行交互。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-06
      • 1970-01-01
      • 2012-01-09
      相关资源
      最近更新 更多