IP组播技术及其在视频监控系统中的应用

(整期优先)网络出版时间:2019-04-02
/ 3
摘 要 IP组播在IP网络中实现了多点通信模型,促进了视频点播、音视频会议和数据分发等多点通信业务在互联网上的发展,是互联网络发展的一个重要方向。采用IP组播技术实现监控视频的多点传输,可以大大节省网络带宽资源,提高数据传送的效率。本文对IP组播技术和其在视频监控系统中的应用作了介绍。给出了组播技术在视频传输系统中的设计思想与实现方法。运行结果表明,方案合理,运行可靠。

关键词 IP组播;组播通信;组播路由;组播配置;视频传输


1 引言

IP组播和WWW虽处于同一时期,但组播的发展远远慢于WWW,主要原因是IP组播通信模式要求路由器能提供每个群组和每个源的信息状态,随着PIM-SM、PIM-DM、MBGP、MSDP等组播路由协议的出现,使组播IP包能正确而又迅速地发送给成千上万的接收者,IP组播的技术和应用开始快速发展。

2 IP组播

2.1 IP组播及其优缺点

IP 组播[1]是将 IP 数据包 “ 尽最大努力 ” 传输到一个构成组播群组的主机集合,群组的各个成员可以分布于各个独立的物理网络上。 IP 组播群组中成员的关系是动态的,主机可以随时加入和退出群组,群组的成员关系决定了主机是否接收送给该群组的组播数据包,不是某群组的成员主机也能向该群组发送组播数据包。

由于网络用户的增多、涉及面扩大,大量的用户经常要在大致相同的时间里访问相同的信息。这种情况下,组播的优势就显现出来了。构建一种具有组播能力的IP网络,允许中间路由器将数据包复制到几个输出接口上,这样,一个服务器只需向一组终端用户发送单一流,并利用网络层提供的组播路由功能将数据包传递到每一个加入该组播组的接收者,从本质上减少整个网络带宽的需求,减轻服务器的负担。另外,组播传送的信息能同时到达用户端,延时小,且网络中的服务器不需要知道每个客户机的地址。所有的接收者使用一个网络组播地址,可实现匿名服务。

与IP组播系统执行程序相关联的主要缺点包括不可靠的信息包交付、信息包复制以及网络阻塞。

由于IP组播假定一对多的通信方式,它不使用TCP的端到端的机制。IP组播信息包是用户数据报协议(UDP)的典型应用,这是一种尽力而为的协议。因此,一个使用IP组播的应用一定会遇到偶然的信息包丢失。

单播和组播之间的关键差别是路由器主动地发送组播信息包的拷贝到多个接口。这增加了多个拷贝的组播信息包到达某一接收点的可能性。如果设计不当,可能会导致关键的控制命令在IP组播信息包被执行多次。

就TCP单播来说.标准TCP补偿和慢开启窗口机制自动地调整数据传送的速度,因此在一定程度上避免了网络阻塞。因为IP组播不使用TCP,所以没有内建的阻塞避免机制防止组播流耗尽链路带宽或者其他关键的路由器资源。

2.2 IP组播通信

在组播中,用户按不同的应用分为不同的用户组,组成员要向组播服务器(一般为路由器)注册,用户主机发出请求报文,表明所要加入的组。每个组播群组有惟一的D类地址。其地址范围从224.0.0.0到239.255.255.255。IP最多可提供多达228个同步组播群组的地址,因此,实际群组数受选路表大小而不是编址的约束。

转发IP组播需要特殊的组播路由器(multicast router)。通常是给常规路由器添加这种能力。组播路由器会周期性地对该组进行查询,检查组内的成员是否还参与其中,只要还有一个主机仍在参与,组播路由器就继续接收数据。当所有的主机都离开了组后,组播路由器会收到一个Internet组管理协议(Internet Group Manage Protocol, IGMP)的“离开”消息报文,组播路由器就会马上查询组中是否还有活动的组成员。如果有活动的组成员,组播路由器就继续转发数据;如果没有,就不再转发数据。

2.3 IP组播路由协议

组播路由协议[2]就是根据网络拓扑、组播源和组播成员的位置信息采用一定的组播树生成算法来构造组播转发树的协议。

组播网内数据的流动必须根据组播路由协议建立生成树,使发送源和组播组成员之间形成一条单独的转发路径,确保每个数据包都能转发到目的地。组播生成树的形成与发送者和接收者的分布、网络的流量状况以及组成员的动态性有关。组播生成树也反映了不同的组播路由算法和组播应用。目前构建组播树的算法主要有泛洪(Flooding)、生成树ST(Spanning Tree)、反向路径广播RPB(Reverse Path Broadcasting)、扩散-剪枝的RPB算法和基于核心的组播算法等。

根据网络中组成员的分布,IP组播路由协议可分为两种基本类型:稀疏模式协议和密集模式协议。密集模式假设组成员密集分布在网络中,并且有足够的带宽。这种组播路由协议依赖于广播技术来将数据“推”向网络中的所有路由器。它包括距离向量组播路由协议(DVMRP)、组播开放最短路径优先协议 (MOSPF) 和密集模式的协议无关组播路由协议(PIM-DM),属于数据驱动型;当组成员稀疏分布时,就需要另一种类型的组播协议,即稀疏模式组播路由协议,将组播流量限制在到组成员的路径上,通过发出加入请求申请,在含有集中点或核心点的空生成树上添加树枝形成组播生成树,属于接收者驱动型。既保证了数据传输的安全,又能够有效控制网络流量和路由器负载。例如广域网或用户使用 ISDN 线上网。它包括基于核心树的组播路由协议(CBT) 和稀疏模式协议无关组播路由协议(PIM-SM)。

