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类设计
类
表示系统时间的类
属性
访问权限
描述
wYear
public
年
wMonth
pulic
月
wDayOfWeek
pulic
一周第几天
wDay
public
日
wHour
public
小时
wMinute
pulic
分
wSecond
pulic
秒
wMillisecond
public
毫秒
操作
参数
描述
SYSTEMTIME
构造函数
2. SynClient类
表5-2 SynClient类设计
类
时钟同步客户端类
属性
访问权限
描述
offset
private
时钟偏差
maxoffset
private
最大时钟偏差
ServerTime
public
标准时间
BackTime
private
报文回收时间
操作
参数
描述
getoffset
long value
获取时钟偏差
getmaxoffset
获取最大时钟偏差
setmaxoffset
long value
设置最大时钟偏差
getBackTime
获取报文回收时间
setBackTime
SYSTEMTIME systemtime
设置报文回收时间
3. ConstructPacket类
表5-3 ConstructPacket类设计
类
构建NTP同步报文
属性
访问权限
描述
LI
public
LI标志
VN
public
VN标志
Mode
public
模式
Stratum
public
层级
Poll
public
轮询间隔
Precision
public
精度
RootDelay
public
根延时
RefTime
public
服务器对时时间
OriTime
private
报文发送时间
RecTime
private
报文接收时间
TransTime
private
报文回复时间
操作
参数
描述
ConstructPacket
构造函数
getOriTime
获取OriTime时间戳
setOriTime
long time
设置OriTime时间戳
getRecTime
获取RecTime时间戳
setRecTime
long time
设置RecTime时间戳
getTransTime
获取TransTime时间戳
setTransTime
long time
设置TransTime时间戳
4. SynTask类
表5-4 SynTask类设计
类
时间同步任务类
属性
访问权限
描述
Address
private
服务器地址
Interval
private
同步间隔
操作
参数
描述
SynTask
构造函数
getAddress
获取服务器地址
setAddress
IPAddress ip
设置服务器地址
getInterval
获取同步间隔
setInterval
long para
设置同步间隔
Check
时钟检查
Run
发起时钟同步请求
5. SynServer类
表5-5 SynServer类设计
类
同步通信接口类
属性
访问权限
描述
sk
public
socket接口
packet
private
同步报文
操作
参数
描述
Sy
显示全部