您的位置:首页 >资讯列表 > 正文
发布时间:2020-04-15 17:20
通过HTTP代理连接的网络对时器设计

  在许多业务应用中,对计算机系统时间的准确度要求非常严格,如《地面气象观测规范》[1]中要求观测时钟误差不能大于30 s,如果使用人工对时会有很大的不便,为此设计一个自动对时器非常必要。为了使业务计算机不直接与外网连接,让对时器通过代理服务器进行网络连接,使用防火墙对其他非法连接进行隔离,更有利于业务计算机的数据安全防范。



  1时间服务器选择


  在Internet网络中有很多时间服务器,它从参考时钟获取实际时间,再利用电脑网络把时间资讯传递给用户。现行互联网对公众开放的时间服务器一般使用网络时间协议[2]有ARPANET[3]主机的DayTimeProtocol、TimeProtocol和Internet标准的Simple Network Time Protocol、NetworkTimeProtocol等。DayTimeProtocol返回ASCⅡ码字串,直接表示日期、年份、时间及时区。TimeProtocol返回32bits数值,以二进位表示自公元1900年1月1日0:00起开始的秒数,时区都是格林威治时区。DayTimeProtocol和TimeProtocol都只能精确到秒,而且并没有估算到网络的时延。NetworkTimeProtocol返回64bits数值,前32bits和TimeProtocol一样,后32bits用以表示秒以下的部分,并加上网络延时量的估计,理论上可以精确到到2-20 s,实际使用大约只有50 ms(广域网)左右,在局域网可达1 ms。根据普通业务应用需要,精确到1 s已完全可以满足,鉴于NetworkTimeProtocol协议的对时过程比较复杂,因此选用DayTimeProtocol和TimeProtocol协议的时间服务器。


  2服务器时间获取


  根据网络时间协议,时间服务器时间的获取很简单,客户端只需要使用TCP协议向服务器相应端口申请连接


  (DayTimeProtocol协议的服务器使用IP端口是13,TimeProtocol协议的服务器使用IP端口是37),连接成功后服务器立即向客户端发送服务器时间信息,客户端及时处理接收信息即可。由于DayTimeProtocol时间服务器返回的ASCⅡ字串不指定固定的传输格式,不能保证所有时间服务器返回的时间信息都能正确识别,通过实际分析,发现部分时间服务器返回字符串以“UTC(NIST)”结尾,其完整信息串均以类似于“55734 11-06-22 07:06:08 50 0 0 831.9 UTC(NIST)*”,可见其应该是遵循NIST[4]制定的某一标准,因此现只针对这一类服务器进行对时处理。TimeProtocol时间协议服务器直接返回秒数,处理起来相对比较简单,目前大多


  收稿日期2011-07-25


  28


  数时间服务器会同时支持DayTimeProtocol和TimeProtocol,因此优先使用端口37尝试连接服务器,如果不成功再使用端口13连接。


  3 HTTP代理的连接封装


  要最大限度保证业务计算机的数据安全,工作网络与互联网间应安装防火墙,让业务计算机与外网通过代理服务器进行连接,可以避免业务计算机与外网直接连接,大大提高了安全性。HTTP代理[5]是较常见的代理协议,其使用简单而得以广泛应用,得到大部分网络软件的支持,因此选用此代理协议作为对时器的连接协议。代理服务器常见的请求有GET、POST和CONNECT,因为对时器只需向时间服务器发送连接申请,所以只用到CONNECT请求命令,此命令格式如下:


  CONNECT host:port HTTP/1.0


  其中:host是服务器主机地址,port是端口号,如向timea.nist.gov服务器的37端口申请连接命令如下:


  CONNECT time-a.nist.gov:37 HTTP/1.0


  将此命令发到代理服务器,如果连接成功服务器第1次将返回:


  HTTP/1.1 200 Connection established


  ……


  返回代码200表示连接成功,此后会向客户端发送目标服务器返回的信息,对信息进行相应处理即可获得当前准确时间。


  4计算机时间的校时


  取得准确的时间后,就可以对本地计算机进行校对了。在WINDOWS系统中修改本机时间的API函数[6]是SetLocalTime,当然在此之前必须要将世界时时刻转换为本地时区时刻。如果修改本地时间前要提示用户本地时间误差或要求确认的话,还需要采用以下办法:一是进行2次时间服务器连接,第1次所得结果用于误差计算和确认提示,第2次所得结果用于修改本地时间;二是只进行1次服务器时间连接,在取得服务器时间的同时记录本地时刻,在用户确认修改后将所记录时刻与当前时刻进行时差计算,然后对服务器时刻进行订正后再修改本地时间。第1种方法浪费网络资源,而且由于网络连接的不稳定,有时甚至要进行多次连接才能完成校时,因此采取第2种方法,经过实际应用比较,此方法造成的校时误差不超过10 ms,对工作不会产生任何影响。下面是用Delpli7语言设计的校时具体程序


  过程:


  莫荣耀等:通过HTTP代理连接的网络对时器设计


  try


  //gettimestr为返回服务器时间(UTC)的自定义函数


  //useproxy:是否使用代理标志


  //timesvrURL,portstr:时间服务器URL地址和端口


  //proxyserver,proxyport:代理服务器地址和端口if useproxy then cdatetime:=gettimestr(timesvrURL,portstr,proxyserver,


  proxyport)else cdatetime:=gettimestr(timesvrURL,portstr,’’,′′);if cdatetime<>0 then


  begin


  //取得服务器时间时的本地时刻


  testtick:=GetTickCount;


  //UTC时间转换到本地时区cdatetime:=cdatetime+8/24;


  //提示本地时间误差与确认修改


  if Message DLG(′当前时间与服务器时间误差为′+


  format(′%0.0f′,[(now-cdatetime)*24*60*60*1000])+′毫秒,是否设定?′,mtConfirmation,mbOKCancel,0)=mrOK then begin


  //订正服务器时间cdatetime:=cdatetime+(GetTickCount-testtick)/24/60/60/1000;


  DateTimeToSystemTime(cdatetime,systime);


  //设定系统时间


  SetLocalTime(systime);end;end


  else


  StaticText1.Caption:=′网络对时失败!′;except


  StaticText1.Caption:=′时间服务器连接失败!′;end;


  至此,可通过HTTP代理连接的网络对时器已设计完


  毕,通过实际使用发现,它完全可以满足一般的业务校时需要,并且使用便捷安全。


  5参考文献


  [1]中国气象局.地面气象观测规范[M].北京:气象出版社,2003.


  [2]岳科峰,熊飞丽,王跃科.基于Internet的测试网时间同步问题的研究[J].测控技术,2003,22(6):35-37.


  [3]吴鹤龄.Internet诞生记(下)[J].中国计算机用户,1997(32):16-17.


  [4]刘春青,王平,王金玉,等.NIST在美国标准化中的地位和作用研究


  [J].世界标准化与质量管理,2007(5):9-13.


  [5]孙永辉,姜昱明.HTTP代理服务器的设计与实现[J].计算机工程与设计,2003,24(7):56-58,62.


  [6]张德丰.充分利用Windows API扩展Delphi函数[J].计算机与现代化,2003(3):70-72.


  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


  3注意日常收集相关信息化教学资源


  任课教师也应注意日常收集相关教学资源,这些都是生成性教学资源。高职食品生物化学课程与学生日常生活关系密切,可以说无处不在,无所不在,此外可以开展的相关实验也很多,实验现象对比明显。任课教师可以充分利用数码相机、摄像机、手机等工具,注意观察,把日常课堂教学、实验教学中发生的场景进行记录,不断积累。例如在学生进行叶绿素提取及性质实验时,可以把叶绿素提取过程拍摄下来,以及可以将叶绿素加酸、加碱后颜色变化进行拍照或摄影。这些教学资源是学生日常教学、实验中发生的真实问题,更能吸引同学的注意力,结合教师的理论讲解,更容易促进学生对实验现象或问题的分析、理解和掌握,也更能彰显各个教师的教学特色。


  4对收集到的信息化教学资源进行处理


  通过前面几种方法收集到的教学资源,有的可以直接用于教学中,但也有的不能直接使用,需要采用各种手段和软件进行处理,从而衍生出更多有价值的教学资源。例如,在浏览网页、视频、多媒体课件时,可以将屏幕上看到的变成一张图片保存下来,使用HprSnap抓图软件就是比较好的选择。又如收集到某些案例的教学资源是从期刊网下载的PDF文件或CAJ文件,不能直接复制出来,而文字又较多,此时可以使用中国知网的CAJViewer软件进行文字识别,有选择地将所需案例放入教学课件中。要抽取图片中的文字,也可以先用Photoshop软件保存为PDF格式,再用CAJViewer软件进行文字识别,获取相关文字信息。诸如此类的对教学资源进行处理的方法比较多,要求教师能积极学习并应用[4]。


  5结语


  传统的黑板加粉笔的教学方式已经不能满足教与学的需要,教育信息化是今后教育的发展方向之一。通过文字、图形、图像、动画、声音、视频等方式对学生形成多种刺激,使教学内容生动活泼,激发学生的学习积极性,有效地突破教学中的重点、难点,提高学习效率[5]。通过介绍的若干信息化教学资源收集的快速、简便、有效方法,可以使相关教师在制作课件时,能更快、更好地收集各种信息化教学资源。当然对教学资源的利用,教师应从教学需要出发,融合自己的教学思想、教学风格和方法对信息化教学资源进行选择[6]。


上一篇 在网站中集成HTTP代理的设计与实现 下一篇 HTTP代理防火墙工具的原理与实现