כיצד שרתי NTP לנהל להישאר כל כך מדויק?
רבים מאיתנו היו בעיה מדי פעם עם המחשבים שלנו והתקנים אחרים שמירה על הגדרות זמן מדויק, אבל סינכרון מהיר עם שרת NTP עושה הכל טוב שוב. אבל אם המכשירים שלנו עלולים לאבד את הדיוק, כיצד שרתי NTP מצליחים להישאר כל כך מדויקים?
מפגש השאלות והתשובות של היום מגיע אלינו באדיבות SuperUser - חלוקה מחודשת של Stack Exchange, קיבוץ מונחה על ידי הקהילה של אתרי אינטרנט של Q & A.
באדיבות LEOL30 (פליקר).
השאלה
SuperUser הקורא פרנק Thornton רוצה לדעת איך שרתי NTP מסוגלים להישאר כל כך מדויק:
שמתי לב כי על השרתים שלי מכונות אחרות, השעונים תמיד נסחפים, כך שהם צריכים לסנכרן כדי להישאר מדויק. איך שומרי השרת NTP לשמור מפני נסחף תמיד להישאר כל כך מדויק?
כיצד שרתי NTP מצליחים להישאר כה מדויקים?
התשובה
לתורם SuperUser מיכאל קיורלינג יש את התשובה עבורנו:
שרתי NTP להסתמך על שעונים מדויקים מאוד עבור זמן דיוק. מקור זמן נפוץ עבור שרתי NTP מרכזיים הם שעונים אטומיים, או מקלטי GPS (זכור כי לווייני GPS יש שעונים אטומיים המשולב). שעונים אלה מוגדרים מדויק כפי שהם מספקים התייחסות הזמן המדויק ביותר.
אין שום דבר קסום על GPS או שעונים אטומיים שגורמים להם להגיד לך בדיוק מה השעה. בגלל איך שעונים אטומית עבודה, הם פשוט טובים מאוד, לאחר פעם נאמר מה השעה, לשמור זמן מדויק (מאז השני מוגדר במונחים של אפקטים אטומיים). למעשה, ראוי לציין כי זמן ה- GPS הוא שונה UTC שאנחנו רגילים יותר לראות. שעונים אטומיים אלה מסונכרנים כנגד הזמן הבינלאומי האטומי או ה- TAI כדי לא רק לומר במדויק את מעבר הזמן, אלא גם ה זמן.
ברגע שיש לך זמן מדויק על מערכת אחת מחוברת לרשת כמו האינטרנט, זה עניין של הנדסת פרוטוקול המאפשר העברת זמנים מדויקים בין המארחים מעל רשת אמינים. בהקשר זה שכבה 2 (או רחוק יותר ממקור הזמן בפועל) שרת NTP אינו שונה ממערכת שולחן העבודה שלך מסנכרן נגד קבוצה של שרתי NTP.
כאשר יש לך כמה פעמים מדויקות (כפי שהתקבלו משרתי NTP או במקומות אחרים) ולדעת את קצב ההתקדמות של השעון המקומי שלך (שקל לקבוע), תוכל לחשב את קצב ההיסחפות של השעון המקומי שלך ביחס ל " "חלוף הזמן. לאחר נעול, ערך זה יכול לשמש כדי להתאים ברציפות את השעון המקומי כדי להפוך אותו לדווח על ערכים קרוב מאוד מעבר מדויק של זמן, גם אם השעון בזמן אמת המקומי עצמו הוא מאוד לא מדויק. כל עוד השעון המקומי שלך לא מאוד לא יציב, זה אמור לאפשר שמירה על זמן מדויק במשך זמן מה גם אם מקור הזמן במעלה שלך הופך להיות זמין מכל סיבה שהיא.
כמה יישומי לקוח NTP (כנראה ביותר ntpd daemon או מערכת שירות היישומים) לעשות את זה, ואחרים (כמו ntpdate ntpdate נלווה אשר פשוט קובע את השעון פעם אחת) לא. זה נפוץ המכונה קובץ סחיפה כי הוא מאחסן בהתמדה מידה של להיסחף שעון, אבל בהחלט זה לא צריך להיות מאוחסן כקובץ ספציפי על הדיסק.
ב NTP, שכבה 0 היא מעצם הגדרתה מקור זמן מדויק. שכבה 1 היא מערכת שמשתמשת במקור שכבה 0 בזמן כמקור הזמן שלה (ולכן היא קצת פחות מדויקת ממקור הזמן של שכבה 0). שכבה 2 שוב מעט פחות מדויקת משכבה 1 משום שהיא מסנכרנת את זמנה כנגד מקור שכבה 1 וכן הלאה. בפועל, אובדן הדיוק הזה הוא כל כך קטן, שהוא זניח לחלוטין בכל המקרים, אבל הקיצוניים ביותר.
יש לך משהו להוסיף להסבר? נשמע את ההערות. רוצה לקרוא תשובות נוספות ממשתמשים אחרים בעלי ידע טכנולוגי מתמצא? בדוק את נושא הדיון המלא כאן.