محاسبه زمان بر مبنای قوانین سخت‌گیرانه بین‌المللی
محاسبه دقیق یک ثانیه کبیسه
ویندوز سرور 2019 برآوردهای نظارتی را با دقت زمانی بالایی انجام می‌دهد که سازگار با UTC (از جمله پشتیبانی از جهش ثانیه‌ها) هستند. در این مقاله در مورد پیشرفت‌های فنی انجام گرفته بین ویندوز سرور 2016 و ویندوز سرور 2019 صحبت خواهیم کرد که از آن جمله می‌توان به پشتیبانی از ثانیه کبیسه سازگار با UTC، یک پروتکل زمانی دقیق و جدید به‌نام Precision Time Protocol و قابلیت ردیابی انتها به انتها اشاره کرد. اما قبل از این‌که وارد مباحث فنی شویم، اجازه دهید به واکاوی این مسئله بپردازیم که چرا قابلیت جدید برای شما مهم است؟

در گذشته بررسی صحیح بودن زمان در ویندوز به سناریوهای دامنه‌محوری محدود می‌شد که لازم بود همه دستگاه‌ها در کمتر از 5 دقیقه همگام‌سازی شوند. اکنون، قوانین جدید حاکمیتی وب (به‌طور مثال، FINRA در ایالات متحده و ESMA/MiFIDII در اتحادیه اروپا) به تصویب رسیده که تولیدکنندگان سیستم‌عامل‌ها و نرم‌افزارهای حساس به زمان را ملزم می‌کند دقت زمانی محصولات خود را فوق‌العاده بالا ببرند. (این زمان سخت‌گیرانه در حدود 100 میکرو ثانیه است). تولیدکنندگان نرم‌افزارهای حساس در این زمینه کار سختی پیش‌رو دارند، زیرا اعلام یک طرفه این دقت زمانی به تنهایی کافی نیست و سیستم‌عامل‌ها مجبور هستند زمان خود را به یک منبع زمانی قابل استناد برای رهگیری نشان دهند تا ثابت شود عملکرد درستی دارند. مایکروسافت دقت زمان 1 میلی‌ثانیه را به ویندوز سرور 2016 اضافه کرد تا برخی از پیش‌نیازهای قانونی را رعایت کرده باشد. اما کار به همین جا ختم نشد و ویندوز سرور 2019 اصلاحاتی انجام داد تا نشان دهد به قوانین وضع شده پایبند است. این پیشرفت‌ها به ویندوز سرور 2019 اجازه داده‌اند تا بارهای کاری را مطابق با وابستگی‌های زمانی اولويت‌بندی کند. 

پشتیبانی از ثانیه کبیسه

