ما هو بروتوكول TCP ؟

 

 


 

 

 

1. مقدمة عن TCP ودوره الأساسي في الإنترنت

الـ TCP هو اختصار لـ Transmission Control Protocol (بروتوكول التحكم بالنقل). تخيّل الإنترنت كخدمة بريد عملاقة، والبيانات هي الطرود التي ترسلها.

ما هو الـ TCP؟

ببساطة، الـ TCP هو "ضابط الجودة" أو "المسؤول الموثوق" عن توصيل هذه الطرود (البيانات) عبر الشبكة.

التشبيه: فكّر في بروتوكول TCP كخدمة البريد السريع الممتازة (مثل DHL أو FedEx). عندما ترسل طرداً بهذه الخدمة، فإنهم يضمنون لك ما يلي:

  1. الوصول حتماً: يتأكدون من أن الطرد وصل إلى المستلم (ويطلبون توقيعاً في بعض الأحيان).
  2. الترتيب الصحيح: يتأكدون من أن المستلم يحصل على جميع أجزاء الطرد بالترتيب الذي أُرسلت به.
  3. سلامة المحتوى: يتأكدون من أن الطرد لم يتلف في الطريق.

لماذا نحتاج الـ TCP؟

على عكس أخيه الأصغر والأسرع، UDP (بروتوكول حزم المستخدم)، الذي يرسل البيانات دون ضمان وصولها (كأنك ترسل بطاقة بريدية عادية وتأمل أن تصل)، فإن الـ TCP ضروري للتطبيقات التي لا تحتمل أي خطأ، مثل:

  • تصفح الويب (HTTP/HTTPS): لا تريد أن تكون صورتك ناقصة أو نص الموقع مشوشاً.
  • نقل الملفات (FTP): يجب أن يصل كل بايت من الملف سليماً.
  • البريد الإلكتروني (SMTP): رسالتك يجب أن تكون كاملة وغير مقطّعة.

باختصار: دور TCP هو توفير اتصال موجّه (Connection-Oriented) وموثوق (Reliable) لنقل البيانات بين جهازين على الإنترنت.

2. آلية عمل TCP (بناء الاتصال والإرسال الموثوق)

إذا كان TCP هو "المسؤول الموثوق"، فكيف يقوم بضمانة هذه الموثوقية؟ الأمر كله يدور حول مجموعة من القواعد والخطوات المنظمة.

أ. المصافحة ثلاثية المراحل (Three-way Handshake)

لكي يبدأ جهازان (مثل متصفحك وخادم موقع ويب) بالتواصل عبر TCP، يجب عليهما أولاً بناء اتصال موثوق. تخيّل أنك تتصل بصديقك للتأكد من أنه مستعد لتلقي الرسائل:

  1. المزامنة (SYN - Synchronize): جهازك يقول: "مرحباً، هل أنت مستعد للتواصل؟ (ويُرسل رقم تسلسلي للبدء)"
  2. المزامنة والتأكيد (SYN-ACK - Synchronize-Acknowledge): الخادم يرد: "نعم، أنا جاهز! (ويؤكد استلام رسالتك، ويرسل رقمه التسلسلي للبدء هو الآخر)"
  3. التأكيد (ACK - Acknowledge): جهازك يقول: "حسناً، فهمت. لنبدأ بإرسال البيانات الآن."

بعد هذه الخطوات الثلاث، يصبح الاتصال مُؤسسًا (Established)، وتبدأ البيانات بالتدفق بشكل موثوق.

ب. ضمان الإرسال الموثوق

ماذا يحدث بعد تأسيس الاتصال؟ يستخدم TCP طريقتين لضمان وصول كل شيء بالترتيب:

  • الترقيم التسلسلي (Sequence Numbers): كل جزء من البيانات (يُسمى Segment في TCP) يحمل رقمًا تسلسليًا. هذا يضمن أن يتمكن جهاز الاستقبال من إعادة ترتيب البيانات بشكل صحيح، حتى لو وصلت الحزم بترتيب مختلف.
  • التأكيد (Acknowledgement - ACK): عندما يتلقى جهاز البيانات، فإنه يرسل "إيصالاً" (ACK) إلى المُرسل يخبره فيه عن آخر حزمة وصلته بنجاح. إذا لم يستلم المُرسل هذا الإيصال خلال فترة زمنية محددة، فإنه يعتبر الحزمة مفقودة ويعيد إرسالها تلقائيًا.

ببساطة: الـ TCP مثل بائع البريد الذي يضع رقمًا على كل رسالة (الترقيم)، وينتظر أن تخبره أنك استلمت الرسالة رقم 5 قبل أن يستمر في إرسال رقم 6 (التأكيد وإعادة الإرسال).

 

