هر آن چیزی که در مورد پروتکل کنترل انتقال یا TCP باید بدانید
برای اینکه به شما بگوییم پروتکل TCP چیست، باید یک قصهای برایتان تعریف کنیم.
فرض کنید دو کامپیوتر میخواهند با هم دوست شوند و همکاری داشته باشند. این دو برای هدف مشترکشان باید به توافقاتی با هم برسند.آنها باید بدانند که چه زمانی میتوانند با هم ارتباط بگیرند، چطور پیامشان را بهدرستی منتقل کنند و چه زمانی به گفتوگویشان خاتمه دهند.کامپیوترها هم مثل ما آدمها با هم ارتباط برقرار میکنند اما نه از طریق زبان! بلکه با استفاده از پروتکل. یعنی کامپیوترها مجموعه قوانینی که مورد توافقشان است را وضع میکنند و به این ترتیب نحوه ارتباطگیری خود را مشخص خواهند کرد. امروزه مورد اعتمادترین پروتکل برای ارتباطگیری بین سیستمهای کامپیوتری به وسیله اینترنت، پروتکل TCP/IP است که در ادامه بیشتر از آن خواهیم گفت.
TCP چیست؟
پروتکل TCP برای اولین بار توسط وزارت دفاع آمریکا برای مشخص کردن روش ارسال و دریافت اطلاعات میان برنامه های نرم افزاری کامپیوترها ایجاد شد. برای اینکه دقیقتر بدانیم پروتکل TCP چیست ، باید به شرح مخفف آن بپردازیم.در واقع واژه TCP خلاصهشدهی Transmission Control Protocol بوده که به معنای پروتکل مدیریت انتقال دیتا است. وظیفهی این پروتکل ایجاد ارتباط میان برنامه های کامپیوتری از طریق شبکهای مثل اینترنت است.
مهندسین نرم افزار، اپلیکیشنهایی که تاکید دارند دیتا بصورت سالم و کامل به مقصد برسد را طوری برنامه نویسی می کنند که دادهها را به پروتکل TCP تحویل دهند. زیرا این پروتکل به گونه ای روند ارسال دیتا را مدیریت می کند که مطمئن شود داده ها بصورت کامل به دست پروتکل TCP در کامپیوتر مقصد می رسد.
در واقع به کمک پروتکل TCP شما میتوانید به راحتی اطلاعات خود را میان دو یا چند صد کامپیوتر به صورت همزمان در سراسر دنیا ارسال کنید. با استفاده از این پروتکل بستههای اطلاعاتی بین چند دسته تقسیم میشوند تا اطلاعات در نهایت صحت و دقت به مقصد ارسال شوند. پروتکل TCP بعد از اینکه دیتا را از نرم افزار مورد نظر در لایه اپلیکیشن دریافت می کند آن را به قطعه های کوچکتر تقسیم می کند و به هر قطعه برچسبی می زند که به آن TCP Header گفته می شود. پروتکل TCP اطلاعاتی درباره دیتای تکه شده در قسمت Header ثبت می کند. این اطلاعات شامل آدرس برنامه فرستنده دیتا (tcp source port)، آدرس برنامه گیرنده دیتا (tcp destination port) و ... است. مزیت استفاده از پروتکل TCP در مقایسه با پروتکل UDP (پروتکلی که مانند tcp مدیریت انتقال دیتا بین دو برنامه کامپیوتری را انجام می دهد.) پشتیبانی از ویژگی error recovery است.TCP به کمک این ویژگی مطمئن می شود که دیتا سالم و کامل به مقصد رسیده است در غیر اینصورت آن را دوباره برای مقصد ارسال می کند.
IP چیست؟
دستگاههایی در شبکه های کامپیوتری وجود دارند که نام آنها روتر (Router) است. روترها داده ها را برمبنای آدرسی که به آن IP گفته می شود مسیردهی می کنند. بنابراین هر کامپیوتر در شبکه یک آدرس یکتا به نام IP دارد. تکه های دیتا توسط پروتکل TCP به پروتکل IP تحویل می شود. این پروتکل نیز مانند tcp برچسبی به دیتا می چسباند که IP Header نامیده می شود. در این هدر آدرس آیپی کامپیوتر مبدا و مقصد ثبت می شود. وقتی روترها بسته های آیپی را دریافت می کنند آدرس آیپی کامپیوتر مقصد را از داخل IP Header خوانده و بسته را به سمت مقصد مسیردهی می کنند. بنابراین IP یک آدرس است که روترها براساس آن ترافیک را به سمت مقصد هدایت می کنند.
تفاوت TCP و IP در چه مواردی است؟
TCP/IP در واقع زبانی است که یک سیستم کامپیوتری برای دسترسی به اینترنت از آن استفاده میکند. بخش TCP چگونگی ایجاد برنامههای ارتباطی را در سرتاسر شبکه تعریف میکند و نحوه ارسال پیام به شکل بستههای کوچک را به مقصد درست، برعهده دارد. IP نیز مسیر درست را به این بستههای کوچک نشان میدهد. اگر بخواهیم یک مثال برای فهم بیشتر مطلب بزنیم، میتوانیم به ارتباط میان تماس و شماره تلفن اشاره کنیم. شماره تلفن در نقش IP قرار میگیرد و عملیات تماس نیز برعهده بخش TCP خواهد بود.
TCP/IP چگونه کار میکند؟
TCP/IP مجموعهای از پروتکلهای ارتباطی است که برای ارتباط و اتصال دستگاههای شبکه در اینترنت استفاده میشود. به زبانی سادهتر TCP/IP راهی است که یک کامپیوتر برای دسترسی به اینترنت از آن استفاده میکند. برای مثال پروتکل TCP ارسال و دریافت یک ایمیل یا دانلود و آپلود یک فایل را مدیریت می کند.
پروتکل TCP از چهار لایه تشکیل شده است که کار ارسال اطلاعات را به صورت سالم و کامل به برنامه کامپیوتری مقصد انجام میدهند. این چهار لایه به شرح زیر هستند:
لایه Datalink:
این لایه بخش فیزیکی کار را برعهده دارد. به این ترتیب که ارسال و دریافت اطلاعات را به وسیله کارت شبکه کابلی و بیسیم انجام میدهد.
لایه اInternet:
این لایه کنترل حرکت بستههای اطلاعاتی در سطح شبکه را برعهده دارد.
لایه Transport:
این لایه اتصال داده درست و قابل اعتماد را از رایانهای به رایانهی دیگر ممکن میکند. در ابتدا در کامپیوتر مبدا دادهها توسط پروتکل TCP به تکه های کوچکتری تقسیم می شود سپس در کامپیوتر مقصد تکه های دیتا توسط پروتکل TCP دوباره سرهم می شود.
لایه Application:
این لایه شامل سرویسهای کاربردی است. لایه اپلیکیشن در ارتباط با کاربر است و نیاز به ارتباط با شبکه دارد. برای مثال فرایند ایمیل زدن.
پروتکل TCP اطلاعات را از برنامههای کاربردی در لایه اپلیکیشن دریافت و در صورت بزرگ بودن دادهها (بیشتر از 1460 بایت) آنها را به قطعات کوچکتر تقسیم میکند تا حمل آنها در شبکه به راحتی انجام شود. بعد از خرد کردن اطلاعات، مشخصات مورد نظر مثل شماره پورت برنامه مبدا و مقصد، شماره ترتیب داده، مقادیر TCP Flag، مقدار Checksum و … را در هدر معین میکند. پس از آماده شدن TCP Segment (به tcp payload و tcp header گفته می شود)، پروتکل IP آن را تحویل و به سمت مقصد آدرس دهی و ارسال می کند. TCP به اپلیکیشن ارسال کننده دیتا تضمین می دهد آن را به صورت سالم و کامل به مقصد برساند.