همهچیز درباره پروتکل NTP
یک کامپیوتر میتواند تا ۴۰ میکروثانیه انحراف زمانی داشته باشد! همین یک جمله اهمیت همگامسازی را بهوضوح به ما نشان میدهد. ساعت کامپیوتر هر روز چند دقیقه یا چند ثانیه تغییر میکند و حفظ زمان دقیق چالشانگیز است؛ از طرفی مدیریت، ایمنسازی، برنامهریزی و اشکالزدایی شبکه به زمان درست و دقیق نیاز دارند. اینجاست که پروتکل ntp به عنوان یک پروتکل همگامسازی وارد عمل میشود. سرورها، سوئیچها، روترها و رایانهها برای همگامسازی زمان در شبکه از این پروتکل استفاده میکنند تا با همگامسازی مداوم ساعت با منبع زمان خارجی، از دقت ساعت اطمینان حاصل کنند. برای دانستن اینکه پروتکل NTP چیست؟ و چه کاربرد، مزایا و ویژگی هایی دارد با ما تا انتهای این مقاله همراه باشید.
پروتکل NTP چیست؟

پروتکل زمان شبکه (NTP) پرکاربردترین پروتکل همگام سازی ساعت شبکه به شمار میرود و حتی برای شبکههای بزرگ عالی عمل میکند. بهعبارت سادهتر این پروتکل، زمان کامپیوتری که در یک مکان جغرافیایی متفاوت قرار گرفته را برای استفاده از اینترنت همگام میکند تا ساعتها مشابه باشند. بگذارید به آن به چشم یک فناوری یکپارچه نگاه کنیم که امکان پخش سیستماتیک زمان استاندارد ملی را از طریق اینترنت و شبکههای خصوصی و تجاری فراهم میکند.
هدف نهایی این فناوری گسترده و فراگیر این است که ساعت تمام کامپیوترهای شبکه را در نهایت دقت و پایداری و یک یا دو میلی ثانیه UTC همگام کند.
نگاهی به تاریخچه ntp؛ سروکله این پروتکل از کجا پیدا شد؟
تحقیق در مورد زمان سنجی شبکه به مدتها قبل از معرفی پروتکل ntp برمیگردد. در سال ۱۹۸۳ یک سند RFC با عنوان «پروتکل زمان» منتشر شد که یک پروتکل زمانی بسیار ابتدایی را معرفی میکرد. پروتکلی که بهعنوان یک سرویس از طریق UDP یا TCP قابل استفاده بود.
اما NTP اولین بار در سال ۱۹۸۵ در دانشگاه Delaware معرفی شد و بعد از آن تلاشهای بسیاری برای بهبود این پروتکل و مرتبطسازی آن با محیط شبکه صورت گرفت.
پروتکل ntp دقیقا برای ما چهکار میکند؟
سه روش همگامسازی زمان وجود دارد:
- همگامسازی سخت افزار
- همگامسازی ناوبری ماهوارهای
- همگامسازی نرم افزار
میان این سه تکنیک رایجترین آنها همگامسازی نرم افزاری است که از همگامسازی زمان شبکه و الگوریتم همگامسازی ساعت استفاده میکند. NTP رایج ترین پروتکل همگام سازی نرمافزاری ساعت شبکه است و برای شبکههای بزرگ مناسبتر است.
هر روتر، سوئیچ، سرور یا ایستگاه کاری میتواند زمان خاص خود را داشته باشد و هیچ مشکلی رخ ندهد. اما گاهی شرایطی رخ میدهد که دانستن زمان دقیق حائز اهمیت است. در نتیجه، در یک شبکه پیچیده با صدها دستگاه وابسته به زمان، همگامسازی ساعتها و زمانسنجی دقیق از اجزای حیاتی عملیات و مدیریت کلی شبکه محسوب میشود.
زمانی که عملیات شبکه در معرض اثرات نامطلوب رویدادهای ناشی از یک اتفاق اولیه (مانند نقض امنیتی) قرار میگیرد یا رویدادی رخ میدهد که قرار است عواقبی داشته باشد، میتوان با دانستن زمان این وقایع، آن ها را بهدرستی بازسازی کرد. زمان فرصت بیشتری برای اجرای اقدامات اصلاحی مؤثر در اختیار مدیر میگذارد.
NTP چطور کار میکند؟
پروتکل ntp یک سیگنال زمان را از یک یا چند ساعت اتمی میگیرد و با توزیع آن روی دستگاههای شبکه، UTC را در دسترس سازمان قرار میدهد. در ابتداییترین حالت ممکن، شبکه NTP از دستگاههایی به عنوان کلاینت (نیازمند همگامسازی) و یک سرور تشکیل شده که زمان UTC را دریافت کرده و در اختیار کلاینتها قرار میدهد. کلاینت و سرور از طریق ارسال درخواست و پاسخ با هم ارتباط برقرار میکنند:
- کلاینت یک بسته درخواست NTP را به سرور زمان ارسال میکند و زمان را تایم استمپ میکند.
- سرور به محض دریافت بسته زمان را مهر میکند.
- زمانی که پاسخ بسته برای کلاینت ارسال میشود، زمان دوباره مهر میشود.
- مشتری زمانی که بسته پاسخ را دریافت میکند (مهر زمانی مقصد) زمان را مهر میکند.
این فرآیند شاید فقط چند میکروثانیه طول بکشد، اما تاخیرهای رفت و برگشت بهطور کاملا دقیق محاسبه میشود. یعنی کلاینت میتواند تفاوت بین زمان داخلی خود و زمان ارائه شده سرور را بررسی کند و در صورت لزوم با تنظیم ساعت خود، همگام با سرور باقی بماند.
NTP server چیست؟
NTP Server یک سرور کامپیوتری است که به عنوان منبع زمان برای سایر دستگاهها در شبکه عمل میکند. این سرورها معمولاً به یک منبع زمان دقیق مثل ساعت اتمی یا GPS متصل هستند و از پروتکل NTP برای توزیع این زمان دقیق به سایر کلاینتها استفاده میکنند.
وظایف اصلی NTP Server چیست؟
حال که با NTP Server آشنا شدیم، لازم است بدانیم مهم ترین وظایف و کاربرد NTP Server چیست؟
- دریافت زمان دقیق: NTP Serverها زمان دقیق را از منابع معتبر دریافت میکنند.
- همگامسازی با منابع زمانی بالاتر: NTP Serverها بهطور مداوم زمان خودشان را با منابع زمانی بالاتر (مثل سرورهای Stratum 1) همگامسازی میکنند.
- ارائه زمان به کلاینتها: NTP Serverها به درخواستهای کلاینتها برای دریافت زمان پاسخ میدهند و زمان دقیق را به آنها ارائه میدهند.
تفاوت NTP و NTP Server چیست؟
برخی افراد ممکن است تصور کنند NTP Server همان پروتکل NTP است؛ درحالی که این دو تفاوت هایی با یکدیگر دارند که در ادامه به آنها می پردازیم:
- پروتکل NTP: در واقع مجموعهای از قوانین و استانداردهاست که تعیین میکند چطور دستگاهها باید با هم ارتباط برقرار کنند تا زمانشان را همگامسازی کنند. این پروتکل نحوه تبادل پیامها، فرمت دادهها و الگوریتمهای مورد استفاده برای تنظیم زمان را مشخص میکند.
- NTP Server: یک کامپیوتر یا دستگاه خاص است که از پروتکل NTP برای ارائه اطلاعات زمانی به سایر دستگاهها استفاده میکند. NTP Serverها مثل یک منبع معتبر زمان عمل میکنند و دستگاههای دیگر میتونند با آنها همگامسازی بشوند.
به عبارت دیگر، پروتکل NTP زبانی است که دستگاهها برای صحبت کردن در مورد زمان استفاده میکنند، و NTP Server دستگاهی است که به این زبان صحبت میکند و اطلاعات زمانی را ارائه میدهد.
ساختار سلسله مراتبی پروتکل ntp

