الخلاصة

  • يجعل RFC 9693 التهيئة جزءاً من القياس: تنشئ المرحلة الأولى مجموعة محدودة من الاتصالات في الجهاز قيد الاختبار، ويسجل Responder الرباعيات المترجمة، ثم تقيس المرحلة الثانية الأداء فوق تلك الحالة المعروفة.
  • تثبت مرحلة ثانية بلا فقد تجربة صندوق أسود محددة المعلمات فقط؛ ولا تكشف الجدول الداخلي، ولا تمثل حركة الإنترنت أو TCP تلقائياً، ولا تثبت هامش التشغيل أو اكتمال خدمة المستخدم.

العودة تحتاج إلى اتصال موجود

يستطيع Initiator إرسال رباعية جديدة في اتجاه العميل إلى الخادم. عندها قد يسجل DUT اتصالاً ويترجم الحزمة ويمررها. أما Responder فلا يستطيع اختراع رباعية جديدة في الاتجاه المعاكس؛ فالحزمة التي لا تنتمي إلى اتصال قائم تُسقط عادة.

لهذا توجد ذاكرتان منفصلتان. يحتفظ DUT بجدول تتبع اتصال لا يعرف Tester حجمه أو محتواه أو سياسة استبداله. ويحتفظ Responder بجدول حالة مبني فقط من الرباعيات المترجمة التي استلمها فعلاً. عدد الرباعيات المعروضة، والحزم الواصلة إلى الأمام، والسجلات المحفوظة، والاتصالات التي نجح اختبارها عكسياً ليست رقماً واحداً.

عبارة «مليون جلسة» لا تقول إن كانت الجلسات مقترحة أو ممررة أو باقية أو صالحة في الاتجاهين. المنهج يبني سلسلة إثبات لهذه الفروق.

العشوائية قد تطلب مليارات الحالات

يوصي RFC 4814 بمنافذ شبه عشوائية موزعة بانتظام كي لا يمنح نمط مريح أفضلية لدالة hash. لكن كل رباعية غير مألوفة في NAT ذي الحالة قد تطلب إدخالاً جديداً.

مع زوج واحد من عناوين IP، تنتج النطاقات الواسعة 3,170,829,312 تركيبة منافذ. وتضاعف نطاقات العناوين هذا الفضاء. قد يملأ مولد يصف نفسه بالواقعية جدول الاتصالات قبل أن يبدأ القياس المقصود.

يحافظ RFC 9693 على التوزيع شبه العشوائي لكنه يقيد النطاقات. يكون نطاق منفذ المصدر أكبر، غالباً بعشرات الآلاف، ونطاق الوجهة أصغر بما يعكس الفرق بين منافذ العميل المؤقتة وعدد الخدمات الشائعة. حجم كل نطاق جزء من النتيجة؛ «حركة عشوائية» وصف غير كاف.

المرحلة الأولى تصنع مجتمع المرحلة الثانية

في المرحلة الأولى يرسل Initiator وحده. يترجم DUT وينشئ الاتصالات، بينما يستقبل Responder الرباعيات ويسجلها من دون إرسال. وهكذا تُملأ حالة الجهاز غير المرئية وقائمة العودة المرئية معاً.

يجب تنفيذ هذه المرحلة قبل throughput أو latency أو loss في المرحلة الثانية. ويجب أن يكون معدلها أقل بأمان من أقصى معدل لإنشاء الاتصالات، لذلك يُقاس هذا الحد أولاً.

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

هذه ليست صورة كاملة للإنترنت، بل ضوابط تفصل تكلفة إنشاء الحالة عن تكلفة التمرير عبر حالة جاهزة.

الوصول إلى الأمام لا يثبت بقاء الاتصال

لا يقرأ Tester جدول DUT مباشرة. حتى وصول كل حزم المرحلة الأولى لا يضمن بقاء كل اتصال. ربما كان معدل الإنشاء عالياً، أو امتلأ الجدول، أو استبدلت سياسة داخلية إدخالات.

لذلك يستخدم Responder كل رباعية مخزنة ويرسل حزمة عكسية بمعدل أقل تحدده نسبة أمان. وصول جميع الحزم إلى Initiator يقدم دليلاً على وجود تلك الاتصالات وعلى ملاءمة معدلي الذهاب والعودة.

أما الفقد العكسي فله أسباب متعددة: قد يكون R أو r مرتفعاً، أو انتهت السعة، أو رفض الجهاز إدخالات جديدة، أو استبدل وفق LRU، أو حذف دفعة أثناء garbage collection. المشاهدة لا تتحول إلى قراءة داخلية.

السعة نطاق قبل أن تكون رقماً

يبدأ القياس بعدد آمن C0 ومعدل موثق R0. تضاعف عملية بحث أسي عدد الاتصالات حتى انهيار DUT أو هبوط شديد في معدل الإنشاء، ثم يضيق بحث ثنائي المجال حتى خطأ معلن E.

تغير سياسة الاستبدال ما يبقى. رفض الجديد يحفظ الاتصالات الأولى، وLRU يحفظ الأحدث، والحذف على دفعات قد ينتج نجاحات أقل من السعة المادية. لذلك لا يساوي N′ الدقيق دائماً حجم الجدول.

وللحذف مقياس مستقل: تُحمّل N اتصالات، ثم يُقاس زمن حذف خارج المسار خاص بالتنفيذ، ويُقسم N على الزمن. مسح الجدول كله ليس بالضرورة مثل حذف الإدخالات واحداً واحداً.

الترتيب والوقت وCPU من معلمات النتيجة

يوصي RFC بالكتابة الدورية في جدول Responder للمحافظة على حداثته، وبالقراءة شبه العشوائية؛ ويمكن استخدام القراءة الدورية الأرخص. وقد يكشف الترتيب التصاعدي أو التنازلي أثر cache أو hash أو الاستبدال.

يجب تسجيل timeout وطول المرحلتين والفاصل والنوى النشطة وhashsize وnf_conntrack_max والعتاد ونظام التشغيل وkernel وإصدار التنفيذ. كما يجب تكرار القياس؛ ويعطي الوسيط والمئينان الأول و99 وعدد الجولات وخطأ البحث معنى لدقة الرقم.

UDP يحدد حدود الادعاء

يسهل UDP إرسال معدل ثابت من دون مخالفة تحكم TCP في الازدحام والتدفق أو إضافة المصافحة. لكن التنفيذ قد يستخدم مؤقتات ومسارات مختلفة لـTCP. يحذر RFC 9693 من تعميم نتيجة UDP، ويشير إلى RFC 9411 لاختبارات HTTP وHTTPS.

إذن يثبت انعدام الفقد مزيجاً واحداً من DUT وإصداره وإعداده ومجموعة الرباعيات وترتيبها وtimeout والاتجاه والمعدل والنوى. ولا يثبت محتوى الجدول الخفي أو توزيع الإنترنت أو TCP أو الاحتياط التشغيلي أو إتمام معاملة.

تقدم المواصفة لغة مقارنة مشتركة، ويقدم البرنامج العامل المشاهدة. تصبح النتيجة قابلة للقرار فقط حين تبقى السلسلة بينهما قابلة للتحقق.

المصادر