随着互联网的迅猛发展,网络应用大量增加,尤其视频数据的传输量庞大。通过优化带宽可满足数据传输量增长的需要,IP组播技术则是优化带宽的重要手段。目前基于因特网的视频组播应用很广泛,如实时视频会议系统、远程教学系统、远程演示系统和视频点播系统(VOD)等。下面就IP组播最新技术的实现和应用进行讨论。
IP组播的必备条件
IP组播的设备支持
组播源和组播组成员及其两者之间的底层网络都必须支持组播,具体条件如下:
◆ 主机的TCP/IP支持发送和接收IP组播数据包;
◆ 主机的网卡支持组播;
◆ 有一套用于管理成员加入、离开和查询组成员的组管理协议,如Internet组管理协议(IGMP);
◆ 有一套IP组播地址分配策略,并能将IP组播地址映射到组播MAC地址;
◆ 有支持IP组播的应用软件;
◆ 所有介于组播源和组播组成员之间的路由器、交换机、TCP/IP协议栈、防火墙等均须支持组播。
地址分配策略
在IPv4中,以D类地址作为IP组播地址,其范围是224.0.0.0至239.255.255.255,分配地址见表1。
Internet组管理协议和IP组播路由协议
在实际网络中要实现IP组播数据包的转发,必须在各个互连设备上运行Internet组管理协议(IGMP)和可互操作的IP组播路由协议,如DVMRP、PIM-DM、PIM-SM、MOSPF等。不同的组播路由协议以不同方法生成组播分布树。
搭建IP组播平台
要在网络上实现组播应用,必须要有相应组播设备和协议的支持。按照组播协议的分类,在三层的组播协议主要有DVMRP、PIM和IGMP等,而在二层的组播协议主要用CGMP(Cisco Group Management Protocol)和IGMP监听。三层组播协议主要用于组播信息的转发,二层组播协议主要用于抑制局域网上多余的组播信息。在路由器及多层交换机上一般实现三层的组播协议,而在不具备多层交换的交换机上一般只能实现二层组播协议。
在本方案中,网络信息点共计570个,划分为19个虚拟局域网(VLAN),交换设备选用思科系统公司的Catalyst 6500,Catalyst 2950,它的所有端口支持线速IP组播、PIM疏松和密集模式,以及与DVMRP传统应用程序间的互操作性,提供对IGMPv1/2支持,为集成IP组播和Catalyst核心交换机提供CGMP服务器功能。这些协议对IP组播客户机及有效地处理必不可少,节约了带宽和客户端的CPU资源。
三层交换机划分VLAN
三层交换机划分VLAN步骤如下:
Switch#vlan database
Switch(vlan)#vlan vlan-num name vlan-name
Switch(vlan)#exit
Switch#configure terminal
Switch(config)#interface interface module/number
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan vlan-num
Switch(config-if)#end
启动路由协议PIM
密集模式协议PIM-DM适用的组播情形有:发送方和接受方彼此接近;发送方很少,接受方很多;组播数据流的数量很大;组播数据流是经常性的。
稀疏模式协议PIM-SM适用的组播情形有:在一个组播组中有较少的接受方;数据流的类型是间歇性的。
启用组播路由需要执行以下两个基本步骤:
◆ 全局模式下配置ip multicast-routing启用组播路由,但接口上还是关闭的:
Switch(config)# ip multicast-routing
◆接口配置模式下配置ip pim dense-mode/sparse-mode/sparse-dense-mode:
Switch(config-if)# ip pim dense-mode
注意:如果PIM配置为Sparse-mode,必须选择一台或多台路由器作为汇聚点,同时汇聚点的IP地址必须配置在叶节点路由器(Leaf Router)上。叶节点路由器是直接与一个组播组成员或者组播消息发送方相连接的路由器。
启动CGMP协议
IGMP协议存在一个问题,如果设置一台交换机中的一个VLAN可以接受组播数据,那么这个VLAN中的所有工作站都将收到组播数据流,为此产生了CGMP。
CGMP是思科专有协议,只能跟PIM一起使用,即不支持其他的组播路由协议。为避免IGMP协议带来的问题,控制端口上的带宽,控制组播数据流送到需要的端口上。
CGMP的基础是,IP多点广播路由器可看到所有的IGMP数据包,因此能够通知所有交换机(利用2层Well-known地址)哪些主机何时加入和脱离多点广播组。交换机正是利用这些信息构建一张转发表的。
CGMP是基于客户端/服务器模型的。路由器担任CGMP服务器角色,交换机是它的客户端。启用CGMP能够让交换机使用从路由器过来的组播信息。路由器接口上启用CGMP命令ip cgmp,将触发一个CGMP加入消息,可以使用show running来检测是否在接口上启用了CGMP:
Switch(config-if)# ip cgmp
Switch# show running
Windows Media 9实现IP组播
本方案中通过以上配置的IP组播平台,采用Windows Media 9流媒体解决方案实现了组播流的配置。Windows Media 9视频技术是Microsoft公司最新推出的一种适应多种网络带宽条件的流式多媒体信息的发布平台,支持IPv6和IGMPv3,包括了流媒体的制作、发布、播放和管理的一整套解决方案:
◆ Windows Media Service 9;
◆ Windows Media编码器;
◆ Windows Media Player。
接收组播流的流程如图1所示。
→图1
Windows Media Services 9使用广播发布点,将客户端对内容的请求转换为安置该内容的服务器上的物理路径。在客户端成功连接到发布点之后,Windows Media服务器管理该连接并传输该内容。所以,要让用户访问您的服务器上的媒体,需要建立一系列的广播发布点的,并生成.nsc文件和.asx文件。
.nsc文件存储所有用于将ASF流传递到Windows Media Player的必要信息,包括IP地址、端口、流格式、生存时间(TTL)值等,通常存储在共享的网络目录或Web服务器目录中,以便Windows Media Player使用。当Windows Media Player打开时,将通过UNC路径或Web页链接提取指向.nsc文件的URL。.asx文件会包含.nsc文件的访问路径。.asx文件和.nsc文件都应该放在客户端可访问到的位置。
图2显示了Windows Media Player如何访问组播ASF流。只要服务器、编码器、播放器都正确配置,在客户端就能正确接收组播流,配置过程中一般要注意以下几点:
Windows编码器的设置
Windows编码器的设置的基本过程是:建立编码会话→输入编码器支持的源(包括文件、设备、屏幕以及脚本命令)编码输出到文件或者广播实况事件(使用推传递或拉传递分发方式)。
Windows Media服务器中的设置
Windows Media服务器中的设置的基本过程是:添加服务器→建立的发布点(广播)→视频服务属性设置→发布点属性设置→发布点公告设置(生成ASX、NSC文件)。
Web服务器的设置
当组播在多网段间传输时,需使用HTTP传输协议。因此,如果Web服务器与Media服务器使用同一台服务器时,必须注意:Web服务器的默认端口与Media服务器的默认HTTP端口必须不同,HTTP默认的访问路径是服务器的C:\interpub\wwwroot\,建议把ASX、NSC、ASF全部放进这个目录,访问起来也方便。假设此处的NSC文件路径为:
Windows Media Player中的设置
通过以上设置,完成了利用Windows Media实现IP组播。
什么是IP组播?
IP组播是指在TCP/IP网络上实现的组播(multicast),是对标准IP网络层协议的扩展。它的基本方法是:当某一个人向一组人发送数据时,它不必将数据向每一个人都发送,只需将数据发送到一个特定的预约的组地址,所有加入该组的人均可以收到这份数据。这样对发送者而言,数据只需发送一次就可以发送到所有接收者,避免了广播风暴的产生,大大减轻了网络的负载和发送者的负担。
什么是Internet组管理协议?
Internet组管理协议(IGMP)是IP协议的组成部分,运行于IP主机和组播路由器之间,以及各组播路由器之间,组播路由器通过IGMP来获得与其直连的子网中关于组播组成员的信息。IGMP现在有三个版本:IGMPv1、IGMPv2和IGMPv3。其中,IGMPv3提供了帮助防止多个广播服务器使用同一多播IP地址出现的问题的能力,此功能要求连接到多播的客户端使用Windows Media Player 9系列。
什么是“协议无关多播”协议?
→图2
“协议无关多播”(Protocol Independent Muiticast,PIM)协议一种独立于路由协议的组播协议,目的是在Internet上提供足够规模的域间多播路由,该协议有两种兼容的操作模式:密集模式(PIM-DM)和稀疏模式(PIM-SM)。
什么是IPv6协议?
现有的互联网是在IPv4协议的基础上运行,IPv6是下一版本的互联网协议。IPv4采用的是32位地址长度,只有大约43亿个地址,预计将在2005-2010年间被分配完毕。地址空间的不足将阻碍互联网的进一步发展,因此拟通过IPv6重新定义来扩大地址空间。IPv6采用了128位地址长度,几乎可以不受限制地提供地址。在IPv6的设计过程中,除解决了地址短缺问题以外,还考虑了在IPv4中没有解决的其他问题,如端到端IP连接、服务质量(QoS)、安全性、多播、以及移动性等