Network Time Protocol

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
סנכרון בעזרת NTP

Network Time Protocolראשי תיבות: NTP) הוא פרוטוקול תקשורת המאפשר סנכרון שעונים המתבסס על תקשורת TCP/IP. הפרוטוקול מתבסס על service או daemon שרץ על שרת המחובר לשעון אטומי, מקלט GPS או התקן זמן מדויק אחר, השרת עצמו נקרא לרוב שרת זמן (time server). כל מחשב המעוניין (ומורשה, במקרים מסוימים) להסתנכרן מול אותו התקן זמן מזדהה מול השרת בעזרת פרוטוקולים מוכרים או באופן אנונימי, אם הדבר מאופשר, ואז הוא יכול להסתנכרן מולו. בין השאר מתמודד הפרוטוקול עם השבתה של שרתי הזמן, חלוקת עומסים, שיפור הדרגתי של דיוק, תעדוף שרתים ועוד.

מידע טכני[עריכת קוד מקור | עריכה]

התמודדות עם העברת המידע ברשת[עריכת קוד מקור | עריכה]

לשדר העובר ברשת לוקח זמן להגיע מקצה לקצה ולכן אחד מהאתגרים שהפרוטוקול הציב כיעד הוא התמודדות עם בעיה זו. כאשר מחשב מבקש להסתנכרן מול שרת זמן הוא שולח לשרת הזמן את הבקשה ואת השעה המקומית אצלו. כאשר חוזר משרת הזמן שדר המכיל את השעה הנכונה יחד עם השעה שנשלחה על ידי השרת המבקש, מושווה השעה המקומית הנוכחית לשעה שנשלחה בשדר המקורי הקיימת גם בשדר שהוחזר ואז מבוצע חישוב של הזמן הממוצע שלוקח לשדר לעשות את המרחק משרת אחד למשנהו. הממוצע מתקבל לאחר שליחת בקשה לסנכרון מספר פעמים (לרוב 4).

תקשורת[עריכת קוד מקור | עריכה]

התקשורת עצמה נעשית בפורט 123 UDP מועבר בה מידע על השעון על-גבי מבנה נתונים המכיל 32 ביט המתארים את השניות, ועוד 32 ביט לתיאור חלקי השניות מה שמאפשר בתאורייה דיוק של עשיריות-ננו שניות, הדיוק הממשי הוא של כ-10 מיליוניות השנייה.

תעדוף שרתים[עריכת קוד מקור | עריכה]

לכל שעון בדיוק גבוה מספיק מוגדר ערך מיוחד הנקרא Stratum, הנע בין 0-16 כאשר ככל שמספרו נמוך יותר כך הדיוק גדל. לפי הגדרת הפרוטוקול, אין יכולת להסתנכרן מול מקור זמן בעל stratum השווה ל-16 וכך נשמרת היררכיה של עד 16 רמות. לרוב שרתים אינם מקבלים את הערך 0 אלא את הערך 1 מכיוון שהם מסתנכרנים מול התקן הזמן.

כיוון השעון[עריכת קוד מקור | עריכה]

במחשבים לא קיים שעון קוורץ ולכן הם מודדים את הזמן בעזרת פסיקות שעון (Clock Interrupts) אשר מוגדרות להתרחש במרחקים קצובים וקצרים ובאותן פסיקות השעון מכוון, רוב מערכות ההפעלה מכילות קריאת מערכת (System call) המאפשרת האטה או האצה של השעון על ידי אי שינוי השעון בחלק מהמקרים שבהם מופעלות פסיקות אלה או על ידי הוספה של שינויים באופן מואץ, בהתאם לכיוון השינוי הנדרש.

התמודדות עם השבתה[עריכת קוד מקור | עריכה]

בכל פעם שבה מחשב מבצע סנכרון בעזרת הפרוטוקול, הוא שומר אצלו (בזיכרון או בתוך קובץ) את הסטייה של שעונו הפנימי לעומת שעון הייחוס בשרת הזמן, לאחר בדיקת ממוצע הסטיות והתעלמות ממקרי קצה, המחשב מסוגל לשמור על שעון פנימי יחסית מדויק גם ללא תלות בשרת הזמן.

גלובליזציה[עריכת קוד מקור | עריכה]

מכיוון שבכל אזור זמן בעולם השעה היא שונה, הפרוטוקול מתבסס על הסבת השעון לזמן אוניברסלי מתואם.

המאגר העולמי[עריכת קוד מקור | עריכה]

הכתובת pool.ntp.org מצביעה לשרת NTP אקראי מבין קבוצה של אלפי שרתי זמן אמינים. ישנן כתובות משנה, כגון fr.pool.ntp.org לשרתים מצרפת. נכון ל-2011 אין שרתים בישראל (il.pool.ntp.org). השם הראשי וכל אחד משמות המשנה מחזיר באקראי שם אחד מבין השמות המופיעים בו. לכן אפשר להשתמש בשם זה להגדרת שרת NTP למחשב שמיקומו בעולם לא ידוע (מחשב נייד, או ברירת מחדל לתצורה למערכת תוכנה)‏[1].

שימושים נפוצים[עריכת קוד מקור | עריכה]

  • Windows משתמשת בפרוטוקול לסנכרון השעונים על מנת שתתאפשר עבודה עם פרוטוקול ההצפנה שאיתה היא עובדת - Kerberos וגם עבור משתמשים המחפשים נוחות.

הערות שוליים[עריכת קוד מקור | עריכה]