پروتکل های لایه انتقال

پروتکل ‌های لایه انتقال – آموزش شبکه درس 31

لایه انتقال (Transport Layer) از دو پروتکل اصلی به نام هی TCP و UDP بهره می‌گیرد. در این میان پروتکل IP (IP Protocol) که در لایه شبکه (Network Layer) وجود دارد دیتاگرام‌ها را از هاست منبع دریافت کرده و به هاست مقصد تحویل می‌دهد.

امروزه، سیستم عامل‌ها از حیط‌های چند کاربره و چندپردازشی استفاده می‌کنند. هر برنامه اجرائی که در اینجا مورد پردازش قرار گیرد یک «پروسه – Process» نامیده می‌شود. هنگامی که یک هاست اقدام به ارسال یک پیام به هاست دیگری می‌کند، به این معنا است که هاست منبع اقدام به پردازش یک پروسه کرده و سپس آن را به سمت هاست مقصد می‌فرستد. هاست مقصد نیز پس از دریافت این پروسه، اقدام به پردازش مجدد آن و استخراج محتوای پیام می‌کند. پروتکل‌هائی که در لایشه انتقال قرار دارند می‌تواند ارتباطاتی را میان پورت‌های ویژه ایجاد کنند که ما به این پورت‌ها «پورت‌های پروتکل – Protocol Ports» می‌گوئیم.

هنگامی که از پروتکل IP نام می‌بریم در واقع اشاره ما به پروتکلی است که به صورت Host to Host کار می‌کند و می‌تواند یک پک داده را از هاست منبع به هاست مقصد انتقال دهد، در حالی که پروتکل‌هائی که در لایه انتقال هستند، پروتکل‌هایئ پورت به پورت (Port to Port Protocol) هستند و در سطح بالاتری از پورتکل‌های IP کار می‌کنند. در پروتکل‌های لایه شبکه از IP سرویس هاست منبع و مقصد برای ارسال پیام بین پورت‌های مشخص استفاده می‌شود.

هر پورت دارای یک آدرس مشخص با اعداد صحیح و مثبت است که می‌تواند تا شانزده بیت از پیام را به خود اختصاص دهد.

نحوه کار پروتکل های لایه انتقال

نحوه کار پروتکل های لایه انتقال

پروتکل های لایه انتقال: پروتکل UDP

اولین پروتکل از پروتکل های لایه انتقال، پروتکل UDP است. پروتکل UDP برگرفته از سرنام عبارت User Datagram Protocol یا در واقع پروتکل دیتاگرام کاربر است. پروتکل UDP یک پروتکل ساده است و می‌توان از آن برای انتقال غیرمتوالی پیام‌ها استفاده کرد.

پروتکل UDP یک پروتکل بدون اتصال (Connectionless) به شمار می‌رود. این نوع از پروتکل‌ها در زمانی به کار می‌رود که اعتمادپذیری (Reliability) و امنیت (Security) در ارتباطات ما بسیار کم اهمیت باشند و ما تنها به انتقال سریع و حجم پیام توجه کنیم. برای مثال در شبکه‌های داخلی که لازم است اطلاعات بین هاست‌ها و یا سرورهای داخلی انتقال پیدا کنند.

پروتکل UDP یک پروتکلی است که در سطح انتقال سر به سر (End to End) به کار می‌رود و آدرس‌های سطح انتقال، کنترل‌های خطای چکسام و اطلاعات طولی را به داده‌هائی که از لایه‌های سطح بالاتر خود دریافت کرده است اضافه می‌کند.

پک‌های داده ای که به وسیله پروتکل UDP ایجاد می‌شوند به عنوان «دیتاگرام کاربر – User Datagram» شناخته می‌شوند.

فرمت دیتاگرام کاربر (User Datagram)

دیتاگرام کاربرد از یک سرواره 16 بیتی ساخته شده است. برای درک بهتر به تصویر زیر نگاه کنید. در این تصویر این موضوع نشان داده شده است:

فرمت دیتاگرام کاربر در پروتکل UDP

فرمت دیتاگرام کاربر در پروتکل UDP

