【问题标题】:Does TCP congestion affect other ports?TCP拥塞会影响其他端口吗?
【发布时间】:2016-04-14 08:25:26
【问题描述】:

我听说当 TCP 数据包丢失时,一切都会因为拥塞而卡住,直到最终收到丢失的数据包。例如服务器在同一个端口上发送这些数据包:

1(UDP), 2(UDP), 3(TCP), 4(UDP), 5(UDP), 6(UDP)

所以如果数据包 3 丢失,客户端将无法接收 4、5、6,直到收到数据包 3,对吧?

如果应用程序使用两个端口,一个用于 TCP,另一个用于 UDP,TCP 拥塞会影响 UDP 端口性能吗?我的意思是UDP数据包会卡住吗?

【问题讨论】:

  • 你到底是从哪里听到这些垃圾话的?
  • 想一想:如果在单个连接丢失数据包时每个客户端都必须等待,服务器将如何正常运行。
  • 好吧,也许客户端没有等待,但它会将其他接收到的数据包放入队列列表中,对吧?最终结果还是一样。 gafferongames.com/networking-for-game-programmers/udp-vs-tcp TCP 如何实现可靠性

标签: sockets networking tcp udp


【解决方案1】:

TCP 拥塞应该只影响当前连接(套接字)。

简而言之,每个连接都有一个TCP sliding window,用于组装数据包。如果一个数据包丢失,同一连接上的其他数据包将被接收并放置在窗口中,除非窗口已满。


(来源:microsoft.com

所以这应该不会影响其他连接。

请参阅TCP window scale optionCongestion windowTCP Receive Window Auto-Tuning

【讨论】:

    猜你喜欢
    • 2013-09-19
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    • 2016-01-02
    • 1970-01-01
    • 2018-01-10
    相关资源
    最近更新 更多