الحفاظ على الحياة

رسالة الإبقاء على الاتصال ( KA ) هي رسالة يرسلها جهاز إلى آخر للتحقق من أن الرابط بين الجهازين يعمل، أو لمنع انقطاع الرابط.

وصف

بمجرد إنشاء اتصال TCP ، يُعتبر هذا الاتصال ساريًا حتى يقوم أحد الطرفين بإغلاقه. نظريًا، يمكن للاتصال أن يبقى متصلًا إلى أجل غير مسمى بمجرد دخوله حالة الاتصال. لكن في الواقع، لن يستمر الاتصال إلى أجل غير مسمى. تقوم العديد من جدران الحماية أو أنظمة NAT بإغلاق الاتصال إذا لم يكن هناك أي نشاط لفترة زمنية معينة. يمكن استخدام إشارة Keep Alive لخداع الأجهزة الوسيطة ومنعها من إغلاق الاتصال بسبب عدم النشاط. من الممكن أيضًا أن يكون أحد الأجهزة قد توقف عن الاستماع (مثل تعطل تطبيق أو نظام ). في هذه الحالة، يتم إغلاق الاتصال، ولكن لم FINيتم إرسال أي إشارة (اختصارًا لـ "finish"). في هذه الحالة، يمكن استخدام حزمة Keep Alive للتحقق من الاتصال والتأكد من استمراريته.

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

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

خاصية إبقاء الاتصال TCP

تُعد خاصية إبقاء الاتصال في بروتوكول التحكم بالنقل (TCP) ميزة اختيارية، وإذا تم تضمينها، فيجب أن تكون معطلة افتراضيًا. [ 1 ]

فحص حزم TCP

لا تحتوي حزمة الإبقاء على الاتصال الصحيحة (والتي تُسمى أحيانًا حزمة التحقق ) على أي بيانات. ويُسمح، في حالات استثنائية، بتفعيل استخدام بايت واحد "غير مُستخدم" في حزمة الإبقاء على الاتصال، ولكن ذلك فقط للتوافق مع تطبيقات TCP الخاطئة. [ 1 ] في شبكة إيثرنت ، تُنتج حزم الإبقاء على الاتصال إطارات بحجم أدنى (64 بايت [ 2 ] ).

خوارزمية وتكوين Keepalive

فيما يتعلق بخاصية إبقاء الاتصال نشطًا (Keepalive) في بروتوكول TCP، يصف RFC 1122 فقط الشروط التي يمكن بموجبها إرسال حزمة Keepalive، ومحتوى الحزمة، وكيفية استجابة المضيف الوجهة ( رد ACK ) عند استلامها، وأن إرسال حزمة ACK بدون بيانات غير موثوق، حتى في بروتوكول TCP (مما يعني أن الاتصال قد يظل فعالًا، ولكن قد يتجاهل وسيط حزم ACK التي لا تحتوي على بيانات). ومع ذلك، فإنه باستثناء فاصل زمني قابل للتكوين (أو ساعتين على الأقل افتراضيًا) يمكن إرسال حزم Keepalive خلاله، لا توجد خوارزمية محددة مُحددة. [ 1 ] ونتيجة لذلك، تختلف أنظمة التشغيل في كيفية تطبيقها لخاصية إبقاء الاتصال نشطًا في بروتوكول TCP. على سبيل المثال، يستخدم Windows Server 2008 و Windows Vista تطبيقًا بسيطًا متوافقًا مع RFC، حيث يرسل حزمة Keepalive في فاصل زمني واحد قابل للتكوين؛ [ 3 ] ولا يُميزان بين الفاصل الزمني الأول لحزمة Keepalive المُرسلة على الاتصال وتلك المُرسلة لاحقًا في حال عدم استلام رد من المضيف الوجهة. في نظام لينكس، يتم استخدام ثلاثة معلمات [ 4 ] لتكوين خاصية إبقاء الاتصال TCP نشطًا:

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

السلوك العام

عندما يتم توصيل مضيفين عبر شبكة باستخدام بروتوكول TCP/IP ، يمكن استخدام حزم TCP keepalive لتحديد ما إذا كان الاتصال لا يزال صالحًا، وإنهاؤه إذا لزم الأمر.

تدعم معظم الأجهزة المضيفة التي تدعم بروتوكول TCP خاصية إبقاء الاتصال نشطًا (Keepalive). يرسل كل جهاز مضيف (أو نظير) بشكل دوري حزمة TCP إلى نظيره لاستطلاع رأيه. إذا تم إرسال عدد معين من حزم إبقاء الاتصال نشطًا ولم يتم استلام أي رد ( ACK )، فسيقوم الجهاز المُرسِل بإنهاء الاتصال من جانبه. إذا تم إنهاء اتصال بسبب انتهاء مهلة إبقاء الاتصال نشطًا، ثم أرسل الجهاز الآخر حزمة للاتصال القديم، فسيرسل الجهاز الذي أنهى الاتصال حزمة مع ضبط علامة RST لإعلام الجهاز الآخر بأن الاتصال القديم لم يعد نشطًا. سيؤدي هذا إلى إجبار الجهاز الآخر على إنهاء اتصاله حتى يتسنى إنشاء اتصال جديد.