ثانیه کبیسه یا Leap second مقدار زمان یک ثانیه است که گاه‌به‌گاه به زمان UTC (ساعت هماهنگ جهانی) اضافه می‌‌شود تا تاریخ آن روز با زمان خورشیدی هماهنگ شود. حالا ممکن است این سوال برای شما پیش بیاید که چرا روی زمین کسی نیاز به تنظیم UTC دارد؟ از آنجایی که گردش زمین به کندی انجام می‌شود، UTC (یک زمان‌بندی اتمی‌) از زمان خورشیدی یا زمان نجومی‌ فاصله پیدا می‌کند. به محض اینکه این اختلاف زمانی به 0.9 ثانیه رسید، یک ثانیه کبیسه ایجاد می‌شود تا UTC با زمان خورشیدی همگام شود. از آن‌جایی که سامانه بررسی ثانیه کبیسه از سال 1972 آغاز به کار کرده، یک ثانیه کبیسه معمولا هر 18 ماه رخ می‌دهد. در ایالات متحده حداکثر فاصله زمانی انتها به انتها پنجاه میلی‌ثانیه است. (مقدار فوق در اتحادیه اروپا از این مقدار هم کمتر است). با وضع قوانین جدید، ویندوز سرور2019 ملزم است تا میزان دقت را در مدت زمان ثانیه کبیسه حفظ کند. تنها اعمال ثانیه کبیسه کافی نیست، چگونگی انجام آن نیز اهمیت دارد. از نظر بسیاری اضافه کردن یک ثانیه کوچک و ناچیز کار خیلی ساده‌ای است، اما شما به عنوان یک متخصص فناوری‌اطلاعات حتما مسائلی که با ورود به سال 2000 به وجود آمدند (Y2K) را به خاطر دارید یا دست کم در مورد آن‌ها مطالبی خوانده‌اید. یک ثانیه کبیسه به چه شکل کار می‌کند؟ در حالت عادی کامپیوترها ثانیه را از 0 تا 59 و در مجموع 60 ثانیه نگه‌داری می‌کنند. وقتی یک ثانیه کبیسه اتفاق می‌افتد، یک ثانیه اضافه به آخرین دقیقه روز UTC اضافه می‌شود و ساعت از 0 تا 60 و در مجموع 61 ثانیه را طی می‌کند.
در ساعت اتفاقی شبیه به آن‌‌چه در جدول یک مشاهده می‌کنید اتفاق خواهد افتاد (در این مثال آخرین دقیقه روز UTC به وقت محلی در واقع 4:59 بعد از ظهر است).

بدون ثانیه کبیسه با ثانیه کبیسه
16:59:58    16:59:58
16:59:5916:59:59
17:00:0016:59:60
17:00:01 17:00:00
17:00:0217:00:01

 جدول 1

برخی از صاحب‌نظران همچون نیل دگراس تیسون، اخترفیزیکدان آمریکایی ممکن است به درستی بگویند به لحاظ فنی ثانیه کبیسه می‌تواند به صورت مثبت و منفی باشد. یک ثانیه کبیسه مثبت یک ثانیه به روز اضافه کرده و یک ثانیه کبیسه منفی یک ثانیه از آن کم می‌کند. یک ثانیه کبیسه منفی در واقع هرگز اتفاق نیفتاده است، اما اگر چنین اتفاقی رخ دهد مایکروسافت بازهم قادر به پشتیبانی از آن خواهد بود. در جدول دو شما یک ثانیه کبیسه منفی را مشاهده می‌کنید.

بدون ثانیه کبیسه  با ثانیه کبیسه
16:59:5716:59:57
16:59:5816:59:58
16:59:59 17:00:00
17:00:0017:00:01
17:00:01  17:00:02

جدول 2

بهبود دقت 

ویندوز سرور 2019 به خوبی توانسته است، دقت بخش‌های اصلی این پلتفرم را ارتقا دهد، اما یک سوال بدیهی وجود دارد. چرا به‌دست آوردن زمان صحیح تا این حد دشوار است؟ بخش‌های مختلفی در یک سامانه حساس به زمان با یکدیگر در تعامل هستند تا زمان درستی به‌دست آید. در ویندوز سرور 2019 یک پروتکل همگام‌سازی به‌نام Precision Time Protocol (PTP) قرار گرفته است. شما ممکن است از خود بپرسید که مگر پروتکل NTP چه ایرادی داشت؟ به آخرین رعدوبرقی که مشاهده کرده‌اید فکر کنید. آیا در یک لحظه صاعقه و صدا را دیده و شنیده‌اید؟ به‌جز در مواردی که شما خیلی به طوفان نزدیک هستید، احتمالا صدای رعد‌وبرق را با یک تاخیر قابل ملاحظه نسبت به نور آن می‌شنوید. این تاخیر شنیداری چه میزان است؟ این تاخیر تنها به سرعت صدا و فاصله شما از طوفان بستگی ندارد. ساختمان‌ها و سایر عواملی که تاخیر آکوستیک بیشتری به وجود می‌آورند در این ماجرا نقش دارند. اگر می‌خواهید بدانید چقدر با طوفان فاصله دارید، باید تمام عوامل تاثیرگذار را در نظر بگیرید (شکل 1).


