الملخص

  • تعاملت RFC 2001 مع ثلاث رسائل ACK مكررة بوصفها مؤشراً قوياً على مقطع مفقود، لا دليلاً على سبب غيابه، وأتاحت إعادة الإرسال قبل انتهاء المؤقت.
  • تضبط الاستعادة السريعة cwnd مؤقتاً عند ssthresh + 3 مقاطع، وتضيف مقطعاً لكل ACK مكرر لاحق، ثم تعيدها إلى ssthresh عندما يتقدم الإقرار إلى بيانات جديدة.
  • يثبت التسلسل استنتاجاً ضيقاً لدى المرسل عن استمرار وصول مقاطع لاحقة. ولا يثبت سعة المسار أو هوية النظير أو وصول البيانات إلى التطبيق.

ثلاث إشارات تغيّر القرار ولا تكشف السبب

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

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

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

نافذتان وسلطتان مختلفتان

تعلن نافذة المستقبل مقدار البيانات التي يستطيع TCP البعيد قبولها. أما cwnd فهي حد يضعه المرسل وفق تصوره لحالة الشبكة. لا يتجاوز الإرسال أصغر الحدين. لذلك لا يعني توفر مساحة تخزين لدى المستقبل أن الروابط والموجّهات في الطريق قادرة على استيعاب الدفعة نفسها.

يحدد ssthresh الانتقال من نمو البدء البطيء إلى نمو تجنب الازدحام الأكثر حذراً. وعند انتهاء المؤقت تهبط cwnd إلى مقطع واحد، لأن الصمت لا يقدم دليلاً كافياً على استمرار التدفق. أما ثلاث رسائل ACK مكررة فتقدم نمطاً مختلفاً: الحافة لا تتحرك، لكن بيانات لاحقة لا تزال تعبر.

هكذا تصبح خوارزميات RFC 2001 الأربع سلسلة واحدة. يستكشف البدء البطيء، ويضبط تجنب الازدحام معدل النمو، وتعالج إعادة الإرسال السريع الفجوة المفترضة، وتحافظ الاستعادة السريعة على ساعة ACK أثناء الإصلاح.

التضخيم قيد محاسبي مؤقت

عند ACK المكرر الثالث تضبط RFC 2001 قيمة ssthresh عند نصف cwnd الحالية، على ألا تقل عن مقطعين. ثم تعيد إرسال المقطع الذي يبدو مفقوداً، وتضع cwnd عند ssthresh + 3*segsize.

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

يزيد كل ACK مكرر لاحق cwnd بمقطع واحد. وإذا سمحت النافذة يرسل الطرف مقطعاً آخر. لكن الإذن مشروط بوصول إشارة جديدة إلى خروج مقطع آخر؛ فهو استبدال مؤقت وليس ترخيصاً لرفع معدل الإرسال على المدى الطويل.

تقدم الإقرار يغلق الرصيد

عندما يغطي ACK بيانات جديدة، تعيد RFC 2001 cwnd إلى ssthresh. تختفي الزيادة الأولية وكل الزيادات اللاحقة، ويبقى المرسل عند نحو نصف نافذته السابقة ضمن تجنب الازدحام. هذه الإزالة تفصل محاسبة الاستعادة عن السلطة الدائمة على الإرسال.

تتوقع الوثيقة أن يغطي الإقرار المتقدم المقطع المعاد والمقاطع الوسيطة المخزنة. لكن كلمة «تتوقع» مهمة: لا يرى المرسل المسار الذي سلكته كل نسخة، ولا يعرف سبب وصول الإشارة في تلك اللحظة.

وتضع RFC 793 حداً إضافياً للمعنى. فالـACK يعني أن TCP المستقبل تحمل مسؤولية البيانات، لا أنها وصلت إلى المستخدم النهائي. لذلك لا يثبت تقدم النقل أن تطبيقاً عالج رسالة أو حفظ سجلاً، كما أن ACK المكرر — الذي لا يحرك الحافة — يثبت أقل من ذلك.

ما الذي يجب أن يبقى في سجل التدقيق

يحتاج السجل القابل للمراجعة إلى رقم ACK المتكرر، وعدد التكرارات، ونطاقات التسلسل قيد الطيران، وقيمتي cwnd وssthresh قبل الانتقال وبعده، ونطاق إعادة الإرسال، وكل زيادة مؤقتة، وأول ACK تقدم إلى بيانات جديدة. اختصار ذلك كله في خانة «تمت الاستعادة» يمحو الفرق بين الملاحظة والاستنتاج والإذن والنتيجة.

تعرّف صفحة RFC Editor الوثيقة التي كتبها W. Richard Stevens في يناير 1997 كمعيار مقترح استبدلته لاحقاً RFC 2581. تحفظ نسختا HTML والنص خطوات الخوارزمية، ويوثق IETF Datatracker تاريخها. تقدم RFC 1122 سياق الإقرار الفوري للبيانات الخارجة عن الترتيب، وتستخدم RFC 2581 هنا لإثبات مسار الاستبدال فقط.

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