26/09/2025
♦️الدرس الاول من سلسلة تعلم اهم البروتوكولات:
بروتوكول التحكم في الإرسال (Transmission Control Protocol - TCP) هو أحد البروتوكولات الأساسية والأكثر استخداماً في حزمة بروتوكولات الإنترنت (TCP/IP)، وهو حجر الزاوية الذي يقوم عليه عمل الإنترنت الحديث.
يقع TCP في طبقة النقل (Transport Layer) في نموذج TCP/IP (الطبقة الرابعة في نموذج OSI)، وتتمثل وظيفته الأساسية في توفير اتصال موثوق وموجه بالاتصال (Connection-Oriented and Reliable) بين تطبيقين يعملان على أجهزة مضيفة مختلفة عبر الشبكة.
الخصائص الرئيسية لـ TCP
يتميز TCP بعدة خصائص تجعله مناسباً للتطبيقات التي تتطلب ضمان وصول البيانات بترتيبها الصحيح وبدون أخطاء، مثل تصفح الويب (HTTP)، والبريد الإلكتروني (SMTP)، ونقل الملفات (FTP).
موجه بالاتصال (Connection-Oriented):
قبل البدء في نقل البيانات، يجب على جهازي الاتصال (المرسل والمستقبل) إنشاء اتصال منطقي بينهما.
تُعرف عملية إنشاء الاتصال هذه باسم "المصافحة الثلاثية" (Three-Way Handshake).
موثوقية (Reliable):
يضمن TCP وصول جميع حزم البيانات (التي تُسمى مقاطع أو Segments في طبقة النقل) إلى وجهتها.
يتم ذلك من خلال استخدام أرقام التسلسل (Sequence Numbers) لكل مقطع، وإشعارات الاستلام (Acknowledgements - ACK) من الطرف المستقبل.
إذا لم يتلق المرسل إشعار استلام لمقطع ما خلال فترة زمنية محددة، فإنه يعتبر المقاطع مفقودة ويعيد إرسالها.
ترتيب تسليم البيانات (Ordered Data Delivery):
بما أن المقاطع قد تسلك مسارات مختلفة وتصل بترتيب غير صحيح، يستخدم TCP أرقام التسلسل لإعادة تجميع المقاطع في الطرف المستقبل بترتيبها الأصلي.
التحكم في التدفق (Flow Control):
يمنع TCP المرسل من إغراق المستقبل بالبيانات بوتيرة أسرع من قدرة المستقبل على معالجتها.
يتم ذلك باستخدام نافذة الانزلاق (Sliding Window)، حيث يحدد المستقبل للمرسل كمية البيانات التي يمكن إرسالها قبل الحاجة إلى إشعار استلام إضافي.
التحكم في الازدحام (Congestion Control):
يتحكم TCP في معدل الإرسال عندما يكتشف ازدحاماً في الشبكة (عادةً عن طريق ملاحظة فقدان المقاطع أو التأخير).
يقلل المرسل من سرعته لتخفيف الضغط على الشبكة.
كيفية عمل TCP (المصافحة الثلاثية)
تتم عملية إنشاء الاتصال في TCP عبر ثلاث خطوات رئيسية:
SYN (تزامن - Synchronize):
يرسل العميل (Client) مقطعاً إلى الخادم (Server) يحمل إشارة SYN، طالباً بدء الاتصال وتحديد رقم تسلسل أولي (Initial Sequence Number - ISN).
SYN-ACK (تزامن وإقرار - Synchronize-Acknowledge):
يرد الخادم على العميل بمقطع يحمل إشارتي SYN (لتحديد رقم التسلسل الأولي الخاص بالخادم) و ACK (ليؤكد استلام طلب SYN من العميل).
ACK (إقرار - Acknowledge):
يرسل العميل مقطعاً أخيراً يحمل إشارة ACK، مؤكداً استلام رد الخادم.
بعد هذه الخطوات الثلاث، يصبح الاتصال قائماً (Established) وجاهزاً لنقل البيانات.
دور TCP في نقل البيانات
عندما يريد تطبيق إرسال بيانات:
يقوم TCP في جهاز الإرسال بتقسيم تيار البيانات إلى وحدات أصغر تسمى مقاطع (Segments).
يضيف TCP ترويسة (Header) لكل مقطع، تحتوي على أرقام المنافذ (Ports) المصدر والوجهة (لتحديد التطبيق)، رقم التسلسل، ورقم الإقرار، ومعلومات التحكم الأخرى.
يتم تمرير المقاطع إلى طبقة الإنترنت (Internet Layer)، حيث يضيف بروتوكول IP ترويسة العنوان المنطقي (IP Address) لتوجيهها عبر الشبكة.
في جهاز الاستقبال، يستقبل TCP المقاطع من طبقة IP.
يستخدم TCP أرقام التسلسل لترتيب المقاطع وإعادة بناء تيار البيانات الأصلي.
يرسل TCP إشعارات ACK للطرف المرسل يؤكد فيها استلامه للمقاطع بنجاح.
إذا وصل مقطع تالف أو مفقود (لم يتم إرسال ACK في الوقت المحدد)، يقوم المرسل بإعادة إرساله.
يتم تسليم تيار البيانات المعاد تجميعه إلى التطبيق الصحيح بناءً على رقم المنفذ.