لایه انتقال

در شبکه‌های رایانه‌ای، لایه انتقال سرویس‌های ارتباطی مبدا به مقصد یا end-to-end را برای برنامه‌های کاربردی موجود در معماری لایه بندی شده پروتکل‌ها و اجزاء شبکه فراهم می‌آورد. لایه انتقال سرویس‌های مطمئنی از قبیل پشتیبانی از جریان داده اتصال گرا، قابلیت اطمینان، کنترل جریان و تسهیم یا مالتی پلکسینگ را ارائه می‌نماید.
لایه‌های انتقال هم در (RFC 1122) مدل TCP/IP، که مبنا و بنیان اینترنت می‌باشد، و هم مدل OSI موجود می‌باشند. تعریف لایه انتقال در این دو مدل کمی با یکدیگر تفاوت دارد. این مقاله در اصل به تعریف لایه انتقال در مدل TCP/IP اشاره دارد.
معروف‌ترین پروتکل لایه انتقال پروتکل کنترل انتقال یا TCP) Transmission Control Protocol) می‌باشد. این پروتکل نام خود را از مجموعه پروتکل اینترنت یا همان TCP/IP وام گرفته‌است. از این پروتکل در انتقالات اتصال گرا استفاده می‌شود در حالیکه پروتکل بدون اتصال UDP برای انتقالات پیام ساده مورد استفاده قرار می‌گیرد. TCP پروتکل پیچیده‌تری است و این پیچیدگی به واسطه طراحی وضعیت محوری است که در سرویس‌های انتقالات قابل اطمینان و جریان داده تعبیه شده‌است. از دیگر پروتکل‌های عمده در این گروه می‌توان به پروتکل کنترل ازدحام دیتاگرام DCCP) Datagram Congestion Control 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، از مدارهای مجازی پشتیبانی می‌کنند؛ یعنی ارتباطی اتصال گرا را بر روی شبکه دیتاگرام فراهم می‌آورند. زمانی‌که ارتباطات بسته‌ای از دید پردازش‌های کاربردی پنهان هستند از یک جریان بایتی استفاده خواهد شد. این کار از مراحل زیر تشکیل می‌شود: برقرارسازی ارتباط، تقسیم جریان داده‌ای به بسته‌هایی که بخش یا 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، پروتکل میکرو انتقال
جدول مقایسه‌ای پروتکل‌های لایه انتقال
نام خصوصیت
UDP
UDP سبک
TCP
SCTP
DCCP
RUDP
اندازه سرآیند بسته
8 بایت
8 بایت
20-60 بایت
12 بایت + سرآیند قطعه متغیر
12 یا 16 بایت
مولفه بسته لایه انتقال
داده‌نگار
داده‌نگار
قطعه
داده‌نگار
داده‌نگار
داده‌نگار
اتصال گرا
انتقال قابل اطمینان
انتقال غیر مطمئن
حفظ محدودیت پیام
نامعلوم
تحویل با ترتیب
تحویل بدون ترتیب
چک‌سام داده
اختیاری
نامعلوم
اندازه چک‌سام (بیت)
16
16
16
32
16
نامعلوم
چک‌سام نسبی
MTU مسیر
نامعلوم
کنترل جریان
کنترل ازدحام
نامعلوم
پشتیبانی از ECN
جریان‌های چندگانه
پشتیبانی از چندلانه‌ای
پشتیبانی از NAT
مقایسه پروتکل‌های انتقال در مدل OSI
مدل OSI پنج کلاس از پروتکل‌های انتقال مبتنی بر اتصال را تعریف کرده که از کلاس 0 (TP0) تا کلاس 4 (TP4) شماره‌گذاری می‌شوند. کلاس 0 هیچگونه بازیابی خطایی ندارد و برای استفاده در لایه شبکه که ارتباط‌های عاری از خطا را فراهم می‌آورد، طراحی شده‌است. کلاس 4 نزدیکترین پروتکل به TCP است ، با این وجود TCP دارای عملیاتی نظیر بستن ارتباط است که مدل OSI آن را به لایه نشست نسبت داده است. جدول زیر به تفصیل پروتکل‌های مزبور را مورد مقایسه قرار می‌دهد:
سرویس
TP0
TP1
TP2
TP3
TP4
شبکه اتصال گرا
شبکه بی‌اتصال
الحاق و تفکیک
قطعه‌سازی و سرهم بندی مجدد
بازیابی خطا
شروع مجدد اتصال (در صورتی که تعداد زیادی از PDU‌ها تصدیق نشوند)
تسهیم‌سازی (Multiplexing) و تفکیک‌سازی (De-multiplexing)
کنترل جریان صریح
تبادل مجدد و زمان انقضاء (timeout)
سرویس انتقال مطمئن