首页 > 编程知识 正文

tcp拥塞控制算法,TCP使用的流量控制协议是

时间:2023-05-05 07:57:45 阅读:32132 作者:2582

1. TCP流量控制

业务控制是指不怎么加快发送侧的发送速度,使得能够从接收侧进行接收和发送。

原理上要通过检查消息中的窗口字段来控制发送方的发送速率,发送方的发送窗口大小不能超过接收方给出的窗口大小。

考虑到特殊情况,在接收端向发送端发送了零窗口消息段之后,接收端有几个存储区。 接收方和发送方发送了非零窗口的报文段。 但是,这个消息段在传输过程中丢失了。 发送方的发送窗口保持为0时发生了死锁。

为了解决这个问题,每个连接都设置了持续计数器,在连接侧接收到零窗口通知时,持续计数器会启动。 当持续计数器设置的时间期满时,发送零窗口探测消息块,对方确认该探测消息块提供当前窗口值。 如果窗口仍然为零,则接收到该消息段的一方可以复位持久计数器,否则可以消除死锁中的僵局。

2.TCP拥塞控制

拥塞控制:可以防止向网络注入过多数据,并可以使网络中的路由器或链路过载。 如果网络出现拥塞,则数据包将丢失,发送方将继续重新发送,进一步加剧网络拥塞。 因此,在发生拥塞时,需要控制发送方的速度。 这一点类似于流量控制,但出发点不同。 流量控制是为了使接收方能赶上接收(端到端通信),而拥塞控制是为了降低整个网络的拥塞(全局)。

2.1TCP拥塞控制方法

TCP进行拥塞控制的算法有慢启动、拥塞避免、高速重发、高速恢复4种。

发送方使自己的发送窗口等于拥塞窗口,拥塞窗口的大小随网络拥塞程度而动态变化。

数据是单向发送的,对方只发送确认信息。

由于接收方始终有足够的缓存空间,因此发送窗口的大小由网络拥塞决定。

慢启动和避免拥塞

的第一次执行较晚开始,cwnd=1,发送方只能发送一个消息段; 在确认之后,由于cwnd加倍,所以其后发送方能够发送的消息段的数量为2、4、8 .

在cwnd ssthresh (慢启动阈值)的情况下,切换为拥塞避免算法,拥塞避免算法每经过一次往返时间就在cwnd上加1。

如果cwnd=ssthresh,则可以同时使用慢启动和拥塞避免算法。

对于cwnd ssthresh,慢慢开始算法。

网络超时时,ssthresh=cwnd/2,同时设置拥塞窗口cwnd=1。 进入慢启动算法。

2 .快速重传和快速恢复

迅销算法要求接收方立即发送确认,而不是等待自己发送数据后再进行确认。 即使失去顺序的段重复确认发送的段。 发送方在连续收到3个重复确认后必须立即重新发送。 在这种情况下,只会丢失各个消息段,而不是网络拥塞。 因此,执行高速恢复,发送侧调整阈值ssthresh=cwnd/2,并且设定拥塞窗口cwnd=ssthresh,开始拥塞避免算法。

慢启动和快速恢复速度是cwnd的设置,而不是cwnd的增长率。 将慢启动cwnd设置为1,将快速返回cwnd设置为ssthresh。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。