我是靠谱客的博主 微笑铃铛,最近开发中收集的这篇文章主要介绍计算机网络(十九):拥塞控制原理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、拥塞原因与代价:

a、两个发送方和一台具有无穷大缓存的路由器

两台主机(AB)都有一条连接,且这两条连接共享源与目的地之间的单跳路由。假设主机 中的应用程序以λm字节/秒的平均速率将数据发送到连接中。这些数据是初始数据,这意味着每个数据单元仅向套接字中发送一次。下面的运输层协议是一个简单的协议。数据被封装并发送;不执行差错恢复(如重传)、流量控制或拥塞控制。忽略由于添加运输层和较低层首部信息产生的额外开销,在第一种情况下,主机A向路由器提供流量的速率是λin字节/秒。主机B也以同样的方式运行,为了简化问题,我们假设它也是以速率λin字节/秒发送数据。自主机A和主机B的分组通过一台路由器,在一段容量为R的共享式输出链路上传输。该路由器带有缓存,可用于当分组到达速率超过该输出链路的容量时存储“入分组”。在此第一种情况下,我们将假设路由器有无限大的缓存空间。
在这里插入图片描述

当发送速率在0-R/2之间时,接收方的吞吐量等于发送方的发送速率,即发送方发送的所有数据经有限时延后到达接收方。然而当发送速率超过 R/2时,它的吞吐量只能达R/2。
这个吞吐量上限是由两条连接之间共享链路容量造成的。链路完全不能以超过R/2的稳定状态速率向接收方交付分组。无论主机A和主机B将其发送速率设置为多高,它们都不会看到超过R/2的吞吐量。即在这种情况下的时候,限制条件就是单纯的链路的信号传播速率。即当分组的到达这率接近链路容量时,分组经历巨大的排队时延。

b、两个发送方和一台具有有限缓存的路由器

假定路由器缓存的容量是有限的。这种现实世界的假设的结果是,当分组到达一个己满的缓存时会被丢弃。其次,我们假定每条连接都是可靠的,即不会发生在传播中的丢包,只有因为缓存已满的丢包。如果一个包含有运输层报文段的分组在路向器中被丢弃,那么它终将被发送方重传。
此时实现的性能将完全取决于重传的方式。首先,考虑一种不真实的情况,即主机A能够以某种方式确定路由器中的缓存是否空闲,因而仅当缓存空闲时才发送一个分组。在这种情况下,将不会产生丢包。在这种情况下,平均主机发送速率不能超过 R/2。
接下来考虑一种更为真实的情况,发送方仅当在确定了一个分组已经丢失时才重传。即发送方必须执行重传以补偿因为缓存溢出而丢弃(丢失)的分组,这是另一种网络拥塞的代价。即重传的分组会占用一定的链路。
最后,我们考虑下面一种情况:发送方也许会提前发生超时并重传在队列中已被推迟但还未丢失的分组。在这种情况下,初始数据分组和重传分组都可能到达接收方。当然,接收方只需要一份这样的分组副本就行了,重传分组将被丢弃。这里,我们又看到了网络拥塞的另一种代价,即发送方在遇到大时延时所进行的不必要重传会引起路由器利用其链路带宽来转发不必要的分组副本。即由于超时导致某些未发生丢失的分组被重传,从而占用了额外的链路。当假定每个分组被路由器转发(平均)两次时,由于每个分组被转发两次,当其供给载荷接近R/2时,其吞吐量将渐近 R/4.
在这里插入图片描述

c、4个发送方和具有有限缓存的多台路由器及多跳路径

在这里插入图片描述

有4台主机发送分组,每台都通过交叠的两跳路径传输。假设每台主机都采用超时/重传机制来实现可靠数据传输服务,所有的主机都有相同的λin值,所有路由器的链路容量都是R字节/秒。
这个时候牵扯到一个共享路由器的问题,即十字路口,这个时候两条链路是共用共享路由器的缓存空间的,所以对流量产生了更大的限制。
每当有一个分组在第二跳路由器上被丢弃时,第一跳路由器所做的将分组转发到第二跳路由器的工作就是"劳而无功"的。所以,我们在此又看到了由于拥塞而丢弃分组的另一种代价,即当一个分组沿一条路径被丢弃时,每个上游路由器用于转发该分组到丢弃该分组而使用的传输容量最终被浪费掉了。即当一个路由器拥塞导致分组丢失的时候,这个分组传送到该路由器所经历的上游路由器,所占用的链路资源都被浪费了。

