اتصال TCP یعنی چه!

خب در پست های قبل گفتیم که پروتکل IP چیه و بعد برای چی و چطور پروتکلی مثل TCP بر روی اون لایه دیگری رو تشکیل میده.
اما یک اصطلاحی هست که ظاهرا بعضی ها رو دچار پرسش و ابهام و مشکل میکنه؛ اون اینه که میگیم اتصال TCP. خب این اتصال دقیقا یعنی چی؟ در توضیحاتی که ما راجع به پروتکل IP و TCP داده بودیم، اشاره ای به اتصال نشده بود.
وقتی اسم اتصال میاد آدم مثلا یاد سیم هایی میفته که باید بصورت فیزیکی به جایی وصل بشن، یا کلیدها/سویچ های فیزیکی ای که باید وصل بشن تا یک مدار بین دو طرف شکل بگیره. خب در قدیم ارتباطات به همین شکل بوده. مثلا شبکه تلفن معمولی همینطور هست که ابتدا بین دو طرف یک مدار و اتصال الکتریکی واقعی/فیزیکی بوجود میاد، بعد سیگنال های صوتی به سیگنال های الکتریکی تبدیل شده و در طول این مدار جریان پیدا میکنن.

اما شبکه هایی مثل اینترنت اینطوری نیستن و نیازی نیست یک خط و مدار مستقیم و اختصاصی بین دو طرف ارتباط ایجاد بشه. بلکه داده های همه مشترکان اینترنت بصورت بسته های IP متعددی درمیان و در شبکه ای پیچیده و تار عنکبوت گونه به وسعت جهانی رها میشن که بعد هر بسته از هر راهی که در دسترس باشه توسط تعداد نامعلومی رایانه ها و تجهیزات واقع در طول مسیر نهایتا به مقصد خودش هدایت میشه. بطور معمول هیچ مسیر اختصاصی ای برای دو طرف یک ارتباط وجود نداره، بلکه هر مسیر عمومی اینترنت مثل یک اتوبان است که بسته های زیادی با مبداء و مقصدهای مختلف همزمان از طریق اون دارن رد و بدل میشن. بخاطر همین اختصاصی نبودن است که میشه از ظرفیت اتصالات حداکثر بازدهی رو حاصل کرد و هزینه ارتباطات اینترنتی خیلی کمتر از هزینه ارتباطات قدیمی و کلاسیک مثل شبکه تلفن کلاسیک است. البته اینترنت به شما هیچ تضمینی هم نمیده که مثلا گاهی با افت سرعت یا حتی اختلال در ارتباطات مواجه نشید، درحالیکه مثلا یک ارتباط تلفنی چون روی یک مسیر و مدار اختصاصی صورت میگیره، همیشه یک پهنای باند و کیفیت قابل قبولی رو تامین میکنه (البته باید توجه داشت که در شرایط ترافیک سنگین ممکنه عدهء زیادی بخاطر اشغال بودن تمام مدارهای ارتباطی ممکن در یک زمان، مدت زیادی منتظر آزاد شدن این منابع بمونن). تلفن یا مدار و اتصال با طرف مقابل رو به شما میده و یا نمیده، و اگر داد با کیفیت تضمین شده است، ولی در شبکه های مبتنی بر بسته های اطلاعاتی مثل اینترنت، کیفیت اینقدر تضمین شده نیست و بصورت همزمان بین همه به اشتراک گذاشته میشه و اگر ترافیک به هر علتی بیش از حد ظرفیت مدارها زیاد بشه، سرعت و کیفیت اینترنت برای همه مشترکان افت میکنه.
خب پس این اتصال TCP چیه که ما ازش صحبت میکنیم؟ اگر TCP هم زیر کار داره از همین بسته های IP استفاده میکنه و هیچ اتصال فیزیکی و مستقیمی در کار نیست، پس منظور ما از اینکه در TCP ابتدا اتصال برقرار میشه چیه؟ و مثلا میگیم برعکس، پروتکل UDP بدون اتصال است.
خب منظور از این اتصال درواقع یه چیز نسبتا ساده ایه. در پروتکل TCP، قبل از هر کاری و ارسال هر داده ای، سه بسته IP بین دو طرف ارتباط رد و بدل میشه که حالا محتویات و جزییات این بسته ها برای بحث ما مهم نیست و فقط بگم که این تبادل اولیه باعث میشه مشخص بشه سیستم مقصد در دسترس و آماده پذیرش ارتباط است و داده های ما رو میپذیره. این تبادل اولیه باید حتما صورت بگیره وگرنه بسته های IP پروتکل TCP در مقصد بعنوان معتبر شناسایی و پذیرفته نمیشن.
پس این اتصال فقط کارش مطلع شدن از در دسترس بودن و پذیرا بودن سیستم مقصد است و مثل اینه که طرف اول به سیستم مقصد (طرف دوم) میگه من الان میخوام داده هایی رو بهت ارسال کنم، سیستم مقصد هم میگه Ok من آماده ام داده ها رو بفرست؛ معدودی پارامترهای اولیه هم در این جریان تنظیم میشن.
پس ما قبل از شروع ارسال داده های اصلی، با سیستم مقصد تماس گرفتیم و هماهنگ کردیم. به این میگن اتصال TCP (که بعد از اون هر دو طرف میتونن به هم داده ارسال کنن). وگرنه هیچ اتصال فیزیکی خاصی در کار نیست و فرق دیگری با پروتکل های بدون اتصال مثل UDP از این جهت در کار نیست. همهء این پروتکل ها در زیر کار جز ارسال و دریافت بسته های IP بر بستر شبکه/اینترنت کاری نمیکنند.
و در مقابل پروتکل UDP میگن بدون اتصال (connection-less) است. چون پروتکل UDP اینطوری هست که بدون هیچ آگاهی و هماهنگی قبلی با طرف دوم، داده ها رو ارسال میکنه، درحالیکه ممکنه سیستم مقصد اصلا وجود نداشته باشه، یا ممکنه خاموش باشه، یا ممکنه به شبکه وصل نباشه، یا ممکنه شماره پورتی که داده ها رو بهش ارسال میکنیم به هیچ برنامه در حال اجرایی در سیستم مقصد اختصاص داده نشده باشه و بنابراین با اینکه داده های ما به سیستم مقصد میرسن اما به هیچ برنامه ای تحویل داده نمیشن و هیچ کاری انجام نمیشه… ضمنا پروتکل UDP هم مثل پروتکل IP، هیچ تضمینی برای اینکه بسته ها حتما به مقصد برسن یا ترتیب دریافت اونا در سمت مقابل درست باشه نمیده، حتی اگر سیستم مقصد آماده دریافت داده ها و متصل به شبکه باشه، چون در طول مسیر ممکنه بسته ها به علل مختلف از بین برن و بهرصورت به مقصد نرسن، ممکنه زمان رسیدن اونا به مقصد کمی پس و پیش بشه، و ممکنه حتی چند کپی از یک بسته بوجود بیاد و چندین نسخه یکسان از یک بسته IP از مسیرهای متفاوت به مقصد تحویل داده بشه.

پاسخ دهید

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

*

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>