我试图理解TCP拥塞避免机制,但我不明白一件事: TCP拥塞避免是按流还是按链路?
换句话说:有两台路由器A和B A正在向B发送两个TCP流-当一个TCP流检测到拥塞时,是否也会减小另一个流中的窗口大小?
当然,如果发生这种情况,另一个流将在一段时间内检测到拥塞,但第二个流是否会“等待”,直到它自己检测到拥塞?那将是相当无效的..。
非常感谢
发布于 2012-08-31 05:48:53
它减小当前连接的窗口大小。每个连接的RTT和窗口都是独立维护的。
发布于 2012-09-05 05:32:21
路由器工作在第三层(IP)上,不知道第四层( TCP ),因此路由器不参与TCP拥塞避免机制。此机制完全由TCP端点实现。它是由路由器丢弃IP数据包触发的,但是(传统的)路由器并不知道IP数据包携带的是什么更高级别的协议。
从安全的角度来看,一个流不影响另一个流的事实是非常可取的。使用NAT,您可以让多台主机共享相同的IP地址。从外部世界看,所有这些主机看起来都像一台机器。因此,如果某些服务器减少了来自单个IP地址的所有TCP连接的吞吐量,以响应其中一个连接中丢弃的数据包,这将打开一扇通往相当恶劣的DoS攻击的大门。
另一个问题是,某些路由器可能被配置为根据IP ToS字段丢弃数据包。例如,延迟敏感型SSH通信量可能会设置与批量下载不同的ToS。如果将路由器配置为考虑ToS字段,它可能会丢弃属于ToS连接数据包,这将触发拥塞避免,但不应影响属于SSH连接的数据包,该数据包可能会以更高的优先级进行处理。
https://stackoverflow.com/questions/12195760
复制相似问题