الخلاصة

  • حسب RFC 1185 أن نصف المجال الحاسم لأرقام تسلسل TCP يمكن أن يمر في نحو 17 ثانية عند سرعة 1 غيغابت في الثانية. وقد تصل حزمة قديمة متأخرة حاملة رقماً صار مألوفاً من جديد.
  • قارن PAWS في RFC 1323 الطابع الزمني الوارد بالقيمة المحفوظة TS.Recent لطرد النسخ القديمة داخل الاتصال. وبعد أكثر من 24 يوماً من الخمول، ألزم التنفيذ بإبطال ذلك المرجع حتى لا يصد كل حزمة جديدة عند استئناف العمل.

يرقم TCP البايتات، ثم يعود إلى بداية المجال عندما ينتهي العد. على طريق بطيء، يغادر القطاع القديم الشبكة عادة قبل أن يعود رقمه إلى الخدمة. على طريق بالغ السرعة، قد تدور الأرقام أسرع من اختفاء القطاعات المتأخرة. تخيل طابوراً يعود إلى أرقام التذاكر نفسها قبل أن يخرج جميع زبائن الجولة السابقة. يفحص الحارس البطاقة فيرى رقماً صحيحاً؛ صاحب البطاقة جاء من الأمس.

عرض RFC 1185 الصادر في أكتوبر 1990 المسألة بالأرقام. أعطى جدوله قرابة 17 ثانية لنصف الدورة المهم في أرقام التسلسل عند 1 غيغابت في الثانية، وقارن ذلك بعمر أقصى مقداره دقيقتان للقطاع في حساب TCP. عودة الرقم كانت أسرع من إمكانية بقاء حزمة قديمة في الطريق. هذا حساب لتصميم مسار سريع، لا سجل لحادثة بعينها؛ لكنه أظهر الحاجة إلى علامة ثانية.

جاءت العلامة في RFC 1323 المنشور في مايو 1992: خيار الطابع الزمني في TCP. خدم قياس زمن الذهاب والإياب، وخدم PAWS، أي الحماية من أرقام التسلسل التي دارت دورة كاملة. يحتفظ المستقبل داخل اتصال قائم بقيمة حديثة اسمها TS.Recent. إذا وصلت حزمة بقيمة TSval أصغر من ذلك المرجع وما زال صالحاً، يرسل المستقبل إقراراً ثم يسقط الحزمة. وتبقى قواعد نافذة التسلسل العادية قائمة للحزم التي تجتاز اختبار الزمن. يستطيع الزائر القديم أن يحمل الرقم المناسب؛ ساعته تفضحه.

لا تحتاج جهتا الاتصال إلى ضبط ساعتيهما على الوقت نفسه. المطلوب أن تتقدم قيم المرسل بلا تراجع، وأن يجري المستقبل المقارنة في حساب دوري من 32 بت. واستفاد قياس زمن الذهاب والإياب من TS.Recent أيضاً، فاستخدمت الآليتان الذاكرة نفسها. اختبر PAWS البيانات والإقرارات الداخلة ضمن الاتصال المفتوح الواحد، حيث يوجد سجل ذلك الاتصال.

لكن سجل الحارس يشيخ. أجاز RFC 1323 ساعة طوابع زمنية تتراوح سرعتها من نقرة كل ثانية إلى نقرة كل ميلي ثانية. في الطرف السريع، يدور النصف الموقّع من العدد ذي 32 بت في نحو 24.8 يوماً. تخيل اتصالاً مفتوحاً يظل ساكناً طوال تلك المدة. ساعة المرسل تستمر في التقدم. حين يعود الإرسال، قد يظهر طابع جديد بالفعل أصغر من TS.Recent القديم وفق قاعدة المقارنة الدورية. الحارس الذي يصدق دفتره إلى الأبد سيرفض كل زائر جديد ويجمد الاتصال.

لهذا فرض RFC 1323 النسيان. إذا ظل الاتصال خاملاً أكثر من 24 يوماً، وجب على تنفيذ PAWS إبطال قيمة TS.Recent. وعندما يبدو الطابع الوارد أصغر، يفحص المستقبل أولاً صلاحية ذاكرته. إذا انتهت صلاحيتها، يستطيع القطاع اجتياز اختبار PAWS وتقديم مرجع جديد. وتستمر قواعد نافذة التسلسل في تحديد انتماء القطاع للاتصال. تمزيق قائمة قديمة لا يزيل باب الحراسة.

بحث المؤلفون إرسال رسائل إبقاء اتصال دورية لتجديد المرجع، واختاروا الإبطال لأن مواصفة TCP لم تفرض تلك الرسائل. ولا يعرف المستقبل سرعة ساعة الطرف الآخر، لذلك يعمل على أسوأ احتمال. تقيس الأيام الأربعة والعشرون زمن الصمت، لا العمر الأقصى للاتصال. اتصال نشط يجدد معلوماته؛ اتصال نائم يحتاج طريقاً للعودة.

احتفظت المراجعة اللاحقة، RFC 7323، بشرح الطوابع المتقادمة وقاعدة الإبطال. بين 1990 و1992 واجه TCP قِدمين مختلفين: رقم تسلسل يعود سريعاً على الطريق السريع، وذكرى زمنية تتقادم أثناء الوقوف. تعلم الحارس كشف الحزمة المتأخرة، وتعلم كذلك موعد رمي دفتره في سلة المهملات.