از NTP برای هماهنگ کردن ساعت دستگاه های شبکه استفاده می شود تا سرویس هایی که با زمان در ارتباط هستند و کار می کنند به درستی عمل نمایند. یکی از این سرویس ها مبحث log می باشد هر Log ی که تولید می شود دارای زمان می باشد برای اینکه راحت تر بتوانید این log ها را جمع آوری و بررسی کنید باید زمان آن دستگاه دقیق باشد. در این مقاله قصد برآن است تا شناخت مناسبی از پروتکل زمان شبکه را کسب نماییم.
پروتکل زمان شبکه یا همان NTP مخفف کلمه Network Time Protocol است که از سرویس هایی با قدمت بالا می باشد که وظیفه هماهنگ سازی ساعت و زمان را در شبکه های ip base برعهده دارد. این پروتکل قادر است کلیه کامپیوتر های شبکه را در کمتر از چند میلی ثانیه با زمان جهانی هماهنگ کند، NTP اکثراً قادر است زمان را در بین میلی ثانیه روی اینترنت نگه داشته و به زمانی در حدود ۱ میلی ثانیه در شبکه های Lan بهبود بخشد. پیاده سازی ، دریافت و ارسال Timestamps با استفاده از پروتکل UDP روی پورت ۱۲۳ انجام میشود.
ساعت هماهنگ جهانی یا Coordinated Universal Time به اختصار UTC یک استاندارد زمان از نوع اتمی است و ۰٫۹ ثانیه با ساعت GMT گرینویچ اختلاف دارد که NTP از آن جهت هماهنگی ساعت کامپیوترها بهره میبرد. در این ساعت جهانی از روشهای مختلفی مثل تجهیزات رادیویی و گیرنده های ماهواره ای GPS گران قیمت جهت هماهنگی و دقت استفاده می شود، حال با وجود NTP نیازی نیست برای هر کامپیوتر این تجهیزات خریداری شود و تایم سرورهای اصلی با اتصال به این تجهیزات به سایر کلاینتها سرویس دقیق زمان را در حد کمتر از میلی ثانیه ارائه می دهند.
کارکرد اصلی ntp در شبکه، هماهنگ سازی دقیق زمان برای کلاینت ها و دیوایس ها می باشد و این امر نیز با دقتی در حد ساعت اتمی و اختلاف به میزان میلی ثانیه صورت می پذیرد. جهت دسترسی به ساعتی با این دقت، نیاز است تا ارتباط با سرورهای بسیار پیشرفته و پرقدرت بعلاوه ماهواره های gps مخصوص، برقرار شود. بنابراین پر واضح است که چنین سطح ارتباطی مشمول هزینه های بالا و سنگین است. با توجه به اینکه مقرون به صرفه نیست تا برای تک تک دیوایس ها و کلاینت ها این اتصال برقرار شود، با ایجاد سرور هایی به عنوان رابط می توان این مشکل را برطرف کرد بطوری که کلاینت های لایه های پایین تر با ایجاد شبکه و اتصال به این سرور واسط اقدام به همگام سازی ساعت خود کنند. همچنین در این شرایط هر دیوایس یا کلاینت می تواند بصورت همزمان به چند سرور ntp متصل شود تا دقیق ترین زمان را دریافت کند. قطعاً در این مرحله نزدیکی فیزیکی و بعد مسافت می تواند اثر مستقیم در دقت ساعت اعلامی داشته باشد یعنی هرچه سرور ntp نزدیک تر باشد ساعت دقیق تر و اختلاف کمتر، و هرچه فاصله با سرور ntp دورتر باشد تأخیر بیشتر و درنتیجه دقت کمتر در ساعت اعلام شده حاصل خواهد شد.
نحوه عملکرد NTP به اینگونه است که در ابتدا میبایست اعلام کرد که از پورت UDP 123 استفاده مینماید، سپس شبکه این اجازه را می دهد که زمان خود و تمامی برنامه ها را یکسان و هماهنگ کند .در بهترین حالت ممکن لازم است که این دستگاه زمان خود را با یک سرور دقیق و قابل اعتماد هماهنگ نماید، سپس کاربر می تواند روتر خود را تنظیم نماید که به عنوان یک NTP سرور مجازی برای شبکه Local باشد این روتر می بایست به عنوان یک NTP Clien یک سرور مجازی دیگر عمل نموده تا از این طریق بتواند زمان خود را با آن هماهنگ سازی نماید. در این راستا از رمزنگاری و احراز هویت بین دستگاه ها پشتیبانی میشود، در صورتیکه تعداد زیادی روتر با پیام مختلف و نیازمند زمان هماهنگ در یک سیستم وجود داشته باشند می توان بهترین نتیجه و بررسی را با NTP دریافت نمود.
NTP در ورژن سوم ویژگی Authentication را دارا میباشد که برای update ها استفاده می شود. نسخه سوم این پروتکل با وجود اینکه جمع آوری log های دستگاه های شبکه جهت اطلاع از اتفاقات داخل شبکه از اهمیت بالایی برخوردار است، در زمان بسیار کوتاهی زمان تمام دستگاه ها را یکسان سازی مینماید. در ورژن سوم NTP از احراز هویت و رمزنگاری بین دستگاه ها پشتیبانی می شود، یکی از مزایای داشتن زمان دقیق این است که log ها و پیام هایی که توسط دستگاه ها تولید می شوند بهتر می تواند مورد بررسی و جمع آوری قرار گیرد.