论文部分内容阅读
近年来,随着信息技术的迅猛发展、网络应用大量增加,使得原来已经存在的庞大的数据传输量成倍增长。而优化带宽是满足数据传输量增长的重要手段。数据传输目前通过两种方式进行传播:单播传输和广播传输。单播传输是传统的点对点数据传输。单播传输流有一个传输方和一个接收方,接收双方需要单独的数据流通道。广播传输则允许一个主机将相同的信息传输到网络内所有其他主机。
面对已经庞大的而且还在不断增长的数据传输业务,这两种传输方式已显出自身的缺陷。一是用户要得到信息必须向信息源节点服务器发送单独的请求,而信息源节点服务器必须向每个用户发送它们自己申请的数据拷贝,势必造成沉重的服务器响应时间过长;二是一个用户如果需要向N个用户广播数据,就必须建立N条连接。节点服务器除必须了解和管理一个接收者的主机地址外,还需要向所有接收者发送多个相同的拷贝,白白地浪费了网络的带宽和发送者自身的资源。
基于单播传输和广播传输的上述情况,人们一直寻求更为灵活的数据传输方式。又由于从一个主机向多个主机传输相同信息的业务在已有业务总量中占据了相当大的比例,因此组播的概念便应运而生。
一、IP组播技术
IP组播技术适用于多点到多点或一点到多点的数据传输业务。其基本原则是IP组播依托于IP协议完成;IP组播强制网络在数据流分布树的分叉处进行信息包复制,而不是由信息源节点多次重复地发送相同的数据包。
1.IP组播模型特征
(1)用户的增加和去除不需要全局协调,加入组播组仅需要为用户设置一个IP组播地址。为了接收数据,用户在特殊IP组播交叉点中进行注册,而不需要知道组中其它用户的情况,路由对用户隐藏了组播实现的细节。
(2)如果组播起源于同一个源,而终止于不同的用户,且携带的数据相同。需要定义一个组播地址,让网络决定如何将源数据流按地址发往组播地址。由网络决定如何在它的链路上组织数据流传输,可以最佳地利用可用带宽。
(3)路由器建立分布树,用于连接组播组所有成员,利用这个分布树,路由器把那些寻址到组播组的IP分组一直转发到具有组播组的成员的网络中,并解决组播路由选择中的回路问题。
(4)发送者使用组播地址发送分组,发送方可以不知道任何接收方的信息,而只需要了解地址。一个组可有任何源。
2.组播路由选择
组播路由选择是网络的一个难题,这个难题的解决需要复杂的有时是难以处理的协议。
单播路由器使用路由协议在路由器间分布信息,以便每一个路由器对网络都有足够的认识。组播路由器在许多方面不同于单播路由选择。首先组播地址指一组目的地。第二,在组播路由选择中不存在子网概念。因此没有与IP组播相联系的本地寻址概念。但是可以用路由器实现。
(1)组播路由选择的两个基本问题
* 目的地址问题
最使人困惑的问题之一是如何让网络知道每个组的每个目的地位置。考查图1所示的有4个路由器的网络,每个路由器都连有某个组播组成员的主机。组中有一个成员发出组播数据,每个主机使用Internet组管理协议与直接相连的路由器通信。
图1 组播转发
当源发送组播分组给它的路由器1时,此路由器将分组转发给网络内的另一个路由器2,路由器2将分组转发给路由器3和与该路由相连接的目的主机。下一跳路由器运行与此相似。结果是每个主机都看到从组播源来的数据流。如果第3和第4个路由器没有任何相连接的主机是组播组成员,第2个路由不知道不应转发分组给其余路由器,造成未加入组播组的地址,也获得了信息,目的地位置不明确。其解决方法是运行Internet组播管理协议(Internet Multicast Manager protocol,IGMP)机制侦听网络以获知网络上哪些节点需要接收组播通信协议。IGMP具有两个功能:将组播成员消息报告给紧接邻域多播路由器;构成主机和路由器的组播群。
IGMP使用通用型组播群进行查阅,获知本地网络上有哪些组播群是和主机相连的并根据与组播群相关的信息获知特定的组播群网络主机,判断网络上哪些节点需要接收组播主机。
* 组播路由回路问题
考虑图2所示的有4个路由器的网络,假设路由器向所有需要组播数据流的路由器或主机所在的接口转发数据流,由于路由器除与主机相连接以外,路由器也相互连接。结果是产生了组播路由选择回路,造成链路的带宽完全消耗在数据流的传输上。
图2 组播路由选择的回路
(2)反向路由转发
反向路由转发(Reverse Path Forwarding,RPF)的基本思想是从每个目的地构建返回到源的最短路径。组播分组转发给所有接口,未用接口除外。如果组播分组抵达的接口不是返回到源端的最短路径,则抛弃该分组。距离矢量组播路由协议(Distance Rector Multicast Rout Protocol,DVMRP),是Internet组播广泛使用的路由协议。DVMRP使用RPF来做出组播通信转发的决定。RPF是防止组播路由选择回路的一种方法。它是这样工作:当路由器收到组播分组时,查看此分组是否在最短返回源路径的接口上。如果不是,则丢弃该分组。如果是,则分组转发到这样的接口,或者路由器。参照图2所示的含有4个路由器的网络,该网络与先前提到的产生路由选择回路的网络相同。如图3,使用RPF后其工作过程如下:
图3 使用RPF的组播转发
* 首先组播源发送一个分组给路由器1,然后路由器1将其转发给路由器2和路由器3。路由器1向两个路由器都转发该分组。因为它们都直接连到组播源的接口上并接收组播分组。
* 路由器2通过它的单播路由选择表确定路由器1是在最接近源的接口上收到的,然后它将分组转发给直接相连的接收方,此接收方用Internet组管理协议加入该组。路由器2也转发分组给路由器4。
* 路由器3,像路由器2一样,用它的单播路由选择表示确定路由器1的分组是在最接近源的接口上收到的。然后,它将分组转发给直接相连的接收方,此接收方用Internet组管理协议加入该组。路由器3也将分组转发给路由器4。
* 路由器4收到路由器2和路由器3的组播分组,它查找路由选择表确定哪一个接口最接近源。路由器4选择了连接到路由器3的接口,即使连到路由器2的接口到源的距离相同,然后路由器4转发组播分组给路由器3和直接相连接的成员。
* 路由器3收到路由器4的组播分组,确定该分组不是在最近组播源的接口上收到的,结果丢弃该分组。
以上详细说明了PRF如何删除出现组播路由选择回路的可能性。
应用IP组播,用户只需发送自己信息的一个拷贝到所有接收者的IP组播地址中,也就是说,不管源主机与多少个用户进行交谈,它只需发送一个数据拷贝,这显然最佳地利用了网络带宽。IP组播还可以大大减少发送服务器的负担。IP组播通过分布树能有效地路由一对多的数据流传输,在这种分布树中,两个路由器之间仅需一条传输路径,数据流只在路径分叉点时才被拷贝。
当某主机希望加该组时,主机发送Internet组管理协议加入报文给了解组播组源的路由器,路由器发送一个距离矢量组播路由协议(DVMRP)嫁接报文以便开始接收必需的组播通信,嫁接报文被发往上行流直到它们找到分布树。此分布树将一个组播中的分组传递给该组成员。就发送者而言,仅需要简单发送一个以相应组播组地址为目的单个IP分组,剩下的工作都由路由器来完成,其规模可以从一个接收者扩展到数个接收者。如果路由器发现所有直接相连的组播主机都离开该组,并且没有下行流路由器依赖于组通信,则路由器发送一个剪枝消息给上行流以关闭通信,发送者根本不同关心组成员的变化。
二、IP组播拥塞控制
IP组播拥塞控制问题的重要性,随着IP组播日益广泛的应用需求而变得越来越重。TCP基于窗口的端到端的拥塞控制对于Internet的稳定性起到了关键性作用,但是,随着Internet迅猛发展,其网络规模越来越庞大,结构日益复杂,仅仅依靠端到端的拥塞控制是不够的,网络必须参与资源的控制工作。
目前IP拥塞控制策略是在路由器中采用包调度算结和缓存管理技术,由此而产生了几种IP处理的方法,现分别介绍如下。
1.先进先出(FIFO)
先进先出提供了基本的存贮转发功能,也是目前Internet使用最广泛的一种方式,它在网络拥塞时存贮分组,在拥塞解除时按分组到达顺序转发分组。是默认的排队方法,因此不需要配置。缺点是不提供QoS功能,对突发数据流在传输时间要求严格时,应用程序会引起过多的延迟,并对突发性的存在包丢失的连接公平性较差,对上层的TCP快速恢复的效率也较低。
2.优先级排队算法(priority Queuing,PQ)
优先排队算法是禁止其它流量的前提下,授权一种类型的流量通过,使用优先级排队给路由接口上传输的数据分配优先级,当有空闲路由时,路由就来回扫描所有队列,将高优先队列数据发出,只有当高优先级队列空了以后,才能为低优先级服务,如果优先级队列满,则扔掉数据包,路由器不处理,优先级排队适用于网络链路不断阻塞的情况。
PQ的带宽分配独立于数据包大小。因此它在没有牺牲统计利用的情况下提供另外的公平性,与端到端的拥塞控制机制可以较好的协同,它的缺点在于实现起来很复杂,需要每个数据流的排队处理,每个流状态统计,数据包的分类以及包调度的额外开销等。
3.定制排队
定制排队是为允许具有不同最低带宽和延迟要求的应用程序共享网络而设计的。定制排队为不同的协议分配不同的队列空间,并以循环方式处理队列。为特定的协议分配较大的队列空间可以提高其优先级。定制排队比优先级更为“公平”。
在可能发生拥塞的地方使用定制排队可以提供保证的带宽。定制排队可以保证为每一个特定的通信类型得到固定部分的可用带宽,同时在链路紧张的情况下,避免数据包企图占用超出予分配量限制的可能。
4.加权公平排队(Weight fair queuing,WFQ)
加权公平排队用于减少延迟变化,为数据流提供可预测的吞吐量和响应时间。目标是为轻载网络用户和重载网络用户提供公平一致的服务。保证低权值的响应时间与高权值的响应时间一致。
加权公平排队是一种基于数据流的排队算法,它能识别交互式应用的数据流,并将应用的数据流调度到队列前部,以减少响应时间。WFQ与定制排队和优先排队不同。能自动适应不断变化的网络通信环境,几乎不需要配置。
5.随机先期检测(random early detection,RED)
前面介绍的排队机制是基本的拥塞控制策略。尽管这些技术对控制拥塞是必须的。但它们对避免拥塞现象的发生都显得无能为力。
随机先期检测监视网上各点的通信负载,如果拥塞增多,就随机丢弃一些分组,当源分布点检测到通信丢失,降低传输速率。RED可以在各连接之间获得较好的公平性,对突出业务适应性较强。
6.加权随机先期检测(weighted random early detection,WRED)
加权随机先期检测是将RED与优先级排队结合起来,这种结合为高优先级分组提供了优先通信处理能力,当某个接口开始出现拥塞时,它有选择地丢弃较低优先级的通信,而不是简单地随机丢弃分组。
总之,在传统TCP拥塞控制中,结合IP层拥塞控制算法,将是完善Internet拥塞控制最有效的途径。