عکس پیش‌فرض نوشته

لایه انتقال (Transport Layer) در کنار لایه شبکه، قلب سلسله مراتب پروتکل را تشکیل میدهد.

وظیفه لایه انتقال که روی لایه شبکه ساخته میشود، این است که با استفاده از سرویس دیتاگرام یا مدارهای مجازی، بسته ها را به روشی قابل اعتماد و کم هزینه از ماشین مبدأ به ماشین مقصد تحویل دهد؛ فارغ از ماهیت فیزیکی شبکه مورد استفاده.

لایه انتقال شبکه کامپیوتری

 

هدف نهایی لایه انتقال آن است که یک سرویس انتقال داده کارآمد، قابل اطمینان و کم هزینه به کاربران خود، که معمولاً پردازش های لایه کاربرد (منظور برنامه های کاربردی) هستند، بدهد.

برای رسیدن به این هدف، لایه انتقال از سرویس هایی که لایه شبکه عرضه میکند، بهره میگیرد.

نرم افزار و یا سخت افزاری که این کار را در لایه انتقال انجام میدهد، واحد انتقال (Transport Entity) نامیده میشود.

واحد انتقال ممکن است درون هسته سیستم عامل، به صورت یک بسته کتابخانه ای متصل به برنامه های کاربردی شبکه، در یک پردازش کاربر مستقل و مجزا یا حتی در درون کارت واسط شبکه تعبیه شده باشد.

ارتباط (منطقی) بین لایه های شبکه، انتقال و کاربرد را میتوانید در تصویر زیر مشاهده کنید.

لایه شبکه - لایه انتقال - لایه کاربرد شبکه

 

همانگونه که دو نوع سرویس لایه شبکه اتصال گرا و غیر متصل وجود دارد، سرویس های لایه انتقال نیز بر همین دو نوع هستند.

سرویس انتقال اتصال گرا از بسیاری جهات شبیه سرویس اتصال گرای لایه شبکه است.

در هر دو مورد، اتصال (Connection) سه مرحله دارد:

– ایجاد اتصال (Establishment)

– انتقال داده (Data Transfer)

– قطع اتصال (Release)

لازم به ذکر هست که آدرس دهی و کنترل جریان در هر دو لایه مشابه است.

علاوه بر اینها، سرویس انتقال غیر متصل نیز شباهت بسیار زیادی به سرویس غیر متصل در لایه شبکه دارد.

با این حال، باید توجه داشت که دشوار میتوان یک سرویس انتقال غیر متصل را روی یک سرویس شبکه اتصال گرا عرضه کرد، چون ایجاد یک اتصال برای ارسال هر بسته (و سپس قطع آن) کاری بسیار ناکارآمد است.

 

و اما موضوع اصلی با مطرح کردن این سوال به وجود می آید: اگر سرویس لایه انتقال این قدر به سرویس لایه شبکه شبیه است، چرا این دو لایه از یکدیگر جدا هستند ؟ و چرا فقط به یکی از آنها بسنده نمیشود ؟

تفاوت لایه انتقال و لایه شبکه: کد اجرایی لایه انتقال به طور کامل روی ماشین کاربران اجرا میشود، در حالی که لایه شبکه اغلب روی مسیریاب ها اجرا میشود، که آنها نیز (حداقل در WAN ها) تحت مدیریت یک شرکت مخابراتی قرار دارند.

سوالی در این جا به وجود می آید که اگر لایه شبکه سرویس های ناکافی ارائه کند یا بسته ها را از دست بدهد، چه اتفاقی می افتد ؟ (یا مسیریاب از کار بیافتد)

 

در این موارد فقط میتوان گفت که با دردسر روبرو شده ایم!

کاربران هیچ کنترل واقعی بر لایه شبکه ندارند و طبعاً نمیتوانند مشکلات ناشی از سرویس ضعیف مسیریاب ها را مثلا با تعویض مسیریاب یا مدیریت بهتر خطا در لایه پیوند داده برطرف کنند.

تنها راه ممکن آن است که روی لایه شبکه لایه دیگری قرار داده شود تا کیفیت سرویس را بهبود ببخشد.

در یک زیرشبکه غیرمتصل، اگر بسته ها گم یا خراب شوند، واحد انتقال میتواند مشکل را شناسایی کرده و با ارسال مجدد بسته ها آن را حل کند.

در یک زیرشبکه اتصال گرا، اگر واحد انتقال متوجه شود که اتصال شبکه به ناگاه قطع شده و از سرنوشت داده های ارسال شده نیز خبری نیست، میتواند یک اتصال جدید با واحد انتقال راه دور برقرار کند. به کمک این اتصال جدید، واحد انتقال میتواند از همتای خود سوال کند که کدام قسمت از داده ها را دریافت کرده و کدام قسمت را دریافت نکرده است؛ سپس از همان جایی که داده قطع شده ادامه دهد.

 

در حقیقت، وجود لایه انتقال این امکان را فراهم می آورد تا سرویس انتقال قابل اطمینان تر از سرویس لایه زیرین (یعنی لایه شبکه) باشد.

علاوه بر موارد فوق، عملکردهای پایه انتقال میتوانند به صورت فراخوانی توابع کتابخانه ای پیاده سازی شوند، تا از عملکردهای پایه لایه شبکه مستقل باشند.

فراخوانی های سرویس شبکه در شبکه های مختلف میتواند تفاوت های بنیادی داشته باشد. (مثلا، فراخوانی های یک شبکه اترنت غیرمتصل هیچ شباهتی با فراخوانی های یک شبکه WiMAX اتصال گرا ندارد)

پنهان کردن سرویس شبکه در پشت یک مجموعه از عملکردهای پایه انتقال، موجب میشود تا در صورت تغییر شبکه بتوان فقط با تعویض توابع کتابخانه ای با مجموعه جدیدی که همان سرویس های قبلی را ارئه میکند، موضوع را خاتمه بخشید.

 

به لطف لایه انتقال، برنامه نویسان نرم افزاری های کاربردی میتوانند بدون نگرانی درباره واسط های مختلف شبکه یا سطوح قابلیت اطمینان، برنامه خود را بر مبنای یک مجموعه استاندارد از توابع و عملکردهای پایه بنویسند.

اگر تمام شبکه های دنیای واقعی خالی از هرگونه اشکال و 100% قابل اطمینان بودند و همه آنها عملکردهای پایه سرویس مشابهی ارائه میکردند، این تضمین وجود داشت که هیچ گاه تغییر نکنند؛ در نهایت شاید نیازی به لایه انتقال نبود!

با این حال، در دنیای واقعی، این لایه وظیفه کلیدی دور نگه داشتن لایه های بالاتر، از درگیری با جزئیات فناوری، طراحی و نواقص شبکه را بر عهده دارد.

 

به همین دلیل، بسیاری از افراد یک تمایز کیفی بین لایه های 1 تا 4 از یک سو و لایه های بالاتر از 4 از سوی دیگر قائل هستند.

چهار لایه پایینی را میتوان ارائه دهنده سرویس انتقال (Transport Service Provider) تصور کرد، در حالی که لایه های بالایی مصرف کننده سرویس انتقال (Transport Service User) محسوب میشوند.

این تفکیک بین ارائه دهنده و مصرف کننده تاثیر مهمی روی طراحی لایه ها دارد و لایه انتقال را در موقعیتی کلیدی قرار میدهد، چون این لایه نقطه مرزی بین ارائه دهنده و مصرف کننده سرویس انتقال داده قابل اطمینان است.

این همان سطح از قابلیت اطمینان است که برنامه های کاربردی آنرا میبینند.

این آموزش بیش از ۳ سال قبل ارسال شده و اکنون در لیست به‌روزرسانی‌های سایت قرار دارد. اگر پیشنهاد یا انتقادی برای بهبود آموزش دارید، خوشحال می‌شیم به ما اطلاع بدهید.