信息通信专业资料应用层组播方案举例(word版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
应用层组播
——应用层组播方案举例
1.引言
组播是网络研究中的一个重要课题。
IP 组播模型是对Internet 基本的“单播、尽力发送”模型的一个重要扩充,它把组播的主要功能都放在路由器上实现。
组播算法的基本出发点是:在存在多个接收者的时候,通过合并重复信息的传输来达到减少带宽浪费和降低服务器处理负担的目的。
在IP 组播方面已经进行了大量的研究,但由于IP 组播在传输技术和管理上存在严重的问题,目前IP 组播没有在Internet 中得到普遍采用。
近年来,随着Peer-to-Peer Network 和Overlay Network 等技术的提出,出现了“应用层组播”(ALM: Application Layer Multicast)这样一个研究方向。
它的主要思想是:保持Internet原有的“单播、尽力发送”模型,尽量不改变原来网络的体系结构,而主要通过增加端系统的功能来实现组播的功能。
由于对网络本身的改变很少,应用层组播具有很好的灵活性。
但是,端系统的稳定性一般不如专用网络设备,应用层组播在带宽利用效率方面也无法和IP组播相比。
另外,应用层组播中的系统框架和很多细节技术也还在研究当中。
这些问题的存在为应用层组播的研究提供了广阔的空间。
媒体编码技术、
Peer-to-Peer 和Overlay Network等技术的发展对应用层组播的研究也有很大的促进作用。
本文的组织如下:在第2 部分中,对应用层组播做一个总体介绍;第3 部分对目前应用层组播中的4个主要算法作详细介绍;在第4 部分中,对现有应用层组播方案的比较和评价。
2.应用层组播介绍
和IP 组播增加网络机制的方法不同,应用层组播的基本思想是保持Internet 原有的简单、不可靠、单播的转发模型,由端系统来实现组播转发的功能。
这也是著名
的”end-to-end
argument”[SRC84]所倡导的思想。
应用层组播的优点:
(1)应用层组播能够很快就进入应用,不需要改变现有网络路由器。
(2)接入控制更容易实现。
由于单播技术在这方面比较成熟,而应用层组播是通过终端系统之间单播来实现的,所以差错控制、流控制、拥塞控制容易实现。
(3)位置分配问题也就可以有相应的解决方案。
应用层组播的缺点:
(1)可靠性:终端系统的可靠性比路由器差。
(2)可扩展性:底层的路由信息对应用层组播来说是隐藏起来的,可扩展性不好。
(3)延迟比较大:IP组播主要是链路上的延迟,而在应用层组播中,数据还要经过终端系统,因而延迟相对要大一点。
(4)传输效率不如IP组播:应用层组播在数据传输过程中会产生数据冗余,因此它们比IP组播的效率差。
基于这些特点,目前应用层组播的研究主要集中于视频会议系统、媒体流的分发系统(如视频广播)和订阅/分发系统(Publish/Subscribe System)等。
应用层组播的主要应用是实时的多媒体传输。
一方面这利用了多媒体信息的性质,即在传输链路质量下降的情况下,用户仍然可以利用收到的低速率的或者不完整的信息,这适用于同一组播组中的多个用户可能接收能力不同的情况。
而文件传输等可靠传输则没有这样的性质。
另一方面也发挥了组播“时间上集中、空间上分布”的特点。
3.应用层组播方案举例
3.1.TAG
TAG(Topology Aware Grouping)算法,由Purdue University提出,是基于Tree-first 采用路径匹配算法构建组播树。
其主要特点是使用底层拓朴结构信息构建应用层的组播树;组成员较多,延迟为首选参数,带宽次之;实时流媒体,在线游戏。
其出发点是:把组播节点之间的拓扑信息用于组播树构造,从而减少报文的转发延迟和在同一链路上重复传递的报文数。
在拓扑测量方面,TAG 将延迟作为最重要的指标,同时考虑带宽。
TAG 在构造组播树时的主要思想是使新加入的节点和父节点能够共用尽可能长的网络路径。
组播tree的构建:
1.成员加入
新节点N发送JOIN消息给根节点S,S收到后计算到N需经过的路由器数(spath),执行路径匹配算法。
会有两种结果:
a)N成为S的子节点,相应的修改S的FT(family table)表,
b)发送FIND消息(包括N的IP位置, spath )到子节点,子节点在执行相应的路
由匹配算法,直到找到N的父节点。
2.成员离开
通过发送LEAVE消息给其父节点。
例如,如果D4要离开,D4发送LEAVE给D1,其中消息中包括D4的FT表。
D1收到LEAVE消息后,D1把D4从其FT表中移走,并且把D4的子节点全部加入到自己的FT表中。
3.节点维护
节点之间定期交换可达消息,当子节点不可达时,父节点将其从FT表中除去;当父节点不可达时,各子节点必须重新发送JOIN消息加入。
成员节点加入的一个具体的实例,见下图figure6
1)D1的加入,D1发送JOIN消息给根节点S,D1成为S的子节点,且修改其FT表2)D2的加入,S根据spath的值(R1,R2,R4)执行路径匹配算法,发现D1作为D2的父节点比其本身要好,于是S发送FIND消息给D1
3)D3的加入,与D2类似,选择D2为其父节点
4)D4的加入,D4加入时,决定D1作为其父节点,D3成为D4的子节点。
更新D1和D4的FT表。
5)D5的加入,与D2,D3的加入类似,选择D4为其父节点。
图(e)给出了整个的多播转发树每个节点的FT表
TAG 通过利用拓扑信息获得了性能上的提高,但是它破坏了网络的分层结构,使应用层获取网络层的信息;另外拓扑的测量和网络性能的测量目前仍是没有很好解决的问题;它所考虑的是在单个会话组成员之间建立组播树,链路利用率不高。
3.2.ALMI
ALMI是美国华盛顿大学St.Louis分校计算机系从2000年开始进行的研究项目,提出了将应用层组播作为端系统基础服务功能的体系结构。
ALMI设计了在操作系统的套接口(socket)之上,以中间件(middleware)的形式向上层应用提供组播服务的结构,中间件实现自组织组网、组播复制和转发功能,在组播成员节点之间组成一个应用层组播网。
ALMI 研究组以Java代码实现了中间件的原型。
ALMI的自组织协议在组成员节点之间建立和维护一棵共享的最小代价生成树(minimum spanning tree),支持组规模较小的多方通信。
ALMI可以针对上层的应用需求构建不同性能的叠加网。
ALMI主要思想:在ALMI中,一个组播组由一个会话控制器和多个组播成员组成。
利用控制器集中对成员的管理和组播树的构造。
会话控制器:是一个程序实体,它运行在所有成员都能访问到的位置,它可以与某个成员运行在同一台计算机上,通常是与组的发起成员在一起,或者位于ISP提供的某个组播服务网关上。
组播成员之间形成一棵组播树。
组播树中的一条链路代表两个成员之间的一条单播连接。
数据信息沿着组播树进行分发,而控制信息则通过会话控制器与各个成员之间的单播连接进行传输。
会话控制器的主要功能:
1. 对加入成员进行注册和维持组播树。
2. 通常放置于成员容易接人的地方。
3. 它保证连接性:当成员加入、离开会话或网络或主机的失效时保证网络的连接性;
保证传输效率:定期从所有成员收集信息计算最小剪枝树。
当有成员要加入组的时候,首先成员定位到控制器,在组初始化的时候控制器已经用不同的方式对会话ID和控制器位置及端口号进行了声明;接着成员就向控制器发送加入消息,并从控制器获得它的ID和父节点的位置;然后该成员就发送嫁接消息给它的父节点,完成后就可以传输数据了。
结构如图:
会话控制器
ALMI控制协议的功能:ALMI利用控制协议在会话控制器和成员之间进行通信;主要负责成员管理,性能监控,路由等工作。
其包头格式如下图:
其中标志位的作用为:连接请求和回应;性能监测信息;分发树信息;邻居监测更新信息;分离信息。
树的表示域,指明树的版本数,可以用来防止组播树的循环和分离。
循环可能的原因,丢失树的更新信息、成员间不同的响应延迟。
ALMI组播树的构造:ALMI组播树是一棵连接所有成员的虚拟最小剪枝树。
它是利用控制器与所有成员用(父,子)表通信结果计算所得的。
可以根据不同的性能指标进行分发树
的构造,如带宽、延迟等。
组播树的优化,成员将它们的监测报告发送给控制器,控制器就可以根据这些信息对分发树进行优化。
ALMI特点:在成员之间维护最小生成树;减小了维护开销,但是维护开销仍然大;无法单独优化从每个源出发的传输开销。
3.3.基于优先度的应用层组播
应用层组播协议(像ALMI,ESM,YOID等)仅仅是利用网络层参数作为建树依据。
在这些协议中,每个节点的优先度是相同的。
在一些应用中的确存在这样的情况,例如:视频点播,视频会议等。
但在其他一些应用却有不同的情况。
如:大规模网络游戏,大规模分布式仿真系统等。
节点在这些系统中由于所处位置不同而具有不同的优先度。
优先度越大的实体则它收到的更新时间越短,也就意味着两个节点之间的路径越短。
而当节点的优先度小时,两个节点之间的路径不是最优,协议会根据优先度选择合适的路径给这两个节点。
它在结构上被分为两部分:
1.起始节点:在系统启动的初级阶段,选定一个节点作为起始节点,它的IP位置通过广
播的方式通知所有别的系统成员。
这个节点一方面记录分布式虚拟环境中所有实体的位置,并不断更新它们的位置,另一方面根据这些实体的位置采用HLA机制,为每个有状态更新的实体确定组播组。
并把组播成员信息发送给这个状态更新实体所在的节点。
它本身不参与数据发送,同时也不参与建树过程。
这样做最大限度的保证了系统的稳定性,一旦起始节点出现异常,也不会影响到整个系统的工作。
仅仅是新的节点无法加入到系统中。
2.发送节点:发送节点就是那些有状态更新的实体所在的节点。
这些节点负责组播树的
构建,它们自身是树的根节点。
在建树过程中,根据从起始节点收到的成员的优先度来构建组播树。
建树的过程:
1.首先由起始节点计算出组播组中成员的优先度。
2.当每个发送实体所在节点接收到组播成员信息和优先度信息时,若实体的优先度等于
1,则它进入到队列1中;若是小于1,则进入到队列2。
采用两个队列的目的是为了方便的构建出基于优先度的组播树。
3.若队列1不为空,则所有队列1中的实体所在节点直接连到发送节点上,而队列2中
的节点会选择队列1中的节点作为其父节点,这一选择是周期性的。
在此不考虑节点的带宽承受能力。
若队列1为空,则队列2中的节点会直接连接到发送节点上。
这样即充分考虑到了实体优先度的作用,同时也充分利用了带宽。
4.随着节点状态的更新,以上算法会重复执行,以保持组播树的有效性。
实例分析:图1给出了虚拟环境中实体的位置情况。
其中A是状态更新实体,而B、C、D在实体A的碰撞区域中,而E、F、G中实体A的发现区域中,所以B、C、D进入队列1中,而E、F、G进入队列2中。
根据图1 而构建的组播树见图2。
图1 实体在分布式虚拟环境中的位置图2 实体A的组播树
此方案的优缺点,那些具有较高优先度的节点会进入到队列1中,因此在建树中会直接连到发送节点上去。
直连表示的路径是最短的,也就是符合了依靠优先度建树的思想。
组播树不会超过3层,同时又是单步建树,所以建树的时间要短于最小生成树。
同YOID一样,这里采用的是单步建树。
但有一点与YOID不同,它不需要循环检测机制,这是由于每个节点都有优先值的原因。
同时优先值大的不会成为优先值小的子节点,所以不可能产生循环的情况。
3.4.三维Delaunary三角网
二维Delaunay三角网
一组节点的Delaunay三角网是指网中的任意三角形的外接圆内不含任何一个组内的其他节点。
图一给出了Delaunay三角网及其部分三角形的外接圆。
计算几何中已经对Delaunay 三角网进行深入的研究,并将其应用于科学和工程的多个领域,包括通信网络。
基于DT的叠加网
Dealunay三角网(DT)的一些特性使其适于应用层组播叠加网的构建。
首先,Delaunay 三角网在任意两节点间有一组可互换的无重复路径。
第二,根据欧拉定律可以证明,Dealunay三角网中每个节点的棱数少,平均每个定点少于六条。
第三,只要拓扑结构一建立,数据包传输信箱即含于节点的坐标中,无须路由协议。
最后,二维平面上的Delaunay 三角网可以分布式的建立并维持。
由于Delaunay三角网具备上述性质,Jorg Liebeherr和Michael Nahas提出DT叠加网。
这里的DT叠加网指的就是网中的每个节点都对应着一个参与组播组的网络终端。
在由叠加网所有节点组成的Delaunay三角网中,如果两个节点相连,那么它们对应的两个实际的节点在DT叠加网中就有逻辑链接,互为邻居。
同时,Jorg Liebeherr和Michael Nahas还设计了基于Delaunay三角网的应用层组播协议――DT应用层组播DT叠加网。
但是,根据与他们的沟通,他们的实验结果并不象我们所期待的那样。
造成此现象的原因是Jorg Liebeherr和Michael Nahas提出并实现的DT应用层组播协议是基于二维空间的,这使得DT叠加网受到其维数的限制,对大规模实际网络的吻合度是有限的。
如果降DT应用层组播协议从二维扩展到多维空间,我们可以期待得到大的性能提升。
基于三维DT的应用层组播实践
DT应用层组播算法,作为一种基于虚拟坐标的联合方式应用层组播协议,需要合理的
方法把实际中存在的这些节点映射到一个虚拟的空间中去,构建叠加网。
根据其构建方法的内在性质选择合适的路由算法构造组播树,用于数据传输。
因此,DT应用层组播协议的实现可以划为“坐标映射,组织拓扑,实现路由”三个阶段。
DT叠加网的构建需要合理的方法把实际中存在的这些节点映射到一个虚拟的空间中去。
虚拟空间中的连接与底层网络之间的对应关系影响网络的效率,因为如何建立逻辑坐标空间,如何进行逻辑坐标的选择是此种方法应用的关键。
实际网络中两点之间的时延作为两点间的距离。
为了能够建立合适的逻辑坐标空间,网络节点之间的距离或者时延起着决定性的作用。
如果能把这种时延信息体现到映射后的虚拟空间中,就会是虚拟空间中的算法执行效果真正体现在实际网络的性能上。
全球网络布局(Global Network Positioning,GNP)作为一种基于坐标的距离预测分布式算法,使得它有利于大规模扩展,适用于为大规模网络的应用层组播叠加网建立提供距离预测服务。
基于三围DT建立叠加网
二维DT网由于其特有的性质,适于应用层组播叠加网的构建。
其中,尤其是二维DT 网中每个顶点的棱数少,平均每个顶点少于六条。
这使得二维DT叠加网无须人为限制即可获得低的节点状态数。
这种情况下,叠加网的每个成员只与有限个(即六个)邻居不断交换更新消息。
由于这些消息构成路由器,链路和组播组成员的控制开销,所以二维DT叠加网控制开销低,这样在一定程度上解决了网络的可扩展性问题。
作为基于空间坐标的应用层组播协议,逻辑坐标空间是否与物理层吻合至关重要。
由于二维DT网受到其维数的限制,对大规模实际网络的吻合度示有限的。
我们选择三维DT 改进应用层组播算法,原因有:
(1)三维DT网作为二维DT网的扩展,具有类似二维DT网的性质,适于应用层组播叠加网的构建。
(2)组播组的各个节点间的传输时延与节点间的距离有着必然的了解,而这些节点示存在与地球这个三维物理空间中的。
旋转路由
作为一种基于坐标的应用层组播叠加网,正如这种混合方法定义指出,对于一个特定的源节点,组播树是由建立的DT网唯一确定的。
DT网的组播和单播实在DT叠加网的生成树的棱上进行的,发送者是树的根节点。
在DT网中,每个节点可以利用自己的坐标,其邻居的坐标和发送者的坐标,参考给定的树的局部地决定它的孩子节点。
节点根据旋转路由作出局部传输决定。
旋转路由的基本创建块是对于根节点R,如果节点B是A的邻居节点中到R的角度最小的节点,那么节点B在生成树上为节点A的父节点。
虽然旋转路由在一般的平面图形中可能形成路由环,但是DT网不存在这个问题。
旋转路由用于确定组播的路由树。
节点可以以分布方式计算它们的孩子节点。
具体而言就是,对于以R作为根节点的生成树,如果棱AC是△ABC和△ACD的分界边,如果节点C 基于节点A到根节点R的角度比节点B,D小,那么节点C就是节点A的孩子节点,就生成了以R为根节点的树。
4.现有应用层组播的比较与评价
本文主要讨论了现有的4类应用层组播方案,首先,分发算法包括Mesh-first方法,Tree-first方法和Implicit方法,这三种算法的优缺点老师均已讲过,这里不再赘述。
其次,集中算法,是以应用层组播的体系结构(ALMI)为例进行介绍,它主要对成员进行集中的管理,针对少量的接收成员情况。
又有,基于优先度的应用层组播。
最后,基于空间坐标的应用层组播,介绍了三维Delaunary三角网。
各种方案都有其优缺点,适用于不同的应用场合,在实际的应用中可以灵活选择,同样可以在原有算法的基础上改进。
由于知识有限,我们只是学习了已有的几种应用层组播方案。
5.总结
由于应用层组播是在应用层实现的,所以它的传输效率没有IP组播好。
为了构造效率的应用层,首要的问题是在覆盖网上构造一个优化的分发拓扑,并进行有效的管理。
我们提出了进一步研究的工作:
(1)可以将IP层和应用层组播结合起来,利用两者各有的优点,如利用IP层的网络拓扑信息,我们可以建立性能较为优化的应用层组播网络拓扑。
(2)可以将应用层组播与P2P结合起来,将对等网络中的路由算法运用到应用层组播中,这样构造的应用层组播一般可以应用于大量的接者。
(3)可以将主动技术应用到应用层组播,利用主动技术我们可以很容易地实现接入控制。
(4)另外,我们还需要对应用层组播上的QoS、拥塞控制、安全机制进行深入的研究。
总之,应用层网络是一个比较新的研究领域,还存在许多的问题,其广阔的发展前景,值得进一步研究。