NTP Vs PTP
Network Time Protocol
Network Time Protocol (בראשי תיבות: NTP) הוא פרוטוקול תקשורת המאפשר להתקני מחשוב לסנכרון את השעון שלהם, היינו את השעה ביום ואת התאריך (Time Of Day -TOD), לשעון מרכזי ומדויק המצוי ברשת. הפרוטוקול מתבסס על תקשורת TCP/IP. הפרוטוקול מתבסס על service או daemon שרץ על שרת המחובר לשעון אטומי, מקלט GPS או התקן זמן מדויק אחר, השרת עצמו נקרא לרוב שרת זמן (time server). כל מחשב המעוניין (ומורשה, במקרים מסוימים) להסתנכרן מול אותו התקן זמן מזדהה מול השרת בעזרת פרוטוקולים מוכרים או באופן אנונימי, אם הדבר מאופשר, ואז הוא יכול להסתנכרן מולו. בין השאר מתמודד הפרוטוקול עם השבתה של שרתי הזמן, חלוקת עומסים, שיפור הדרגתי של דיוק, תעדוף שרתים ועוד.
מידע טכני
התמודדות עם העברת המידע ברשת
לשדר העובר ברשת לוקח זמן להגיע מקצה לקצה ולכן אחד מהאתגרים שהפרוטוקול הציב כיעד הוא התמודדות עם בעיה זו. כאשר מחשב מבקש להסתנכרן מול שרת זמן הוא שולח לשרת הזמן את הבקשה ואת השעה המקומית אצלו. כאשר חוזר משרת הזמן שדר המכיל את השעה הנכונה יחד עם השעה שנשלחה על ידי השרת המבקש, מושווה השעה המקומית הנוכחית לשעה שנשלחה בשדר המקורי הקיימת גם בשדר שהוחזר ואז מבוצע חישוב של הזמן הממוצע שלוקח לשדר לעשות את המרחק משרת אחד למשנהו. הממוצע מתקבל לאחר שליחת בקשה לסנכרון מספר פעמים (לרוב 4).
תקשורת
התקשורת עצמה נעשית בפורט 123 UDP מועבר בה מידע על השעון על-גבי מבנה נתונים המכיל 32 ביט המתארים את השניות, ועוד 32 ביט לתיאור חלקי השניות מה שמאפשר בתאוריה דיוק של עשיריות-ננו שניות, הדיוק הממשי הוא של כ-10 מיליוניות השנייה.
תעדוף שרתים
לכל שעון בדיוק גבוה מספיק מוגדר ערך מיוחד הנקרא Stratum, הנע בין 0-16 כאשר ככל שמספרו נמוך יותר כך הדיוק גדל. לפי הגדרת הפרוטוקול, אין יכולת להסתנכרן מול מקור זמן בעל stratum השווה ל-16 וכך נשמרת היררכיה של עד 16 רמות. לרוב שרתים אינם מקבלים את הערך 0 אלא את הערך 1 מכיוון שהם מסתנכרנים מול התקן הזמן.
כיוון השעון
במחשבים קיימים, בדרך כלל שני סוגי שעונים. שעון המערכת (System clock) ושעון זמן אמת (RTC – Real Time Clock). שעון המערכת מנוהל תוכנה בעזרת ספירה של פסיקות השעון על ידי מערכת ההפעלה. "שעון זמן האמת" הוא התקן חומרה בעל גיבוי של סוללה המאפשר למחשב לשמור את השעה ואת התאריך גם כשהמחשב כבוי. המידע שמתקבל בעזרת הפרוטוקול משמש לעדכון שעון המערכת בעזרת הוספה או גריעה של ההיסט בזמן, שנוצר בין שעון המערכת לזמן שהתקבל מן השרת. זמן המערכת יכול לשמש לתיקון ההיסט של "שעון זמן האמת" החומרתי לצורך שמירת השעה והתאריך בזמן כיבוי המחשב.
התמודדות עם השבתה
בכל פעם שבה מחשב מבצע סנכרון בעזרת הפרוטוקול, הוא שומר אצלו (בזיכרון או בתוך קובץ) את הסטייה של שעונו הפנימי לעומת שעון הייחוס בשרת הזמן, לאחר בדיקת ממוצע
הסטיות והתעלמות ממקרי קצה, המחשב מסוגל לשמור על שעון פנימי יחסית מדויק גם ללא תלות בשרת הזמן.
Precision Time Protocol
Precision Time Protocol (ידוע גם כ-PTP) הוא פרוטוקול המשמש לסינכרון שעונים עבור רשתות מחשבים. ברשת LAN, הוא משיג דיוק בטווח של מיקרו-שניות המתאים למערכות בקרה ומדידה. הפרוטוקול הוגדר במקור על ידי תקן IEEE 1588-2002 בשנת 2002 (הידוע בשם PTP Version 1).
בשנת 2008 פורסם תקן חדש יותר (הידוע בשם PTP Version 2), המשפר את הדיוק והחסינות אבל אינו תואם לגרסה הקודמת משנת 2002. הוא ממלא נישה שלא קיימת בתקני הסינכרון NTP ו-GPS בשל הדיוק הגדול יותר (לעומת NTP) או העלות של שימוש ב-GPS.