لطفا صبرکنید...
۱۰٪
تخفیف ویژه خرید نقدی
کد: L74W2B
زرین‌پال درگاه امن
فرصت محدود
خرید نقدی
0
🚀 دوره جامع شبکه‌های کامپیوتری: از صفر تا قهرمان شبکه-کدنویسم

مدرس:

فرشید پوشنده

فرمت آموزش:

ویدئویی

طول آموزش: 

00:48:05

پروتکل‌های شبکه

یک پروتکل شبکه مشابه پروتکل انسانی است، با این تفاوت که موجودیت‌هایی که پیام مبادله می‌کنند و اقدام انجام می‌دهند، اجزای سخت‌افزاری یا نرم‌افزاری یک دستگاه هستند (مثلاً کامپیوتر، تلفن هوشمند، تبلت، روتر یا هر دستگاه شبکه‌ای دیگر). تمام فعالیت‌هایی که در اینترنت انجام می‌شود و شامل دو یا چند موجودیت ارتباطی از راه دور است، توسط یک پروتکل کنترل می‌شود. برای مثال، پروتکل‌های پیاده‌سازی‌شده در سخت‌افزارِ دو کامپیوترِ متصل به هم، جریان بیت‌ها را روی «سیم» بین دو کارت رابط شبکه کنترل می‌کنند؛ پروتکل‌های کنترل ازدحام در سیستم‌های پایانی، نرخ ارسال بسته‌ها بین فرستنده و گیرنده را تنظیم می‌کنند؛ پروتکل‌های درون روترها مسیر یک بسته را از مبدأ تا مقصد تعیین می‌کنند. پروتکل‌ها در همه جای اینترنت در حال اجرا هستند و به همین دلیل بخش عمده این کتاب درباره پروتکل‌های شبکه‌های کامپیوتری است.

به عنوان نمونه‌ای از یک پروتکل شبکه کامپیوتری که احتمالاً با آن آشنا هستید، در نظر بگیرید وقتی به یک وب‌سرور درخواست می‌دهید چه اتفاقی می‌افتد؛ یعنی وقتی URL یک صفحه وب را در مرورگر خود وارد می‌کنید. این سناریو در نیمه راست شکل ۱.۲ نشان داده شده است. ابتدا کامپیوتر شما یک پیام درخواست اتصال به وب‌سرور می‌فرستد و منتظر پاسخ می‌ماند. وب‌سرور در نهایت پیام درخواست اتصال شما را دریافت می‌کند و یک پیام پاسخ اتصال برمی‌گرداند. کامپیوتر شما با دانستن اینکه حالا می‌تواند سند وب را درخواست کند، نام صفحه وبی را که می‌خواهد از آن وب‌سرور دریافت کند، در یک پیام  GET ارسال می‌کند. در نهایت، وب‌سرور صفحه وب (فایل) را به کامپیوتر شما برمی‌گرداند.

با توجه به مثال‌های انسانی و شبکه‌ای بالا، تبادل پیام‌ها و اقداماتی که هنگام ارسال و دریافت این پیام‌ها انجام می‌شود، عناصر کلیدی تعریف‌کننده یک پروتکل هستند:

پروتکل، قالب و ترتیب پیام‌های مبادله‌شده بین دو یا چند موجودیت ارتباطی و همچنین اقدامات انجام‌شده هنگام ارسال و/یا دریافت یک پیام یا رویداد دیگر را تعریف می‌کند.

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

۱.۲ لبه شبکه

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

از بخش قبل به یاد بیاورید که در اصطلاحات تخصصی شبکه‌های کامپیوتری، به کامپیوترها و سایر دستگاه‌های متصل به اینترنت اغلب سیستم‌های پایانی (End Systems) گفته می‌شود. به آن‌ها سیستم پایانی می‌گویند چون در لبه اینترنت قرار دارند، همان‌طور که در شکل ۱.۳ نشان داده شده است. سیستم‌های پایانی اینترنت شامل کامپیوترهای رومیزی (مثل PCهای رومیزی، مک و سیستم‌های لینوکسی)، سرورها (مثل وب‌سرورها و سرورهای ایمیل) و دستگاه‌های موبایل (مثل لپ‌تاپ‌ها، تلفن‌های هوشمند و تبلت‌ها) هستند. علاوه بر این، تعداد فزاینده‌ای از «اشیاء» غیرسنتی نیز به عنوان سیستم پایانی به اینترنت متصل می‌شوند (به بخش «مطالعه موردی» مراجعه کنید).

