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

时间:2013-05-09 23:51:16

标签: networking tcp congestion-control

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

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

  1. 流量和拥塞控制的总体目的是什么?
  2. 如何完成任务?
  3. 根据Wikipedia,TCP流量控制依赖于ACK消息中报告的窗口大小。拥塞控制还依赖于确认消息。我想知道两个目标之间的区别,以及它们是如何工作的。

9 个答案:

答案 0 :(得分:114)

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

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

拥塞控制是一种确保网络中的每个人在任何给定时间都具有“公平”访问网络资源的方法。在混合网络环境中,每个人都需要能够承担相同的一般性能水平。帮助理解这一点的常见方案是办公室局域网。办公室里有许多局域网段都在局域网内做事,但是他们可能都需要通过比组成局域网段慢的广域网链路。在LAN内具有100mb连接的图片最终通过5mb WAN链路传出。需要采取某种拥塞控制措施,以确保整个大型网络没有问题。

至于第2部分:

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

有关流量控制的内容:停止并等待,滑动窗口,暂停帧。

有关拥塞控制的内容:QoS(服务质量),重传策略,窗口策略。

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

答案 1 :(得分:22)

流量控制:发送者将发送足够的数据,可以在接收端进行调整。

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

答案 2 :(得分:21)

流程控制:

  • 确保发件人不会使接收器过载。
  • 与拥堵控制不同,这是一种本地现象。
  • 一般由发件人发起。

拥塞控制:

  • 确保网络能够处理数据包的负载。
  • 这是一种全球现象,会影响与该网络相关的每台主机。
  • 由路由器发起。

答案 3 :(得分:3)

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

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

答案 4 :(得分:3)

流量控制主要在接收方上进行,以调整发送方注入网络的数据量; 拥塞控制主要在发送方上进行,试图通过ACK-packets的时序感知网络拥塞,调整发送到相应情况的数据量

答案 5 :(得分:2)

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

  • 公平:任何连接到网络的主机都不应发生饥饿。尽管术语更复杂。
  • 效率:应使用链接达到最大容量,以免造成拥塞。

答案 6 :(得分:2)

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

答案 7 :(得分:0)

流程控制:

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

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

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

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

答案 8 :(得分:-3)

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