X
X

TCP Keepalive: كيف يكتشف Linux الاتصالات الميتة دون تدخل التطبيق؟

الصفحة الرئيسيةمقالاتTCP Keepalive: كيف يكتشف Linux الاتصالات الميت...

TCP Keepalive: كيف يكتشف Linux الاتصالات الميتة دون تدخل التطبيق؟

مقدمة

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

لهذا يوفر بروتوكول TCP ميزة TCP Keepalive، التي تسمح باكتشاف الاتصالات الميتة وإغلاقها تلقائيًا.

ما هو TCP Keepalive؟

TCP Keepalive هو آلية داخل بروتوكول TCP ترسل حزمًا صغيرة إلى الطرف الآخر عندما يظل الاتصال خاملًا لفترة طويلة.

إذا لم يتلقَّ النظام أي استجابة بعد عدد معين من المحاولات، يعتبر الاتصال منتهيًا ويغلقه تلقائيًا.

كيف يعمل؟

  1. يبقى الاتصال دون أي حركة لفترة زمنية محددة.
  2. يرسل النظام حزمة Keepalive.
  3. إذا وصل رد، يبقى الاتصال مفتوحًا.
  4. إذا لم تصل استجابة بعد عدة محاولات، يتم إنهاء الاتصال.

فوائد TCP Keepalive

تحرير الموارد

إغلاق الاتصالات غير المستخدمة.

تحسين استقرار التطبيقات

منع تراكم الاتصالات الوهمية.

اكتشاف الأعطال بسرعة

مثل انقطاع الشبكة أو توقف العميل.

تقليل استهلاك الذاكرة

خصوصًا في الخوادم التي تدير آلاف الاتصالات.

أين يستخدم؟

  • Nginx.
  • Apache.
  • PostgreSQL.
  • MySQL.
  • SSH.
  • VPN Servers.

أفضل الممارسات

  • ضبط فترة الخمول بما يناسب التطبيق.
  • عدم استخدام قيم منخفضة جدًا لتجنب زيادة حركة الشبكة.
  • مراقبة عدد الاتصالات المفتوحة باستمرار.

FAQ

هل TCP Keepalive يزيد استهلاك الشبكة؟

بشكل طفيف جدًا، لأن الحزم المرسلة صغيرة ومتباعدة.

هل يغني عن مهلة التطبيق (Application Timeout)؟

لا، بل يكملها، إذ يعمل على مستوى بروتوكول TCP.

الخلاصة

يساعد TCP Keepalive على اكتشاف الاتصالات غير النشطة وإغلاقها تلقائيًا، مما يحافظ على موارد الخادم ويحسن استقرار التطبيقات طويلة التشغيل.


Top