2

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

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

4

2 回答 2

7

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

这是因为拥塞窗口的大小代表了网络中可能出现的拥塞。这是 TCP 提供的关键特性之一。此窗口分三个阶段更新。

在第一阶段,当 TCP 启动时,它以 1 MSS(Max Segment Size)的拥塞窗口开始,然后以慢启动方式将其加速。TCP 发送方以这个值开始,因为它正在“估计”它可以在网络中发送多少数据包。此阶段也称为慢启动阶段。顺便说一句,即使它被称为慢启动,TCP 通过将拥塞窗口加倍来增加数据包,并且增加发生在收到 ACK 时。

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

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

于 2013-09-15T07:46:57.923 回答
0

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

于 2014-04-16T22:11:05.110 回答