这篇文章介绍一下两个时钟同步的网络协议:NTP和PTP。

这里不涉及协议的原理和具体实现(想了解的可自行Google),重点是如何搭建起这两个服务。

1. NTP及PTP简介

NTP(Network Time Protocol)是用于不同计算机之间同步时钟的网络协议。

它的设计目标是使所有的互连的机器之间的时钟与UTC时间只相差若干毫秒。

目前NTP协议已经是有第4版了,如果不需要了解NTP太多细节的话,看看这个wiki页面应该就足够了。需要注意的就是它有clock strata的概念。

PTP(Precision Time Protocol)看名字就知道是一个比NTP更精确的时钟同步协议了,PTP的设计目标是使机器之间的时钟偏差在sub-microsecond范围—这是wiki页面上提到的,有其他的地方说的是偏差若干微秒,本文搭建的环境中测量到的偏差也在微秒级别,没有到sub-microsecond级别。在使用PTP协议时,需要了解的主要概念点就是它的master/slave机制。

接下来我们就介绍我搭建NTP和PTP环境的过程,所用到的操作系统是CentOS6.5,内核版本是3.10。其他软件的版本会在用到时提及。

2. 搭建NTP服务

配置环境:两台服务器,一台做NTP服务器,一台做NTP的客户端。同时这两台机器都未联网。

NTP服务器地址:192.168.0.11

NTP客户端地址:192.168.0.22

A. 在192.168.0.11中启动NTP服务

Shell

$ service iptables stop // 首先把防火墙关了

$ yum list |grep ntp // 看下yum源中是否有ntp软件

$ yum install -y ntp

$ ntpd --version

ntpd 4.2.6p5

$ vim /etc/ntp.conf // 修改配置文件

restrict 192.168.0.11 mask 255.255.255.0 nomodify nostrap // 限制作为局域网NTP服务器

// 下面两句很关键。含义是如果这台NTP服务器的server地址无法访问,

// 则将本地时间作为NTP服务时间,这个IP地址也是固定的,不要修改

server 127.127.1.0

fudge 127.127.1.0 stratum 10

$ ntpd -p /var/run/ntpd.pid // 启动ntpd

$ service ntpd start // 第二种启动ntpd服务的方法

// 等待5分钟

$ ntpstat // 从这条命令应该能看到NTP时钟同步好了,正常的显示结果应该与下面类似

synchronised to local net at stratum 11

time correct to within 11 ms

polling server every 64 s

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

$serviceiptablesstop//首先把防火墙关了

$yumlist|grepntp//看下yum源中是否有ntp软件

$yuminstall-yntp

$ntpd--version

ntpd4.2.6p5

$vim/etc/ntp.conf//修改配置文件

restrict192.168.0.11mask255.255.255.0nomodifynostrap//限制作为局域网NTP服务器

//下面两句很关键。含义是如果这台NTP服务器的server地址无法访问,

//则将本地时间作为NTP服务时间,这个IP地址也是固定的,不要修改

server127.127.1.0

fudge127.127.1.0stratum10

$ntpd-p/var/run/ntpd.pid//启动ntpd

$servicentpdstart//第二种启动ntpd服务的方法

//等待5分钟

$ntpstat//从这条命令应该能看到NTP时钟同步好了,正常的显示结果应该与下面类似

synchronisedtolocalnetatstratum11

timecorrecttowithin11ms

pollingserverevery64s

B. 在192.168.0.22上启动NTP服务,选择192.168.0.11为NTP服务器

Shell

$ service iptables stop

$ yum install -y ntp

$ vim /etc/ntp.conf // 添加下面这个server地址,把其他的都注释掉

server 192.168.0.11

$ service ntpd start

$ netstat // 等待若干时间应该就能够显示同步成功了

1

2

3

4

5

6

$serviceiptablesstop

$yuminstall-yntp

$vim/etc/ntp.conf//添加下面这个server地址,把其他的都注释掉

server192.168.0.11

$servicentpdstart

$netstat//等待若干时间应该就能够显示同步成功了

我的这两台实验机器是在同一个Rack的,结果显示差不多同步的偏差在30ms左右。

每个版本的ntpd配置文件可能有少许的差别,不过好在注释都做的不错,所以别的细节就不啰嗦了。

