Network Time Protocol یا همان NTP چیست؟

برخی مواقع نرم افزار سروری در شبکه نصب کرده اید که خیلی نسبت به زمان حساس است، منظورم این است که کلاینت های این نرم افزار باید با سروری که این نرم افزار روی آن نصب شده است تفاوت زمانی بسیار کمی داشته باشند، مثلا حدود ۱ ثانیه یا کمتر، اما با چه مکانیزمی می توان این شرایط را برقرار کرد؟

یک راه متداول برای همزمان کردن کلاینت ها با سرور، استفاده از یک Time Server است، وظیفه ی Time Server این است که زمان را به کلاینت هایی که از آن درخواست زمان می کنند ارسال می کند.
بعد از اینکه یک Time Server در شبکه راه اندازی کردیم می توانیم کلاینت ها رو تنظیم کنیم که از این Time Server زمان را درخواست کنند و زمان خود را با آن تنظیم کنند. کلاینت ها درخواست های خود را با استفاده از فرمت تعریف شده در Netwotk Time Protocol برای Time Server می فرستند و آن هم جواب خود را با استفاده از همین پروتکل برای کلاینت ها بازپس می فرستد.
برای کامپیوترهایی که عضو دامین هستند، PDC نقش Time Server را دارد و بقیه سرورها و کلاینت ها زمان خود را با زمانی که از این سرور می گیرند تنظیم می کنند. در شبکه های با ترافیک پایین مشکلی دراستفاده از Time Server بوجود نمی آید ولی در شبکه های با ترافیک بالا ممکن است مشکلاتی پیش بیاید، زیرا مدت زمانی که طول می کشد تا زمان از Time Server به کلاینت برسد بالا می رود و به همین دلیل اختلاف زمانی بین Time Server و کلاینت بیشتر می شود.
در حالت کلی همیشه اختلاف زمانی بین Time Server و کلاینت ها وجود دارد، بحث فقط بر سر زیاد بودن یا کم بودن این اختلاف زمانی است. در برخی موارد نیاز یه اختلاف زمانی کمتر از ۱ ثانیه است و در برخی موارد تا ۵ ثانیه اختلاف، مشکلی بوجود نمی آورد.
برای کم کردن این اختلاف می توان به جای استفاده از یک Time Server از چندین Time Server استفاده کرد.
چون هر کلاینت با Time Server اختلاف زمانی خاص خود را دارد بنابراین هر کلاینت با کلاینت های دیگر موجود در شبکه اختلاف زمانی خواهد داشت.
در برخی موارد دیده می شود که در یک دامین برخی از کلاینت ها می توانند فایل های Share شده در روی یک File Server را ببینند ولی برخی دیگر نمی توانند، و بعد از مدتی شرایط عوض می شود، یا دیده می شود که برخی از پرینترهای Share شده دیگر پرینت نمی گیرند، شاید یکی از دلایل اختلاف زمانی زیادی است که بین کلاینت و File Server یا Print Server بوجود امده است و باعث می شود که َAuthentication با شکست مواجه شود. برای رفع این مشکل شاید بهتر باشد که Time Server های دقیق تر استفاده کنیم یا تعداد Time Server ها رو بیشتر کنیم و آنها را در نقاط مختلف شبکه قرار دهیم.

یک کلاینت می تواند به طور همزمان از چندین Time Server درخواست زمان کند، در این حالت کلاینت از بین زمان های دریافت کرده دقیق ترین زمان را انتخاب خواهد کرد.

کلاینت ها در خواست خود را روی پورت UDP: 123 می فرستند.
چند اصطلاح:

NTP Server = Time Server
NTP Client = Client for Time Server

 

یک NTP Server می تواند یک GPS یا ساعت سزیمی ،یا هر سخت افزار دیگری که مناسب این کار است، باشد و دلیلی ندارد که حتما یک Windows Server باشد.