آشنایی مفاهیم پروتکل های شبکه و رابط ها
۱۶ بهمن ۱۴۰۳
برای اشخاصی که یک سرور را مدیریت میکنند شناخت و درک مفاهیم شبکه بسیار حائز اهمیت میباشد. این دانش نه تنها برای راه اندازی و اجرای درست سرویسهای شما اهمیت دارد، بلکه به شما کمک میکند تا مشکلات را به روشی بهتر شناسایی و آنها را رفع کنید.
در این مقاله از لیارا نگاه کلی به برخی از مفاهیم رایج در حوزه شبکه خواهیم پرداخت. این مطلب به سیستم عامل های خاصی وابسته نیست و میتواند در زمان پیاده سازی ویژگی ها و سرویس هایی که از شبکه استفاده میکنند، بسیار کاربردی باشد.
لغت نامه شبکه
در ابتدا باید به صورت کامل با این واژه نامهها آشنا شوید و آنها را به خوبی بشناسید. در ادامه به صورت کامل این اصطلاحات را توضیح خواهیم داد.
- اتصال (Connection): در شبکه، اتصال به معنای آن است که برای ارسال اطلاعات بین دو دستگاه ارتباطی صحیح برقرار شود.
- این ارتباطات معمولا قبل از شروع انتقال دادهها بر قرار میشود و در زمانی که انتقال اطلاعات تمام میشود، ارتباط نیز قطع میشود.
- بسته (Packet): بستهها کوچک ترین واحدهای دادهای هستند که در شبکه ارسال میشوند. وقتی اطلاعات یک دستگاه به دستگاه دیگری فرستاده میشود، اطلاعات را به بخشهای کوچکتری تقسیم میکند و هر یک از این بخش ها در قالب یک بسته ارسال میشود تا به مقصد خود برسد.
- سربرگ (Header): در سربرگها اطلاعاتی که درباره بسته، مانند آدرس مبدا و مقصد، زمانها و مسیرهایی که بسته آنها طی کرده است را در این بخش قرار دارد.
- بدنه (Body) یا محموله (Payload): این بخش دادههای اصلی که قرار است منتقل شوند، مانند متن، تصویر و یا هر گونه اطلاعات دیگری را شامل میشود.
رابط شبکه (Network Interface)
رابط شبکه یک ابزار نرم افزاری است که به سخت افزار شبکه متصل میشود و اجازه این را میدهد تا بتوان شبکههای مختلف را مدیریت کرد برای مثال اگر کامپیوتر شما دارای دو کارت شبکه باشد، هر یک از این کارتها یک رابط شبکه دارند که میتوان آنها را به صورت جداگانه تنظیم کرد. رابط شبکه میتواند به یک دستگاه فیزیکی مثل کارت شبکه متصل باشد یا رابط مجازی باشد. برای مثال در سیستمهای لینوکسی، رابط مجازی Loopback وجود دارد که برای ارتباط با همان دستگاه استفاده شود.
شبکه محلی (LAN)
مخفف Local Area Network است و به شبکههایی گفته میشود که در یک منطقه کوچک و محدود مانند خانه و یا دفتر کار قرار دارد و به اینترنت عمومی متصل نیست. شبکههای خانگی یا اداری نمونههایی از این نوع شبکهها هستند.
شبکه گسترده (WAN)
این شبکه مخفف Wide Area Network است که وسعت بسیار بیشتری از شبکههای محلی دارد و میتوانند مناطق جغرافیایی بزرگی را پوشش دهد و معمولا منظور از WAN اینترنت به عنوان یک شبکه جهانی نام برده میشود. اگر گفته شود که یک رابط شبکه به WAN متصل است به این معناست که به اینترنت دسترسی دارد.
پروتکل (Protocol)
پروتکل به مجموعه قوانین و استاندارهایی که در به یک زبان مشترک برای ارتباط بین دستگاهها از آن ها استفاده میکنند گفته میشود. پروتکلهای زیادی در دنیای شبکه مورد استفاده قرار میگیرد که معمولا در لایههای مختلفی از شبکه پیاده سازی میشود. تعدادی از پروتکلهای سطح پایین شامل: IP، TCP، ICMP در مقابل، پروتکلهای شناخته شده که روی این پروتکلهای پایه ساخته شده اند عبارتند از:
- HTTP: برای دسترسی به محتواهای وب
- SSH: برای اتصال امن به سرورها
- TLS/SSL: برای برقراری ارتباطات رمز نگاری شده و امن
پورت (PORT)
پورت یک آدرس یا شناسه مجازی است که بر روی یک دستگاه که به آن برنامه خاصی را اختصاص میدهند داده میشود.
پورتها به صورت فیزیکی نیستند، بلکه مانند یک دروازه نرم افزاری عمل میکند تا سرور بتواند به صورت همزمان با چندین برنامه مختلف ارتباط بر قرار کند.
فایروال (Firewall)
فایروالها یک برنامه امنیتی هستند که مشخص میکنند که ترافیکهای ورودی و خروجی یک سرور مجاز هستند یا خیر.
فایروالها با تعریف قوانینی کار میکنند که مشخص میکند که کدام نوع ترافیک میتواند از کدام پورت عبور کند. در حالت عادی فایروال ها پورت هایی را که برنامه خاصی از آن ها استفاده نمیکند را مسدود میکند.
ترجمه آدرس شبکه (NAT)
این فناوری کمک میکند که درخواست های ورودی از اینترنت و از طریق یک آدرس IP به دستگاه های مختلف در یک شبکه محلی راهنمایی شوند. معمولا از این منظور در شبکه های خانگی و یا اداری از آن استفاده میشود و همه دستگاهها به صورت مشترک از یک آدرس IP عمومی استفاده میکنند.
شبکه های خصوصی مجازی (VPN)
ویپیانها به شما اجازه میدهند تا شبکههای مجزا را از طریق اینترنت به صورت امن به هم متصل کنید. VPN ها معمولا برای اتصال سیستمهای دور از یکدیگر به شبکههای محلی به صورت امن و حفظ حریم خصوصی از آن استفاده میشود.
لایه های شبکه (Network Layers)
در حالی که معمولا درباره شبکهها به صورت افقی و از نظر ارتباط بین دستگاهها صحبت میشود، پیاده سازی واقعی شبکه در هر کامپیوتر به صورت لایه لایه و عمودی انجام میشود و این موضوع به این معنی میباشد که برای برقراری ارتباط چندین فناوری و پروتکل آنها به صورت همزمان کار میکنند. هر زمان که لایهها بالاتر میروند، دادهها نیز به صورت سادهتری پردازش میشود و در نهایت آسانتر میتوان با آن کار کرد.
لایهها به ما این امکان را میدهد تا از پروتکلهای لایههای پایینتر به روش جدیدی از آن استفاده کنیم، بدون اینکه نیازی باشد برای هر نوع داده یا ترافیک جدیدی پروتکلهای جدیدی بنویسیم.
این ساختار لایهای، مدل های مختلفی وجود دارد (مثل مدل OSI یا TCP/IP) در انتها در همه مدل ها، مسیر دادهها به صورت یکسان خواهد بود.
در زمانی که دادهها به یک دستگاه ارسال میشود، از بالاترین لایه شروع میکند و به لایههای پایینتر انتقال میدهد. سپس در پایینترین لایه، دادهها را به دستگاه مقصد میرساند.
وقتی دادهها به مقصد نهایی خود میرسد، این فرآیند معکوس خواهد شد و دادهها از لایههای پایین تری به لایههای بالاتر منتقل داده میشود.
امکان دارد در هر لایه اطلاعات اضافی به دادهها اضافه شود و این اطلاعات اضافی میتواند به لایههای بعدی کمک کند تا متوجه شوند که چگونه با دادهها برخورد کنند.
مدل TCP/IP
این مدل بیشتر با نام Internet Protocol Suite (مجموعه پروتکلهای اینترنت) شناخته میشود، یکی از مدلهای لایه ای و پر کاربرد در شبکه است که شامل چهار لایه مجزا میباشد این لایهها عبارتند از:
لایه کاربرد (Application Layer)
این لایه مسئولیت ایجاد و انتقال داده را بین برنامهها بر عهده دارد و میتواند بر روی سیستمهای مختلف اجرا شوند. به این نوع ارتباط، ارتباط بین همتاها (peer-to-peer) نیز گفته میشود.
لایه انتقال (peer-to-peer)
این لایه وظیفه برقراری ارتباط بین برنامهها در دستگاههای مختلف را دارد و در این لایه از پورتها برای شناسایی و مدیریت سرویسهای مختلف استفاده میشود.
لایه اینترنت (Internet Layer)
این لایه وظیفه ارسال دادهها از دستگاه به دستگاه دیگری را در شبکه دارد. این لایه تمامی آدرس IP را تعریف میکند تا بتوان دستگاهها را در شبکه شناسایی کرد و به آنها دسترسیهای لازم را پیدا کرد. با این همه این لایه از نحوه اتصال دستگاهها به هم بی اطلاع نیست.
لایه لینک (Link Layer)
لایه لینک وظیفه ارتباط فیزیکی بین دستگاهها در یک شبکه محلی دارد. این لایه توپولوژی شبکه را مدیریت کرده و به لایههای اینترنت این امکان را میدهد تا بتوانند به درستی با دستگاههای دیگر ارتباط برقرار کند.
همان طور که مشاهده میشود مدل TCP/IP انعطاف پذیر است و میتوان آن را به راحتی پیاده سازی کرد. به همین خاطر مدل اصلی برای دسته بندی لایههای شبکه تبدیل شده است.
رابط های شبکه (Interfaces)
رابطهای شبکه نقاطی هستند که به کامپیوتر شما این اجازه را میدهد تا با شبکهها ارتباط برقرار کند. هر رابط شبکه به دستگاههای فیزیکی یا مجازی متصل است.
همچنین، یک رابط شبکه مجازی به نام “loopback” یا “localhost” در این بین وجود دارد که برای ارتباط بین برنامهها و فرآیندهای مختلف در همان سیستم از آن استفاده میشود. این رابط عموما با نام “lo” شناخته میشود.
در بیشتر مواقع، مدیران شبکه یک رابط را برای مدیریت ترافیک اینترنت و رابط دیگری را برای ارتباط با شبکههای محلی یا شبکههای خصوصی تنظیم میکنند.
در دیتاسنترهایی که شبکه خصوصی در آن فعال است مانند سرورهای مجازی DigitalOcean Droplets سرور شما دو رابط خواهد داشت که آنها عبارتند از:
- eth0: برای مدیریت در ترافیکهای اینترنتی
- eth1: برای ارتباط با شبکههای خصوصی داخلی
این دو روش به شما کمک میکند تا امنیت و عملکرد سرورها را بهینه کند.
پروتکلها (Protocols)
در شبکههای کامپیوتری پروتکلها مجموعه قوانینی هستند که برای ارتباط میان دستگاهها از آن استفاده میشود. این پروتکلها به صورت لایه لایه روی هم قرار گرفته تا دادهها به صورت موثر انتقال داده شوند. به این ترتیب دادهها میتوانند در یک زمان توسط چندین پروتکل مختلف مدیریت شوند. این فرآیند را encapsulation یا محدود کننده فضای خاص نامید.
در ابتدا به پروتکلهای مربوط به لایههای پایین شبکه خواهیم پرداخت و بعد بعد پروتکلهای بالاتر و پیچیده تر را بررسی خواهیم کرد.
کنترل دسترسی به رسانه ها (MAC)
کنترل دسترسی به رسانه مک یک نوع از پروتکل است که برای شناسایی دستگاه در شبکه از آن استفاده میشود. زمانی که هر دستگاه ساخته میشود، یک آدرس خاصی به نام آدرس MAC از آن دریافت میکند که آن به صورت سخت افزاری در دستگاه ذخیره میشود. این آدرس مک باعث میشود تا هر دستگاه در شبکه، حتی در سطح اینترنت نیز از دستگاههای دیگر متمایز شود.
آدرس MAC این امکان را میدهد تا دستگاه را با همان آدرس مخصوص خود شناسایی کنید حتی در زمانی که نام دستگاه در سطح نرم افزار تغییر کند.
آدرس MAC از اصلی ترین پروتکلهای لایه پیوند داده است که امکان دارد در فعالیتهای مختلف در شبکه با آن مواجه شوید. برای مثال در مواقعی همچون؛ پیکربندی فایروال، مدیریت دسترسی به شبکههای بی سیم یا تنظیمات امنیتی به آدرس MAC نیاز خواهید داشت.
پروتکل IP
این پروتکل یکی از اساسی ترین پروتکلهایی است که باعث میشود اینترنت به راحتی کار کند. آدرسهای IP در تمامی شبکه ها به صورت منحصر به فرد و مخصوص هستند که به دستگاهها اجازه میدهد تا یکدیگر را به راحتی از طریق شبکه شناسایی کنند. پروتکل آی پی در لایههای اینترنت مدل TCP/IP پیاده سازی میشوند.
در مجموع شبکهها میتوانند به هم دیگر متصل شوند اما در زمانی که ترافیک از مرزهای شبکه عبور کند، باید مسیریابی شوند. این پروتکلها فرض این را دارند که شبکه ممکن است قابل اطمینان نباشد و مسیرهای دیگری را برای رسیدن به یک مقصد وجود دارد که به صورت دینامیک میتواند بین آنها تغییر کند.
رایج ترین نوع این پروتکل در حال حاضر آدرسهای IPv4 هستند که به شکل 123.123.123.123 نوشته میشوند. آدرسهای IPv6 به صورت 2001:0db8:0000:0000:0000:ff00:0042:8329 نوشته میشود و به دلیل محدد شدن آدرس های IPv4، استفاده از آدرسهای IPv6 روز به روز بیشتر میشود.
ICMP پروتکل پیام کنترل اینترنت
این پروتکل برای ارسال پیامها بین دستگاههای برای اعلام وضعیت در دسترس بودن یا خطاهای شبکه از آن استفاده میشود. این بستهها در ابزارهای تشخیص شبکه مانند ابزار پینگ و ترسرایت (Traceroute) کار گرفته میشود.
TCP پروتکل کنترل انتقال
پروتکل کنترل انتقال در لایه انتقال مدل TCP/IP پیاده سازی میشود و وظیفه آن برقراری ارتباطات قابل اعتماد است. TCP دادهها را در بستههایی قرار میدهد که این بستهها از طریق لایههای پایین به مقصد ارسال میشود. در مقصد این پروتکل میتواند خطاها را بررسی کند و مقداری از داده را مجددا درخواست کند و اطلاعات را به صورت صحیح دوباره جمع آوری کرده و به لایههای کاربردی ارسال کند.
قبل از ارسال دادهها، این پروتکل از فرآیند دست دادن سه طرفه (Three-Way Handshake) است. این پروتکل ارتباط بین دو دستگاه را فراهم میکند و به دستگاه ها این امکان را میدهد که تا درخواست اتصال را تایید کرده و یک روش را برای اطمینان صحت دادهها انتخاب کند. بعد از منتقل کردن دادهها، ارتباط با فرآیند مشابهی به نام دست دادن چهار طرفه یا (Four-Way Handshake) قطع میشود.
UDP (پروتکل دیتاگرام کاربر)
این پروتکل هم از رایج ترین پروتکل ها مانند TPC است که در لایه انتقال مدل TCP/IP اعمال میشود. تفاوتهای این دو در انتقال دادههایشان است. در UDP انتقال دادهها به صورت غیر قابل اعتماد انجام میشود و بررسی نمیکند که آیا داده ها در مقصد خود به درستی دریافت شده اند یا خیر. این امر ممکن است که در بعضی از موارد نقطه ضعفی بزرگ باشد، اما در بسیاری از کاربردها به عنوان یک مزیت شناخته میشود. UDP ها نیازی به تایید دریافت دادهها و یا ارسال مجدد بستههای از دست رفته ندارند، بلکه بسیار سریع تر از TCP ها عمل میکنند. برخلاف TCP ها، نیازی به برقراری اتصال پایدار را با میزبان ندارند و دادها را بدون هیچ اتلاف وقتی برای تایید ارسال میکند. با توجه به سادگی در انتقال دادهها، UDP ها در برنامههایی مانند تماسهای صوتی اینترنتی، بازیهای آنلاین و سایر برنامههایی که تاخیر در آن مهم است و غیر قابل قبول هستند، استفاده میشود.
HTTP (پروتکل انتقال ابرمتن)
HTTP یک پروتکل ارتباطی است که از مجموع افعال برای مشخص کردن نوع درخواستها به سرور از آن استفاده میکند. این افعال به سرور اعلام میکند که کاربر دقیقا چه خواسته ای دارد. برخی از مهم ترین افعال شامل GET است که برای دریافت اطلاعات از سمت سرور، POST برای ارسال دادهها به سرور و DELETE برای حذف اطلاعات از سمت سرور هستند. که هر کدام از این درخواستها به روش خاصی با دادهها تعامل دارد.
DNS (سیستم نام دامنه)
DNS پروتکلی در لایه کاربرد است که نامهای دامنه ای که انسانها به راحتی میتوانند آنها را بخوانند مانند google.com را به آدرسهای IP تبدیل کند.
دی ان اسها در واقع مانند یک درچه تلفنی هستند که به کمک آن میتوانید به جای وارد کردن آدرسهای سخت و پیچیده، فقط نام سایت را در مرورگر خود تایپ کنید و به آن دسترسی داشته باشید.
DNS یک سرویس ساده اما قدرتمند است که میتوانید از وبسرویس DNS لیارا برای مدیریت دامنههای خود استفاده کنید و از قابلیتهای پیشرفته آن بهرهمند شوید.
DNS را بیشتر بشناسید.
SSH (پروتکل امن)
SSH مخفف Secure Shell میباشد و از پروتکلهایی است که به صورت رمز نگاری شده استفاده میشود و در لایه کاربردی قرار دارد. این پروتکل برای برقراری ارتباطی امن با سروهای راه دور از آن استفاده میشود. به دلیل داشتن رمزنگاری سر تاسری (End-to-End Encryption)، تنکولوژی زیادی بر این پایه ساخته شده است که امکان اتصال امن را به کاربر میدهد و دسترسی دستوراتی که از راه دور انجام میشوند را به شما میدهد.
پروتکل SSH را بیشتر بشناسید.
جمع بندی
تا انتهای این مقاله با برخی از اصطلاحاتی که در دنیای شبکه وجو دارد آشنا شده اید و میدانید که چگونه اجزای مختلف میتوانند با یکدیگر ارتباط برقرار کنند. این اطلاعات به شما کمک میکند تا راحت تر مطالب تخصصی تر را درک کنید و بهتر با سیستمهای مختلف کار کنید