لایه حمل

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

در شبکه‌های رایانه‌ای، لایه انتقال سرویس‌های ارتباطی مبدأ به مقصد یا 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، از مدارهای مجازی Virtual circuit پشتیبانی می کنند؛ یعنی ارتباطی اتصال گرا را بر روی شبکه دیتاگرام فراهم می آورند. زمانیکه ارتباطات بسته ای از دید پردازش های کاربردی پنهان هستند از یک جریان بایتی استفاده خواهد شد. این کار از مراحل زیر تشکیل می شود: برقرارسازی ارتباط، تقسیم جریان داده ای به بسته هایی که بخش یا segment نامیده می شوند، شماره گذاری بخش ها و مرتب سازی مجدد ترتیب داده ها.

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

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

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

مدل OSI پنج کلاس از پروتکل های انتقال را تعریف می کند ، TP۰ با کمترین امکان کشف خطا تا 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) نه نه نه نه بله
سرویس انتقال مطمئن نه بله نه بله بله

منابع[ویرایش]

مشارکت‌کنندگان ویکی‌پدیا، «Transport Layer»، ویکی‌پدیای انگلیسی، دانشنامهٔ آزاد (بازیابی در ۲۳ جولای ۲۰۱۱).