پروتکل NTP یک پروتکل اینترنتی است که برای همگام سازی با منابع زمان ساعت کامپیوتر در شبکه استفاده میشود. این پروتکل یکی از قدیمیترین بخشهای مجموعه TCP/IP است. اصطلاح NTP هم برای پروتکل و هم برای برنامههای client-server که روی رایانهها اجرا میشوند به کار میرود.
David Mills، استاد دانشگاه Delaware، در سال 1981، NTP را توسعه داد. این پروتکل به گونهای طراحی شده که علاوه بر پشتیبانی از همگامسازی زمان، در برابر خطا نیز بسیار مقاوم و مقیاسپذیر باشد.
پروتکل NTP چگونه کار میکند؟
سه مرحله زیر در فرآیند همگامسازی زمان NTP دخیل هستند:
- کلاینت NTP با سرور NTP تبادل time-request را آغاز میکند.
- سپس کلاینت میتواند تاخیر لینک و آفست محلی آن را محاسبه کرده و ساعت محلی خود را برای مطابقت با ساعت در کامپیوتر سرور تنظیم کند.
- به عنوان یک قاعده، برای تنظیم اولیه ساعت، شش تبادل در یک بازه زمانی حدوداً 5 تا 10 دقیقه ای لازم است.
پس از همگامسازی، کلاینت تقریباً هر 10 دقیقه یک بار ساعت را بهروز میکند، که معمولاً علاوه بر همگامسازی client-server ، تنها به یک تبادل پیام نیاز دارد. این تراکنش از طریق پروتکل UDP در پورت 123 انجام میشود. NTP از همگامسازی broadcast ساعتهای کامپیوتر همتا نیز پشتیبانی میکند.
چرا NTP مهم است و چگونه از آن استفاده میشود؟
زمان دقیق برای همه دستگاههای موجود در یک شبکه کامپیوتری از اهمیت زیادی برخوردار است. اختلاف حتی کسری از ثانیه میتواند مشکلاتی را ایجاد کند.
نمونههایی از کاربرد NTP عبارتند از:
- پروسیجرهای توزیع شده برای اطمینان از این که توالیهای مناسب دنبال میشوند، به زمانهای هماهنگ شده وابستهاند.
- مکانیسمهای امنیتی به زمان سنجی ثابت در سراسر شبکه وابستهاند.
- بهروزرسانی سیستم فایل در چند رایانه به زمانهای ساعت همگام شده وابسته است.
- سیستمهای شتاب شبکه و مدیریت شبکه برای اندازهگیری عملکرد و عیبیابی مشکلات به دقت مهرهای زمانی متکی هستند.
ویژگیهای NTP چیست؟
هزاران سرور NTP در سراسر جهان وجود دارد. آنها به ساعتهای اتمی بسیار دقیق و ساعتهای سیستم موقعیتیاب جهانی دسترسی دارند. گیرندههای اختصاصی برای ارتباط مستقیم با سرورهای NTP برای این سرویسهای زمانی مورد نیاز هستند.
تجهیز هر کامپیوتر به یکی از این گیرندهها، عملی یا مقرونبهصرفه نیست. در عوض، رایانههایی که به عنوان سرورهای اولیه تعیین شدهاند، با این گیرندهها تجهیز میشوند. آنها از پروتکلهایی مانند NTP برای همگامسازی زمان ساعت کامپیوترهای شبکه شده استفاده میکنند.
NTP از زمان جهانی هماهنگ (UTC) برای همگامسازی زمانهای ساعت کامپیوتر با دقت بسیار زیاد استفاده میکند. NTP در شبکههای کوچکتر دقت بیشتری را (تا 1 میلی ثانیه در یک شبکه LAN و در عرض دهها میلی ثانیه از طریق اینترنت) ارائه میدهد. NTP مناطق زمانی را در نظر نمیگیرد. در عوض، برای انجام این محاسبات به host متکی است.
سطوح طبقاتی چیست؟
درجات فاصله از منبع UTC به عنوان سطوح تعریف میشوند. سطوح مختلف عبارتند از:
- سطح 0: یک ساعت مرجع، زمان واقعی را از یک فرستنده اختصاصی یا سیستم navigation ماهوارهای دریافت میکند و به عنوان سطح 0 طبقهبندی میشود.
- سطح 1: دستگاه مستقیماً به ساعت مرجع متصل است.
- سطح 2: دستگاه زمان خود را از یک کامپیوتر سطح 1 دریافت میکند.
- سطح 3: دستگاه زمان خود را از یک کامپیوتر سطح 2 دریافت میکند.
رتبهبندی طبقاتی تا اینجا ادامه دارد. هر چه فاصله بیشتر شود میزان دقت کاهش مییابد.
از نظر امنیتی، NTP دارای آسیب پذیریهای شناخته شدهای است. این پروتکل به دو دلیل میتواند مورد سوء استفاده قرار گیرد و در حملات DoS مورد استفاده قرار گیرد: اول، به بستهای با آدرس IP منبع جعلی پاسخ میدهد. دوم، حداقل یکی از دستورات داخلی آن، یک پاسخ طولانی به یک درخواست کوتاه ارسال میکند.
مزایای NTPv4 چیست؟
NTPv4 نسخه فعلی NTP است. کارگروه مهندسی اینترنت، NTPv4 را در سال 2010 معرفی کرد. NTPv4 با نسخه قبلی، NTPv3، که بر اساس RFC 1305 است و به سال 1992 برمیگردد، و نیز سایر نسخههای NTP سازگار است.
NTPv4 دارای یک header پروتکل اصلاح شده است که از خانواده آدرس IP ورژن 6 پشتیبانی میکند. نسخه اخیر، الگوریتمهای کاهش اثر و نظم را بهبود بخشیده که دقت را تا دهها میکروثانیه در پشتیبانی از ایستگاههای کاری، لپتاپها، دستگاههای دستی و شبکههای محلی افزایش میدهد. NTPv4 همچنین دارای یک تابع کشف سرور است که شناسایی پیکربندی سرور را ساده میکند.
اطلاعات زمانی چگونه به دست میآید؟
دستگاههای شبکه میتوانند از سرورهای میزبان نظرسنجی کنند و به پخش NTP گوش دهند تا اطلاعات را به موقع دریافت کنند.
- انواع NTP مبتنی بر نظرسنجی
رایجترین حالتهای ارتباط مبتنی بر نظرسنجی، مود کلاینت و مود فعال متقارن است. آنها درجه بالایی از دقت و قابلیت اطمینان را برای زمانبندی ارائه میدهند.
با مود کلاینت، به دستگاههای شبکهای که برای زمان صحیح نظرسنجی میکنند، زمان سرویسدهی host اختصاص داده میشود. سپس یک host را برای همگامسازی انتخاب کرده و هیچ اطلاعاتی را به آن ارائه نمیکند. این رویکرد برای کلاینتهایی مانند سرورهای فایل و ایستگاههای کاری که با سایر کلاینتها همگام نیستند، بهترین است.
با مود فعال متقارن، دستگاه برای زمان صحیح از میزبان خود نظرسنجی میکند. همچنین به نظرسنجیهای میزبان خود پاسخ میدهد تا اطلاعات مربوط به زمان را از دستگاههای شبکه جمعآوری کند. این مود زمانی بهترین کارایی را خواهد داشت که چند سرور با استفاده از مسیرهای مختلف شبکه به هم متصل باشند.
- انواع NTP مبتنی بر Broadcast
روشهای NTP مبتنی بر Broadcast تا حدودی دقت و اعتماد کمتری نسبت به موارد مبتنی بر نظرسنجی دارند. آنها برای شبکههای محلی با پهنای باند، حافظه یا منابع واحد پردازش مرکزی (CPU) محدود مناسبند.
در مود مبتنی بر Broadcast، یک دستگاه شبکه به بستههای Broadcast متعلق به NTP که سرورهای زمان Broadcast ارسال میکنند، گوش میدهد. اطلاعات زمان فقط در یک جهت جریان دارد.
پروتکل SNTP چیست؟
ممکن است NTP برای برخی از سیستمها بسیار پیچیده باشد. در این صورت این سیستمها میتوانند از پروتکل SNTP استفاده کنند که شامل NTP به غیر از چند مولفه داخلی است.
SNTP با سرورهای NTP همگام میشود و برای کامپیوترهای کوچکتر و کم قدرت توسعه یافته است و به حافظه و منابع CPU کمتری نسبت به NTP نیاز دارد. همچنین بخشی از TCP/IP است و از پورت UDP 123 استفاده میکند. SNTP برای برنامههایی استفاده میشود که نیازی به همگامسازی زمان دقیق ندارند.