بروتوكول TCP مقابل بروتوكول UDP: تبسيط النقاش حول الموثوقية مقابل الكفاءة

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

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

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

ما هو بروتوكول TCP؟ (روابطياتصال الشبكةووسيط حزم الشبكةيمكنه معالجة حزم TCP أو UDP)
بروتوكول التحكم في الإرسال (TCP) هو بروتوكول اتصال لطبقة النقل يعتمد على تدفق البايتات، وهو بروتوكول موثوق به وموجه نحو الاتصال.

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

يُعد اتصال TCP خدمة ثنائية الاتجاه، مما يعني أن المضيف A والمضيف B يمكنهما نقل البيانات في كلا الاتجاهين عبر اتصال TCP. أي أنه يمكن نقل البيانات بين المضيف A والمضيف B في تدفق ثنائي الاتجاه.

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

TCP-UDP

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

مخزن الاستقبال هو مساحة من الذاكرة يحتفظ بها تطبيق TCP على جانب الاستقبال، ويُستخدم لتخزين البيانات المستلمة مؤقتًا. يخزن TCP البيانات المستلمة في ذاكرة التخزين المؤقت للاستقبال، وينتظر حتى يقوم التطبيق الأعلى بقراءتها.

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

في شبكات الحاسوب، يتم نقل البيانات بين الأجهزة المضيفة عن طريق تقسيمها إلى أجزاء. فما هو جزء الحزمة؟

يُنشئ بروتوكول TCP مقطعًا، أو حزمة بيانات، بتقسيم التدفق الوارد إلى أجزاء وإضافة رؤوس TCP إلى كل جزء. لا يُمكن إرسال أي مقطع إلا لفترة زمنية محدودة، ولا يُمكن أن يتجاوز حجم المقطع الأقصى (MSS). أثناء انتقاله، يمر مقطع البيانات عبر طبقة الربط. تحتوي طبقة الربط على وحدة إرسال قصوى (MTU)، وهي أقصى حجم حزمة بيانات يُمكن أن يمر عبر طبقة ربط البيانات. ترتبط وحدة الإرسال القصوى عادةً بواجهة الاتصال.

إذن ما الفرق بين MSS و MTU؟

في شبكات الحاسوب، يُعدّ الهيكل الهرمي بالغ الأهمية لأنه يُراعي الاختلافات بين المستويات المختلفة. لكل طبقة اسمٌ خاص؛ ففي طبقة النقل، تُسمى البيانات "قطعة"، وفي طبقة الشبكة، تُسمى "حزمة بروتوكول الإنترنت". لذا، يُمكن اعتبار وحدة الإرسال القصوى (MTU) بمثابة الحد الأقصى لحجم حزمة بروتوكول الإنترنت التي يُمكن إرسالها عبر طبقة الشبكة، بينما يُعدّ الحد الأقصى لحجم القطعة (MSS) مفهومًا خاصًا بطبقة النقل، ويُشير إلى الحد الأقصى لكمية البيانات التي يُمكن إرسالها بواسطة حزمة بروتوكول التحكم بالنقل (TCP) في المرة الواحدة.

لاحظ أنه عندما يكون حجم المقطع الأقصى (MSS) أكبر من وحدة الإرسال القصوى (MTU)، سيتم تجزئة بروتوكول الإنترنت (IP) على مستوى طبقة الشبكة، ولن يقوم بروتوكول التحكم بالنقل (TCP) بتقسيم البيانات الأكبر إلى مقاطع مناسبة لحجم MTU. سيكون هناك قسم في طبقة الشبكة مخصص لطبقة بروتوكول الإنترنت (IP).

بنية مقطع حزمة TCP
دعونا نستكشف تنسيق ومحتويات رؤوس بروتوكول TCP.

مقطع TCP

رقم التسلسلرقم تسلسلي عشوائي يُولّده الحاسوب عند إنشاء الاتصال، ويُرسل إلى المُستقبِل عبر حزمة SYN. ​​أثناء نقل البيانات، يزيد المُرسِل الرقم التسلسلي تبعًا لحجم البيانات المُرسلة. يُحدّد المُستقبِل ترتيب البيانات بناءً على الرقم التسلسلي المُستلم. في حال وجود بيانات غير مُرتبة، يُعيد المُستقبِل ترتيبها لضمان صحة الترتيب.

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

تتضمن بتات التحكم في مقطع TCP ما يلي:

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

ما هو بروتوكول UDP؟ (Mylinking'sاتصال الشبكةووسيط حزم الشبكة(يمكنه معالجة حزم TCP أو UDP)
بروتوكول بيانات المستخدم (UDP) هو بروتوكول اتصال غير موجه. بالمقارنة مع بروتوكول التحكم بالنقل (TCP)، لا يوفر UDP آليات تحكم معقدة. يسمح بروتوكول UDP للتطبيقات بإرسال حزم IP مغلفة مباشرةً دون إنشاء اتصال. عندما يختار المطور استخدام UDP بدلاً من TCP، يتواصل التطبيق مباشرةً مع بروتوكول الإنترنت (IP).

الاسم الكامل لبروتوكول UDP هو بروتوكول بيانات المستخدم، ويبلغ حجم ترويسة هذا البروتوكول ثمانية بايتات فقط (64 بت)، وهو حجم صغير جدًا. ويكون تنسيق ترويسة UDP كما يلي:

مقطع UDP

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

الاختلافات بين بروتوكولي TCP و UDP في Mylinkingاتصال الشبكةووسيط حزم الشبكةيمكنه معالجة حزم TCP أو UDP
يختلف بروتوكولا TCP و UDP في الجوانب التالية:

بروتوكول TCP مقابل بروتوكول UDP

اتصالبروتوكول TCP هو بروتوكول نقل بيانات يعتمد على الاتصال، ويتطلب إنشاء اتصال قبل نقل البيانات. أما بروتوكول UDP، فلا يتطلب اتصالاً، ويمكنه نقل البيانات فوراً.

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

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

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

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

بروتوكول TCP مقابل بروتوكول UDP

سيناريوهات تطبيقات TCP وUDP:
بروتوكولا TCP و UDP هما بروتوكولان مختلفان لطبقة النقل، ولديهما بعض الاختلافات في سيناريوهات التطبيق.

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

نقل الملفات عبر بروتوكول نقل الملفات (FTP)يضمن بروتوكول TCP عدم فقدان الملفات أو تلفها أثناء النقل.
HTTP/HTTPSيضمن بروتوكول TCP سلامة وصحة محتوى الويب.
نظرًا لأن بروتوكول UDP بروتوكول غير متصل، فإنه لا يوفر ضمانًا للموثوقية، ولكنه يتميز بالكفاءة والاستجابة الفورية. يُعد بروتوكول UDP مناسبًا للسيناريوهات التالية:

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

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


تاريخ النشر: 3 ديسمبر 2024