Precision Time Protocol ( PTP )เป็นโปรโตคอลสำหรับการซิงโครไนซ์นาฬิกาทั่วทั้งเครือข่ายคอมพิวเตอร์ด้วยความแม่นยำ ที่ค่อนข้างสูง จึงอาจมีความแม่นยำสูงได้ ในเครือข่ายพื้นที่ท้องถิ่น (LAN) ความแม่นยำอาจต่ำกว่าไมโครวินาที ทำให้เหมาะสำหรับระบบการวัดและการควบคุม[1] PTP ใช้ในการซิงโครไนซ์ธุรกรรมทางการเงิน การส่งสัญญาณ เสาโทรศัพท์มือถืออาร์เรย์อะคูสติกใต้ทะเลและเครือข่ายที่ต้องการเวลาที่แม่นยำแต่ขาดการเข้าถึงสัญญาณนำทางด้วยดาวเทียม[ จำเป็นต้องอ้างอิง ]
IEEE 1588-2002ซึ่งเป็นเวอร์ชันแรกของ PTP ได้รับการเผยแพร่ในปี 2002 IEEE 1588-2008หรือที่รู้จักในชื่อ PTP เวอร์ชัน 2 นั้นไม่เข้ากันได้กับเวอร์ชัน 2002 IEEE 1588-2019ได้รับการเผยแพร่ในเดือนพฤศจิกายน 2019 และมีการปรับปรุงความเข้ากันได้กับเวอร์ชัน 2008 IEEE 1588-2008 มี แนวคิด โปรไฟล์ที่กำหนดพารามิเตอร์และตัวเลือกการทำงานของ PTP มีการกำหนดโปรไฟล์ต่างๆ มากมายสำหรับแอปพลิเคชันต่างๆ รวมถึงโทรคมนาคมการจ่ายพลังงานไฟฟ้าและการใช้งานโสตทัศน์IEEE 802.1ASเป็นการปรับเปลี่ยน PTP ที่เรียกว่า gPTP เพื่อใช้กับAudio Video Bridging(AVB) และTime-Sensitive Networking(TSN)
ตามที่ John Eidson ซึ่งเป็นผู้นำความพยายามสร้างมาตรฐาน IEEE 1588-2002 ได้กล่าวไว้ว่า "IEEE 1588 ถูกออกแบบมาเพื่อเติมเต็มช่องว่างที่โปรโตคอลหลักทั้งสองตัว ได้แก่NTPและGPS ไม่สามารถตอบสนองได้ IEEE 1588 ออกแบบมาสำหรับระบบภายในที่ต้องการความแม่นยำเกินกว่าที่ NTP สามารถทำได้ นอกจากนี้ยังออกแบบมาสำหรับแอปพลิเคชันที่ไม่สามารถแบกรับต้นทุนของตัวรับ GPSที่แต่ละโหนดได้ หรือไม่สามารถเข้าถึงสัญญาณ GPS ได้" [2]
PTP ถูกกำหนดไว้เดิมในมาตรฐาน IEEE 1588-2002 ซึ่งมีชื่ออย่างเป็นทางการว่า Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systemsและเผยแพร่ในปี 2002 ในปี 2008 IEEE 1588-2008 ได้รับการเผยแพร่เป็นมาตรฐานที่แก้ไขใหม่ ซึ่งเรียกอีกอย่างว่า PTP เวอร์ชัน 2 (PTPv2) โดยมาตรฐานนี้ปรับปรุงความแม่นยำ ความแม่นยำ และความทนทาน แต่ไม่สามารถใช้งานร่วมกับเวอร์ชันดั้งเดิมในปี 2002 ได้[3] IEEE 1588-2019 ได้รับการเผยแพร่ในเดือนพฤศจิกายน 2019 [4]เรียกกันอย่างไม่เป็นทางการว่าPTPv2.1และมีการปรับปรุงที่เข้ากันได้กับเวอร์ชันดั้งเดิมในปี 2008 [5]
มาตรฐาน IEEE 1588 อธิบายสถาปัตยกรรมมาสเตอร์-สเลฟแบบลำดับชั้น สำหรับการแจกจ่ายสัญญาณ นาฬิกา ซึ่งประกอบด้วยเซ็กเมนต์เครือข่าย หนึ่งเซ็กเมนต์ขึ้นไป และนาฬิกาหนึ่งตัวขึ้นไปนาฬิกาธรรมดาคืออุปกรณ์ที่มีการเชื่อมต่อเครือข่ายเดียวซึ่งเป็นทั้งแหล่งที่มาหรือจุดหมายปลายทางสำหรับการอ้างอิงการซิงโครไนซ์ แหล่งที่มาเรียกว่าลีดเดอร์หรือที่เรียกว่ามาสเตอร์ และจุดหมายปลายทางเรียก ว่า ฟอลโลว์ หรือที่ เรียกว่าสเลฟ นาฬิกาขอบเขตมีการเชื่อมต่อเครือข่ายหลายรายการและซิงโครไนซ์เซ็กเมนต์เครือข่ายหนึ่งไปยังอีกเซ็กเมนต์หนึ่ง ลีดเดอร์การซิงโครไนซ์เพียงตัวเดียวจะถูกเลือกหรือเลือกสำหรับแต่ละเซ็กเมนต์เครือข่าย การอ้างอิงเวลาหลักเรียกว่าแกรนด์มาสเตอร์ [ 6]
สถาปัตยกรรม PTP ที่ค่อนข้างเรียบง่ายประกอบด้วยนาฬิกาธรรมดาบนเครือข่ายเซกเมนต์เดียวโดยไม่มีนาฬิกาขอบเขต แกรนด์มาสเตอร์จะถูกเลือกและนาฬิกาอื่นๆ ทั้งหมดจะซิงโครไนซ์กับแกรนด์มาสเตอร์นั้น
IEEE 1588-2008 แนะนำนาฬิกาที่เชื่อมโยงกับอุปกรณ์เครือข่ายที่ใช้ในการส่งข้อความ PTP นาฬิกาโปร่งใส จะ ปรับเปลี่ยนข้อความ PTP ในขณะที่ข้อความผ่านอุปกรณ์[7] ค่าประทับเวลาในข้อความจะได้รับการแก้ไขตามเวลาที่ใช้ในการผ่านอุปกรณ์เครือข่าย โครงร่างนี้ปรับปรุงความแม่นยำในการแจกจ่ายโดยชดเชยความแปรปรวนในการจัดส่งทั่วทั้งเครือข่าย
โดยทั่วไป PTP จะใช้ ยุคเดียวกับเวลา Unix (เริ่มวันที่ 1 มกราคม 1970) [a]ในขณะที่เวลา Unix อิงตามเวลาสากลเชิงพิกัด (UTC) และขึ้นอยู่กับวินาทีอธิกสุรทิน PTP อิงตามเวลาอะตอมสากล (TAI) แกรนด์มาสเตอร์ของ PTP จะแจ้งค่าออฟเซ็ตปัจจุบันระหว่าง UTC และ TAI เพื่อให้สามารถคำนวณ UTC ได้จากเวลา PTP ที่ได้รับ
การซิงโครไนซ์และการจัดการระบบ PTP ทำได้โดยการแลกเปลี่ยนข้อความผ่านสื่อการสื่อสาร เพื่อจุดประสงค์นี้ PTP จึงใช้ประเภทข้อความต่อไปนี้
ข้อความจะถูกแบ่งประเภทเป็นข้อความเหตุการณ์และข้อความทั่วไป ข้อความ เหตุการณ์มีความสำคัญด้านเวลาเนื่องจากความแม่นยำในการประทับเวลาการส่งและการรับส่งจะส่งผลโดยตรงต่อความแม่นยำในการแจกจ่ายนาฬิกาSync , Delay_Req , Pdelay_ReqและPdelay_respเป็นข้อความเหตุการณ์ ข้อความ ทั่วไป เป็น หน่วยข้อมูลโปรโตคอลทั่วไปเนื่องจากข้อมูลในข้อความเหล่านี้มีความสำคัญต่อ PTP แต่การประทับเวลาการส่งและการรับส่งนั้นไม่สำคัญ ข้อความ Announce , Follow_Up , Delay_Resp , Pdelay_Resp_Follow_Up , ManagementและSignalingเป็นสมาชิกของคลาสข้อความทั่วไป[8] : ข้อ 6.4
ข้อความ PTP อาจใช้User Datagram Protocol over Internet Protocol (UDP/IP) สำหรับการขนส่ง IEEE 1588-2002 ใช้การขนส่งIPv4 เท่านั้น [9] : ภาคผนวก D แต่ได้รับการขยายให้รวมถึงIPv6ใน IEEE 1588-2008 แล้ว[8] : ภาคผนวก F ใน IEEE 1588-2002 ข้อความ PTP ทั้งหมดจะถูกส่งโดยใช้ การส่งข้อความ แบบมัลติคาสต์ในขณะที่ IEEE 1588-2008 แนะนำตัวเลือกสำหรับอุปกรณ์เพื่อเจรจา การส่งข้อมูล แบบยูนิคาสต์ตามพอร์ตต่อพอร์ต[8] : มาตรา 16.1 การส่งข้อมูลแบบมัลติคาสต์ใช้ การกำหนดที่อยู่ มัลติคาสต์ IPซึ่งที่อยู่กลุ่มมัลติคาสต์ได้รับการกำหนดไว้สำหรับ IPv4 และ IPv6 (ดูตาราง) [8] : ภาคผนวก D และ E ข้อความ เหตุการณ์สำคัญด้านเวลา(Sync, Delay_req, Pdelay_Req และ Pdelay_Resp) จะถูกส่งไปยังพอร์ตหมายเลข 319 ข้อความ ทั่วไป (Announce, Follow_Up, Delay_Resp, Pdelay_Resp_Follow_Up, การจัดการและการส่งสัญญาณ) จะใช้พอร์ตหมายเลข 320 [8] : ข้อ 6.4
ข้อความ | IPv4 | IPv6 | IEEE 802.3 อีเทอร์เน็ต[8] : ภาคผนวก F [c] | พิมพ์ |
---|---|---|---|---|
ข้อความทั้งหมดยกเว้นข้อความหน่วงเวลาของเพื่อน | 224.0.1.129 [ง] | FF0x::181 [จ] | 01-1B-19-00-00-00 [ก] | ส่งต่อได้ |
ข้อความหน่วงเวลาของเพียร์: Pdelay_Req , Pdelay_RespและPdelay_Resp_Follow_Up [g] | 224.0.0.107 [ชั่วโมง] | FF02::6บี | 01-80-C2-00-00-0E | ไม่สามารถส่งต่อได้ |
ใน IEEE 1588-2008 การห่อหุ้มถูกกำหนดไว้สำหรับDeviceNet [ 8] : ภาคผนวก G ControlNet [8] : ภาคผนวก H และPROFINET [8] : ภาคผนวก I
โดเมน[i]คือชุดสัญญาณนาฬิกาที่โต้ตอบกันและซิงโครไนซ์กันโดยใช้ PTP สัญญาณนาฬิกาได้รับการกำหนดให้กับโดเมนโดยอาศัยเนื้อหาของชื่อโดเมนย่อย (IEEE 1588-2002) หรือ ฟิลด์ domainNumber (IEEE 1588-2008) ในข้อความ PTP ที่รับหรือสร้างขึ้น โดเมนอนุญาตให้ระบบกระจายสัญญาณนาฬิกาหลายระบบแบ่งปันสื่อการสื่อสารเดียวกัน
เนื้อหาฟิลด์ ชื่อโดเมนย่อย ( IEEE 1588-2002 ) | ที่อยู่ IPv4 มัลติคาสต์ ( IEEE 1588-2002 ) [j] | หมายเลขโดเมน ( IEEE 1588-2008 ) | หมายเหตุ |
---|---|---|---|
_ดีเอฟแอลที | 224.0.1.129 | 0 | โดเมนเริ่มต้น |
_ALT1 | 224.0.1.130 | 1 | โดเมนทางเลือก 1 |
_ALT2 | 224.0.1.131 | 2 | โดเมนทางเลือก 2 |
_ALT3 | 224.0.1.132 | 3 | โดเมนทางเลือก 3 |
เฉพาะการใช้งานสูงสุด 15 อ็อกเท็ต[9] : ข้อ 6.2.5.1 | 224.0.1.130, 131 หรือ 132 ตามฟังก์ชันแฮชบนชื่อโดเมนย่อย[9] : ภาคผนวก C | 4 ถึง 127 | โดเมนที่ผู้ใช้กำหนด |
อัลกอริทึมนาฬิกาหลักที่ดีที่สุด (BMCA) จะทำการเลือกสัญญาณนาฬิกาที่ดีที่สุดแบบกระจายเพื่อทำหน้าที่เป็นผู้นำโดยอิงจากคุณสมบัติของนาฬิกาต่อไปนี้:
IEEE 1588-2008 ใช้อัลกอริธึมการเลือกตามลำดับชั้นโดยอิงจากคุณสมบัติต่อไปนี้ ตามลำดับที่ระบุ: [8] : รูปที่ 27
IEEE 1588-2002 ใช้อัลกอริธึมการเลือกโดยอิงจากคุณสมบัติที่คล้ายคลึงกัน
คุณสมบัติของนาฬิกาจะประกาศไว้ใน ข้อความ Sync ของ IEEE 1588-2002 และ ข้อความ Announce ของ IEEE 1588-2008 ผู้นำในปัจจุบันจะส่งข้อมูลนี้เป็นระยะๆ นาฬิกาที่ถือว่าตัวเองเป็นผู้นำที่ดีกว่าจะส่งข้อมูลนี้เพื่อเรียกการเปลี่ยนแปลงของผู้นำ เมื่อผู้นำในปัจจุบันรับรู้นาฬิกาที่ดีกว่า ผู้นำในปัจจุบันจะหยุดส่ง ข้อความ Syncและคุณสมบัติของนาฬิกาที่เกี่ยวข้อง ( ข้อความ Announceในกรณีของ IEEE 1588-2008) และนาฬิกาที่ดีกว่าจะเข้ามาแทนที่ผู้นำ[10] BMCA พิจารณาเฉพาะคุณภาพของนาฬิกาที่ประกาศเองเท่านั้น และจะไม่นำคุณภาพของลิงก์เครือข่ายมาพิจารณา[11]
ผ่าน BMCA PTP จะเลือกแหล่งเวลาสำหรับโดเมน IEEE 1588 และสำหรับแต่ละเซ็กเมนต์เครือข่ายในโดเมน
นาฬิกาจะกำหนดค่าออฟเซ็ตระหว่างนาฬิกากับผู้นำ[12]ให้ตัวแปรแสดงเวลาทางกายภาพ สำหรับอุปกรณ์ติดตามที่กำหนด ออฟเซ็ตในเวลาจะถูกกำหนดโดย:
โดยที่แสดงถึงเวลาที่วัดโดยนาฬิกาผู้ตาม ณ เวลาจริงและแสดงถึงเวลาที่วัดโดยนาฬิกาผู้นำ ณ เวลาจริง
ผู้นำจะออกอากาศเวลาปัจจุบันเป็นระยะๆ เป็นข้อความไปยังนาฬิกาเรือนอื่นๆ ตามมาตรฐาน IEEE 1588-2002 การออกอากาศสามารถทำได้สูงสุด 1 ครั้งต่อวินาที ตามมาตรฐาน IEEE 1588-2008 อนุญาตให้ออกอากาศได้สูงสุด 10 ครั้งต่อวินาที
การออกอากาศแต่ละครั้งจะเริ่มขึ้นในเวลาที่กำหนดด้วย ข้อความ Syncที่ส่งโดยผู้นำไปยังนาฬิกาทุกเรือนในโดเมน นาฬิกาที่ได้รับข้อความนี้จะบันทึกเวลาท้องถิ่นเมื่อได้รับข้อความนี้
ผู้นำอาจส่งFollow_Up แบบมัลติคาสต์ พร้อมค่าประทับเวลาที่แม่นยำในภายหลัง ผู้นำไม่ใช่ทุกคนจะสามารถแสดงค่าประทับเวลาที่แม่นยำใน ข้อความ Sync ได้ ผู้นำจะสามารถดึงค่าประทับเวลาที่แม่นยำสำหรับการส่ง ข้อมูล Syncจากฮาร์ดแวร์เครือข่ายได้ก็ต่อเมื่อการส่งข้อมูลเสร็จสิ้นเท่านั้น ผู้นำที่มีข้อจำกัดนี้จะใช้ข้อความ Follow_Upเพื่อถ่ายทอดผู้นำที่มีความสามารถในการใช้ PTP ในตัวฮาร์ดแวร์เครือข่ายสามารถแสดงค่าประทับเวลาที่แม่นยำใน ข้อความ Sync ได้ และไม่จำเป็นต้องส่งข้อความ Follow_Up
เพื่อให้สามารถซิงโครไนซ์กับผู้นำได้อย่างแม่นยำ นาฬิกาจะต้องกำหนดเวลาการส่งผ่านเครือข่ายของข้อความ Sync ทีละรายการเวลาการส่งผ่านจะถูกกำหนดโดยอ้อมโดยการวัดเวลาเดินทางไปกลับจากนาฬิกาแต่ละเรือนไปยังผู้นำ นาฬิกาจะเริ่มการแลกเปลี่ยนกับผู้นำซึ่งออกแบบมาเพื่อวัดเวลาการส่งผ่านการแลกเปลี่ยนเริ่มต้นด้วยนาฬิกาที่ส่ง ข้อความ Delay_Reqไปยังผู้นำ ใน เวลาที่กำหนด ผู้นำจะได้รับและประทับเวลาของ Delay_Reqในเวลาที่กำหนดและตอบกลับด้วย ข้อความ Delay_Respผู้นำจะรวมประทับเวลาไว้ในข้อความ Delay_Resp
ผ่านการแลกเปลี่ยนเหล่านี้ นาฬิกาจะเรียนรู้, , และ.
หากเป็นเวลาการขนส่งสำหรับ ข้อความ ซิงค์และเป็นค่าคงที่ระหว่างนาฬิกาผู้นำและผู้ติดตาม
เมื่อรวมสมการทั้งสองข้างต้นเข้าด้วยกัน เราจะพบว่า
ขณะนี้ นาฬิการู้ค่าออฟเซ็ตระหว่างธุรกรรมนี้แล้ว และสามารถแก้ไขได้ตามจำนวนนี้เพื่อให้สอดคล้องกับผู้นำของตน
ข้อสันนิษฐานประการหนึ่งก็คือ การแลกเปลี่ยนข้อความนี้เกิดขึ้นในช่วงเวลาสั้นๆ มากจนสามารถถือว่าค่าชดเชยนี้คงที่ได้อย่างปลอดภัยตลอดช่วงเวลาดังกล่าว ข้อสันนิษฐานอีกประการหนึ่งก็คือ เวลาขนส่งของข้อความที่ไปจากผู้นำไปยังผู้ตามจะเท่ากับเวลาขนส่งของข้อความที่ไปจากผู้ตามไปยังผู้นำ ในที่สุด ข้อสันนิษฐานดังกล่าวถือว่าทั้งผู้นำและผู้ตามสามารถวัดเวลาที่ส่งหรือรับข้อความได้อย่างแม่นยำ ระดับที่ข้อสันนิษฐานเหล่านี้เป็นจริงจะกำหนดความแม่นยำของนาฬิกาที่อุปกรณ์ของผู้ตาม[8] : ข้อ 6.2
มาตรฐาน IEEE 1588-2008 ระบุชุดคุณลักษณะต่อไปนี้ที่การใช้งานอาจเลือกที่จะรองรับ:
IEEE 1588-2019 เพิ่มคุณสมบัติเสริมที่เข้ากันได้ย้อนหลัง: [5]
Q-LAN อัปเดตเป็น PTPv2 เมื่อประมาณสองปีที่แล้ว