随着网络技术的发展,网络通信不再仅仅局限于数据与语音,网络带宽的增加,大量的视频信息在网络间传输,极大的丰富了网络信息资源,下面我们以视频系统为例,简述一下网络中的通信模式。
实验环境:VOD服务器1台,操作系统WINDOWS NT4+PACK4,视频系统CISCO ip/TV 3.0,CISCO 2600系列路由器2台,CISCO 2900系列交换机2台,计算机2台。
网络拓扑:
Cisco IP/TV是一个客户/服务器网络视频软件系统,主要用于在IP计算机网络上传送MPEG1,H261,等高质量全动态的视频图象及话音和数据。系统支持三种视频传播模式:实时转播(live),点播(on demand),预定节目广播(scheduled)。
当客户PC端点播VOD服务器上的节目时,采用的是“单播”(Unicast)模型,它属于"一对一"的通信。例如:一个主机希望将数据发给同一IP子网内的另一个主机。主机将数据发给一个IP地址,IP包也必须先封装到Ethernet帧内。为完成这个封装,作为发送方的主机必须将接收方主机的IP地址解析成Ethernet地址,即完成地址的"映射"。这种地址映射是通过ARP(地址解析协议)完成的。假如主机A想把一个包传给另一个IP子网的主机,就必须将包发给路由器。主机A会配置一个默认网关,指向用于连接主机A所在LAN的那个路由器接口。由于目标IP地址位于一个不同的子网上,所以主机A能自动分辨应将帧发给路由器,并向路由器的Ethernet地址发出一个ARP。路由器收到这个帧后,会提取出IP包,并根据其中包含的目标IP地址,判定目标主机是否在一个同自己直接连接的网络内。若在一个同自己直接连接的网络内,路由器就向那个网络发送一个ARP,解析出目标主机的Ethernet地址。从目标主机收到 ARP回应后,路由器就可构建起一个Ethernet帧,将IP包包括其中,然后将整个帧发给目标主机。若目标主机不在同自己直连的一个网络内,路由器就必须查询自己的路由表,决定下一步应将该帧发给哪个路由器。
在单播通信的模式下,假如观看同一个节目的客户端很多,就会增加服务器的负载,网络带宽的占用率也很大。所以,对于热点新闻和节目应采用广播的模式。在广播模型中,一个主机会把数据发给子网内的所有主机。ARP在此不再需要,因为Ethernet广播地址成为一个众所周知的地址,即oxFF FF FF FF FF FF。在单播模型中,一个主机可将IP包发给任何网络内的任何主机(假定我们有通向目标主机的路由)。而在广播模型中,广播的范围只能是本地的这个子网。路由器会封锁广播通信,所以广播范围仅局限于本地网。
在视频点播中,我们主要解决的是“一对多”的通信问题。这种模式下,主机经常把相同的包发给多个接收者,但又不是网络内的全部主机;
在组播通信模型中,我们需要两种新型地址:一个IP组播地址和一个Ethernet组播地址。其中,IP组播地址标识着一组接收者,它们要接收发给整个组的数据。由于所有IP包都封装在Ethernet帧内,所以还需要一个组播Ethernet地址。为使组播模型正常工作,主机应能同时接收单播和组播数据,这就意味着主机需要多个IP和Ethernet地址。一个单播IP和Ethernet地址用于单播通信,并用于零个或多个IP;而Ethernet组播地址用于组播通信。假如主机不预备接收组播通信,就需要零组播地址。总之,对于接收者希望加入的每个组播组,都需要一对组播地址,分别为IP和Ethernet地址。单播和组播地址之间的主要差异在于每个主机都有一个唯一的单播地址,组播地址则不然。例如,假设有五个主机希望接收发给A组的组播数据,那么所有主机都要监听发给同一个组播地址的数据,无论IP还是Ethernet地址。可以看出,启用组播后大大的减少了来自单播环境的通信,节省了系统资源降低带宽占用。
采用组播模型后,我们获得的另一项能力是"动态组成员"。只有一个活动的应用正在运行,而且本身提出了数据要求,一个主机才应接收传给一个特定组播组的数据。主机应有能力根据自己的愿望,自由加入和离开组播组,从而排除"静态"分组的必要。为了最有效地利用现有带宽,要求路由器自行判定是否应将组播数据路由给组成员。所以,路由器必须随时注重动态组成员的信息,而且必须有相应的路由协议,对组播通信进行控制。
此外,我们还经常用VLAN提高网络的安全性,隔离广播风暴。但是我们知道VLAN间是不可以直接通信的,必须通过路由器。我们假设网络中有一个交换机被划分成两个VLAN。这个交换上的每个端口都被分配给VLAN 1或VLAN 2。此时,VOD服务器从一个子网向另一个子网发出一个组播包时,数据通过路由VLAN 1到达VLAN 2,由于交换机不能识别组播包,在VLAN 2中会出现比广播通信的情形更糟的情况,只要VLAN 2上有人观看广播节目,VLAN 2上的每个主机都会收到这个组播包,问题就在虽然路由器能够处理组播通信,但是交换机却不能正确处理组播通信,会像对待广播通信一样,把数据包发送到网络中的每一个用户。这样,虽然可以使用,但网络中充斥大量无用的广播包,网络带宽被占用,使用率极低,丢包再所难免。
因此,在实际工作中,我们要在路由器和交换机上分别启动组播协议;在主机和路由器之间,我们使用的是“互联网组治理协议”(Internet Group Management PRotocol,IGMP);而在不同的组播路由器之间,我们使用的是组播路由协议“距离向量组播路由协议”(DVMRP)和“与协议无关的组播”(PIM)。路由与交换之间的组播通信必须启用组治理协议(CGMP)。