3. 搭建PTP服务

从List of PTP implementations可以看到PTP的实现有很多很多种,可以是硬件实现的,可以是软件实现的也可以是软硬件结合实现的。本文中搭建的PTP服务是基于软件PTPd。如果没有特殊的硬件的话,这算是一种非常方便的方法了。

Shell

$ service iptables stop // 关掉防火墙

$ yum list |grep ptp // 检查yum源

$ yum install -y ptpd

$ ptpd2 --version

ptpd2 version 2.3.0

// 弄一个管理脚本,从serverfault找来的 :)

// http://serverfault.com/questions/329127/ptp-time-synchronization-on-centos6-rhel

$ vim ptpd.sh // 将PTPADRGS 改为 PTPD_EXTRA_OPTIONS

$ chmod +x ptpd.sh

$ vim /etc/ptpd2.conf // 修改配置文件

ptpengine:preset=masterslave // 对于master主机,不要选masteronly,具体原因请查看help

ptpengine:preset=slaveonly // 对于slave主机

// 其他选项也可以根据需要进行调整,比如log是否开启,是否绑定CPU。这些看配置文件的注释就好了

$ vim /etc/sysconfig/ptpd2 // 修改启动命令,主要就是指定PTPD的配置文件

PTPD_EXTRA_OPTIONS="-c /etc/ptpd2.conf"

// 现在就可以使用下面三个命令来启动,查看和关闭ptpd服务了

$ ./ptpd.sh start

$ ./ptpd.sh status

$ ./ptpd.sh stop

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

$serviceiptablesstop//关掉防火墙

$yumlist|grepptp//检查yum源

$yuminstall-yptpd

$ptpd2--version

ptpd2version2.3.0

//弄一个管理脚本,从serverfault找来的:)

//http://serverfault.com/questions/329127/ptp-time-synchronization-on-centos6-rhel

$vimptpd.sh//将PTPADRGS改为PTPD_EXTRA_OPTIONS

$chmod+xptpd.sh

$vim/etc/ptpd2.conf//修改配置文件

ptpengine:preset=masterslave//对于master主机,不要选masteronly,具体原因请查看help

ptpengine:preset=slaveonly//对于slave主机

//其他选项也可以根据需要进行调整,比如log是否开启,是否绑定CPU。这些看配置文件的注释就好了

$vim/etc/sysconfig/ptpd2//修改启动命令,主要就是指定PTPD的配置文件

PTPD_EXTRA_OPTIONS="-c /etc/ptpd2.conf"

//现在就可以使用下面三个命令来启动,查看和关闭ptpd服务了

$./ptpd.shstart

$./ptpd.shstatus

$./ptpd.shstop

如果遇到任何问题,首先一定要看看help,使用-H选项的话还能看到非常详细的配置(虽然大多我可看不懂,不过不能不看,理解的越多,遇到的问题就会越少)。

如果log里面的信息看不懂,可以把代码下下来,一个grep搞定。

经测试,在我的机器上使用PTPD软件搭建的服务,时钟偏移的平均值能够达到5us左右。这个粒度基本能满足我们的需求了。

参考链接

