【问题标题】:What's the difference between Flow Control and Congestion Control in TCP?TCP中的流量控制和拥塞控制有什么区别?
【发布时间】:2013-05-04 14:15:02
【问题描述】:

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

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

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

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

【问题讨论】:

  • 不是作业问题。更多的面试准备问题。什么是“题外话”? @EJP

标签: networking tcp congestion-control


【解决方案1】:

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

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

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

关于第 2 部分:

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

关于流控制的内容:停止和等待、滑动窗口、暂停帧。

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

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

【讨论】:

  • 很好的答案,但至少有一个错误:“暂停帧”没有用于拥塞控制,它们是一种流量控制机制。
  • 你是绝对正确的。在错误的段落中添加,现在编辑。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    流控制:

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

    拥塞控制:

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

        流量控制主要在接收方完成,调整发送方向网络注入多少数据; 拥塞控制主要在发送端做,试图通过ACK-packets的时序感知网络上的拥塞,调整发送到相应情况的数据量.

        【讨论】:

          【解决方案6】:

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

          • 公平:任何连接到网络的主机都不应该出现饥饿。尽管术语要复杂得多。
          • 效率:应充分利用链路,以免造成拥塞。

          【讨论】:

            【解决方案7】:

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

            【讨论】:

            • 这看起来像是一个诚实的尝试来回答这个问题,但现在,你的答案有点令人困惑。它也相当短。请考虑在流量控制上花费一到两个完整的段落,在拥塞控制上花费一到两个完整的段落,使用更多的逗号和更少的单词遗漏。
            【解决方案8】:

            流控制:

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

            拥塞控制

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

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

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

            【讨论】:

              【解决方案9】:

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

              【讨论】:

                猜你喜欢
                • 2021-08-02
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-12-15
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2019-02-25
                相关资源
                最近更新 更多