【TCP】网络拥塞

网络拥塞通常发生在接收端无法处理过多数据包时。通过RTT(往返时间)及其抖动来判断拥塞,当RTT显著增加或出现不稳定时,可能表明网络拥塞。解决策略包括慢启动,逐渐增加发送速率,以及避免拥塞,当出现拥塞时减半发送速率。此外,TCP的滑动窗口机制和接收方的WindowSize指示有助于管理发送速率,防止过度拥塞。
摘要由CSDN通过智能技术生成

什么是网络拥塞

随着网络的发展,网络服务越来越多,热门的网络服务将会面临xxxx
好吧,这个有些 扯淡了,一句白话描述:
接收端接受的包太多,造成了接受时候网络拥堵,此为网络拥塞

如何判断如何网络拥塞

RTT

计算超时,从TCP的三次握手开始,一次往返数据所用时间我们名之为RTT

抖动

由于网络环境的突然变化,比如从开阔地进入电梯、地下车库时候网络质量急剧下降,这个时候RTT理论上将会急剧身高,但是这是不公平的,因为是暂时的网络变差,而非一直差,这个短暂的信号变差,称之为抖动
出现抖动,我们应该需要消抖
消抖方式:

RTT=0.9*RTT_OLD + 0.1*RTT_NEW

什么时候认为出现了网络拥塞

当RTT值变得特别高的时候

网络拥塞的解决方案

在这里插入图片描述

慢启动

上图虽然画的很不走心,但是还是可以用用的,
虚线前半段是慢启动的过程
也就是说,刚开始发送TCP包的时候,我们将会将之从1个包开始急剧增加,可能1个包正常发出去后发两个包,还是没有问题发送4个包,还是没有问题发送8个包,这种指数形式的增长方式是慢启动时候的情况。

避免拥塞

当慢启动达到了某个阈值,我们需要放缓发包的速度,成线性增长发包,是处于避免拥塞的流程。
当出现了拥塞,也就是出现了RTT极高的时候,我们将发包数量将为之前的一半,以此减少网络压力

通知发包方

  1. 之前写的TCP/IP协议一文中,有介绍到,TCP包头中有Window Size字段知识接受方能够接受的剩余大小。发包方将根据这一值判断是否延缓发送数据包
  2. 由于接收方已经明确告知了发包方当前没有空间接收数据。那么发包方为了能够继续发送后续的包,将会启动探测定时器,每隔一段时间发送一个探测包,来轮询接收方的Window Size。

滑动窗口

服务器接收TCP数据包,由于网络拥塞或者其他原因,可能先发的数据包后到,后发的数据包先到,为了将数据包能够完美的序列化,而且不至于占用太多的内存资源,开出滑动窗口这一概念。
在这里插入图片描述
如上图,是一个窗口大小为6个包长的滑动窗口,发送方发送9个包,接收方将在该窗口内所有包都接收到后,向后滑动,直至该窗口内数都接收到,继续后移。
如此可以减少同一时间端内发送方发送的包的数量。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值