در شبکههای بزرگ کلاینتها زیادند و ممکن است سرور نتواند به درخواست همه آنها رسیدگی کند. در این موارد سرورها و کلاینتها در یک سلسله مراتب چند سطحی به نام لایهها مرتب میشوند. هر یک از این سطحها یک قشر (Stratum) نامیده میشود. یک سرور ntp همگام با ساعت معتبر روی قشر اول اجرا میشود. سپس سرورهای لایه ۲ زمان را از سرورهای لایه ۱ میگیرند، سرورهای لایه ۳ از سرورهای لایه ۲ و الی آخر. انگار هر لایه برای لایه بعدی به عنوان سرور عمل میکند و دیگر همه درخواستها متوجه لایه اول نیست.
ترتیب این لایهها تا ۱۵ سطح امکانپذیر است؛ اما هر لایه مقداری تاخیر دارد که باعث کاهش دقت میشود. برای مقابله با این مسئله میتوان کلاینتها را طوری تنظیم کرد که از چند سرور درخواست کنند تا زمان به دست آمده تا حد امکان صحیح باشد.
برای مطالعه بیشتر مقاله بررسی جامع لایه های شبکه را پیشنهاد می کنیم.
مهمترین ویژگیهای پروتکل ntp چیست؟
برخی از ویژگیهای اساسی پروتکل زمان شبکه عبارت است از:
- NTP یک ساعت مرجع ارائه میکند که تمام ساعتها بر اساس آن تنظیم میشوند.
- این پروتکل همگامسازی به طور خودکار بهترین منابع زمانی را جستجو میکند. برای آنکه میزان خطای موثر بر همگامسازی به حداقل برسد، میتوان چند منبع را با هم ادغام کرد. این پروتکل در صورت امکان منابعی که موقتا یا دائما مقادیر متفاوت ارسال میکنند شناسایی و رد میکند.
- NTP یک پروتکل مقیاسپذیر است. در این ساختار سلسله مراتبی یعنی هر شبکه میتواند ساعتهای مرجع زیادی داشته باشد و هر گره شبکه قادر است اطلاعات زمانی دو طرفه (نقطه به نقطه) یا یک جهته را (در یک جهت) ارسال کند.
- پروتکل NTP کاملا قابل اعتماد بوده و تاخیر حداکثر یک نانوثانیه با این پروتکل امکانپذیر است.
- NTP را میتوان برای حل مشکلات موقت اتصال شبکه استفاده کرد. این پروتکل از قرائتهای پیشین برای تعیین ساعت یا واریانس زمان در لحظه استفاده میکند.
پیکربندی NTP چیست؟
انتخاب منبع زمان، تصمیمگیری در مورد توپولوژی NTP، شناسایی ویژگیهای NTP برای پیکربندی و نظارت و کنترل عملیات NTP، همگی بخشی از فرآیند پیکربندی موثر NTP هستند.
در هر یک از این مراحل گزینههای متعددی ارائه میشود که همگی بر اساس نیاز کاربران شبکه به داشتن زمان، دقیق و هماهنگ است. بسته به اینکه سرور یا کلاینت را پیکربندی میکنید، تنظیمات پروتکل متفاوت است و این تغییرات در نتیجه عملکرد سیستم عامل تاثیر میگذارد.
کلاینتها با پیکربندی مقدماتی و ابتدایی میتوانند بهروزرسانیها را از یک سرور دریافت کنند و سرورها میتوانند بهروزرسانیها را ارائه کنند. دقت کنید که امنیت و افزونگی NTP در پیکربندی ابتدایی NTP مورد بررسی قرار نمیگیرد.
Local NTP چیست؟
بیشتر دستگاهها برای همگامسازی زمان از یک سرور زمان اینترنتی و یک منبع ساعت مانند ماهواره GPS استفاده میکنند. همگامسازی زمان باید با استفاده از یک سرور محلی ntp در یک سناریوی آفلاین انجام شود که در آن دستگاهها به اینترنت متصل نیستند.
گاهی طراح موقع انتخاب یک منبع زمان، به پیکربندی یکی از دستگاههای شبکه به عنوان «مستر» محلی ntp فکر می کند. این مستر از منبعی استفاده میکند که با UTC همگامسازی نشده و زمان آن توسط شما تعیین و تنظیم میشود. با ویژگی مستر امکان همگام سازی زمان بین دستگاههای شرکتکننده بر اساس زمان محلی آنها امکان پذیر میشود، حتی اگر زمان آنها در مقایسه با UTC خیلی دقیق نباشد. روتر، سوئیچ یا سروری که قابلیت مستر را پیادهسازی میکند، میتواند به عنوان مستر محلی ntp عمل کند.
سرور NTP چیست؟
سرور زمان یک اصطلاح برای توصیف نرم افزاری است که روی سرور پروتکل زمان شبکه NTP-Network کار میکند و میتوان آن را روی هر پلتفرم یا رایانهای که از ntp پشتیبانی میکند، نصب کرد. تجهیزات شبکه از جمله رک سرور و غیره زمان را از یک منبع خارجی میگیرند، از آن استفاده میکنند و آن را به شبکههای مرتبط با خود تحویل میدهند.
سرور NTP بدون حالت است و به بستههای NTP کلاینت روی پورت ۱۲۳ گوش میدهد. سپس به بستههای دریافتی اطلاعاتی مثل مهر زمانی را اضافه میکند و آن را به فرستنده اصلی میفرستند.
کدام سیستم عاملها از ntp پشتیبانی میکنند؟
پروتکل زمان شبکه در اصل برای سیستمهای یونیکس توسعه داده شد که هنوز هم در آن در قالب ntdp پیاده میشود. هم به عنوان کلاینتی که سیستم محلی را همگام سازی میکند و هم به عنوان سروری برای سیستمهای دیگر. تا مدتها این سرویس اولین انتخاب برای پیادهسازی در توزیعهای لینوکس بود؛ اما نسخههای جدید بیشتر به برنامه کلاینت timeyncd متکی هستند.
در حال حاضر سیستم عاملهای MacOS و Windows هم از این پروتکل استفاده میکنند تا زمان UTC را به سادهترین شکل ممکن و بدون نرم افزارهای اضافه دریافت کنند.
پروتکل ntp چقدر امن است؟

