خلال السنوات الأولى للإنترنت ، كان بروتوكول الإنترنت (IP) هو البروتوكول الوحيد الذي يستخدمه الأشخاص للاتصال بالإنترنت. كانت مشكلة IP هي أنه يمكنك إرسال رسالة وعدم التأكد مما إذا كان المستلم سيستقبلها أم لا. لهذا السبب ، تم إنشاء TCP / IP.

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

ما هي المصافحة الثلاثية؟

حقوق الصورة: Fleshgrinder /ويكيميديا

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

ما هو جزء TCP؟

في اتصال TCP / IP ، يجب قطع جميع البيانات التي يتم إرسالها وتنظيمها وفقًا لما يُعرف باسم مقاطع TCP. تحتوي هذه الأجزاء على معلومات مثل عناوين IP والمنافذ وبتات العلم وأرقام التسلسل وأرقام الإقرار والبيانات الاختيارية أو الحمولة.

instagram viewer

ستحتوي التفاعلات الثلاثة الأولى (تبادل الإشارات الثلاثية) فقط على رؤوس مقاطع TCP بدون حمولة أو بيانات مرفقة. فيما يلي عينة من مقطع TCP

حقوق الصورة: Ere /ويكيميديا

لاحظ أن الرسم التوضيحي أعلاه مخصص فقط لبرنامج التعاون الفني. يتطلب مقطع TCP / IP الكامل كليهما عناوين الانترنت بروتوكول من المرسل والمتلقي أعلى مقطع TCP أعلاه.

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

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

بالنسبة لمصافحة ثلاثية ، سيحتاج المرسل إلى ملء ما يلي:

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

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

  1. SYN: يعطي رقم تسلسلي. سيتم استخدام هذا الرقم التسلسلي لحساب تسلسل جميع المقاطع الواردة لبقية التفاعل.
  2. ACK: يشير إلى أن متلقي رقم SYN يقبل طلب الاتصال عن طريق إضافة واحد (1) إلى رقم SYN المحدد.

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

كيف تعمل المصافحة ثلاثية الاتجاهات

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

أولاً ، يرسل العميل مقطع SYN خالصًا يشير إلى أنه يريد الاتصال. ثانيًا ، يستجيب الخادم بمقطع SYN-ACK مما يعني أنه قد أقر بالطلب ويرسل رقم SYN الخاص به إلى العميل للإقرار به. ثالثًا ، يرسل العميل مقطع ACK إلى الخادم لإخطاره بأنه تم التعرف على رقم SYN الخاص بالخادم وسيتم استخدامه لمزيد من الاتصال.

ستبدو المصافحة الثلاثية كما يلي:

ائتمان الأصول: Fleshgrinder /ويكيميديا

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

الخطوة 1: يرسل العميل مقطع SYN

ائتمان الأصول: Fleshgrinder /ويكيميديا

يرسل العميل طلب اتصال عن طريق إرسال مقطع SYN إلى الخادم. يستخدم العميل عنوان IP الخاص بالعميل لتحديد موقع الخادم وإرسال مقطع TCP.

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

ومع ذلك ، يجب أن يبدو مقطع SYN / الطلب كما يلي:

الصورة من صنع الكاتب 

منفذ العميل عبارة عن رقم عشوائي بين 49152 و 65536. نطاق المنفذ هذا هو النطاق المتفق عليه والذي يمكن للأجهزة العامة استخدامه ديناميكيًا للاتصال بالإنترنت. نطاقات المنافذ من 1024 إلى 49151 خاصة. يجب أن يتم تسجيلها بواسطة كيان لاستخدام منفذ ضمن النطاق المحدد. أرقام المنافذ الأقل من 1024 هي منافذ محجوزة لمختلف الوظائف وبروتوكولات الإنترنت مثل FTP (المنفذ 20) و SMTP (المنفذ 25) و DNS (المنفذ 53) و HTTP (المنفذ 80).

في الحياة الواقعية ، الرقم التسلسلي هو رقم عشوائي. على سبيل المثال ، استخدمنا 0000000000 لتسهيل التصور.

دوِّن رقم التسلسل أثناء تقدمنا ​​في الخطوات. حاليًا ، هو 000000000. لا يوجد حاليًا رقم إقرار لعدم وجود شيء للإقرار به.

الخطوة 2: يقوم الخادم بالرد باستخدام مقطع SYN-ACK

ائتمان الأصول: Fleshgrinder /ويكيميديا

بمجرد أن يتلقى الخادم مقطع SYN ، سيستجيب بإرسال مقطع ACK يحتوي على رقم الإقرار. سيكون رقم الإقرار هو رقم تسلسل العميل زائد واحد (1).

الصورة من صنع الكاتب

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

الآن ، انظر إلى رقم الإقرار. إنه 0000000001 ، وهو رقم تسلسل العميل (0000000000) زائد واحد (1). هذه هي الطريقة التي يتم تتبع جزء. لنفترض أن العميل تلقى استجابة شريحة ACK حيث يكون رقم الإقرار هو 0000000002. سيشير هذا للعميل إلى أن القطعة 0000000001 مفقودة وأنه سيتعين على العميل الانتظار حتى وصوله حتى لا تواجه فقدان الحزمة.

كما ترى ، تم تنشيط بتات علم - SYN و ACK.

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

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

الخطوة 3: يقوم العميل بالرد باستخدام مقطع ACK

ائتمان الأصول: Fleshgrinder /ويكيميديا

أخيرًا ، يقر العميل برقم تسلسل الخادم.

الصورة من صنع الكاتب

الجزء الأخير عبارة عن شريحة ACK من العميل.

كما يمكنك ، سيتعرف العميل على رقم تسلسل الخادم من خلال الاستجابة برقم تسلسل الخادم (1111111111) بالإضافة إلى واحد (1) ، وهو 1111111112.

لن يقوم العميل والخادم بعد الآن بإرسال رقم تسلسلي منذ أن تم الاعتراف بالفعل ببدء التسلسل. ومع ذلك ، يتوقع كلا الطرفين شرائح الإقرار المستمرة بأرقام التسلسل زائد واحد (1) وعدد البايتات خلال التفاعل. في هذه الحالة ، يتوقع العميل أن يكون لاستجابة الخادم التالية ACK بقيمة 0000000002 (إذا لم تكن هناك بيانات مرفقة).

بعد ذلك ، يتم إنشاء المصافحة الثلاثية!

فهم كيفية عمل اتصالات الشبكة

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

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

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

وبهذا ، يجب أن تكون لديك فكرة جيدة عن كيفية عمل برنامج التعاون الفني.