拥塞控制

图解拥塞控制,这应该是把拥塞控制讲的最通俗易懂的文章了

时光总嘲笑我的痴心妄想 提交于 2019-12-16 16:35:18
大家可能都听说过 拥塞控制 和 流量控制 ,想必也有一些人可能还分不清拥塞控制和流量控制,进而把他们当作一回事。拥塞控制和流量控制虽然采取的动作很相似,但拥塞控制与网络的拥堵情况相关联,而流量控制与接收方的缓存状态相关联。 也就是说,拥塞控制和流量控制是针对完全不同的问题而采取的措施。今天这篇文章,我们先来讲讲拥塞控制。 一、为何要进行拥塞控制? 为了方便,我们假设主机A给主机B传输数据。 我们知道,两台主机在传输数据包的时候,如果发送方迟迟没有收到接收方反馈的ACK,那么发送方就会认为它发送的数据包丢失了,进而会重新传输这个丢失的数据包。 然而实际情况有可能此时有太多主机正在使用信道资源,导致 网络拥塞 了,而A发送的数据包被堵在了半路,迟迟没有到达B。这个时候A误认为是发生了丢包情况,会重新传输这个数据包。 结果就是不仅浪费了信道资源,还会使网络更加拥塞。因此,我们需要进行 拥塞控制 。 二、如何知道网络的拥塞情况? A 与 B 建立连接之后,就可以向B发送数据了,然而这个时候 A 并不知道此时的网络拥塞情况如何,也就是说,A 不知道一次性连续发送多少个数据包好,我们也把 A 一次性连续发送多少个数据包称之为 拥塞窗口 ,用 N 代表此时拥塞窗口的大小吧。 为了探测网络的拥塞情况,我们可以采取以下 两种策略 : 1、先发送一个数据包试探下,如果该数据包没有发生超时事件

图解拥塞控制,这应该是把拥塞控制讲的最通俗易懂的文章了

落花浮王杯 提交于 2019-12-16 13:47:57
大家可能都听说过 拥塞控制 和 流量控制 ,想必也有一些人可能还分不清拥塞控制和流量控制,进而把他们当作一回事。拥塞控制和流量控制虽然采取的动作很相似,但拥塞控制与网络的拥堵情况相关联,而流量控制与接收方的缓存状态相关联。 也就是说,拥塞控制和流量控制是针对完全不同的问题而采取的措施。今天这篇文章,我们先来讲讲拥塞控制。 一、为何要进行拥塞控制? 为了方便,我们假设主机A给主机B传输数据。 我们知道,两台主机在传输数据包的时候,如果发送方迟迟没有收到接收方反馈的ACK,那么发送方就会认为它发送的数据包丢失了,进而会重新传输这个丢失的数据包。 然而实际情况有可能此时有太多主机正在使用信道资源,导致 网络拥塞 了,而A发送的数据包被堵在了半路,迟迟没有到达B。这个时候A误认为是发生了丢包情况,会重新传输这个数据包。 结果就是不仅浪费了信道资源,还会使网络更加拥塞。因此,我们需要进行 拥塞控制 。 二、如何知道网络的拥塞情况? A 与 B 建立连接之后,就可以向B发送数据了,然而这个时候 A 并不知道此时的网络拥塞情况如何,也就是说,A 不知道一次性连续发送多少个数据包好,我们也把 A 一次性连续发送多少个数据包称之为 拥塞窗口 ,用 N 代表此时拥塞窗口的大小吧。 为了探测网络的拥塞情况,我们可以采取以下 两种策略 : 1、先发送一个数据包试探下,如果该数据包没有发生超时事件

什么是拥塞控制

随声附和 提交于 2019-12-16 09:03:13
什么是拥塞控制,这应该是把拥塞控制讲的最好的文章了 原创 帅地 发布于2019-12-15 18:34:36 阅读数 65 收藏 展开 大家可能都听说过 拥塞控制 和 流量控制 ,想必也有一些人可能还分不清拥塞控制和流量控制,进而把他们当作一回事。拥塞控制和流量控制虽然采取的动作很相似,但拥塞控制与网络的拥堵情况相关联,而流量控制与接收方的缓存状态相关联。 也就是说,拥塞控制和流量控制是针对完全不同的问题而采取的措施。今天这篇文章,我们先来讲讲拥塞控制。 一、为何要进行拥塞控制? 为了方便,我们假设主机A给主机B传输数据。 我们知道,两台主机在传输数据包的时候,如果发送方迟迟没有收到接收方反馈的ACK,那么发送方就会认为它发送的数据包丢失了,进而会重新传输这个丢失的数据包。 然而实际情况有可能此时有太多主机正在使用信道资源,导致 网络拥塞 了,而A发送的数据包被堵在了半路,迟迟没有到达B。这个时候A误认为是发生了丢包情况,会重新传输这个数据包。 结果就是不仅浪费了信道资源,还会使网络更加拥塞。因此,我们需要进行 拥塞控制 。 二、如何知道网络的拥塞情况? A 与 B 建立连接之后,就可以向B发送数据了,然而这个时候 A 并不知道此时的网络拥塞情况如何,也就是说,A 不知道一次性连续发送多少个数据包好,我们也把 A 一次性连续发送多少个数据包称之为 拥塞窗口 ,用 N

