首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TCP拥塞与TCP流控制的区别

TCP拥塞与TCP流控制的区别
EN

Network Engineering用户
提问于 2022-10-25 12:22:49
回答 2查看 119关注 0票数 1

根据我的理解,流程控制本质上是接收者可以处理多少。

假设我可以在100 my /S发送数据包,但接收方只能在10 my/S处理信息,那么流量控制本质上意味着接收方告诉我,“嘿,我可以在10 my/s处处理最大进程信息”,因此,我会将我的发送速度调整为最大10 my/ max。

例如,拥塞控制将类似于TCP tahoe:

我们首先发送一个数据包并等待一个ACK,然后我们将发送的数据包数量增加一倍,等待ACK达到一定的阈值,然后只增加一个数据包。如果我们收到超时,我们知道已经发生了拥塞,我们减少了每次发送的数据包数量,以避免接收端的拥塞。

因此,拥塞控制可以确保接收方不会被超过它所能处理的数据包所淹没,从而导致拥塞。

流量控制控制发送方向接收方发送数据包的速度。

我的结论准确吗?我真的发现他们很相似。

EN

回答 2

Network Engineering用户

回答已采纳

发布于 2022-10-26 09:29:31

不,你的结论不太准确。流量控制和拥塞控制有不同的目标。

简短回答:

流量控制的目的是确保发送方不会超载接收方。

拥塞控制的目的是确保发送方不超载网络,例如通过发送更多的数据包,使得路径上容量最低的链路能够处理和传输更多的数据包。

长答案:

流量控制

因此,简单的回答是成立的,但这并不是关于限制容量。

首先,如果接收器是通过10 be链路连接的,那么将被重载的系统不是接收方,而是“该链路的另一边”(基本上,如果有一个路由器具有100 be的传入和10 be的传出链路,那么这个场景中的过载系统)就是拥塞控制的问题。

接收器应该有一个缓冲器,它存储接收到的数据包。当重新排序数据包时,TCP操作需要此缓冲区。在桌面PC上,当应用程序没有从套接字读取数据包时,也需要这个缓冲区来存储数据包。这个缓冲区可以存储一系列连续的序列号。如果接收到序列号超出此范围的数据包,则丢弃该分组。

现在,流控制的目标不是发送将被丢弃的数据包。接收方告诉发送方缓冲区中有多少空间,而发送方没有发送更多这样的数据包。

这里的问题是,您通常不能说接收器可以处理10 10Mbps。这取决于到达多少重排序数据包,以及如何对接收方进行进程调度。因此,这是不断变化的(除非您有一个实时操作系统,在这种情况下,您可能不会使用TCP开始)。

拥塞控制

拥塞控制的目标是将发送速率调整到网络之间的容量,这或多或少是路径上“最慢”链路的容量。

这是一个经典的例子。

发送方<=== 1 1Gbps ===>路由器(R1) <-50 50Mbps >路由器(R2) <=== 1 1Gbps ===>接收器

因此,发送方连接到1Gb的以太网链路,并能够发送1Gb的流量。接收器也连接到1Gb链路,并相应地设置其缓冲区。因此,TCP在技术上可以发送1 1Gbps的流量。

显然,发送1 1Gbps的流量是没有意义的,因为两个路由器之间的瓶颈链路将无法传输它。额外的数据包将被丢弃在R1。

拥塞控制的目的是找出这个瓶颈链路的容量,而不是发送超过这个链路所能传输的数据包。

为什么丢包?因此,数据包丢失将发生在R1,因为它试图将流量从1Gb发送到50 to链接。分组交换网络的工作方式应该是: R1从1Gb链路接收数据包;R1需要从5Mb链路发送数据包。R1应该在链接之前有一个缓冲区。第二,链接是免费的,可以发送数据包,或者应该缓冲它们。一旦缓冲区满了,数据包就会被丢弃。这一下降被视为拥堵的迹象。当出现丢包时,发送方应该降低其发送速率。

因为TCP是基于窗口的,拥塞控制是基于窗口的,所以实际上TCP减少了它每个RTT发送的数据包数量。

现在,我将讨论如何更好地控制交通拥堵,因为这需要很长的文字墙。太浩太咄咄逼人,降低了性能。正常发送者至少使用Reno。

票数 1
EN

Network Engineering用户

发布于 2022-10-25 13:07:52

从发送方的角度来看,流量控制和拥塞控制本质上是相同的。关键在于发送者发现任何不及时接收的情况。

无论限制是接收器本身还是路径容量,都不重要。接收器的限制是相当静态的,但是当前的路径容量可能是高度可变的,因此需要一个处理这两种情况的算法。瓶颈很可能既不是发送方,也不是接收方,而是路径组件。

票数 0
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/80315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档