Linux 时间同步

Linux 时间同步,第1张

在Linux系统中存在两个时钟时间,分别是

硬件时钟是指的在主板上的时钟设备,也就是通常可以在BIOS画面设置的时钟,即使关机状态也可以计算时间

而系统时钟则是指Kernel中的时钟,其值是由1970年1月1日00:00:00 UTC时间至当前时间所经历的秒数总和。当Linux启动的时候,系统时钟会读取硬件时钟的设定,之后系统时钟独立运作。长时间运行两者可能将会产生误差。另外所有的Linux相关指令都是读取系统时钟指定的,如date。

我们这里讨论的是系统时间。

NTP,网络时间协议,使用 123/udp 端口进行网络时钟同步;NTP 是仍在使用中的最古老的网络传输协议之一(1985 年前开始)。

以前Linux时间同步基本是使用 ntpdate 和 ntpd 这两个工具实现的,但是这两个工具已经很古老了。

注ntpdate和ntpd是互斥的,两者不能同时使用。ntpd是步进式平滑的逐渐调整时间,而ntpdate是断点式更新时间。

RHEL/CentOS 7x 已经将 chrony 作为默认时间同步工具了。

其他Linux (如 ubuntu) 使用 systemd-timesyncd 服务。

chrony 是 RedHat 开发的,它是网络时间协议(NTP)的另一种实现;

RHEL/CentOS 7x 的默认时间同步工具;

chrony 可以同时做为 ntp 服务的客户端和服务端;安装完后有两个程序 chronyd、chronyc:

chronyd 是一个 daemon 守护进程,chronyc 是用来监控 chronyd 性能和配置参数的命令行工具。

系统版本:CentOS 75

chrony_server(relay):10004
chrony_client:10005

Edit file /etc/chronyconf

默认已经启动,不需要调整

example:

配置 chrony

edit file: /etc/chronyconf

再次用chronyc 命令检查,比较它与chronyd server的差异

systemd-timesyncd 是一个用于跨网络同步系统时钟的守护服务。它实现了一个 SNTP 客户端,但更轻量级,更集成systemd。

systemd-timesyncd 启动时会读取 /etc/systemd/timesyncdconf 配置文件,内容如下:

你可以输入你希望使用的其它时间服务器,比如你自己的本地 NTP 服务器,在 NTP= 行上输入一个以空格分隔的服务器列表。

如果服务器可以直接连接internet,不用修改默认配置;如果在内网,需要单独指定。

在最新的 Ubuntu 版本中,timedatectl 替代了老旧的 ntpdate。默认情况下,timedatectl 在系统启动的时候会立刻同步时间,并在稍后网络连接激活后通过 socket 再次检查一次。

timesyncd 替代了 ntpd 的客户端的部分。默认情况下 timesyncd 会定期检测并同步时间。它还会在本地存储更新的时间,以便在系统重启时做时间单步调整。

通过 timedatectl 和 timesyncd 设置的当前时间状态和时间配置,可以使用 timedatectl status 命令来进行确认。

由于 timedatectl 的存在,各发行版已经弃用了 ntpdate,默认不再进行安装。

timedatectl
timedatectl status ,查看时间同步状态;
timedatectl set-ntp true ,开启网络时间同步;

timedatectl set-timezone ZONE ,设置时区。

NTP synchronized: yes 表示时间是同步状态。

查看服务状态以及从哪个ntp server同步时间。

NTP:软件层面实现,成本低。同步精度10ms左右。

PTP:需要网络接口具备在物理层提供时间戳的功能,同步精度优于100ns,局域网的节点需要使用支持PTP功能的交换机。局域网网络接点不支持PTP的话,只能同不到us,而且受网络背景流量影响。