در تصویر بالا:

  • Source Port Address: نشان دهند آدرس اپلیکیشن ایجاد کننده پروسه نظر ماست که پیام را ایجاد کرده است و باید پاسخ پیام به آن تحویل داده شود. آدرس پورت منبع یک آدرس 16 بیتی است.
  • Destination Port Address: این بخش آدرس اپلیکیشن پروسه مقصد ما است که باید پیام به آن تحویل داده شده و پاسخ پیام از آن گرفته شود. آدرس پورت مقصد نیز یک آدرس 16 بیتی است.
  • Total length: این بخش طول کلی دیتاگرام کاربر را بر مبنای بیت مشخص می‌کند. این فیلد نیز یک فیلد 16 بیتی است.
  • Checksum: چک سام یک فیلد 16 بیتی است که برای تشخیص خطاها از آن استفاده می‌شود.

معایب استفاده از پروتکل UDP

پروتکل UDP می‌تواند عملکردهای اصلی مورد نیاز برای تحویل و انتقال سر به سر داده‌ها را فراهم کند. این پروتکل هیچ تابع و عملکردی را نسبت به بازچینی پیام و توالی‌های ارسال ندارد. به همین خاطر از آن نمی‌توان برای تشخیص خطاهای بروز پیدا کرده در زمان ارسال پیام استفاده کرد. UDP می‌تواند خطاهائی که در زمان ارسال رخ داده اند را کشف کند، اما نمی‌تواند بگوید که کدامیک از پک‌های داده از بین رفته اند، این مطلب به خاطر آن است که در اینجا از هیچ ID و یا شماره توالی (Sequencing Number) در دیتاگرام پیام‌ها استفاده نمی‌شود.

پروتکل های لایه انتقال: پروتکل TCP

دومین پروتکل از پروتکل های لایه انتقال، پروتکل TCP است. این پروتکل برگرفته از سرنام عبارت Transmission Control Protocol به معنای پروتکل کنترل انتقال است. این پروتکل سرویس‌های لایه انتقال را به صورت کامل در اختیار تمامی اپلیکیشن‌ها قرار می‌دهد.

پروتکل TCP یک پروتکل ارتباط محور است، به این معنا که سعی می‌کند ارتباط میان دو سر انتقال را ایجاد کند. برای ایجاد ارتباط، پروتکل TCP یک مدار مجازی (Virtual Circuit) را بین فرستنده و دریافت کننده پیام ایجاد می‌کند تا پیام از این طریق انتقال پیدا کند. این مدار پس از خاتمه مکالمه از میان می‌رود.

