ما هو انحراف الساعة؟

انحراف الساعة هو الفرق بين ساعة نظامك المحلية والوقت المرجعي الحقيقي — في هذه الحالة، ساعة الخادم. على الرغم من أن أنظمة التشغيل تحاول الحفاظ على مزامنة الساعات باستخدام NTP (بروتوكول وقت الشبكة)، فإن الاختلافات الصغيرة التي تتراوح من بضعة ميلي ثانية إلى عدة ثوان شائعة جداً، خاصة على الأجهزة التي لم تتم مزامنتها مؤخراً أو التي تقع خلف جدران حماية صارمة.

يعتبر فهم انحراف الساعة مهماً في الأنظمة الموزعة والتطبيقات في الوقت الفعلي ورموز المصادقة (مثل TOTP) والمهام المجدولة وأي سيناريو يحتاج فيه العميل والخادم البعيد إلى الاتفاق على الوقت الحالي. قد يؤدي الانحراف الكبير إلى فشل التحقق من الرموز أو عدم الوفاء بالمواعيد النهائية أو طوابع زمنية غير صحيحة في السجلات.

وصف الأداة

تقيس هذه الأداة انحراف الساعة بين متصفحك والخادم باستخدام بروتوكول توقيت قائم على WebSocket. تُرسل سلسلة من اختبارات الذهاب والإياب، وتسجل زمن الانتقال لكل منها، وتستخدم وقت الذهاب والإياب الوسيط (RTT) لحساب مدى تقدم أو تأخر ساعتك المحلية بالنسبة للخادم. بعد القياس، تعرض الأداة تقديراً مباشراً لوقت الخادم إلى جانب وقتك المحلي حتى تتمكن من ملاحظة الفرق في الوقت الفعلي.

كيفية العمل

تفتح الأداة اتصال WebSocket مع الخادم وتتبادل سلسلة من رسائل ping/pong المختومة بالوقت. لكل رسالة:

  1. يسجل العميل وقت الإرسال، ويستقبل طابع الوقت من الخادم في الرد، ويسجل وقت الاستقبال.
  2. يتم استخدام نصف وقت الذهاب والإياب كتقدير لتأخير الشبكة ذي الاتجاه الواحد.
  3. يتم حساب انحراف الساعة كالتالي: serverTime − clientTime − (RTT / 2).

يتم جمع عشرة عينات ويتم استخدام وسيط RTT — وليس المتوسط — لتقليل تأثير القمم الشاذة الناجمة عن توقفات جمع القمامة أو تشويش الشبكة العابر. يشير انحراف الساعة الناتج إلى عدد الميلي ثانية التي تتقدم بها ساعتك المحلية (موجب) أو تتأخر (سالب) عن الخادم.

الميزات

  • قياس قائم على WebSocket — يستخدم الاتصال ثنائي الاتجاه في الوقت الفعلي لاختبارات توقيت دقيقة بدون تكلفة HTTP
  • تصفية وسيط RTT — يجمع 10 عينات ويستخدم الوسيط للقضاء على التشويش والقمم الشاذة
  • عرض الساعة المباشر — يعرض وقت الخادم المقدر المحدث بشكل مستمر والوقت المحلي جنباً إلى جنب بعد القياس