计算机网络面试题, 已经有滑动窗口了为什么还要拥塞控制?
计算机网络面试题, 已经有滑动窗口了为什么还要拥塞控制?
QA
Step 1
Q:: 为什么已经有滑动窗口协议了还需要拥塞控制?
A:: 滑动窗口协议主要用于流量控制,它确保发送方不会超出接收方的处理能力。但是,滑动窗口协议无法解决网络中的拥塞问题。当网络中的流量过大时,拥塞可能会发生,导致大量的数据包丢失和延迟增加。拥塞控制机制,例如TCP中的慢启动和拥塞避免算法,旨在检测和减少网络拥塞,从而优化数据传输的效率和稳定性。滑动窗口和拥塞控制是互补的机制,它们分别处理不同的问题。
Step 2
Q:: TCP中的慢启动机制是什么?
A:: 慢启动是TCP拥塞控制的一部分,它在新的连接开始时逐步增加发送窗口的大小,而不是立即发送大量数据。初始时,拥塞窗口(cwnd)通常设置为一个较小的值(例如1
个MSS)。随着每次成功的ACK返回,cwnd会指数级增长,直到达到慢启动阈值(ssthresh)。超过这个阈值后,TCP进入拥塞避免阶段,cwnd增长速度减缓。这种机制可以防止网络突然拥塞。
Step 3
Q:: 什么是TCP的拥塞避免算法?
A:: 在TCP的拥塞控制中,当慢启动阶段结束后,TCP进入拥塞避免阶段。在这个阶段,拥塞窗口(cwnd)的增长从指数级变为线性增长。每当确认一个新数据包时,cwnd增加1/
cwnd,确保网络中的数据流量逐步增加,从而避免可能的拥塞。这种方式使网络能稳定在一个较高的吞吐量,同时避免过度拥塞的风险。
Step 4
Q:: TCP拥塞控制中的快重传和快恢复是什么?
A:: 快重传和快恢复是TCP拥塞控制机制中的两个重要部分。当发送方接收到三个重复的ACK时,TCP假设数据包丢失,立即重传丢失的数据包,这就是快重传。快恢复机制在快重传后立即启动,将cwnd减半,而不是进入慢启动,从而允许TCP连接在丢包后更快地恢复到正常的传输速度。
Step 5
Q:: 为什么网络中的拥塞会导致数据包丢失?
A:: 当网络中出现拥塞时,路由器和交换机的队列可能会满,这导致新到达的数据包没有足够的缓冲空间存储,从而被丢弃。此外,网络设备的处理能力可能会被过载,无法及时处理所有的数据包,这也会导致丢包现象的发生。