الملخص

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

وصفت RFC 896، المنشورة في يناير 1984، مشكلة الحزم الصغيرة في شبكات TCP/IP المبكرة. فقد تحمل بايت واحد من بيانات التطبيق معه أربعين بايت من ترويسات TCP وIP. وفي الشبكات غير المتجانسة والروابط شديدة التحميل، كان سيل الحزم الصغيرة يستهلك قدرة النقل والمعالجة في البوابات، ويزيد الازدحام، وقد يؤدي إلى الفقد وإعادة الإرسال.

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

تصف RFC 1122 الاختبار بالحالة SND.NXT > SND.UNA. وعندما تكون صحيحة، توجد بيانات أُرسلت ولم تُؤكَّد. عندها يخزن المرسل بيانات المستخدم، بصرف النظر عن بت PSH، إلى أن تُؤكَّد البيانات المعلقة أو يصل الطابور إلى مقطع كامل بحجم Eff.snd.MSS. ويُعد المقطع الكامل شرط تحرير مستقلاً. وإذا كان الاتصال خاملاً ولا توجد بيانات معلقة، يمكن إرسال الكتابة الصغيرة الأولى فوراً.

توصي RFC 1122 بأن يطبق TCP خوارزمية ناغل، لكنها تشترط أن يتيح تنفيذ TCP للتطبيق وسيلة لتعطيلها في كل اتصال على حدة. وتحافظ RFC 9293 على هذا الفرق بين التوصية والإلزام، وتذكر أن الإرسال يظل خاضعاً للبدء البطيء. لا تمنح ناغل إذناً عاماً بالإرسال ولا تحل محل التحكم في الازدحام.

ولا تحدد القاعدة متى يرسل المستقبل إقراراً. تميز RFC 9293 بين ناغل وتجنب متلازمة النافذة السخيفة، وتحذر من التفاعل مع الإقرارات المتأخرة. قد ينتظر المرسل تقدم ACK بينما يؤخر المستقبل إقراره؛ وقد يضيف الضابطان، رغم سلامة كل منهما محلياً، تأخيراً عند نقطة التلاقي.

المصادر