93

TCP中的流量控制和拥塞控制有什么区别?

这个问题可以分为两部分:

  1. 流量和拥塞控制的总体目的是什么?
  2. 任务是如何完成的?

根据Wikipedia,TCP 流量控制依赖于 ACK 消息中报告的窗口大小。拥塞控制也依赖于确认消息。我想知道这两个目标之间有什么区别,以及它们是如何工作的。

4

9 回答 9

131

至于第 1 部分,超级概述:

流量控制由接收方控制。它确保发送者只发送接收者可以处理的内容。想一想这样一种情况,即具有快速光纤连接的人可能正在通过拨号或类似方式向某人发送信息。发送方将能够非常快速地发送数据包,但这对拨号接收方来说毫无用处,因此他们需要一种方法来限制发送方可以发送的内容。流控制处理可用于确保此通信顺利进行的机制。

拥塞控制是一种确保网络中的每个人在任何给定时间都能“公平”访问网络资源的方法。在混合网络环境中,每个人都需要能够假设相同的一般性能水平。一个有助于理解这一点的常见场景是办公室 LAN。您在办公室中有许多 LAN 网段,它们都在 LAN 中做自己的事情,但是它们可能都需要通过比组成 LAN 网段慢的 WAN 链接出去。图片在 LAN 中具有 100mb 连接,最终通过 5mb WAN 链接出去。那里需要进行某种拥塞控制,以确保整个更大的网络没有问题。

关于第 2 部分:

如果这是一个面试准备问题,正如你上面所说的,我会考虑花一些时间来阅读一般的 TCP/IP。不要使用维基百科。实时调频!这非常值得您花时间。你可以说这是支撑现代互联网的最重要的协议。

Flow Control 需要阅读的内容:停止和等待、滑动窗口、PAUSE 帧。

拥塞控制需要阅读的内容:QoS(服务质量)、重传策略、窗口策略。

除此之外,您可以搜索任何特定的供应商实施(思科等)

于 2013-05-10T11:16:02.703 回答
28

流量控制:发送方将发送足够多的数据,接收方可以容纳。

拥塞控制:发送方将减少发送的数据包数量,以避免溢出路由器的缓冲区(队列)。

于 2013-10-06T12:42:57.470 回答
22

流量控制:

  • 它确保发送方不会使接收方过载。
  • 与拥塞控制不同,这是一种局部现象。
  • 它通常由发件人发起。

拥塞控制:

  • 它确保网络能够处理数据包的负载。
  • 这是一种全球现象,会影响与该网络连接的每台主机。
  • 它是由路由器启动的。
于 2015-05-12T20:21:48.887 回答
5

拥塞控制是一个全球性问题——涉及子网内的每个路由器和主机

从点到点的流控制只涉及发送者和接收者。

于 2014-09-30T18:57:25.527 回答
4

流量控制主要在接收端完成,调整发送端注入网络的数据量;拥塞控制主要在发送端进行,通过ACK-packet的时序来感知网络上的拥塞,调整发送数据量到相应的情况。

于 2016-06-16T16:33:58.783 回答
2

拥塞控制:除了防止路由器的缓冲区溢出之外,它还处理另外两个重要因素

  • 公平:任何连接到网络的主机都不应该出现饥饿。尽管术语要复杂得多。
  • 效率:链路应该被利用到它们的最大容量,这样它就不会导致拥塞。
于 2016-06-16T08:25:58.050 回答
2

流控制在接收端完成。如果发送方发送的数据包大于接收方的缓冲区大小,则接收方的缓冲区会发生溢出。为了避免在接收方发生这种溢出,在发送方使用了一种窗口技术。拥塞控制在发送方完成。这是一个全球现象。这发生在路由器上。当许多发送者试图通过同一链接推送更多数据包时,路由器的缓冲区溢出。

于 2016-07-31T07:04:09.527 回答
0

流量控制:

  1. 当发送缓冲区已满时,我们会阻止源发送数据,这样数据就不会被丢弃。
  2. 在这种情况下,接收缓冲区已满。
  3. 可以通过滑动窗口协议轻松实现。

拥塞控制

  1. 当我们开始从源传输数据时,它会在网络的帮助下到达目的地。拥塞控制阻止源,因此数据不应被网络中的路由器丢弃。

  2. 此问题与路由器的队列有关

  3. 实现起来更加复杂,因为路由器从连接到其网络的不同源获取不同的数据包。

于 2018-05-04T19:27:38.843 回答
-4

流量控制:表示网络能够吸收多少,拥塞窗口;拥塞控制:表示接收器能够吸收多少,广告窗口;发送方的 max_window=min(advertised window, 拥塞窗口);

于 2014-05-16T21:29:17.337 回答