لایه انتقال

در شبکه‌های رایانه‌ای، **لایه انتقال transport layer** سرویس‌های ارتباطی مبدأ به مقصد یا end-to-end را برای برنامه‌های کاربردی موجود در معماری لایه بندی شده پروتکل‌ها و اجزاء شبکه فراهم می‌آورد. لایه انتقال سرویس‌های مطمئنی از قبیل پشتیبانی از جریان داده اتصال گرا، قابلیت اطمینان، کنترل جریان و تسهیم یا مالتی پلکسینگ را ارائه می‌نماید.

لایه‌های انتقال هم در () مدل TCP/IP، که مبنا و بنیان اینترنت می‌باشد، و هم مدل OSI موجود می‌باشند. تعریف لایه انتقال در این دو مدل کمی با یکدیگر تفاوت دارد. این مقاله در اصل به تعریف لایه انتقال در مدل TCP/IP اشاره دارد.

معروف‌ترین پروتکل لایه انتقال پروتکل کنترل انتقال یا TCP) Protocol. این پروتکل نام خود را از مجموعه پروتکل اینترنت یا همان TCP/IP وام گرفته‌است. از این پروتکل در انتقالات اتصال گرا استفاده می‌شود درحالی‌که پروتکل بدون اتصال UDP برای انتقالات پیام ساده مورد استفاده قرار می‌گیرد. TCP پروتکل پیچیده تری است و این پیچیدگی به واسطه طراحی وضعیت محوری است که در سرویس‌های انتقالات قابل اطمینان و جریان داده تعبیه شده‌است. از دیگر پروتکل‌های عمده در این گروه می‌توان به پروتکل کنترل ازدحام دیتاگرام DCCP) Datagram CongestionControl Protocol) و پروتکل انتقال کنترل جریان SCTP) Stream Control Transmission Protocol) اشاره نمود.

در پروتکل انتقال ابرمتن به دنباله‌ای از درخواست‌ها و پاسخ‌ها جلسه گفته می‌شود. کلاینت با ایجاد یک اتصال هدایت انتقال بر روی یک درگاهِ از پیش تعیین شده بر روی سرور (معمولاً درگاه شماره؛ فهرست عددهای درگاه و)، جلسه را آغاز می‌کند. سرور وب همواره بر روی درگاه در انتظار درخواست‌های کلاینت‌ها پاسخ در پروتکل انتقال ابرمتن به دنباله‌ای از درخواست‌ها و پاسخ‌ها جلسه گفته می‌شود. کلاینت با ایجاد یک اتصال هدایت انتقال () بر روی یک درگاهِ از پیش تعیین شده بر روی سرور (معمولاً درگاه شماره؛ فهرست عددهای درگاه و)، جلسه را آغاز می‌کند. سرور وب همواره بر روی درگاه در انتظار درخواست‌های کلاینت‌ها پاسخ. بعد از دریافت درخواست ارسال شده، سرور با ارسال یک خط وضعیت و بدنه، پاسخ کلاینت را به او بازمی‌گرداند. بدنه بستهٔ پاسخ معمولاً حاوی منبع درخواست شده‌است؛ با این حال از آن برای ارسال خطا و اطلاعات دیگر نیز استفاده می‌شود. سرویس‌ها بعد از دریافت درخواست ارسال شده، سرور با ارسال یک خط وضعیت و بدنه، پاسخ کلاینت را به او بازمی‌گرداند. بدنه بستهٔ پاسخ معمولاً حاوی منبع درخواست شده‌است؛ با این حال از آن برای ارسال خطا و اطلاعات دیگر نیز استفاده می‌شود.