浅谈QOS服务访问质量

为君一笑 提交于 2019-12-16 00:10:34
随着网络的发展,互联网流量迅速增加,网络产生拥塞,延时增加,有时还会造成丢包,导致业务质量下降。当网络出现拥塞时,如何保证重要数据的带宽和实时性数据能够快速转发呢? QOS应用需求 1.QOS概述 随着网络的高速发展,接入网络的用户越来越多,网络提供的服务也越来越多。网络普及,业务多样化,使得网络流量迅速增大,导致网络带宽不能满足网络的需求,这时就出现了网络拥塞现象。 由于网络拥塞导致报文产生不能预期的传达,延迟抖动,丢包等现象,将造成业务质量的下降甚至不可使用。为了应对网络拥塞,最直接的方式就是扩大网络带宽,但是由于技术或经济等方面的限制,有时不能通过增加带宽的方法来解决,这时就需要一种技术能够在有限的带宽上保证报文的带宽以免延迟,丢包,这种技术就是QOS技术。 2.网络拥塞 1)网络拥塞的产生 数据从高速端口进入设备,从低速端口转发出去。 流量汇聚,流量由多个端口进入设备,从一个端口转发出去,并且进入设备端口的速率之和大于转发接口的速率。 2)网络拥塞的影响 当网络出现拥塞时,可能对网络造成以下一些影响 报文传输延迟,延迟抖动和丢包率增加 由于过高的延迟和丢包导致报文重传,增加网络负担。 由于网络拥塞,报文重传导致网络的有效吞吐量降低。 3)网络拥塞的解决方法 在无法提高网络带宽的情况下,解决网络拥塞有效的方法是合理利用网络带宽,在网络发生拥塞时

tcp流量控制和拥塞控制的四个算法

本秂侑毒 提交于 2019-12-15 23:54:15
流量控制概念 拥塞控制 慢开始(Slow-Start)和拥塞避免(Congestion Avoidance)结合 拥塞窗口 cwnd ssthresh 快重传(Fast Retransmit)和快恢复(Fast Recovery)结合 3个以上的重复ACK https://blog.csdn.net/seu_calvin/article/details/53198282 来源: 51CTO 作者: WDPQW 链接: https://blog.51cto.com/13747009/2167313

网络拥塞控制介绍

女生的网名这么多〃 提交于 2019-12-11 23:16:12
原理介绍 Linux操作系统中的流量控制器 TC (Traffic Control)用于Linux内核的流量控制,它利用队列规定建立处理数据包的队列,并定义队列中的数据包被发送的方式, 从而实现对流量的控制。TC模块实现流量控制功能使用的队列规定分为两类,一类是无类队列规定, 另一类是分类队列规定。 无类队列规定相对简单,而分类队列规定则引出了分类和过滤器等概念,使其流量控制功能增强。 无类队列规定 是对进入网络设备(网卡) 的数据流不加区分统一对待的队列规定。 使用无类队列规定形成的队列能够 接受数据包以及重新编排、延迟或丢弃数据包。这类队列规 定形成的队列可以对整个网络设备( 网卡) 的流量进行整形, 但不能细分各种情况。 常用的无类队列规定主要有pfifo _fast (先进现出) 、TBF ( 令牌桶过滤器) 、SFQ(随机公平队列) 、ID (前 向随机丢包)等等。这类队列规定使用的流量整形手段主要 是排序、限速和丢包。 分类队列规定 是对进入网络设备的数据包根据不同的需求以分类的方式区分对待的队列规定。 数据包进入一个分类的队列后, 它就需要被送到某一个类中, 也就是说需要对数据包做分类处理。对数据包进行分类的工具是过滤器,过滤器会返回一个决定,队列规定就根据这个决定把数据包送入相应的类进行排队。 每个子类都可以再次使用它们的过滤器进行进一步的分类

深入理解TCP、UDP协议及两者的区别