به سیستم‌های پایانی میزبان (Host) هم گفته می‌شود، چون آن‌ها برنامه‌های کاربردی مانند مرورگر وب، برنامه وب‌سرور، برنامه سرویس‌گیرنده ایمیل یا برنامه سرور ایمیل را میزبانی (یعنی اجرا) می‌کنند. در سراسر این کتاب از اصطلاحات میزبان و سیستم پایانی به جای یکدیگر استفاده خواهیم کرد؛ یعنی میزبان = سیستم پایانی. میزبان‌ها گاهی به دو دسته تقسیم می‌شوند: سرویس‌گیرنده‌ها (Clients) و سرویس‌دهنده‌ها (Servers). به طور غیررسمی، سرویس‌گیرنده‌ها معمولاً کامپیوترهای رومیزی، لپ‌تاپ‌ها، تلفن‌های هوشمند و مانند آن هستند، در حالی که سرویس‌دهنده‌ها معمولاً ماشین‌های قدرتمندتری هستند که صفحات وب را ذخیره و توزیع می‌کنند، ویدئو استریم می‌کنند، ایمیل را منتقل می‌کنند و غیره. امروزه بیشتر سرورهایی که نتایج جستجو، ایمیل، صفحات وب، ویدئوها و محتوای برنامه‌های موبایل را از آن‌ها دریافت می‌کنیم، در مراکز داده بزرگ مستقر هستند. برای مثال، تا سال ۲۰۲۰، گوگل ۱۹ مرکز داده در چهار قاره دارد که مجموعاً چند میلیون سرور را در خود جای داده‌اند. شکل ۱.۳ دو نمونه از این مراکز داده را نشان می‌دهد و بخش «مطالعه موردی» مراکز داده را با جزئیات بیشتری توضیح می‌دهد.

۱.۲.۱ شبکه‌های دسترسی

پس از بررسی برنامه‌های کاربردی و سیستم‌های پایانی در «لبه شبکه»، حالا بیایید شبکه دسترسی را بررسی کنیم — شبکه‌ای که به طور فیزیکی یک سیستم پایانی را به اولین روتر (که «روتر لبه» نیز نامیده می‌شود) در مسیری که از سیستم پایانی به هر سیستم پایانی دور دیگری منتهی می‌شود، متصل می‌کند. شکل ۱.۴ چندین نوع شبکه دسترسی را با خطوط ضخیم و سایه‌دار نشان می‌دهد و محیط‌هایی (خانگی، سازمانی و بی‌سیم موبایل گسترده) که در آن‌ها استفاده می‌شوند را مشخص می‌کند.

دسترسی خانگی: DSL، کابل، FTTH و اینترنت ثابت 5G

امروزه دو نوع رایج پهن‌باند مسکونی، خط مشترک دیجیتال (DSL) و کابل هستند. یک خانه معمولاً دسترسی اینترنت DSL را از همان شرکت تلفن محلی (telco) دریافت می‌کند که سرویس تلفن ثابت محلی را ارائه می‌دهد. بنابراین وقتی از DSL استفاده می‌شود، شرکت تلفن مشتری همان ISP او نیز هست. همان‌طور که در شکل ۱.۵ نشان داده شده است، مودم DSL هر مشتری از خط تلفن موجود برای تبادل داده با مولتی‌پلکسر دسترسی خط مشترک دیجیتال (DSLAM) استفاده می‌کند که در مرکز تلفن محلی (CO) شرکت مخابرات قرار دارد. مودم DSL خانگی داده دیجیتال را می‌گیرد و آن را به تُن‌های فرکانس بالا برای ارسال روی سیم‌های تلفن به CO تبدیل می‌کند؛ سیگنال‌های آنالوگ از بسیاری از این خانه‌ها در DSLAM دوباره به قالب دیجیتال تبدیل می‌شوند.

خط تلفن مسکونی هم‌زمان داده و سیگنال‌های تلفن سنتی را حمل می‌کند که در فرکانس‌های متفاوتی کدگذاری شده‌اند:

  • یک کانال دانلود پرسرعت در باند ۵۰ کیلوهرتز تا ۱ مگاهرتز
  • یک کانال آپلود با سرعت متوسط در باند ۴ کیلوهرتز تا ۵۰ کیلوهرتز
  • یک کانال تلفنی دوطرفه معمولی در باند ۰ تا ۴ کیلوهرتز

این روش باعث می‌شود لینک DSL واحد طوری به نظر برسد که گویی سه لینک جداگانه است؛ به طوری که یک مکالمه تلفنی و یک اتصال اینترنتی بتوانند هم‌زمان از لینک DSL استفاده کنند. (این تکنیک تسهیم تقسیم فرکانسی را در بخش ۱.۳.۱ توضیح خواهیم داد.) در سمت مشتری، یک تفکیک‌کننده (Splitter) سیگنال‌های داده و تلفن را که به خانه می‌رسند جدا می‌کند و سیگنال داده را به مودم DSL می‌فرستد. در سمت شرکت مخابرات، در CO، دستگاه DSLAM سیگنال‌های داده و تلفن را جدا می‌کند و داده را به اینترنت می‌فرستد. صدها یا حتی هزاران خانوار به یک DSLAM واحد متصل می‌شوند.

