الخلاصة

  • اقترح RFC 794 أن يُبقي البرنامج الذي يخدم محطة طرفية منفذ LISTEN في TCP مفتوحاً أثناء انشغاله باتصالات أخرى، ليتمكن من استقبال طلب أعلى أولوية ومقارنته بما يعمل الآن.
  • في مثال FTP ذي أولوية «flash-override»، يتولى التطبيق في الجهة المستقبلة إنهاء اتصال أدنى مرتبة، وقد يضطر نظام التشغيل في الجهة المرسلة إلى تحرير موارده قبل إرسال الطلب أصلاً.

ملف ينتقل بصورة عادية بين الحاسوبين X وY. من Z يصل إلى X طلب FTP بأولوية استثنائية. يقرع SYN المنفذ الصحيح؛ لكنه لا يعرف كيف ينهي نقل الملف الجاري. تلك هي الحفرة الصغيرة التي وقف عندها Vint Cerf في RFC 794 الصادر في سبتمبر 1981. رفع رتبة القادم سهل على الورق. إفساح المكان له عمل يقع على برنامج يعرف من يشغل المكان.

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

للوصول إلى محطة طرفية في AUTODIN II، تخيل Cerf برنامجاً يسمى THP يبقي LISTEN معلقاً على منفذ المحطة ولو كانت له اتصالات حية. يصل طلب جديد فترى العملية رتبته، وتقارنه بالجلسات الموجودة. عند الحاجة، تغلق أو تقطع الاتصال الأقل أولوية، وتنقل المستخدم إلى الاتصال الجديد، ثم تضع LISTEN آخر في الانتظار. الباب يظل قادراً على سماع الطارق التالي. أما عدد المقاعد فلا يزيد بفتح الباب.

في هذا التصور، يكشف TCP رتبة الاتصال الوارد للبرنامج الذي يستخدمه. القرار يبقى قرب المستخدم. أوضح Cerf أن TCP يخدم العمليات عادة، ولا ينشئ عملية خدمة لمجرد وصول طلب جديد. وما جدوى إنشاء خادم لمحطة مطفأة؟ يعرف THP حالة المحطة والاتصالات المفتوحة وحدود الأمن التي تضبط تعددها. تلك معرفة يحتاجها من يقرر قطع خدمة شخص قائم.

مثال FTP يضع آثار القرار على المكتب. يحافظ خادم X على LISTEN إضافي وهو ينقل الملف الاعتيادي إلى Y. عندما يأتي طلب Z الأعلى أولوية، يستطيع FTP أن يفسح له المجال بإخراج مستخدم أدنى مرتبة إن امتلأت موارده، وأن يبدأ معالجة آثار النقل المقطوع. العملية التي لا تترك LISTEN وهي مشغولة لا تقبل هذا النوع من الإزاحة. يمكن للزائر أن يحمل بطاقة عاجلة؛ الشباك المغلق لا يقرأها.

ثم نظر Cerf إلى Z نفسه. إذا استهلك موارده الخاصة بـ FTP أو TCP، فلن يستطيع المستخدم الرفيع الأولوية بدء الطلب. قد يحتاج نظام التشغيل المحلي إلى إخلاء مورد له، وربما بتسجيل خروج مستخدمين أدنى مرتبة. وقد ترتبط الرتبة بالمستخدم أو بالمحطة، ويتولى TCP المحلي أو نظام التشغيل اختيار طريقة الإخلاء. لا يستطيع خادم X أن يوفر لـ Z مكاناً في ذاكرته.

في صفحتين، فصلت المذكرة بين الإعلان عن الأولوية ودفع تكلفتها. التطبيق المستقبل يعرف العمل الذي سيقطعه، والنظام المرسل يعرف ما يحتاجه لبدء العمل الجديد. تسافر الإشارة عبر الاتصال، لكن المقعد الذي يُخلى موجود في برنامج يعمل على أحد الطرفين.