梦想与她 提交于 2019-12-09 23:39:49
一、TCP协议: 位于传输层, 提供可靠的字节流服务。所谓的字节流服务(Byte Stream Service) 是指, 为了方便传输, 将大块数据分割成以报文段(segment) 为单位的数据包进行管理。 而可靠的传输服务是指, 能够把数据准确可靠地传给对方。 即TCP 协议为了更容易传送大数据才把数据分割, 而且 TCP 协议能够确认数据最终是否送达到对方。所以,TCP连接相当于两根管道(一个用于服务器到客户端,一个用于客户端到服务器),管道里面数据传输是通过字节码传输,传输是有序的,每个字节都是一个一个来传输。 (1)、三次握手:握手过程中使用了 TCP 的标志(flag) —— SYN(synchronize) 和ACK(acknowledgement) 。 第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。 第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。 第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,完成三次握手。 若在握手过程中某个阶段莫名中断, TCP 协议会再次以相同的顺序发送相同的数据包。 (2)、四次挥手

拥塞 Congestion

允我心安 提交于 2019-12-09 19:17:43
拥塞概念 网络中存在太多的数据包导致数据包被延迟或丢弃,从而降低了传输性能 注: 网络层和传输层共同承担着拥塞的责任 拥塞控制和流量控制 1、拥塞控制的任务: 确保网络能够承载所有到达的流量(这个是全局问题,涉及所有主机和路由器) 2、流量控制: 只与特定的发送方和接收方有关 拥塞起因 1、路由器内存不足 2、处理器速度慢 拥塞控制的途径——增加资源或减少负载 来源: CSDN 作者: Lin_SIT 链接: https://blog.csdn.net/gml1997/article/details/103462866

TCP/IP_TCP与UDP

点点圈 提交于 2019-12-06 19:42:35
TCP/IP_TCP与UDP TCP/IP中两个具有代表性的传输层协议,他们分别是TCP和UDP。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。 在IP首部中有一个协议字段,用来标识网络层的上一层所采用的是哪一种传输层协议。根据这个字段的协议号,就可以识别IP传输的数据部分究竟是TCP内容,还是UDP内容。同样传输层的TCP和UDP,为了识别自己所传输的数据部分究竟应该发送给哪个应用,也设定了一个这样的编号。以包裹传递为例,邮递员(IP)根据收件人的地址(目标IP地址)向目的地(计算机)投递包裹(IP数据报)。包裹到达目的地以后由对方(传输层协议)根据包裹信息判断最终的接收人(接收端应用程序): 为了实现这一功能,使用端口号这样一种识别码。根据端口号就可以识别在传输层上一层的应用层中所要进行处理的具体程序。 TCP/IP的众多应用协议大多以客户端/服务端的形式运行,例如对于HTTP连接请求: 这些服务端程序叫做守护进程。在unix中不需要将这些守护进程逐个启动,而是启动一个可以代表他们接收客户端请求的inetd服务程序即可。它是一种超级守护进程,该超级守护进程收到客户端请求以后会fork新的进程并且exec为sshd等各个守护进程。确认一个请求究竟发送给的是哪个服务端,可以通过所收到数据包的目标端口号轻松识别。 端口号 数据链路和IP中的地址

真正能够区分流量控制和拥塞控制区别+原理

…衆ロ難τιáo~ 提交于 2019-12-06 15:27:52
四篇关于流量控制,拥塞控制,滑动窗口,拥塞窗口的参考文章,可以详细阅读,当然在原理方面可能还达不到深入理解的水平,但是对上面试官吹吹水还是没问题的 TCP 滑动窗口和 拥塞窗口 TCP/IP(十一)TCP滑动窗口和拥塞控制 TCP滑动窗口协议及拥塞控制 TCP机制下为什么要同时拥有滑动窗口和拥塞控制窗口? 一、Flow Control 的机制 写在开头:纯属自己看完的感悟,若是不理解,就继续看下文详解 FlowControl:通过 服务端 施加限制条件来抑制缓冲区溢出 Congestion Control:通过 客户端 施加限制条件来抑制缓冲区溢出 流量控制实际上是一种为了考虑和平衡客服端和服务端发送接收数据不同步的情况,如果发送的慢还好,服务端大不了进入空闲等待,只不过浪费了资源,但若是客户端发送数据过快,另服务端读取数据的速度跟不上客服端,导致两端游速度差,这样就会在服务端缓冲区积累大量数据,直至数据溢出,而且由于服务端已经确认过该信号,那么溢出之后就会导致该数据丢失,会对该通信有重大影响。所以呢,就要用flow control机制来限制客服端的数据发送速度,所以一切的问题根源都是来自于服务端,是服务端增加了限制条件,考虑的问题角度是不同的 (说到这里,其实已经发现,对于在服务端积累大量数据这个问题,一种情况是可以由服务端发出限制条件来进行改善