Web Technology

Transmission Control Protocol TCP
بروتوكول التحكم في النقل أو الإرسال TCP

سنتعرف في هذا الدرس على بروتوكول التحكم في الإرسال Transmission Control Protocol وكيفية عمله، وطبقاته، والمنافذ الخاصة به، والفرق بينه وبين بروتوكول الانترنت IP، ومصافحة الـ TCP، كما سنتعرف على أنواع البيانات التي يتم نقلها عبر بروتوكول التحكم في الإرسال.

التاريخ

01 أبريل 2024

الدروس

41

المستوى

متقدم

اللغة

انجليزي

المشاهدات

341

المواضيع

4
الشروحات chevron_left Transmission Control Protocol TCP chevron_left Web Technology

Transmission Control Protocol TCP
بروتوكول التحكم في النقل أو الإرسال TCP

مراجعة تقنية
Mostafa Hefny

Mostafa Hefny

CEO & Founder CloseTag

</> Transmission Control Protocol TCP
بروتوكول التحكم في الإرسال TCP

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


وظيفة بروتوكول TCP:

تقسيم البيانات إلى حزم صغيرة: يقوم بروتوكول TCP بتقسيم البيانات الكبيرة إلى أجزاء أصغر تسمى الحزم Packets حتى تتم عملية النقل بسهولة.

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

الحفاظ على أمان المعلومات: يضمن بروتوكول TCP نقل البيانات بأعلى مستوى من الدقة والأمان دون حدوث أي خطأ.

العمل على جميع الأجهزة: يوجد بروتوكول TCP على أي جهاز يتصل بالشبكة، وهو يعمل في عمليتي الإرسال والاستقبال؛ مما يضمن أن أي جهاز يمكنه إرسال البيانات أو استقبالها بشكل سليم.

ملاحظة
يُستخدم مصطلح TCP/IP أحيانًا للإشارة إلى مجموعة بروتوكولات الإنترنت بالكامل. وهي تتضمن حوالي 500 بروتوكول إنترنت مختلف.

</> ?How does the protocol TCP work
كيف يعمل بروتوكول TCP؟

1. الاتصال الموثوق Reliable Connection: يبدأ بروتوكول TCP الاتصال بعملية تُعرف باسم عملية ثلاثية الاتجاهات Three-Way Handshake لضمان إنشاء اتصال آمن بين جهازين على الشبكة.


2. تقسيم البيانات Data Segmentation: يقوم بروتوكول TCP بتقسيم البيانات إلى حزم صغيرة Packets قبل إرسالها عبر الشبكة، مما يساعد على ضمان وصول البيانات الكبيرة بشكل سليم إلى الجهاز المستقبل للبيانات.


3. نقل البيانات Data Transmission: يتأكد بروتوكول TCP من أن الحزم يتم إرسالها بالترتيب الصحيح ويتم استلامها من الطرف الآخر بشكل صحيح فإذا كانت هناك حزم مفقودة أو تالفة، يُعاد إرسالها مرة أخرى إلى الجهاز المستقبل.


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


5. التدفق Flow Control: يتحكم بروتوكول TCP في معدل إرسال البيانات بين الجهازين لضمان عدم إغراق المستقبل بعدد كبير من الحزم في نفس الوقت.


6. إعادة التجميع Data Reassembly: عند استقبال الحزم، يقوم بروتوكول TCP على الجهاز المستقبل بإعادة تجميع تلك الحزم بالترتيب الصحيح لإعادة بناء البيانات الأصلية مرة أخرى.


7. إنهاء الاتصال Connection Termination: يتم إنهاء الاتصال من خلال عملية رباعية الاتجاهات Four-Way Handshake عندما يتم الانتهاء من نقل البيانات.

</> Layers of TCP protocol
طبقات بروتوكول TCP

نموذج TCP/IP يتكون من أربع طبقات، وكل طبقة تتعامل مع وظيفة معينة في عملية نقل البيانات:


1. طبقة الوصول إلى الشبكة Network Layer: تقوم هذه الطبقة بإدارة البنية الأساسية للشبكة التي يتصل بها أجهزة الكمبيوتر، وتشمل هذه الطبقة المكونات الأساسية مثل: برامج تشغيل الأجهزة، وبطاقات واجهة الشبكة، واتصالات إيثرنت من خلال الكابلات، والشبكات اللاسلكية.


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


3. طبقة النقل Transport Layerتمكّن هذه الطبقة أجهزة الشبكة من نقل البيانات بشكل سليم ويتم إرسال هذه البيانات واستقبالها من البرامج الموجودة على الأجهزة المتصلة عبر نفس الشبكة.


4. طبقة التطبيقات Application Layerهذه الطبقة توفر الدعم لبعض الخدمات والتطبيقات على الجهاز المرسل والمستقبل، وتشمل هذه الطبقة بروتوكولات متنوعة مثل بروتوكول نقل الملفات FTP، وبروتوكول نقل البريد البسيط SMTP، وبروتوكول نقل النصوص التشعبية HTTP.

</> TCP Ports
منافذ TCP؟

المنفذ Port: هو مجرد رقم يُضاف إلى عنوان IP للمساعدة في تحديد نوع الخدمة أو التطبيق الذي يتم توجيه البيانات إليه من الجهاز المُرسِل إلى الجهاز المُستلم. وتعمل فكرة المنافذ مثل الأبواب المختلفة في المبنى؛ كل باب يؤدي إلى غرفة مختلفة (تطبيق أو خدمة مختلفة) داخل نفس المبنى (الجهاز).


لماذا نحتاج المنافذ:

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


أرقام المنافذ:

أرقام المنافذ لها نطاق رقمي: الأرقام تتراوح بين 0 و65535، وكل تطبيق يستخدم منفذًا محددًا وفريدًا يجب ألا يتكرر.


تصنيف النطاق للمنافذ:

  •  المنافذ المحجوزة: وهي المنافذ الأكثر انتشارًا أو الشائعة وتبدأ من 0 إلى 1023 وتستخدمها الخدمات المعروفة، مثل:

منفذ 80: يستخدم لخدمة HTTP تصفح الويب العادي.

منفذ 443: يستخدم لخدمة HTTPS تصفح الويب الآمن.

منفذ 25: يستخدم لبروتوكول البريد الإلكتروني SMTP.

  • المنافذ غير المسجلة: هذه المنافذ تبدأ من 1024 إلى 49151 ويمكن تخصيصها لتطبيقات أو خدمات مختلفة.
  • المنافذ الديناميكية/الخاصة: المنافذ تبدأ من 49152 إلى 65535 وتستخدم عادة للجلسات المؤقتة وتكون غير محجوزة.


طريقة استخدام المنافذ في الاتصال:

إرسال البيانات: عندما يتم إرسال بيانات معينة من الجهاز من تطبيق معين مثل المتصفح فإن المتصفح يرسل طلبًا إلى خادم ويب web server، فإن البيانات تحتوي على عنوان IP للجهاز المستقبل ورقم المنفذ (عادةً المنفذ 80 أو 443 للويب).

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

HTTP Protocol Prot

منفذ بروتوكول نقل البيانات HTTP وهو 80 ويكتب بجوار عنوان IP الخاص بخادم الويب.

104.21.74.97:80

</> Difference between TCP and IP
الفرق بين TCP و IP

TCP و IP هما بروتوكولات منفصلة تعمل معًا لضمان نقل البيانات بشكل آمن وفعال إلى وجهتها المقصودة عبر الشبكة.


  • بروتوكول الانترنت IP: يقوم هذا البروتوكول بتوفير عنوان IP للأجهزة الموجودة في الشبكة. وعنوان IP هو مُعرف فريد لكل جهاز ويستخدم لتوجيه البيانات عبر الأجهزة، ودور هذا البروتوكول هو تحديد عنوان الجهاز الذي يجب أن تُرسل إليه البيانات.


  • بروتوكول التحكم بالنقل TCP: الدور الأساسي لهذا البروتوكول هو نقل البيانات عبر الشبكة باستخدام آليات فنية مثل تقسيم البيانات Segmentation، والتشفير Encryption، والتوجيه Routing، وذلك لتوجيه البيانات بطريقة آمنة لضمان وصولها إلى المصدر بشكل سليم، حيث يقوم  هذا البروتوكول بتقسيم البيانات إلى حزم، وإرسالها، وإعادة تجميعها عند الجهاز المستقبل، والتحقق من استلامها دون فقدان أو تكرار.


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

</> TCP/IP Network Components
مكونات شبكة TCP/IP

 مكونات شبكة TCP/IP:

  • Subnet Mask: هو عبارة عن بروتوكول يخبر جهاز الكمبيوتر الخاص بالمستلم بعض المعلومات الخاصة بجهاز المُرسل مثل عنوان IP، كما يخبره ببعض المعلومات الإضافية عن الشبكة المتصل بها جهاز المُرسل.


  • ترجمة عناوين الشبكة Network Address Translation: بروتوكول NAT عبارة عن محاكاة افتراضية لعناوين IP، وهو يُساعد في تحسين الأمان وتقليل عدد عناوين IP التي تحتاجها المؤسسة.


  • بروتوكول نقل النصوص Hypertext Transfer Protocol: يتعامل HTTP مع الاتصال بين خادم الويب  web server ومتصفح الويب web browser.


  • بروتوكول نقل النصوص الآمن Hypertext Transfer Protocol Secure: بروتوكول HTTPS يتعامل مع الاتصال الآمن بين خادم الويب web server ومتصفح الويب web browser.


  • بروتوكول نقل الملفات File Transfer Protocol: يستخدم بروتوكول FTP في عمليات نقل الملفات بين أجهزة الكمبيوتر.



  • بروتوكول نقل البريد البسيط Simple Mail Transfer Protocol: يستخدم SMTP لاتصالات البريد الإلكتروني وهو مسؤول عن نقل رسائل البريد الإلكتروني بين خوادم البريد والجهاز المستقبل.


  • بروتوكول بيانات المستخدم User Datagram Protocol: هو بروتوكول يوفر توصيلًا أسرع في نقل البيانات من بروتوكول TCP ولكنه أقل منه موثوقية، ويُستخدم على نطاق واسع في التطبيقات مثل بث الفيديو والألعاب عبر الانترنت.

</> TCP Handshake
مصافحة TCP

المصافحة الثلاثية TCP Handshake هي خطوات يستخدمها بروتوكول TCP لإنشاء اتصال بين جهازين عبر الشبكة، وهذه العملية تتم بثلاث خطوات رئيسية وهي [ SYN - SYN/ACK - ACK ] والخطوات بالترتيب هي:

  • الخطوة الأولى: وهي إرسال طلب Synchronize وتعرف هذة العملية بـ SYN عندما يأمر المستخدم جهاز الكمبيوتر الشخصي الخاص به ليقوم بإنشاء اتصال مع جهاز آخر مثل خادم الويب.

    كيف تتم عملية SYN؟
    بدء الاتصال بالخادم: يقوم جهاز المستخدم [ العميل/Client ] صاحب عنوان الـ IP مثلًا 192.168.1.3 ببدء الاتصال بالخادم server صاحب عنوان الـ IP مثلًا 199.55.7.9، ويبدأ بإرسال حزمة [ SYN [ Synchronize.
    إرسال رسالة SYN: يقوم جهاز المستخدم بإرسال رسالة SYN إلى الجهاز المستقبل وهو الخادم، وتشير الرسالة إلى رغبة جهاز المستخدم في تأسيس اتصال مشترك.
    شكل الرسالة: تحتوي الرسالة على رقم تسلسلي sequence number فريد في كل مرة، مثل: SYN = 2000.
    الطلب : يخبر  جهاز المستخدم [ العميل/Client ] الخادم server "أريد بدء اتصال من نوع SYN".


  • الخطوة الثانية عملية SYN-ACK: رد الجهاز المستقبل وهو الخادم server بالتأكيد والتزامن وتسمى هذه العملية بـ Synchronize Acknowledgment وهذا هو الاختصار SYN-ACK وتتم عند استلام الخادم رسالة SYN.

    كيف تتم عملية SYN-ACK؟
    استلام حزمة SYN: الخادم server صاحب عنوان الـ IP مثلًا 199.55.7.9 يحصل على الحزمة الأولى من النوع SYN من جهاز المستخدم [ العميل/Client ] صاحب عنوان الـ IP مثلًا 192.168.1.3 فيلاحظ فيها طلب الاتصال مع رقم تسلسلي مثلًا 2000.
    تحضير حزمة للرد SYN-ACK: يقوم الخادم server بإعداد حزمة جديدة من النوع SYN-ACK.
    محتوى الرسالة: الخادم يحدد حزمة تشمل رقم تسلسلي جديد Sequence Number ورقم الإقرار Acknowledgment Number وقبول العملية، ويقوم بالرد برقم 1 تعني تم قبول الطلب "لقد استلمت طلبك وموافق على هذا الاتصال".
    شكل الرسالة: SYN = 2000 + ACK = 1001.


  • الخطوة الثالثة: تأكيد على التأكيد ACK وهي بمجرد استلام جهاز المستخدم [ العميل/Client ] المرسل رسالة SYN-ACK يقوم بإرسال رسالة ACK أخيرة للخادم لتأكيد استلام رقم التسلسل SYN الخاص به وأنه يمكنه بدء نقل البيانات.

    كيف تتم عملية ACK؟
    رد جهاز المستخدم [ العميل/Client ]: على خادم الويب "لقد استلمت تأكيدك الآن نحن على استعداد لتبادل البيانات".
    شكل الرسالة: ACK = 2001.


ما يحدث بعد المصافحة TCP Handshake بعد إتمام المصافحة يتم تبادل البيانات بسهولة بين الجهازين وبطريقة موثوقة وآمنة ثم بعد ذلك يتم إنهاء الاتصال وتسمى هذه العملية بـ FIN و ACK، وتتم هذه العملية بعد التحقق وضمان أن جميع البيانات قد تم تسليمها بنجاح.

Synchronous Message

شكل رسالة عملية التزامن Synchronous Message.

+------+-------------------+----------------+
| Flag | Sequence Number   | Other Headers  |
+------+-------------------+----------------+
| SYN  | 2000              | ...            |
+------+-------------------+----------------+
Synchronize Acknowledgment Message

شكل رسالة عملية Synchronize Acknowledgment.

+------+-------------------+----------------+----------------+
| Flag | Sequence Number   | Ack Number     | Other Headers  |
+------+-------------------+----------------+----------------+
| SYN  | 2000              | 1000 + 1       | ...            |
| ACK  |                   |                |                |
+------+-------------------+----------------+----------------+
Synchronize Acknowledgment Message

شكل رسالة عملية تأكيد التأكيد SYN-ACK.

+------+-------------------+----------------+----------------+
| Flag | Sequence Number   | Ack Number     | Other Headers  |
+------+-------------------+----------------+----------------+
| ACK  | 2000 + 1          | 1000 + 1       | ...            |   
+------+-------------------+----------------+----------------+

</> TCP Protocol Message Content
رسالة بروتوكول نقل البيانات TCP

مقدمة TCP أو TCP Header: هي جزء البداية من حزمة البيانات في بروتوكول التحكم بالنقل TCP وتحتوي على معلومات التحكم اللازمة لإدارة الاتصال ونقل البيانات.


منفذ المصدر Source Port: رقم منفذ الجهاز الذي يرسل البيانات، وهو يساعد في تحديد التطبيق أو الخدمة التي ترسل البيانات من الجهاز المصدر.


منفذ الوجهة Destination Port: رقم منفذ الجهاز المستهدف الذي سيتم إرسال البيانات إليه والذي يقوم بتحديد التطبيق أو الخدمة التي ستستقبل البيانات في الجهاز الوجهة.


العلم Flag: مجموعة من بتات التحكم مثل [SYN, ACK, FIN] التي تدير حالة الاتصال والتحكم في نقل البيانات بين الأجهزة:

  • SYN Synchronization: يستخدم لإنشاء اتصال جديد.
  • ACK Acknowledgment: يستخدم لتأكيد استلام البيانات.
  • FIN Finish: يستخدم لإنهاء اتصال قائم.
  • RST Reset: يستخدم لإعادة تعيين الاتصال.
  • URG Urgent: يشير إلى وجود بيانات عاجلة.
  • PSH Push: يطلب من الخادم إرسال البيانات فورًا.
  • ECE ECN-Echo: يستخدم للتحكم في ازدحام الشبكة.
  • CWR Congestion Window Reduced: يشير إلى تقليل الازدحام في نافذة التحكم.

رقم التسلسل Sequence Number: رقم يتم استخدامه لتتبع ترتيب الحزم المرسلة، مما يضمن إعادة تجميع البيانات بالترتيب الصحيح على الجانب المستقبل.


رقم الإقرار Acknowledgment Number: هو رقم يستخدم في بروتوكول التحكم بالنقل TCP يرسله جهاز المستقبل إلى جهاز المرسل ليخبره بالرقم التسلسلي للحزمة التالية المتوقعة وذلك ليساعده في اكتشاف الحزم المفقودة أو التي يجب إعادة إرسالها مرة أخرى.


إزاحة البيانات Data Offset: يحدد بداية البيانات الفعلية في الحزمة بالاستناد إلى طول مقدمة TCP.


محجوز Reserved: مجموعة من البتات المحجوزة لاحتمالات الاستخدام المستقبلي ويجب أن تكون دائمًا صفر عند الإرسال.


مجموع التحقق Checksum: قيمة تستخدم للتحقق من سلامة البيانات في الحزمة وتكشف عن أي أخطاء قد تكون حدثت أثناء النقل.


المؤشر العاجل Urgent Pointer: إذا كانت بت العلم ذات النوع URG مفعّلة، فإن هذا الحقل يشير إلى المكان الذي تنتهي فيه البيانات ذات الأولوية العالية في حزمة TCP.


الخيارات Options: مجموعة من الخيارات الإضافية التي تسمح لمقدمة TCP بدعم بعض المميزات الإضافية مثل نافذة التوسع Window Scaling، والتحكم في تدفق البيانات.

TCP MESSAGE Content

محتوى رسالة بروتوكول TCP التي يتم نقلها بين الأجهزة للتواصل والنقل.

TCP Header | Source Port | Destination Port | Flag | Sequance Number | Acknowledgment Number | Data Offset | Reserved | Checksum | Urgent Pointer | Options
TCP MSG

هذا الجدول يحتوي على مجموعة من الصفوف Rows ويتكون كل صف من 32 بت. يتم تقسيم كل صف إلى أربعة أقسام، كل قسم منها يتكون من بايت Byte أو 8 بت Bit، ويبدأ ترتيب البتات في كل بايت من اليسار بالأرقام من 7 إلى 0، وهو ما يعرف بنظام ليتل إنديان Little Endian.

</> Types of data that are transferred over the TCP transport protocol
أنواع البيانات التي يتم نقلها عبر بروتوكول النقل TCP

يمكن استخدام بروتوكول TCP لنقل مجموعة متنوعة من أنواع البيانات بشكل سهل وآمن:

  • صفحات الويب HTMLتستخدم المواقع بروتوكولات HTTP و HTTPS لنقل محتوى صفحات الويب والملفات المرتبطة، مثل: الصور، والفيديوهات بين المتصفح وخوادم الويب على هيئة نصوص وهذا البروتوكول سواء HTTP أو HTTPS يتم تمرير اتصاله عبر بروتوكول TCP على الشبكة [يعني ذلك أنه يجب فتح اتصال TCP أولًا لكي يتم إرسال حزم HTTP أو HTTPS بداخل قناة اتصال TCP].

  • الملفات القابلة للتحميل: بروتوكول نقل الملفات FTP يستخدم بروتوكول TCP لنقل الملفات من وإلى الخوادم عبر أي شبكة، وهناك أنواع منه مثل SFTP/FTPS وهي نسخ أكثر أمانًا من FTP تستخدم TCP لنقل البيانات مع التشفير.

  • البريد الإلكتروني E-mails: يتم نقل رسائل البريد الالكتروني عبر بروتوكول يسمى SMTP لإرسال البريد الإلكتروني عبر الشبكة، وبروتوكولات IMAP/POP3 لاستقبال البريد الإلكتروني ويتم تمريرهم عبر بروتوكول TCP.

  • تطبيقات الشبكات: حيث يقوم بروتوكول Secure Shell أو SSH باستخدام بروتوكول TCP لتأمين نقل البيانات والتحكم في الأجهزة عن بعد، وبروتوكول Telnet يستخدم بروتوكول TCP للوصول إلى أجهزة الكمبيوتر عن بُعد.

  • الملفات الصوتية والفيديو: تقوم تطبيقات بث الفيديو والصوت باستخدام بروتوكول TCP لضمان نقل موثوق للبيانات مثل البث عبر HTTP.

  • VOIP Voice Over IP: بعض تطبيقات VOIP قد تستخدم بروتوكول TCP لضمان جودة الاتصال، رغم أن UDP يكون أكثر شيوعًا لشدة دقته.

  • تحديثات البرمجيات: يمكن للخوادم نقل الحزم التحديثية والبرمجيات باستخدام بروتوكول TCP لضمان وصول كل جزء من البيانات بشكل صحيح.

  • قواعد البيانات: تقوم التطبيقات التي تعتمد على الاتصال بين قواعد البيانات، مثل MySQL أو PostgreSQL باستخدام بروتوكول TCP لضمان نقل آمن وموثوق للبيانات بين الخوادم.

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