华强北网站建设,手机网站外链,国外做网站被动收入,网站建设的 几点前言#xff1a; 学习视频#xff1a;中科大郑烇、杨坚全套《计算机网络#xff08;自顶向下方法 第7版#xff0c;James F.Kurose#xff0c;Keith W.Ross#xff09;》课程 该视频是B站非常著名的计网学习视频#xff0c;但相信很多朋友和我一样在听完前面的部分发现信… 前言 学习视频中科大郑烇、杨坚全套《计算机网络自顶向下方法 第7版James F.KuroseKeith W.Ross》课程 该视频是B站非常著名的计网学习视频但相信很多朋友和我一样在听完前面的部分发现信息量过大有太多无法理解的地方在我第一次点开的时候也有相同的感受但经过了一段时间项目的学习对计网有了更多的了解所以我准备在这次学习的时候做一些记录并且加入一些我的理解希望能够帮助到大家。 往期笔记可以看专栏中的内容 文章目录 3.6 拥塞控制原理3.6.1 什么是拥塞3.6.2 拥塞的原因 / 代价1 场景 1理想情况 - 无限缓冲区2 场景二 - 有限缓冲区3 场景三 - 网络死锁的情况 3.6.3 两种拥塞控制的方法3.6.4 案例 - ATM ABR 拥塞控制 3.7 TCP 拥塞控制3.7.1 拥塞控制要解决的几个问题3.7.2 拥塞感知3.7.3 速率控制方法3.7.4 TCP 拥塞控制3.7.5 总结TCP 拥塞控制3.7.6 TCP 的公平性 3.6 拥塞控制原理
3.6.1 什么是拥塞 当 网络中的流量 超过了网络资源的处理能力时就会发生拥塞导致数据包丢失、延迟增加和带宽利用率下降。 拥塞是指网络中出现了过多的数据流量导致网络设备如路由器、交换机无法及时处理所有传入的数据包进而 导致缓冲队列溢出丢包等问题。 3.6.2 拥塞的原因 / 代价
1 场景 1理想情况 - 无限缓冲区 这里探讨的是理论化的情况 假设有两个发送端和两个接收端有一个路由器其输出缓冲区无限大也就是不会存在丢失的情况输出链路的带宽为 R且不考虑输入时处理的情况。 且在 TCP 的情况下会 尽可能的让 每个连接分到的带宽相同所以这里假设这两个连接 平分 带宽也就是每个连接能够达到的最大带宽为 R / 2。 且发送方 不会重传。 有了这些先决条件来看看连接的吞吐量和延迟 吞吐量Throughput是指在单位时间内通过网络或系统的数据量或信息量。 当进入的速率总和达到 R 的时候排队延迟会趋向无穷大因为带宽是理论上可达到的最大速率但实际是不可能实现的所以队列会一直累计但因为队列是无线大的分组并不会 丢失 且发送方不会重传所以有效的泵出和输入是相等的。
2 场景二 - 有限缓冲区 这里讨论的是偏向于现实的情况 缓冲区不是无限的分组会丢失 发送方会因为超时而重发分组 当泵入的数据量不断的增大由于延迟的增大会触发重传机制这就导致有效的泵入逐渐减少会包含很多重发的泵入这也就导致了有效泵出的减少。
最终呈现出来的图像是这样的 这也就导致了发送方需要大量的重发才能保证有效的泵入。比如说为了达到 1.0 的泵出量有可能需要 1.2 的泵入量如果不加以控制的话会导致重发越来越多拥塞的程度也越来越大是一个 正反馈的情况。
3 场景三 - 网络死锁的情况 四个发送端 且 存在超时重传机制 多重路径 当红色的泵入增加的时候蓝色的泵入在最上方的路由中被抛弃了因为它到该路由多一跳到达的更慢同理其他的各个路由器都会由于这种情况而形成阻塞。最终导致网络的整体泵出量为 0达到一个死锁的情况。
3.6.3 两种拥塞控制的方法 端到端的拥塞控制没有来自网络的直接显示其拥塞状况的信息系统根据延迟和丢失的时间来判断网络的拥塞程度比如 TCP 的快速重发当 TCP 收到三个冗余 ACK 的时候就说明分组可能丢失了这时候就可以降低发送速率这也是 TCP 采用的拥塞控制方法。 网络辅助的拥塞控制即发送端可以接收到网络关于其拥塞程度的反馈这样做拥塞控制就会简单很多比如下面提到的 ATM 网络。
3.6.4 案例 - ATM ABR 拥塞控制 ATMAsynchronous Transfer Mode异步传输模式不是取款机大悲 ABRAvailable Bit Rate可用比特率是一种ATM异步传输模式网络中的一种拥塞控制服务类型。这种服务会根据网络的拥塞程度动态调整数据传输速率以确保网络中的可用带宽得到最佳利用同时避免网络拥塞和数据丢失。 在这种网络结构上传输的数据称为 信元信元中有一种特殊的信源为 RM资源管理信元其由发送端发送在数据信元中间隔插入。
当经过交换机时交换机会根据自己目前的状况来调整资源管理信元的信息
NI bitno increase in rate 轻微拥塞的时候请求速率不要再增加CI bitcongestion indication 拥塞指示表示该路由器出现拥塞应该减小到最小速率。
接收端接收到数据信元后将 RM 信元直接返回 不做任何改变接收端收到后就可以知道这条通路中的拥塞情况。
3.7 TCP 拥塞控制
3.7.1 拥塞控制要解决的几个问题 端到端的拥塞控制机制路由器不会向端主机提供拥塞的相关信息
这样的好处是会降低路由器的负担符合是网络核心简单的 TCP/IP 架构原则端系统根据自己得到的信息来判断是否发生拥塞从而采取动作
❓ 拥塞控制需要解决的问题
如何检测是否出现拥塞和拥塞的程度如何在拥塞的时候发送应该采取什么策略来降低在拥塞缓解的时候如何增加速率来保证信息交换的速度
3.7.2 拥塞感知 既然路由器不提供拥塞情况那发送端如何得知是否产生拥塞呢 当某个段超时的时候说明网络在传输过程中丢失了
原因一由于路由器队列已满出现丢弃的情况原因二传输过程中出现了乱序的情况导致信息没有通过校验而被丢失由于第二种情况相较于第一种情况出现频率低很多所以对拥塞控制产生的影响不大 当出现三个冗余的 ACK 的时候也可以说明分组被丢失
3.7.3 速率控制方法 拥塞窗口Congestion Window简称CongWin是TCP拥塞控制算法中的一个重要概念用于控制发送方发送数据的速率以便避免网络拥塞和提高网络性能。 拥塞窗口的大小是由 TCP 拥塞控制算法 动态 调整的。 超时的时候拥塞窗口变为 1MSS进入 SS 阶段然后倍增到拥塞窗口的一半后进入 CA 阶段
当收到三个冗余的 ACK拥塞窗口变为一半再次进入 CA 阶段 当正常收到 ACK 没有发生以上两种情况的时候
SS 阶段Slow Start慢启动阶段每个往返延迟RTT成倍增加发送报文量CA 阶段Congestion Avoidance拥塞避免阶段每个 RTT 只会增加一个单位 在这里有一个基本的概念即可后面会详细讲述 TCP 拥塞控制的整个流程。 TCP 流量控制和拥塞控制是一个 联合的动作即发送时要同时满足这两个的要求 3.7.4 TCP 拥塞控制 慢启动Slow Start阶段 当连接建立或者网络从拥塞中恢复时拥塞窗口被初始化为一个较小的值通常为一个 MSS。在慢启动阶段发送方逐渐增加拥塞窗口的大小。每当收到一个确认 ACK 时拥塞窗口大小就会加倍这样拥塞窗口呈指数增长。 这样做的目的是快速 探测 网络的可用带宽以便尽快利用网络资源。 拥塞避免阶段
当拥塞窗口大小大于阈值的时候就会进入拥塞避免的阶段此时每一个 RTT 拥塞窗口加 1而不是像慢启动一样成倍的增加的增加拥塞避免阶段就是在临界值上进行试探直到出现了冗余 ACK 或者丢失的情况 快速重传和超时重传 当出现快速重传的时可以推断出网络出现了轻微的拥塞此时将拥塞窗口减半继续进行 CA 阶段如果出现超时则说明拥塞情况较差此时将阈值设定为发生拥塞时窗口值的一半同时拥塞窗口被设定为 1 MSS进行 SS 阶段。如上图中的红色部分就代表了发生超时进行慢启动其余部分均为冗余 ACK 导致的拥塞窗口减半。 在这个流程中影响的因素主要是阈值和超时以及冗余 ACK搞清楚对于这三种情况如何处理即可梳理好整个流程 阈值是慢启动和拥塞避免的分水岭超时会导致从慢启动开始且会导致阈值的调整冗余 ACK 会导致拥塞窗口的减少 由于慢启动在整个流程中所占的时间较短所以整体是呈现锯齿状的即由于冗余 ACK 的作用导致的拥塞窗口减半。 3.7.5 总结TCP 拥塞控制 名词解释 CongWinCongestion Window拥塞窗口Threshold阈值 当 CongWin CongWin 发送端处于 慢启动 阶段窗口指数增长 当 CongWin CongWin发送端处于 拥塞避免 阶段窗口线性增长 当收到三个重复 ACK的时候Threshold 设置成 CongWin / 2CongWin Threshold 3 当超时时间发生的时候Threshold CongWin / 2CongWin 1 MSS进入 SS 阶段 补充TCP 的吞吐量TCP 的平均吞吐量可以用窗口尺寸和 RTT 来近似的描述 假设发生丢失的时候窗口尺寸是固定的 平均窗口尺寸 1 / 2 W W 3 / 4 W 平均窗口尺寸 1 / 2 W W 3 / 4 W 平均窗口尺寸1/2WW3/4W 吞吐量等于上述值除以 RTT 3.7.6 TCP 的公平性 公平性目标如果 K 个 TCP 绘画共享一个链路带宽为 R 的瓶颈每个会话分到的有效带宽均为 R / K。 TCP 通过其拥塞控制可以实现相对的公平性 上图中紫色的线代表带宽即链接一所占的带宽加上链接二所占的带宽等于总带宽也即出现拥塞的时候。
左下角的红色线很明显可以看出来当到达拥塞的时候 链接一 所占有的资源多因为拥塞窗口为对半减少这样就代表 占有资源多的一方减半时候损失的也就越多这样会逐渐靠近虚线也就是连接一所占的带宽等于连接二所占的带宽的情况这样就达到了公平性