NTP网络授时系统设计与实现——客户端时钟同步软件设计与实现.doc
文本预览下载声明
第5章 客户端时钟同步软件设计与实现
5.1 概述
在NTP网络授时系统中,各子网中的路由器可从NTP服务器获取标准时间,并为其它终端用户提供授时服务。同时,其它终端用户也可以直接从NTP服务器获取标准时间。NTP网络授时系统的时钟同步软件,即部署在需通过网络获取精确时间的各windows终端上。时钟同步软件共包括三个功能模块:系统管理、定时器和时钟获取与校正。
系统管理模块,用于设置作为时钟参照的NTP服务器的地址、每次对时发送NTP报文的次数、对时间隔等参数。
定时器模块,用于定时或手工发起时钟同步请求。在通常状况下,系统按用户设置的对时间隔,自动与NTP服务器进行时间同步。在需要的时候,也可以由用户进行手工同步
时间获取与校正模块:用于根据系统指定的参数,构造NTP消息报文,从NTP服务器获取精确的标准时间。系统根据时钟同步的方式(手工或定时)本地时间,使系??内部各个节点的时钟保持一致。任意一个时钟同步客户端发起时钟同步消息,授时服务器返回系统时钟信息,客户端根据时钟信息调整本地时间。
5.2 时钟同步软件静态结构图
5.2.1 时钟同步软件整体结构
时钟同步软件中,定时同步与手工同步的流程基本相同,系统的整体结构如下图所示:
图5-1 时间同步的整体模型结构图
5.2.2 时钟同步软件的类图
分析时钟同步软件的结构,进一步细化系统中各种对象,以完成对系统中的类进行定义。
图5-2 时钟同步模块的类图
5.2.3 系统主要类设计
系统主要类的设计说明如下:
1. SYSTEMTIME类
表5-1 SYSTEMTIME类设计
类表示系统时间的类属性访问权限描述wYearpublic年wMonthpulic月wDayOfWeekpulic一周第几天wDaypublic日wHourpublic小时wMinutepulic分wSecondpulic秒wMillisecondpublic毫秒操作参数描述SYSTEMTIME构造函数
2. SynClient类
表5-2 SynClient类设计
类时钟同步客户端类属性访问权限描述offsetprivate时钟偏差maxoffsetprivate最大时钟偏差ServerTimepublic标准时间BackTimeprivate报文回收时间操作参数描述getoffsetlong value获取时钟偏差getmaxoffset获取最大时钟偏差setmaxoffsetlong value设置最大时钟偏差getBackTime获取报文回收时间setBackTimeSYSTEMTIME systemtime设置报文回收时间
3. ConstructPacket类
表5-3 ConstructPacket类设计
类构建NTP同步报文属性访问权限描述LIpublicLI标志VNpublicVN标志Modepublic模式Stratumpublic层级Pollpublic轮询间隔Precisionpublic精度RootDelaypublic根延时RefTimepublic服务器对时时间OriTimeprivate报文发送时间RecTimeprivate报文接收时间TransTimeprivate报文回复时间操作参数描述ConstructPacket构造函数getOriTime获取OriTime时间戳setOriTimelong time设置OriTime时间戳getRecTime获取RecTime时间戳setRecTimelong time设置RecTime时间戳getTransTime获取TransTime时间戳setTransTimelong time设置TransTime时间戳
4. SynTask类
表5-4 SynTask类设计
类时间同步任务类属性访问权限描述Addressprivate服务器地址Intervalprivate同步间隔操作参数描述SynTask构造函数getAddress获取服务器地址setAddressIPAddress ip设置服务器地址getInterval获取同步间隔setIntervallong para设置同步间隔Check时钟检查Run发起时钟同步请求5. SynServer类
表5-5 SynServer类设
显示全部