به همین ترتیب، یک زمان تاخیر در بسته‌های زمانی که از طریق سرور زمان در شبکه عبور می‌کنند تعریف شده است. اگر این تاخیر محاسبه نشود یا متوازن نباشد (مساوی در هر دو جهت به سمت یا از طرف کلاینت)، برای کلاینت دشوار خواهد بود تا به‌طور دقیق کد زمانی ارسال شده از طرف سرور زمان را به کار گیرد (شکل 2). پروتکل (NTP) سرنام Network Time Protocol  برای مدت زمان طولانی اصلی‌ترین شیوه همگام‌سازی زمان در ویندوز بود، اما متاسفانه NTP راهکاری برای حل این مشکل ندارد. NTP فرض می‌کند این تاخیر ایجاد شده در شبکه متوازن است. PTP به دستگاه‌های شبکه اجازه می‌دهد زمان تاخیر اعلام شده توسط هر دستگاه شبکه را به محاسبات زمان‌بندی اضافه کنند تا یک نمونه زمان دقیق‌تر برای نقطه پایانی (ویندوز سرور 2019، ویندوز 10 یا ماشین مجازی) فراهم شود. در این‌جا، پروتکل Precision Time بر اساس نیازهای پیکربندی شبکه NTP به عنوان پروتکل پیش‌فرض استفاده می‌شود، برای مشتريانی که به بالاترین میزان دقت نیاز دارند، مدیران شبکه می‌توانند از PTP Client ویندوز سرور 2019 که یک سیستم با دقت حتا بالاتر را برای آن‌ها فراهم می‌کند استفاده کنند.

مهر زمانی نرم‌افزاری 

وقتی یک بسته زمانی از یک سرور زمان روی شبکه دریافت می‌شود، قبل از مصرف توسط سرویس زمان باید توسط پشته شبکه سیستم‌عامل پردازش شود. هر یک از مولفه‌های پشته شبکه، یک مقدار متغیر از تاخیر را وارد می‌کنند که بر دقت اندازه‌گیری زمان تاثیر می‌گذارد. شاید در ظاهر چنین موضوعی کم اهمیت باشد، اما چنین اتفاقی می‌تواند بین 30 تا 200 میکرو ثانیه  زمان را افزایش دهد. 
علاوه بر این، ممکن است سرویس‌های دیگری روی سامانه باشند که به دنبال داده‌های شبکه هستند. به‌طور مثال، یک SQL Server با پایگاه‌های داده راه دور یا سرورهای فایل با فضای ذخيره‌سازی SAN/NAS که به دقت زمانی نیاز دارند را تصور کنید. بسته‌های این بارهای کاری همگی با بسته‌های سرویس Windows Time در رقابت هستند تا بتوانند از پشته شبکه عبور کنند که این مسئله تاخیر اضافی را به وجود می‌آورد. برای جلوگیری از بروز چنین پیشامدی، ویندوز سرور 2019 قبل و بعد از مولفه‌های شبکه ویندوز به بسته‌ها مهر زمانی اضافه می‌کند. به این شكل با محاسبه تاخیرهای نرم‌افزاری می‌توان دقت زمان را بالا برد.

قابلیت ردیابی 

اعلام میزان دقت توسط خود سامانه به تنهایی کافی نیست. سیستم‌عامل باید بتواند دقت عملکرد خود را به یک مرجع زمانی شناخته شده ثابت کند. در ایالات متحده این مرجع UTC(NIST) است. اولین گام برای اجرای الزامات این مقررات حسابرسی تغییرات و همگام‌سازی سامانه محلی است. برای انجام این‌کار ویندوز سرور 2019 به امکانات گزارش‌گیری اضافی تجهیز شده که می‌توان از گزارش‌های فوق برای بررسی اقدامات انجام گرفته توسط سرویس زمان ویندوز استفاده کرد. از این گزارش‌ها برای پاسخ به سوالاتی همچون موارد زیر استفاده می‌شود:

  • سرور زمان انتخاب شده چیست و وضعیت تکرار همگام‌سازی به چه صورت است؟
  • آخرین بار چه زمانی همگام‌سازی صورت گرفته و نتایج چه بوده؟
  • چه اقداماتی بعد از این همگام‌سازی صورت گرفته؟

