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


81

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

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

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

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


46
不是功课问题。更多面试准备问题。什么是“离题”?@EJP
通用汽车露

Answers:


124

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

流量控制由接收方控制。它确保发送方仅发送接收方可以处理的内容。考虑一下这样的情况:具有快速光纤连接的某人可能正在通过拨号或类似方式发送给某人。发送方将有能力非常快速地发送数据包,但是这对拨号时的接收方来说是没有用的,因此他们需要一种限制发送方可以发送内容的方法。流控制处理可用于确保此通信顺利进行的机制。

拥塞控制是一种确保网络中的每个人在任何给定时间都能“公平”地访问网络资源的方法。在混合网络环境中,每个人都必须能够承担相同的一般性能水平。有助于理解这一点的常见方案是办公室局域网。办公室中有许多LAN网段都在LAN内工作,但是它们可能都需要通过比组成LAN网段慢的WAN链接出去。局域网内具有100mb连接的图片,最终通过5mb WAN链接断开。那里需要某种拥塞控制,以确保更大的网络中没有问题。

关于第2部分:

如上所述,如果这是一个准备面试的问题,我将考虑花一些时间来阅读一般的TCP / IP。不要使用维基百科。RTFM!这非常值得您花时间。您可能会争辩说,这是支撑大多数现代互联网的最重要协议。

流控制要阅读的内容:停止和等待,滑动窗口,暂停帧。

有关拥塞控制的注意事项:QoS(服务质量),重传策略,窗口策略。

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


2
好的答案,但至少有一个错误:拥塞控制中使用“暂停帧” ,它们是流控制的一种机制。
天使

1
你是绝对正确的。在错误的段落中添加了内容,现在进行编辑。
JP Doherty

24

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

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


22

流量控制:

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

拥塞控制:

  • 它确保网络能够处理数据包的负载。
  • 这是一种全球现象,并影响与该网络连接的每个主机。
  • 它由路由器启动。

4

流控制主要在接收方完成,以调整发送方向网络注入的数据量;拥塞控制主要在发送方进行,尝试通过ACK数据包的时间感知网络上的拥塞,以调整发送到相应情况的数据量。


4

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

流控制范围从点到点,仅涉及发送者和接收者。


2

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

  • 公平性:连接到网络的任何主机都不应发生饥饿。尽管术语要复杂得多。
  • 效率:链接应被利用到最大容量,以免引起拥塞。

2

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


这似乎是对问题的诚实尝试,但是现在,您的答案有点混乱。它也很短。请考虑在流量控制上花一两个完整的段落,在拥塞控制上花一两个完整的段落,使用更多的逗号并减少单词遗漏。
朱利安

0

流量控制:

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

拥塞控制

  1. 当我们开始从源传输数据时,然后借助网络将其到达目的地。拥塞控制阻止了源,因此数据不应被网络中的路由器丢弃。

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

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


-4

流量控制:表示能够吸收多少网络的拥塞窗口;拥塞控制:表示有多少接收机能够吸收,通告窗口;发件人的max_window = min(广告窗口,拥塞窗口);

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.