為何會(huì)出現(xiàn)PTP
NTP的精度很低噩茄,只能達(dá)到毫秒級(jí)別的精度,那么PTP就是為了克服NTP精度不高的問(wèn)題而出現(xiàn)的账蓉。PTP能達(dá)到微秒到亞微秒級(jí)皮璧。
PTP需要硬件支持
在以太網(wǎng)控制器中需要集成一個(gè)與時(shí)間相關(guān)的模塊,也就是網(wǎng)卡需要支持PTP疑俭,例如技扼,nxp的ls1028a芯片就在其以太網(wǎng)控制器子系統(tǒng)中集成了一個(gè)IEEE 1588 定時(shí)器模塊伍玖。
PTP在軟件上的構(gòu)成
Linux下ptp是由以下兩部分構(gòu)成的
- linux內(nèi)核支持ptp硬件驅(qū)動(dòng)(也就是linux內(nèi)核的一個(gè)特性)
- linux用戶空間程序Linux PTP Project
如何檢查網(wǎng)卡是否支持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)
-
軟件時(shí)間戳需要包括參數(shù)
SOF_TIMESTAMPING_SOFTWARE SOF_TIMESTAMPING_TX_SOFTWARE SOF_TIMESTAMPING_RX_SOFTWARE
-
硬件時(shí)間戳需要包括參數(shù)
SOF_TIMESTAMPING_RAW_HARDWARE SOF_TIMESTAMPING_TX_HARDWARE SOF_TIMESTAMPING_RX_HARDWARE
PTP 工具使用
Ubuntu 下面安裝 linuxptp 這個(gè)軟件包
$ ptp4l -h
延遲機(jī)制選項(xiàng)
-A Auto,自動(dòng)選擇延遲機(jī)制剿吻。,從E2E開始窍箍,當(dāng)收到對(duì)等延遲請(qǐng)求時(shí)切換到P2P
-E E2E,選擇延遲請(qǐng)求 - 響應(yīng)(E2E)機(jī)制丽旅。 默認(rèn)是用這個(gè)機(jī)制椰棘。 單個(gè)PTP通信路徑上的所有時(shí)鐘必須使用相同的機(jī)制。 使用E2E機(jī)制在端口上收到對(duì)等延遲請(qǐng)求時(shí)榄笙,將輸出warning
-P P2P邪狞,對(duì)等延遲機(jī)制
網(wǎng)絡(luò)傳輸選項(xiàng)
-2 IEEE 802.3
-4 UDP IPV4(默認(rèn))
-6 UDP IPV6
時(shí)間戳選項(xiàng)
-H 使用硬件時(shí)間戳(默認(rèn))
-S 使用軟件時(shí)間戳
-L LEGACY HW時(shí)間戳
其他選項(xiàng)
-f [file] 從指定文件file中讀取配置。 默認(rèn)情況下不讀取任何配置文件茅撞。
-i [dev] 選擇PTP接口設(shè)備帆卓,例如eth0(可多次指定)必須至少使用此選項(xiàng)或配置文件指定一個(gè)端口巨朦。
-p [dev] 在Linux內(nèi)核v3.5之前,無(wú)法發(fā)現(xiàn)與網(wǎng)絡(luò)接口關(guān)聯(lián)的PHC設(shè)備鳞疲。 此選項(xiàng)指定在舊內(nèi)核上運(yùn)行時(shí)要使用的PHC設(shè)備(例如/ dev/ptp0)罪郊。要使用的時(shí)鐘設(shè)備,默認(rèn)為auto尚洽,忽略軟件/ LEGACY HW時(shí)間戳(不推薦使用此選項(xiàng))
-s slaveOnly mode悔橄,從時(shí)鐘模式(覆蓋配置文件)
-t 透明時(shí)鐘模式
-l [num] 將日志記錄級(jí)別設(shè)置為'num',默認(rèn)是6
-m 將消息打印到stdout
-q 不打印消息到syslog
-v 打印軟件版本并退出
-h help
————————————————
版權(quán)聲明:本文為CSDN博主「Kujou」的原創(chuàng)文章腺毫,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議癣疟,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/BUPTOctopus/article/details/86246335
服務(wù)端(主鐘):
$ sudo ptp4l -i enp0s66 -m -S
客戶端(從鐘):
sudo ptp4l -i enp0s25 -m -S -s