TCP中流量控制与拥塞控制有何不同?
这个问题可以分为两部分:
- 流量控制和拥塞控制的总体目的是什么?
- 如何完成这项任务?
根据维基百科,TCP流量控制依赖于ACK消息中报告的窗口大小。拥塞控制也依赖于确认消息。我想知道两种目标之间的区别以及它们的工作原理。
TCP中流量控制与拥塞控制有何不同?
这个问题可以分为两部分:
根据维基百科,TCP流量控制依赖于ACK消息中报告的窗口大小。拥塞控制也依赖于确认消息。我想知道两种目标之间的区别以及它们的工作原理。
关于第一部分,总体概述:
流量控制由接收方控制。它确保发送方只发送接收方能够处理的内容。想象一种情况,一个拥有快速光纤连接的人可能会发送到一个使用拨号或类似方式连接的接收方。发送方将能够非常快地发送数据包,但这对于拨号接收方来说是无用的,因此他们需要一种方法来限制发送方可以发送的内容。流量控制涉及可用机制,以确保通信顺畅进行。
拥塞控制是一种确保网络上每个人在任何时间都有“公平”的访问网络资源的方法。在混合网络环境中,每个人都需要能够假定同样的性能水平。一个常见的场景是办公室局域网。在局域网内有许多LAN段在其内运行,但是它们可能都需要通过比组成部分LAN段更慢的WAN链路出去。想象一下,在LAN内有100mb的连接,最终经过一个5mb的WAN链接出去。这里需要某种拥塞控制来确保整个网络没有问题。
关于第二部分:
如果这是一个面试准备问题,就像你之前所说的那样,我建议花时间阅读一些关于TCP/IP的一般资料。不要使用维基百科。阅读官方文档是非常值得你的时间的。你可以认为这是支撑现代互联网的最重要的协议。
有关流量控制的内容:停止等待、滑动窗口、暂停帧。
有关拥塞控制的内容:QoS(服务质量)、重新传输策略、窗口策略。
除此之外,你还可以搜索任何特定供应商的实现(如Cisco等)。
流量控制:发送方将发送足够的数据以适应接收方。
拥塞控制:发送方会减少发送数据包的数量,以避免路由器缓冲区(队列)溢出。
流量控制:
拥塞控制:
拥塞控制是一个全球性问题——它涉及到子网内的每个路由器和主机。
流量控制仅涉及发送方和接收方,范围从点到点。
流量控制主要在接收端进行,用于调整发送方注入网络的数据量;拥塞控制主要在发送端进行,尝试通过ACK包的时间来感知网络的拥塞情况,以调整发送到相应情况的数据量。
流量控制是在接收方完成的。如果发送方发送的数据包大于接收方的缓冲区大小,则接收方的缓冲区会发生溢出。为了避免在接收方发生溢出,发送方使用了窗口技术。
拥塞控制是在发送方完成的。这是一个全局现象,在路由器上发生。当许多发送方尝试通过同一链接推送更多的数据包时,路由器的缓冲区会发生溢出。
拥塞控制:除了防止路由器的缓冲区溢出之外,它还处理其他两个重要因素。
流量控制:
拥塞控制:
当我们从源端开始传输数据时,它通过网络到达目的地。拥塞控制防止源端发送数据,以避免路由器在网络中丢失数据。
这个问题与路由器的队列有关。
这更加复杂,因为路由器从连接到其网络的不同源接收不同的数据包。