动态IP实名解析在数码监控系统中的应用

时间:2022-09-14 02:41:49

动态IP实名解析在数码监控系统中的应用

摘要:介绍了在数码监控系统中,运用动态IP实名解析的技术实现高效的远程实时视频监控与多级用户权限管理的功能。

关键词:动态IP实名解析;数码监控系统;Winsock

中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)05-00ppp-0c

1 引言

随着计算机和网络技术的飞速发展,尤其是音视频压缩与解码技术的日益成熟,基于Internet的视频监控系统广泛应用在政府部门和许多行业,特别是安防领域。在此情形下,高性能数码监控系统的需求自然成为各应用部门所关心的热点。

早期的数码监控系统对于如何远程进行统一的监控和管理没有给出一个完整的设计方案,往往存在着以下问题:第一,远程监控点在网络上通过TCP/IP协议进行监控时需要知道大量难记的视频监控服务器的IP地址,不能够通过实名进行连接,而且这些IP部份是动态分配的,当视频监控服务器重启后又会发生变化,远程监控不能有效实施;第二,没有统一的用户和角色管理功能,不能够统一的进行管理;第三,不能实时分类分区域显示视频监控服务器的状态,有选择的进行连接,操作复杂。

采用动态IP实名解析的数码监控系统,为远程网络监控提供了全新的理念。实现了基于远程的分层次的多级角色管理、TCP/IP的点对点、点对多点、多点对多点的远程实时编码组播(广播)和监控、管理的功能。在开发FUTURE DVS2004数码视讯系统的过程中,利用Visual C++编程工具,结合数据库技术实现了在数码监控系统中的动态IP实名解析。

2 IP地址和动态IP的产生

Internet通过TCP/IP协议,在全球范围内实现不同硬件结构、操作系统、网络系统之间的互联。在Internet上,每一个节点都依靠唯一的IP地址互相区分和相互联系。IP地址构成了整个Internet的基础,每一网的计算机通过统一的机构IANA负责对申请的组织分配唯一的网络ID。

IP地址是一个32位二进制数的地址,由4个8位字节组成,每个字节间用点号隔开,用于标识TCP/IP宿主机。根据网络ID和主机ID的不同位数规则,可以将IP地址分为A(7位网络ID和24位主机ID)、B(14位网络ID和16位主机ID)、C(21位网络ID和8位主机ID)三类。如表1所示。

表1 IP地址格式

对于大多数拨号上网的用户,由于其上网时间和空间的离散性,为每个用户分配一个固定的IP地址(静态IP)是不可取的,这将造成IP地址资源的极大浪费。动态IP接入方式是指用户通过虚拟拨号技术动态获得IP地址来开展上网业务。每次用户通过普通MODEM或者通过ISDN、ADSL拨号连接Internet时,ISP通常会动态分配给用户一个公共IP地址。这时候Internet上的其他用户就可以通过这个IP地址访问该计算机。但是,因为这个IP地址是动态的,一旦断线,下次再连接Internet的时候,ISP将会分配另一个不同的公共IP地址。

如果是视频监控服务器的一方采用了动态IP接入方式,远程监控点与它进行通信,需要预先知道其IP地址,才能够在双方之间建立通信连接。

3 系统硬件结构设计

为了解决上述问题,数码监控系统的硬件部分增加了实名解析服务器部分。系统硬件结构主要由实名解析服务器、视频监控服务器、视频音频输入设备、报警输入输出设备、客户端计算机和网络组成。系统总体结构如图1 所示。

图1 数码监控系统的硬件总体结构

实名解析服务器主要由实名解析扫描模块、用户管理模块组成。通过TCP/IP协议与视频监控服务器进行实时的通信。实名解析服务器通过Wincock连接实时捕获视频监控服务器的IP地址,并将IP地址写入实名数据库中。

视频服务器通过视频采集卡与视频音频设备连接,接受视频和音频信号,经采集卡处理后送到显示器显示或存储到硬盘或发送到网络,接收用户的操作控制命令并做出相应的处理,并接收远程客户端的申请并执行远程控制命令与来自报警输入设备的外部触发信号或输出报警信号,输出云台或镜头的控制信号。其中视频输入设备主要是摄像机,它将场景采集后输入到采集卡,音频输入设备主要是麦克风,它将声音信号采集后输入到采集卡;云台控制器负责接受从服务器发出的云台控制信号,实现对摄像头的转动或调焦等处理。