السلوك الافتراضي في العالم الحقيقي

عادةً، تُرسل إشارات TCP Keepalive كل 45 أو 60 ثانية على اتصال TCP غير نشط، ويُقطع الاتصال بعد فقدان 3 إشارات ACK متتالية. يختلف هذا باختلاف المضيف، فمثلاً، تُرسل أجهزة الكمبيوتر التي تعمل بنظام Windows افتراضيًا أول حزمة TCP Keepalive بعد 7200000 مللي ثانية (ساعتين)، ثم تُرسل 5 إشارات Keepalive بفواصل زمنية قدرها 1000 مللي ثانية، وتُقطع الاتصال إذا لم يكن هناك استجابة لأي من حزم Keepalive . أما مضيفات Linux فتُرسل أول حزمة TCP Keepalive بعد ساعتين (افتراضيًا منذ Linux 2.2)، ثم تُرسل 9 إشارات Keepalive (افتراضيًا منذ Linux 2.2) بفواصل زمنية قدرها 75 ثانية (افتراضيًا منذ Linux 2.4)، وتُقطع الاتصال إذا لم يكن هناك استجابة لأي من حزم Keepalive. [ 5 ]

الحفاظ على الحياة في الطبقات العليا

بما أن خاصية إبقاء الاتصال نشطًا في بروتوكول TCP اختيارية، فإن العديد من البروتوكولات (مثل SMB [ 6 ] و TLS [ 7 ] ) تُطبّق خاصية إبقاء الاتصال نشطًا الخاصة بها فوق بروتوكول TCP. ومن الشائع أيضًا أن تُطبّق البروتوكولات التي تُحافظ على جلسة عبر بروتوكول غير مُرتبط ، مثل OpenVPN عبر UDP [ 8 خاصية إبقاء الاتصال نشطًا الخاصة بها.

مفاهيم مماثلة

خاصية HTTP keepalive

يستخدم بروتوكول نقل النص التشعبي (HTTP) الكلمة المفتاحية keep-aliveفي Connectionترويسة الطلب للإشارة إلى ضرورة إبقاء الاتصال مفتوحًا لتلقي المزيد من الرسائل (وهذا هو الوضع الافتراضي في HTTP 1.1، بينما كان الوضع الافتراضي في HTTP 1.0 هو استخدام اتصال جديد لكل زوج من الطلب والرد). [ 9 ] على الرغم من تشابه الاسم، فإن هذه الوظيفة لا علاقة لها بالموضوع.

انظر أيضاً

  • المحول – جهاز شبكي يقوم بتوجيه الحزم بناءً على عنوان الجهاز 
  • مؤقت المراقبة – مؤقت إلكتروني يُستخدم لاكتشاف أعطال الكمبيوتر والتعافي منها 
  • تقنية ثقب الورق - تقنية شبكات الحاسوب 
  • تقنية اختراق بروتوكول UDP – تقنية NAT في شبكات الحاسوب 
  • طريقة الإبلاغ غير المباشر عن أمر الاستدعاء  
  • اختبار Ping – أداة شبكة تُستخدم لاختبار إمكانية الوصول إلى مضيف. صفحات تعرض أوصافًا مختصرة لوجهات إعادة التوجيه. 

مراجع

  1. 1 2 3 برادن، روبرت ت. (أكتوبر 1989). برادن، ر. (محرر). "متطلبات مضيفي الإنترنت - طبقات الاتصال" . IETF . doi : 10.17487/RFC1122 . تم الاطلاع عليه في 8 نوفمبر 2013 .
  2. معيار IEEE لشبكة الإيثرنت . معيار IEEE لشبكة الإيثرنت، 802.3-2015 - القسم الأول. 2016. ص 108. doi : 10.1109/IEEESTD.2016.7428776 . ISBN  978-1-5044-0078-7.
  3. "إدخالات التسجيل الإضافية" . learn.microsoft.com . 2011-09-05 . تم الاطلاع عليه بتاريخ 2025-07-13 .
  4. "استخدام خاصية إبقاء الاتصال TCP نشطًا في نظام لينكس" . tldp.org . تم الاطلاع عليه بتاريخ 29-07-2016 .
  5. "tcp(7) - صفحة دليل لينكس" . تم الاطلاع عليه بتاريخ 14 أغسطس 2024 .
  6. "معيار البروتوكول لخدمة NetBIOS على بروتوكول نقل TCP/UDP: المفاهيم والأساليب" . IETF . مارس 1987. doi : 10.17487/RFC1001 . تم الاطلاع عليه في 18 يونيو 2015 .
  7. ويليامز، مايكل؛ توكسن، مايكل؛ سيجلمان، روبن (فبراير 2012). "امتداد نبضات القلب لبروتوكول أمان طبقة النقل (TLS) وبروتوكول أمان طبقة نقل البيانات (DTLS)" . IETF . doi : 10.17487/RFC6520 . تاريخ الاسترجاع: 18 يونيو 2015 .
  8. "صفحة دليل OpenVPN" . تم الاطلاع عليها في 18 يونيو 2015 .
  9. "خطاب حول بروتوكول HTTP Keep Alive بقلم جيم دريسكول" . مؤرشف من الأصل بتاريخ 13 أغسطس 2010.