هيكل الخدمات والقطاعات في TCP

TCP

بروتوكول التحكم في الإرسال (TCP) هو بروتوكول طبقة النقل الأكثر شيوعًا. إنه يعمل مع IP ويوفر خدمة نقل موثوقة بين العمليات باستخدام خدمة طبقة الشبكة التي يوفرها بروتوكول IP.

ما هو TCP / IP؟

خدمات TCP لطبقة التطبيق

الخدمات المختلفة التي يوفرها TCP لطبقة التطبيق هي كما يلي:

  • الاتصال من عملية إلى عملية (process-to-process communication)
    يوفر TCP عملية لمعالجة الاتصال، أي أن نقل البيانات يحدث بين العمليات الفردية التي يتم تنفيذها على الأنظمة النهائية. يتم ذلك باستخدام أرقام المنافذ أو عناوين المنافذ. يبلغ طول أرقام المنافذ 16 بت مما يساعد في تحديد العملية التي ترسل البيانات أو تستقبلها على مضيف.
  • تيار موجه (stream oriented)
    هذا يعني أنه يتم إرسال البيانات واستلامها على شكل دفق من البايت (على عكس UDP أو IP الذي يقسم البتات إلى مخططات بيانات أو حزم). ومع ذلك، فإن طبقة الشبكة، التي توفر خدمة لـ TCP، ترسل حزم معلومات وليس تدفقات من البايت. ومن ثم، يقوم TCP بتجميع عدد من البايتات معًا في مقطع ويضيف رأسًا إلى كل مقطع من هذه المقاطع ثم يسلم هذه المقاطع إلى طبقة الشبكة. في طبقة الشبكة، يتم تغليف كل جزء من هذه الأجزاء في حزمة IP للإرسال. يحتوي رأس TCP على المعلومات المطلوبة لغرض التحكم والتي ستتم مناقشتها جنبًا إلى جنب مع بنية المقطع.
  • خدمة الازدواج الكامل (full duplex service)
    هذا يعني أن الاتصال يمكن أن يحدث في كلا الاتجاهين في نفس الوقت.
  • خدمة موجهة للاتصال (connection oriented service)
    بخلاف UDP، يوفر TCP خدمة موجهة للاتصال. تحدد 3 مراحل مختلفة:
  1. إنشاء الاتصال
  2. نقل البيانات
  3. إنهاء الاتصال
  • مصداقية (reliability)
    TCP موثوق لأنه يستخدم المجموع الاختباري لاكتشاف الأخطاء ومحاولات استرداد الحزم المفقودة أو التالفة عن طريق إعادة الإرسال وسياسة الإقرار وأجهزة ضبط الوقت. يستخدم ميزات مثل رقم البايت ورقم التسلسل ورقم الإقرار لضمان الموثوقية. كما أنه يستخدم آليات التحكم في الازدحام.
  • مضاعفة (multiplexing)
    يقوم TCP بتعدد الإرسال وإلغاء الإرسال عند طرفي المرسل والمستقبل على التوالي حيث يمكن إنشاء عدد من الاتصالات المنطقية بين أرقام المنافذ عبر اتصال مادي.

رقم البايت ورقم التسلسل ورقم الإقرار

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

مثال:

في هذا المثال، نرى أن A يرسل رقم الإقرار 1001، مما يعني أنه تلقى بيانات بايت حتى رقم البايت 1000 ويتوقع أن يتلقى 1001 بعد ذلك، ومن ثم يرسل B بعد ذلك بايت البيانات بدءًا من 1001. رقم البايت 13001 بعد نقل البيانات الأول من A إلى B، لذلك يرسل B رقم الإقرار 13002، رقم البايت الذي يتوقع تلقيه من A بعد ذلك.

هيكل مقطع TCP

يتكون مقطع TCP من وحدات بايت البيانات المراد إرسالها ورأس يضاف إلى البيانات بواسطة TCP كما هو موضح:

هيكل مقطع TCP

يمكن أن يتراوح رأس مقطع TCP بين 20-60 بايت. 40 بايت للخيارات. إذا لم تكن هناك خيارات، فسيكون الرأس 20 بايت وإلا يمكن أن يصل إلى 60 بايت تقريبًا.

