شرح صفوف ومحتوى الفقرة
المصافحة الثلاثية 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 وقبول العملية، يختار الخادم هنا رقم تسلسل ابتدائي1000؛ ويقر برقم2001 لأن SYN الذي رقمه2000 يستهلك موضعًا واحدًا في فضاء التسلسل، لا لأن الرقم1 رمز قبول.
شكل الرسالة: SYN/ACK: Sequence Number = 1000، Acknowledgment Number = 2001.
- الخطوة الثالثة: تأكيد على التأكيد ACK وهي بمجرد استلام جهاز المستخدم [ العميل/Client ] المرسل رسالة SYN-ACK يقوم بإرسال رسالة ACK أخيرة للخادم لتأكيد استلام رقم التسلسل SYN الخاص به وأنه يمكنه بدء نقل البيانات.
كيف تتم عملية ACK؟
رد جهاز المستخدم [ العميل/Client ]: على خادم الويب "لقد استلمت تأكيدك الآن نحن على استعداد لتبادل البيانات".
شكل الرسالة: ACK: Sequence Number = 2001، Acknowledgment Number = 1001.
ما يحدث بعد المصافحة TCP Handshake بعد إتمام المصافحة يتم تبادل البيانات بسهولة بين الجهازين وفق خدمة TCP الموثوقة، مع إضافة TLS إذا كانت السرية والتحقق من الهوية مطلوبين ثم بعد ذلك يتم إنهاء الاتصال وتسمى هذه العملية بـ 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 | 1000 | 2000 + 1 | ... |
| ACK | | | |
+------+-------------------+----------------+----------------+
Acknowledgment Message
شكل رسالة عملية الإقرار النهائي ACK.
نص
+------+-------------------+----------------+----------------+
| Flag | Sequence Number | Ack Number | Other Headers |
+------+-------------------+----------------+----------------+
| ACK | 2000 + 1 | 1000 + 1 | ... |
+------+-------------------+----------------+----------------+