FTP(File Transfer Protocol)是 Internet 上用来传送文件的协议(文件传输协议)。它是为了我们能够在 Internet 上互相传送文件而制定的的文件传送标准,规定了 Internet 上文件如何传送。也就是说,通过 FTP 协议,我们就可以跟 Internet 上的 FTP 服务器进行文件的上传(Upload)或下载(Download)等动作。<BR><BR> 和其他 Internet 应用一样,FTP 也是依赖于客户程序/服务器关系的概念。在 Internet 上有一些网站,它们依照 FTP 协议提供服务,让网友们进行文件的存取,这些网站就是 FTP 服务器。网上的用户要连上 FTP 服务器,就要用到 FPT 的客户端软件,通常 Windows 都有“ftp”命令,这实际就是一个命令行的 FTP 客户程序,另外常用的 FTP 客户程序还有 CuteFTP、Ws_FTP、FTP Explorer等。<BR><BR> 要连上 FTP 服务器(即“登陆”),必须要有该 FTP 服务器的帐号。如果是该服务器主机的注册客户,你将会有一个 FTP 登陆帐号和密码,就凭这个帐号密码连上该服务器。但 Internet 上有很大一部分 FTP 服务器被称为“匿名”(Anonymous)FTP 服务器。这类服务器的目的是向公众提供文件拷贝服务,因此,不要求用户事先在该服务器进行登记注册。<BR><BR> Anonymous(匿名文件传输)能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“anonymous”和“guest”就可有限制地访问远程主机上公开的文件。现在许多系统要求用户将Emai1地址作为口令,以便更好地对访问进行跟综。出于安全的目的,大部分匿名FTP主机一般只允许远程用户下载(download)文件,而不允许上载(upload)文件。也就是说,用户只能从匿名FTP主机拷贝需要的文件而不能把文件拷贝到匿名FTP主机。另外,匿名FTP主机还采用了其他一些保护措施以保护自己的文件不至于被用户修改和删除,并防止计算机病毒的侵入。在具有图形用户界面的 WorldWild Web环境于1995年开始普及以前,匿名FTP一直是Internet上获取信息资源的最主要方式,在Internet成千上万的匿名PTP主机中存储着无以计数的文件,这些文件包含了各种各样的信息,数据和软件。 人们只要知道特定信息资源的主机地址, 就可以用匿名FTP登录获取所需的信息资料。虽然目前使用>方法/步骤分步阅读

1

/12

PTP 授时同步原理时间同步含义是指按照接收到的标准时间通过调整频率和相位来调整被授时设备内部的时钟。时钟的相位用数值表示出来其实就是我们所说的时刻。时间同步有授时和守时两大主要功能,通俗的说,授时就是“对表”,通过不定期地对表动作,将本地时间与标准时间进行相位同步;守时即是在对表的间隙里,本地时间与标准时间之间不能出现太大的偏差。

2

/12

PTP 授时原理为在同一个局域网中, 主时钟周期性地发送时间同步报文, 从时钟接收该同步报文, 同时随机性的给主时钟发送延迟请求报文, 然后通过同步算法调整自身时钟的偏差。

3

/12

从主时钟所在的系统中由 PTP 协议进行组包同步数据流, 然后经过传输层, 网络层, 数据链路层。网络多播负责将数据流发送给交换机, 交换机将转发该数据报文到同一个多播组, 同一个多播组的从时钟将接收到该同步报文, 从链路层传送送到 PTP 协议层进行解包处理。同时从时钟发送的延迟请求报文过程将由从时钟协议层组包, 然后通过网络链路传回到主时钟,来回传送的原理类似。

4

/12

经往返反复计算,得到比较理想的偏差数值后,通过计算从时钟和主时钟之间的偏差比率计算得到从时钟和主时钟之间的一个相位差和频率差, 将所获偏差补尝给从时钟设备, 从而达到主从时钟设备的一致。

5

/12

PTP 授时钟硬件的设计,ptp 授时精度从理论上来说主要受两方面的影响,一方面是打时间戳的位置另外是软件同步的算法。打时间戳目前可以在物理层、数据链路层和应用层上进行,同时精度会依次降低。

SYN2401型PTP主时钟

6

/12

本文讨论的是基于以太网的传输媒介, 在物理层打时间戳的方式, 该方式实现可以获得较高的同步精度。该方式下的 PTP 数据报文流改变标准的以太网物理层芯片, 使用精度更高的具有 IEEE1588 PTP 功能的太网物理层芯片。一般来讲硬件单元包括 UDP 用户数据包协议传输层、网络连接协议 IP 传输层、MAC 数据链路层、 传输层和 PHY 物理层。

7

/12

PTP 授时钟软件的设计

软件采用了分层模型, 模块化设计的思想,协议栈与平台相关的部分分开, 这样可以很方便的移植到任何平台下, 在系统调试和功能的删除添加 *** 作非常的方便。

系统初始化单元主要用于对定时器、系统日志模块、配置模块等进行初始化。其中初始化包括但不限于资源分配、创建定时器、创建消息队列以及初始化系统日志等。其中定时器用于完成 PTP 协议交互时的逻辑 *** 作,保证 PTP 协议的正常运转。消息队列负责为用户提供一个外部的 API 接口,方便获取 PTP 协议运转过程中发生的异常信息。

SYN2401型PTP主时钟

8

/12

在这里需要说明一下人机交互单元,这一单元主要由配置模块和测试模块组成, 前者用于提供参数配置接口, 接收用户输入的配置请求,根据配置请求对PTP 协议的实现的系统参数进行配置;后者负责提供用于测试的应用程序编程接口, 并对该测试请求要求的 PTP 协议的功能进行测试。用户输入的测试请求,就是通过测试模块完成的。

