الدرس 3 من 4 · 7 دقيقة
مصافحة TCP وحياة الاتصال
كيف يتفق حاسوبان على التحدث قبل أن يرسل أي منهما بيانات حقيقية، وكيف ينهيان المحادثة، وما الذي يراه فعليًا جدار حماية يراقب في المنتصف.
قبل أن يرسل جهاز Mac الخاص بك بايتًا واحدًا من طلب صفحة ويب، يكون قد تبادل بالفعل ثلاث رسائل قصيرة مع الخادم. هذا التبادل، وهو مصافحة TCP الثلاثية، هو ما يحوّل وعود الموثوقية الخاصة بـ TCP من الدرس السابق إلى اتصال فعلي وقابل للتتبع بين جهازين.
ثلاث رسائل قبل الكلمة الأولى
يصف RFC 9293، وهو مواصفة TCP الحالية، العملية بأنها تبادل متزامن: «تتطلب المزامنة أن يرسل كل طرف رقمه التسلسلي الأولي الخاص، وأن يتلقى تأكيدًا له في إقرار من طرف TCP البعيد.»
- SYN. الجهاز الذي يفتح الاتصال يرسل مقطعًا برايةِ SYN مفعَّلة، يحمل رقمًا تسلسليًا ابتدائيًا.
- SYN-ACK. يرد الطرف الآخر بـ SYN الخاصة به، مع إقرار للرقم الأول.
- ACK. يُقرّ الجهاز الأول بذلك الرد. يذكر RFC 9293 أنه «لأن الخطوتين 2 و3 يمكن دمجهما في رسالة واحدة، تُسمى هذه العملية بالمصافحة الثلاثية (أو ذات الثلاث رسائل).» وبمجرد اكتمالها، يعدّ الطرفان الاتصال في حالة "مُنشأ" (ESTABLISHED) ويبدآن إرسال البيانات الفعلية.
يقدّم مركز تعلّم Cloudflare نسخة بلغة مبسطة من الفكرة نفسها، مستخدمًا رسالة بريد إلكتروني مثالًا: «أولًا، يرسل المصدر حزمة SYN، وهي "طلب أولي"، إلى الخادم الهدف لبدء الحوار. ثم يرسل الخادم الهدف حزمة SYN-ACK للموافقة على العملية. وأخيرًا، يرسل المصدر حزمة ACK إلى الهدف لتأكيد العملية، وبعدها يمكن إرسال محتويات الرسالة.»
إنهاء الاتصال بشكل نظيف
الإغلاق أكثر تأنيًا من الفتح. يوضّح RFC 9293 أن «تسلسل إغلاق TCP العادي يسلّم البيانات المخزَّنة مؤقتًا بشكل موثوق في الاتجاهين» قبل انتهاء الاتصال: يرسل كل طرف مقطع FIN حالما لا يعود لديه بيانات ليرسلها، ويقرّ الطرف الآخر بذلك، ولا يُغلق الاتصال بالكامل إلا بعد انتهاء الاتجاهين كليهما. تعقب ذلك فترة انتظار قصيرة (TIME-WAIT)، حتى لا تُخلط أي حزمة ضالة ومتأخرة من الاتصال القديم مع اتصال جديد.
ما الذي يراه جدار حماية في المنتصف
جدار الحماية ذو الحالة (stateful)، وهو النوع المدمج في معظم أجهزة الراوتر وفي macOS نفسه، لا يحتاج إلى فحص كل حزمة لاتخاذ قرار. يصف شرح Cloudflare لجدران الحماية الأمر هكذا: إنه «يحفظ معلومات عن الاتصالات المفتوحة ويستخدم هذه المعلومات لتحليل حركة البيانات الواردة والصادرة، بدلًا من فحص كل حزمة على حدة.» عمليًا، يعني هذا أنه يراقب SYN التي تفتح اتصالًا، ويتذكر أن هذا التطبيق طلب ردًا، ثم يسمح بهدوء بمرور SYN-ACK المطابقة عائدة؛ أما الرد الذي لا يطابق أي SYN صادرة فيُسقَط. وهذه أيضًا الطريقة التي يستطيع بها جدار الحماية تمييز رد طبيعي من محاولة اتصال غير مرغوبة تصل من العدم، وهو ما يقوم عليه حجب حركة البيانات الواردة غير المرغوب فيها.
لا شيء في هذا التبادل مشفَّر من قِبل TCP نفسه؛ فـ SYN وSYN-ACK وACK مرئية بشكل صريح لأي شيء يراقب مسار الشبكة، بما في ذلك جهاز الراوتر عبر Wi-Fi لديك. أما ما يظل مخفيًا وما لا يظل فيعتمد على الطبقة الأعلى من TCP، مثل TLS لموقع HTTPS، وهو ما تتناوله مادة "كيف يعمل الإنترنت" بشكل منفصل.
أهم النقاط
- تُفتح اتصالات TCP بمصافحة ثلاثية: SYN، ثم SYN-ACK، ثم ACK، وفق RFC 9293.
- لا يبدأ الطرفان بتبادل البيانات الفعلية إلا بعد اكتمال المصافحة.
- إغلاق الاتصال هو تبادل ثنائي الاتجاه لمقاطع FIN حتى تُسلَّم البيانات المخزَّنة مؤقتًا قبل انتهاء الاتصال.
- يتتبع جدار الحماية ذو الحالة أي SYN خرجت حتى يتمكن من التعرف على الردود المطابقة والسماح بها، وإسقاط غير المرغوب فيها.
- المصافحة نفسها غير مشفَّرة؛ فهي مرئية لأي شيء على مسار الشبكة.
اختبر نفسك
1. ما الترتيب الصحيح لمصافحة TCP الثلاثية؟
- ACK ثم SYN ثم SYN-ACK
- SYN ثم SYN-ACK ثم ACK — صحيح.
- SYN-ACK ثم SYN ثم ACK
- FIN ثم SYN ثم ACK
يصف RFC 9293 الطرف الذي يفتح الاتصال بإرسال SYN أولًا، ويرد الطرف الآخر بـ SYN-ACK، ويؤكد الطرف الذي فتح الاتصال بـ ACK.
2. متى تبدأ بيانات التطبيق الفعلية بالتدفق عبر اتصال TCP؟
- قبل إرسال SYN
- فقط بعد اكتمال المصافحة الثلاثية — صحيح.
- أثناء خطوة SYN-ACK
- تتدفق البيانات باستمرار دون أي مصافحة
توجد المصافحة لمزامنة الأرقام التسلسلية قبل أن يثق أي من الطرفين بالاتصال كفاية لإرسال بيانات فعلية.
3. كيف يقرر جدار الحماية ذو الحالة السماح بحزمة رد واردة؟
- يسمح بجميع الحزم الواردة افتراضيًا
- يتحقق مما إذا كانت الحزمة تطابق اتصالًا فتحه هذا الجهاز، مُتذكَّرًا من SYN الصادرة سابقًا — صحيح.
- يفحص محتوى الحزمة بحثًا عن كلمات مفتاحية
- ينظر فقط إلى منفذ الوجهة، لا إلى حالة الاتصال أبدًا
تصف Cloudflare جدار الحماية ذا الحالة بأنه «يحفظ معلومات عن الاتصالات المفتوحة» للتعرف على الردود المشروعة بدلًا من فحص كل حزمة من الصفر.
4. هل مصافحة TCP نفسها مشفَّرة؟
- نعم، دائمًا
- لا، هي صريحة ومرئية لأي شيء على مسار الشبكة — صحيح.
- فقط SYN مشفَّرة
- فقط في اتصالات HTTPS
يوفر TCP الترتيب والموثوقية، لا السرية. أما التشفير، عند وجوده، فيأتي من طبقة أعلى من TCP مثل TLS.
جرّبها مع FireAI
طبّق هذا الدرس عمليًا على جهاز Mac الخاص بك.
- اكتشف إلى أين يرسل تطبيق بياناته، على خريطة العالم — اطّلع بالضبط على الشركة والدولة التي يتحدث معها تطبيق واحد بصمت.
- القواعد: تطبيق أو موقع أو نطاق أو IP أو نطاق عناوين، إلى الأبد أو حتى إعادة التشغيل — اكتب قاعدة دقيقة كعنوان واحد أو واسعة كنطاق كامل.
- فحص عميق، دون فك تشفير أي شيء — احصل على تفاصيل حقيقية عن اتصال آمن دون أن يقرأ FireAI أبدًا ما بداخله.
المصادر
- RFC 9293: Transmission Control Protocol (TCP)
- Cloudflare Learning: What is TCP/IP?
- Cloudflare Learning: What is a Firewall?
طبّق ذلك على جهاز Mac الخاص بك
جرّب كل الميزات مجانًا لمدة 17 يومًا، دون بطاقة.