7أبريل

عن GPS Week Rollover

الليلة في الساعة الثالثة فجراً سنكون أمام حدث تقني مهم يعرف بـ GPS Week Rollover. من الممكن بأن يتسبب في تعطل الكثير من الأنظمة، أو على الأقل عودة الزمن فيها لمدة 20 سنة!

نظام الـGPS يعتبر أحد المصادر الأساسية اللي تعرف أنظمتنا الوقت عن طريقها سواء بشكل مباشر أو غير مباشر، وهذا الشيء له علاقة أكثر مع بروتوكول NTP.

تعمل أنظمة NTP بشكل طبقي تسمى كل طبقه فيها Stratum، بحيث يكون نظام الـGPS يحمل الطبقة أو Stratum رقم 0، ومن ثم سيرفر الـNTP بـStratum 1، وهكذا حتى يحصل جهازك الشخصي على الوقت من السيرفر الخاص بمزود خدمات الانترنت الخاص بك، وتكون أنت الطبقة الخامسة مثلًا.

عودة إلى الستالايت وأنظمة GPS: فهي توفر بيانات الوقت والتاريخ كعدد الأسابيع منذ epoch + عدد الثواني التي انقضت في الأسبوع الحالي.

epoch هي عدد الثواني منذ تاريخ 1 يناير 1970.

أين تكمن المشكلة إذًا؟

الخانة التي يتم معرفة قيمة الأسبوع الحالي من خلالها في أغلب أنظمة الـGPS تتكون من عشر بتات 10bits، وهذا يعني أن القيمة القصوى لخانة رقم الأسبوع هي 1023. في الأسبوع رقم 1024 تعود القيمة إلى 0 وهذا ما سيسبب مشكلة الليلة. القيمة 0 تعود للأسبوع الذي بدأ يوم 6 يناير عام 1980. وبالمناسبة: حصل الـrollover للمرة الأولى عام 1999 بتاريخ 21 أغسطس، وهذا يعني فعليًا أن القيمة الحقيقية للأسبوع الحالي هي 2048، ولكن تم تصفير القيمة في 1999 حتى تعاود الأنظمة عملها. بالتالي فتأثير الليلة سيعود بنا إلى عام 1999 وليس 1980.

تأثير هذه المشكلة سيكون متفاوت – أو منعدم – من نظام لآخر، حسب إعدادات بروتوكول الوقت NTP. من الجيد أنه سيتم التعديل في البروتوكول حتى تصبح القيمة مكونة من 13bits، مما سيمنح الأنظمة 8192 أسبوعاً بدلًا من 1024.

لمهندسي أنظمة لينكس: يستحسن القيام بالمزامنة مع ثلاثة مصادر Stratum-1 مختلفة، أو على الأقل التأكد من إعدادات ntp/chrony لرصد وتجنب حدوث أي قفزة في الوقت. تستطيع تحديد قيمة maxchange في إعدادات chrony لتجنب المزامنة \ تغيير الوقت والتاريخ في حال حدوث فارق أكبر من قيمة معينة مابين السيرفر الخاص بك والـStratum-1،

أتمنى لكم ليلة هنيئة. نراكم قبل 20 سنة!

شارك التدوينة !

اضف رد

لن يتم نشر البريد الإلكتروني . الحقول المطلوبة مشار لها بـ *

*

كُتِبَتْ بِحُب ♥