الخلاصة
- يحدد مؤقت إعادة الإرسال موعد المحاولة التالية، بينما تحدد USER TIMEOUT موعد إنهاء الاتصال.
- تنقل RFC 5482 تفضيل الطرف الآخر، لكن الحدود المحلية وCHANGEABLE تبقيان السلطة النهائية محلياً.
ساعتان لسؤالين مختلفين
عندما لا يصل إقرار مفيد للبيانات الموجودة قيد النقل، قد ينتهي مؤقت إعادة الإرسال. عندها يعيد TCP إرسال المقطع الموجود في مقدمة الطابور ويعيد تشغيل المؤقت. لا يعني ذلك أن التطبيق مستعد للاحتفاظ بالاتصال إلى أجل غير مسمى.
تجيب USER TIMEOUT عن سؤال آخر: إلى متى يمكن أن تبقى البيانات المرسلة من دون تسليم ناجح؟ عرّفت RFC 793 هذه المدة كحد يقدمه المضيف محلياً إلى TCP. وتفصل RFC 9293 الحدثين صراحة. عند انتهاء مهلة إعادة الإرسال يُعاد إرسال أول مقطع ويُعاد تهيئة المؤقت. أما حدث USER TIMEOUT فيفرغ الطوابير، ويبلغ عن إجهاض الاتصال، ويحذف TCB، ويدخل الحالة CLOSED.
لذلك قد تظل إعادة إرسال أخرى ممكنة في اللحظة التي تكون فيها ميزانية الانتظار المحلية قد انتهت. يكيّف RTO إيقاع المحاولات وفق قياسات الذهاب والإياب وغموض الفقد. أما USER TIMEOUT فتحدد مدة قبول الاحتفاظ بالحالة والذاكرة وعدم اليقين أمام التطبيق.
ولا تمثل هذه المهلة مهلة طلب من التطبيق. فقد يتخلى التطبيق عن عملية واحدة مع إبقاء الاتصال، أو يطلب إزالة الاتصال نفسه عندما يتعذر تسليم البيانات المعلقة.
اقتراح بالثواني أو الدقائق
كانت المهلة في الأصل محلية. لم يكن أحد الطرفين يعرف المدة التي يريد الطرف الآخر خلالها الاحتفاظ باتصال متعطل. قدمت RFC 5482 خيار TCP User Timeout لإظهار هذا التفضيل للطرف المقابل.
يحمل الخيار Kind 28 وLength 4. وتختار بتّة واحدة دقة الثواني أو الدقائق، بينما تحمل البتات الخمس عشرة المتبقية الفاصل المقترح. ويمكنه التعبير عن مدة من ثانية واحدة إلى أكثر من تسع ساعات، أو من دقيقة واحدة إلى أكثر من اثنين وعشرين يوماً.
القيمة نصيحة للطرف الآخر وليست أمراً بعيداً بإجهاض الاتصال. وتشمل الحالة المجردة USER_TIMEOUT وADV_UTO وENABLED وCHANGEABLE. يكون ENABLED معطلاً افتراضياً ويتحكم في إرسال الخيار ومعالجته. أما CHANGEABLE فيحدد ما إذا كان الاقتراح المستلم يستطيع تغيير المهلة المحلية.
إذا حدد التطبيق مهلة بعينها وكان CHANGEABLE غير مفعّل، فلا يجوز للقيمة المستلمة أن تتجاوزها أو تستبدلها. ومع ذلك ينبغي لـ TCP أن يبلغ التطبيق باقتراح الطرف الآخر. تعبر المعلومة الاتصال، لكن السلطة لا تنتقل معه.
الحدود تحمي الموارد
يجب على التنفيذ فرض حدين أدنى وأعلى محليين. فقد تنهي قيمة قصيرة جداً اتصالات تمر بمسار بطيء أو متضرر مؤقتاً. وقد تحتفظ قيمة طويلة جداً بالمخازن وحالة الاتصال، وتزيد خطر استنفاد الموارد. ويمكن أن تساعد المصادقة والحدود لكل طرف في التخفيف من ذلك.
لا يثبت غياب UTO غياب USER TIMEOUT. فالتنفيذ غير الداعم قد يتجاهل الخيار بصمت، كما قد تمنع مساحة خيارات TCP المحدودة حمله. ويمكن لجدار ناري أن يحذف حالته قبل انتهاء مهلة الطرفين. تثبت الحزمة الملتقطة وجود اقتراح عند نقطة المراقبة فقط، لا اعتماده ولا بقاء حالة وسيط الشبكة.
إذا فُعّل keepalive مع UTO، فيجب أن يكون مؤقت keepalive أطول من USER_TIMEOUT المعتمد. يفحص keepalive حيوية اتصال خامل، بينما تحد USER TIMEOUT مدة استمرار البيانات غير المسلّمة.
كانت خطوة RFC 5482 دقيقة: جعلت السياسة المحلية اقتراحاً محدوداً ومعلناً، من دون منح الطرف الآخر سلطة القرار النهائي في الإجهاض.
المصادر
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