## سرویس‌ها
سرویس‌های زیادی وجود دارد که می‌تواند توسط یک پروتکل در لایه انتقال ارائه شود که می‌توان به موارد زیر اشاره نمود:
* ارتباط اتصال گرا یا Connection-oriented communication: این نوع ارتباط را که می‌توان آن را جریان داده نیز تفسیر کرد می‌تواند مزایای متعددی را برای برنامه کاربردی به ارمغان بیاورد. در حالت عادی کار کردن با آن راحتتر از کار کردن با ارتباط بدون اتصال یا Connection-less است. یکی از پروتکل‌هایی که این نوع سرویس را ارائه می‌دهد پروتکل TCP می‌باشد.
* مرتب‌سازی بایتی یا Byte Orientation: به جای اینکه برنامه کاربردی پیام‌های دریافت شده از سیستم ارتباطی را بر اساس فرمتی نامشخص پردازش کند، اغلب جریان داده را به صورت ترتیبی از بایت‌ها می‌خواند که این کار به مراتب آسان‌تر خواهد بود. این ساده‌سازی به برنامه کاربردی امکان می‌دهد که بتواند با فرمت‌های مختلفی از پیام‌ها کار کند.
* تحویل با ترتیب یکسان: لایه شبکه معمولاً قادر به تضمین این مسئله نیست که داده‌های بسته‌های دریافت شده دقیقاً همان ترتیبی را دارند که از سیستم ارسال‌کننده فرستاده شده‌اند. وظیفه مرتب‌سازی بسته معمولاً در لایه انتقال صورت می‌پذیرد.
* قابلیت اطمینان: به دلیل خطاها و تراکم‌های شبکه‌ای احتمال اینکه بسته‌های اطلاعاتی از بین بروند وجود دارد. با استفاده از تکنیک‌های کد شناسایی خطا از قبیل مجموع مقابله‌ای یا checksum، پروتکل انتقال بررسی می‌کند که آیا داده‌ها سالم هستند یا خیر. این پروتکل نتیجه بررسی خود را به‌وسیلهٔ ارسال کند ACK (به معنای صحت داده‌ها) و NACK (به معنای خرابی داده‌ها) به فرستنده اعلام می‌کند. ممکن است طرح‌های درخواست تکرار خودکار برای ارسال دوباره اطلاعات آسیب دیده یا از بین رفته مورد استفاده قرار گیرد.
* کنترل جریان یا Flow Control: بعضی اوقات نرخ انتقال اطلاعات بین دو نود بایستی مدیریت شود تا از ارسال سریع تر فرستنده نسبت به گیرنده اطلاعات که می‌تواند منجر به سرریز بافر داده‌ای گیرنده شود جلوگیری به عمل آید.
* پیشگیری از تراکم یا Congestion Avoidance : کنترل تراکم می‌تواند ترافیک وارد شده به شبکه مخابراتی را مدیریت کرده و با اعمال ممنوعیت ورود هر نوع امکان ارتباطی یا پردازشی از سوی نودهای شبکه تصادم یا تراکم را کاهش دهد. همچنین این سرویس می‌تواند با در اختیار گرفتن منابع، باعث کاهش نرخ ارسال بسته‌های اطلاعاتی شود. برای مثال، درخواست تکرار خودکار می‌تواند شبکه را در حالتی متراکم نگه دارد؛ این موقعیت می‌تواند با اعمال پیشگیری‌های تراکمی به کنترل جریان به حداقل برسد. با این کار مصرف پهنای باند از همان ابتدای انتقال اطلاعات یا بعد از ارسال مجدد بسته‌ها در سطحی پایین و ایمن باقی خواهد ماند.
* تسهیم یا مالتی پلکسینگ (Multiplexing): پورتها می‌تواند چندین مقصد پایانی را بر روی یک نود فراهم آورد. برای مثال، نام موجود در آدرس پستی می‌تواند نمایانگر نوعی از تسهیم و تفکیک بین چندین گیرنده در یک محل باشد. برنامه‌های کاربردی بر روی پورت‌های مخصوص به خودشان به اطلاعات گوش می‌دهند که این کار این امکان را فراهم می‌آورد که از چندین سرویس شبکه به صورت هم‌زمان استفاده کنیم. این سرویس بخشی از لایه انتقال در مدل TCP/IP است، اما در مدل OSI این سرویس بخشی از لایه نشست می‌باشد.

## تحلیل
لایه انتقال مسئولیت تحویل اطلاعات به پردازش کاربردی مناسب بر روی کامپیوتر میزبان را بر عهده دارد. این کار شامل تسهیم آماری داده‌ها از پردازش‌های کاربردی مختلف می‌شود، به عبارت ساده‌تر تشکیل بسته‌های داده‌ای و افزودن شماره پورت‌های مبدأ و مقصد در هدر لایه انتقال هر یک از بسته‌های داده‌ای به عهده این لایه می‌باشد. شماره پورت‌ها به همراه شماره IP مبدأ و مقصد یک سوکت شبکه را شکل می‌دهند. سوکت آدرسی تشخیصی متعلق به ارتباطات پردازش به پردازش است. در مدل OSI این کار توسط لایه نشست صورت می‌پذیرد.

برخی از پروتکل‌های لایه انتقال نظیر TCP، و نه UDP، از مدارهای مجازی Virtual circuit پشتیبانی می‌کنند؛ یعنی ارتباطی اتصال گرا را بر روی شبکه دیتاگرام فراهم می‌آورند. زمانی‌که ارتباطات بسته‌ای از دید پردازش‌های کاربردی پنهان هستند از یک جریان بایتی استفاده خواهد شد. این کار از مراحل زیر تشکیل می‌شود: برقرارسازی ارتباط، تقسیم جریان داده‌ای به بسته‌هایی که بخش یا segment نامیده می‌شوند، شماره‌گذاری بخش‌ها و مرتب‌سازی مجدد ترتیب داده‌ها.

در نهایت، بعضی از پروتکل‌های لایه انتقال نظیر TCP و نه UDP، ارتباط مبدأ به مقصد قابل اطمینانی را فراهم می‌آورند. عمل کشف خطا با استفاده از تکنیک‌هایی مانند کد شناسایی خطا و پروتکل درخواست تکرار خودکار (ARQ) انجام می‌پذیرد. پروتکل ARQ عمل کنترل جریان را نیز برعهده دارد که ممکن است با سرویس پیشگیری از تراکم ترکیب شود.

UDP پروتکل بسیار ساده‌ای است. از UDP می‌توان در Broadcasting و Multicasting استفاده جست زیرا انتقال دوباره برای بخش اعظمی از نودها امکان‌پذیر نیست. UDP معمولاً خروجی بالاتر و میزان تأخیر کمتری را تولید می‌کند و بنابراین از آن می‌توان در ارتباطات چندرسانه‌ای زنده که در آن از دست رفتن معقول بسته‌های اطلاعاتی قابل پذیرش باشد استفاده کرد، مانند IP-TV و IP-telephony و نیز بازی‌های رایانه‌ای برخط.

در بسیاری از شبکه‌های رایانه‌ای که مبتنی بر IP نیستند نظیر اکس ۲۵ (X.۲۵)، بازپخش قاب (Frame Relay) و ATM یا حالت انتقال ناهمگام، ارتباط اتصال گرا به جای اینکه در لایه انتقال پیاده‌سازی شود در لایه شبکه یا لایه پیوندداده تعبیه می‌شود. در اکس ۲۵، در مودم‌های شبکه تلفنی و نیز در سیستم‌های ارتباطی بی‌سیم، ارتباط نود به نود قابل اطمینان در پروتکل‌های لایه‌های پایین‌تر تعبیه می‌شوند.

مدل OSI پنج کلاس از پروتکل‌های انتقال را تعریف می‌کند، *TP۰* با کمترین امکان کشف خطا تا *TP۴* که برای شبکه‌های با قابلیت اطمینان پایین‌تر طراحی شده‌است.

## پروتکل‌ها
تعریف دقیقی که بتوان به‌واسطه آن پروتکل‌های لایه انتقال را توصیف کرد وجود ندارد. موارد زیر فهرست کوچکی از پروتکل‌های این لایه هستند
* ATP، پروتکل تراکنش AppleTalk
* DCCP، پروتکل کنترل ازدحام دیتاگرام
* FCP، پروتکل کانال فیبری
* IL، پروتکل IL
* NBF، پروتکل فریم‌های NetBIOS
* RDP، پروتکل دیتاگرام قابل اطمینان
* SCTP، پروتکل انتقال کنترل جریان
* SPX، تبادل بسته مرحله‌ای
* SST، انتقال جریان ساختاریافته
* TCP، پروتکل کنترل انتقال
* UDP، پروتکل داده‌نگار کاربر
* UDP Lite
* µTP، پروتکل میکرو انتقال

## جدول مقایسه‌ای لایه انتقال
## مقایسه پروتکل‌های انتقال در مدل OSI
## منابع
 

رده:پروتکل‌های اواس‌آی
رده:پروتکل‌های اینترنت
رده:پروتکل‌های لایه حمل