شرح مقارنة الفرق بين كل من البروتوكول TCP والبروتوكول UDP
ما هو الفرق بين كل من TCP و UDP؟
قبل أن نتطرق الى معرفة الفرق بين كل من بروتوكول الاتصال TCP والبروتوكول UDP، سنعرض لمحة سريعة، تمكنكم من فهم كل من تلك
البروتوكولات، وطريقة عمل كل منها.
ما هو بروتوكول TCP؟
يساعد بروتوكول TCP / IP
على تحديد كيفية توصيل جهاز كمبيوتر معين بالإنترنت وتحديد آلية نقل
البيانات بينهما. كما ويساعدك على إنشاء شبكة افتراضية عند توصيل عدة شبكات كمبيوتر
معاً.
ما هو اختصار TCP؟
يتم تعريف البروتوكول TCP
على أنه بروتوكول التحكم بالنقل أي Transmission Control Protocol أي أنه يقوم هذا البروتوكول بالتحكم في الإرسال
والنقل عبر الشبكات والانترنت.
ما هي وظيفة البروتوكول TCP؟
إن الهدف الأساسي من وجود وتصميم TCP
تم خصيصاً لعرضه كنموذج ذات مصداقية عالية، لتقديم تدفق البيانات
من طرف إلى طرف آخر بموثوقية كبيرة للغاية عبر شبكة الإنترنت غير الموثوقة (أي تلك
التي تؤدي الى فقد وضياع للبيانات لأسباب متعددة). أيضاً يعالج TCP
الموثوقية والتحكم في الازدحام، وبالتالي ضمان وصول
البيانات من الملف المطلوب أو الصفحة المطلوبة بشكل سليم ومتكامل عند طلبها
وارسالها.
كيف يعمل بروتوكول TCP؟
يتم إنشاء اتصال TCP
بمساعدة ما يعرف بالمصافحة ثلاثية الاتجاهات أو Three-way handshake. وهي تعرف على أنها عملية بدء الاتصال والاعتراف
به. وبمجرد إنشاء الاتصال، يبدأ نقل البيانات، وعندما تنتهي عملية الإرسال، يتم إنهاء
الاتصال بإغلاق دائرة افتراضية قائمة.
حتى يتم ضمان اتصال أي حاسوب بآخر، يجب التأكد من صلاحية وموثوقية
الاتصال أولاً. ومن هنا يأتي دور بروتوكولات المصافحة Handshakes Protocol
مثل SYN
و SYN-ACK
و ACK
كما يلي:
يقوم الحاسوب الأول بإرسال رسالة SYN، ثم يقوم
الجهاز الآخر بالرد على الجهاز الذي يود الاتصال به برسالة SYN ACK
مفادها أن الرسالة SYN تم تلقيها
بنجاح. وبالمثل يقوم الجهاز المرسل بإرسال رسالة تأكيد نهائية تسمى ACK،
ثم يتم اشاء الاتصال كما في الشكل التالي:
ما هو بروتوكول UDP؟
بروتوكول UDP
هو بروتوكول موجه لمخطط البيانات ويطلق عليه أيضاً الاسم Datagram Oriented Protocol. يتم استخدامه للبث والأنواع
المتعددة من الإرسال والنقل في شبكة الاتصال.
ما هو اختصار UDP؟
يتم تعريف البروتوكول UDP
على أنه بروتوكول بيانات المستخدم أي User Datagram Protocol
أي أنه يقوم هذا البروتوكول بأداء نقل مخطط بيانات المستخدم بالشكل الكامل كما هي.
فهو بروتوكول يهتم ويقوم بالعمل على مخطط بيانات المستخدم. ونقصد هنا بمخطط
البيانات Datagram بوحدة النقل
المرتبطة بشبكة تبديل الحزمة Packet-Switched Network.
ما هي وظيفة البروتوكول UDP؟
يعمل بروتوكول UDP
بشكل مشابه تقريباً لـ TCP، ولكنه لا يقوم بالتحقق من الأخطاء لجميع العناصر،
أي جميع العناصر من البداية الى النهاية يتم توصيلها دون التحقق من خلو الأخطاء
أثناء التسليم. لذلك، فإن بروتوكول UDP
يفترض أن خدمات التحقق من الأخطاء والاسترداد ليست مطلوبة وإن
علم بوجودها، ويرسل UDP
بشكل مستمر مخططات البيانات إلى المستلم سواء استقبلها أم لا.
كيف يعمل بروتوكول UDP؟
يستخدم UDP
طريقة إرسال بسيطة بدون حوارات ضمنية كالمصافحة للطلب أو الموثوقية
أو تكامل البيانات. كما نعلم، يفترض UDP
أن فحص الأخطاء وتصحيحها ليس مهماً أو يتم إجراؤه في التطبيق، وذلك
لتجنب الحمل الزائد لمثل هذه المعالجة على مستوى واجهة الشبكة. وذلك ما يجعله
متلائم ومتوافق مع حزم البث Broadcasting
والإرسال المتعدد Multicasting.
يعتبر بروتوكول UDP على أنه برتوكول عديم الاتصال Connectionless،
أي أنه لا يعتمد على الاتصال لنقل البيانات. وهذ يعني أنه ليس بحاجة الى تأسيس
وعمل جلسة اتصال، ومنه عدم ضمان نقل جميع البيانات بشكل كامل طوال الوقت. لذلك،
إذا قام جهاز حاسوب ما بإرسال البيانات، فإنه لن يكترث للبيانات فيما إذ تم وصولها
الى الجهاز الآخر أم لا. ومن هنا يطلق على بروتوكول UDP
أحيانا الاسم أو العبارة "أطلق وانسى" أي Fire and Forget،
الأمر الذي يعطى بروتوكول UDP سرعة أعلى
في نقل البيانات لكن مع عدم ضمان وصول كافة البيانات الى الهدف بالشكل الكامل.
الاختلافات الرئيسية بين TCP و UDP
1- TCP
هو بروتوكول مهيأ للاتصال، بينما UDP
هو بروتوكول غير متصل وغير مهيأ لإجراء الاتصال.
2- تكون السرعة في بروتوكول TCP
أبطأ بينما تكون سرعة UDP
أسرع.
3- يستخدم TCP
بروتوكول المصافحة Handshake Protocol
مثل SYN
و SYN-ACK
و ACK
بينما لا يستخدم UDP
بروتوكولات المصافحة تلك.
4- يقوم TCP بفحص الأخطاء
ويقوم أيضاً باستعادة تلك الأخطاء وتصحيحها، من ناحية أخرى، يقوم UDP
بإجراء فحص للأخطاء، لكنه يتجاهل الحزم الخاطئة.
5- يحتوي TCP
على مقاطع إقرار معرفية تسمى بالـ Acknowledgement Segments تساعد على إتمام تصحيح
المسارات والأخطاء للبيانات أثناء النقل واتمامها بالشكل الصحيح، لكن UDP
لا يحتوي على أي من تلك المقاطع.
6- TCP
ثقيل الوزن و UDP
خفيف الوزن، ونقصد هنا بالمصطلح ثقيل الوزن أن TCP
يتطلب ثلاث حزم لإعداد قاعدة اتصال قبل إرسال أي بيانات للمستخدم.
أما المصطلح خفيف الوزن، فيعني أن البروتوكول UDP
لا يوجد فيه ترتيب للرسائل ولا اتصالات تتابعية.
ميزات وخصائص بروتوكول التحكم بالنقل TCP
فيما يلي بعض المواصفات المهمة لبروتوكول
التحكم بالنقل TCP
1- الإقرار بالتسليم، أي إقرارات التسليم للبيانات.
2- إعادة الإرسال.
3- تأخير الإرسال عندما تكون الشبكة مزدحمة بالبيانات.
4- كشف الأخطاء بسهولة.
ميزات وخصائص بروتوكول بيانات المستخدم UDP
فيما يلي بعض المواصفات المهمة لـ UDP:
1- يدعم التطبيقات عالية النطاق الترددي والتي تتسامح مع فقدان الحزمة.
2- تأخير أقل في نقل البيانات.
3- يرسل كمية أكبر من الحزم.
4- إمكانية فقدان البيانات واردة.
5- يسمح بمعاملات النقل البسيطة كالبحث عن خادم اسم النطاق أي (DNS Lookup).
جدول الفرق بين TCP و UDP
فيما يلي جدول يقوم بعرض أهم الاختلاف والمقارنة بين TCP
و UDP
TCP
|
UDP
|
بروتوكول
مهيأ للاتصال.
|
بروتوكول
غير متصل.
|
يقرأ TCP البيانات على أنها تدفقات
من البايت، ويتم إرسال الرسالة إلى حدود المقطع.
|
تحتوي رسائل UDP على الحزم التي تم إرسالها
واحدة تلو الأخرى. كما يتحقق من النزاهة في وقت الوصول.
|
تشق رسائل
TCP طريقها
عبر الإنترنت من كمبيوتر إلى آخر.
|
لا يعتمد
على الاتصال، لذلك يمكن لبرنامج واحد إرسال الكثير من الحزم إلى برنامج آخر.
|
يعيد TCP ترتيب حزم البيانات بالترتيب
المحدد.
|
ليس لبروتوكول UDP ترتيب ثابت لأن جميع الحزم
مستقلة عن بعضها البعض.
|
سرعة TCP أبطأ.
|
UDP أسرع حيث
لا تتم محاولة استرداد الأخطاء.
|
حجم الرأس
(Header
Size)
20 بايت
|
حجم الرأس (Header Size) 8 بايت.
|
TCP ثقيل الوزن!
يحتاج TCP إلى ثلاث
حزم لإعداد اتصال مأخذ قبل إرسال أي بيانات مستخدم.
|
UDP خفيف الوزن!
لا توجد اتصالات تتبع أو طلب رسائل وما إلى ذلك.
|
يقوم TCP بفحص الأخطاء ويقوم أيضاً
باستعادة الأخطاء.
|
يقوم UDP بفحص الأخطاء، لكنه يتجاهل
الحزم الخاطئة.
|
يشمل
على مقاطع إقرار معرفية تسمى بالـ Acknowledgement Segments تساعد على إتمام تصحيح المسارات والأخطاء
|
لا توجد
أي من مقاطع الإقرار المعرفية.
|
استخدام
بروتوكول المصافحة مثل SYN
و SYN-ACK
و ACK
|
لا توجد بروتوكول مصافحة (بروتوكول بدون اتصال)
|
TCP موثوق
لأنه يضمن تسليم البيانات إلى جهاز التوجيه الوجهة.
|
لا يمكن
ضمان تسليم البيانات إلى الوجهة في UDP.
|
يوفر TCP آليات واسعة النطاق للتحقق
من الأخطاء لأنه يوفر التحكم في التدفق والإقرار بالبيانات.
|
يحتوي UDP على آلية واحدة للتحقق من
الأخطاء تُستخدم لفحص البيانات الصغيرة أثناء الإرسال والتخزين Checksums.
|
تطبيقات بروتوكول التحكم بالنقل TCP
فيما يلي سنعرض أه مزايا وفوائد استخدام نموذج TCP / IP
1- يساعدك على إنشاء وإعداد اتصال بين أنواع مختلفة من أجهزة الكمبيوتر.
2- يعمل بشكل مستقل عن نظام التشغيل.
3- يدعم العديد من بروتوكولات التوجيه Routing Protocols.
4- أنها تمكن اتصال الإنترنت بين المنظمات والمؤسسات المختلفة.
5- يمكن تشغيله بشكل مستقل.
6- يمكن استخدام TCP
لإنشاء اتصال بين جهازي كمبيوتر فما أكثر مستخدما البروتوكول
المناسب مثل FTP، SSH، Telnet، SMTP، HTTP وغيرها من البروتوكولات التي تعتمد على بروتوكول الاتصال TCP.
تطبيق بروتوكول بيانات المستخدم UDP
1- تُستخدم طريقة أو بروتوكول UDP
بشكل كبير بواسطة التطبيقات الحساسة للوقت، أي تلك التي لا تحتمل
أن يكون الوقت المستغرق في نقل البيانات كبيراً نسبياً، وكذلك بواسطة الخوادم التي
تجيب على الاستفسارات الصغيرة من قاعدة عملاء أكبر.
2- UDP
متوافق مع حزم البث للإرسال عبر الشبكة والإرسال المتعدد.
3- يتم استخدام UDP
أيضاً في نظام اسم المجال DNS، ونقل الصوت عبر IP أي VoIP،
والألعاب عبر الإنترنت.
4- تعمل عليه البروتوكولات
التي تتطلب سرعة كبيرة في النقل مثل DNS، DHCP،
TFTP،
NTP،
LDAPS
وغيرها.
حسنات بروتوكول التحكم بالنقل TCP
فيما يلي مزايا وحسنات TCP
1- يساعدك على إنشاء أو إعداد اتصال بين جميع أنواع الأجهزة المربوطة على
الشبكة.
2- يعمل بشكل مستقل عن نظام التشغيل.
3- يدعم العديد من بروتوكولات التوجيه.
4- تمكين اتصال الإنترنت بين المنظمات والأفراد كافة.
5- يتميز نموذج TCP / IP
بهيكلية الخادم - العميل القابلة للتوسع بدرجة كبيرة والى حد
كبير.
6- يمكن تشغيله بشكل مستقل.
7- يدعم العديد من بروتوكولات التوجيه.
8- يمكن استخدامه لإنشاء الاتصال بين جهازي كمبيوتر مباشرة.
حسنات بروتوكول بيانات المستخدم UDP
فيما يلي مزايا وفوائد UDP:
1- لا يتقيد بروتوكول UDP بنموذج الاتصال، أي لا يتطلب وجود أي نوع من الاتصال على الاطلاق؛ وهذا
هو سبب انخفاض زمن انتقال بدء التشغيل Startup Latency
في التطبيقات الموزعة Distributed
Applications.
2- يحصل مستلم حزم UDP
على هذه الحزم بطريقة غير منظمة تخلو من أي ترتيبات (أي غير
مدارة).
3- خاصية الإذاعة والبث المتعدد متاحان في UDP.
4- يصلح لتطبيقات ذات عض النطاق العالي والتي تحتمل فقدان بعض الحزم.
5- البحث السريع عن خادم اسم النطاق DNS Lookup.
عيوب وسيئات بروتوكول التحكم بالنقل TCP
هنا أهم عيوب استخدام TCP:
1- لا يُنهي بروتوكول TCP
الإرسال مطلقاً بدون طلب صريح لجميع البيانات المتحركة المنقولة.
2- لا يمكنك استخدام TCP
للبث أو الإرسال المتعدد.
3- لا توجد حدود لـ TCP،
(أي Block Boundaries)، لذا عليك إنشاء حدود خاصة بك.
4- يقدم TCP العديد من
الميزات الزائدة والتي لا تريدها؛ الأمر الذي قد يهدر عرض النطاق الترددي أو الوقت
أو الجهد.
5- في هذا النموذج من TCP،
لا تضمن طبقة النقل تسليم الحزم.
6- استبدال البروتوكول في TCP / IP
ليس بالأمر السهل.
7- وأسواء ما في الأمر، أن TCP لا يقدم فصلاً واضحاً عن خدماته وواجهاته وبروتوكولاته بالتفصيل.
عيوب وسيئات بروتوكول بيانات المستخدم UDP
هنا، أهم سلبيات وعيوب UDP:
1- في بروتوكول UDP،
قد لا يتم تسليم الحزمة أو قد يتم تسليمها مرتين. أيضاً، قد يتم تسليمها معطلة، لذلك
لا تحصل على أي إيحاء يشير الى الخطأ!
2- أجهزة التوجيه (الراوتر) مهملة تماما مع وجود UDP، لذا فهي لا تعيد إرسالها أبداً إذا تصادمت
الحزم (أي أن الخطأ وارد).
3- لا يحتوي UDP
على خاصية التحكم في الازدحام والتحكم في التدفق، لذا فإن التنفيذ
هو مهمة تطبيق المستخدم.
4- يعاني UDP في غالب الوقت من فقدان الحزم
وأحيانا لدرجة تبديه بشكل سيء.
متى تستخدم UDP و TCP؟
1- يعد TCP خياراً مثالياً،
وحتى أن كان مكلف نسبياً؛ فعندما يكون معظم الحمل في الاتصال، يظل تطبيقك متصلاً لأي
فترة من الوقت وعلى الدوام.
2- يعد UDP مثالياً
للاستخدام مع الوسائط المتعددة مثل VoIP.
3- استخدم قاعدة اتصال TCP
عندما يرسل كل من العميل والخادم الحزم بشكل مستقل في ذلك الوقت؛
التأخير العرضي مقبول. (على سبيل المثال، لعبة البوكر عبر الإنترنت).
4- يجب عليك استخدام للمستخدم UDP
إذا كان بإمكان كل من العميل والخادم إرسال الحزم بشكل منفصل، وأن
مسألة التأخير غير مقبولة أيضاً. (على سبيل المثال، ألعاب الانترنت والشبكات Multiplayer Games مثل لعبة Pubg).