همگامسازی امن زمان روی یک شبکه عمومی هم جذاب است و هم خطرناک.
پروتکل زمان شبکه (NTP) به هر دستگاهی اجازه میدهد تا با انتخاب از میان سرورهای زمان، ساعت داخلی خود را با UTC همگام کند. با این حال، برای اینکه سیستمها همگام شوند، باید دری برای ورود اطلاعات زمانی در فایروال باز بگذارد. NTP برای پورت ۱۲۳ طراحی شده و این از نقطه نظر امنیتی، یک خطر بزرگ است. بسیاری از شرکتها از این استراتژی برای حفظ زمان شبکه استفاده میکنند. از سوی دیگر، هکرهای شرور نیز میدانند دقیقا کدام درب فایروال برای ورود اطلاعات باز است. چیزی درست شبیه ارسال یک دعوتنامه با دستورالعمل نحوه هک شبکه برای مهاجم.
پکت لاس چیست؟ آشنایی با مفهوم Packet Loss در شبکه را در این مقاله از دست ندهید.
آسیبپذیریهای پروتکل ntp
مزاحمان میتوانند از NTP برای خفگی شبکه با بستههای پاسخ بزرگ، آسیب به سرویسهای مهم و حساس به زمان و غیره استفاده کنند. متاسفانه این پروتکل در برابر انواع حملات آسیبپذیر است که برخی از آنها عبارتاند از:
- حملات بازپخش یا تکرار (Replay Attack)
- حمله مرد میانی (MITM)
- حملات تاخیر که در آن بستههای سرویس گیرنده و سرور برای مدت زمان ثابت یا متغیری تأخیر دارند؛ اما تغییری اتفاق نمیافتد.
- حملات DDoS که در آن مهاجم یک دستگاه محافظت نشده را شناسایی کرده و با تبدیل آن به یک ربات اصلی، از آن برای آلوده کردن سایر رایانههای آسیبپذیر شبکه استفاده میکند.
استراتوم در ntp چیست؟
در پروتکل NTP (Network Time Protocol)، استراتوم (Stratum) نشان میدهد که یک سرور زمان تا چه اندازه از منبع اصلی زمان (معمولا یک ساعت اتمی) فاصله دارد.
- استراتوم 0: خود منبع اصلی زمان (ساعت اتمی بسیار دقیق).
- استراتوم 1: سروری که مستقیما از یک ساعت اتمی زمان میگیرد.
- استراتوم 2: سروری که از یک سرور استراتوم 1 زمان میگیرد و الی آخر.
هرچه استراتوم بالاتر باشد، دقت زمان کمتر است. به طور کلی، سرورهای با استراتوم پایینتر (مثل 1 یا 2) دقیقتر هستند.
تفاوت بین NTP و SNTP چیست؟
پروتکل زمان شبکه ساده (SNTP) نسخهای از پروتکل زمان شبکه (NTP) است. در ادامه با تفاوتهای این دو آشنا میشویم:
- Ntp برای آنکه به درجه بالایی از همگامسازی دست پیدا کند، الگوریتمهای آماری پیچیده با رویکردهای کالیبراسیون معرفی میکند تا انحرافات کوچک را فیلتر کند. در حالی که sntp روشهای سادهتری برای همگامسازی زمان شبکه اتخاذ میکند.
- در پروتکل ntp منابع زمانی متعدد بهطور منظم نظارت میشوند تا نتایج کاملا قابل اطمینان و پایدار ارائه شود. از سوی دیگر، SNTP قادر به نظارت و فیلتر کردن چندین مرجع زمانی نیست. این پروتکل در بیشتر موارد فقط برای کار با یک منبع زمانی قابل استفاده است.
- NTP از ویژگیهای امنیتی مختلف برای احراز هویت کلاینت و سرور استفاده میکند. در مقابل بسیاری از سرویس گیرندگان SNTP توجهی به رویههای احراز هویت ندارند و سیستمها را در معرض کاربران مخرب قرار میدهند.
تفاوت بین PTP و NTP چیست؟
پروتکل زمان دقیق یا PTP به طور کامل طبق استاندارد 1588 IEEE تعریف شده و یک منبع زمانی بسیار دقیق و مقیاسپذیر است که میتواند طیف گستردهای از تجهیزات شبکه را پشتیبانی کند. اما تفاوت هایی با پروتکل ntp دارد که در ادامه به آنها میپردازیم:
- PTP برای استفاده روی سیستمهای محلی LAN ساخته شد. در حالی که NTP معمولا در سراسر اینترنت مورد استفاده قرار میگیرد. در نتیجه مستعد تاخیر بیشتر ناشی از تعدد گرههای شبکه و نگرانیهای امنیتی خواهد بود.
- PTP مخفف «عملیات بدون مدیریت» است، به این معنی که میتوان دستگاهها را با کمترین پیکربندی یا اصلا بدون پیکربندی نصب کرد و در عین حال به بهترین شرایط همگامسازی زمانی برای محیط دست یافت. در حالی که الگوریتم بهینهسازی NTP کمی وابستهتر است و نیازهای پیکربندی بیشتری دارد.
- NTP دقت میلیثانیه ارائه میکند؛ در حالی که دقت PTP زیر یک میکروثانیه است.
- امنیت ntp با لیستهای کنترل دسترسی و رمزنگاری کلید عمومی تامین میشود؛ در حالی که PTP مجهز به یک افزونه آزمایشی برای رسیدگی به نقضهای امنیتی است.
برای آشنایی بیشتر و اطلاعات جامعتر میتوانید مقاله پروتکل های شبکه را مطالعه نمایید.
تفاوت پروتکل NTP با (PTP و SNTP)
اگر بخواهیم مهم ترین تفاوت های بین پروتکلهای NTP (Network Time Protocol) ،PTP (Precision Time Protocol) و SNTP (Simple Network Time Protocol) را به طور خلاصه با هم مقایسه کنیم میتوانیم آن را به صورت جدول زیر نشان دهیم:
ویژگی | NTP | PTP | SNTP |
---|---|---|---|
هدف اصلی | همگامسازی ساعتها با دقت متوسط (تا میلیثانیه) | همگامسازی ساعتها با دقت بالا (تا نانوثانیه) | همگامسازی ساعتها با دقت کم (تا میلیثانیه) |
دقت | دقیق تر از SNTP، اما کمتر از PTP | بسیار دقیق، مناسب برای کاربردهای حساس | دقت کمتر نسبت به NTP |
عملکرد | موثر برای شبکههای بزرگ و توزیعشده | مناسب برای شبکههای محلی و نیازهای خاص | سبک و ساده، برای کاربردهای عمومی |
پیادهسازی | پیچیدهتر به دلیل الگوریتمهای تصحیح خطا | پیچیدهتر و نیاز به سختافزار خاص | ساده و آسان برای پیادهسازی |
تعداد سیستمها | پشتیبانی از تعداد زیادی کلاینت | بیشتر محدود به کلاینتهای خاص | پشتیبانی از تعداد زیاد کلاینتها |
زمانبندی | استفاده از زمان استاندارد UTC | استفاده از زمان بهینه برای دقت بیشتر | استفاده از زمان UTC |
پروتکلهای اضافی | میتواند با طیف وسیعی از پروتکلها کار کند | معمولاً با پروتکلهای خاص (IEEE 1588) کار میکند | محدود به عملکرد شبکهای اولیه |
کلام آخر
پروتکل NTP روشی قابل اعتماد، کاربرپسند و مقرون به صرفه برای همگامسازی زمانی به کسبوکارها و سازمانهایی که تحت شبکه کار میکنند، ارائه میدهد. این یکی از قدیمیترین پروتکلهای اینترنتی است که همچنان مورد استفاده قرار میگیرد و حتی بعد از معرفی چهارمین نسخه، بسیاری از اصولی که در اولین سالهای معرفی به بازار باعث شهرت آن شده بود را به همان قوت حفظ کرده است.
شما نیز میتوانید با اتصال دستگاههای شبکه به یک سرور زمانی تحت این پروتکل، از مزایای دقت زمانی در تمام نقاط جهان، افزایش بهره وری، بهبود خدمات مشتری و همگامسازی عملیات خود بهرهمند شوید.
شما درباره این پروتکل چه اطلاعات بیشتری دارید؟ ما و همراهان تسکا منتظر شنیدن نظرات و تجربیات شما عزیزان درباره این پروتکل هستیم.
سوالات متداول
همگامسازی دقیق زمان برای مدیریت، برنامهریزی، اشکالزدایی و امنیت شبکه ضروری است. زمان دقیق امکان تجزیه و تحلیل رویدادها، پیگیری تغییرات و کاهش خطاها را فراهم میکند و به اقدامات اصلاحی مؤثر کمک میکند
NTP از یک ساختار سلسلهمراتبی با نام لایهها یا Stratum استفاده میکند. سرورهای درجه اول (Stratum 1) زمان را مستقیماً از منابع دقیق مانند ساعتهای اتمی دریافت میکنند. سرورهای لایههای پایینتر (تا Stratum 15) زمان را از سرورهای لایههای بالاتر میگیرند، که این امر دقت بالایی در توزیع زمان فراهم میآورد.
NTP ممکن است از تاخیرهای زمانی در شبکه آسیب ببیند و در برابر حملات سایبری آسیبپذیر باشد. برای بهبود وضعیت امنیتی و دقت، میتوان از روشهای امنیتی پیشرفتهتر و پیکربندی بهتر استفاده کرد. همچنین استفاده از چندین منبع زمان میتواند دقت را بهبود بخشد.
NTP مناسب شبکههایی است که مقیاس گستردهتری دارند و نیازی به دقت زمانی زیر میکروثانیه نیست. برای شبکههای محلی که نیازمند دقت زمانی بسیار بالا هستند و تأخیر زمانی کمتری دارند، PTP انتخاب بهتری است.
دیدگاهتان را بنویسید