TCP流量控制和拥塞控制

TCP流量控制

有的时候发送方数据发送的过快 导致接受方接受不过来 这个时候就需要流量控制。
流量控制 就是让发送方发送的速度慢一些 让接受方来的及来接受。
TCP通过滑动窗口来实现流量控制。

在通信过程中,接受方根据自己接受的缓存的大小,动态的调整发送方的发送窗口大小,即接受窗口rwnd(接受方设置确认报文段的窗口字段来将rwnd通知给发送方) 发送方的发送窗口取接收窗口rwnd和拥塞窗口(网络堵了)cwnd的最小值。
TCP流量控制和拥塞控制

TCP拥塞控制

出拥塞的条件:
对资源的需求总和 大于 可用资源

网络中有许多资源同时蹭线供应不足 — 网络性能变坏 — 网络吞吐量将随输入负荷增大而下降

拥塞控制和流量控制的区别

拥塞控制 很多发送方都给接收方发送资源 如果他们同时使用网络上的资源或者说节点路由器的话 会使网络非常的繁忙 甚至出现拥塞的情况。
接收方会察觉到这个拥塞的情况,但是接收方不会知道是那几台主机发送数据过快或者发送数据过多造成的。
流量控制 是发送方发送的数据 接收方来不及接受了 他知道找发送方而拥塞控制没有
TCP流量控制和拥塞控制

拥塞控制是为了防止过多的数据注入到网络中 表现出全局性。

拥塞控制的四种算法

慢开始 拥塞避免
快重传 快恢复

假定:
数据单方向发送 另一个方向值传送控制
接收方总是有足够打的缓存空间 因此发送窗口的大小取决于拥塞程度。
发送窗口 = Min(接受窗口 rwnd 拥塞窗口cwnd)

接收窗口和拥塞窗口的区别

TCP流量控制和拥塞控制

慢开始 拥塞避免

TCP流量控制和拥塞控制
拥塞窗口慢慢的变大(从0开始,1-2-4-8-16慢慢的探查),指数规律增长,等到达慢开始的界限值(给定一个初始值)时,由慢开始到拥塞避免,转到增加一个值(16-17-18-19),发生网络拥塞,将拥塞窗口置为1,再慢慢的变大(从0开始,1-2-4-8-16慢慢的探查),指数规律增长,等到达慢开始的界限值(这里的界限值是:发生网络拥塞的值除以2),由慢开始到拥塞避免,转到增加一个值(16-17-18-19)

快重传和快恢复

当收到3个重复的冗余ack时,直接进行快重传
快重传后,执行快恢复, 快恢复不需要降到0,降到发生堵塞的一半,再执行拥塞避免
TCP流量控制和拥塞控制