پیکربندی پروتکل TCP

  • انتقال جریان داده: پروتکل TCP داده‌ها را در فرم یک جریان به هم پیوسته از بیت‌ها انتقال می‌دهد. پروتکل TCP بیت‌ها را در فرمت بخش‌های TCP (TCP Segments) مرتبط می‌کند و آن‌ها را به لایه فیزیکی می‌فرستد تا از آن طریق این بیت‌ها به مقصد مورد نظر انتقال پیدا کند. در اینجا پروتکلTCP خودش مسئولیت ارسال بخش‌های اطلاعاتی به IP آدرس مورد نظر را بر عهده می‌گیرد.
  • اعتمادپذیری: پروتکل TCP یک شماره توالی را به هر کدام از بایت‌های ارسال شده متصل می‌کند و انتظار دارد پس از ارسال هر کدام از آن‌ها یک تائیده دریافت را از پروتکل TCP هاست دریافت کننده پیام به دست بیاورد. اگر پیام تائید (ACK) در بازه زمانی مشخص شده دریافت نشود، در آن صورت این پروتکل دوباره اقدام به ارسال بخش‌های مختلف پیام می‌کند. TCP هاست دریافت کننده پیام می‌تواند از شماره توالی برای بازچینی دوباره بخش‌های استفاده کند. این هاست می‌تواند از این شماره‌ها برای حذف بخش‌های تکراری و یا رفع مشکل در قسمت‌های آسیب دیده استفاده کند.
  • کنترل جریان: هنگامی که هاست دریافت کننده پیام به وسیله پروتکل TCP پیام تائیدی را برای سمت فرستنده ارسال کرد، از آن طریق مشخص می‌کند که تا چه حد از داده‌های دریافتی را بدون سرریز شده (Overflowing) در بافر خود دریافت کرده است. تعداد بیت‌هائی که در پیام تصدیق ارسال می‌شود، نشان دهنده بیشترین تعداد بیت‌های دریافتی است که هاست دریافت کننده می‌تواند بدون هیچگونه سر ریز شدنی دریافت کند. این مکانیسم همچنین به عنوان «مکانیسم پنجره ای – Window Mechanism» شناخته می‌شود.
  • مالتی پلکسینگ (Multiplexing): مالتی پلکسینگ فرایندی است که از طریق آن داده‌ها از نرم‌افزار های مختلفی دریافت شده و سپس به اپلیکیشن‌هائی که در هاست‌های دیگر وجود دارند ارسال می‌شوند. در طرف دریافت کننده، داده‌ها دریافت شده به صورت درست به نرم‌افزار های مورد نظر ارسال می‌شوند. فرایند ترکیب پیام‌های چند بخشی شده (مالتی پلکسینگ) به عنوان «دمالتی پلکسینگ – Demultiplexing» شناخته می‌شوند. پروتکل TCP بسته‌ها را به اپلیکیشن‌ها را با استفاده از کانال‌های منطقی که به عنوان «پورت – Port» از آن‌هایاد می‌شود، تحویل می‌دهد.
  • ارتباطات منطقی: ترکیب سوکت‌ها (Sockets)، شماره توالی (Sequence Numbers) و اندازه پنجره‌ها (Windows Sizes) به عنوان ارتباط منطقی (Logical Connection) شناخته می‌شود. هر کدام از ارتباطات در اینجا به وسیله یک جفت از سوکت‌ها شناخته می‌شوند که با استفاده از آن‌ها عملیات ارسال و دریافت پیام‌ها صورت می‌گیرد.
  • Full Duplex : پروتکل TCP یک سرویس Full duplex را فراهم می‌آورد. این به معنای آن است که داده‌ها می‌توانند در یک زمان در هر دو جهت یک لینک حرکت داشته باشند. برای رسیدن به یک ارتباط Full duplex، هر کدام از هاست‌های دارنده پروتکل TCP باید اطلاعات موجود در بافرهای خودشان را در دو جهت یک لینک ارسال کنند. TCP یک پروتکل ارتباط محور است. برای درک بهتر این فرایند بهتر است فرض کنیم که هاست A می‌خواهد پروسه ای را به هاست B ارسال کند. مراحلی که در اینجا انجام می‌شود به شرح زیر است:
    • ابتدا یک ارتباط میان دو هاست دارنده پروتکل TCP ایجاد می‌شود؛
    • داده‌ها به صورت دو طرفه در یک لینک تبادل می‌شوند؛
    • خط ارتباطی ایجاد شده خاتمه پیدا می‌کند.

فرمت سگمنت TCP

فرمت یک سگمنت در پروتکل TCP

فرمت یک سگمنت در پروتکل TCP

بخش‌های تصویر بالا به شرح زیر هستند:

  • Source Port Address: این قسمت برای مشخص کردن آدرس برنامه ای است که در هاست ارسال کننده وجود دارد. این آدرس یک فیلد 16 بیتی را شامل می‌شود.
  • Destination Port Address: از این آدرس برای تعریف آدرس‌هائی نرم‌افزار هائی استفاده می‌شود که در کامپیوتر مقصد قرار گرفته اند. این آدرس یک فیلد 16 بیتی را شامل می‌شود.
  • Sequence Number: یک جریان از داده‌ها در دو و یا چند سگمنت TCP قرار می‌گیرند. فیلد 32 بیتی عدد توالی (Sequence Number) نشان دهنده موقعیت داده در جریان داده‌های اصلی است.
  • Acknowledgement Number: این فیلد32 بیتی حاوی عدد تاییدیه از داده‌هائی است که به دیوایس دریافت کننده تحویل شده است. اگر پیام تاییدیه بر روی یک تنظیم شده باشد، در آن صورت آن نشان دهنده عدد توالی است که هاست دریافت کننده انتظار دریافت آن را دارد.
  • Header Length (HLEM): طول سرواره در واقع اندازه سرواره TCP است که به صورت یک فیلد 32 بیتی ارائه می‌شود. حداقل اندازه سرواره می‌تواند 5 کلمه باشد و حداکثر اندازه آن نیز برابر با 15 کلمه است. به همین خاطر حداکثر اندازه سرواره TCP برابر با 60 بیت است و حداقل اندازه آن نیز برابر با 20 بیت خواهد بود.
  • Reserved: این فیلد شش بیتی جائی است که برای کاربردهای آینده رزرو شده است.
  • Control Bits: هر بیت در اینجا دارای توابع فیلد کنترل است که به صورت اختصاصی و مستقل از سایر موارد کار می‌کند. یک بیت کنترل توسط یک هاست و یا سگمنت به کار گرفته می‌شود تا بتوان با کمک آن اعتبار بقیه فیلدها را سنجید.

در اینجا ما شش طول مختلف در پرچمک‌های فیلد کنترل را در اختیار داریم:

  • URG: فیلدهای URG نشان دهنده داده‌هائی هستند که در یک سگمنت به صورت اضطراری و سریع (Urgent) مورد نیاز هستند.
  • ACK: در زمانی که فیلد ACK یا فیلد تاییدیه، تنظیم شده باشد، در آن صورت در بعد از آن شماره تایید پیام قرار می‌گیرد.
  • PSH: فیلدPSH برای آگاه کردن فرستنده نسبت به تمان عملیاتی مورد نیاز به کار می‌رود، داده‌هائی ارسال در اینجا باید در مقداری بالاتر از مقدار عملیاتی ارسال شوند.
  • RST: بیت ریست در زمانی ارسال می‌شود که گیرنده پیام در خواست آن را داشته باشد که ارتباط از نوع آغاز شود، ممکن است در زمان ارسال پیام، در شماره‌های توالی پیام پیچیدگی‌های رخ داده باشد.
  • SYN: فیلد SYN یا همگام‌سازی، فیلدی است که برای همگام‌سازی شماره توالی در سه نوع از سگمنت‌ها به کار گرفته می‌شود. این سه نمونه شامل Connection Request ، Connection Confirmation و Confirmation Acknowledgment می‌شود.
  • FIN: فیلد FIN برای آگاه کردن ماژول TCP در هاست دریافت کننده نسبت به خاتمه پیدا کردن یک ارتباط استفاده می‌شود. در هر سگمنت می‌تواند از سه نمونه فلید FIN بسته به نوع سگمنت استفاده کرد. این موارد شامل Termination Request، Termination Confirmation و acknowledgment of termination confirmation می‌شود.

بقیه فیلدهای TCP تصویر بالا به شرح زیر هستند:

  • Windows Size: این بخش یک فیلد 16 بیتی است که اندازه پنجره مورد نظر در آن نشان داده شده است.
  • Checksum: چکسام یک فیلد 16 بیتی است که برای تشخیص خطاها به کار گرفته می‌شود.
  • Urgent Pointer: اگر پرچمک URG بر روی یک تنظیم شده باشد، در آن صورت این فیلد 16 بیتی با یک فاصله از شماره توالی قرار می‌گیرد که نشان دهنده آن است که در اینجا حداقل یک بایت ضروری وجود دارد.
  • Options and Padding: این دو فیلد اختیار هستند و برای ارسال اطلاعات اضافه تر در زمان ارسال پیام‌ها به کار گرفته می‌شوند.

تفاوت میان پروتکل های لایه انتقال TCP و UDP

اصول مقایسه TCP UDP
تعریف TCP پیش از ایجاد انتقال یک مدار مجازی را ایجاد می‌کند. UDP داده‌ها را به صورت مستقیم به سمت مقصد هدایت می‌کند و هیچ اقدامی در زمینه تشخیص خطا و یا بازیابی یا سنجش آمادگی انجام نمی‌دهد.
نوع ارتباط این یک پروتکل ارتباط محور است این یک پروتکل غیرارتباط محور است
سرعت  کند بسیار بالا
اعتمادپذیری یک پروتکل قابل اعتماد است. یک پروتکل غیرقابل اعتماد است.
اندازه سرواره 20 بایت 8 بایت
تاییدیه این پروتکل منتظر دریافت تایید در یک بازه زمانی مشخص می‌ماند و سپس با توجه به آن اقدام به ارسال سایر بخش‌های پیام یم کند. این پروتکل هیچ تاییدیه ای را دریافت نمی‌کند و ممکن است در زمان ارسال بخشی از پیام نیز از بین برود.

No votes yet.
Please wait...

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

منو اصلی

question