ج. التحكم بالتدفق (Flow Control)

تخيَّل أنك ترسل مستندات بسرعة هائلة (كخادم قوي) إلى طابعة بطيئة. إذا واصلت الإرسال بنفس السرعة، ستتكدس المستندات، وقد تفقد الطابعة بعضها.

وظيفة التحكم بالتدفق في TCP هي منع هذا السيناريو!

  • يستخدم TCP مفهوم نافذة الاستقبال (Receive Window).
  • تُخبر نافذة الاستقبال المُرسِل بـ "كمية البيانات التي يمكن لجهاز الاستقبال قبولها حاليًا" (المساحة الفارغة في ذاكرة الاستقبال المؤقتة).
  • إذا كانت النافذة صغيرة (أي أن جهاز الاستقبال مشغول)، يقلل المُرسِل من سرعته. إذا كانت كبيرة، يمكنه زيادة السرعة.

المغزى: ضمان عدم إغراق جهاز الاستقبال (البطيء) بكمية كبيرة من البيانات تفوق قدرته على المعالجة.

د. التحكم بالازدحام (Congestion Control)

إذا كان التحكم بالتدفق يمنع ازدحام جهاز الاستقبال، فإن التحكم بالازدحام يمنع ازدحام الشبكة نفسها (الروترات والكابلات في المنتصف).

  • يستخدم TCP طرقًا ذكية لاكتشاف ما إذا كانت الشبكة مزدحمة (مثل زيادة الوقت المستغرق لوصول التأكيدات أو فقدان الحزم).
  • عندما يكتشف ازدحامًا، يقوم بتقليل سرعة إرساله بشكل كبير (Slow Start)، ثم يبدأ بزيادة السرعة تدريجيًا حتى يجد أقصى سرعة ممكنة دون التسبب في مشكلة.

المغزى: ضمان أن كل مستخدم للشبكة يحصل على حصته العادلة من عرض النطاق الترددي، وبالتالي الحفاظ على استقرار الإنترنت.

 

3. هيكلية رأس حزمة TCP (TCP Header)

لتنفيذ كل هذه الآليات الرائعة (المصافحة، الترقيم، التأكيد، التحكم بالتدفق)، يحتاج TCP إلى وضع "ملصق" يحتوي على كل هذه المعلومات على كل جزء من البيانات يُرسَل. هذا الملصق هو رأس حزمة TCP (TCP Header).

يمكنك أن تتخيل الـ Header كنموذج تعبئة شامل مرفق بالطرود، يخبر المستلم بكل ما يحتاجه:

الحقل (Field)

الوظيفة الرئيسية

الأهمية في الشرح السابق

منافذ المصدر والوجهة (Source & Destination Ports)

تحديد التطبيق الذي أرسل أو سيستقبل البيانات (مثلاً: المتصفح يستخدم منفذ 80 أو 443).

ضروري لتوصيل البيانات للتطبيق الصحيح.

رقم التسلسل (Sequence Number)

تحديد رقم أول بايت بيانات في الحزمة الحالية.

مفتاحي لضمان الترتيب الصحيح للبيانات.

رقم التأكيد (Acknowledgement Number)

إخبار الطرف الآخر بـ "ما هي الحزمة التالية التي أتوقع استلامها".

مفتاحي لضمان الموثوقية وطلب إعادة الإرسال.

حجم النافذة (Window Size)

إخبار الطرف المُرسِل بحجم نافذة الاستقبال المتاحة حاليًا.

مفتاحي للتحكم بالتدفق (Flow Control).

الأعلام (Flags)

هي حقول ثنائية (On/Off) تُستخدم للتحكم في حالة الاتصال.

تحتوي على SYN و ACK الضروريين للمصافحة ثلاثية المراحل.

الأعلام (Flags) والأهمية القصوى

الأعلام هي أجزاء صغيرة جداً لكنها فائقة الأهمية. فكّر بها كـ "إشارات المرور" للاتصال. أهمها:

  • SYN: يُستخدم لبدء الاتصال (في المصافحة).
  • ACK: يُستخدم للتأكيد على استلام البيانات أو تأكيد بدء الاتصال.
  • FIN: يُستخدم لإنهاء الاتصال بشكل صحيح.
  • RST: يُستخدم لإعادة تعيين (إغلاق) الاتصال فجأة بسبب خطأ ما.

 



 

تعليقات

المشاركات الشائعة من هذه المدونة

مصادر لتقوية لغتك الإنجليزية

منحة كورسيرا عبر تجمع الشباب السوري

توثيق حسابات السوريين والسودانيين على منصة كورسيرا: دليل شامل ومفصل

تعريف بمنصة كورسيرا

ما هي قواعد البيانات ؟