پروتکل کنترل انتقال (TCP) استانداردی است که نحوه برقراری و حفظ یک مکالمه شبکهای که برنامهها از طریق آن بتوانند دادهها را مبادله کنند، تعریف میکند.TCP با پروتکل اینترنت (IP) که چگونگی ارسال بستههای داده توسط رایانهها به یکدیگر را تعریف میکند، کار میکند.
TCP و IP قوانین اساسی هستند که اینترنت را تعریف میکنند. کارگروه مهندسی اینترنت (IETF) پروتکل TCP را در سند RFC به شماره 793 تعریف میکند.
پروتکل کنترل انتقال چگونه کار میکند؟
TCP یک پروتکل اتصالگرا است، به این معنی که یک اتصال ایجاد و حفظ میشود تا زمانی که برنامههای کاربردی در دستگاه مورد نظر، تبادل پیام را به پایان برسانند.
TCP اقدامات زیر را انجام میدهد:
- نحوه شکستن دادههای برنامه به بستههایی که شبکه بتواند آنها را تحویل دهند، تعیین میکند.
- بستهها را به لایه شبکه فرستاده و از آن میپذیرد.
- کنترل جریان را مدیریت میکند.
- ارسال مجدد بستههای رها شده یا مخدوش را کنترل میکند، زیرا قرار است امکان ارسال دادههای بدون خطا را فراهم کند.
- تمام بستههایی که میرسند را تایید میکند.
در مدل OSI، پروتکل TCP بخشهایی از لایه 4 (لایه انتقال) و بخشهایی از لایه 5 (لایه Session) را پوشش میدهد.
هنگامی که یک وب سرور یک فایل HTML را برای مشتری ارسال میکند، از پروتکل HTTP برای انجام این کار استفاده میکند. لایه برنامه HTTP از لایه TCP میخواهد که اتصال را تنظیم کرده و فایل را ارسال کند.
پشته TCP فایل را به بستههای داده تقسیم کرده، آنها را شمارهگذاری میکند و سپس آنها را به صورت جداگانه به لایه IP برای تحویل ارسال میکند.
اگرچه هر بسته در انتقال، آدرس IP مبدا و مقصد یکسانی دارد اما ممکن است بستهها در چندین مسیر ارسال شوند.
لایه برنامه TCP در کامپیوتر مشتری منتظر میماند تا تمام بستهها وارد شوند. سپس آنهایی را که دریافت میکند تأیید کرده و بر اساس شماره بستههای از دست رفته (ارسال نشده یا مفقود شده) درخواست میکند که آنهایی را که دریافت نکرده، دوباره ارسال کند.
سپس لایه TCP، بستهها را در یک فایل مونتاژ نموده و فایل را به برنامه دریافت کننده تحویل میدهد.
مقایسه TCP و UDP
فرآیند تشخیص خطا که در آن TCP بستهها را پس از رسیدن، مجددا ارسال و سفارش میدهد، میتواند باعث ایجاد تاخیر در جریان TCP شود.
برنامههای بسیار حساس به زمان، مانند VoIP، پخش ویدیو و بازی، عموماً به فرآیند انتقالی مانند پروتکل دیتاگرام کاربر (UDP) متکی هستند، زیرا با عدم مرتبسازی مجدد بستهها یا ارسال مجدد دادههای از دست رفته، تأخیر و نوسان را کاهش میدهد.
UDP به عنوان یک پروتکل دیتاگرام یا پروتکل بدون اتصال شناخته میشود، زیرا هیچ راهی برای تشخیص اینکه آیا هر دو برنامه ارتباط رفت و برگشت خود را به پایان رساندهاند یا خیر ندارد.
به جای تصحیح بستههای داده نامعتبر (مانند کاری که TCP انجام میدهد)، UDP آن بستهها را دور میاندازد و برای تشخیص دقیقتر خطا به لایه برنامه رجوع میکند.
هدر یک دیتاگرام UDP حاوی اطلاعات بسیار کمتری نسبت به هدر بخش TCP است. همچنین هدر UDP به دلیل کاهش تاخیر، پردازش بسیار کمتری را در لایه انتقال انجام میدهد.
TCP برای چه مواردی استفاده میشود؟
TCP برای سازماندهی دادهها به گونهای استفاده میشود که انتقال امن بین سرور و مشتری را تضمین کند. این امر یکپارچگی دادههای ارسال شده از طریق شبکه را بدون توجه به مقدار آن، تضمین میکند.
به همین دلیل، از آن برای انتقال دادهها از سایر پروتکلهای سطح بالاتر که نیاز به دریافت تمام دادههای ارسال شده دارند، استفاده میشود.
نمونههایی از این پروتکلها عبارتند از:
- پوسته امن (SSH)، پروتکل انتقال فایل (FTP) و Telnet: برای اشتراک گذاری فایل همتا به همتا، و در مورد Telnet، ورود به رایانه کاربر دیگر برای دسترسی به فایل.
- پروتکل انتقال نامه ساده (SMTP)، پروتکل اداره پست (POP) و پروتکل دسترسی به پیام اینترنتی (IMAP): برای ارسال و دریافت ایمیل.
- HTTP: برای دسترسی به وب.
این نمونهها همگی در لایه کاربردی پشته TCP/IP وجود دارند و دادهها را به سمت پایین به TCP در لایه انتقال ارسال میکنند.
چرا TCP مهم است؟
TCP مهم است زیرا قوانین و رویههای استاندارد را برای نحوه انتقال اطلاعات از طریق اینترنت ایجاد میکند. این در حال حاضر پایه و اساس اینترنت است و تضمین میکند که انتقال دادهها بدون توجه به مکان، سخت افزار یا نرم افزار درگیر، به طور یکنواخت انجام شود.
TCP انعطافپذیر و بسیار مقیاسپذیر است، به این معنی که پروتکلهای جدیدی را میتوان به آن معرفی کرد تا آنها را در خود جای دهد. همچنین غیر اختصاصی است، به این معنی که هیچ شخص یا شرکتی مالک آن نیست.
مکان در پشته TCP/IP
پشته TCP/IP مدلی است که نحوه سازماندهی و مبادله دادهها را در شبکهها با استفاده از پروتکل TCP/IP نشان میدهد. پشته TCP/IP مجموعهای از لایهها را نشان میدهد که نمایانگر نحوه پردازش و بستهبندی دادهها توسط یک سری از پروتکلهاست که از کلاینت به سرور و بالعکس میروند.
TCP در لایه انتقال با پروتکلهای دیگری مانند UDP قرار دارد. پروتکلهای این لایه، انتقال بدون خطای دادهها را به مبدا تضمین میکنند (به غیر از UDP؛ زیرا قابلیت بررسی خطای محدودتری دارد).
مانند مدل OSI، پشته TCP/IP یک مدل مفهومی برای استانداردهای تبادل داده است. دادهها در هر لایه بر اساس عملکرد و پروتکل های انتقال دوباره بستهبندی میشوند.
درخواستها از طریق پشته، به سرور میآیند و از لایه برنامه به عنوان داده شروع میشوند. در آنجا، اطلاعات در هر لایه به بستههای مختلف تقسیم میشوند.
دادهها به روشهای زیر حرکت میکنند:
- از برنامه به لایه انتقال، جایی که به بخشهای TCP مرتب میشوند.
- به لایه اینترنت که در آن به دیتاگرام تبدیل میشوند.
- به لایه رابط شبکه که در آن دوباره به بیتها و فریمها تقسیم میشوند.
- هنگامی که سرور پاسخ میدهد، از طریق پشته به سمت بالا حرکت میکنند تا به لایه برنامه به عنوان داده برسند.
یک دیدگاه “TCP یا Transmission Control Protocol چیست؟ همه چیز در مورد پروتکل کنترل انتقال در شبکه”
Ali
می گوید:ممنون بیان مطالب توی این سایت خیلی عالیه