![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
时间同步
文章平均质量分 88
你将学会 1)时间同步的原理 2)ntp,gptp从0到1的实现源码 3) linuxptp库的研究 4) 项目级时间同步方案 5) 时间同步实战的解决问题经验
L7256
这个作者很懒,什么都没留下…
展开
-
时间同步的原理
总之:正确的同步时间,就是slave端的正确时间 = master时间 + 传输延时。原创 2024-07-31 13:34:22 · 73 阅读 · 0 评论 -
RAW socket
当网卡处于这种“混杂”模式时,它对所有遇到的每一个数据帧都产生一个硬件中断,以提醒操作系统处理流经该物理媒体上的每一个报文包。要注意的是send/recv函数使用MSG_WAITALL的时候,sockfd 必须是处于阻塞模式下,否则WAITALL不能起作用。socket(PF_PACKET, SOCK_RAW, htons(ETH_P_XXX)) // 发送、接收数据链路层。查资料发现:默认情况下,网卡接收一个包,网卡只把发给本机的包(包括广播包)传到上层的APP。【以ptp报文帧为例】原创 2022-10-19 12:01:03 · 2445 阅读 · 0 评论 -
linuxptp源码研究
w是等待ptp4l: 通过pmc_create()来创建进程间通信,-w当收到了来自ptp4l的消息,就会跳出 Waiting for ptp4l...的循环,然后执行do_loop来执行 update_clock()来跟新时间(把/dev/ptp1上的时间更新到CLOCK_REALTIME上!还有需要注意:clockadj_step()函数调整的是clkid对应的时间(如果调整的时间是phc对应的clkid的时间,那么同步到系统时间需要用phc2sys这个app)原创 2022-09-08 15:36:55 · 8454 阅读 · 8 评论 -
gptp协议
每一个设备都会比较自己的时钟与其他设备的时钟信息,所有节点都这样,直到选出主时钟(一个GPTP系统可以预先设定一个主时钟(比如网关等),也可以通过BCMA算法得到)原理:主节点过10s,从节点过 9s,那么这个偏差R = 10 / 9,然后每次从节点拿到时间就会*R ,来得到和主节点一样的时间。一定要*R,因为对于slave来说,经过了(Tb-T2)实际上转换到master的时间是 (Tb- T2) *R才行。每个节点的时钟频率不一致,比如实际时间过了100s, 从节点A计时是过了90s,所以。......原创 2022-08-08 17:47:21 · 7828 阅读 · 0 评论