الخلاصة
- يثبت الإقرار التراكمي وصول سلسلة متصلة، لكنه لا يصف الجزر التي وصلت بعد أول فجوة حين تضيع عدة مقاطع في دفعة واحدة.
- سمح RFC 2018 للمستقبِل بالإبلاغ عن نطاقات بايتات غير متجاورة، مع بقاء هذه الإشارة استشارية وبقاء الإقرار التراكمي الحكم النهائي.
- حوّل RFC 3517 ثم RFC 6675 الخريطة إلى استعادة محافظة تعتمد سجلًا للنطاقات وتقديرًا للبيانات قيد العبور وإعادة إرسال إنقاذية محدودة.
إذا فُقد المقطع الثاني من سلسلة ووصلت المقاطع التالية، يعرف المستقبِل أنه يحتفظ بمعظم البيانات. لكن رقم الإقرار العادي يتوقف قبل الفجوة. تكراره يخبر المرسِل بوجود مشكلة، ولا يخبره بدقة بما وصل بعدها. يصبح الخيار بين انتظار جولة شبكة لكشف كل فقد، أو إعادة إرسال بيانات ربما وصلت أصلًا.
جاء RFC 2018 في أكتوبر 1996 ليمنح TCP لغة ثانية لوصف الاستقبال. لم تكن الفكرة بلا سابقة؛ فقد تضمن RFC 1072 صيغة أقدم لم تنتشر، ومن أسباب ذلك الخلاف حول استخدامها مع توسيع النافذة. فصل التصميم الجديد بين الإذن والتقرير: تُعرض SACK-Permitted في مقطع SYN، ثم يمكن بعد الاتفاق إرسال كتل SACK التي تحدد الحافتين اليسرى واليمنى لنطاق متصل من أرقام التسلسل.
لم تتغير دلالة الإقرار التراكمي. فهو يؤكد أن كل بايت قبل الحد قد وصل. أما كتل SACK فتصف جزرًا لاحقة يحتفظ بها المستقبِل. إنها دليل إرشادي لا مخالصة نهائية. قد يتخلى المستقبِل تحت ضغط الذاكرة عن بيانات سبق أن أبلغ عنها، لذلك لا يجوز للمرسِل حذف نسخته قبل أن يتجاوزها رقم الإقرار التراكمي.
كما أن الخريطة مضغوطة بحكم المساحة. لا تتجاوز مساحة خيارات TCP أربعين بايتًا. تحمل SACK أربع كتل في الحد الأقصى، وغالبًا ثلاثًا عند استخدام الطابع الزمني. يفرض RFC 2018 تقديم الكتلة المرتبطة بأحدث مقطع، ويوصي بتكرار كتل قريبة. يحافظ ذلك على حداثة المعلومة ويقاوم ضياع إقرارات العودة، لكنه يعني أن التقرير اختيار محدود لا صورة كاملة لذاكرة المستقبِل.
حدد RFC 2018 صيغة الدليل ولم يفرض خوارزمية شاملة للمرسِل. شدد على بقاء قواعد ضبط الازدحام. وفي أبريل 2003 قدّم RFC 3517 مسارًا محافظًا للعمل: يحتفظ المرسِل بلوحة تسجل النطاقات المؤكدة تراكميًا وانتقائيًا، ويستنتج الفجوات المفقودة، ويستخدم Pipe لتقدير البايتات التي لا تزال في الشبكة، ثم يختار الإرسال التالي ضمن نافذة الازدحام.
يفصل هذا الترتيب بين الرؤية والسلطة. يصف المستقبِل ما في قائمته، بينما يفسر المرسِل الخريطة ويحتفظ بالنسخة ويتحمل تكلفة الخطأ. يمكن إصلاح عدة خسائر في مرحلة واحدة، لكن المعلومة الإضافية لا تسمح بتجاهل خفض النافذة أو ملء المسار بنسخ احتياطية.
حل RFC 6675 محل RFC 3517 في أغسطس 2012. استخدم معلومات SACK الجديدة في تعريف الإقرارات المكررة، وحسن تقدير الفقد للمقاطع الأصغر من الحجم الأقصى، وأضاف RescueRxt. فإذا وقع الفقد عند نهاية النافذة ولم توجد بيانات جديدة، قد تتوقف ساعة الإقرارات. يسمح الحل بإعادة إرسال تفاؤلية واحدة في كل مرحلة استعادة، على ألا تتجاوز مقطعًا واحدًا بالحجم الأقصى للمرسِل.
ليست قصة SACK انتقالًا بسيطًا من TCP بطيء إلى TCP سريع. إنها تاريخ توزيع الثقة. يعرف المستقبِل ما يحتفظ به الآن، لكنه لا يضمن الاحتفاظ به دائمًا. يتحكم المرسِل في الاستعادة، لكنه يرى المسار عبر تقارير متأخرة وناقصة. تضغط مساحة الرأس الحالة، وقد يلغي انتهاء المهلة قيمة استنتاجات سابقة.
التحول الدائم هو أن الإقرار أصبح أكثر من حد من دون أن يصبح أمرًا. منحت الخريطة المرسِل فرصة لتقليل الإعادات غير الضرورية، وأبقت عليه مسؤولية الذاكرة والسرعة. بهذه الموازنة تحسنت الاستعادة من غير أن يتحول مكسب طرف واحد إلى عبء غير منضبط على المسار المشترك.
المصادر
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
