北斗授时产品(GPS北斗授时设备)加NTP时间服务器设计思路
北斗授时产品(GPS北斗授时设备)加NTP时间服务器设计思路
京准电子科技官微——ahjzsz
在我们依赖文件服务器、邮件服务器、互联网网关以及其它无数网络设备的背后,存在一个基本的信任就是:网络里的计算机都有精确的时间。伴随着企业计算的引人注目的增长以及真正类似UNIX的多任务机制在PC上实现,相应地,企业内产生了同步所有计算机/工作站的需求。
数据共享、分布式软件开发和安全是当今三个最常用的也是最容易遭受攻击的网络应用。网络管理员需要精确的时间信息来进行网络操作,以确保这三种应用以及其它关键网络应用的最佳性能。一台专门设计来在企业内部发布精确时间信息的时间服务器(NTP)在今天的网络环境内成为一个基本组成部分。
你的计算机有正确的时间吗?
每周,计算机时钟都会有几秒钟的漂移,包括复杂的基于UNIX的工作站也是这样。因此,任意两台计算机的时间差都可能达到几分钟甚至几个小时。看看你周围的计算机,假如有两台计算机的时间是统一的、准确的时间,这将会是一件非常难得的事。
问题在于计算机只是机械的信任它处理的信息,就好像其它计算机知道准确的时间一样。它们假设这是正确的,但是当假设错误时就会导致操作失败。
网络授时协议和GPS是救星
网络授时协议使得网络内的计算机有可能统一到准确的时间。NTP是互联网TCP/IP协议族的一部分,它把网络里的计算机时间同步到共同的时间源。在大的企业网内,有可能用到不同级别的时间服务器(NTP)来分发统一的时间。
有很多时间源可以来设置NTP的时间,精度由低到高包括:拨号连接,无线电接收机、互联网NTP时间服务器(NTP)以及GPS卫星系统。互联网上有很多NTP服务器,但是它们的可靠性比较低,因为这取决于你的互联网连接的可靠性、本地网的流量以及NTP服务器的可靠性和负载情况。而且,因为互联网上的任何人都可以很容易的伪装一个错误的时间,所以安全性降低了。GPS在世界任何地方都可以提供一个高可靠的时间标准给网络管理员,GPS是设计来做导航和授时的,它由地球轨道上的带有原子钟的24颗卫星组成。基于GPS的时间服务器(NTP)不但授时精度比互联网上的时间服务器(NTP)高,而且时间还可以连续不断的更新,就是说GPS时钟可以每秒更新时间服务器(NTP)的时间,而不需要周期性的发送请求到其它时间服务器(NTP)请求时间,这只能在一个请求周期结束的时候才能更新本地时间服务器(NTP)的时间。


