قاموس المصطلحات – Three-Way Handshake

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

نستطيع ترجمتها إلى المصطلح “المصافحة الثلاثية”، وهي أشبه ما تكون بعملية الإتصال الهاتفي بين البشر، من حيث أنك تحتاج للقيام بخطوات متسلسلة لإنشائها: ستقوم برفع السماعة، ثم طلب الرقم، وانتظار الرد، ثم سماع الرنين لدى الطرف الآخر، ثم قيامه برفع السماعة والرد، ثم التعارف، …. إلخ.

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

  1. SPORT: Source Port رقم المنفذ الذي سيستخدمه الجهاز المرسِل
  2. DPORT: Destination Port رقم المنفذ الذي سيستخدمه الجهاز المستقبل
  3. ISN: Initial Sequence Number الرقم التسلسلي المبدئي الذي ستبدأ به عملية ترقيم الحزم المرسلة. وهو يلزم لأجل التحكم في تدفق البيانات والتأكد من وصول الحزم إلى هدفها، ومن ثمّ إعادة ترتيبها بالشكل الصحيح.
  4. ACK: Acknowledge رقم آخر يمثل “وصل الإستلام”، ويرسله الجهاز الهدف إلى الجهاز المصدر لإعلامه بوصول الحزم وإستلامها بنجاح.

سميت هذه العملية three-way لأن تجري على ثلاث مراحل:

  1. يقوم الجهاز A بإرسال حزمة تتضمن إشارة تدعى SYN (إختصار SYNchronize) إلى الجهاز B.
  2. تصل الحزمة إلى الجهاز B فيرد عليها بإرسال حزمة تتضمن SYN-ACK (إختصار SYNchronize-ACKnowledge) إلى الجهاز A.
  3. عندما يصل الرد إلى الجهاز A، يعيد إرسال حزمة أخرى مع إشارة ACK إلى الجهاز B، إيذاناً بإتمام التفاوض وعندها فقط يتم البدء بالإتصال الفعلي، ويصبح الإتصال في هذه المرحلة في حالة ESTABLISHED STATE.

3way

(ما بدأ بالمعروف ينتهي بالمعروف)، ذلك لأن إنهاء الإتصال لا يتم إعتباطياً، بل أيضاً من خلال عملية توافق بين الجهازين وبنفس التسلسل تقريباً ما عدا أن إشارة SYN تستبدل بإشارة FIN (إختصاراً لـِ FINished).

3way2

من مزايا طريقة three-way handshake كذلك أنها تمكّن الجهازين من إنشاء عدة قنوات إتصال فيما بينهما في نفس الوقت، وكل واحدة منها مستقلة في حالتها state ومختلفة في القيم parametes التي يتم الإتفاق عليها. على سبيل المثال يمكنك إنشاء إتصال مع جهاز سيرفر لفتح صفحة إنترنت مستضافة عليه (من خلال بروتوكول HTTP) وفي نفس الوقت تقوم بتنزيل ملف منه (من خلال بروتوكول FTP). لكل جلسة من هاتيين الجلستين يتم عمل three-way handshake والتفاوض على طبيعة الإتصال بشكل مستقل ومختلف عن الأخرى. وقد تنتهى إحدى الجلسات بينما الأخرى لا زالت فاعلة.

الأوسمة: , , , ,

13 تعليق to “قاموس المصطلحات – Three-Way Handshake”

  1. REHAB Says:

    أشكرك..
    أنا أدرس حاليا
    data center administration
    وساعدني شرحك المبسط والوافي في فهم الموضوع أكثر🙂
    لك جزيل الشكر..

  2. عبدالله Says:

    جزاك الله الف خير وجمعنا وإياك في الجنة

  3. MoDo Says:

    جزاك الله الف خيرا شرح واضح جدا ومفصل ومفيد جدا

  4. سعد Says:

    الف شكر لك

    حرر الشكر في 23/11/2010

  5. Eng_Rose Says:

    جزاك الله كا خير

  6. سليمان Says:

    بارك الله فيك ,, شكراَ على جهودك,,

  7. Zo-Dns Says:

    كل الشكر لك اخي . محاولتك في تبسيط العملية والشرح . مجدية الى حداً بعيد
    تحياتي وتابع على نفس المنوال ..
    احمد

  8. moooondaaaaas Says:

    جزاك الله ألف خير أخوي على الشرح الممتع تعلمت أشياء جديدة لم أكن أعلمها
    ———————————————————————
    يا أيها المسسلمون تذكروا أن لكم أخوة مسلمين مثلكم في سوريا
    لا يجدون حطبا يدفئهم و لا خبزا يسمنهم و لا ماء يغسلهم و ليس لهم الا الله ثم دعائكم

  9. nada Says:

    جزاك الله خير…

    مجهود رائع لتبسيط مفاهيم البروتوكولات..واصل

  10. RA Says:

    ماقصرت

  11. بندر Says:

    شكرا من القلب

  12. ALI JASSIM Says:

    بارك الله فيك شرح جميل ورائع جدا….

    لكن عندي سؤال :
    الان هذي الطريقة الثري-وي هاند شيك.. عندما يكون هناك انستابلش Established للاتصال او بالاحرى اتصال تم انشائة ..
    وهي من جهاز المرسل يرسل باكت طلب المزامنه ثم يرد الكلانت عليه بقبول المزامنه مع ACK ثم يرد الجهاز المرسل بـ ACK كذلك بالموافقة ..

    هنا يتم ارسال باكت واحد ومن ثم يتم ارسال 2 باكت اخر … وعلى ماقرات انه كذلك في عملية ارسال الباكت تكون بهذي الطريقة ..

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

    كما بالصورة

    هل كلامي صحيح ام به خطأ… ؟

    بالرغم اني اعرف طريقة الثري وي هاند شك للـ windowing لانه الوندونق حلت لنا مشكلة كانت بالطريقة الاولى انه على كل سقمنت منرسله يتم ارسال 2 سيقمنت للتاكيد بالوصول وهذا يضمن لنا انه ماراح تضيع علينا اي سقمنت ابدا… ولكن العملية بطيئة بتكون..

    اتمنى تقرا كلامي وتخبرني هل صحيح كلامي ام به خطأ.. وشكرا لك

  13. احمد حسان Says:

    السلام عليكم
    شرح جميل لكن اريد ان اعرف الفرق بين الويندوينق والثري واي هاندشك

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s


%d مدونون معجبون بهذه: