وباکا

آموزش تخصصی برنامه نویسی وب

برقراری ارتباط در پروتکل TCP از روش دست تکانی سه مرحله ای (Three way handshake) استفاده میکند. در این نوشته به توضیح روش انجام دست تکانی در پروتکل tcp می پردازیم

در مرحله ی اول طرف شروع کننده ی ارتباط (در مدل client/server به سیستم انتهایی شروع کننده ی ارتباط client یا کارخواه گفته میشود) یک بسته ی TCP خالی از داده را تولید کرده و ارسال میکند. پرچم SYN در این بسته 1 شده است و مقدار بیت ACK آن 0 است. در فیلد sequence number یا شماره ی ترتیب عدد client_isn قرار داده میشود که یک مقدار تصادفی میباشد. به نوعی شماره ی ترتیب انتخاب شده، با استفاده از این بسته به اطلاع server یا کارپذیر رسانده میشود.

در مرحله ی دوم، پس از دریافت بسته ی تقاضا توسط کارپذیر، در صورتی که این سیستم انتهایی تمایلی به برقراری ارتباط نداشته باشد، تصمیم خود را با ارسال یک بسته ی TCP Reset (بسته ی دارای پرچم RST برابر با 1) به اطلاع کارخواه میرساند. در صورت تمایل به برقراری ارتباط، یک بسته توسط آن تولید میشود که مقدار بیتهای SYN و ACK آن برابر با 1 است و مقدار acknowledgement number در آن برابر با client_isn + 1 است. مقدار شماره ی ترتیب اولیه ( server_isn ) در این بسته به صورت تصادفی انتخاب میشود و مشخص کننده ی شماره ی ترتیب برای داده های ارسالی توسط کارپذیر است. ارسال این بسته توسط کارپذیر به معنای پذیرش ارتباط مورد نظر است.

در مرحله ی سوم، کارخواه نیز با تولید یک بسته ی دیگر شروع ارتباط را تصدیق میکند. بیت SYN در این بسته برابر با 0 است و بیت ACK دارای مقدار 1 میباشد. شماره ی ترتیب برای آن برابر با client_isn + 1 است. فیلد acknowledgement number نیز شامل مقدار server_isn + 1 میباشد. پس از اجرای این مراحل، ارسال و دریافت دادهها توسط طرفین تا هنگامی که ارتباط با اطلاع طرفین خاتمه داده نشده است آزاد است.

دست تکانی در پروتکل tcp

در نهایت، طرفی که داده هایش برای ارسال تمام شده است یک بسته ی TCP ارسال مینماید که فیلد FIN در سرآیند آن 1 شده است. طرف مقابل درخواست را دریافت میکند و با خاتمهی یک طرفه ی آن موافقت مینماید. با توجه به اینکه ارتباط به صورت یکطرفه خاتمه یافته است، طرف مقابل میتواند تا جایی که داده دارد آنها را ارسال کند و نهایتاً در آخرین بسته بیت FIN را 1 بگذراد تا پس از تصدیق آن (Acknowledgement ) ارتباط برای دو طرف خاتمه یابد.

دیدگاهتان را بنویسید

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

فهرست مطالب