2、拥塞控制方法:

a、端到端拥塞控制:

在端到端拥塞控制方法中,网络层没有为运输层拥塞控制提供显式支持。即使网络中存在拥塞,端系统也必须通过对网络行为的观察(如分组丢失与时延)来推断之。TCP必须通过端到端的方法解决拥塞控制,因为IP层不会向端系统提供有关网络拥塞的反馈信息。

b、网络辅助的拥塞控制:

在网络辅助的拥塞控制中,网络层构件(即路由器)向发送方提供关于网络中拥塞状态的显式反馈信息。这种反馈可以简单地用一个比特来指示链路中的拥塞情况。
对于网络辅助的拥塞控制,拥塞信息从网络反馈到发送方通常有两种方式,第一种是,直接反馈信息可以由网络路由器发给发送方。这种方式的通知通常采用了一种阻塞分组的形式,即用一个完整的分组表示拥塞。第二种形式是,路由器标记或更新从发送方流向接收方的分组中的某个字段来指示拥塞的产生,即用一个被标记的分组表示。一旦收到一个标记的分组后,接收方就会向发送方通知该网络拥塞指示。注意到后一种形式的通知至少要经过一个完整的往返时间。

3、ATM ABR拥塞控制:

对于ATM ABR 服务,数据信元(分组)从源经过一系列中间交换机(路由器)传输到目的地。在数据信元中夹杂着所谓的资源管理信元RM信元;这些RM信元可被用来在主机和交换机之间传递与拥塞相关的信息。
当一个RM信元到达目的地时,它将被调转方向并向发送方发送(很可能是在目的地修改了该RM信元的内容之后)
交换机也有可能自己产生一个RM信元,并将该RM信元直接发送给源。
因此,RM信元可用来提供直接网络反馈和经由接收方的网络反馈。
ATM ABR拥塞控制是一种基于速率的方法。即发送方明确地计算出它所能发送的最大速率、并据此对自己进行相应的调整ABR提供三种机制用于从交换机向接收方发送与拥塞相关的信令信息:
①、EFCI比特。每个数据信元都包含1比特的显式转发拥塞指示级EFCI比特。某拥塞的网络交换机可把一个数据信元中的EFCI比特设置为1来向目的主机发送网络已经拥塞的信令。其目的地必须检查所有收到的数据信元中的EFCI比特 当一个RM信元到达目的地时,如果多数近来收到的数据信元的EFCI比特都被置为1,则目的地就会将RM信元的拥塞指示比特( Cl比特)置为1,并将该RM信元发送回发送方。使用数据信元中的EFCI比特和RM信元中的CI比特,发送方因而能在网络交换机拥塞时得到通知。
②、CI和NI比特。发送方到接收方的RM信元是夹杂在数据单元主与中的。RM信元的夹杂比率是一个可调参数,默认值是每32个数据信元中有一个RM元。这些RM信元中有一个拥塞指示(CI)比特和无增长(NI)比特,这两个比特可被一台拥塞的交换机设置。特别是,交换机可以在轻微拥塞时将经过的RM信元中的NI比特置为1,在严重拥塞时,把CI比特置为1。当目的主机收到一个RM信元时,它将把该RM信元发回给发送方,而保持CI和NI比特不变(除了CI比特也许会因为上面描述的EFCI机制而由目的端置为1之外)。
③、ER的设置。每一个RM信元还包含一个两字节的显式速率字段。一个拥塞的交换机也许会降低经过的RM信元中ER字段所包含的值。以这种方式, ER字段将被设置为在源至目的地的路径上的所有交换机中的最小可支持速率。
一个ATM ABR源以返回的RM信元中的CI NI ER值为函数,来调整其发送信元的速率。

最后

以上就是微笑铃铛为你收集整理的计算机网络(十九):拥塞控制原理的全部内容,希望文章能够帮你解决计算机网络(十九):拥塞控制原理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部