معلمة تراكم الاستماع لمأخذ التوصيل، كيفية تحديد هذه القيمة؟

StackOverflow https://stackoverflow.com/questions/114874

  •  02-07-2019
  •  | 
  •  

سؤال

كيف يمكنني تحديد ما يجب استخدامه لمعلمة تراكم مأخذ الاستماع؟هل هناك مشكلة في تحديد عدد كبير جدًا؟

هل كانت مفيدة؟

المحلول

من مستندات:

قيمة تراكم SOMAXCONN هي ثابت خاص يوجه مزود الخدمة الأساسي المسؤول عن المقابس لتعيين طول قائمة انتظار الاتصالات المعلقة إلى أقصى قيمة معقولة.

نصائح أخرى

هناك إجابة طويلة جدًا على هذا في الأسئلة الشائعة لمبرمج Winsock.فهو يعرض تفاصيل الإعداد القياسي وميزة التراكم الديناميكي التي تمت إضافتها في الإصلاح العاجل إلى NT 4.0.

أنا أستخدم SOMAXCONN ثانيًا، إلا إذا كان لديك سبب محدد لاستخدام قائمة انتظار قصيرة.

ضع في اعتبارك أنه إذا لم يكن هناك مكان في قائمة الانتظار لاتصال جديد، فلن يتم إرسال RST، مما يسمح للعميل بمواصلة محاولة الاتصال تلقائيًا عن طريق إعادة إرسال SYN.

أيضًا، يمكن أن يكون للوسيطة backlog معاني مختلفة في تطبيقات مأخذ التوصيل المختلفة.

  • في معظم الأحيان، يعني حجم قائمة انتظار الاتصال نصف المفتوحة، وفي البعض الآخر يعني حجم قائمة انتظار الاتصال المكتملة.
  • في العديد من التطبيقات، سيتم مضاعفة وسيطة backlog للحصول على طول قائمة انتظار مختلف.
  • إذا تم تحديد قيمة كبيرة جدًا، فستقوم جميع التطبيقات باقتطاع القيمة بصمت إلى الحد الأقصى لطول قائمة الانتظار على أي حال.

كتحذير لأي شخص يستخدم Boost asio، يتم استخدام قيمة SOMAXCONN كـ 5 مع Boost.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top