监控客户端主要由远程视频音频管理模块、远程云台控制模块、网络控制模块、存储管理模块、远程回放管理模块组成。监控客户端通过分配的帐号和权限登录实名IP地址解析服务器,登录成功后从数据库中获取视频监控服务器的实名信息,然后将实名转化为IP地址连接视频监控服务器。

4 系统软件设计

在实名解析过程中,视频监控服务器和实名解析服务器之间是同过TCP/IP协议来进行通信连接。为了实现实名与IP间的转化并且实现多角色,多层次的远程管理,在软件的设计过程中使用了数据库技术。为了保证视频及语音数据在网络上顺畅的传递,在IP视频压缩协议上采用了H.264视频压缩协议。

4.1 Winsock编程模型

Winsock是一套开放的、支持多协议的Windows下的网络编程接口,是Windows下网络编程的规范。应用程序通过Winsock的API实现相互之间的通信。Winsock又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。

套接字是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元,可以将套接字看作不同主机间的进程进行双向通信的端点。Winsock编程模型使用两种套接字,即流套接口和数据报套接字(Socket),流套接口提供了双向的,有序的,无重复并且无记录边界的数据流服务。数据报套接口支持双向的数据流,但并不保证是可靠,有序,无重复的。

不论是流套接口还是数据报套接字,一般都采用客户机/服务器方式。在本系统中主要采用了流套接字方式。使用流套接字的服务进程和客户进程在通信前必须创建各自的套接字并建立连接,服务进程总是先于客户进程启动,服务进程首先调用socket函数创建一个流套接字。需要了解几个重要的函数:

sock(int af,int type,int protocol):创建套接字函数。其中af用于指定网络地址类型,一般取AF_INET,表示在Internet域中进行通信;type为套接字类型,取流套接字SOCK_STRRAM;Protocol返回或设置套接字所使用的协议(TCP或 UDP),默认为TCP。

bind():将本地地址绑定到所创建的套接字上。

listen():绑定成功后将套接字置入监听模式并准备接收远程客户端的连接请求。该函数仅适用于 TCP 连接。

accept():当进入监听状态后,通过应用该函数接收远程客户的连接请求。

connect():客户端向服务器端发送连接请求。

send():将数据发送给远程计算机

recv():获取当前的数据块并将其存储在字符缓冲区。

closesocket():对客户机和服务器应用程序关闭 TCP 连接。

4.2 视频监控服务器端子系统设计

视频监控服务器端子系统主要由视频音频管理模块、报警输入输出模块、云台控制模块、网络控制模块、存储管理模块、电子地图模块、回放管理模块和系统数据管理模块组成,服务器通过接口与摄像机相连接,作为视频监控的主要服务器。

数码监控系统启动成功后(无论动态IP还是静态IP),需要和实名解析服务器进行通信。主要过程是:通过串口读取加密狗的视频监控服务器ID号(此号唯一),并对此ID号进行适当的加密补充,启动Winsock客户端线程,定时发送视频监控服务器ID号,将信息通过Winsock发送到实名解析服务器,实名解析服务器对发来的信息进行解码,再转换成实际信息,并将IP写入实名数据库。实名解析工作流程如图2所示。

图2 实名解析工作流程图

4.3 实名解析服务器端子系统设计

实名解析服务器子系统主要包含三个主要功能:第一,接收视频监控服务器的发送信息,将IP转化为对应的实名;第二,实时检测远程视频服务器的活动状态和通道信息;第三;角色和权限管理功能。实名解析服务器子系统主要由实名解析扫描模块、用户管理模块组成。

实名解析扫描模块包括实名解析和实时扫描两个部分。实名解析部分主要通过Winsock实现接收视频监控服务器发送的信息并获取Winsock客户机IP,首先对发送的信息进行解码并验证发送的信息是否合法,读取信息中的视频服务器发送的视频监控服务器ID号,然后根据视频监控服务器ID号检索数据库中的实名数据表,将IP地址写入对应的字段;实时扫描部分主要实现扫描实名数据表中视频监控服务器的实时连接状态信息,通过检索实名数据表中的视频监控服务器ID号,读取出对应的IP地址,然后采用UDP协议扫描IP地址,得到视频监控服务器实时的活动状态及通道信息,并将信息写入表中。

