Tcp vs udp cover

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

سنلقي هنا نظرة على TCP وUDP، وماهيتهما، ولماذا يعد فهمهما مهماً إذا كنت تعمل مع البروكسيات.

هذه كتلة HTML خام.
انقر زر التحرير لتغيير HTML هذا

لماذا يعتمد سير عمل البروكسي لديك على TCP وUDP

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

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

التعرّف إلى TCP

يرمز TCP إلى بروتوكول التحكم في النقل. ويوفر هذا البروتوكول ضمانات محددة بشأن كيفية نقل البايتات. وهو في الأساس أحد البروتوكولات الرئيسية التي يقوم عليها الإنترنت. ويحظى TCP بشعبية كبيرة لأنه موثوق جداً.

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

من جهة المرسل، نرسل الحزمة التالية فور تلقينا هذا التأكيد. لكن قد تضيع حزمة أحياناً في الطريق. في هذه الحالة، يحسب المستلم مجموع التحقق مرة أخرى، ويقارنه بالموجود في الحزمة، ويرى أنهما مختلفان، ثم يرسل استجابة مثل: «يرجى إعادة إرسال الحزمة ذات هذا الرقم التسلسلي.»

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

ما هو UDP؟

يرمز UDP إلى بروتوكول مخطط بيانات المستخدم. وهو أبسط كثيراً من TCP، لكنه لا يقدم أي ضمانات للموثوقية. وميزته الرئيسية بدلاً من ذلك هي السرعة.

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

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

يكون UDP مفيداً عندما لا تكون الموثوقية أمراً حاسماً. وهو مثالي للصوت أو الفيديو في الوقت الفعلي، ويدعم البث العام أو البث المتعدد للوصول سريعاً إلى أجهزة كثيرة، ما يجعله مناسباً للمحادثات والألعاب متعددة اللاعبين أو البث. UDP سريع لأنه لا يجري تأكيدات أو عمليات إعادة إرسال ولا يتضمن آليات للموثوقية.

TCP مقابل UDP

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

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

وماذا عن الجانب الأمني؟ 

TCP موجّه للاتصال. لكن يمكن استغلال آلية المصافحة فيه في هجمات إغراق SYN، حيث يثقل المهاجمون الخوادم بطلبات اتصال غير مكتملة. كما يمكن تعطيل اتصالات TCP باستخدام حزم RST مزيفة لإعادة التعيين أو هجمات التنبؤ بالأرقام التسلسلية. أما UDP فغير موجّه للاتصال، وهو عرضة لانتحال IP وهجمات الانعكاس والتضخيم. لذلك يقيّد كثير من مزودي البروكسي حركة مرور UDP أو يفرضون عليها حدوداً للمعدل للحد من إساءة الاستخدام المحتملة.

 

الخاصية TCP UDP
نوع النقل موجّه للاتصال غير موجّه للاتصال
الموثوقية مرتفعة منخفضة
السرعة بطيئة سريعة
ملاءمة البروكسي اتصالات مستقرة مفيد لحركة المرور منخفضة زمن الاستجابة
مخاطر حجب الخدمة عرضة لهجمات إغراق SYN عرضة لهجمات إغراق UDP
الانتحال أصعب لكنه ممكن أسهل بسبب غياب المصافحة

كيفية تعامل البروكسيات مع حركة مرور TCP وUDP 

معظم سكنية ومتنقلة تدعم البروكسيات كلا البروتوكولين، لكن يُفضَّل TCP عموماً لأن تصميمه الموثوق يلائم مهام الجلسات مثل تجريف الويب أو استدعاءات API. يوجد دعم لـ UDP، لكنه غالباً ما يكون محدوداً عبر تقييد المعدل أو المنافذ المفلترة. كما تتولى البروكسيات NAT وترجمة الحزم لضمان التدفق السليم للطلبات والردود بين أجهزة العميل والخوادم المستهدفة.

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

Share article: