随着全球互联网(Internet)的迅猛发展,上网人数正以几何级数快速增长,以因特网技术为主导的数据通信在通信业务总量中的比列迅速上升,因特网业务已成为多媒体通信业中发展最为迅速、竞争最为激烈的领域。Internet网络传输和处理能力的大幅提高,使得网上应用业务越来越多,非凡是视音频压缩技术的发展和成熟,使得网上视音频业务成为Internet网上最重要的业务之一。
在Internet上实现的视频点播(VOD)、可视电话、视频会议等视音频业务和一般业务相比,有着数据量大、时延敏感性强、持续时间长等特点。因此采用最少时间、最小空间来传输和解决视音频业务所要求的网络利用率高、传输速度快、实时性强的问题,就要采用不同于传统单播、广播机制的转发技术及QoS服务保证机制来实现,而IP多播技术是解决这些问题的要害技术。
一、IP多播技术的概念
IP多播(也称多址广播或组播)技术,是一种答应一台或多台主机(多播源)发送单一数据包到多台主机(一次的,同时的)的TCP/IP网络技术。多播作为一点对多点的通信,是节省网络带宽的有效方法之一。在网络音频/视频广播的应用中,当需要将一个节点的信号传送到多个节点时,无论是采用重复点对点通信方式,还是采用广播方式,都会严重浪费网络带宽,只有多播才是最好的选择。多播能使一个或多个多播源只把数据包发送给特定的多播组,而只有加入该多播组的主机才能接收到数据包。目前,IP多播技术被广泛应用在网络音频/视频广播、AOD/VOD、网络视频会议、多媒体远程教育、“push”技术(如股票行情等)和虚拟现实游戏等方面。
二、IP多播技术的基础知识
1. IP多播地址和多播组
IP多播通信必须依靠于IP多播地址,在IPv4中它是一个D类IP地址,范围从224.0.0.0到239.255.255.255,并被划分为局部链接多播地址、预留多播地址和治理权限多播地址三类。其中,局部链接多播地址范围在224.0.0.0~224.0.0.255,这是为路由协议和其它用途保留的地址,路由器并不转发属于此范围的IP包;预留多播地址为224.0.1.0~238.255.255.255,可用于全球范围(如Internet)或网络协议;治理权限多播地址为239.0.0.0~239.255.255.255,可供组织内部使用,类似于私有IP地址,不能用于Internet,可限制多播范围。
使用同一个IP多播地址接收多播数据包的所有主机构成了一个主机组,也称为多播组。一个多播组的成员是随时变动的,一台主机可以随时加入或离开多播组,多播组成员的数目和所在的地理位置也不受限制,一台主机也可以属于几个多播组。此外,不属于某一个多播组的主机也可以向该多播组发送数据包。
2.多播分布树
为了向所有接收主机传送多播数据,用多播分布树来描述IP多播在网络中传输的路径。多播分布树有两个基本类型:有源树和共享树。
有源树是以多播源作为有源树的根,有源树的分支形成通过网络到达接收主机的分布树,因为有源树以最短的路径贯穿网络,所以也常称为最短路径树(SPT)。共享树以多播网中某些可选择的多播路由中的一个作为共享树的公共根,这个根被称为汇合点(RP)。共享树又可分为单向共享树和双向共享树。单向共享树指多播数据流必须经过共享树从根发送到多播接收机。双向共享树指多播数据流可以不经过共享树。
3.逆向路径转发
逆向路径转发(RPF)是多播路由协议中多播数据转发过程的基础,其工作机制是当多播信息通过有源树时,多播路由器检查到达的多播数据包的多播源地址,以确定该多播数据包所经过的接口是否在有源的分支上,假如在,则RPF检查成功,多播数据包被转发;假如RPF检查失败,则丢弃该多播数据包。
4.Internet多播主干(MBONE)网络
Internet多播主干(MBONE)网络是由一系列相互连接的子网主机和相互连接支持IP多播的路由器组成。它可以看成是一个架构在Internet物理网络上层的虚拟网,在该虚拟网中,多播源发出的多播信息流可直接在支持IP多播的路由器组之间传输,而在多播路由器组和非多播路由器组之间要通过点对点隧道技术进行传输。
三、IP多播路由及其协议
1. IP多播路由的基本类型
多播路由的一种常见的思路就是在多播组成员之间构造一棵扩展分布树。在一个特定的“发送源,目的组”对上的IP多播流量都是通过这个扩展树从发送源传输到接受者的,这个扩展树连接了该多播组中所有主机。不同的IP多播路由协议使用不同的技术来构造这些多播扩展树,一旦这个树构造完成,所有的多播流量都将通过它来传播。
根据网络中多播组成员的分布,总的说来IP多播路由协议可以分为以下两种基本类型。第一种假设多播组成员密集地分布在网络中,也就是说,网络大多数的子网都至少包含一个多播组成员,而且网络带宽足够大,这种被称作“密集模式”(Dense-Mode)的多播路由协议依靠于广播技术来将数据“推”向网络中所有的路由器。密集模式路由协议包括距离向量多播路由协议(DVMRP:Distance Vector Multicast Routing Protocol)、多播开放最短路径优先协议(MOSPF:Multicast Open Shortest Path First)和密集模式独立多播协议(PIM-DM:Protocol-Independent Multicast-Dense Mode)等。
多播路由的第二种类型则假设多播组成员在网络中是稀疏分散的,并且网络不能提供足够的传输带宽,比如Internet上通过ISDN线路连接分散在许多不同地区的大量用户。在这种情况下,广播就会浪费许多不必要的网络带宽从而可能导致严重的网络性能问题。于是稀疏模式多播路由协议必须依靠于具有路由选择能力的技术来建立和维持多播树。稀疏模式主要有基于核心树的多播协议(CBT:Core Based Tree)和稀疏模式独立协议多播(PIM-SM:Protocol-Independent Multicast-Sparse Mode)。
2.密集模式协议
(1)距离向量多播路由协议 (DVMRP)
第一个支持多播功能的路由协议就是距离向量多播路由协议。它已经被广泛地应用在多播骨干网MBONE上。
DVMRP为每个发送源和目的主机组构建不同的分布树。每个分布树都是一个以多播发送源作为根,以多播接受目的主机作为叶的最小扩展分布树。这个分布树为发送源和组中每个多播接受者之间提供了一个最短路径,这个以“跳数”为单位的最短路径就是DVMRP的量度。当一个发送源要向多播组中发送消息时,一个扩展分布树就根据这个请求而建立,并且使用“广播和修剪”的技术来维持这个扩展分布树。
扩展分布树构建过程中的选择性发送多播包的具体运作是:当一个路由器接收到一个多播包,它先检查它的单播路由表来查找到多播组发送源的最短路径的接口,假如这个接口就是这个多播包到达的接口,那么路由器就将这个多播组信息记录到它的内部路由表(指明该组数据包应该发送的接口),并且将这个多播包向除了接受到该数据包的路由器以外的其他临近路由器继续发送。假如这个多播包的到达接口不是该路由器到发送源的最短路径的接口,那么这个包就被丢弃。这种机制被称为“反向路径广播”(Reverse-Path Broadcasting)机制,保证了构建的树中不会出现环,而且从发送源到所有接受者都是最短路径。
对子网中密集分布的多播组来说DVMRP能够很好的运作,但是对于在范围比较大的区域上分散分布的多播组来说,周期性的广播行为会导致严重的性能问题。DVMRP不能支持大型网络中稀疏分散的多播组。
(2)多播开放最短路径优先 (MOSPF)
开放最短路径优先(OSPF)是一个单播路由协议,它将数据包在最小开销路径上进行路由传送,这里的开销是表示链路状态的一种量度。除了路径中的跳数以外,其他能够影响路径开销的网络性能参数还有负载平衡信息、应用程序需要的QoS等。
MOSPF是为单播路由多播使用设计的。MOSPF依靠于OSPF作为单播路由协议,就象DVMRP也包含它自己的单播协议一样。在一个OSPF/MOSPF网络中每个路由器都维持一个最新的全网络拓扑结构图。这个“链路状态”信息被用来构建多播分布树。
每个MOSPF路由器都通过IGMP协议周期性的收集多播组成员关系信息。这些信息和这些链路状态信息被发送到其路由域中的所有其他路由器。路由器将根据它们从临近路由器接收到的这些信息更新他们的内部连接状态信息。由于每个路由器都清楚整个网络的拓扑结构,就能够独立的计算出一个最小开销扩展树,将多播发送源和多播组成员分别作为树的根和叶。这个树就是用来将多播流从发送源发送到多播组成员的路径。
(3)独立多播密集模式协议(PIM-DM)
独立多播协议(PIM)是一种标准的多播路由协议,并能够在Internet上提供可扩展的域间多播路由而不依靠于任何单播协议。PIM有两种运行模式,一种是密集分布多播组模式,另一个是稀疏分布多播组模式,前者被称为独立多播密集模式协议(PIM-DM),后者被称为独立多播稀疏模式协议(PIM-SM)。
PIM-DM有点类似于DVMRP,这两个协议都使用了反向路径多播机制来构建分布树。它们之间的主要不同在于PIM完全不依靠于网络中的单播路由协议而DVMRP依靠于某个相关的单播路由协议机制,并且PIM-DM比DVMRP简单。
PIM-DM协议和所有的密集模式路由协议一样也是数据驱动的。但是既然PIM-DM不依靠于任何单播路由协议,路由器某个接收端口(就是返回到源的最短路径的端口)接收到的多播数据包被发送到所有下行接口直到不需要的分枝从树中被修剪掉。DVMRP在树构建阶段能够使用单播协议提供的拓扑数据有选择性的向下行发送数据包,PIM-DM则更加倾向于简单性和独立性,甚至不惜增加数据包复制引起的额外开销。
更多的请看:http://www.QQread.com/windows/2003/index.Html
随着全球互联网(Internet)的迅猛发展,上网人数正以几何级数快速增长,以因特网技术为主导的数据通信在通信业务总量中的比列迅速上升,因特网业务已成为多媒体通信业中发展最为迅速、竞争最为激烈的领域。Internet网络传输和处理能力的大幅提高,使得网上应用业务越来越多,非凡是视音频压缩技术的发展和成熟,使得网上视音频业务成为Internet网上最重要的业务之一。
在Internet上实现的视频点播(VOD)、可视电话、视频会议等视音频业务和一般业务相比,有着数据量大、时延敏感性强、持续时间长等特点。因此采用最少时间、最小空间来传输和解决视音频业务所要求的网络利用率高、传输速度快、实时性强的问题,就要采用不同于传统单播、广播机制的转发技术及QoS服务保证机制来实现,而IP多播技术是解决这些问题的要害技术。
一、IP多播技术的概念
IP多播(也称多址广播或组播)技术,是一种答应一台或多台主机(多播源)发送单一数据包到多台主机(一次的,同时的)的TCP/IP网络技术。多播作为一点对多点的通信,是节省网络带宽的有效方法之一。在网络音频/视频广播的应用中,当需要将一个节点的信号传送到多个节点时,无论是采用重复点对点通信方式,还是采用广播方式,都会严重浪费网络带宽,只有多播才是最好的选择。多播能使一个或多个多播源只把数据包发送给特定的多播组,而只有加入该多播组的主机才能接收到数据包。目前,IP多播技术被广泛应用在网络音频/视频广播、AOD/VOD、网络视频会议、多媒体远程教育、“push”技术(如股票行情等)和虚拟现实游戏等方面。
二、IP多播技术的基础知识
1. IP多播地址和多播组
IP多播通信必须依靠于IP多播地址,在IPv4中它是一个D类IP地址,范围从224.0.0.0到239.255.255.255,并被划分为局部链接多播地址、预留多播地址和治理权限多播地址三类。其中,局部链接多播地址范围在224.0.0.0~224.0.0.255,这是为路由协议和其它用途保留的地址,路由器并不转发属于此范围的IP包;预留多播地址为224.0.1.0~238.255.255.255,可用于全球范围(如Internet)或网络协议;治理权限多播地址为239.0.0.0~239.255.255.255,可供组织内部使用,类似于私有IP地址,不能用于Internet,可限制多播范围。
使用同一个IP多播地址接收多播数据包的所有主机构成了一个主机组,也称为多播组。一个多播组的成员是随时变动的,一台主机可以随时加入或离开多播组,多播组成员的数目和所在的地理位置也不受限制,一台主机也可以属于几个多播组。此外,不属于某一个多播组的主机也可以向该多播组发送数据包。
2.多播分布树
为了向所有接收主机传送多播数据,用多播分布树来描述IP多播在网络中传输的路径。多播分布树有两个基本类型:有源树和共享树。
有源树是以多播源作为有源树的根,有源树的分支形成通过网络到达接收主机的分布树,因为有源树以最短的路径贯穿网络,所以也常称为最短路径树(SPT)。共享树以多播网中某些可选择的多播路由中的一个作为共享树的公共根,这个根被称为汇合点(RP)。共享树又可分为单向共享树和双向共享树。单向共享树指多播数据流必须经过共享树从根发送到多播接收机。双向共享树指多播数据流可以不经过共享树。
3.逆向路径转发
逆向路径转发(RPF)是多播路由协议中多播数据转发过程的基础,其工作机制是当多播信息通过有源树时,多播路由器检查到达的多播数据包的多播源地址,以确定该多播数据包所经过的接口是否在有源的分支上,假如在,则RPF检查成功,多播数据包被转发;假如RPF检查失败,则丢弃该多播数据包。
4.Internet多播主干(MBONE)网络
Internet多播主干(MBONE)网络是由一系列相互连接的子网主机和相互连接支持IP多播的路由器组成。它可以看成是一个架构在Internet物理网络上层的虚拟网,在该虚拟网中,多播源发出的多播信息流可直接在支持IP多播的路由器组之间传输,而在多播路由器组和非多播路由器组之间要通过点对点隧道技术进行传输。
三、IP多播路由及其协议
1. IP多播路由的基本类型
多播路由的一种常见的思路就是在多播组成员之间构造一棵扩展分布树。在一个特定的“发送源,目的组”对上的IP多播流量都是通过这个扩展树从发送源传输到接受者的,这个扩展树连接了该多播组中所有主机。不同的IP多播路由协议使用不同的技术来构造这些多播扩展树,一旦这个树构造完成,所有的多播流量都将通过它来传播。
根据网络中多播组成员的分布,总的说来IP多播路由协议可以分为以下两种基本类型。第一种假设多播组成员密集地分布在网络中,也就是说,网络大多数的子网都至少包含一个多播组成员,而且网络带宽足够大,这种被称作“密集模式”(Dense-Mode)的多播路由协议依靠于广播技术来将数据“推”向网络中所有的路由器。密集模式路由协议包括距离向量多播路由协议(DVMRP:Distance Vector Multicast Routing Protocol)、多播开放最短路径优先协议(MOSPF:Multicast Open Shortest Path First)和密集模式独立多播协议(PIM-DM:Protocol-Independent Multicast-Dense Mode)等。
多播路由的第二种类型则假设多播组成员在网络中是稀疏分散的,并且网络不能提供足够的传输带宽,比如Internet上通过ISDN线路连接分散在许多不同地区的大量用户。在这种情况下,广播就会浪费许多不必要的网络带宽从而可能导致严重的网络性能问题。于是稀疏模式多播路由协议必须依靠于具有路由选择能力的技术来建立和维持多播树。稀疏模式主要有基于核心树的多播协议(CBT:Core Based Tree)和稀疏模式独立协议多播(PIM-SM:Protocol-Independent Multicast-Sparse Mode)。
2.密集模式协议
(1)距离向量多播路由协议 (DVMRP)
第一个支持多播功能的路由协议就是距离向量多播路由协议。它已经被广泛地应用在多播骨干网MBONE上。
DVMRP为每个发送源和目的主机组构建不同的分布树。每个分布树都是一个以多播发送源作为根,以多播接受目的主机作为叶的最小扩展分布树。这个分布树为发送源和组中每个多播接受者之间提供了一个最短路径,这个以“跳数”为单位的最短路径就是DVMRP的量度。当一个发送源要向多播组中发送消息时,一个扩展分布树就根据这个请求而建立,并且使用“广播和修剪”的技术来维持这个扩展分布树。
扩展分布树构建过程中的选择性发送多播包的具体运作是:当一个路由器接收到一个多播包,它先检查它的单播路由表来查找到多播组发送源的最短路径的接口,假如这个接口就是这个多播包到达的接口,那么路由器就将这个多播组信息记录到它的内部路由表(指明该组数据包应该发送的接口),并且将这个多播包向除了接受到该数据包的路由器以外的其他临近路由器继续发送。假如这个多播包的到达接口不是该路由器到发送源的最短路径的接口,那么这个包就被丢弃。这种机制被称为“反向路径广播”(Reverse-Path Broadcasting)机制,保证了构建的树中不会出现环,而且从发送源到所有接受者都是最短路径。
对子网中密集分布的多播组来说DVMRP能够很好的运作,但是对于在范围比较大的区域上分散分布的多播组来说,周期性的广播行为会导致严重的性能问题。DVMRP不能支持大型网络中稀疏分散的多播组。
(2)多播开放最短路径优先 (MOSPF)
开放最短路径优先(OSPF)是一个单播路由协议,它将数据包在最小开销路径上进行路由传送,这里的开销是表示链路状态的一种量度。除了路径中的跳数以外,其他能够影响路径开销的网络性能参数还有负载平衡信息、应用程序需要的QoS等。
MOSPF是为单播路由多播使用设计的。MOSPF依靠于OSPF作为单播路由协议,就象DVMRP也包含它自己的单播协议一样。在一个OSPF/MOSPF网络中每个路由器都维持一个最新的全网络拓扑结构图。这个“链路状态”信息被用来构建多播分布树。
每个MOSPF路由器都通过IGMP协议周期性的收集多播组成员关系信息。这些信息和这些链路状态信息被发送到其路由域中的所有其他路由器。路由器将根据它们从临近路由器接收到的这些信息更新他们的内部连接状态信息。由于每个路由器都清楚整个网络的拓扑结构,就能够独立的计算出一个最小开销扩展树,将多播发送源和多播组成员分别作为树的根和叶。这个树就是用来将多播流从发送源发送到多播组成员的路径。
(3)独立多播密集模式协议(PIM-DM)
独立多播协议(PIM)是一种标准的多播路由协议,并能够在Internet上提供可扩展的域间多播路由而不依靠于任何单播协议。PIM有两种运行模式,一种是密集分布多播组模式,另一个是稀疏分布多播组模式,前者被称为独立多播密集模式协议(PIM-DM),后者被称为独立多播稀疏模式协议(PIM-SM)。
PIM-DM有点类似于DVMRP,这两个协议都使用了反向路径多播机制来构建分布树。它们之间的主要不同在于PIM完全不依靠于网络中的单播路由协议而DVMRP依靠于某个相关的单播路由协议机制,并且PIM-DM比DVMRP简单。
PIM-DM协议和所有的密集模式路由协议一样也是数据驱动的。但是既然PIM-DM不依靠于任何单播路由协议,路由器某个接收端口(就是返回到源的最短路径的端口)接收到的多播数据包被发送到所有下行接口直到不需要的分枝从树中被修剪掉。DVMRP在树构建阶段能够使用单播协议提供的拓扑数据有选择性的向下行发送数据包,PIM-DM则更加倾向于简单性和独立性,甚至不惜增加数据包复制引起的额外开销。
Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...
07-05
Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...
07-05
KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...
07-05
Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...
07-05