用户管理模块包括视频监控服务器的维护和远程监控用户管理两个部分。视频监控服务器的维护主要用来预先添加监控服务器基本信息;远程监控用户模块主要实现分配远程监控点的帐号和权限。两个模块的管理都是通过数据库技术实现的,数据库采用MS SQL Server,通过B/S方式进行管理,Web管理系统采用开发。数据库主要包含三个数据表,主要结构如表1所示。

表1 系统主要表结构

系统管理员实体表(Login):系统管理员实体表用来分配维护人员的帐号和权限,维护人员通过用户名和密码可以通过浏览器在远程访问实名解析服务器的WEB服务进行验证,验证成功后根据用户权限维护视频监控服务器的基本信息和客户端用户管理两个模块。

视频服务器实体表(UserInfo):视频服务器实体表用来存储视频监控服务器的相关信息。其中ID为视频监控服务器编号,是唯一合法的标识,它和视频监控服务器的发送过来视频监控服务器ID号信息是一致的,也是本数据表的关键字。Name字段为视频监控服务器的实名信息。ID和Name等字段由维护人员人工维护。IP、Channel,Active字段则由实名解析扫描模块通过TCP/IP接收到的信息自动的进行维护。

客户端用户实体表(Role):用来分配远程监控点的帐号和权限,由系统管理员指定。远程监控点利用客户端监控软件输入帐号连接实名解析服务器的客户端用户实体表,读取权限范围内已分配的视频监控服务器的实名信息,然后选择相应的实名连接视频监控服务器。

其中权限分省级、市(地区、州)级、区(县)级、组级和单个监控服务器级五个不同级别。如果为省级权限,则列出省内所有区域的视频监控服务器的实名信息。依次类推,直到单个的视频监控服务器,

4.4客户端子系统设计

远程监控点通过分配的帐号可以采用C/S(客户/服务器)方式和B/S两种模式进行远程的监控。C/S模式需要在客户端安装客户端监控软件;B/S模式基于浏览器的视频监控方式,利用ActiveX控件,监控点通过访问实名地址解析服务器的Web页面登录,自动下载控件注册,实现零客户端的远程监控方式。

两种模式都需要用户通过分配的帐号登录到动态IP实名解析服务器,在客户端用户实体表中获取视频监控服务器ID号、权限、权限范围和视频通道范围信息。根据其权限,在监控服务器实体表中获取活动状态为“True”的省、市(地区、州)、区(县)、组名、单位名称和服务器名和IP地址,以树形结构动态显示视频服务器的实名,当用户双击服务器实名时,通过其对应的IP地址与视频服务器建立连接,在用户双击通道名时,在客户端输出音、视频信息。

5 结束语

数码监控系统中如何在远程进行有效的监控与管理是一个比较困难的问题,利用实名IP解析技术可以方便高效地实现监控点远程的监控与管理,很好地解决了在远程监控系统多层次、多角色、多监控点进行管理和监控的问题,在实际应用中也取得了很好的效果。

参考文献:

[1](美)Jones A,Ohlund J.京京工作室,译.Windows网络编程技术[M].北京:机械工业出版社,2000.

[2]陈伟,等.Visual C++网络高级编程[M].北京:人民邮电出版社,2001.

[3]胡晓军,等.Visual C++高级开发范例解析[M].北京:电子工业出版社,2002.

[4]袁家政.计算机网络[M].西安电子科技大学出版社,2005.

收稿日期:2007-12-20

作者简介:汪军(1975- ),男,湖北武汉人,武汉工业学院网络中心工程师,研究方向:计算机网络、数据库技术;丰洪才(1963- ),男,湖北武汉人,华中科技大学计算机学院博士,武汉工业学院计算机与信息工程系教授,网络中心主任,研究方向:多媒体技术与网络、模式识别。

上一篇:基于oracle数据库下服务器安全问题的探讨 下一篇:局域网中瑞星杀毒软件更新