图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()
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库IP组播技术及其在视频监控系统中的应用(3)在线全文阅读。
相关推荐: