• Blog
  • ما هو TCP وكيف يعمل TCP؟

ما هو TCP وكيف يعمل TCP؟

أكتوبر 19, 2023

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

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

تتضمن التحكم في الاتصال لبروتوكول نقل النصوص ثلاثة مصافحات وأربع موجات.

القطعة هي وظيفة توجيه الملاحة لبروتوكول TCP/IP بأكمله. يشير قطاع الحزمة إلى حزم البيانات IP في شبكة بروتوكول TCP/IP للنقل، والتي تستخدم الملاحة الطريقية، واستعلام كل قطاع طريق الشبكة، وعنوان IP، وبروتوكول التبادل، وما إلى ذلك.

  • مزامنة أرقام التسلسل
  • ACK: حقل الاعتراف مهم
  • Seq: رقم التسلسل
  • رقم الاعتراف

ثلاثة طرق لعملية المصافحة

مصافحة

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

المصافحة الأولى

العميل يرسل القطعة 1 إلى الخادم، حيث يشير علم SYN إلى أن هذه القطعة تستخدم لطلب الاتصال. بالإضافة إلى ذلك، يتم تعيين حقل رقم التسلسل الخاص به (مختصرًا باسم seq في الشكل) إلى الرقم التسلسلي الأولي x (رقم التسلسل الأولي، ISN)، ويمكن لكل من الأطراف في اتصال TCP اختيار الرقم التسلسلي الأولي عشوائيًا.

بعد إرسال القطعة 1، يدخل العميل في حالة SYN-SENT وينتظر تأكيدًا من الخادم.

المصافحة الثانية

بعد استلام طلب الاتصال من العميل، يرسل الخادم القطعة 2 إلى العميل كاستجابة.

تم تعيين علم ACK إلى 1، مما يشير إلى أنه يستجيب للعميل، وسيتم تفعيل حقل رقم الاعتراف (رقم الاعتراف، مختصرًا باسم ack بالأحرف الصغيرة).

قيمة هذا الحقل هي x + 1، وهي رقم التسلسل للقطاع الذي تم استلامه من العميل بزيادة واحد، والذي يمثل رقم التسلسل للبيانات التي يتوقع الخادم استلامها من العميل في المرة القادمة.

بالإضافة إلى ذلك، يتم تعيين علم SYN للقطاع 2 أيضًا إلى 1، مما يعني أن هذا أيضًا قطاع يُستخدم لبدء اتصال، ويتم تعيين رقم التسلسل seq إلى رقم التسلسل الأولي للخادم y.

بعد إرسال القطعة 2، يدخل الخادم في حالة “SYN-RECEIVED”.

المصافحة الثالثة

بعد استلام القطعة 2، يرسل العميل القطعة 3 إلى الخادم، وعلم الاعتراف الخاص بها هو 1، مما يعني أنه يستجيب للخادم، مؤكدًا أن حقل رقم التسلسل ack هو y + 1، وحقل رقم التسلسل seq هو x + 1. بعد إرسال هذه القطعة، يدخل كلا الطرفين إلى حالة ESTABLISHED، مما يشير إلى أن الاتصال قد تم تأسيسه.

the third handshake

تقييم حالة الاتصال بحالة العرض للعميل والخادم؟

  • العميل والخادم ينتميان إلى الحالة المغلقة، مما يشير إلى عدم وجود علاقة اتصال.
  • العميل يرسل طلبًا، العميل يفتح الإرسال (حالة SYN-sent)، والخادم يفتح حالة الاستماع (Listen)؛
  • عندما يستقبل الخادم طلب العميل، يقوم الخادم بالتبديل إلى حالة الرد (SYN-recvd).
  • عندما يتلقى العميل الاستجابة من الخادم، يقوم العميل بالتبديل إلى حالة الاتصال الثابت (مُنشأ) ويُرسل الحزمة البيانات الثانية في نفس الوقت.
  • عندما يستقبل الخادم البيانات الثانية من العميل، يقوم الخادم بالتبديل إلى حالة الاتصال الثابتة (مُنشأ).
  • بعد أن تقوم الطرفين بإقامة اتصال مستقر، حان الوقت لبدء التواصل الدوري للبيانات.