ptp精准时间协议_网络时钟同步协议– NTP, PTP – 默默的点滴相关推荐

  1. NTP网络时钟同步协议对计算机网络数据的重要性

    NTP网络时钟同步协议对计算机网络数据的重要性 概述:电脑时间走时不准是出了名的.它一般是以廉价的振荡电路或石英钟为基础,每天的误差可达数秒,经过一段时间的累积就会出现较大的误差.随着不断增加的分散式 ...

  2. ntp网络时间服务器(网络时钟同步)客户端与服务器端设置方法说明

    ntp网络时间服务器(网络时钟同步)客户端与服务器端设置方法说明 更多资料参考--安徽京准--ahjzsz.COM 为了让文件上的时间戳保持一致,我们需要对服务器进行ntp时间同步. ntp服务器分服 ...

  3. 探索:制药厂系统网络时钟同步(NTP时间同步服务器)

    探索:制药厂系统网络时钟同步(NTP时间同步服务器) 探索:制药厂系统网络时钟同步(NTP时间同步服务器) [摘要]SCADA系统通过I业环网完成数据的传输,存储在服务器的数据库,在通过软件的渠道集成 ...

  4. 西门子PCS7系统NTP网络时钟同步(NTP时钟发生器)介绍

    西门子PCS7系统NTP网络时钟同步(NTP时钟发生器)介绍 HR-901GB时钟服务器由安徽京准科技研制开发, 西门子PCS7系统时钟同步模式介绍 PCS7系统基于TIA构建方式,在整个系统下包含了 ...

  5. ptp精准时间协议_PTP精确时钟同步协议概述及应用

    PTP精确时钟同步协议的英文表述为:Precision Time Protocol:为这三个英文单词的缩写. 精确时钟同步协议PTP(Precision Time Protocol)是一种对标准以太网 ...

  6. CentOS网络时钟同步协议-- NTP, PTP

    这篇文章介绍一下两个时钟同步的网络协议:NTP和PTP. 这里不涉及协议的原理和具体实现(想了解的可自行Google),重点是如何搭建起这两个服务. 1. NTP及PTP简介 NTP(Network ...

  7. SDH通信网络时钟同步服务(NTP/PTP精密网络时钟源)精度分析

    SDH通信网络时钟同步服务(NTP/PTP精密网络时钟源)精度分析 SDH通信网络时钟同步服务(NTP/PTP精密网络时钟源)精度分析 安徽京准公司提供原创资料!! 3) 从站时钟要从高一级设备或同一 ...

  8. 分布式数据库服务器时钟同步(NTP网络时钟同步)北斗卫星同步时钟起到关键性作用

    分布式数据库服务器时钟同步(NTP网络时钟同步)北斗卫星同步时钟起到关键性作用 分布式数据库服务器时钟同步(NTP网络时钟同步)北斗卫星同步时钟起到关键性作用 文章由安徽京准科技公司提供请勿转载 时间 ...

  9. GPS北斗授时服务,NTP让网络时钟同步更精确

    GPS北斗授时服务,NTP让网络时钟同步更精确 GPS北斗授时服务,NTP让网络时钟同步更精确 1.时间同步技术必定将是整个大数据处理系统的重要支撑和保障.时间同步技术使数据产生与处理系统的所有节点具 ...

最新文章

  1. [MySQL FAQ]系列 -- 为何innodb表select count(*)很慢
  2. MapReduce实现共同朋友问题
  3. APAX-5017PG 项目开发全程记录 - 筹备篇
  4. 【资源】首发:徐亦达老师的机器学习课件及下载(中文目录)
  5. 1847 奇怪的数学题(杜教筛 + Min_25 + 第二类斯特林数)
  6. java 学习第三篇if判断
  7. javascript 基础之手机端相关事件-touch(详细篇)(1)
  8. Atitit 项目通讯接口方案attilax总结.docx
  9. 2022 年顶级网络安全专家最爱用的10大工具
  10. 数据治理系列1:数据治理框架【解读分析】
  11. C++中的 求模运算 和 求余运算
  12. 关于数组中的大括号{}和数组的遍历
  13. 1214_嵌入式硬件常识积累_什么是TTL电平
  14. vue组件中ctrl键和shift键操作多选
  15. 中国云计算的十年江湖
  16. 【学习OpenCV】给轮廓画出矩形和圆形边界
  17. 慕尼黑大学计算机语言学,慕尼黑大学,斯图加特大学和萨尔大学的计算语言学硕士如何选择?...
  18. aws cli 上传文件到s3命令_使用 AWS CLI 分段上传到 Amazon S3
  19. 工作中的自我反思[实时更新]
  20. 为什么ES不适合做数据存储

热门文章

  1. 百度AI攻略:EasyDL专业版
  2. Sort sort =new Sort(Sort.Direction.ASC,“id“)
  3. Markdown格式文档图片设置居中
  4. stm32cubemx配置pwm
  5. 主动降噪耳机榜单,降噪耳机南卡和万魔哪个降噪好?
  6. Android学习之RecyclerView的使用
  7. Power BI中的填充功能
  8. 2021-06-22 19点30 程序外生活 - 中国A50指数 机器预测学习跟踪记录 - 周2白天反弹持续进行,量能不高但平稳,持续反弹概率大,等待顶部信号出现再反向交易,暂多。但周月线持续跌势。
  9. VMTools安装及使用
  10. js中的escape方法有什么用?