利用LinuxPTP进行时间同步(软/硬件时间戳)

PTP的一些名词

PTP域中的节点称为时钟节点,PTP协议定义了以下三种类型的基本时钟节点:
OC(Ordinary Clock,普通时钟):只有一个PTP通信端口的时钟是普通时钟。
BC(Boundary Clock,边界时钟):有一个以上PTP通信端口的时钟。
TC(Transparentclock,透明时钟):与BC/OC相比,BC/OC需要与其它时钟节点保持时间同步,而TC则不与其它时钟节点保持时间同步。TC有多个PTP端口,但它只在这些端口间转发PTP协议报文并对其进行转发延时校正,而不会通过任何一个端口同步时间。TC包括以下两种类型:
E2ETC(End-to-End TransparentClock,端到端透明时钟):直接转发网络中非P2P(Peer-to-Peer,点到点)类型的协议报文,并参与计算整条链路的延时。
P2PTC(Peer-to-PeerTransparent Clock,点到点透明时钟):只直接转发Sync报文、Follow_Up报文和Announce报文,而终结其它PTP协议报文,并参与计算整条链路上每一段链路的延时。
一般链式的P2P网络选择E2E-TC,而从钟节点较多的网络考虑P2P-TC。因在 P2P 延时测量机制中,延时报文交互是在每条链路的两个端口间进行的,主钟只与直接相连的网络交换设备有延时报文交互,因此在 P2P TC 的延时测量机制中,没有对从钟数量的限制。
主时钟:一个PTP通信子网中只能有一个主时钟。
 

2、硬件支持

查看网卡是否支持软硬件时间戳
sudo ethtool -T eno1

软件时间戳需要包括参数
SOF_TIMESTAMPING_SOFTWARE
SOF_TIMESTAMPING_TX_SOFTWARE
SOF_TIMESTAMPING_RX_SOFTWARE

硬件时间戳需要包括参数
SOF_TIMESTAMPING_RAW_HARDWARE
SOF_TIMESTAMPING_TX_HARDWARE
SOF_TIMESTAMPING_RX_HARDWARE

3、LinuxPTP源码下载


   
   
  1. sudo git clone git://git.code.sf.net/p/linuxptp/code linuxptp
  2. cd linuxptp
  3. sudo make
  4. sudo make install

 查看Usage:ptp4l -h

4、run linuxptp

  • 4.1 软件时间戳,主从模式测试

服务端(主钟):sudo ptp4l -i enp0s31f6 -m -S (网卡名按照对应连接的实际网卡名进行修改)

客户端(从钟):sudo ptp4l -i eno1 -m -S -s  (网卡名按照对应连接的实际网卡名进行修改)


运行结果:
主钟:

从钟:

运行一会儿以后:

log中的内容为:

master offset : 即PTP协议中定义的主从端时间差,单位:ns
s0,s1,s2 : 表示时钟伺服器的不同状态,s0表示未锁定,s1表示正在同步,s2表示锁定,锁定状态表示不会再发生阶跃行同步,只是缓慢调整
freq:


port 0:INITIALIZING to LISTENING on INIT_COMPLET :    本地PTP管理的Unix域socket;
port 1:new foreign … : eno1上的端口,实际主从同步端口;


从钟端口状态由UNCALIBRATED 变为SLAVE时,则从钟已经成功地与best master同步。若将主时钟端服务退出,则从时钟端会选择本地时钟作为best master。 

  • 4.2 硬件时间戳测试


服务端(主钟):sudo ptp4l -i enp0s31f6 -m -H

客户端(从钟):sudo ptp4l -i eno1 -m -H -s

运行结果:
从钟:

显然用硬件时间戳同步的精度高得多。

  • 4.3 透明时钟(TC)模式测试(有问题)

TC和BC都需要及其至少有两个interface;
执行命令:sudo ptp4l -i eno1 -m -H -t

提示无效的选项:

usage里分明写着 -t 是transparent clock 啊
sudo vim ptp4l.8
嗯,-f -i -m -p -l -i -A -E -P -2 -4 -6 -H -S -L -q -v -h
??就是没有-t,不懂了

  • 强行TC/BC:需要设备有俩网卡,一个卡绑从钟一个卡绑定主钟,来实现TC/BC。
  • 最近开发时遇到的USRP的U L O问题:

 

 

转自:https://blog.csdn.net/BUPTOctopus/article/details/86246335

 

 

 

 

 

  • 0
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值