9

/12

协议引擎单元包括定时器、PTP 报文处理模块、网络通讯模块、同步算法模块和时钟处理模块。定时器顾名思义为 PTP 协议的运行提供定时功能,一般有同步间隔定时器、接收超时定时器和延迟请求间隔定时器等三种类型的定时器。ptp 报文处理模块一般处理同步报文、跟随报文、延迟请求报文和延迟响应报文, 根据 ptp 协议组织并封装各种 ptp 报文, 通过网络通讯模块发送 ptp 报文, 或从网络通讯模块接收 ptp 报文,并获取各 PTP 报文的发送时间戳和接收时间戳。

SYN2401型PTP主时钟

10

/12

ptp 授时时钟产品为适应更高精度的时间同步,推出纳秒级的时间同步技术 PTP。相关的 ptp 授时系列产品包括 PTP 主时钟和从时钟,除此之外还有 PTP 授时板卡,其中板卡分为串口授时和总线控制两种,采用高速集成芯片实现硬件时间戳打标功能,大幅度提高了对时和授时精度。

11

/12

ptp 授时钟主要分为主时钟和从时钟,一般 1588 时钟都是主从成套使用, 因此可以选择 SYN2401型PTP主时钟和SYN2403型PTP从时钟,如果有 1588 时钟集成能力,可以选择各种 1588 时钟板卡,有核心板卡和整块板卡,1588 核心板卡体积小巧,可以做主时钟也可以做从时钟,性价比极高,时间信息、非连续调控设备时钟。

12

/12

时间同步有2个主要功能:授时和守时,用通俗的语音描述,授时就是“对表”通过不定期地对表动作,将本地时刻与标准时刻相位同步;守时保证在对表的间隙里, 本地时刻与标准时刻偏差不要太大。