حقول الرأس:

  • عنوان منفذ المصدر (source port address)

    حقل 16 بت الذي يحتوي على عنوان المنفذ للتطبيق الذي يرسل مقطع البيانات.

  • عنوان ميناء الوجهة (destination port address)

    حقل 16 بت الذي يحمل عنوان المنفذ للتطبيق في المضيف الذي يتلقى مقطع البيانات.

  • رقم التسلسل (sequence number)

    حقل 32 بت الذي يحتوي على رقم التسلسل، أي رقم بايت البايت الأول الذي يتم إرساله في هذا المقطع المحدد. يتم استخدامه لإعادة تجميع الرسالة عند الطرف المستلم إذا تم استلام المقاطع خارج الترتيب.

  • رقم الاقرار(acknowledgement number)

    يحتوي حقل 32 بت على رقم الإقرار، أي رقم البايت الذي يتوقع المستلم تلقيه بعد ذلك. إنه إقرار باستلام البايتات السابقة بنجاح.

  • طول الرأس  -(HLEN)

    هذا حقل من 4 بتات يشير إلى طول رأس TCP بعدد الكلمات المكونة من 4 بايت في الرأس، أي إذا كان الرأس 20 بايت (الحد الأدنى لطول رأس TCP) ، فسيحتوي هذا الحقل على 5 (لأن 5 × 4 = 20) والحد الأقصى للطول: 60 بايت، ثم يحتفظ بالقيمة 15 (لأن 15 × 4 = 60). ومن ثم، فإن قيمة هذا الحقل دائمًا ما تكون بين 5 و 15.

  • أعلام التحكم (control flags)

    هذه 6 بتات تحكم 1 بت التي تتحكم في إنشاء الاتصال، وإنهاء الاتصال، وإجهاض الاتصال، والتحكم في التدفق، ووضع النقل وما إلى ذلك، وظيفتها هي:

         :URGالمؤشر العاجل صالح

        ACK: رقم الإقرار صالح (يُستخدم في حالة الإقرار التراكمي)

        PSH: طلب الدفع

        RST: أعد تعيين الاتصال

        SYN: مزامنة أرقام التسلسل

        FIN: قم بإنهاء الاتصال

  • حجم النافذه (window size)

يوضح هذا الحقل حجم نافذة TCP المرسل بالبايت.

  • المجموع الاختباري (checksum)

يحتوي هذا الحقل على المجموع الاختباري للتحكم في الأخطاء. إنه إلزامي في TCP بدلاً من UDP.

  • مؤشر عاجل (urgent pointer)

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

التحكم في ازدحام بروتوكول TCP

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

سياسة الازدحام في برنامج التعاون الفني

    1.مرحلة البداية البطيئة: تبدأ الزيادة البطيئة في الزيادة الأسية إلى العتبة

    2.مرحلة تجنب الازدحام: بعد الوصول إلى الحد الأدنى للزيادة بمقدار 1

    3.مرحلة اكتشاف الازدحام: يعود المرسل إلى مرحلة البداية البطيئة أو مرحلة تجنب الازدحام.

مرحلة البداية البطيئة

الزيادة الأسية – في هذه المرحلة بعد كل RTT، يزداد حجم نافذة الازدحام أضعافًا مضاعفة.

Initially cwnd = 1

After 1 RTT, cwnd = 2^(1) = 2

2 RTT, cwnd = 2^(2) = 4

3 RTT, cwnd = 2^(3) = 8

مرحلة تجنب الازدحام

زيادة مضافة – تبدأ هذه المرحلة بعد القيمة الحدية التي يشار إليها أيضًا باسم ssthresh. حجم cwnd  (نافذة الازدحام) يزيد من المواد المضافة. بعد كل RTT cwnd = cwnd + 1.

Initially cwnd = i

After 1 RTT, cwnd = i+1

2 RTT, cwnd = i+2

3 RTT, cwnd = i+3

مرحلة اكتشاف الازدحام

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

  • الحالة 1: إعادة الإرسال بسبب انتهاء المهلة – في هذه الحالة يكون احتمال الازدحام مرتفعًا.

    (أ) يتم تقليل ssthresh إلى نصف حجم النافذة الحالية.

    (ب) ضع cwnd = 1

    (ج) البدء بمرحلة البداية البطيئة مرة أخرى.

  • الحالة 2: إعادة الإرسال بسبب 3 تكرار للإقرار بالاستلام – في هذه الحالة يكون احتمال الازدحام أقل.

    (أ) تقلل قيمة ssthresh إلى نصف حجم النافذة الحالية.

    (ب) ضع cwnd = ssthresh

    (ج) تبدأ بمرحلة تجنب الازدحام

    مثال: افترض أن بروتوكول TCP يواجه سلوك البداية البطيئة. في جولة الإرسال الخامسة مع عتبة (ssthresh) ، تدخل القيمة 32 في مرحلة تجنب الازدحام وتستمر حتى الإرسال العاشر. في جولة الإرسال العاشرة، يستقبل المستقبل 3 ACK مكررة ويدخل في وضع الزيادة المضافة. المهلة تحدث في جولة الإرسال السادسة عشر. ارسم جولة الإرسال (الوقت) مقابل حجم نافذة الازدحام لمقاطع TCP.

هيكل الخدمات والقطاعات في TCP
منشور ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

السلة