استانداردهای  DSL نرخ‌های انتقال متعددی تعریف می‌کنند؛ از جمله نرخ دانلود ۲۴ مگابیت بر ثانیه و ۵۲ مگابیت بر ثانیه و نرخ آپلود ۳.۵ مگابیت بر ثانیه و ۱۶ مگابیت بر ثانیه؛ جدیدترین استاندارد مجموع نرخ آپلود و دانلود ۱ گیگابیت بر ثانیه را فراهم می‌کند [ITU 2014]. چون نرخ دانلود و آپلود متفاوت است، این دسترسی نامتقارن نامیده می‌شود. نرخ‌های واقعی دانلود و آپلود ممکن است کمتر از نرخ‌های ذکر شده باشد، چون ارائه‌دهنده DSL ممکن است عمداً نرخ مسکونی را هنگام ارائه سرویس پلکانی (نرخ‌های متفاوت با قیمت‌های متفاوت) محدود کند. حداکثر نرخ همچنین با فاصله بین خانه و CO، قطر سیم زوج به هم تابیده و میزان تداخل الکتریکی محدود می‌شود. مهندسان DSL را صریحاً برای فواصل کوتاه بین خانه و CO طراحی کرده‌اند؛ معمولاً اگر خانه در فاصله ۵ تا ۱۰ مایلی CO نباشد، باید از شکل دیگری از دسترسی اینترنت استفاده کند.

در حالی که DSL از زیرساخت تلفن محلی موجود شرکت مخابرات استفاده می‌کند، دسترسی اینترنت کابلی از زیرساخت تلویزیون کابلی موجود شرکت تلویزیون کابلی بهره می‌برد. یک خانه دسترسی اینترنت کابلی را از همان شرکتی می‌گیرد که تلویزیون کابلی او را تأمین می‌کند. همان‌طور که در شکل ۱.۶ نشان داده شده است، فیبر نوری سر کابل (Head End) را به نقاط اتصال محله‌ای متصل می‌کند و از آنجا کابل هم‌محور سنتی برای رسیدن به خانه‌ها و آپارتمان‌ها استفاده می‌شود. هر نقطه اتصال محله‌ای معمولاً ۵۰۰ تا ۵۰۰۰ خانه را پشتیبانی می‌کند. چون در این سیستم هم فیبر و هم کابل هم‌محور به کار می‌رود، اغلب فیبر-کواکس هیبریدی (HFC) نامیده می‌شود.

دسترسی اینترنت کابلی به مودم‌های خاصی نیاز دارد که مودم کابلی نامیده می‌شوند. مانند مودم DSL، مودم کابلی معمولاً یک دستگاه خارجی است و از طریق پورت اترنت به کامپیوتر خانگی متصل می‌شود. (اترنت را در فصل ۶ به تفصیل بررسی خواهیم کرد.) در سر کابل، سیستم پایانی مودم کابلی (CMTS) عملکردی مشابه DSLAM در شبکه DSL دارد — سیگنال آنالوگ ارسال‌شده از مودم‌های کابلی در خانه‌های پایین‌دست متعدد را دوباره به قالب دیجیتال تبدیل می‌کند. مودم‌های کابلی شبکه HFC را به دو کانال تقسیم می‌کنند: یک کانال دانلود و یک کانال آپلود. مانند DSL، دسترسی معمولاً نامتقارن است و کانال دانلود معمولاً نرخ انتقال بالاتری نسبت به کانال آپلود دارد. استانداردهای DOCSIS 2.0 و 3.0 نرخ دانلود ۴۰ مگابیت بر ثانیه و ۱.۲ گیگابیت بر ثانیه و نرخ آپلود ۳۰ مگابیت بر ثانیه و ۱۰۰ مگابیت بر ثانیه را به ترتیب تعریف می‌کنند. همانند شبکه‌های DSL، حداکثر نرخ قابل دستیابی ممکن است به دلیل نرخ‌های قراردادی پایین‌تر یا محدودیت‌های رسانه محقق نشود.

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

فرشید پوشنده وب‌سایت
من فرشید پوشنده، کارشناس ارشد مهندسی نرم‌افزار، مدیر و مدرس آکادمی آنلاین آموزش برنامه‌نویسی کدنویسم هستم. با سال‌ها تجربه در حوزه آموزش و توسعه نرم‌افزار، تلاش کرده‌ام جامع‌ترین دوره‌های آموزشی در حوزه برنامه‌نویسی را به علاقه‌مندان ارائه دهم. در طول مسیر حرفه‌ای خود، به زبان‌ها و فناوری‌های C++ ،Java ،Python ،Qt ،QML ،SQL ،HTML ،CSS و وردپرس تسلط پیدا کرده‌ام.

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