مفاهیم شبکه ، کدنویسان

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

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

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

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

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

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

برچسب ها

, ,

محصولات پیشنهادی


نظرات کاربران


نظرات برای آموزش مفاهیم شبکه های رایانه ای | بدون نظر »

کاربر عزیز، لطفاً دیدگاه ارزشمند خود را از طریق فرم زیر برای ما ارسال کنید:

درباره کدنویسان
آکادمی کدنویسان جهت کمک به دانشجویان رشته های کامپیوتر و فناوری اطلاعات و همه علاقمندان به طراحی و برنامه نویسی برای ویندوز، وب و موبایل ایجاد شده است.
بیشتر آموزش های سایت کدنویسان، بصورت رایگان ارائه شده است و بعضی بسته های آموزشی تصویری و نیز نرم افزارهای پیاده سازی شده در ازای پرداخت، قابل دانلود هستند.
هر گونه نظر، انتقاد یا پیشنهادی در مورد مطالب یا عملکرد کدنویسان دارید، حتما با ما در میان بگذارید.
نمادهای اعتماد ما


تماس با ما
  • شماره همراه : ۰۹۱۵۱۶۰۴۰۶۸
  • آی دی تلگرام : @mmoha94
  • پست الکترونیکی : mohammadi.sm@gmail.com
  • آدرس پستی : بیرجند، خیابان پیروزی، پیروزی ۹، پلاک ۲۸
کلیه حقوق متعلق به سایت کدنویسان است، انتشار و کپی برداری از مطالب این سایت غیرمجاز بوده و پیگرد قانونی دارد.