我听说TCP数据包丢失时,一切都因拥塞而卡住,直到最终收到丢失的数据包。例如服务器在同一端口上发送这些数据包:
1(UDP), 2(UDP), 3(TCP), 4(UDP), 5(UDP), 6(UDP)
因此,如果数据包3丢失,客户端将无法接收4,5,6,直到收到数据包3,对吧?
如果应用程序使用两个端口,一个用于TCP,另一个用于UDP,则TCP拥塞会影响UDP端口性能吗?我的意思是UDP数据包会被卡住吗?
答案 0 :(得分:3)
TCP拥塞应该只影响当前连接(套接字)。
简而言之,对于每个连接,都有一个TCP sliding window
用于组装数据包。如果一个数据包丢失,则会收到同一连接上的其他数据包并将其放在窗口中,除非该窗口已满。
所以这不应该影响其他连接。
请参阅TCP window scale option,Congestion window和TCP Receive Window Auto-Tuning。