1 定时:是指根据参考时间标准对本地钟进行校准的过程);授时(指采用适当的手段发播标准时间的过程);2 时间同步:是指在母钟与子钟之间时间一致的过程,又称时间统一或简称时统);3 守时:是指将本地钟已校准的标准时间保持下去的过程,国内外守时中心一般都采用由多台铯原子钟和氢原子钟组成的守时钟组来进行守时守时是一种素质,西方人一般都讲究遵守时间,德语中有一句话“准时就是帝王的礼貌”。 守时是职业道德的一个基本要求,如果你是一个新人刚参加工作,需要面试,而你却迟到了,那么不管你有什么理由,都会被视为缺乏自我管理和约束能力,即缺乏职业能力,给面试者留下非常不好的印象。守时是纪律中最原始的一种,无论上班下班约会都必须准时,守时即是信用的礼节,公共关系的首环,也是一个人作人的最基本的要求。方法/步骤分步阅读1/12PTP 授时同步原理时间同步含义是指按照接收到的标准时间通过调整频率和相位来调整被授时设备内部的时钟。时钟的相位用数值表示出来其实就是我们所说的时刻。时间同步有授时和守时两大主要功能,通俗的说,授时就是“对表”,通过不定期地对表动作,将本地时间与标准时间进行相位同步;守时即是在对表的间隙里,本地时间与标准时间之间不能出现太大的偏差。2/12PTP 授时原理为在同一个局域网中, 主时钟周期性地发送时间同步报文, 从时钟接收该同步报文, 同时随机性的给主时钟发送延迟请求报文, 然后通过同步算法调整自身时钟的偏差。3/12从主时钟所在的系统中由 PTP 协议进行组包同步数据流, 然后经过传输层, 网络层, 数据链路层。网络多播负责将数据流发送给交换机, 交换机将转发该数据报文到同一个多播组, 同一个多播组的从时钟将接收到该同步报文, 从链路层传送送到 PTP 协议层进行解包处理。同时从时钟发送的延迟请求报文过程将由从时钟协议层组包, 然后通过网络链路传回到主时钟,来回传送的原理类似。4/12经往返反复计算,得到比较理想的偏差数值后,通过计算从时钟和主时钟之间的偏差比率计算得到从时钟和主时钟之间的一个相位差和频率差, 将所获偏差补尝给从时钟设备, 从而达到主从时钟设备的一致。5/12PTP 授时钟硬件的设计,ptp 授时精度从理论上来说主要受两方面的影响,一方面是打时间戳的位置另外是软件同步的算法。打时间戳目前可以在物理层、数据链路层和应用层上进行,同时精度会依次降低。SYN2401型PTP主时钟6/12本文讨论的是基于以太网的传输媒介, 在物理层打时间戳的方式, 该方式实现可以获得较高的同步精度。该方式下的 PTP 数据报文流改变标准的以太网物理层芯片, 使用精度更高的具有 IEEE1588 PTP 功能的太网物理层芯片。一般来讲硬件单元包括 UDP 用户数据包协议传输层、网络连接协议 IP 传输层、MAC 数据链路层、 传输层和 PHY 物理层。7/12PTP 授时钟软件的设计软件采用了分层模型, 模块化设计的思想,协议栈与平台相关的部分分开, 这样可以很方便的移植到任何平台下, 在系统调试和功能的删除添加 *** 作非常的方便。系统初始化单元主要用于对定时器、系统日志模块、配置模块等进行初始化。其中初始化包括但不限于资源分配、创建定时器、创建消息队下人机交互单元,这一单元主要由配置模块和测试模块组成,前者用于提供参数配置接口,接收用户输入的配置请求,根据配置请求对PTP协议的实现的系统参数进行配置;后者负责提供用于测试的应用程序编程接口,并对该测试请求要求的PTP协议的功能进行测试。用户输入的测试请求,就是通过测试模块完成的。9/12协议引擎单元包括定时器、PTP报文处理模块、网络通讯模块、同步算法模块和时钟处理模块。定时器顾名思义为PTP协议的运行提供定时功能,一般有同步间隔定时器、接收超时定时器和延迟请求间隔定时器等三种类型的定时器。ptp报文处理模块一般处理同步报文、跟随报文、延迟请求报文和延迟响应报文,根据ptp协议组织并封装各种ptp报文,通过网络通讯模块发送ptp报文,或从网络通讯模块接收ptp报文,并获取各 PTP 报文的发送时间戳和接收时间戳。SYN2401型PTP主时钟10/12ptp授时时钟产品为适应更高精度的时间同步,推出纳秒级的时间同步技术PTP。相关的ptp授时系列产品包括PTP主时钟和从时钟,除此之外还有PTP授时板卡,其中板卡分为串口授时和总线控制两种,采用高速集成芯片实现硬件时间戳打标功能,大幅度提高了对时和授时精度。11/12ptp授时钟主要分为主时钟和从时钟,一般1588时钟都是主从成套使用,因此可以选择SYN2401型PTP主时钟和SYN2403型PTP从时钟,如果有1588时钟集成能力,可以选择各种1588时钟板卡,有核心板卡和整块板卡,1588核心板卡体积小巧,可以做主时钟也可以做从时钟,性价比极高,时间信息、非连续调控设备时钟。12/12时间同步有2个主要功能:授时和守时,用通俗的语音描述,授时就是“对表”通过不定期地对表动作,将本地时刻与标准时刻相位同步;守时保证在对表的间隙里,本地时刻与标准时刻偏差不要太大。

PTP从节点设备的频率和时间信息来自于总的管理节点。基本概念是能够将精度的PTP帧的时间戳尽可能接近物理线路。PTP 是一种高精度时间同步协议,可以到达亚微秒级精度,有资料说可达到30纳秒左右的偏差精度。但需要网络的节点(交换机)支持PTP协议,才能实现纳秒量级的同步。

为了支持PTP协议,设备从数据包中解码EtherType / Sub-type字段,并识别出这些是特殊的需要将其转发给CPU的PTP消息。当这些8021AS控制帧到达给定节点时以及它们离开节点时,设备还会为它们加时间戳。

设备支持完全灵活的配置16种PTP帧类型,通过使用MsgldTSEn(PTP全局寄存器偏移量0x01)来配置时间戳。PTP帧类型取决于在PTP普通头部作为特殊的MsgldTSEn域(下图)。

PTP内核的帧的嗅探和基于以太网类型的和从头部来的子类型的域:

取决于是否需要验证帧的时间戳信息。注意只有带有PTP事件信息的帧可以获取在PTP内核的时间戳。设备支持两个到达计数器和一个离开计数器。

这确保了多个到达事件信息的时间戳可以被硬件捕获。如:由于两种类型的PTP帧没有时间相关性,因此来自总的管理的同步帧可能与PDelayReq或PDelayResponse消息到达给定节点的时间大致相同。

交换机的数据管道识别PTP帧使用的保留的多播地址并转发它到CPU_DEST(全局偏移量0x1A)。接收到的PTP帧在发送到CPU_DEST之前是一会被修改的,除了添加到To_CPU DSA标签之外。设备支持两个步进的PTP时钟,其中软件发出后续消息以传达该节点的停留时间(从PTP帧在物理线路上进入此节点到实际发送到下游节点为止所经过的时间。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12633924.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存