كيف تعمل الهاندشيك الثلاثة؟

المصافحة ثلاثية الطرق تسمح لكل من الطرفين بتأكيد قدرتهما على الإرسال والاستقبال وقدرة الطرف الآخر على ذلك كعملية؟

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

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

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

يمكن للمصافحة الثلاثية السماح لكل من الأطراف بتأكيد أن قدرات الإرسال والاستقبال لديهم ولدى الطرف الآخر جميعها معايير بحيث يمكنهم التواصل.

كيف تعمل الأمواج الأربع؟

إنشاء اتصال يتطلب ثلاث مصافحات، وإنهاء اتصال يتطلب أربع موجات.

تفاصيل عملية الإيماء أربع مرات

1. يرسل العميل شريط إغلاق الاتصال، طالبًا بإغلاق الاتصال ووقف إرسال البيانات. بعد ذلك، حقل رقم التسلسل seq = x (مساوٍ لرقم التسلسل لآخر بايت من جميع البيانات المرسلة سابقًا بزيادة واحدة)، ثم سيدخل العميل في حالة FIN-WAIT-1، في انتظار رسالة تأكيد من الخادم.

2. يستقبل الخادم شريط FIN ، ثم يرسل رسالة تأكيدية ، ACK = 1 ، ack = x + 1 ، ويحمل رقم تسلسله seq = y ، ثم يدخل الخادم حالة CLOSE-WAIT.

3. يدخل العميل حالة FIN-WAIT-2 على الفور بعد استلام شريط ACK من الخادم ولا يزال قادرًا على استقبال بيانات seq=z من الخادم حتى يتم استلام شريط FIN.

4. ثم بعد أن يرسل الخادم جميع البيانات، سيقوم بإرسال شريحة FIN إلى العميل، وبعد ذلك سيدخل الخادم في حالة LAST-ACK، في انتظار شريحة تأكيد من العميل.

5. بعد أن يتلقى العميل شريط FIN من الخادم، يرسل رسالة ACK إلى الخادم ثم يدخل حالة TIME-WAIT.

6. سيدخل الخادم في حالة الإغلاق على الفور بعد استلام رسالة ACK من العميل وسينهي الاتصال في هذا الوقت. بشكل عام، يدخل الخادم في حالة الإغلاق قبل العميل لأنه لا يوجد وقت انتظار.

four waves

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

لماذا يُغلق TCP الاتصال أربع مرات بدلاً من ثلاث؟

بعد استلام شريحة حزمة FIN من العميل، قد يكون لدى الخادم بعض البيانات لنقلها. لذلك، لا يمكن للخادم إغلاق الاتصال على الفور. بدلاً من ذلك، سيستجيب بشريحة حزمة ACK وقد يستمر في إرسال البيانات.

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

ما هي قضايا الأمان التي تحدث أثناء اتصال TCP؟

في عملية المصافحة الثلاثية، بعد أن يرسل الخادم SYN-ACK، يُطلق على الاتصال TCP قبل استلام الـ ACK من العميل اسم “اتصال نصف مفتوح”. في هذا الوقت، يكون الخادم في حالة SYN_RCVD. عند استلام ACK، يمكن للخادم الانتقال إلى حالة ESTABLISHED.

هجوم SYN يعني أن العميل المهاجم يزور عددًا كبيرًا من عناوين IP غير الموجودة في فترة قصيرة، ويُرسل باستمرار حزم SYN إلى الخادم، ويُرد الخادم بحزمة التأكيد، وينتظر تأكيد العميل.

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

في حالات الشدة، سيتسبب في اكتظاظ الشبكة أو حتى تعطل النظام. الهجوم SYN هو هجوم نمطي من نوع DoS/DDoS. انقر لمعرفة المزيد حول هجمات DoS/DDoS .