拥塞现象的发生和通信子网内传送的分组总数有关,即拥塞控制属于通信子网的全局问题,而流量控制则属于“局部”问题。下面介绍流量控制和预防拥塞的几种主要算法之一:许可证法。许可证法也称定效法方法,是一种全局性的信息流时控制法,属于进网络变量控制。前面提到流量控制发生在数据链路层、网络层和传输层。特别值得注意的是交通控制与流量控制的差异。流量控制只与发送方和接收方之间的点对点线路的通信量有关。......
2023-10-22
1.流量控制和拥塞控制的概念
流量就是计算机网络中通信的数据量,在网络层指的是分组流。任何网络对数据量的处理能力都不是无限的。在网络传输过程中,网络的吞吐量随着输入负荷的增大而下降,当某段时间,通信子网部分区域中通过网络传输的分组数量接近网络的最大分组处理能力时,对网络中某些资源(节点存储容量、CPU处理速度、线路带宽等)的需求超过了该资源所能提供的可用部分,网络的性能就要明显变坏,表现的现象是网络吞吐量随着输入负荷的增大而减小,这种情况叫作“拥塞”。例如,某瞬间分组流同时从多个输入线路涌入交换结点,并且要求从同一输出线路转发到下一节点,就将在路由器缓存中排队,转发延迟加长。如果没有足够的存储空间来保存分组,有些分组就会丢失(路由器溢出)。CPU处理速度慢也将导致拥塞。拥塞是一种持续过载的网络状态,并会导致恶性循环,如发送端因未收到确认而超时重发分组,但路由器却没有空余缓冲区,必然再次丢掉新到来的分组,浪费带宽来转发无用分组。可见,在接收端产生的拥塞反过来会引起发送端缓冲区的拥塞。拥塞严重时会耗尽全部网络资源,网络的吞吐量下降为零,网络瘫痪,产生“死锁”。
所以,为防止拥塞的出现,要对进入通信子网的数据流量进行控制,合理分配通信资源,使网络信道忙闲状态均匀化,以平滑通信量。在通信网内部的某一局部范围,甚至在全局范围内避免发生数据传输堵塞的调度行为称为“拥塞控制”。
在通信子网内部,虚电路方式对于避免拥塞有一定的优势,因为已建立起连接的资源已预留。一旦分组开始到达,所需的带宽和路由器容量便已具有。对于数据报子网来说,由于传输带宽动态分配,不能预先确定,避免拥塞则相对复杂一些。
进行拥塞控制需要付出代价。这首先需要获得网络内部流量分布的信息。在实施拥塞控制时,需要在节点之间交换信息和各种命令,以便选择控制的策略和实施控制,这样就产生了额外的开销。在设计流量控制策略时,必须全面衡量得失。
2.拥塞控制与流量控制的关系
拥塞控制和流量控制既有联系又有差异。
(1)拥塞控制。需要确保通信子网能够承载用户提交的通信量,是一个全局性的过程,涉及所有的主机、所有的交换节点,以及与降低网络传输性能有关的所有因素。
(2)流量控制。往往指在给定的发送端和接收端之间的点对点通信量的控制。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。它是一个局部问题,一般都是基于反馈进行控制的。流量控制可在不同的协议层次上分别予以实现。
总的来说,流量控制是解决“线”或“局部”问题,而拥塞控制是解决子网中“面”或“全局”问题。流量控制可以限制进入网络中的数据流量,可在一定程度上减缓拥塞的发生。但仅解决流量控制问题,并不等于网络的拥塞问题就解决了。当网络上有瓶颈或节点出现故障,就可能导致发生拥塞。
拥塞控制的作用如图7—10所示。
(www.chuimin.cn)
图7—10 拥塞控制的作用
3.拥塞控制方法
因为拥塞是一个动态的问题,所以其控制是一个很复杂的问题。从控制论的角度来看,所有拥塞控制解决方案分为两类:一类是开环策略,另一类是闭环策略。
(1)开环策略。这种策略重在预防,它试图通过良好的初始设计来避免拥塞的发生。精心设计网络的各个环节,事先将可能发生拥塞的所有因素都考虑周全,尽可能避免数据过分集中在某个局部,力求网络在工作时不产生拥塞。如决定何时接受新的通信,何时丢弃分组,以及丢弃那些分组等。所有这些的共同之处在于,它们在做出决定时不能考虑网络当前的实际状况,在网络运行过程中不能进行自动调整,因此很难适应动态的网络流量实际情况。
(2)闭环策略。这种策略重在解决,在拥塞发生后设法控制和缓解拥塞。闭环的解决方案是建立在反馈环路概念之上的。当应用于拥塞控制时,实现这种方法的系统有以下三个组成部分。
①监视系统。检测何时、何地发生了拥塞。在网络中定期收集一些性能参数,一旦参数值超过一定的门限,检测到拥塞的节点立即通知有关节点,以便采取措施。
②反馈系统。将拥塞发生的信息传送到可以采取调整行动的地方,它可以传给源发送端,也可以传给进行转发的交换节点。
③调整系统。根据收到的反馈信息采取相应措施调整网络系统的运行以解决出现的问题。闭环策略又分为“显式反馈”和“隐式反馈”。
A.显式反馈:由拥塞点显式地发送反馈信息给其他采取调节行动的地方。
B.隐式反馈:由源端通过本地的观察来判断是否发生拥塞。当网络开始丢弃数据时,源主机得不到这些数据的确认信息,就判断有拥塞现象出现,源主机高层协议采取自适应的策略来进行调整,减少数据发送量。
有关计算机网络技术基础的文章
拥塞现象的发生和通信子网内传送的分组总数有关,即拥塞控制属于通信子网的全局问题,而流量控制则属于“局部”问题。下面介绍流量控制和预防拥塞的几种主要算法之一:许可证法。许可证法也称定效法方法,是一种全局性的信息流时控制法,属于进网络变量控制。前面提到流量控制发生在数据链路层、网络层和传输层。特别值得注意的是交通控制与流量控制的差异。流量控制只与发送方和接收方之间的点对点线路的通信量有关。......
2023-10-22
实践证明,实现拥塞控制并不容易,它属于动态控制问题。下面介绍TCP 采用的一些拥塞控制方法。引入拥塞窗口cwnd 后,TCP 发送方的最大发送窗口修改为“允许发送方发送的最大数据量为当前拥塞窗口和通告窗口的极小值”。TCP 拥塞控制主要根据网络拥塞状况调节拥塞窗口的大小。拥塞控制可以使这四个机制共同作用,以达到更好的效果。......
2023-10-19
流量控制的概念起源于网络通信。我们假设图9-2中Node 4将报文转发到Node 5的速度低于Node 3发送报文的速度。在这种情况下,Node 4将成为整个传送路径上的瓶颈,无论Node 4中的缓存1和2有多大,总会被填满,从而造成节点拥塞。为了避免这类事件发生,网络中的各个组成部件需要对数据传送进行一定的流量控制,合理地接收和发送报文。而流量控制的作用是合理地管理这两类资源,使这些资源能够被有效利用。......
2023-10-20
在Upstream节点、Current节点和Downstream节点中存在两个VC,下文以其中的一个VC为例,说明如何使用Credit-Based机制进行数据传递。为简便起见,本章仅讨论在单向通路下,Credit-Based流量控制机制的原理与实现。Credit-Based机制需要使用以下参数进行报文传递。Credit-Based流量控制使用的各个参数之间的关系如图9-5所示。Current节点将这个值作为Credit,发送到Upstream节点。......
2023-10-20
假定在一个系统中,一共具有n条VC,而且这几条VC都使用N23算法进行流量控制,那么在使用Static流量控制方式时,该系统一共需要的缓冲大小为×Packet_Size[62]。目前接收缓存的分配常使用两种算法,分别是Sender-Oriented和Receiver-Oriented管理算法。......
2023-10-20
PCIe总线将Header和Data缓存分离有利于Data缓存的合理使用。在PCIe总线中,不同的TLP使用对应缓存的Unit数量也不同,Current节点有时需要两种缓存才能接收一个TLP。这也意味着在PCIe设备的VC中,缓存之间存在依赖关系。报文长度的不确定性为PCIe总线流量控制机制带来了许多难以解决的问题。造成这种现象的主要原因是PCIe总线源于PCI总线,其主要应用来自PC领域而不是通信领域。PCIe总线使用Credit-Based流控机制,Upstream节点在发送TLP时,必须首先获得Cur-rent节点相应缓存的Credit。......
2023-10-20
在控制系统中经常遇到对某项任务需重复执行若干次的情况,这时可使用循环指令。S循环指令由循环开始指令FOR和循环结束指令NEXT组成。假设INIT是1,FINAL是5,每次执行FOR与NEXT之间的指令后,INDX的值加1,并进行INDX与FINAL的比较,如果INDX大于5,则循环终止,FOR和NEXT之间的指令被执行5次。在语句表中,循环指令的指令格式为FOR INDX,INIT,FINAL NEXT。......
2023-06-26
相关推荐