基于TCP的简单网络管理系统
2012-04-29李莉
李莉
摘要:已有的网络管理协议的复杂性不适合特定设备和场合的要求,在针对智能设备的网络管理中,需要较为简单的协议和系统支撑。基于TCP构建的网络管理系统,可以较好的满足设备状态监测,远程设备控制等基本功能,在小型智能设备中也容易部署实施。
关键词:网络管理;智能设备;TCP
中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)01-0015-05
Simple TCP-based Network Management System
LI Li
(Dandong Border Check Points,Dandong 118000,China)
Abstract: Existing network management protocol is not suitable for the complexity of the requirements of specific devices and applications in network management for smart devices, the need for more simple protocol and system support. TCP-based network management system built that can better meet the equipment condition monitoring,remote device control and other basic functions, in a small intelligent devices can easily deploy the implementation.
Key words:network management; smart devices; TCP
智能设备一般属于专用设备,其功能单一,用户接口较少。连接网络的智能设备,特别是不属于电信运营商的特定网络,一般没有运营商指定的规范要求。为满足这种场合的设备管理需求,基于TCP协议,采用XML作为命令和数据承载方式,开发了一种简单灵活的设备网络管理协议。经过在联网广告终端,机顶盒等设备中的现场使用,达到了较好的效果。
1网络管理功能需求概述
图1终端网络管理拓扑
图1所示为典型的现场网络拓扑图。在各种复杂的网络环境中,站在终端的立场上,有接入方式的不同:如有线以太网类型,无线Wifi接入,GPRS/3G网络接入等;也有网络环境的不同:如采用VPN网络,或使用局域网,或者是家庭的ADSL拨号网络;这就要求网络管理所采用的网络协议,必须能够满足这些复杂的环境。
一般来说,UDP协议的网络开销较小,但UDP协议没有回传机制和窗口协商机制的保证,可靠性无法保障;另外,UDP协议对复杂网络环境的适应性不好。TCP协议是一种可靠的网络协议,其协议设计采用三次握手来保障连接的可靠性;另外,TCP设计了通信确认,窗口动态调整,失败回传等内容,可以较好的满足网管可靠性的要求。
一般来说,简单网络管理的功能包括如下几个方面:
1)设备的注册,认证:设备通过发送注册指令完成其在网络管理服务器上的身份认证,在协议层面,该请求是第一次发送TCP数据包到网管服务器,服务器会为此连接建立一个独立的进程,处理与之相关的后续数据请求。
2)设备的在线离线管理,心跳维护:设备通过TCP协议在间隔一定时间后连续发送心跳数据到网管服务器,用以维护其活动状态;如果服务器在间隔三个时间间隔内没有收到设备的心跳数据,则认为终端设备已经离线。在心跳数据中,终端附送自己的业务运行状态在其中,完成状态的定时上报功能,其活动状态可以包含:正在开机,正在关机,正在运行某个程序,正在下载等自定义格式数据。
3)设备运行状态获取:此命令用于服务器发送信令到设备上,用以获取设备实时状态,与上一步的定时上报不同。
4)设备控制和远程操作:通过远程控制指令,实现对设备的远程开机,关机,业务流程跳转(如插播某条广告信息)等。
5)设备的远程维护:可以通过该指令完成设备远程下载,升级,故障诊断等操作,实现设备的远程无人维护。
2基于TCP和XML的网管协议设计
为了能够保证网管协议的灵活扩展,将服务器和客户端之间的交互协议使用XML来定义。利用基于XML的通信协议,可以实现终端的注册认证,远程控制,心跳维护等接口,从根本上实现对终端的管理控制。
其协议设计如下:
1)网管协议基于HTTP协议完成,通过POST方法完成数据的提交,提交数据内容为XML文档;
2) XML数据组织通用格式如下所示:
xml version="1.0" encoding="UTF-8"?
……
……
其中,adsys为表示广告信息系统的关键标识,其它业务相关的指令都需要包含到其中。stbuser关键字标示终端相关的数据分组,其中一般会包含终端账号,MAC地址等信息;
3)开机连接认证接口:提交终端硬件版本,硬件型号、软件版本,进行终端有效性认证,返回对应的广告服务系统IP,服务端口、心跳间隔等接口参数;
终端通过HTTP POST方法上报如下数据:
mac_address:终端MAC;hardmodel:终端型号;hardver:终端硬件版本;softver:终端软件版本。
系统受到该请求后,通过HTTP回复200 OK的确认信息,同时将如下数据回复给终端:
xml version="1.0" encoding="UTF-8"?
其中,result标示注册是否成功,stbuser中包含了注册成功的终端账号,状态,广告服务器系统IP地址,端口号,心跳间隔和广告策略下载接口。终端收到这些信息后,将会根据回复信息中的服务器系统IP地址和端口号主动连接服务器,并将心跳信息发送过去,此后将按照回复中的心跳间隔信息,到指定时间后再次发送心跳信息。
4)终端主动获取服务器策略的接口:终端可以在每天的指定时间,通过接口自主进行分发展示策略及文件的下载,下载的接口URL为首次通过认证后返回的下载URL。
终端通过HTTP POST方法上报如下数据:mac_address:终端MAC。
系统受到该信息后,返回数据格式为:
xml version="1.0" encoding="UTF-8"?
其中,cur_scheme标示当前正使用的策略信息,如果为空,标示着没有使用任何策略;next_scheme标示着写一个即将生效的策略。每个策略字段中,包含有策略生效时间,下载地址,下载最大带宽等信息内容。
5)心跳接口:终端定时向指定的广告服务系统的管理端口进行心跳上报;如果在心跳中发现控制链路终端,则再次进行控制链路的建立;系统端接收到终端心跳后,更新最后心跳时间,并将系统当前时间返回给终端,终端更新其内的时间;心跳频率为30分钟一次,可根据现场要求修改。
心跳发送数据格式为:
xml version="1.0" encoding="UTF-8"?
网管服务系统回复
xml version="1.0" encoding="UTF-8"?
心跳信息通过在command中使用adstblive来标示,上传信息中stbid填写终端的网卡MAC地址,标示终端的唯一身份信息;服务器回复信息中同样包含MAC地址信息,用于终端确认是自己的回复信息,同时包含当前的时间信息,如2010年4月14日上午10点27分40秒可表示为:20100414103740。
6)获取当前终端屏幕状态信息:通知终端将当前终端的播放界面进行截屏,并将截屏图片上传到网管系统中。数据的上传通过FTP文件传送方式进行。
系统发送命令格式如下:
xml version="1.0" encoding="UTF-8"?
其中stbid为终端网卡MAC地址,ftp_ip,ftp_port,ftp_user,ftp_passwd表示上传数据的FTP服务器地址,端口号,用户名,密码信息,screenfilename关键字标示上传图片文件的命名方法。
终端收到该命令后,首先完成抓屏操作,将当前屏幕保存为指定名称的问题件,并上传至指定的FTP服务器,然后回复确认命令。
7)终端的远程控制:终端定时向指定的网管服务系统的管理端口进行心跳上报;如果在心跳中发现控制链路终端,则再次进行控制链路的建立;接收到终端心跳后,更新最后心跳时间,并回复指定格式的控制指令。
接口协议根据控制命令不同而有所差异:
#重启指令:
xml version="1.0" encoding="UTF-8"?
xml version="1.0" encoding="UTF-8"?
xml version="1.0" encoding="UTF-8"?
xml version="1.0" encoding="UTF-8"?
协议中定义了远程开关机,待机的功能,其中通过command字段来区分控制类型。其中adshutdown表示关机,adstart表示远程开机,adautostandby表示自动待机。在autoctrllist包含命令附属的时间信息,如开机,关机时间分别使用autostart,autoclose表示。
终端还可以通过远程维护命令完成日志上传,升级等维护操作。
3在广告信息终端中的应用
在笔者主持研发的广告信息终端是一种通过无线联网的广告信息播控设备,可以通过远程控制实现终端广告策略的调整,广告片源的更换,远程开关机等,其中完全应用基于TCP的简单网络管理模式。
图2广告信息终端数据流图
如图2中所示,信息终端中的tcpClient模块负责和服务器完成信令的交互,TCP客户端在广告信息发布机中起命令传输的作用,负责从广告服务系统获得控制命令,并将命令通过应用程序管理器送给其他功能模块;其中命令有四种类型:连接请求,心跳交互,日志上传,控制命令。其中连接请求只在开始连接时发送一次,心跳交互则默认每隔30s一次,日志上传只有每天零点上传一次。而控制命令则包含了较为广泛的范围:如远程开关机,下载,获取远程屏幕状态信息,获取远端视频信息等。
tcpClient客户端的主要流程如图3所示。
图3 tcpClient流程图
在实际应用过程中,完成TCP连接后终端的客户端要保持客户端和服务器之间的常连接,一旦TCP连接中断,终端能够迅速检测到,并能够重新向服务器发起连接请求,维持连接状态。socket连接成功后,按照启动参数时间间隔发送心跳命令,连续3次收不到回复,从新发起socket连接。
基于该管理协议,广告信息终端实现了免人工维护的成本优势,在实际运营过程中得到了客户的认可。4结论
基于TCP构建的网络管理系统,可以适应复杂多变的网络拓扑环境和各种应用场合,即使在基于GPRS无线网络的环境中,也可以使用。采用基于XML的信令格式,为网管协议的灵活扩展奠定了很好的基础。在广告机等终端现场使用测试中,该模式稳定可靠,可以满足简单的网络管理需求。
参考文献:
[1]刘伟.宽带综合接入技术[M].北京:科学出版社,2007.
[2]史蒂文斯. TCP/IP详解(卷1:协议) [M].范建华,译.北京:机械工业出版社,2007.
[3]韩江洪.智能家居系统与技术[M].合肥:合肥工业大学出版社,2005.
[4]孟小峰.XML数据管理:概念与技术[M].北京:清华大学出版社,2009.