این گزارش‌ها در یک کانال رویداد استاندارد به‌نام Time-Service نگه‌داری می‌شوند که می‌توان محاوره‌هایی روی آن‌ها اجرا کرد. همچنین شمارنده‌هایی برای وضعیت عملکرد وجود دارد که به شما اجازه می‌دهند تعدادی از عوامل مرتبط با زمان بحرانی را شناسایی کرده و آن‌ها را برطرف کنید. در شکل 3 دو نمونه از این شمارنده‌های الحاقی را مشاهده می‌کنید. یکی اختلاف زمانی محاسبه شده (Computed Time Offset) به میلی‌ثانیه و دیگری تاخیر رفت و برگشت NTP (NTP Roundtrip Delay) به میلی‌ثانیه را نشان می‌دهد.


Computed Time offset  اختلاف زمانی مطلق بین ساعت سامانه و منبع زمان انتخاب شده است که توسط سرویس W32Time محاسبه می‌شود. این عدد باید تا حد ممکن کوچک باشد که نشان دهد ساعت شما تا چه اندازه با ساعت مرجع هماهنگ است. NTP Roundtrip Delay زمان سپری شده در کلاینت NTP بین ارسال یک درخواست به سرور NTP و دریافت یک پاسخ معتبر از سرور است. هر چه این عدد بزرگتر باشد، حفظ یک ساعت دقیق دشوارتر خواهد بود.

جمع‌بندی 

قوانین و فناوری‌هایی که در گذشته برای بررسی زمان تعیین شده‌اند، انطباق چندانی با استانداردهای امروزی ندارند. حالا صنایع حساس قوانین به‌مراتب سخت‌گیرانه‌تری دارند و از طرفی این میزان دقت به تنهایی راضی‌ کننده نیست و برای اثبات آن عملکرد سیستم‌های شما باید قابل رهگیری باشند. ویندوز سرور 2019 توانسته به این الزامات دقت زمانی و قوانین مرتبط برای بارهای کاری حساس به زمان از طریق مجموعه‌ای از اصلاحات از جمله زمان سازگار و دقیق در مدت یک ثانیه کبیسه، یک شیوه همگام‌سازی زمان جدید در پروتکل Precision Time و قابلیت ردگیری در سراسر سیستم دست پيدا کند. شما می‌توانید از ویندوز سرور 2019 برای کارهای حساس به زمان در صنایع مهم، برنامه‌های کاربردی یا خدمات ابری استفاده کنید.

برای مطالعه تمام بخش‌های آموزش ویندوز سرور 2019 تهیه شده در سایت ماهنامه شبکه اینجا کلیک کنید.
 


ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از دکه‌های روزنامه فروشی تهران و شهرستان‌ها تهیه کنید. همچنین می‌توانید برای مطالعه شماره‌ها مختلف آن به کتابخانه‌های عمومی سراسر کشور مراجعه نمایید.

آخرین نسخه ماهنامه شبکه را دریافت کنید
برای دانلود ماهنامه شبکه 222 با پرونده ویژه «ترفندهای سیستم‌عامل‌ها» اینجا کلیک کنید.

اشتراک ماهنامه شبکه
اشتراک ماهنامه شبکه یکی دیگر از راه‌های دسترسی به مطالب مجله است؛ به ویژه اشتراک آنلاین که با قیمتی مناسب محتوای کامل مجله، شامل مطالب و آگهی‌ها را در ختیار شما قرار می‌دهد.

برچسب: 

مطالب پربازدید روز

پشتیبانی توسط ایران دروپال