我听说当 TCP 数据包丢失时,一切都会因为拥塞而卡住,直到丢失的数据包最终被收到。例如服务器在同一端口上发送这些数据包:
1(UDP), 2(UDP), 3(TCP), 4(UDP), 5(UDP), 6(UDP)
因此,如果数据包 3 丢失,客户端将无法接收 4、5、6,直到收到数据包 3,对吗?
如果应用程序使用两个端口,一个用于 TCP,另一个用于 UDP,TCP 拥塞是否会影响 UDP 端口性能?我的意思是 UDP 数据包会被卡住吗?
最佳答案
TCP 拥塞应该只影响当前连接(套接字)。
简而言之,对于每个连接,都有一个用于组装数据包的 TCP 滑动窗口
。如果一个数据包丢失,同一连接上的其他数据包将被接收并放置在窗口中,除非窗口已满。
(来源:microsoft.com)
所以这不应该影响其他连接。
参见TCP window scale option , Congestion window和 TCP Receive Window Auto-Tuning .
关于sockets - TCP拥塞会影响其他端口吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34697631/