TCP 拥塞窗口大小



我正在进行一些修订,我被一个TCP问题难住了。也许有人可以给我一个快速提示或朝着正确的方向推动,这样我就可以通过这一部分。

"为什么TCP中的发送实体在确定滑动窗口大小时需要考虑拥塞窗口的大小?

"为什么TCP中的发送实体在确定滑动窗口大小时需要考虑拥塞窗口的大小?

这是因为拥塞

窗口的大小表示网络中可能的拥塞。这是TCP提供的关键功能之一。此窗口分三个阶段更新。

在第一阶段,当TCP启动时,它以拥塞窗口开始,为1 MSS(最大段大小),然后以缓慢启动的方式增加。TCP 发送方以此值开头,因为它正在"估计"它可以在网络中发送多少数据包。此阶段也称为慢启动阶段。顺便说一句,即使它被称为慢启动,TCP 也会通过将拥塞窗口加倍来增加数据包,并且在收到 ACK 时就会增加数据包。

在第二阶段,当拥塞窗口达到慢启动(ss)阈值(是的,有一个!),TCP发送方会累加地增加其Cogestion窗口 - 这是拥塞避免阶段。 在这里,发件人变得更加谨慎。同样,增加发生在收到 ACK 时。

在第三阶段,当数据包被丢弃时(一个原因是发生了重新传输超时),然后TCP将其拥塞窗口缩短回1 MSS,并重新启动以再次增长它。这样做是因为遇到了可能的拥堵,因此缩短拥堵窗口可能会释放沿途的拥堵情况。与其他阶段不同,下降是由于缺乏对ACK的接收而发生的。

TCP可以使用滑动窗口方法来调节需要发送到接收方的数据包。接收方还可以保留一个滑动窗口,以跟踪已接收的数据包和已接收的数据包。在确定发送端的滑动窗口大小时,我们应该考虑拥塞窗口大小,因为我们不想淹没网络通道。网络中的实际流量为 min{awnd,cwnd},其中 awnd 是接收方向接收方通告的窗口大小,cwnd 代表拥塞窗口大小,其最大值将根据网络状况而变化。

最新更新