zoukankan      html  css  js  c++  java
  • 解剖PTP协议(转载)

    本文转载自:https://www.cnblogs.com/dakewei/p/10881699.html

    一. PTP是什么?

      英文为Precise Time Protocol,翻译过来就是精确时间协议

    二. 为何会出现PTP?

      大家想必是知道NTP的存在,然而NTP的精度很低,只能达到毫秒级别的精度,那么PTP就是为了克服NTP精度不高的问题而出现的

    三. PTP需要硬件支持吗?

      需要,在以太网控制器中需要集成一个与时间相关的模块,也就是网卡需要支持PTP,例如,nxp的ls1028a芯片就在其以太网控制器子系统中集成了一个IEEE 1588 定时器模块

    四. PTP在软件上的构成是怎样的?

      Linux下ptp是由以下两部分构成的:

        linux内核支持ptp硬件驱动(也就是linux内核的一个特性)+linux用户空间程序Linux PTP Project

    五. 如何检查网卡是否支持PTP?

      使用以下命令检查:

        ethtool -T eth0

      此命令的输出内容如下:

        Time stamping parameters for eth0:
        Capabilities:
              hardware-transmit     (SOF_TIMESTAMPING_TX_HARDWARE)
              software-transmit     (SOF_TIMESTAMPING_TX_SOFTWARE)
              hardware-receive      (SOF_TIMESTAMPING_RX_HARDWARE)
              software-receive      (SOF_TIMESTAMPING_RX_SOFTWARE)
              software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
              hardware-raw-clock    (SOF_TIMESTAMPING_RAW_HARDWARE)
        PTP Hardware Clock: 1
        Hardware Transmit Timestamp Modes:
              off                   (HWTSTAMP_TX_OFF)
              on                    (HWTSTAMP_TX_ON)
        Hardware Receive Filter Modes:
              none                  (HWTSTAMP_FILTER_NONE)
              all                   (HWTSTAMP_FILTER_ALL)
      输出类似以上信息,说明网卡支持PTP

    六. 网卡是否支持ptp对时间计算造成的误差发生在哪里?(PHC: PTP Hardware Clock)

      请先看下图:

        

      从图中可以看出,如果时间戳在应用层就生成了,那么在将数据包往下传递的过程中产生的时间消耗即造成了重大的精度误差。

    七. PTP能达到多高的精度呢?

      微秒到亚微秒级

  • 相关阅读:
    2.如何搭建MQTT环境
    1.如何安装maven
    4.线程同步-未使用线程同步的生产者/消费者关系
    3.线程的优先级和线程调度
    2.如何使用matlab拟合曲线
    1.如何安装matlab2016a
    2.线程状态:一个线程的声明周期
    Oracle"TNS监听程序找不到符合协议堆栈要求的可用处理程序"解决方案
    快速登录MySQL数据库
    数据仓库模型建设基础及kimball建模方法总结
  • 原文地址:https://www.cnblogs.com/dongc/p/12896411.html
Copyright © 2011-2022 走看看