TCP یا Transmission Control Protocol، یک پروتکل لایه انتقال است که وظیفه آن این است که تعیین کند ارتباطات شبکهای میان دستگاهها (کامپیوتر، روتر و …) به چه صورت شروع شود و به چه صورت ادامه یابد.
TCP یک پروتکل Stateful هست. به این معنی که برای ارتباط بین دو دستگاه در TCP، ابتدا یک اتصال یا Connection بین این دو برقرار و تا انتها نگهداری میشود. از این به بعد دو سیستم بر بستر این Connection با یکدیگر تبادل داده میکنند. این اتصال تا زمانی ادامه پیدا میکند که یکی از دو طرف ارتباط، به آن خاتمه ببخشد.
از دیگر وظایف TCP برای انتقالِ داده، این است که چطور دادهها را بصورت بستههای قابل انتقال خرد کند، کنترل جریان (Flow Control) کند و تضمین کند که تمامی دادهها به درستی به مقصد رسیدهاند. این دقیقا برخلاف رفتار UDP هست که در آن تضمینی برای رسیدن تمامی بستهها به مقصد وجود ندارد.
فرض کنید میخواهید وارد یک وبسایت شوید. مرورگر را باز میکنید، آدرس سایت را میزنید. در پشت صحنه چه اتفاقی رخ میدهد؟ قرار است مرورگر شما به سرور مقصد، یک درخواست ارسال کند و در جواب آن، یک صفحه HTML دریافت کند.
ابتدا باید یک ارتباط TCP با سرور مقصد شروع شود. سپس با برقراری این ارتباط، درخواست ما به سرور میرسد و سرور به آن پاسخ میدهد، که این پاسخ همان صفحه HTML است. نکتهای که اینجا قابل بحث است، این است که مکانیزم TCP برای برقراری ارتباط چیست؟
برای برقراری یک ارتباط بر بستر TCP ابتدا باید دست-دهی 3 گانه انجام شود. دست-دهی 3 گانه یا همان TCP Handshake، مکانیزمی است که طی آن یک ارتباط TCP شوع میشود.
این مکانیزم بسیار شبیه به برقراری ارتباط بین انسان هاست. ابتدا یک نفر یک مکالمه را شروع میکند و بعد از اینکه نفر دوم جواب داد، مکالمه ادامه پیدا میکند.
مطابق شکل زیر، ابتدا کاربر یک درخواست را بوسیله یک پیام SYN به سمت سرور ارسال میکند به این معنی که میخواهم یک ارتباط را شروع کنم. سرور درخواست کاربر را بررسی میکند و درصورتی که درخواست مجاز باشد، پیام SYN-ACK را درجواب ارسال میکند. این جواب به این معنی است که با درخواست شروع ارتباط از سمت شما موافقم و میتوانید ارتباط را شروع کنید. در نهایت کاربر میگوید که پیام تو را دریافت کردم و به این صورت ارتباط شروع میشود.
ترجنس | thregence.ir
آکادمی ترجنس | edu.thregence.ir
اینستاگرام | instagram.com/thregence
تلگرام | t.me/thregence
یوتوب | https://bit.ly/30mGowo
آپارات | aparat.com/thregence