另一个网络授时的重要问题是时间源的冗余。这在网络分布比较广阔的环境下很必要,比如分布在不同的建筑甚至在不同的大陆。数据流量很大的环境、从事重要任务的部门以及具有可疑可靠性数据链的网络是另外一个问题,在这种场合冗余备份就更加重要。如果是在这种情况下,需要好几个GPS时间服务器(NTP)提供必要的冗余,以确保即使网络连接断了也能使得所有的工作站保持时间同步。
依赖时间的网络应用
有很多应用依赖计算机间准确的时间才能运作正常,如果计算机间的时间误差比较大,这些应用和协议就可能完全失败。
分布式软件开发
网络文件系统(NFS)是一个依赖时间的网络应用,它完全依赖各个工作站给服务器上的文件提供时间戳。当一个文件被创建或者被修改了,终端工作站的时钟被作为时间戳加在文件上。因此,如果客户端的时钟不同于服务器的时钟,则文件的时间戳将有不同。很多应用,从磁盘备份到生成程序都使用时间戳来确定哪个文件是最新的。在这种情况下,错误的时间戳意味着重大的文件损失,也就是工时和机时的损失。
计算机程序员经常需要“make”程序来编译代码生成软件应用程序,“make”程序完全依赖各个文件的时间戳来确定哪个文件最近被修改了,随后决定哪个文件需要重新生成。如果“make”程序在一个分布式文件系统中应用,比如NFS,一台终端标记的时间戳和其它终端标记的会有不同,除非时钟是同步的。如果两台终端的时间不一致,这时运行“make”就会发生严重的错误。对于有些“make”程序,允许的时间偏差可以大一些,但是从典型意义上来说,与单独一次编译差不多,这段时间对于今天的计算机来说只不过是几秒钟而已。
很多情况下,有很多终端和一台生成程序的主机。一个工程组可能保留一台最快的计算机来生成所有的程序,或者可能是来自几台不同机器的同一个项目的很多程序员。客户端使用自己的计算机编辑文件,而另外一台计算机编译这些文件。如果两台计算机的时间不同,导致的问题可能是好的话简单的浪费了一台计算机资源,或者严重的话就是不能包含一些最新生成的代码。
安全
当你组织内部的计算机网络不断扩大,更多的部门依赖互联网上的资源的时候,我们更关心这个重要的资源的安全性。
有几个新程序可以使你的内部网更安全,他们的作用范围从保护登录名和口令信息到验证分布式环境中至关重要的信息。下面讨论几个比较普遍的安全话题。
Kerberos是MIT开发的一个协议,用来在一个不安全的网络内,比如说一个大学网,发送加密的口令信息。Kerberos允许在互联网上安全
通信而不需要防火墙,并且支持很多通用的TCP/IP应用程序,例如telnet,ftp以及很多远程过程调用RPC程序。
Kerberos允许用户向Kerberos密钥分发中心(KDC)服务器申请一个“加密票”,“加密票”包括用户的口令和时间戳,两者用计算机上常用的DES算法加密。时间戳用来防止网络信息拦截机把拦截到的“加密票”伪装成刚刚授权的“加密票”不断的重复发送。“加密票”在一段时间内有效,这就要求客户端机器时钟和Kerberos服务器时钟在这一段时间内同步。有代表性的,时间范围是5分钟,时间范围越小网络越安全。
如果时钟漂移出允许的时间范围,网络上的用户就不能使用Kerberos并且不能使用网络。如果扩大时间范围,则这个网络对于网络上的监听者来说就是容易攻破的。
和具有Kerberos的网络一样,安全的NFS和RPC程序运行允许DES密钥通过以访问文件服务器和做客户端接入,虽然他们和Kerberos系统不同,但是他们使用相似的方法即在数据包内加上时间戳。和具有Kerberos的网络一样,如果客户端和服务器超出密钥的时间范围,链接将中断,用户就不能使用请求的资源。如果没有精确的时间源,这种安全措施就不能成为被广泛支持的协议。
诊断和性能
利用时间戳诊断优化网络功能有好几种方法,时间戳在这种情况下非常重要,可以确保网络的最小标准和识别问题,这些会影响网络的性能和效率。
电子邮件
电子邮件是计算机网络中最重要的信息流,即使没有本地网,许多公司也会利用MODEM在世界各地或者只是在一个房间内的一组人之间利用电子邮件相互通信。
时间戳可以用来衡量邮件服务器的性能和可靠性,并且设置性能标准,测定瓶颈服务器,判定哪个链接需要更宽的带宽。同样的邮件服务器要有时钟同步才行。
网络管理
SNMP被广泛的用来管理和控制远程设备,SNMP代理可以是集线器、交换机、网桥、路由器甚至计算机。这些网络设备内的代理向网络管理站(NMS)发送重要事件作为对故障和过载报警的响应。NMS站从整个网络内收到数百的重要事件和报警,必须使得这些报警和时间相关联。如果设备是错误的时间,则重大事件报告内也是包含的错误时间,这就很难确定是什么原因引起这种状况,触发这些重大事件报告。
SNMP同样包含远程网络监控(RMON)标准,可以在分布式的监控设备里有效的设置拦截包和极限重大事件。这个标准允许用户拦截包和报警,记录他们的时间戳并和其它RMON设备的结果相关联。还有,如果每个RMON设备的时钟没有同步,比较的结果和相关性就没有意义,甚至导致错误的结论。
总的说来,现代网络的分布计算环境有许多非常依赖精确时间的应用,包括电子邮件服务器、文件服务器以及C/S应用。用时间来标记这些文件创建以及后来修改的情况。这些时间戳由很多不同的机器产生,他们的时间的可靠性经常被忽略,等到发现有问题已经晚了。
因为你的网络的性能对于你的整个组织的性能非常重要,所以精确的时间服务器(NTP)被设计来优化企业网络的性能,可以降低故障诊断处理的时间,将来它会是一个价格合理的必不可少的保证措施。
我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru
在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo
我需要检查DateTime是否采用有效的ISO8601格式。喜欢:#iso8601?我检查了ruby是否有特定方法,但没有找到。目前我正在使用date.iso8601==date来检查这个。有什么好的方法吗?编辑解释我的环境,并改变问题的范围。因此,我的项目将使用jsapiFullCalendar,这就是我需要iso8601字符串格式的原因。我想知道更好或正确的方法是什么,以正确的格式将日期保存在数据库中,或者让ActiveRecord完成它们的工作并在我需要时间信息时对其进行操作。 最佳答案 我不太明白你的问题。我假设您想检查
这个问题在这里已经有了答案:Railsformattingdate(4个答案)关闭4年前。我想格式化Time.Now函数以显示YYYY-MM-DDHH:MM:SS而不是:“2018-03-0909:47:19+0000”该函数需要放在时间中.现在功能。require‘roo’require‘roo-xls’require‘byebug’file_name=ARGV.first||“Template.xlsx”excel_file=Roo::Spreadsheet.open(“./#{file_name}“,extension::xlsx)xml=Nokogiri::XML::Build
我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s
您如何在Rails中的实时服务器上进行有效调试,无论是在测试版/生产服务器上?我试过直接在服务器上修改文件,然后重启应用,但是修改好像没有生效,或者需要很长时间(缓存?)我也试过在本地做“脚本/服务器生产”,但是那很慢另一种选择是编码和部署,但效率很低。有人对他们如何有效地做到这一点有任何见解吗? 最佳答案 我会回答你的问题,即使我不同意这种热修补服务器代码的方式:)首先,你真的确定你已经重启了服务器吗?您可以通过跟踪日志文件来检查它。您更改的代码显示的View可能会被缓存。缓存页面位于tmp/cache文件夹下。您可以尝试手动删除
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配
基础版云数据库RDS的产品系列包括基础版、高可用版、集群版、三节点企业版,本文介绍基础版实例的相关信息。RDS基础版实例也称为单机版实例,只有单个数据库节点,计算与存储分离,性价比超高。说明RDS基础版实例只有一个数据库节点,没有备节点作为热备份,因此当该节点意外宕机或者执行重启实例、变更配置、版本升级等任务时,会出现较长时间的不可用。如果业务对数据库的可用性要求较高,不建议使用基础版实例,可选择其他系列(如高可用版),部分基础版实例也支持升级为高可用版。基础版与高可用版的对比拓扑图如下所示。优势 性能由于不提供备节点,主节点不会因为实时的数据库复制而产生额外的性能开销,因此基础版的性能相对于