怎么直接用代码做网站永济网站建设

当前位置: 首页 > news >正文

怎么直接用代码做网站,永济网站建设,地产公司做网站维护写代码么6,网络公司排行榜计算机网络#xff1a;运输层 - TCP 流量控制 拥塞控制 滑动窗口流量控制拥塞控制慢开始算法拥塞避免算法快重传算法快恢复算法 滑动窗口 如图所示#xff1a; 在TCP首部中有一个窗口字段#xff0c;该字段就基于滑动窗口来辅助流量控制和拥塞控制。所以我们先讲解滑… 计算机网络运输层 - TCP 流量控制 拥塞控制 滑动窗口流量控制拥塞控制慢开始算法拥塞避免算法快重传算法快恢复算法 滑动窗口 如图所示 在TCP首部中有一个窗口字段该字段就基于滑动窗口来辅助流量控制和拥塞控制。所以我们先讲解滑动窗口。 首先发送方会维护一个发送缓存 应用程序会把想要发送的数据写入到发送缓存中而在发送缓存内部维护一个发送窗口。 发送窗口将发送缓存分为四个部分 当发送方发送数据后就要等待对方确认粉色区域就是发送了但是没有收到确认的区域。当粉色区域的字节收到确认后就会离开滑动窗口进入绿色区域。 蓝色区域的字节是可以发送的但是还没有发送一旦发送了就进入粉色区域等待确认。黄色区域处于发送缓存但不处于发送窗口此时是待发送的数据但是还不能发送。 接收方也会维护一个接收缓存 而接收缓存也被接收窗口划分为了三个部分 在接收窗口内部的数据是允许接收的当接收到一个数据接收到后接收方对其发出确认随后该数据变成绿色部分即已经确认接收的部分。黄色部分则是不允许接收的部分就算收到这个区域的数据也会被丢弃。 滑动窗口的运行模式如下 一开始A发送了313233这三个报文但是31丢失了 由于32和33在接收窗口内可以正常接收但是由于31没有收到此时接收窗口不能往后移动。 随后B发送确认报文确认号为31表示当前收到的最后一个连续报文是31虽然33和34也收到了但是不连续 由于一直没收到31的确认报文A超时重传31 随后B就收到了这三个连续的报文于是接收窗口向后滑动 B又发送确认号为34的报文表示33之前的所有报文都收到了此时A的发送窗口也向后移动 流量控制 流量控制就是让发送方的发送速率不要太快要让接收方来得及接收。其本质是通过控制滑动窗口的大小来实现的。 每个TCP数据报发送时都会在窗口字段填入自己的接收窗口值从而告诉对方最多传送多少数据。 如下一开始B的接收窗口为400 随后A连续发送了三个报文分别是[1, 100][101, 200][201, 300]。而第三个报文丢失了。 随后B发送了一个确认报文此时rwnd就是窗口字段的值表明当前自己的接收窗口是多少。B将rwnd控制为300并告知A 随后A发送了[301, 400][401, 500]并重传了[201, 300]。 此时A计算出到已经发送到对方接收窗口的最大值了不会再发送数据了。 直到B给A发送新的报文将rwnd 100表示可以再发送100个数据 最后B又发送一个rwnd 0的报文表示接下来A不要发送任何数据了 通过这样一个控制接收窗口的过程你会发现A想要发多少数据都由B来控制了这就是流量控制。 拥塞控制 在某段时间内若对网络中某资源带宽、缓存、处理机等的需求超过了该资源所能提供的可用部分网络的性能就要变坏这种情况称为拥塞 (congestion)。 拥塞控制就是防止过多的数据注入到网络中以防网络中的路由器或链路过载。它是一个全局性的过程涉及到所有的主机和路由器。 为了进行拥塞控制发送方维持一个叫做拥塞窗口 cwnd的状态变量。发送窗口的值是拥塞窗口和接收窗口的较小值。本博客为了方便理解假设接收窗口的值一直大于拥塞窗口也就是说发送窗口的值一直和拥塞窗口保持一致。 发送方控制拥塞窗口的原则是 只要网络没有出现拥塞拥塞窗口就可以再增大一些以便把更多的分组发送出去提高网络的利用率。但只要网络出现拥塞依据就是出现了超时拥塞窗口就减小一些以减少注入到网络中的分组数缓解网络出现的拥塞。 TCP进行依赖四种算法满开始拥塞避免快重传和快恢复。 慢开始算法 慢开始算法的思路是 当主机在刚建立的 TCP 连接上发送数据时并不清楚网络当前的状况不宜把大量的数据注入网络而是应当由小到大逐渐增大注入到网络中的数据量即由小到大逐渐增大拥塞窗口的数值。 慢开始算法的规则是 每收到一个确认报文就把cwnd的值增大1 如图所示 首先明确轮次的概念发送方把拥塞窗口所允许发送的报文段都连续发送出去并收到对这些报文段的确认所经历的时间就叫一个轮次。 第一轮次cwnd 1只能发送一个数据接收方收到这个数据后回应一个确认报文。发送方接收到一个回应报文cwnd cwnd 1。 第二轮次发送窗口和cwnd就变成了2此时发送方就可以一次发送两个数据报接收方就回应两个确认报文。发送方接收到两个回应报文cwnd cwnd 2。 第三轮次发送窗口和cwnd就变成了4此时发送方就可以一次发送四个数据报接收方就回应四个确认报文。发送方接收到四个回应报文cwnd cwnd 4。 于是发送窗口和cwnd变为8以此类推。 你会发现处于慢开始阶段cwnd呈指数级增长。为了控制拥塞窗口增加过快此时会设置一个慢开始门限 sstresh 当 cwnd ssthresh 时使用慢开始算法。当 cwnd ssthresh 时停止使用慢开始算法而改用拥塞避免算法。当 cwnd ssthresh 时既可使用慢开始算法也可使用拥塞避免算法。 接下来我们就讲解拥塞避免算法。 拥塞避免算法 拥塞避免算法的思路是让拥塞窗口 cwnd 缓慢地增大规则如下 每经过一个轮次把拥塞窗口 cwnd 值加 1 拥塞避免并非完全避免拥塞而是让拥塞窗口增长得缓慢些使网络不容易出现拥塞。 如图所示 横坐标为轮次纵坐标为cwnd值。当cwnd sstresh时执行慢开始算法此时cwnd呈指数级增长。当cwnd 16 sstresh时改用拥塞避免算法每个轮次cwnd cwnd 1此时呈现线性增长。 无论在慢开始阶段还是在拥塞避免阶段只要发送方判断网络出现拥塞此时就会重新调整cwnd和sstresh规则如下 把 ssthresh 设置为出现拥塞时的拥塞窗口值的一半。然后把拥塞窗口 cwnd 重新设置为 1并执行慢开始算法。 这样做的目的就是要迅速减少主机发送到网络中的分组数使得发生拥塞的路由器有足够时间处理队列中积压的分组。 如图 等到第13个轮次此时某个报文超时重传了于是主机认为此时网络拥塞了于是sshtresh cnwd / 2 12cwnd 1并重新执行慢开始算法。 随后当慢开始执行到cwnd 12时cwnd sstresh由执行拥塞避免了。 慢开始和拥塞避免时1988年提出的TCP拥塞控制算法在1990年由增加了两个算法快重传和快恢复算法。 快重传算法 为了避免单个报文段的意外丢失被发送方误认为网络产生了拥塞同时为了让发送方尽早知道有个别报文段没有按序到达接收方需要应用快重传算法。 快重传算法首先要求接收方每收到一个失序的报文段就立即发出对已收到的报文段的重复确认。当发送方连续收到三个重复的确认时就执行快重传这样就不会出现超时发送方也就不会误认为网络出现了拥塞。 如图 发送方发送M3丢失了如果按照以前的算法此时M3超时重传就会把cwnd 1就要从头开始增长了导致传输效率降低。 于是当接收方收到M4M5M6时都发送M3的确认报文此时发送方连续收到三个M2确认报文立刻重传M3这个重传不算超时重传不会触发网络拥塞的判断条件后续就可以正常传输了。 快恢复算法 发送方在收到三个连续确认报文执行快重传丢失的报文段的同时执行快恢复算法 令拥塞窗口 cwnd 减半并设置慢开始门限 ssthresh 为同样的数值然后开始执行拥塞避免算法使拥塞窗口缓慢地线性增大 如图 这是在没有快恢复和快重传的时候遇到报文丢失后超时重传触发的机制。 而现在如果报文丢失执行快恢复和快重传那么整体恢复速度就很快了 执行快重传的时候sstresh cwnd cwnd / 2 12然后立刻执行拥塞避免此时就可以在很短的时间内恢复到之前的状态了。