3 IP组播在视频监控系统中的应用

3.1 系统总体设计

系统由四部分组成为:视频采集装置、视频服务器、应用客户端、组播网络。

视频服务器实现前端视频的实时采集、压缩和传输。应用客户端包括监控中心和远程监控端,为普通PC机,完成视频的接收、解压回放,并且,负责加入或退出组播组。开发工具为VC++6.0,运行平台为Windows操作系统。系统架构如图1所示。

114835817.jpg

图1 监控系统架构图

系统通过组播技术实现监控视频的多点传输,使身处不同IP地点的多个监控者通过网络可以同时看到多个被监控对象的实时视频信息。 监控中心主要实现整个网络系统监控视频的调配管理。当远程监控端有图像访问请求时,首先向监控中心发送图像访问请求信息,监控中心收到该请求后,查找目前已接入网上的视频是否有该视频服务器的视频,如果有,则将该视频服务器的组播号传送给请求者,后者只要加入该组播组即可实现对视频的访问, 如果目前该视频服务器没有接入网络,则由监控中心向该视频服务器主机发送视频接入命令和组播号,并将该组播号通知访问请求者。后者随后加入该组播组即可实现对指定视频的访问。监控中心可根据整个网络系统带宽资源的利用情况动态调整监控视频的接入数量及其接入速率。

3.2 组播技术实现过程

1)主机送出1条IGMP加入消息到相邻路由器。主机的MAC地址映射为将要加入的D类组地址,并包含在IGM P数据报中。路由器知道主机想加入组播组。

2)相邻路由器接收加入消息后,动态跟踪这些组播组。使用组播路由协议,在源端和接收端各个路由器之间建立组播生成树。从每个发送者伸展到所有接收者。

3)在源端和接收端建立组播路由后,源就开始沿着组播路由发送数据给各个接收者。主机接收到了源发送来的数据。网络接口卡滤出组播群组的MAC地址。网络驱动器对此地址做出反应后.把数据传递到TCP/IP协议栈。进入用户的应用层。就可以进行视频通信了。

3.3 组播在Winsock中的实现

本系统采用Windows环境下的Winsock实现组播编程[4]。发送端与接收端流程如图2所示。

WSASocket()

调用WSASocket()函数可以创建一个使用UDP协议的套接字,它是加入多播组的初始化套接字,并且以后数据的发送和接收都在该套接字上进行。

WSAIoctl()

WSAIoctl()函数的命令码SIO_MULTICAST_LOOP用来允许或禁止多播通信时发送出去的通信流量是否也能够在同一个套接字上被接收(即多播返回)。WSAIoctl()函数的命令码SIO_MCLTICAS丁_SCOPE用来设置多播传播的范围,即生存时间TTL。

Bind()

调用Bind()函数绑定套接字,从而将创建好的套接字与本地地址和本地端口联系起来。对于多播通信来说,发送和接收数据通常采用同一个端口。

WSAJoinLeaf()

调用WSAJoinLeaf()函数可加入一个多播组并指定角色(发送者/接收者)。调用时,参数dwFlags可指定套接字作为发送者(JL_SENDER_ONLY)、接收者(JL_RECEIVER_ONLY)或身兼两者(JL_BOTH)。

ClosedSocket()

在多播通信结束后,先调用ClosedSocket()函数关闭多播套接字和UDP套接字,然后调用WSACleanup()函数结束对Windows Sockets DLL的使用。

114837985.jpg

图2 Winsock实现IP组播过程流程图


4 结束语

IP组播能够降低占用带宽,减轻服务器负荷,并能改善传送数据的质量,它在多点数据传输方面具有很大的优势,目前已在一些领域得到具体应用。数据拷贝是IP组播应用的另一个领域。利用这项技术,商业公司可以每天夜里向他们的零售商店发布新的信息,比如价格和产品信息,在下一个营业日商店就会有更新的信息。

对大主机组的实时数据传送是使用组播又一应用领域。例如应用于将股票信息发送到交易大厅的工作站。原先,金融和投资公司仅仅是将时间紧迫的信息传送给交易大厅的交易员。使用IP组播后,可以将有用信息送交给所有客户,以及另一些会带来效益的金融和交易机构。

IP组播还有许多应用。微软公司每个月都要用组播技术传播多媒体数据流;Cisco公司已经用IPTV来进行实时视频流组播,用于公司内部的会议和培训。随着下一代互联网技术的广泛应用,IP组播技术会拥有更广大的应用空间。

参考文献

[1] 黄奎.下一代互联网中IP组播的研究[D].博士学位.中国科学院研究生院.2004

[2] [美]M.F.Arnett, M.Coulombe 等著,方玉丹等译.TCP/IP实用技术指南[M].北京:清华大学出版社,1998.

[3] 谷保山. Visual C++6.0编程与实例[M].北京:科学出版社,1999.

[4] 胡晓军,邓波等.Visual C++高级开发范例解析[M].北京:

电子工业出版社,2002.

[5] 黎洪松.数字视频技术及其应用[M].北京:清华大学出版社,1997.

[6] Ralf Steinmetz, Klera Nahrstedt. Multimedia: Computing, Communications & Applications [M].America: Prentice Hall, 1995.

[7] IP组播技术在视频中的应用[EB/OL]. http://www.im08.com/tech/net/sound/index1/81061.shtml.(2005.