معرفی فرآیند Three-Way Handshake در پروتکل هایConnection Oriented

معرفی فرآیند Three-Way Handshake در پروتکل هایConnection Oriented

معرفی فرآیند Three-Way Handshake در پروتکل هایConnection Oriented

بصورت کلی ما پروتکل ها را از نظر نوع ارتبط به دو دسته اتصالگرا یا Connection Oriented و عدم اتصال گرا یا Connectionless تقسیم بندی می کنیم ، یکی از پروتکل های بسیار معروف در بحث اتصالگرا ، پروتکل TCP یا Transmission Control Protocol است که بیشترین استفاده را در ارتباطات مهم و حیاتی در سرویس ها بر عهده دارد. TCP برای برقراری ارتباط ابتدا باید درستی و صحت ارتباط تایید شود و سپس ارتباط برقرار شود ، فرآیند برقراری ارتباط در پروتکل TCP توسط یک فرآیند سه مرحله ای به نام Three-way Handshake یا Triple-Handshake انجام می شود ، در واقع هرگاه صحبت از Three-Way Handshake شد یعنی پروتکل ها قصد برقراری ارتباط با همدیگر را دارند ، فرآیند Three-Way Handshake در پروتکلی مثل TCP به شکل زیر انجام می شود :

ابتدا سیستم درخواست کننده یا مبدا که ما آن را Source خطاب می کنیم با آدرس IP فرضی ۱۰٫۰٫۰٫۱ درخواست برقراری ارتباط خودش با آدرس مقصد یا Destination را بر روی پورت FTP به شکل ۱۰٫۰٫۰٫۳:۲۱ بر روی پورت نظر ارسال می کند که به این درخواست در اصطلاح SYN یا بسته اطلاعاتی SYN گفته می شود. SYN Packet مخفف Synchronization Packet است.
مقصد یا Destination بعد از اینکه درخواست را با استفاده از بسته اطلاعاتی SYN از مبدا دریافت کرد ، با استفاده از یک بسته اطلاعاتی به عنوان SYN/ACK به مبدا پاسخ می دهد که آماده برقراری ارتباط است . SYN/ACK مخفف کلمه های Synchronization Acknowledge است.
بسته اطلاعاتی ACK در نهایت از سمت مبدا یا Source به سمت مقصد ارسال می شود که نمایانگر دریافت کردن بسته SYN است

در نهایت بعد از اینکه Source یک بسته ACK در تایید برقراری ارتباط به Destination ارسال کرد ارتباط آماده برقراری است ، بعد از اینکه این فرآیند سه مرحله ای به درستی انجام شد به این معنی است که پورت FTP یا ۲۱ ای که ما در اینجا درخواست داده ایم بر روی سرور باز یا Open است و آماده برقراری ارتباط است ، در حالت عادی بعد از برقرار شدن ارتباط Three Way Handshake فرآیند شروع ارتباط انجام می شود اما اگر اینکار توسط یک نرم افزار اسکنر انجام شود معمولا در نهایت در صورت بسته بودن پورت مورد نظر بسته اطلاعاتی FIN یا FINISH بعد از برقراری موفقیت آمیز ارتباط ارسال می شود و یا اینکه بسته RST یا Reset توسط نرم افزار ارسال می شود تا ارتباط بسته شود. همانطور که گفتیم این فرآیند در تمامی پروتکل های Connection oriented به این شکل انجام می شود.

اگر بخواهیم مقایسه ای داشته باشیم برای درک بهتر این موضوع کافیست ساختار برقراری یک ارتباط تلفنی قدیمی را در نظر بگیریم ، شما گوشی را بر می دارید و شماره شخص مورد نظرتان را میگیرید ( همان پورت FTP ای که درخواست دادیم ) سپس بعد از برقراری ارتباط تلفنی و برداشتن گوشی تلفن شخص مورد نظر پاسخ می دهد الو بفرمایید ( شما میگید الو از بندست D: ) این کلمه الو همان SYN/ACK است و در نهایت شما می گویید سلام ، میخواستم در خصوص موضوعی با شما صحبت کنم و این همان فرآیند ACK آخر است که ارتباط ما آغاز می شود و صحبت های دو نفر از اینجا شروع می شود
تصویر مربوط به ارتباط Three-Way Handshake در TCP

 

FLAG های مختلف ارتباطی در TCP Connection

در ارتباطات استانداردی که در پروتکل TCP انجام می شود اولین قسمتی که برای برقراری ارتباط بررسی می شود در ساختار بسته اطلاعاتی قسمتی به نام TCP Packet Header و به ویژه قسمتی به نام FLAG است ، در واقع قسمت FLAG ابتدا بررسی می شود و بعد از بررسی های لازم ارتباط بین سیستم ها برقراری می شود و دستورات به سیستم ها داده می شود ، در این قسمت از بسته اطلاعاتی FLAG های مختلفی دیده می شوند که مهمترین آنها به شرح زیر می باشند :

SYN : این FLAG به معنی Synchronization است و اطلاع رسانی در خصوص ارسال یک Sequence Number جدید می باشد
ACK : این FLAG به معنی Acknowledge است و تاییده دریافت یک ارتباط و شناسایی Sequence Number بعدی می باشد
URG : این FLAG به معنی Urgent است و به معنی پردازش سریع داده های موجود در دستور در سریعترین زمان ممکن است
FIN : این FLAG به معنی FINISH با پایان است و اعلام می کند که دیگر قرار نیست بسته اطلاعاتی به سمت مقصد ارسال شود
RST : این FLAG به معنی RESET است و همانطور که از نامش هم پیداست برای RESET کردن ارتباط مورد استفاده قرار می گیرد

اسکن کردن با SYN یا SYN Scanning معمولا با استفاده از سه FLAG معروف SYN و ACK و RST انجام می شود.شما می توانید با استفاده از این FLAG ها و بعضا دستکاری کردن بسته های اطلاعاتی ارسالی به سمت سرور اطلاعات بسیار خوبی در خصوص پورت ها و سرویس های سیستم هدف بدست بیاورید که در فرآیند Enumeration بیشتر انجام می شود. تصویر محل قرارگیری Flag ها در پروتکل TCP را در بالا می توانید مشاهده کنید که در قسمت Header قرار گرفته است

 

منبع : ITPRO

 

https://www.favaafzar.com/5581/articles/291272-1-2.aspx

 

اشتراك گذاری نوشته

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *